diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..7ef952d --- /dev/null +++ b/.prettierrc @@ -0,0 +1,13 @@ +{ + "printWidth": 80, + "tabWidth": 2, + "useTabs": false, + "semi": true, + "singleQuote": true, + "trailingComma": "es5", + "bracketSpacing": true, + "jsxBracketSameLine": false, + "arrowParens": "avoid", + "proseWrap": "always" + } + \ No newline at end of file diff --git a/api_reference/ccip/CCIPLocalSimulatorFork.mdx b/api_reference/ccip/CCIPLocalSimulatorFork.mdx deleted file mode 100644 index bb811ca..0000000 --- a/api_reference/ccip/CCIPLocalSimulatorFork.mdx +++ /dev/null @@ -1,164 +0,0 @@ -# Solidity API - -## IRouterFork - -### OffRamp - -```solidity -struct OffRamp { - uint64 sourceChainSelector; - address offRamp; -} -``` - -### getOffRamps - -```solidity -function getOffRamps() external view returns (struct IRouterFork.OffRamp[]) -``` - -Gets the list of offRamps - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| [0] | struct IRouterFork.OffRamp[] | offRamps - Array of OffRamp structs | - -## IEVM2EVMOffRampFork - -### executeSingleMessage - -```solidity -function executeSingleMessage(struct Internal.EVM2EVMMessage message, bytes[] offchainTokenData) external -``` - -Executes a single CCIP message on the offRamp - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| message | struct Internal.EVM2EVMMessage | - The CCIP message to be executed | -| offchainTokenData | bytes[] | - Additional offchain token data | - -## CCIPLocalSimulatorFork - -Works with Foundry only - -### CCIPSendRequested - -```solidity -event CCIPSendRequested(struct Internal.EVM2EVMMessage message) -``` - -Event emitted when a CCIP send request is made - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| message | struct Internal.EVM2EVMMessage | - The EVM2EVM message that was sent | - -### i_register - -```solidity -contract Register i_register -``` - -The immutable register instance - -### LINK_FAUCET - -```solidity -address LINK_FAUCET -``` - -The address of the LINK faucet - -### s_processedMessages - -```solidity -mapping(bytes32 => bool) s_processedMessages -``` - -Mapping to track processed messages - -### constructor - -```solidity -constructor() public -``` - -Constructor to initialize the contract - -### switchChainAndRouteMessage - -```solidity -function switchChainAndRouteMessage(uint256 forkId) external -``` - -To be called after the sending of the cross-chain message (`ccipSend`). Goes through the list of past logs and looks for the `CCIPSendRequested` event. Switches to a destination network fork. Routes the sent cross-chain message on the destination network. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| forkId | uint256 | - The ID of the destination network fork. This is the returned value of `createFork()` or `createSelectFork()` | - -### getNetworkDetails - -```solidity -function getNetworkDetails(uint256 chainId) external view returns (struct Register.NetworkDetails) -``` - -Returns the default values for currently CCIP supported networks. If network is not present or some of the values are changed, user can manually add new network details using the `setNetworkDetails` function. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| chainId | uint256 | - The blockchain network chain ID. For example 11155111 for Ethereum Sepolia. Not CCIP chain selector. | - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| [0] | struct Register.NetworkDetails | networkDetails - The tuple containing: chainSelector - The unique CCIP Chain Selector. routerAddress - The address of the CCIP Router contract. linkAddress - The address of the LINK token. wrappedNativeAddress - The address of the wrapped native token that can be used for CCIP fees. ccipBnMAddress - The address of the CCIP BnM token. ccipLnMAddress - The address of the CCIP LnM token. | - -### setNetworkDetails - -```solidity -function setNetworkDetails(uint256 chainId, struct Register.NetworkDetails networkDetails) external -``` - -If network details are not present or some of the values are changed, user can manually add new network details using the `setNetworkDetails` function. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| chainId | uint256 | - The blockchain network chain ID. For example 11155111 for Ethereum Sepolia. Not CCIP chain selector. | -| networkDetails | struct Register.NetworkDetails | - The tuple containing: chainSelector - The unique CCIP Chain Selector. routerAddress - The address of the CCIP Router contract. linkAddress - The address of the LINK token. wrappedNativeAddress - The address of the wrapped native token that can be used for CCIP fees. ccipBnMAddress - The address of the CCIP BnM token. ccipLnMAddress - The address of the CCIP LnM token. | - -### requestLinkFromFaucet - -```solidity -function requestLinkFromFaucet(address to, uint256 amount) external returns (bool success) -``` - -Requests LINK tokens from the faucet. The provided amount of tokens are transferred to provided destination address. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| to | address | - The address to which LINK tokens are to be sent. | -| amount | uint256 | - The amount of LINK tokens to send. | - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| success | bool | - Returns `true` if the transfer of tokens was successful, otherwise `false`. | - diff --git a/api_reference/ccip/MockEvm2EvmOffRamp.mdx b/api_reference/ccip/MockEvm2EvmOffRamp.mdx deleted file mode 100644 index 3db9a2e..0000000 --- a/api_reference/ccip/MockEvm2EvmOffRamp.mdx +++ /dev/null @@ -1,175 +0,0 @@ -# Solidity API - -## MockEvm2EvmOffRamp - -This contract handles off-ramp processes for CCIP messages - -### DynamicConfig - -```solidity -struct DynamicConfig { - uint32 permissionLessExecutionThresholdSeconds; - address router; - address priceRegistry; - uint16 maxNumberOfTokensPerMsg; - uint32 maxDataBytes; - uint32 maxPoolReleaseOrMintGas; -} -``` - -### i_sourceChainSelector - -```solidity -uint64 i_sourceChainSelector -``` - -_chain selector for the source chain_ - -### s_ccipLocalSimulator - -```solidity -address s_ccipLocalSimulator -``` - -_Address of the CCIP Local Simulator_ - -### s_dynamicConfig - -```solidity -struct MockEvm2EvmOffRamp.DynamicConfig s_dynamicConfig -``` - -_Dynamic configuration of the offramp_ - -### CanOnlySimulatorCall - -```solidity -error CanOnlySimulatorCall() -``` - -_Error thrown when a function can only be called by the simulator_ - -### ReceiverError - -```solidity -error ReceiverError(bytes error) -``` - -_Error thrown when there is an error in the receiver_ - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| error | bytes | The error data | - -### TokenHandlingError - -```solidity -error TokenHandlingError(bytes error) -``` - -_Error thrown when there is an error in token handling_ - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| error | bytes | The error data | - -### UnsupportedToken - -```solidity -error UnsupportedToken(contract IERC20 token) -``` - -_Error thrown when an unsupported token is encountered_ - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| token | contract IERC20 | The unsupported token | - -### constructor - -```solidity -constructor(address ccipLocalSimulator, struct MockEvm2EvmOffRamp.DynamicConfig dynamicConfig, struct RateLimiter.Config config, uint64 sourceChainSelector, address[] sourceTokens, address[] pools) public -``` - -Constructor to initialize the contract. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| ccipLocalSimulator | address | - Address of the CCIP local simulator. | -| dynamicConfig | struct MockEvm2EvmOffRamp.DynamicConfig | - Initial dynamic configuration parameters. | -| config | struct RateLimiter.Config | - Rate limiter configuration. | -| sourceChainSelector | uint64 | - Source chain selector. | -| sourceTokens | address[] | - List of supported tokens on the source chain. | -| pools | address[] | - List of pools corresponding to the supported tokens on the source chain. | - -### executeSingleMessage - -```solidity -function executeSingleMessage(struct Internal.EVM2EVMMessage message, bytes[] offchainTokenData) external -``` - -Executes a single CCIP message. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| message | struct Internal.EVM2EVMMessage | - The CCIP message to be executed. | -| offchainTokenData | bytes[] | - Additional off-chain token data. | - -### _releaseOrMintTokens - -```solidity -function _releaseOrMintTokens(struct Client.EVMTokenAmount[] sourceTokenAmounts, bytes originalSender, address receiver, bytes[] sourceTokenData, bytes[] offchainTokenData) internal returns (struct Client.EVMTokenAmount[]) -``` - -Uses pools to release or mint a number of different tokens to a receiver address. - -_This function wraps the token pool call in a try-catch block to gracefully handle -any non-rate limiting errors that may occur. If we encounter a rate limiting related error -we bubble it up. If we encounter a non-rate limiting error we wrap it in a TokenHandlingError._ - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| sourceTokenAmounts | struct Client.EVMTokenAmount[] | - List of tokens and amount values to be released/minted. | -| originalSender | bytes | - The message sender. | -| receiver | address | - The address that will receive the tokens. | -| sourceTokenData | bytes[] | - Array of token data returned by token pools on the source chain. | -| offchainTokenData | bytes[] | - Array of token data fetched offchain by the DON. | - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| [0] | struct Client.EVMTokenAmount[] | destTokenAmounts - The amounts of tokens released or minted. | - -### getPoolBySourceToken - -```solidity -function getPoolBySourceToken(contract IERC20 sourceToken) public view returns (contract IPool) -``` - -Get a token pool by its source token. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| sourceToken | contract IERC20 | - The source token. | - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| [0] | contract IPool | pool - The corresponding token pool. | - diff --git a/api_reference/data-feeds/MockOffchainAggregator.mdx b/api_reference/data-feeds/MockOffchainAggregator.mdx deleted file mode 100644 index b35583a..0000000 --- a/api_reference/data-feeds/MockOffchainAggregator.mdx +++ /dev/null @@ -1,175 +0,0 @@ -# Solidity API - -## MockOffchainAggregator - -This contract is a mock implementation of an offchain aggregator for testing purposes. - -_This contract simulates the behavior of an offchain aggregator and allows for updating answers and round data._ - -### decimals - -```solidity -uint8 decimals -``` - -The number of decimals used by the aggregator. - -### latestAnswer - -```solidity -int256 latestAnswer -``` - -The latest answer reported by the aggregator. - -### latestTimestamp - -```solidity -uint256 latestTimestamp -``` - -The timestamp of the latest answer. - -### latestRound - -```solidity -uint256 latestRound -``` - -The latest round ID. - -### minAnswer - -```solidity -int192 minAnswer -``` - -The minimum answer the aggregator is allowed to report. - -### maxAnswer - -```solidity -int192 maxAnswer -``` - -The maximum answer the aggregator is allowed to report. - -### getAnswer - -```solidity -mapping(uint256 => int256) getAnswer -``` - -Mapping to get the answer for a specific round ID. - -### getTimestamp - -```solidity -mapping(uint256 => uint256) getTimestamp -``` - -Mapping to get the timestamp for a specific round ID. - -### constructor - -```solidity -constructor(uint8 _decimals, int256 _initialAnswer) public -``` - -Constructor to initialize the MockOffchainAggregator contract with initial parameters. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| _decimals | uint8 | - The number of decimals for the aggregator. | -| _initialAnswer | int256 | - The initial answer to be set in the mock aggregator. | - -### updateAnswer - -```solidity -function updateAnswer(int256 _answer) public -``` - -Updates the answer in the mock aggregator. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| _answer | int256 | - The new answer to be set. | - -### updateRoundData - -```solidity -function updateRoundData(uint80 _roundId, int256 _answer, uint256 _timestamp, uint256 _startedAt) public -``` - -Updates the round data in the mock aggregator. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| _roundId | uint80 | - The round ID to be updated. | -| _answer | int256 | - The new answer to be set. | -| _timestamp | uint256 | - The timestamp to be set. | -| _startedAt | uint256 | - The timestamp when the round started. | - -### getRoundData - -```solidity -function getRoundData(uint80 _roundId) external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) -``` - -Gets the round data for a specific round ID. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| _roundId | uint80 | - The round ID to get the data for. | - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| roundId | uint80 | - The round ID. | -| answer | int256 | - The answer for the round. | -| startedAt | uint256 | - The timestamp when the round started. | -| updatedAt | uint256 | - The timestamp when the round was updated. | -| answeredInRound | uint80 | - The round ID in which the answer was computed. | - -### latestRoundData - -```solidity -function latestRoundData() external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) -``` - -Gets the latest round data. - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| roundId | uint80 | - The latest round ID. | -| answer | int256 | - The latest answer. | -| startedAt | uint256 | - The timestamp when the latest round started. | -| updatedAt | uint256 | - The timestamp when the latest round was updated. | -| answeredInRound | uint80 | - The round ID in which the latest answer was computed. | - -### updateMinAndMaxAnswers - -```solidity -function updateMinAndMaxAnswers(int192 _minAnswer, int192 _maxAnswer) external -``` - -Updates the minimum and maximum answers the aggregator can report. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| _minAnswer | int192 | - The new minimum answer. | -| _maxAnswer | int192 | - The new maximum answer. | - diff --git a/api_reference/data-feeds/MockV3Aggregator.mdx b/api_reference/data-feeds/MockV3Aggregator.mdx deleted file mode 100644 index e89dc53..0000000 --- a/api_reference/data-feeds/MockV3Aggregator.mdx +++ /dev/null @@ -1,262 +0,0 @@ -# Solidity API - -## MockV3Aggregator - -This contract is a mock implementation of the AggregatorV2V3Interface for testing purposes. - -_This contract interacts with a MockOffchainAggregator to simulate price feeds._ - -### version - -```solidity -uint256 version -``` - -The version of the aggregator. - -### aggregator - -```solidity -address aggregator -``` - -The address of the current aggregator. - -### proposedAggregator - -```solidity -address proposedAggregator -``` - -The address of the proposed aggregator. - -### constructor - -```solidity -constructor(uint8 _decimals, int256 _initialAnswer) public -``` - -Constructor to initialize the MockV3Aggregator contract with initial parameters. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| _decimals | uint8 | - The number of decimals for the aggregator. | -| _initialAnswer | int256 | - The initial answer to be set in the mock aggregator. | - -### decimals - -```solidity -function decimals() external view returns (uint8) -``` - -Gets the number of decimals used by the aggregator. - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| [0] | uint8 | uint8 - The number of decimals. | - -### getAnswer - -```solidity -function getAnswer(uint256 roundId) external view returns (int256) -``` - -Gets the answer for a specific round ID. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| roundId | uint256 | - The round ID to get the answer for. | - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| [0] | int256 | int256 - The answer for the given round ID. | - -### getRoundData - -```solidity -function getRoundData(uint80 _roundId) external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) -``` - -Gets the round data for a specific round ID. - -_This function should raise "No data present" if no data is available for the given round ID._ - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| _roundId | uint80 | - The round ID to get the data for. | - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| roundId | uint80 | - The round ID. | -| answer | int256 | - The answer for the round. | -| startedAt | uint256 | - The timestamp when the round started. | -| updatedAt | uint256 | - The timestamp when the round was updated. | -| answeredInRound | uint80 | - The round ID in which the answer was computed. | - -### latestRoundData - -```solidity -function latestRoundData() external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) -``` - -Gets the latest round data. - -_This function should raise "No data present" if no data is available._ - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| roundId | uint80 | - The latest round ID. | -| answer | int256 | - The latest answer. | -| startedAt | uint256 | - The timestamp when the latest round started. | -| updatedAt | uint256 | - The timestamp when the latest round was updated. | -| answeredInRound | uint80 | - The round ID in which the latest answer was computed. | - -### getTimestamp - -```solidity -function getTimestamp(uint256 roundId) external view returns (uint256) -``` - -Gets the timestamp for a specific round ID. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| roundId | uint256 | - The round ID to get the timestamp for. | - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| [0] | uint256 | uint256 - The timestamp for the given round ID. | - -### latestAnswer - -```solidity -function latestAnswer() external view returns (int256) -``` - -Gets the latest answer from the aggregator. - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| [0] | int256 | int256 - The latest answer. | - -### latestTimestamp - -```solidity -function latestTimestamp() external view returns (uint256) -``` - -Gets the timestamp of the latest answer from the aggregator. - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| [0] | uint256 | uint256 - The timestamp of the latest answer. | - -### latestRound - -```solidity -function latestRound() external view returns (uint256) -``` - -Gets the latest round ID from the aggregator. - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| [0] | uint256 | uint256 - The latest round ID. | - -### updateAnswer - -```solidity -function updateAnswer(int256 _answer) public -``` - -Updates the answer in the mock aggregator. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| _answer | int256 | - The new answer to be set. | - -### updateRoundData - -```solidity -function updateRoundData(uint80 _roundId, int256 _answer, uint256 _timestamp, uint256 _startedAt) public -``` - -Updates the round data in the mock aggregator. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| _roundId | uint80 | - The round ID to be updated. | -| _answer | int256 | - The new answer to be set. | -| _timestamp | uint256 | - The timestamp to be set. | -| _startedAt | uint256 | - The timestamp when the round started. | - -### proposeAggregator - -```solidity -function proposeAggregator(contract AggregatorV2V3Interface _aggregator) external -``` - -Proposes a new aggregator. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| _aggregator | contract AggregatorV2V3Interface | - The address of the proposed aggregator. | - -### confirmAggregator - -```solidity -function confirmAggregator(address _aggregator) external -``` - -Confirms the proposed aggregator. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| _aggregator | address | - The address of the proposed aggregator. | - -### description - -```solidity -function description() external pure returns (string) -``` - -Gets the description of the aggregator. - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| [0] | string | string memory - The description of the aggregator. | - diff --git a/api_reference/data-feeds/interfaces/AggregatorInterface.mdx b/api_reference/data-feeds/interfaces/AggregatorInterface.mdx deleted file mode 100644 index db4d7b3..0000000 --- a/api_reference/data-feeds/interfaces/AggregatorInterface.mdx +++ /dev/null @@ -1,122 +0,0 @@ -# Solidity API - -## AggregatorInterface - -Interface for accessing data from an aggregator contract. - -_Provides methods to get the latest data and historical data for specific rounds._ - -### latestAnswer - -```solidity -function latestAnswer() external view returns (int256) -``` - -Gets the latest answer from the aggregator. - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| [0] | int256 | int256 - The latest answer. | - -### latestTimestamp - -```solidity -function latestTimestamp() external view returns (uint256) -``` - -Gets the timestamp of the latest answer from the aggregator. - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| [0] | uint256 | uint256 - The timestamp of the latest answer. | - -### latestRound - -```solidity -function latestRound() external view returns (uint256) -``` - -Gets the latest round ID from the aggregator. - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| [0] | uint256 | uint256 - The latest round ID. | - -### getAnswer - -```solidity -function getAnswer(uint256 roundId) external view returns (int256) -``` - -Gets the answer for a specific round ID. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| roundId | uint256 | - The round ID to get the answer for. | - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| [0] | int256 | int256 - The answer for the given round ID. | - -### getTimestamp - -```solidity -function getTimestamp(uint256 roundId) external view returns (uint256) -``` - -Gets the timestamp for a specific round ID. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| roundId | uint256 | - The round ID to get the timestamp for. | - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| [0] | uint256 | uint256 - The timestamp for the given round ID. | - -### AnswerUpdated - -```solidity -event AnswerUpdated(int256 current, uint256 roundId, uint256 updatedAt) -``` - -Emitted when the answer is updated. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| current | int256 | - The updated answer. | -| roundId | uint256 | - The round ID for which the answer was updated. | -| updatedAt | uint256 | - The timestamp when the answer was updated. | - -### NewRound - -```solidity -event NewRound(uint256 roundId, address startedBy, uint256 startedAt) -``` - -Emitted when a new round is started. - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| roundId | uint256 | - The round ID of the new round. | -| startedBy | address | - The address of the account that started the round. | -| startedAt | uint256 | - The timestamp when the round was started. | - diff --git a/api_reference/data-feeds/interfaces/AggregatorV3Interface.mdx b/api_reference/data-feeds/interfaces/AggregatorV3Interface.mdx deleted file mode 100644 index 8cc4bee..0000000 --- a/api_reference/data-feeds/interfaces/AggregatorV3Interface.mdx +++ /dev/null @@ -1,96 +0,0 @@ -# Solidity API - -## AggregatorV3Interface - -Interface for accessing detailed data from an aggregator contract, including round data and metadata. - -_Provides methods to get the latest data, historical data for specific rounds, and metadata such as decimals and description._ - -### decimals - -```solidity -function decimals() external view returns (uint8) -``` - -Gets the number of decimals used by the aggregator. - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| [0] | uint8 | uint8 - The number of decimals. | - -### description - -```solidity -function description() external view returns (string) -``` - -Gets the description of the aggregator. - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| [0] | string | string memory - The description of the aggregator. | - -### version - -```solidity -function version() external view returns (uint256) -``` - -Gets the version of the aggregator. - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| [0] | uint256 | uint256 - The version of the aggregator. | - -### getRoundData - -```solidity -function getRoundData(uint80 _roundId) external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) -``` - -Gets the round data for a specific round ID. - -_This function should raise "No data present" if no data is available for the given round ID._ - -#### Parameters - -| Name | Type | Description | -| ---- | ---- | ----------- | -| _roundId | uint80 | - The round ID to get the data for. | - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| roundId | uint80 | - The round ID. | -| answer | int256 | - The answer for the round. | -| startedAt | uint256 | - The timestamp when the round started. | -| updatedAt | uint256 | - The timestamp when the round was updated. | -| answeredInRound | uint80 | - The round ID in which the answer was computed. | - -### latestRoundData - -```solidity -function latestRoundData() external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) -``` - -Gets the latest round data. - -_This function should raise "No data present" if no data is available._ - -#### Return Values - -| Name | Type | Description | -| ---- | ---- | ----------- | -| roundId | uint80 | - The latest round ID. | -| answer | int256 | - The latest answer. | -| startedAt | uint256 | - The timestamp when the latest round started. | -| updatedAt | uint256 | - The timestamp when the latest round was updated. | -| answeredInRound | uint80 | - The round ID in which the latest answer was computed. | - diff --git a/api_reference/index.mdx b/api_reference/index.mdx index 3c02f81..03d4d37 100644 --- a/api_reference/index.mdx +++ b/api_reference/index.mdx @@ -1,5 +1,4 @@ # API Reference -- [ccip](ccip/index.mdx) -- [data-feeds](data-feeds/index.mdx) -- [shared](shared/index.mdx) +- [javascript](javascript/index.mdx) +- [solidity](solidity/index.mdx) diff --git a/api_reference/javascript/CCIPLocalSimulatorFork.mdx b/api_reference/javascript/CCIPLocalSimulatorFork.mdx new file mode 100644 index 0000000..f27b0b1 --- /dev/null +++ b/api_reference/javascript/CCIPLocalSimulatorFork.mdx @@ -0,0 +1,86 @@ +## Functions + +
+
+ + requestLinkFromTheFaucet(linkAddress, to, amount) + {' '} + ⇒ Promise.<string> +
+
+

Requests LINK tokens from the faucet and returns the transaction hash

+
+
+ getEvm2EvmMessage(receipt) ⇒{' '} + object | null +
+
+

+ Parses a transaction receipt to extract the sent message Scans through + transaction logs to find a CCIPSendRequested event and then + decodes it to an object +

+
+
+ routeMessage(routerAddress, evm2EvmMessage) ⇒{' '} + Promise.<void> +
+
+

+ Routes the sent message from the source network on the destination + (current) network +

+
+
+ + + +## requestLinkFromTheFaucet(linkAddress, to, amount) ⇒ Promise.<string> + +Requests LINK tokens from the faucet and returns the transaction hash + +**Kind**: global function +**Returns**: Promise.<string> - Promise resolving to the +transaction hash of the fund transfer + +| Param | Type | Description | +| ----------- | ------------------- | ------------------------------------------------------- | +| linkAddress | string | The address of the LINK contract on the current network | +| to | string | The address to send LINK to | +| amount | bigint | The amount of LINK to request | + + + +## getEvm2EvmMessage(receipt) ⇒ object \| null + +Parses a transaction receipt to extract the sent message Scans through +transaction logs to find a `CCIPSendRequested` event and then decodes it to an +object + +**Kind**: global function +**Returns**: object \| null - Returns either the sent +message or null if provided receipt does not contain `CCIPSendRequested` log + +| Param | Type | Description | +| ------- | ------------------- | ------------------------------------------------ | +| receipt | object | The transaction receipt from the `ccipSend` call | + + + +## routeMessage(routerAddress, evm2EvmMessage) ⇒ Promise.<void> + +Routes the sent message from the source network on the destination (current) +network + +**Kind**: global function +**Returns**: Promise.<void> - Either resolves with no value +if the message is successfully routed, or reverts +**Throws**: + +- Error Fails if no off-ramp matches the message's source chain + selector or if calling `router.getOffRamps()` + +| Param | Type | Description | +| -------------- | ------------------- | --------------------------------- | +| routerAddress | string | Address of the destination Router | +| evm2EvmMessage | object | Sent cross-chain message | diff --git a/api_reference/javascript/index.mdx b/api_reference/javascript/index.mdx new file mode 100644 index 0000000..427c1d9 --- /dev/null +++ b/api_reference/javascript/index.mdx @@ -0,0 +1,3 @@ +# Javascript API Reference + +- [CCIPLocalSimulatorFork](CCIPLocalSimulatorFork.mdx) diff --git a/api_reference/ccip/BurnMintERC677Helper.mdx b/api_reference/solidity/ccip/BurnMintERC677Helper.mdx similarity index 54% rename from api_reference/ccip/BurnMintERC677Helper.mdx rename to api_reference/solidity/ccip/BurnMintERC677Helper.mdx index 0f2b619..092c44d 100644 --- a/api_reference/ccip/BurnMintERC677Helper.mdx +++ b/api_reference/solidity/ccip/BurnMintERC677Helper.mdx @@ -2,9 +2,11 @@ ## BurnMintERC677Helper -This contract extends the functionality of the BurnMintERC677 token contract to include a `drip` function that mints one full token to a specified address. +This contract extends the functionality of the BurnMintERC677 token contract to +include a `drip` function that mints one full token to a specified address. -_Inherits from the BurnMintERC677 contract and sets the token name, symbol, decimals, and initial supply in the constructor._ +_Inherits from the BurnMintERC677 contract and sets the token name, symbol, +decimals, and initial supply in the constructor._ ### constructor @@ -12,15 +14,17 @@ _Inherits from the BurnMintERC677 contract and sets the token name, symbol, deci constructor(string name, string symbol) public ``` -Constructor to initialize the BurnMintERC677Helper contract with a name and symbol. +Constructor to initialize the BurnMintERC677Helper contract with a name and +symbol. -_Calls the parent constructor of BurnMintERC677 with fixed decimals (18) and initial supply (0)._ +_Calls the parent constructor of BurnMintERC677 with fixed decimals (18) and +initial supply (0)._ #### Parameters -| Name | Type | Description | -| ---- | ---- | ----------- | -| name | string | - The name of the token. | +| Name | Type | Description | +| ------ | ------ | -------------------------- | +| name | string | - The name of the token. | | symbol | string | - The symbol of the token. | ### drip @@ -35,7 +39,6 @@ _Calls the internal `_mint` function from the BurnMintERC677 contract._ #### Parameters -| Name | Type | Description | -| ---- | ---- | ----------- | -| to | address | - The address to receive the minted token. | - +| Name | Type | Description | +| ---- | ------- | ------------------------------------------ | +| to | address | - The address to receive the minted token. | diff --git a/api_reference/ccip/CCIPLocalSimulator.mdx b/api_reference/solidity/ccip/CCIPLocalSimulator.mdx similarity index 51% rename from api_reference/ccip/CCIPLocalSimulator.mdx rename to api_reference/solidity/ccip/CCIPLocalSimulator.mdx index 64c3276..782a2b5 100644 --- a/api_reference/ccip/CCIPLocalSimulator.mdx +++ b/api_reference/solidity/ccip/CCIPLocalSimulator.mdx @@ -2,9 +2,11 @@ ## CCIPLocalSimulator -This contract simulates local CCIP (Cross-Chain Interoperability Protocol) operations for testing and development purposes. +This contract simulates local CCIP (Cross-Chain Interoperability Protocol) +operations for testing and development purposes. -_This contract includes methods to manage supported tokens and configurations for local simulations._ +_This contract includes methods to manage supported tokens and configurations +for local simulations._ ### CHAIN_SELECTOR @@ -76,12 +78,13 @@ Constructor to initialize the contract and pre-deployed token instances function supportNewToken(address tokenAddress) external ``` -Allows user to support any new token, besides CCIP BnM and CCIP LnM, for cross-chain transfers. +Allows user to support any new token, besides CCIP BnM and CCIP LnM, for +cross-chain transfers. #### Parameters -| Name | Type | Description | -| ---- | ---- | ----------- | +| Name | Type | Description | +| ------------ | ------- | ------------------------------------------------------------------ | | tokenAddress | address | - The address of the token to add to the list of supported tokens. | ### isChainSupported @@ -94,14 +97,14 @@ Checks whether the provided `chainSelector` is supported by the simulator. #### Parameters -| Name | Type | Description | -| ---- | ---- | ----------- | +| Name | Type | Description | +| ------------- | ------ | --------------------------------- | | chainSelector | uint64 | - The unique CCIP Chain Selector. | #### Return Values -| Name | Type | Description | -| ---- | ---- | ----------- | +| Name | Type | Description | +| --------- | ---- | ---------------------------------------------------------------- | | supported | bool | - Returns true if `chainSelector` is supported by the simulator. | ### getSupportedTokens @@ -110,18 +113,19 @@ Checks whether the provided `chainSelector` is supported by the simulator. function getSupportedTokens(uint64 chainSelector) external view returns (address[] tokens) ``` -Gets a list of token addresses that are supported for cross-chain transfers by the simulator. +Gets a list of token addresses that are supported for cross-chain transfers by +the simulator. #### Parameters -| Name | Type | Description | -| ---- | ---- | ----------- | +| Name | Type | Description | +| ------------- | ------ | --------------------------------- | | chainSelector | uint64 | - The unique CCIP Chain Selector. | #### Return Values -| Name | Type | Description | -| ---- | ---- | ----------- | +| Name | Type | Description | +| ------ | --------- | -------------------------------------------------------------------------------------------------- | | tokens | address[] | - Returns a list of token addresses that are supported for cross-chain transfers by the simulator. | ### requestLinkFromFaucet @@ -130,19 +134,20 @@ Gets a list of token addresses that are supported for cross-chain transfers by t function requestLinkFromFaucet(address to, uint256 amount) external returns (bool success) ``` -Requests LINK tokens from the faucet. The provided amount of tokens are transferred to provided destination address. +Requests LINK tokens from the faucet. The provided amount of tokens are +transferred to provided destination address. #### Parameters -| Name | Type | Description | -| ---- | ---- | ----------- | -| to | address | - The address to which LINK tokens are to be sent. | -| amount | uint256 | - The amount of LINK tokens to send. | +| Name | Type | Description | +| ------ | ------- | -------------------------------------------------- | +| to | address | - The address to which LINK tokens are to be sent. | +| amount | uint256 | - The amount of LINK tokens to send. | #### Return Values -| Name | Type | Description | -| ---- | ---- | ----------- | +| Name | Type | Description | +| ------- | ---- | ----------------------------------------------------------------------------- | | success | bool | - Returns `true` if the transfer of tokens was successful, otherwise `false`. | ### configuration @@ -151,17 +156,17 @@ Requests LINK tokens from the faucet. The provided amount of tokens are transfer function configuration() public view returns (uint64 chainSelector_, contract IRouterClient sourceRouter_, contract IRouterClient destinationRouter_, contract WETH9 wrappedNative_, contract LinkToken linkToken_, contract BurnMintERC677Helper ccipBnM_, contract BurnMintERC677Helper ccipLnM_) ``` -Returns configuration details for pre-deployed contracts and services needed for local CCIP simulations. +Returns configuration details for pre-deployed contracts and services needed for +local CCIP simulations. #### Return Values -| Name | Type | Description | -| ---- | ---- | ----------- | -| chainSelector_ | uint64 | - The unique CCIP Chain Selector. | -| sourceRouter_ | contract IRouterClient | - The source chain Router contract. | -| destinationRouter_ | contract IRouterClient | - The destination chain Router contract. | -| wrappedNative_ | contract WETH9 | - The wrapped native token which can be used for CCIP fees. | -| linkToken_ | contract LinkToken | - The LINK token. | -| ccipBnM_ | contract BurnMintERC677Helper | - The ccipBnM token. | -| ccipLnM_ | contract BurnMintERC677Helper | - The ccipLnM token. | - +| Name | Type | Description | +| ------------------- | ----------------------------- | ----------------------------------------------------------- | +| chainSelector\_ | uint64 | - The unique CCIP Chain Selector. | +| sourceRouter\_ | contract IRouterClient | - The source chain Router contract. | +| destinationRouter\_ | contract IRouterClient | - The destination chain Router contract. | +| wrappedNative\_ | contract WETH9 | - The wrapped native token which can be used for CCIP fees. | +| linkToken\_ | contract LinkToken | - The LINK token. | +| ccipBnM\_ | contract BurnMintERC677Helper | - The ccipBnM token. | +| ccipLnM\_ | contract BurnMintERC677Helper | - The ccipLnM token. | diff --git a/api_reference/solidity/ccip/CCIPLocalSimulatorFork.mdx b/api_reference/solidity/ccip/CCIPLocalSimulatorFork.mdx new file mode 100644 index 0000000..5c342d6 --- /dev/null +++ b/api_reference/solidity/ccip/CCIPLocalSimulatorFork.mdx @@ -0,0 +1,170 @@ +# Solidity API + +## IRouterFork + +### OffRamp + +```solidity +struct OffRamp { + uint64 sourceChainSelector; + address offRamp; +} +``` + +### getOffRamps + +```solidity +function getOffRamps() external view returns (struct IRouterFork.OffRamp[]) +``` + +Gets the list of offRamps + +#### Return Values + +| Name | Type | Description | +| ---- | ---------------------------- | ----------------------------------- | +| [0] | struct IRouterFork.OffRamp[] | offRamps - Array of OffRamp structs | + +## IEVM2EVMOffRampFork + +### executeSingleMessage + +```solidity +function executeSingleMessage(struct Internal.EVM2EVMMessage message, bytes[] offchainTokenData) external +``` + +Executes a single CCIP message on the offRamp + +#### Parameters + +| Name | Type | Description | +| ----------------- | ------------------------------ | --------------------------------- | +| message | struct Internal.EVM2EVMMessage | - The CCIP message to be executed | +| offchainTokenData | bytes[] | - Additional offchain token data | + +## CCIPLocalSimulatorFork + +Works with Foundry only + +### CCIPSendRequested + +```solidity +event CCIPSendRequested(struct Internal.EVM2EVMMessage message) +``` + +Event emitted when a CCIP send request is made + +#### Parameters + +| Name | Type | Description | +| ------- | ------------------------------ | ----------------------------------- | +| message | struct Internal.EVM2EVMMessage | - The EVM2EVM message that was sent | + +### i_register + +```solidity +contract Register i_register +``` + +The immutable register instance + +### LINK_FAUCET + +```solidity +address LINK_FAUCET +``` + +The address of the LINK faucet + +### s_processedMessages + +```solidity +mapping(bytes32 => bool) s_processedMessages +``` + +Mapping to track processed messages + +### constructor + +```solidity +constructor() public +``` + +Constructor to initialize the contract + +### switchChainAndRouteMessage + +```solidity +function switchChainAndRouteMessage(uint256 forkId) external +``` + +To be called after the sending of the cross-chain message (`ccipSend`). Goes +through the list of past logs and looks for the `CCIPSendRequested` event. +Switches to a destination network fork. Routes the sent cross-chain message on +the destination network. + +#### Parameters + +| Name | Type | Description | +| ------ | ------- | -------------------------------------------------------------------------------------------------------------- | +| forkId | uint256 | - The ID of the destination network fork. This is the returned value of `createFork()` or `createSelectFork()` | + +### getNetworkDetails + +```solidity +function getNetworkDetails(uint256 chainId) external view returns (struct Register.NetworkDetails) +``` + +Returns the default values for currently CCIP supported networks. If network is +not present or some of the values are changed, user can manually add new network +details using the `setNetworkDetails` function. + +#### Parameters + +| Name | Type | Description | +| ------- | ------- | ------------------------------------------------------------------------------------------------------ | +| chainId | uint256 | - The blockchain network chain ID. For example 11155111 for Ethereum Sepolia. Not CCIP chain selector. | + +#### Return Values + +| Name | Type | Description | +| ---- | ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [0] | struct Register.NetworkDetails | networkDetails - The tuple containing: chainSelector - The unique CCIP Chain Selector. routerAddress - The address of the CCIP Router contract. linkAddress - The address of the LINK token. wrappedNativeAddress - The address of the wrapped native token that can be used for CCIP fees. ccipBnMAddress - The address of the CCIP BnM token. ccipLnMAddress - The address of the CCIP LnM token. | + +### setNetworkDetails + +```solidity +function setNetworkDetails(uint256 chainId, struct Register.NetworkDetails networkDetails) external +``` + +If network details are not present or some of the values are changed, user can +manually add new network details using the `setNetworkDetails` function. + +#### Parameters + +| Name | Type | Description | +| -------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| chainId | uint256 | - The blockchain network chain ID. For example 11155111 for Ethereum Sepolia. Not CCIP chain selector. | +| networkDetails | struct Register.NetworkDetails | - The tuple containing: chainSelector - The unique CCIP Chain Selector. routerAddress - The address of the CCIP Router contract. linkAddress - The address of the LINK token. wrappedNativeAddress - The address of the wrapped native token that can be used for CCIP fees. ccipBnMAddress - The address of the CCIP BnM token. ccipLnMAddress - The address of the CCIP LnM token. | + +### requestLinkFromFaucet + +```solidity +function requestLinkFromFaucet(address to, uint256 amount) external returns (bool success) +``` + +Requests LINK tokens from the faucet. The provided amount of tokens are +transferred to provided destination address. + +#### Parameters + +| Name | Type | Description | +| ------ | ------- | -------------------------------------------------- | +| to | address | - The address to which LINK tokens are to be sent. | +| amount | uint256 | - The amount of LINK tokens to send. | + +#### Return Values + +| Name | Type | Description | +| ------- | ---- | ----------------------------------------------------------------------------- | +| success | bool | - Returns `true` if the transfer of tokens was successful, otherwise `false`. | diff --git a/api_reference/solidity/ccip/MockEvm2EvmOffRamp.mdx b/api_reference/solidity/ccip/MockEvm2EvmOffRamp.mdx new file mode 100644 index 0000000..d628ce5 --- /dev/null +++ b/api_reference/solidity/ccip/MockEvm2EvmOffRamp.mdx @@ -0,0 +1,176 @@ +# Solidity API + +## MockEvm2EvmOffRamp + +This contract handles off-ramp processes for CCIP messages + +### DynamicConfig + +```solidity +struct DynamicConfig { + uint32 permissionLessExecutionThresholdSeconds; + address router; + address priceRegistry; + uint16 maxNumberOfTokensPerMsg; + uint32 maxDataBytes; + uint32 maxPoolReleaseOrMintGas; +} +``` + +### i_sourceChainSelector + +```solidity +uint64 i_sourceChainSelector +``` + +_chain selector for the source chain_ + +### s_ccipLocalSimulator + +```solidity +address s_ccipLocalSimulator +``` + +_Address of the CCIP Local Simulator_ + +### s_dynamicConfig + +```solidity +struct MockEvm2EvmOffRamp.DynamicConfig s_dynamicConfig +``` + +_Dynamic configuration of the offramp_ + +### CanOnlySimulatorCall + +```solidity +error CanOnlySimulatorCall() +``` + +_Error thrown when a function can only be called by the simulator_ + +### ReceiverError + +```solidity +error ReceiverError(bytes error) +``` + +_Error thrown when there is an error in the receiver_ + +#### Parameters + +| Name | Type | Description | +| ----- | ----- | -------------- | +| error | bytes | The error data | + +### TokenHandlingError + +```solidity +error TokenHandlingError(bytes error) +``` + +_Error thrown when there is an error in token handling_ + +#### Parameters + +| Name | Type | Description | +| ----- | ----- | -------------- | +| error | bytes | The error data | + +### UnsupportedToken + +```solidity +error UnsupportedToken(contract IERC20 token) +``` + +_Error thrown when an unsupported token is encountered_ + +#### Parameters + +| Name | Type | Description | +| ----- | --------------- | --------------------- | +| token | contract IERC20 | The unsupported token | + +### constructor + +```solidity +constructor(address ccipLocalSimulator, struct MockEvm2EvmOffRamp.DynamicConfig dynamicConfig, struct RateLimiter.Config config, uint64 sourceChainSelector, address[] sourceTokens, address[] pools) public +``` + +Constructor to initialize the contract. + +#### Parameters + +| Name | Type | Description | +| ------------------- | --------------------------------------- | -------------------------------------------------------------------------- | +| ccipLocalSimulator | address | - Address of the CCIP local simulator. | +| dynamicConfig | struct MockEvm2EvmOffRamp.DynamicConfig | - Initial dynamic configuration parameters. | +| config | struct RateLimiter.Config | - Rate limiter configuration. | +| sourceChainSelector | uint64 | - Source chain selector. | +| sourceTokens | address[] | - List of supported tokens on the source chain. | +| pools | address[] | - List of pools corresponding to the supported tokens on the source chain. | + +### executeSingleMessage + +```solidity +function executeSingleMessage(struct Internal.EVM2EVMMessage message, bytes[] offchainTokenData) external +``` + +Executes a single CCIP message. + +#### Parameters + +| Name | Type | Description | +| ----------------- | ------------------------------ | ---------------------------------- | +| message | struct Internal.EVM2EVMMessage | - The CCIP message to be executed. | +| offchainTokenData | bytes[] | - Additional off-chain token data. | + +### \_releaseOrMintTokens + +```solidity +function _releaseOrMintTokens(struct Client.EVMTokenAmount[] sourceTokenAmounts, bytes originalSender, address receiver, bytes[] sourceTokenData, bytes[] offchainTokenData) internal returns (struct Client.EVMTokenAmount[]) +``` + +Uses pools to release or mint a number of different tokens to a receiver +address. + +_This function wraps the token pool call in a try-catch block to gracefully +handle any non-rate limiting errors that may occur. If we encounter a rate +limiting related error we bubble it up. If we encounter a non-rate limiting +error we wrap it in a TokenHandlingError._ + +#### Parameters + +| Name | Type | Description | +| ------------------ | ------------------------------ | ------------------------------------------------------------------ | +| sourceTokenAmounts | struct Client.EVMTokenAmount[] | - List of tokens and amount values to be released/minted. | +| originalSender | bytes | - The message sender. | +| receiver | address | - The address that will receive the tokens. | +| sourceTokenData | bytes[] | - Array of token data returned by token pools on the source chain. | +| offchainTokenData | bytes[] | - Array of token data fetched offchain by the DON. | + +#### Return Values + +| Name | Type | Description | +| ---- | ------------------------------ | ------------------------------------------------------------ | +| [0] | struct Client.EVMTokenAmount[] | destTokenAmounts - The amounts of tokens released or minted. | + +### getPoolBySourceToken + +```solidity +function getPoolBySourceToken(contract IERC20 sourceToken) public view returns (contract IPool) +``` + +Get a token pool by its source token. + +#### Parameters + +| Name | Type | Description | +| ----------- | --------------- | ------------------- | +| sourceToken | contract IERC20 | - The source token. | + +#### Return Values + +| Name | Type | Description | +| ---- | -------------- | ------------------------------------ | +| [0] | contract IPool | pool - The corresponding token pool. | diff --git a/api_reference/ccip/Register.mdx b/api_reference/solidity/ccip/Register.mdx similarity index 67% rename from api_reference/ccip/Register.mdx rename to api_reference/solidity/ccip/Register.mdx index 242b958..1ca6778 100644 --- a/api_reference/ccip/Register.mdx +++ b/api_reference/solidity/ccip/Register.mdx @@ -45,14 +45,14 @@ Retrieves network details for a given chain ID. #### Parameters -| Name | Type | Description | -| ---- | ---- | ----------- | +| Name | Type | Description | +| ------- | ------- | --------------------------------------------- | | chainId | uint256 | - The ID of the chain to get the details for. | #### Return Values -| Name | Type | Description | -| ---- | ---- | ----------- | +| Name | Type | Description | +| -------------- | ------------------------------ | ------------------------------------------------- | | networkDetails | struct Register.NetworkDetails | - The network details for the specified chain ID. | ### setNetworkDetails @@ -65,8 +65,7 @@ Sets the network details for a given chain ID. #### Parameters -| Name | Type | Description | -| ---- | ---- | ----------- | -| chainId | uint256 | - The ID of the chain to set the details for. | +| Name | Type | Description | +| -------------- | ------------------------------ | -------------------------------------------------------- | +| chainId | uint256 | - The ID of the chain to set the details for. | | networkDetails | struct Register.NetworkDetails | - The network details to set for the specified chain ID. | - diff --git a/api_reference/ccip/index.mdx b/api_reference/solidity/ccip/index.mdx similarity index 100% rename from api_reference/ccip/index.mdx rename to api_reference/solidity/ccip/index.mdx diff --git a/api_reference/solidity/data-feeds/MockOffchainAggregator.mdx b/api_reference/solidity/data-feeds/MockOffchainAggregator.mdx new file mode 100644 index 0000000..4ac4cd0 --- /dev/null +++ b/api_reference/solidity/data-feeds/MockOffchainAggregator.mdx @@ -0,0 +1,177 @@ +# Solidity API + +## MockOffchainAggregator + +This contract is a mock implementation of an offchain aggregator for testing +purposes. + +_This contract simulates the behavior of an offchain aggregator and allows for +updating answers and round data._ + +### decimals + +```solidity +uint8 decimals +``` + +The number of decimals used by the aggregator. + +### latestAnswer + +```solidity +int256 latestAnswer +``` + +The latest answer reported by the aggregator. + +### latestTimestamp + +```solidity +uint256 latestTimestamp +``` + +The timestamp of the latest answer. + +### latestRound + +```solidity +uint256 latestRound +``` + +The latest round ID. + +### minAnswer + +```solidity +int192 minAnswer +``` + +The minimum answer the aggregator is allowed to report. + +### maxAnswer + +```solidity +int192 maxAnswer +``` + +The maximum answer the aggregator is allowed to report. + +### getAnswer + +```solidity +mapping(uint256 => int256) getAnswer +``` + +Mapping to get the answer for a specific round ID. + +### getTimestamp + +```solidity +mapping(uint256 => uint256) getTimestamp +``` + +Mapping to get the timestamp for a specific round ID. + +### constructor + +```solidity +constructor(uint8 _decimals, int256 _initialAnswer) public +``` + +Constructor to initialize the MockOffchainAggregator contract with initial +parameters. + +#### Parameters + +| Name | Type | Description | +| --------------- | ------ | ------------------------------------------------------ | +| \_decimals | uint8 | - The number of decimals for the aggregator. | +| \_initialAnswer | int256 | - The initial answer to be set in the mock aggregator. | + +### updateAnswer + +```solidity +function updateAnswer(int256 _answer) public +``` + +Updates the answer in the mock aggregator. + +#### Parameters + +| Name | Type | Description | +| -------- | ------ | --------------------------- | +| \_answer | int256 | - The new answer to be set. | + +### updateRoundData + +```solidity +function updateRoundData(uint80 _roundId, int256 _answer, uint256 _timestamp, uint256 _startedAt) public +``` + +Updates the round data in the mock aggregator. + +#### Parameters + +| Name | Type | Description | +| ----------- | ------- | --------------------------------------- | +| \_roundId | uint80 | - The round ID to be updated. | +| \_answer | int256 | - The new answer to be set. | +| \_timestamp | uint256 | - The timestamp to be set. | +| \_startedAt | uint256 | - The timestamp when the round started. | + +### getRoundData + +```solidity +function getRoundData(uint80 _roundId) external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) +``` + +Gets the round data for a specific round ID. + +#### Parameters + +| Name | Type | Description | +| --------- | ------ | ----------------------------------- | +| \_roundId | uint80 | - The round ID to get the data for. | + +#### Return Values + +| Name | Type | Description | +| --------------- | ------- | ------------------------------------------------ | +| roundId | uint80 | - The round ID. | +| answer | int256 | - The answer for the round. | +| startedAt | uint256 | - The timestamp when the round started. | +| updatedAt | uint256 | - The timestamp when the round was updated. | +| answeredInRound | uint80 | - The round ID in which the answer was computed. | + +### latestRoundData + +```solidity +function latestRoundData() external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) +``` + +Gets the latest round data. + +#### Return Values + +| Name | Type | Description | +| --------------- | ------- | ------------------------------------------------------- | +| roundId | uint80 | - The latest round ID. | +| answer | int256 | - The latest answer. | +| startedAt | uint256 | - The timestamp when the latest round started. | +| updatedAt | uint256 | - The timestamp when the latest round was updated. | +| answeredInRound | uint80 | - The round ID in which the latest answer was computed. | + +### updateMinAndMaxAnswers + +```solidity +function updateMinAndMaxAnswers(int192 _minAnswer, int192 _maxAnswer) external +``` + +Updates the minimum and maximum answers the aggregator can report. + +#### Parameters + +| Name | Type | Description | +| ----------- | ------ | ------------------------- | +| \_minAnswer | int192 | - The new minimum answer. | +| \_maxAnswer | int192 | - The new maximum answer. | diff --git a/api_reference/solidity/data-feeds/MockV3Aggregator.mdx b/api_reference/solidity/data-feeds/MockV3Aggregator.mdx new file mode 100644 index 0000000..e7c8c25 --- /dev/null +++ b/api_reference/solidity/data-feeds/MockV3Aggregator.mdx @@ -0,0 +1,263 @@ +# Solidity API + +## MockV3Aggregator + +This contract is a mock implementation of the AggregatorV2V3Interface for +testing purposes. + +_This contract interacts with a MockOffchainAggregator to simulate price feeds._ + +### version + +```solidity +uint256 version +``` + +The version of the aggregator. + +### aggregator + +```solidity +address aggregator +``` + +The address of the current aggregator. + +### proposedAggregator + +```solidity +address proposedAggregator +``` + +The address of the proposed aggregator. + +### constructor + +```solidity +constructor(uint8 _decimals, int256 _initialAnswer) public +``` + +Constructor to initialize the MockV3Aggregator contract with initial parameters. + +#### Parameters + +| Name | Type | Description | +| --------------- | ------ | ------------------------------------------------------ | +| \_decimals | uint8 | - The number of decimals for the aggregator. | +| \_initialAnswer | int256 | - The initial answer to be set in the mock aggregator. | + +### decimals + +```solidity +function decimals() external view returns (uint8) +``` + +Gets the number of decimals used by the aggregator. + +#### Return Values + +| Name | Type | Description | +| ---- | ----- | ------------------------------- | +| [0] | uint8 | uint8 - The number of decimals. | + +### getAnswer + +```solidity +function getAnswer(uint256 roundId) external view returns (int256) +``` + +Gets the answer for a specific round ID. + +#### Parameters + +| Name | Type | Description | +| ------- | ------- | ------------------------------------- | +| roundId | uint256 | - The round ID to get the answer for. | + +#### Return Values + +| Name | Type | Description | +| ---- | ------ | ------------------------------------------- | +| [0] | int256 | int256 - The answer for the given round ID. | + +### getRoundData + +```solidity +function getRoundData(uint80 _roundId) external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) +``` + +Gets the round data for a specific round ID. + +_This function should raise "No data present" if no data is available for the +given round ID._ + +#### Parameters + +| Name | Type | Description | +| --------- | ------ | ----------------------------------- | +| \_roundId | uint80 | - The round ID to get the data for. | + +#### Return Values + +| Name | Type | Description | +| --------------- | ------- | ------------------------------------------------ | +| roundId | uint80 | - The round ID. | +| answer | int256 | - The answer for the round. | +| startedAt | uint256 | - The timestamp when the round started. | +| updatedAt | uint256 | - The timestamp when the round was updated. | +| answeredInRound | uint80 | - The round ID in which the answer was computed. | + +### latestRoundData + +```solidity +function latestRoundData() external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) +``` + +Gets the latest round data. + +_This function should raise "No data present" if no data is available._ + +#### Return Values + +| Name | Type | Description | +| --------------- | ------- | ------------------------------------------------------- | +| roundId | uint80 | - The latest round ID. | +| answer | int256 | - The latest answer. | +| startedAt | uint256 | - The timestamp when the latest round started. | +| updatedAt | uint256 | - The timestamp when the latest round was updated. | +| answeredInRound | uint80 | - The round ID in which the latest answer was computed. | + +### getTimestamp + +```solidity +function getTimestamp(uint256 roundId) external view returns (uint256) +``` + +Gets the timestamp for a specific round ID. + +#### Parameters + +| Name | Type | Description | +| ------- | ------- | ---------------------------------------- | +| roundId | uint256 | - The round ID to get the timestamp for. | + +#### Return Values + +| Name | Type | Description | +| ---- | ------- | ----------------------------------------------- | +| [0] | uint256 | uint256 - The timestamp for the given round ID. | + +### latestAnswer + +```solidity +function latestAnswer() external view returns (int256) +``` + +Gets the latest answer from the aggregator. + +#### Return Values + +| Name | Type | Description | +| ---- | ------ | --------------------------- | +| [0] | int256 | int256 - The latest answer. | + +### latestTimestamp + +```solidity +function latestTimestamp() external view returns (uint256) +``` + +Gets the timestamp of the latest answer from the aggregator. + +#### Return Values + +| Name | Type | Description | +| ---- | ------- | --------------------------------------------- | +| [0] | uint256 | uint256 - The timestamp of the latest answer. | + +### latestRound + +```solidity +function latestRound() external view returns (uint256) +``` + +Gets the latest round ID from the aggregator. + +#### Return Values + +| Name | Type | Description | +| ---- | ------- | ------------------------------ | +| [0] | uint256 | uint256 - The latest round ID. | + +### updateAnswer + +```solidity +function updateAnswer(int256 _answer) public +``` + +Updates the answer in the mock aggregator. + +#### Parameters + +| Name | Type | Description | +| -------- | ------ | --------------------------- | +| \_answer | int256 | - The new answer to be set. | + +### updateRoundData + +```solidity +function updateRoundData(uint80 _roundId, int256 _answer, uint256 _timestamp, uint256 _startedAt) public +``` + +Updates the round data in the mock aggregator. + +#### Parameters + +| Name | Type | Description | +| ----------- | ------- | --------------------------------------- | +| \_roundId | uint80 | - The round ID to be updated. | +| \_answer | int256 | - The new answer to be set. | +| \_timestamp | uint256 | - The timestamp to be set. | +| \_startedAt | uint256 | - The timestamp when the round started. | + +### proposeAggregator + +```solidity +function proposeAggregator(contract AggregatorV2V3Interface _aggregator) external +``` + +Proposes a new aggregator. + +#### Parameters + +| Name | Type | Description | +| ------------ | -------------------------------- | ----------------------------------------- | +| \_aggregator | contract AggregatorV2V3Interface | - The address of the proposed aggregator. | + +### confirmAggregator + +```solidity +function confirmAggregator(address _aggregator) external +``` + +Confirms the proposed aggregator. + +#### Parameters + +| Name | Type | Description | +| ------------ | ------- | ----------------------------------------- | +| \_aggregator | address | - The address of the proposed aggregator. | + +### description + +```solidity +function description() external pure returns (string) +``` + +Gets the description of the aggregator. + +#### Return Values + +| Name | Type | Description | +| ---- | ------ | -------------------------------------------------- | +| [0] | string | string memory - The description of the aggregator. | diff --git a/api_reference/data-feeds/index.mdx b/api_reference/solidity/data-feeds/index.mdx similarity index 100% rename from api_reference/data-feeds/index.mdx rename to api_reference/solidity/data-feeds/index.mdx diff --git a/api_reference/solidity/data-feeds/interfaces/AggregatorInterface.mdx b/api_reference/solidity/data-feeds/interfaces/AggregatorInterface.mdx new file mode 100644 index 0000000..506c2d4 --- /dev/null +++ b/api_reference/solidity/data-feeds/interfaces/AggregatorInterface.mdx @@ -0,0 +1,122 @@ +# Solidity API + +## AggregatorInterface + +Interface for accessing data from an aggregator contract. + +_Provides methods to get the latest data and historical data for specific +rounds._ + +### latestAnswer + +```solidity +function latestAnswer() external view returns (int256) +``` + +Gets the latest answer from the aggregator. + +#### Return Values + +| Name | Type | Description | +| ---- | ------ | --------------------------- | +| [0] | int256 | int256 - The latest answer. | + +### latestTimestamp + +```solidity +function latestTimestamp() external view returns (uint256) +``` + +Gets the timestamp of the latest answer from the aggregator. + +#### Return Values + +| Name | Type | Description | +| ---- | ------- | --------------------------------------------- | +| [0] | uint256 | uint256 - The timestamp of the latest answer. | + +### latestRound + +```solidity +function latestRound() external view returns (uint256) +``` + +Gets the latest round ID from the aggregator. + +#### Return Values + +| Name | Type | Description | +| ---- | ------- | ------------------------------ | +| [0] | uint256 | uint256 - The latest round ID. | + +### getAnswer + +```solidity +function getAnswer(uint256 roundId) external view returns (int256) +``` + +Gets the answer for a specific round ID. + +#### Parameters + +| Name | Type | Description | +| ------- | ------- | ------------------------------------- | +| roundId | uint256 | - The round ID to get the answer for. | + +#### Return Values + +| Name | Type | Description | +| ---- | ------ | ------------------------------------------- | +| [0] | int256 | int256 - The answer for the given round ID. | + +### getTimestamp + +```solidity +function getTimestamp(uint256 roundId) external view returns (uint256) +``` + +Gets the timestamp for a specific round ID. + +#### Parameters + +| Name | Type | Description | +| ------- | ------- | ---------------------------------------- | +| roundId | uint256 | - The round ID to get the timestamp for. | + +#### Return Values + +| Name | Type | Description | +| ---- | ------- | ----------------------------------------------- | +| [0] | uint256 | uint256 - The timestamp for the given round ID. | + +### AnswerUpdated + +```solidity +event AnswerUpdated(int256 current, uint256 roundId, uint256 updatedAt) +``` + +Emitted when the answer is updated. + +#### Parameters + +| Name | Type | Description | +| --------- | ------- | ------------------------------------------------ | +| current | int256 | - The updated answer. | +| roundId | uint256 | - The round ID for which the answer was updated. | +| updatedAt | uint256 | - The timestamp when the answer was updated. | + +### NewRound + +```solidity +event NewRound(uint256 roundId, address startedBy, uint256 startedAt) +``` + +Emitted when a new round is started. + +#### Parameters + +| Name | Type | Description | +| --------- | ------- | ---------------------------------------------------- | +| roundId | uint256 | - The round ID of the new round. | +| startedBy | address | - The address of the account that started the round. | +| startedAt | uint256 | - The timestamp when the round was started. | diff --git a/api_reference/data-feeds/interfaces/AggregatorV2V3Interface.mdx b/api_reference/solidity/data-feeds/interfaces/AggregatorV2V3Interface.mdx similarity index 99% rename from api_reference/data-feeds/interfaces/AggregatorV2V3Interface.mdx rename to api_reference/solidity/data-feeds/interfaces/AggregatorV2V3Interface.mdx index 497e3dc..8e48404 100644 --- a/api_reference/data-feeds/interfaces/AggregatorV2V3Interface.mdx +++ b/api_reference/solidity/data-feeds/interfaces/AggregatorV2V3Interface.mdx @@ -3,4 +3,3 @@ ## AggregatorV2V3Interface Interface that inherits from both AggregatorInterface and AggregatorV3Interface. - diff --git a/api_reference/solidity/data-feeds/interfaces/AggregatorV3Interface.mdx b/api_reference/solidity/data-feeds/interfaces/AggregatorV3Interface.mdx new file mode 100644 index 0000000..732f3d4 --- /dev/null +++ b/api_reference/solidity/data-feeds/interfaces/AggregatorV3Interface.mdx @@ -0,0 +1,98 @@ +# Solidity API + +## AggregatorV3Interface + +Interface for accessing detailed data from an aggregator contract, including +round data and metadata. + +_Provides methods to get the latest data, historical data for specific rounds, +and metadata such as decimals and description._ + +### decimals + +```solidity +function decimals() external view returns (uint8) +``` + +Gets the number of decimals used by the aggregator. + +#### Return Values + +| Name | Type | Description | +| ---- | ----- | ------------------------------- | +| [0] | uint8 | uint8 - The number of decimals. | + +### description + +```solidity +function description() external view returns (string) +``` + +Gets the description of the aggregator. + +#### Return Values + +| Name | Type | Description | +| ---- | ------ | -------------------------------------------------- | +| [0] | string | string memory - The description of the aggregator. | + +### version + +```solidity +function version() external view returns (uint256) +``` + +Gets the version of the aggregator. + +#### Return Values + +| Name | Type | Description | +| ---- | ------- | ---------------------------------------- | +| [0] | uint256 | uint256 - The version of the aggregator. | + +### getRoundData + +```solidity +function getRoundData(uint80 _roundId) external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) +``` + +Gets the round data for a specific round ID. + +_This function should raise "No data present" if no data is available for the +given round ID._ + +#### Parameters + +| Name | Type | Description | +| --------- | ------ | ----------------------------------- | +| \_roundId | uint80 | - The round ID to get the data for. | + +#### Return Values + +| Name | Type | Description | +| --------------- | ------- | ------------------------------------------------ | +| roundId | uint80 | - The round ID. | +| answer | int256 | - The answer for the round. | +| startedAt | uint256 | - The timestamp when the round started. | +| updatedAt | uint256 | - The timestamp when the round was updated. | +| answeredInRound | uint80 | - The round ID in which the answer was computed. | + +### latestRoundData + +```solidity +function latestRoundData() external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) +``` + +Gets the latest round data. + +_This function should raise "No data present" if no data is available._ + +#### Return Values + +| Name | Type | Description | +| --------------- | ------- | ------------------------------------------------------- | +| roundId | uint80 | - The latest round ID. | +| answer | int256 | - The latest answer. | +| startedAt | uint256 | - The timestamp when the latest round started. | +| updatedAt | uint256 | - The timestamp when the latest round was updated. | +| answeredInRound | uint80 | - The round ID in which the latest answer was computed. | diff --git a/api_reference/data-feeds/interfaces/index.mdx b/api_reference/solidity/data-feeds/interfaces/index.mdx similarity index 100% rename from api_reference/data-feeds/interfaces/index.mdx rename to api_reference/solidity/data-feeds/interfaces/index.mdx diff --git a/api_reference/solidity/index.mdx b/api_reference/solidity/index.mdx new file mode 100644 index 0000000..cea2004 --- /dev/null +++ b/api_reference/solidity/index.mdx @@ -0,0 +1,5 @@ +# Solidity API Reference + +- [ccip](ccip/index.mdx) +- [data-feeds](data-feeds/index.mdx) +- [shared](shared/index.mdx) diff --git a/api_reference/shared/LinkToken.mdx b/api_reference/solidity/shared/LinkToken.mdx similarity index 68% rename from api_reference/shared/LinkToken.mdx rename to api_reference/solidity/shared/LinkToken.mdx index dde4845..fbce236 100644 --- a/api_reference/shared/LinkToken.mdx +++ b/api_reference/solidity/shared/LinkToken.mdx @@ -4,7 +4,8 @@ This contract implements the ChainLink Token (LINK) using the ERC677 standard. -_Inherits from the ERC677 token contract and initializes with a fixed total supply and standard token details._ +_Inherits from the ERC677 token contract and initializes with a fixed total +supply and standard token details._ ### constructor @@ -12,11 +13,13 @@ _Inherits from the ERC677 token contract and initializes with a fixed total supp constructor() public ``` -Constructor to initialize the LinkToken contract with a fixed total supply, name, and symbol. +Constructor to initialize the LinkToken contract with a fixed total supply, +name, and symbol. -_Calls the ERC677 constructor with the name and symbol, and then mints the total supply to the contract deployer._ +_Calls the ERC677 constructor with the name and symbol, and then mints the total +supply to the contract deployer._ -### _onCreate +### \_onCreate ```solidity function _onCreate() internal virtual @@ -24,6 +27,6 @@ function _onCreate() internal virtual Hook that is called when this contract is created. -_Useful to override constructor behaviour in child contracts (e.g., LINK bridge tokens). - The default implementation mints 10**27 tokens to the contract deployer._ - +_Useful to override constructor behaviour in child contracts (e.g., LINK bridge +tokens). The default implementation mints 10\*\*27 tokens to the contract +deployer._ diff --git a/api_reference/shared/WETH9.mdx b/api_reference/solidity/shared/WETH9.mdx similarity index 98% rename from api_reference/shared/WETH9.mdx rename to api_reference/solidity/shared/WETH9.mdx index b4ef5be..3a82a03 100644 --- a/api_reference/shared/WETH9.mdx +++ b/api_reference/solidity/shared/WETH9.mdx @@ -62,7 +62,7 @@ mapping(address => mapping(address => uint256)) allowance receive() external payable ``` -### _deposit +### \_deposit ```solidity function _deposit() internal @@ -103,4 +103,3 @@ function transfer(address dst, uint256 wad) public returns (bool) ```solidity function transferFrom(address src, address dst, uint256 wad) public returns (bool) ``` - diff --git a/api_reference/shared/index.mdx b/api_reference/solidity/shared/index.mdx similarity index 100% rename from api_reference/shared/index.mdx rename to api_reference/solidity/shared/index.mdx diff --git a/hardhat.config.ts b/hardhat.config.ts index fb14665..3576b4b 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -17,7 +17,7 @@ const config: HardhatUserConfig = { pageExtension: ".mdx", templates: "custom_templates", exclude: ["test"], - outputDir: "api_reference", + outputDir: "api_reference/solidity", }, }; diff --git a/generate-index-files.ts b/helper_doc/generate-index-files.ts similarity index 96% rename from generate-index-files.ts rename to helper_doc/generate-index-files.ts index 042894b..eab92ff 100644 --- a/generate-index-files.ts +++ b/helper_doc/generate-index-files.ts @@ -2,7 +2,7 @@ import fs from "fs-extra"; import path from "path"; const MDX_EXTENSION = ".mdx"; -const rootDir = path.join(__dirname, "api_reference"); +const rootDir = path.join(process.cwd(), "api_reference"); const generateIndexFile = async (dir: string, header: string) => { const files = await fs.readdir(dir); diff --git a/helper_doc/generate-jsdoc.ts b/helper_doc/generate-jsdoc.ts new file mode 100644 index 0000000..6e09970 --- /dev/null +++ b/helper_doc/generate-jsdoc.ts @@ -0,0 +1,30 @@ +import fs from "fs-extra"; +import path from "path"; +import jsdoc2md from "jsdoc-to-markdown"; + +const MDX_EXTENSION = ".mdx"; +const outputDir = path.join(process.cwd(), "api_reference/javascript"); + +const jsFiles = ["scripts/CCIPLocalSimulatorFork.js"]; + +const generateMarkdownDocs = async ( + files: string[], + outputDirectory: string +) => { + await fs.ensureDir(outputDirectory); + + for (const file of files) { + const absoluteFilePath = path.join(process.cwd(), file); + const fileName = path.basename(file, path.extname(file)); + const outputPath = path.join( + outputDirectory, + `${fileName}${MDX_EXTENSION}` + ); + const markdown = await jsdoc2md.render({ files: absoluteFilePath }); + await fs.outputFile(outputPath, markdown); + } +}; + +generateMarkdownDocs(jsFiles, outputDir) + .then(() => console.log("Markdown documentation generated successfully.")) + .catch((err) => console.error(err)); diff --git a/package-lock.json b/package-lock.json index 81ac1f8..8da35d9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,9 +16,13 @@ "@nomicfoundation/hardhat-foundry": "^1.1.1", "@nomicfoundation/hardhat-toolbox": "^4.0.0", "@types/fs-extra": "^11.0.4", + "@types/jsdoc-to-markdown": "^7.0.6", "dotenv": "^16.4.5", "fs-extra": "^11.2.0", "hardhat": "^2.20.1", + "jsdoc-to-markdown": "^8.0.1", + "prettier": "^3.3.3", + "rimraf": "^6.0.1", "solidity-docgen": "^0.6.0-beta.36" } }, @@ -109,6 +113,19 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz", + "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", + "dev": true, + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/runtime": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", @@ -321,6 +338,21 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/@changesets/apply-release-plan/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/@changesets/apply-release-plan/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -853,6 +885,21 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/@changesets/write/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/@changesets/write/node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -1677,6 +1724,109 @@ "node": ">=14" } }, + "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==", + "dev": true, + "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.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", @@ -1705,6 +1855,19 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@jsdoc/salty": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.8.tgz", + "integrity": "sha512-5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "lodash": "^4.17.21" + }, + "engines": { + "node": ">=v12.0.0" + } + }, "node_modules/@manypkg/find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@manypkg/find-root/-/find-root-1.1.0.tgz", @@ -2628,6 +2791,17 @@ "node": ">=8" } }, + "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==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@scroll-tech/contracts": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@scroll-tech/contracts/-/contracts-0.1.0.tgz", @@ -3021,6 +3195,13 @@ "node": ">=8" } }, + "node_modules/@types/jsdoc-to-markdown": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/jsdoc-to-markdown/-/jsdoc-to-markdown-7.0.6.tgz", + "integrity": "sha512-FB/oOam8P4WoGbkfLu6ciektQhqlVuL4VsbrGJp3/YDAlRGcoiOhXDnnPL73TtHYMsDZ7NHYhCGJn4hu0TZdHg==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/jsonfile": { "version": "6.1.4", "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz", @@ -3031,12 +3212,37 @@ "@types/node": "*" } }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", "dev": true }, + "node_modules/@types/markdown-it": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.1.tgz", + "integrity": "sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/minimatch": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", @@ -3250,6 +3456,19 @@ "node": ">=6" } }, + "node_modules/ansi-escape-sequences": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", + "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -3322,7 +3541,6 @@ "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", "dev": true, - "peer": true, "engines": { "node": ">=6" } @@ -3554,6 +3772,13 @@ "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", "devOptional": true }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true, + "license": "MIT" + }, "node_modules/bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", @@ -3765,6 +3990,31 @@ "node": ">= 0.8" } }, + "node_modules/cache-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-2.0.0.tgz", + "integrity": "sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^4.0.1", + "fs-then-native": "^2.0.0", + "mkdirp2": "^1.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cache-point/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -3826,6 +4076,19 @@ "dev": true, "peer": true }, + "node_modules/catharsis": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", + "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.15" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/cbor": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", @@ -4051,6 +4314,20 @@ "node": ">=0.8" } }, + "node_modules/collect-all": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz", + "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "stream-connect": "^1.0.2", + "stream-via": "^1.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -4098,7 +4375,6 @@ "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "dev": true, - "peer": true, "dependencies": { "array-back": "^3.1.0", "find-replace": "^3.0.0", @@ -4109,6 +4385,100 @@ "node": ">=4.0.0" } }, + "node_modules/command-line-tool": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz", + "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "command-line-args": "^5.0.0", + "command-line-usage": "^4.1.0", + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-tool/node_modules/array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-tool/node_modules/command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "table-layout": "^0.4.2", + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-tool/node_modules/reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/command-line-tool/node_modules/table-layout": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", + "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^2.0.0", + "deep-extend": "~0.6.0", + "lodash.padend": "^4.6.1", + "typical": "^2.6.1", + "wordwrapjs": "^3.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-tool/node_modules/typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", + "dev": true, + "license": "MIT" + }, + "node_modules/command-line-tool/node_modules/wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "reduce-flatten": "^1.0.1", + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/command-line-usage": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", @@ -4151,6 +4521,16 @@ "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", "dev": true }, + "node_modules/common-sequence": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.2.tgz", + "integrity": "sha512-jAg09gkdkrDO9EWTdXfv80WWH3yeZl5oT69fGfedBNS9pXUKYInVJ1bJ+/ht2+Moeei48TmSbQDYMc8EOx9G0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/compare-versions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.0.tgz", @@ -4211,6 +4591,26 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/config-master": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz", + "integrity": "sha512-n7LBL1zBzYdTpF1mx5DNcZnZn05CWIdsdvtPL4MosvqbBUK3Rq6VWEtGUuF3Y0s9/CIhMejezqlSkP6TnCJ/9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "walk-back": "^2.0.1" + } + }, + "node_modules/config-master/node_modules/walk-back": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz", + "integrity": "sha512-Nb6GvBR8UWX1D+Le+xUq0+Q1kFmRBIWVrfLnQAOmcpEzA9oAxwJ9gIr36t9TWYfzvWRvuMtjHiVsJYEkXWaTAQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/cookie": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", @@ -4459,7 +4859,6 @@ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, - "peer": true, "engines": { "node": ">=4.0.0" } @@ -4574,10 +4973,54 @@ "node": ">=8" } }, - "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "node_modules/dmd": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/dmd/-/dmd-6.2.0.tgz", + "integrity": "sha512-uXWxLF1H7TkUAuoHK59/h/ts5cKavm2LnhrIgJWisip4BVzPoXavlwyoprFFn2CzcahKYgvkfaebS6oxzgflkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^6.2.2", + "cache-point": "^2.0.0", + "common-sequence": "^2.0.2", + "file-set": "^4.0.2", + "handlebars": "^4.7.7", + "marked": "^4.2.3", + "object-get": "^2.1.1", + "reduce-flatten": "^3.0.1", + "reduce-unique": "^2.0.1", + "reduce-without": "^1.0.1", + "test-value": "^3.0.0", + "walk-back": "^5.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dmd/node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, + "node_modules/dmd/node_modules/reduce-flatten": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.1.tgz", + "integrity": "sha512-bYo+97BmUUOzg09XwfkwALt4PQH1M5L0wzKerBt6WLm3Fhdd43mMS89HiT1B9pJIqko/6lWx3OnV4J9f2Kqp5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", "dev": true, "engines": { "node": ">=12" @@ -4586,6 +5029,13 @@ "url": "https://dotenvx.com" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, "node_modules/elliptic": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", @@ -4622,6 +5072,19 @@ "node": ">=8.6" } }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", @@ -5204,6 +5667,30 @@ "reusify": "^1.0.4" } }, + "node_modules/file-set": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/file-set/-/file-set-4.0.2.tgz", + "integrity": "sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^5.0.0", + "glob": "^7.1.6" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/file-set/node_modules/array-back": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", + "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -5220,7 +5707,6 @@ "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", "dev": true, - "peer": true, "dependencies": { "array-back": "^3.0.1" }, @@ -5294,6 +5780,100 @@ "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "dev": true, + "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/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/foreground-child/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -5337,6 +5917,16 @@ "dev": true, "peer": true }, + "node_modules/fs-then-native": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", + "integrity": "sha512-X712jAOaWXkemQCAmWeg5rOT2i+KOpWz1Z/txk/cW0qlOu2oQ9H61vc5w3X/iyuUEfq/OyaFJ78/cZAQD1/bgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -6431,6 +7021,25 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, + "node_modules/jackspeak": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.1.tgz", + "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/js-sdsl": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.2.tgz", @@ -6463,6 +7072,169 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/js2xmlparser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "xmlcreate": "^2.0.4" + } + }, + "node_modules/jsdoc": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.3.tgz", + "integrity": "sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@babel/parser": "^7.20.15", + "@jsdoc/salty": "^0.2.1", + "@types/markdown-it": "^14.1.1", + "bluebird": "^3.7.2", + "catharsis": "^0.9.0", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.2", + "klaw": "^3.0.0", + "markdown-it": "^14.1.0", + "markdown-it-anchor": "^8.6.7", + "marked": "^4.0.10", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "underscore": "~1.13.2" + }, + "bin": { + "jsdoc": "jsdoc.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/jsdoc-api": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-8.0.0.tgz", + "integrity": "sha512-Rnhor0suB1Ds1abjmFkFfKeD+kSMRN9oHMTMZoJVUrmtCGDwXty+sWMA9sa4xbe4UyxuPjhC7tavZ40mDKK6QQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^6.2.2", + "cache-point": "^2.0.0", + "collect-all": "^1.0.4", + "file-set": "^4.0.2", + "fs-then-native": "^2.0.0", + "jsdoc": "^4.0.0", + "object-to-spawn-args": "^2.0.1", + "temp-path": "^1.0.0", + "walk-back": "^5.1.0" + }, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/jsdoc-api/node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, + "node_modules/jsdoc-parse": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.2.1.tgz", + "integrity": "sha512-9viGRUUtWOk/G4V0+nQ6rfLucz5plxh5I74WbNSNm9h9NWugCDVX4jbG8hZP9QqKGpdTPDE+qJXzaYNos3wqTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^6.2.2", + "lodash.omit": "^4.5.0", + "reduce-extract": "^1.0.0", + "sort-array": "^4.1.5", + "test-value": "^3.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/jsdoc-parse/node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, + "node_modules/jsdoc-to-markdown": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-8.0.1.tgz", + "integrity": "sha512-qJfNJhkq2C26UYoOdj8L1yheTJlk1veCsxwRejRmj07XZKCn7oSkuPErx6+JoNi8afCaUKdIM5oUu0uF2/T8iw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^6.2.2", + "command-line-tool": "^0.8.0", + "config-master": "^3.1.0", + "dmd": "^6.2.0", + "jsdoc-api": "^8.0.0", + "jsdoc-parse": "^6.2.1", + "walk-back": "^5.1.0" + }, + "bin": { + "jsdoc2md": "bin/cli.js" + }, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/jsdoc-to-markdown/node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, + "node_modules/jsdoc/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jsdoc/node_modules/klaw": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", + "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.9" + } + }, + "node_modules/jsdoc/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -6563,6 +7335,16 @@ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, "node_modules/load-yaml-file": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", @@ -6632,8 +7414,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/lodash.clonedeep": { "version": "4.5.0", @@ -6649,6 +7430,20 @@ "dev": true, "peer": true }, + "node_modules/lodash.omit": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.startcase": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", @@ -6788,6 +7583,35 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it-anchor": { + "version": "8.6.7", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", + "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", + "dev": true, + "license": "Unlicense", + "peerDependencies": { + "@types/markdown-it": "*", + "markdown-it": "*" + } + }, "node_modules/markdown-table": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", @@ -6795,6 +7619,19 @@ "dev": true, "peer": true }, + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true, + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -6806,6 +7643,13 @@ "safe-buffer": "^5.1.2" } }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true, + "license": "MIT" + }, "node_modules/memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -6986,6 +7830,16 @@ "node": ">=0.10.0" } }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mixme": { "version": "0.5.10", "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.5.10.tgz", @@ -7007,6 +7861,13 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/mkdirp2": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.5.tgz", + "integrity": "sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==", + "dev": true, + "license": "MIT" + }, "node_modules/mnemonist": { "version": "0.38.5", "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", @@ -7384,6 +8245,13 @@ "node": ">=0.10.0" } }, + "node_modules/object-get": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz", + "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==", + "dev": true, + "license": "MIT" + }, "node_modules/object-inspect": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", @@ -7400,6 +8268,16 @@ "node": ">= 0.4" } }, + "node_modules/object-to-spawn-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-2.0.1.tgz", + "integrity": "sha512-6FuKFQ39cOID+BMZ3QaphcC8Y4cw6LXBLyIgPU+OhIYwviJamPAn+4mITapnSBQrejB+NNp+FMskhD8Cq+Ys3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/object.assign": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", @@ -7551,6 +8429,13 @@ "node": ">=4" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/parse-cache-control": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", @@ -7671,6 +8556,19 @@ "node": ">=8" } }, + "node_modules/patch-package/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, "node_modules/patch-package/node_modules/semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", @@ -7728,6 +8626,33 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", + "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -7957,14 +8882,16 @@ } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "license": "MIT", "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -8020,6 +8947,16 @@ "node": ">=6" } }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/qs": { "version": "6.11.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", @@ -8307,6 +9244,53 @@ "node": ">=8" } }, + "node_modules/reduce-extract": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz", + "integrity": "sha512-QF8vjWx3wnRSL5uFMyCjDeDc5EBMiryoT9tz94VvgjKfzecHAVnqmXAwQDcr7X4JmLc2cjkjFGCVzhMqDjgR9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "test-value": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reduce-extract/node_modules/array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "typical": "^2.6.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/reduce-extract/node_modules/test-value": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz", + "integrity": "sha512-wrsbRo7qP+2Je8x8DsK8ovCGyxe3sYfQwOraIY/09A2gFXU9DYKiTF14W4ki/01AEh56kMzAmlj9CaHGDDUBJA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^1.0.2", + "typical": "^2.4.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reduce-extract/node_modules/typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", + "dev": true, + "license": "MIT" + }, "node_modules/reduce-flatten": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", @@ -8317,6 +9301,63 @@ "node": ">=6" } }, + "node_modules/reduce-unique": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz", + "integrity": "sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/reduce-without": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz", + "integrity": "sha512-zQv5y/cf85sxvdrKPlfcRzlDn/OqKFThNimYmsS3flmkioKvkUGn2Qg9cJVoQiEvdxFGLE0MQER/9fZ9sUqdxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "test-value": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reduce-without/node_modules/array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "typical": "^2.6.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/reduce-without/node_modules/test-value": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", + "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^1.0.3", + "typical": "^2.6.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reduce-without/node_modules/typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", + "dev": true, + "license": "MIT" + }, "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", @@ -8387,6 +9428,16 @@ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, + "node_modules/requizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz", + "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21" + } + }, "node_modules/resolve": { "version": "1.17.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", @@ -8417,24 +9468,83 @@ "node": ">= 4" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", + "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^11.0.0", + "package-json-from-dist": "^1.0.0" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "node_modules/rimraf/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, + "license": "ISC", "dependencies": { - "glob": "^7.1.3" + "brace-expansion": "^2.0.1" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/ripemd160": { @@ -9138,6 +10248,20 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/solc/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, "node_modules/solc/node_modules/semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", @@ -9275,6 +10399,40 @@ "hardhat": "^2.8.0" } }, + "node_modules/sort-array": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-4.1.5.tgz", + "integrity": "sha512-Ya4peoS1fgFN42RN1REk2FgdNOeLIEMKFGJvs7VTP3OklF8+kl2SkpVliZ4tk/PurWsrWRsdNdU+tgyOBkB9sA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^5.0.0", + "typical": "^6.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sort-array/node_modules/array-back": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", + "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/sort-array/node_modules/typical": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz", + "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/source-map": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", @@ -9404,6 +10562,39 @@ "node": ">= 0.8" } }, + "node_modules/stream-connect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz", + "integrity": "sha512-68Kl+79cE0RGKemKkhxTSg8+6AGrqBt+cbZAXevg2iJ6Y3zX4JhA/sZeGzLpxW9cXhmqAcE7KnJCisUmIUfnFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-connect/node_modules/array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "typical": "^2.6.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/stream-connect/node_modules/typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", + "dev": true, + "license": "MIT" + }, "node_modules/stream-transform": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.3.tgz", @@ -9412,6 +10603,16 @@ "mixme": "^0.5.1" } }, + "node_modules/stream-via": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz", + "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -9441,6 +10642,22 @@ "node": ">=8" } }, + "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==", + "dev": true, + "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.prototype.trim": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", @@ -9498,6 +10715,20 @@ "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -9631,6 +10862,13 @@ "node": ">=8" } }, + "node_modules/temp-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz", + "integrity": "sha512-TvmyH7kC6ZVTYkqCODjJIbgvu0FKiwQpZ4D1aknE7xpcDf/qEOB8KZEK5ef2pfbVoiBhNWs3yx4y+ESMtNYmlg==", + "dev": true, + "license": "MIT" + }, "node_modules/term-size": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", @@ -9642,6 +10880,40 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^2.0.0", + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/test-value/node_modules/array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/test-value/node_modules/typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", + "dev": true, + "license": "MIT" + }, "node_modules/then-request": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", @@ -10151,6 +11423,23 @@ "node": ">=10" } }, + "node_modules/typechain/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/typechain/node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -10256,11 +11545,17 @@ "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", "dev": true, - "peer": true, "engines": { "node": ">=8" } }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, + "license": "MIT" + }, "node_modules/uglify-js": { "version": "3.17.4", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", @@ -10288,6 +11583,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "dev": true, + "license": "MIT" + }, "node_modules/undici": { "version": "5.28.3", "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz", @@ -10371,6 +11673,16 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/walk-back": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.0.tgz", + "integrity": "sha512-Uhxps5yZcVNbLEAnb+xaEEMdgTXl9qAQDzKYejG2AZ7qPwRQ81lozY9ECDbjLPNWm7YsO1IK5rsP1KoQzXAcGA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -10595,6 +11907,61 @@ "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==", + "dev": true, + "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/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -10652,6 +12019,13 @@ } } }, + "node_modules/xmlcreate": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", + "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -10819,6 +12193,12 @@ "picocolors": "^1.0.0" } }, + "@babel/parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz", + "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", + "dev": true + }, "@babel/runtime": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", @@ -10997,6 +12377,11 @@ "graceful-fs": "^4.1.6" } }, + "prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==" + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -11444,6 +12829,11 @@ "graceful-fs": "^4.1.6" } }, + "prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==" + }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -11929,12 +13319,77 @@ "@ethersproject/strings": "^5.7.0" } }, - "@fastify/busboy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", - "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", - "dev": true - }, + "@fastify/busboy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", + "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", + "dev": true + }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "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.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } + } + }, "@jridgewell/resolve-uri": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", @@ -11960,6 +13415,15 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "@jsdoc/salty": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.8.tgz", + "integrity": "sha512-5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg==", + "dev": true, + "requires": { + "lodash": "^4.17.21" + } + }, "@manypkg/find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@manypkg/find-root/-/find-root-1.1.0.tgz", @@ -12613,6 +14077,13 @@ } } }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true + }, "@scroll-tech/contracts": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@scroll-tech/contracts/-/contracts-0.1.0.tgz", @@ -12960,6 +14431,12 @@ } } }, + "@types/jsdoc-to-markdown": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/jsdoc-to-markdown/-/jsdoc-to-markdown-7.0.6.tgz", + "integrity": "sha512-FB/oOam8P4WoGbkfLu6ciektQhqlVuL4VsbrGJp3/YDAlRGcoiOhXDnnPL73TtHYMsDZ7NHYhCGJn4hu0TZdHg==", + "dev": true + }, "@types/jsonfile": { "version": "6.1.4", "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz", @@ -12969,12 +14446,34 @@ "@types/node": "*" } }, + "@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "dev": true + }, "@types/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", "dev": true }, + "@types/markdown-it": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.1.tgz", + "integrity": "sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==", + "dev": true, + "requires": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true + }, "@types/minimatch": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", @@ -13162,6 +14661,15 @@ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==" }, + "ansi-escape-sequences": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", + "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", + "dev": true, + "requires": { + "array-back": "^3.0.1" + } + }, "ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -13218,8 +14726,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true, - "peer": true + "dev": true }, "array-buffer-byte-length": { "version": "1.0.1", @@ -13390,6 +14897,12 @@ "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", "devOptional": true }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, "bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", @@ -13561,6 +15074,25 @@ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true }, + "cache-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-2.0.0.tgz", + "integrity": "sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==", + "dev": true, + "requires": { + "array-back": "^4.0.1", + "fs-then-native": "^2.0.0", + "mkdirp2": "^1.0.4" + }, + "dependencies": { + "array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true + } + } + }, "call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -13603,6 +15135,15 @@ "dev": true, "peer": true }, + "catharsis": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", + "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, "cbor": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", @@ -13775,6 +15316,16 @@ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==" }, + "collect-all": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz", + "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==", + "dev": true, + "requires": { + "stream-connect": "^1.0.2", + "stream-via": "^1.0.4" + } + }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -13816,7 +15367,6 @@ "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "dev": true, - "peer": true, "requires": { "array-back": "^3.1.0", "find-replace": "^3.0.0", @@ -13824,6 +15374,77 @@ "typical": "^4.0.0" } }, + "command-line-tool": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz", + "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "command-line-args": "^5.0.0", + "command-line-usage": "^4.1.0", + "typical": "^2.6.1" + }, + "dependencies": { + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "^2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "table-layout": "^0.4.2", + "typical": "^2.6.1" + } + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==", + "dev": true + }, + "table-layout": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", + "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "deep-extend": "~0.6.0", + "lodash.padend": "^4.6.1", + "typical": "^2.6.1", + "wordwrapjs": "^3.0.0" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "^1.0.1", + "typical": "^2.6.1" + } + } + } + }, "command-line-usage": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", @@ -13859,6 +15480,12 @@ "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", "dev": true }, + "common-sequence": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.2.tgz", + "integrity": "sha512-jAg09gkdkrDO9EWTdXfv80WWH3yeZl5oT69fGfedBNS9pXUKYInVJ1bJ+/ht2+Moeei48TmSbQDYMc8EOx9G0g==", + "dev": true + }, "compare-versions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.0.tgz", @@ -13918,6 +15545,23 @@ } } }, + "config-master": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz", + "integrity": "sha512-n7LBL1zBzYdTpF1mx5DNcZnZn05CWIdsdvtPL4MosvqbBUK3Rq6VWEtGUuF3Y0s9/CIhMejezqlSkP6TnCJ/9g==", + "dev": true, + "requires": { + "walk-back": "^2.0.1" + }, + "dependencies": { + "walk-back": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz", + "integrity": "sha512-Nb6GvBR8UWX1D+Le+xUq0+Q1kFmRBIWVrfLnQAOmcpEzA9oAxwJ9gIr36t9TWYfzvWRvuMtjHiVsJYEkXWaTAQ==", + "dev": true + } + } + }, "cookie": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", @@ -14107,8 +15751,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "peer": true + "dev": true }, "deep-is": { "version": "0.1.4", @@ -14187,12 +15830,52 @@ "path-type": "^4.0.0" } }, + "dmd": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/dmd/-/dmd-6.2.0.tgz", + "integrity": "sha512-uXWxLF1H7TkUAuoHK59/h/ts5cKavm2LnhrIgJWisip4BVzPoXavlwyoprFFn2CzcahKYgvkfaebS6oxzgflkg==", + "dev": true, + "requires": { + "array-back": "^6.2.2", + "cache-point": "^2.0.0", + "common-sequence": "^2.0.2", + "file-set": "^4.0.2", + "handlebars": "^4.7.7", + "marked": "^4.2.3", + "object-get": "^2.1.1", + "reduce-flatten": "^3.0.1", + "reduce-unique": "^2.0.1", + "reduce-without": "^1.0.1", + "test-value": "^3.0.0", + "walk-back": "^5.1.0" + }, + "dependencies": { + "array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", + "dev": true + }, + "reduce-flatten": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.1.tgz", + "integrity": "sha512-bYo+97BmUUOzg09XwfkwALt4PQH1M5L0wzKerBt6WLm3Fhdd43mMS89HiT1B9pJIqko/6lWx3OnV4J9f2Kqp5Q==", + "dev": true + } + } + }, "dotenv": { "version": "16.4.5", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", "dev": true }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "elliptic": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", @@ -14228,6 +15911,12 @@ "strip-ansi": "^6.0.1" } }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true + }, "env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", @@ -14697,6 +16386,24 @@ "reusify": "^1.0.4" } }, + "file-set": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/file-set/-/file-set-4.0.2.tgz", + "integrity": "sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==", + "dev": true, + "requires": { + "array-back": "^5.0.0", + "glob": "^7.1.6" + }, + "dependencies": { + "array-back": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", + "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", + "dev": true + } + } + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -14710,7 +16417,6 @@ "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", "dev": true, - "peer": true, "requires": { "array-back": "^3.0.1" } @@ -14761,6 +16467,65 @@ "is-callable": "^1.1.3" } }, + "foreground-child": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -14797,6 +16562,12 @@ "dev": true, "peer": true }, + "fs-then-native": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", + "integrity": "sha512-X712jAOaWXkemQCAmWeg5rOT2i+KOpWz1Z/txk/cW0qlOu2oQ9H61vc5w3X/iyuUEfq/OyaFJ78/cZAQD1/bgA==", + "dev": true + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -15569,6 +17340,16 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, + "jackspeak": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.1.tgz", + "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==", + "dev": true, + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, "js-sdsl": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.2.tgz", @@ -15594,6 +17375,130 @@ "argparse": "^2.0.1" } }, + "js2xmlparser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", + "dev": true, + "requires": { + "xmlcreate": "^2.0.4" + } + }, + "jsdoc": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.3.tgz", + "integrity": "sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw==", + "dev": true, + "requires": { + "@babel/parser": "^7.20.15", + "@jsdoc/salty": "^0.2.1", + "@types/markdown-it": "^14.1.1", + "bluebird": "^3.7.2", + "catharsis": "^0.9.0", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.2", + "klaw": "^3.0.0", + "markdown-it": "^14.1.0", + "markdown-it-anchor": "^8.6.7", + "marked": "^4.0.10", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "underscore": "~1.13.2" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "klaw": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", + "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.9" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "jsdoc-api": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-8.0.0.tgz", + "integrity": "sha512-Rnhor0suB1Ds1abjmFkFfKeD+kSMRN9oHMTMZoJVUrmtCGDwXty+sWMA9sa4xbe4UyxuPjhC7tavZ40mDKK6QQ==", + "dev": true, + "requires": { + "array-back": "^6.2.2", + "cache-point": "^2.0.0", + "collect-all": "^1.0.4", + "file-set": "^4.0.2", + "fs-then-native": "^2.0.0", + "jsdoc": "^4.0.0", + "object-to-spawn-args": "^2.0.1", + "temp-path": "^1.0.0", + "walk-back": "^5.1.0" + }, + "dependencies": { + "array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", + "dev": true + } + } + }, + "jsdoc-parse": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.2.1.tgz", + "integrity": "sha512-9viGRUUtWOk/G4V0+nQ6rfLucz5plxh5I74WbNSNm9h9NWugCDVX4jbG8hZP9QqKGpdTPDE+qJXzaYNos3wqTA==", + "dev": true, + "requires": { + "array-back": "^6.2.2", + "lodash.omit": "^4.5.0", + "reduce-extract": "^1.0.0", + "sort-array": "^4.1.5", + "test-value": "^3.0.0" + }, + "dependencies": { + "array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", + "dev": true + } + } + }, + "jsdoc-to-markdown": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-8.0.1.tgz", + "integrity": "sha512-qJfNJhkq2C26UYoOdj8L1yheTJlk1veCsxwRejRmj07XZKCn7oSkuPErx6+JoNi8afCaUKdIM5oUu0uF2/T8iw==", + "dev": true, + "requires": { + "array-back": "^6.2.2", + "command-line-tool": "^0.8.0", + "config-master": "^3.1.0", + "dmd": "^6.2.0", + "jsdoc-api": "^8.0.0", + "jsdoc-parse": "^6.2.1", + "walk-back": "^5.1.0" + }, + "dependencies": { + "array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", + "dev": true + } + } + }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -15676,6 +17581,15 @@ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, + "linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dev": true, + "requires": { + "uc.micro": "^2.0.0" + } + }, "load-yaml-file": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", @@ -15730,9 +17644,8 @@ "lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true, - "peer": true + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true }, "lodash.clonedeep": { "version": "4.5.0", @@ -15748,6 +17661,18 @@ "dev": true, "peer": true }, + "lodash.omit": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==", + "dev": true + }, "lodash.startcase": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", @@ -15853,6 +17778,27 @@ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==" }, + "markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "dev": true, + "requires": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + } + }, + "markdown-it-anchor": { + "version": "8.6.7", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", + "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", + "dev": true, + "requires": {} + }, "markdown-table": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", @@ -15860,6 +17806,12 @@ "dev": true, "peer": true }, + "marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true + }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -15871,6 +17823,12 @@ "safe-buffer": "^5.1.2" } }, + "mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true + }, "memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -16004,6 +17962,12 @@ } } }, + "minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true + }, "mixme": { "version": "0.5.10", "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.5.10.tgz", @@ -16019,6 +17983,12 @@ "minimist": "^1.2.6" } }, + "mkdirp2": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.5.tgz", + "integrity": "sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==", + "dev": true + }, "mnemonist": { "version": "0.38.5", "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", @@ -16295,6 +18265,12 @@ "dev": true, "peer": true }, + "object-get": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz", + "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==", + "dev": true + }, "object-inspect": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", @@ -16305,6 +18281,12 @@ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, + "object-to-spawn-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-2.0.1.tgz", + "integrity": "sha512-6FuKFQ39cOID+BMZ3QaphcC8Y4cw6LXBLyIgPU+OhIYwviJamPAn+4mITapnSBQrejB+NNp+FMskhD8Cq+Ys3w==", + "dev": true + }, "object.assign": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", @@ -16419,6 +18401,12 @@ "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", "dev": true }, + "package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, "parse-cache-control": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", @@ -16504,6 +18492,14 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, "semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", @@ -16545,6 +18541,24 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "dev": true, + "requires": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "dependencies": { + "lru-cache": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", + "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", + "dev": true + } + } + }, "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -16700,9 +18714,10 @@ "peer": true }, "prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==" + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true }, "process-nextick-args": { "version": "2.0.1", @@ -16751,6 +18766,12 @@ "dev": true, "peer": true }, + "punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true + }, "qs": { "version": "6.11.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", @@ -16954,6 +18975,42 @@ "strip-indent": "^3.0.0" } }, + "reduce-extract": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz", + "integrity": "sha512-QF8vjWx3wnRSL5uFMyCjDeDc5EBMiryoT9tz94VvgjKfzecHAVnqmXAwQDcr7X4JmLc2cjkjFGCVzhMqDjgR9g==", + "dev": true, + "requires": { + "test-value": "^1.0.1" + }, + "dependencies": { + "array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", + "dev": true, + "requires": { + "typical": "^2.6.0" + } + }, + "test-value": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz", + "integrity": "sha512-wrsbRo7qP+2Je8x8DsK8ovCGyxe3sYfQwOraIY/09A2gFXU9DYKiTF14W4ki/01AEh56kMzAmlj9CaHGDDUBJA==", + "dev": true, + "requires": { + "array-back": "^1.0.2", + "typical": "^2.4.2" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", + "dev": true + } + } + }, "reduce-flatten": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", @@ -16961,6 +19018,48 @@ "dev": true, "peer": true }, + "reduce-unique": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz", + "integrity": "sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==", + "dev": true + }, + "reduce-without": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz", + "integrity": "sha512-zQv5y/cf85sxvdrKPlfcRzlDn/OqKFThNimYmsS3flmkioKvkUGn2Qg9cJVoQiEvdxFGLE0MQER/9fZ9sUqdxg==", + "dev": true, + "requires": { + "test-value": "^2.0.0" + }, + "dependencies": { + "array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", + "dev": true, + "requires": { + "typical": "^2.6.0" + } + }, + "test-value": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", + "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==", + "dev": true, + "requires": { + "array-back": "^1.0.3", + "typical": "^2.6.0" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", + "dev": true + } + } + }, "regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", @@ -17013,6 +19112,15 @@ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, + "requizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz", + "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==", + "dev": true, + "requires": { + "lodash": "^4.17.21" + } + }, "resolve": { "version": "1.17.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", @@ -17040,11 +19148,47 @@ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" }, "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", + "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", + "dev": true, "requires": { - "glob": "^7.1.3" + "glob": "^11.0.0", + "package-json-from-dist": "^1.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", + "dev": true, + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + } + }, + "minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } } }, "ripemd160": { @@ -17581,6 +19725,15 @@ "graceful-fs": "^4.1.6" } }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, "semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", @@ -17694,6 +19847,30 @@ "solidity-ast": "^0.4.38" } }, + "sort-array": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-4.1.5.tgz", + "integrity": "sha512-Ya4peoS1fgFN42RN1REk2FgdNOeLIEMKFGJvs7VTP3OklF8+kl2SkpVliZ4tk/PurWsrWRsdNdU+tgyOBkB9sA==", + "dev": true, + "requires": { + "array-back": "^5.0.0", + "typical": "^6.0.1" + }, + "dependencies": { + "array-back": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", + "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", + "dev": true + }, + "typical": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz", + "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==", + "dev": true + } + } + }, "source-map": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", @@ -17814,6 +19991,32 @@ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true }, + "stream-connect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz", + "integrity": "sha512-68Kl+79cE0RGKemKkhxTSg8+6AGrqBt+cbZAXevg2iJ6Y3zX4JhA/sZeGzLpxW9cXhmqAcE7KnJCisUmIUfnFQ==", + "dev": true, + "requires": { + "array-back": "^1.0.2" + }, + "dependencies": { + "array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", + "dev": true, + "requires": { + "typical": "^2.6.0" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", + "dev": true + } + } + }, "stream-transform": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.3.tgz", @@ -17822,6 +20025,12 @@ "mixme": "^0.5.1" } }, + "stream-via": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz", + "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==", + "dev": true + }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -17848,6 +20057,17 @@ "strip-ansi": "^6.0.1" } }, + "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==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, "string.prototype.trim": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", @@ -17887,6 +20107,15 @@ "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==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -17988,11 +20217,44 @@ } } }, + "temp-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz", + "integrity": "sha512-TvmyH7kC6ZVTYkqCODjJIbgvu0FKiwQpZ4D1aknE7xpcDf/qEOB8KZEK5ef2pfbVoiBhNWs3yx4y+ESMtNYmlg==", + "dev": true + }, "term-size": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "typical": "^2.6.1" + }, + "dependencies": { + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "^2.6.1" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", + "dev": true + } + } + }, "then-request": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", @@ -18372,6 +20634,13 @@ "dev": true, "peer": true }, + "prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "peer": true + }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -18447,8 +20716,13 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true, - "peer": true + "dev": true + }, + "uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true }, "uglify-js": { "version": "3.17.4", @@ -18468,6 +20742,12 @@ "which-boxed-primitive": "^1.0.2" } }, + "underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "dev": true + }, "undici": { "version": "5.28.3", "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz", @@ -18539,6 +20819,12 @@ "spdx-expression-parse": "^3.0.0" } }, + "walk-back": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.0.tgz", + "integrity": "sha512-Uhxps5yZcVNbLEAnb+xaEEMdgTXl9qAQDzKYejG2AZ7qPwRQ81lozY9ECDbjLPNWm7YsO1IK5rsP1KoQzXAcGA==", + "dev": true + }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -18744,6 +21030,43 @@ } } }, + "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==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -18757,6 +21080,12 @@ "peer": true, "requires": {} }, + "xmlcreate": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", + "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", + "dev": true + }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/package.json b/package.json index a7911a8..90301c0 100644 --- a/package.json +++ b/package.json @@ -22,15 +22,23 @@ "hardhat-test": "npx hardhat test", "forge-test": "forge test", "test": "npm run hardhat-test && npm run forge-test", - "generate-apiref": "npm run hardhat-compile && npm run forge-compile && npx hardhat docgen && npx ts-node generate-index-files.ts" + "prettier": "prettier --write 'api_reference/**/*'", + "generate-solidity": "rimraf api_reference/solidity && npm run hardhat-compile && npm run forge-compile && npx hardhat docgen", + "generate-jsdoc": "rimraf api_reference/javascript && npx ts-node helper_doc/generate-jsdoc.ts", + "generate-index": "npx ts-node helper_doc/generate-index-files.ts", + "generate-docs": "npm run generate-solidity && npm run generate-jsdoc && npm run generate-index && npm run prettier" }, "devDependencies": { "@nomicfoundation/hardhat-foundry": "^1.1.1", "@nomicfoundation/hardhat-toolbox": "^4.0.0", "@types/fs-extra": "^11.0.4", + "@types/jsdoc-to-markdown": "^7.0.6", "dotenv": "^16.4.5", "fs-extra": "^11.2.0", "hardhat": "^2.20.1", + "jsdoc-to-markdown": "^8.0.1", + "prettier": "^3.3.3", + "rimraf": "^6.0.1", "solidity-docgen": "^0.6.0-beta.36" }, "dependencies": {