diff --git a/.github/workflows/sync-search.yml b/.github/workflows/sync-search.yml index 7b6bdeae..d3bd3391 100644 --- a/.github/workflows/sync-search.yml +++ b/.github/workflows/sync-search.yml @@ -3,8 +3,6 @@ name: Sync Search Content on: push: branches: [main] - pull_request: - branches: [main] jobs: sync-search: diff --git a/content/relayer/1.1.x/api/callPlugin.mdx b/content/relayer/1.1.x/api/callPlugin.mdx index fe557873..e80f5752 100644 --- a/content/relayer/1.1.x/api/callPlugin.mdx +++ b/content/relayer/1.1.x/api/callPlugin.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/cancelTransaction.mdx b/content/relayer/1.1.x/api/cancelTransaction.mdx index 5e048adf..342de9b2 100644 --- a/content/relayer/1.1.x/api/cancelTransaction.mdx +++ b/content/relayer/1.1.x/api/cancelTransaction.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/createNotification.mdx b/content/relayer/1.1.x/api/createNotification.mdx index 9b979508..d7d916be 100644 --- a/content/relayer/1.1.x/api/createNotification.mdx +++ b/content/relayer/1.1.x/api/createNotification.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/createRelayer.mdx b/content/relayer/1.1.x/api/createRelayer.mdx index a6f15a08..6004316f 100644 --- a/content/relayer/1.1.x/api/createRelayer.mdx +++ b/content/relayer/1.1.x/api/createRelayer.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/createSigner.mdx b/content/relayer/1.1.x/api/createSigner.mdx index 8ef67359..5cf9ec01 100644 --- a/content/relayer/1.1.x/api/createSigner.mdx +++ b/content/relayer/1.1.x/api/createSigner.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/deleteNotification.mdx b/content/relayer/1.1.x/api/deleteNotification.mdx index e79a94a6..0f81bb7e 100644 --- a/content/relayer/1.1.x/api/deleteNotification.mdx +++ b/content/relayer/1.1.x/api/deleteNotification.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/deletePendingTransactions.mdx b/content/relayer/1.1.x/api/deletePendingTransactions.mdx index 629f7246..52fccbfd 100644 --- a/content/relayer/1.1.x/api/deletePendingTransactions.mdx +++ b/content/relayer/1.1.x/api/deletePendingTransactions.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/deleteRelayer.mdx b/content/relayer/1.1.x/api/deleteRelayer.mdx index 108df063..19dc6cde 100644 --- a/content/relayer/1.1.x/api/deleteRelayer.mdx +++ b/content/relayer/1.1.x/api/deleteRelayer.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/deleteSigner.mdx b/content/relayer/1.1.x/api/deleteSigner.mdx index 1eac45c0..8ff8d171 100644 --- a/content/relayer/1.1.x/api/deleteSigner.mdx +++ b/content/relayer/1.1.x/api/deleteSigner.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/getNotification.mdx b/content/relayer/1.1.x/api/getNotification.mdx index fb83d496..683be6fa 100644 --- a/content/relayer/1.1.x/api/getNotification.mdx +++ b/content/relayer/1.1.x/api/getNotification.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/getRelayer.mdx b/content/relayer/1.1.x/api/getRelayer.mdx index a587175d..ab762fed 100644 --- a/content/relayer/1.1.x/api/getRelayer.mdx +++ b/content/relayer/1.1.x/api/getRelayer.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/getRelayerBalance.mdx b/content/relayer/1.1.x/api/getRelayerBalance.mdx index 78808265..ac75d13c 100644 --- a/content/relayer/1.1.x/api/getRelayerBalance.mdx +++ b/content/relayer/1.1.x/api/getRelayerBalance.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/getRelayerStatus.mdx b/content/relayer/1.1.x/api/getRelayerStatus.mdx index 158e831f..a2cb963b 100644 --- a/content/relayer/1.1.x/api/getRelayerStatus.mdx +++ b/content/relayer/1.1.x/api/getRelayerStatus.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/getSigner.mdx b/content/relayer/1.1.x/api/getSigner.mdx index cef67a33..eadf133a 100644 --- a/content/relayer/1.1.x/api/getSigner.mdx +++ b/content/relayer/1.1.x/api/getSigner.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/getTransactionById.mdx b/content/relayer/1.1.x/api/getTransactionById.mdx index f2672ef9..77c008b2 100644 --- a/content/relayer/1.1.x/api/getTransactionById.mdx +++ b/content/relayer/1.1.x/api/getTransactionById.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/getTransactionByNonce.mdx b/content/relayer/1.1.x/api/getTransactionByNonce.mdx index c3565b0c..810eb101 100644 --- a/content/relayer/1.1.x/api/getTransactionByNonce.mdx +++ b/content/relayer/1.1.x/api/getTransactionByNonce.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/health.mdx b/content/relayer/1.1.x/api/health.mdx index 75a5d483..bf6af450 100644 --- a/content/relayer/1.1.x/api/health.mdx +++ b/content/relayer/1.1.x/api/health.mdx @@ -26,4 +26,4 @@ Handles the `/health` endpoint. Returns an `HttpResponse` with a status of `200 OK` and a body of `"OK"`. - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/listNotifications.mdx b/content/relayer/1.1.x/api/listNotifications.mdx index a45ffb04..e736cba8 100644 --- a/content/relayer/1.1.x/api/listNotifications.mdx +++ b/content/relayer/1.1.x/api/listNotifications.mdx @@ -22,4 +22,4 @@ Note: OpenAPI documentation for these endpoints can be found in the `openapi.rs` Lists all notifications with pagination support. - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/listRelayers.mdx b/content/relayer/1.1.x/api/listRelayers.mdx index 77db3010..073c35b4 100644 --- a/content/relayer/1.1.x/api/listRelayers.mdx +++ b/content/relayer/1.1.x/api/listRelayers.mdx @@ -22,4 +22,4 @@ Note: OpenAPI documentation for these endpoints can be found in the `openapi.rs` Lists all relayers with pagination support. - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/listSigners.mdx b/content/relayer/1.1.x/api/listSigners.mdx index 1cbd571d..78a67216 100644 --- a/content/relayer/1.1.x/api/listSigners.mdx +++ b/content/relayer/1.1.x/api/listSigners.mdx @@ -22,4 +22,4 @@ Note: OpenAPI documentation for these endpoints can be found in the `openapi.rs` Lists all signers with pagination support. - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/listTransactions.mdx b/content/relayer/1.1.x/api/listTransactions.mdx index 5235f3aa..2a90441d 100644 --- a/content/relayer/1.1.x/api/listTransactions.mdx +++ b/content/relayer/1.1.x/api/listTransactions.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/list_metrics.mdx b/content/relayer/1.1.x/api/list_metrics.mdx index 66a0f51f..8ea7a892 100644 --- a/content/relayer/1.1.x/api/list_metrics.mdx +++ b/content/relayer/1.1.x/api/list_metrics.mdx @@ -30,4 +30,4 @@ Returns a list of all available metric names in JSON format. An `HttpResponse` containing a JSON array of metric names. - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/metric_detail.mdx b/content/relayer/1.1.x/api/metric_detail.mdx index 021017d1..e252ce6f 100644 --- a/content/relayer/1.1.x/api/metric_detail.mdx +++ b/content/relayer/1.1.x/api/metric_detail.mdx @@ -35,4 +35,4 @@ _openapi: An `HttpResponse` containing the metric details in plain text, or a 404 error if the metric is not found. - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/replaceTransaction.mdx b/content/relayer/1.1.x/api/replaceTransaction.mdx index cc6c5d0e..6ff72edd 100644 --- a/content/relayer/1.1.x/api/replaceTransaction.mdx +++ b/content/relayer/1.1.x/api/replaceTransaction.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/rpc.mdx b/content/relayer/1.1.x/api/rpc.mdx index 3dbb0922..1def5de6 100644 --- a/content/relayer/1.1.x/api/rpc.mdx +++ b/content/relayer/1.1.x/api/rpc.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/scrape_metrics.mdx b/content/relayer/1.1.x/api/scrape_metrics.mdx index 9b43e8c4..0c8509b4 100644 --- a/content/relayer/1.1.x/api/scrape_metrics.mdx +++ b/content/relayer/1.1.x/api/scrape_metrics.mdx @@ -27,4 +27,4 @@ _openapi: An `HttpResponse` containing the updated metrics in plain text, or an error message if the update fails. - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/sendTransaction.mdx b/content/relayer/1.1.x/api/sendTransaction.mdx index 086a1322..e70a0dba 100644 --- a/content/relayer/1.1.x/api/sendTransaction.mdx +++ b/content/relayer/1.1.x/api/sendTransaction.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/sign.mdx b/content/relayer/1.1.x/api/sign.mdx index 73a6e67d..28cf96de 100644 --- a/content/relayer/1.1.x/api/sign.mdx +++ b/content/relayer/1.1.x/api/sign.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/signTransaction.mdx b/content/relayer/1.1.x/api/signTransaction.mdx index b95f49c6..a53aa136 100644 --- a/content/relayer/1.1.x/api/signTransaction.mdx +++ b/content/relayer/1.1.x/api/signTransaction.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/signTypedData.mdx b/content/relayer/1.1.x/api/signTypedData.mdx index edb7b736..63a7d4d2 100644 --- a/content/relayer/1.1.x/api/signTypedData.mdx +++ b/content/relayer/1.1.x/api/signTypedData.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/updateNotification.mdx b/content/relayer/1.1.x/api/updateNotification.mdx index b591c02f..711b8b8d 100644 --- a/content/relayer/1.1.x/api/updateNotification.mdx +++ b/content/relayer/1.1.x/api/updateNotification.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/updateRelayer.mdx b/content/relayer/1.1.x/api/updateRelayer.mdx index 9bd2ea5e..0af41d58 100644 --- a/content/relayer/1.1.x/api/updateRelayer.mdx +++ b/content/relayer/1.1.x/api/updateRelayer.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/1.1.x/api/updateSigner.mdx b/content/relayer/1.1.x/api/updateSigner.mdx index 080f7f4c..000843a6 100644 --- a/content/relayer/1.1.x/api/updateSigner.mdx +++ b/content/relayer/1.1.x/api/updateSigner.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/callPlugin.mdx b/content/relayer/api/callPlugin.mdx index e55f43e0..d720f088 100644 --- a/content/relayer/api/callPlugin.mdx +++ b/content/relayer/api/callPlugin.mdx @@ -25,4 +25,4 @@ Logs and traces are only returned when the plugin is configured with `emit_logs` Plugin-provided errors are normalized into a consistent payload (`code`, `details`) and a derived message so downstream clients receive a stable shape regardless of how the handler threw. - \ No newline at end of file + diff --git a/content/relayer/api/cancelTransaction.mdx b/content/relayer/api/cancelTransaction.mdx index 5e048adf..342de9b2 100644 --- a/content/relayer/api/cancelTransaction.mdx +++ b/content/relayer/api/cancelTransaction.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/createNotification.mdx b/content/relayer/api/createNotification.mdx index 9b979508..d7d916be 100644 --- a/content/relayer/api/createNotification.mdx +++ b/content/relayer/api/createNotification.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/createRelayer.mdx b/content/relayer/api/createRelayer.mdx index a6f15a08..6004316f 100644 --- a/content/relayer/api/createRelayer.mdx +++ b/content/relayer/api/createRelayer.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/createSigner.mdx b/content/relayer/api/createSigner.mdx index 8ef67359..5cf9ec01 100644 --- a/content/relayer/api/createSigner.mdx +++ b/content/relayer/api/createSigner.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/deleteNotification.mdx b/content/relayer/api/deleteNotification.mdx index e79a94a6..0f81bb7e 100644 --- a/content/relayer/api/deleteNotification.mdx +++ b/content/relayer/api/deleteNotification.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/deletePendingTransactions.mdx b/content/relayer/api/deletePendingTransactions.mdx index 629f7246..52fccbfd 100644 --- a/content/relayer/api/deletePendingTransactions.mdx +++ b/content/relayer/api/deletePendingTransactions.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/deleteRelayer.mdx b/content/relayer/api/deleteRelayer.mdx index 108df063..19dc6cde 100644 --- a/content/relayer/api/deleteRelayer.mdx +++ b/content/relayer/api/deleteRelayer.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/deleteSigner.mdx b/content/relayer/api/deleteSigner.mdx index 1eac45c0..8ff8d171 100644 --- a/content/relayer/api/deleteSigner.mdx +++ b/content/relayer/api/deleteSigner.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/getNotification.mdx b/content/relayer/api/getNotification.mdx index fb83d496..683be6fa 100644 --- a/content/relayer/api/getNotification.mdx +++ b/content/relayer/api/getNotification.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/getRelayer.mdx b/content/relayer/api/getRelayer.mdx index a587175d..ab762fed 100644 --- a/content/relayer/api/getRelayer.mdx +++ b/content/relayer/api/getRelayer.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/getRelayerBalance.mdx b/content/relayer/api/getRelayerBalance.mdx index 78808265..ac75d13c 100644 --- a/content/relayer/api/getRelayerBalance.mdx +++ b/content/relayer/api/getRelayerBalance.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/getRelayerStatus.mdx b/content/relayer/api/getRelayerStatus.mdx index 158e831f..a2cb963b 100644 --- a/content/relayer/api/getRelayerStatus.mdx +++ b/content/relayer/api/getRelayerStatus.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/getSigner.mdx b/content/relayer/api/getSigner.mdx index cef67a33..eadf133a 100644 --- a/content/relayer/api/getSigner.mdx +++ b/content/relayer/api/getSigner.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/getTransactionById.mdx b/content/relayer/api/getTransactionById.mdx index f2672ef9..77c008b2 100644 --- a/content/relayer/api/getTransactionById.mdx +++ b/content/relayer/api/getTransactionById.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/getTransactionByNonce.mdx b/content/relayer/api/getTransactionByNonce.mdx index c3565b0c..810eb101 100644 --- a/content/relayer/api/getTransactionByNonce.mdx +++ b/content/relayer/api/getTransactionByNonce.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/health.mdx b/content/relayer/api/health.mdx index 75a5d483..bf6af450 100644 --- a/content/relayer/api/health.mdx +++ b/content/relayer/api/health.mdx @@ -26,4 +26,4 @@ Handles the `/health` endpoint. Returns an `HttpResponse` with a status of `200 OK` and a body of `"OK"`. - \ No newline at end of file + diff --git a/content/relayer/api/listNotifications.mdx b/content/relayer/api/listNotifications.mdx index a45ffb04..e736cba8 100644 --- a/content/relayer/api/listNotifications.mdx +++ b/content/relayer/api/listNotifications.mdx @@ -22,4 +22,4 @@ Note: OpenAPI documentation for these endpoints can be found in the `openapi.rs` Lists all notifications with pagination support. - \ No newline at end of file + diff --git a/content/relayer/api/listRelayers.mdx b/content/relayer/api/listRelayers.mdx index 77db3010..073c35b4 100644 --- a/content/relayer/api/listRelayers.mdx +++ b/content/relayer/api/listRelayers.mdx @@ -22,4 +22,4 @@ Note: OpenAPI documentation for these endpoints can be found in the `openapi.rs` Lists all relayers with pagination support. - \ No newline at end of file + diff --git a/content/relayer/api/listSigners.mdx b/content/relayer/api/listSigners.mdx index 1cbd571d..78a67216 100644 --- a/content/relayer/api/listSigners.mdx +++ b/content/relayer/api/listSigners.mdx @@ -22,4 +22,4 @@ Note: OpenAPI documentation for these endpoints can be found in the `openapi.rs` Lists all signers with pagination support. - \ No newline at end of file + diff --git a/content/relayer/api/listTransactions.mdx b/content/relayer/api/listTransactions.mdx index 5235f3aa..2a90441d 100644 --- a/content/relayer/api/listTransactions.mdx +++ b/content/relayer/api/listTransactions.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/list_metrics.mdx b/content/relayer/api/list_metrics.mdx index 66a0f51f..8ea7a892 100644 --- a/content/relayer/api/list_metrics.mdx +++ b/content/relayer/api/list_metrics.mdx @@ -30,4 +30,4 @@ Returns a list of all available metric names in JSON format. An `HttpResponse` containing a JSON array of metric names. - \ No newline at end of file + diff --git a/content/relayer/api/metric_detail.mdx b/content/relayer/api/metric_detail.mdx index 021017d1..e252ce6f 100644 --- a/content/relayer/api/metric_detail.mdx +++ b/content/relayer/api/metric_detail.mdx @@ -35,4 +35,4 @@ _openapi: An `HttpResponse` containing the metric details in plain text, or a 404 error if the metric is not found. - \ No newline at end of file + diff --git a/content/relayer/api/replaceTransaction.mdx b/content/relayer/api/replaceTransaction.mdx index cc6c5d0e..6ff72edd 100644 --- a/content/relayer/api/replaceTransaction.mdx +++ b/content/relayer/api/replaceTransaction.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/rpc.mdx b/content/relayer/api/rpc.mdx index 3dbb0922..1def5de6 100644 --- a/content/relayer/api/rpc.mdx +++ b/content/relayer/api/rpc.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/scrape_metrics.mdx b/content/relayer/api/scrape_metrics.mdx index 9b43e8c4..0c8509b4 100644 --- a/content/relayer/api/scrape_metrics.mdx +++ b/content/relayer/api/scrape_metrics.mdx @@ -27,4 +27,4 @@ _openapi: An `HttpResponse` containing the updated metrics in plain text, or an error message if the update fails. - \ No newline at end of file + diff --git a/content/relayer/api/sendTransaction.mdx b/content/relayer/api/sendTransaction.mdx index 086a1322..e70a0dba 100644 --- a/content/relayer/api/sendTransaction.mdx +++ b/content/relayer/api/sendTransaction.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/sign.mdx b/content/relayer/api/sign.mdx index 73a6e67d..28cf96de 100644 --- a/content/relayer/api/sign.mdx +++ b/content/relayer/api/sign.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/signTransaction.mdx b/content/relayer/api/signTransaction.mdx index b95f49c6..a53aa136 100644 --- a/content/relayer/api/signTransaction.mdx +++ b/content/relayer/api/signTransaction.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/signTypedData.mdx b/content/relayer/api/signTypedData.mdx index edb7b736..63a7d4d2 100644 --- a/content/relayer/api/signTypedData.mdx +++ b/content/relayer/api/signTypedData.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/updateNotification.mdx b/content/relayer/api/updateNotification.mdx index b591c02f..711b8b8d 100644 --- a/content/relayer/api/updateNotification.mdx +++ b/content/relayer/api/updateNotification.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/updateRelayer.mdx b/content/relayer/api/updateRelayer.mdx index 9bd2ea5e..0af41d58 100644 --- a/content/relayer/api/updateRelayer.mdx +++ b/content/relayer/api/updateRelayer.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/content/relayer/api/updateSigner.mdx b/content/relayer/api/updateSigner.mdx index 080f7f4c..000843a6 100644 --- a/content/relayer/api/updateSigner.mdx +++ b/content/relayer/api/updateSigner.mdx @@ -12,4 +12,4 @@ _openapi: {/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} - \ No newline at end of file + diff --git a/package.json b/package.json index e6c20ffc..344a8419 100644 --- a/package.json +++ b/package.json @@ -1,73 +1,73 @@ { - "name": "docs", - "version": "0.0.0", - "private": true, - "type": "module", - "scripts": { - "build": "next build --turbo", - "dev": "next dev --turbo", - "start": "next start", - "postinstall": "fumadocs-mdx", - "lint": "biome lint src/", - "lint:links": "tsx scripts/link-validation.ts", - "lint:links-save": "tsx scripts/link-validation.ts --output broken-links.md", - "lint:fix": "biome lint --write src/", - "format": "biome format src/", - "format:fix": "biome format --write src/", - "check": "biome check src/ && pnpm run lint:links", - "check:fix": "biome check --write src/" - }, - "dependencies": { - "@fumadocs/mdx-remote": "^1.4.0", - "@netlify/plugin-nextjs": "^5.13.3", - "@next/third-parties": "^15.5.4", - "@orama/orama": "^3.1.13", - "@radix-ui/react-collapsible": "^1.1.12", - "@radix-ui/react-popover": "^1.1.15", - "@radix-ui/react-presence": "^1.1.5", - "@radix-ui/react-scroll-area": "^1.2.10", - "@radix-ui/react-separator": "^1.1.7", - "@tanstack/react-query": "^5.89.0", - "algoliasearch": "^5.37.0", - "class-variance-authority": "^0.7.1", - "clsx": "^2.1.1", - "fumadocs-core": "15.7.11", - "fumadocs-mdx": "12.0.1", - "fumadocs-openapi": "^9.3.8", - "fumadocs-ui": "15.7.11", - "glob": "^11.0.3", - "katex": "^0.16.22", - "lucide-react": "^0.540.0", - "mermaid": "^11.11.0", - "micromatch": "^4.0.8", - "next": "^15.5.3", - "next-themes": "^0.4.6", - "next-validate-link": "^1.6.3", - "react": "^19.1.1", - "react-dom": "^19.1.1", - "rehype-katex": "^7.0.1", - "remark": "^15.0.1", - "remark-gfm": "^4.0.1", - "remark-math": "^6.0.0", - "remark-mdx": "^3.1.1", - "shiki": "^3.12.2", - "tailwind-merge": "^3.3.1", - "unist-util-visit": "^5.0.0" - }, - "devDependencies": { - "@biomejs/biome": "^2.2.4", - "@tailwindcss/postcss": "^4.1.13", - "@tanstack/react-query-devtools": "^5.89.0", - "@types/mdx": "^2.0.13", - "@types/micromatch": "^4.0.9", - "@types/node": "24.1.0", - "@types/react": "^19.1.12", - "@types/react-dom": "^19.1.9", - "postcss": "^8.5.6", - "tailwindcss": "^4.1.13", - "tsx": "^4.20.5", - "tw-animate-css": "^1.3.8", - "typescript": "^5.9.2" - }, - "packageManager": "pnpm@10.17.1" -} \ No newline at end of file + "name": "docs", + "version": "0.0.0", + "private": true, + "type": "module", + "scripts": { + "build": "next build --turbo", + "dev": "next dev --turbo", + "start": "next start", + "postinstall": "fumadocs-mdx", + "lint": "biome lint src/", + "lint:links": "tsx scripts/link-validation.ts", + "lint:links-save": "tsx scripts/link-validation.ts --output broken-links.md", + "lint:fix": "biome lint --write src/", + "format": "biome format src/", + "format:fix": "biome format --write src/", + "check": "biome check src/ && pnpm run lint:links", + "check:fix": "biome check --write src/" + }, + "dependencies": { + "@fumadocs/mdx-remote": "^1.4.0", + "@netlify/plugin-nextjs": "^5.13.3", + "@next/third-parties": "^15.5.4", + "@orama/orama": "^3.1.13", + "@radix-ui/react-collapsible": "^1.1.12", + "@radix-ui/react-popover": "^1.1.15", + "@radix-ui/react-presence": "^1.1.5", + "@radix-ui/react-scroll-area": "^1.2.10", + "@radix-ui/react-separator": "^1.1.7", + "@tanstack/react-query": "^5.89.0", + "algoliasearch": "^5.37.0", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "fumadocs-core": "15.7.11", + "fumadocs-mdx": "12.0.1", + "fumadocs-openapi": "^9.3.8", + "fumadocs-ui": "15.7.11", + "glob": "^11.0.3", + "katex": "^0.16.22", + "lucide-react": "^0.540.0", + "mermaid": "^11.11.0", + "micromatch": "^4.0.8", + "next": "^15.5.3", + "next-themes": "^0.4.6", + "next-validate-link": "^1.6.3", + "react": "^19.1.1", + "react-dom": "^19.1.1", + "rehype-katex": "^7.0.1", + "remark": "^15.0.1", + "remark-gfm": "^4.0.1", + "remark-math": "^6.0.0", + "remark-mdx": "^3.1.1", + "shiki": "^3.12.2", + "tailwind-merge": "^3.3.1", + "unist-util-visit": "^5.0.0" + }, + "devDependencies": { + "@biomejs/biome": "^2.2.4", + "@tailwindcss/postcss": "^4.1.13", + "@tanstack/react-query-devtools": "^5.89.0", + "@types/mdx": "^2.0.13", + "@types/micromatch": "^4.0.9", + "@types/node": "24.1.0", + "@types/react": "^19.1.12", + "@types/react-dom": "^19.1.9", + "postcss": "^8.5.6", + "tailwindcss": "^4.1.13", + "tsx": "^4.20.5", + "tw-animate-css": "^1.3.8", + "typescript": "^5.9.2" + }, + "packageManager": "pnpm@10.17.1" +} diff --git a/scripts/link-validation.ts b/scripts/link-validation.ts index 756bdfaa..a7ab9ffc 100644 --- a/scripts/link-validation.ts +++ b/scripts/link-validation.ts @@ -7,6 +7,20 @@ import { import type { InferPageType } from "fumadocs-core/source"; import { source } from "@/lib/source"; import { writeFileSync } from "fs"; +import { + arbitrumStylusTree, + ethereumEvmTree, + impactTree, + midnightTree, + polkadotTree, + starknetTree, + stellarTree, + uniswapTree, + zamaTree, + type NavigationNode, + type NavigationPage, + type NavigationFolder, +} from "@/navigation"; async function checkLinks() { // Parse command line arguments @@ -52,6 +66,11 @@ async function checkLinks() { checkRelativePaths: "as-url", }); + // Validate navigation URLs if requested + let navigationErrors: Array<{ tree: string; url: string; reason: string }> = + []; + navigationErrors = await validateNavigationUrls(scanned); + if (outputFile) { // Generate custom output format for file let output = ""; @@ -70,16 +89,41 @@ async function checkLinks() { } } - output += `\nSummary: ${totalErrors} errors found in ${validationResults.filter((r) => r.errors.length > 0).length} files out of ${totalFiles} total files\n`; + // Add navigation errors to output + if (navigationErrors.length > 0) { + output += `\nInvalid URLs in Navigation Trees:\n`; + for (const error of navigationErrors) { + totalErrors++; + output += `${error.tree}: ${error.url} - ${error.reason}\n`; + } + output += "------\n"; + } + + output += `\nSummary: ${totalErrors} errors found in ${validationResults.filter((r) => r.errors.length > 0).length} files out of ${totalFiles} total files`; + if (navigationErrors.length > 0) { + output += ` + ${navigationErrors.length} navigation errors`; + } + output += `\n`; writeFileSync(outputFile, output); console.log(`Results saved to ${outputFile}`); console.log( `${totalErrors} errors found in ${validationResults.filter((r) => r.errors.length > 0).length} files`, ); + if (navigationErrors.length > 0) { + console.log(`${navigationErrors.length} navigation errors found`); + } } else { // Use default printErrors for console output printErrors(validationResults, true); + + // Print navigation errors + if (navigationErrors.length > 0) { + console.log("\n❌ Navigation URL Errors:"); + for (const error of navigationErrors) { + console.log(` ${error.tree}: ${error.url} - ${error.reason}`); + } + } } } @@ -136,4 +180,86 @@ function getFiles(scope?: string | null) { return Promise.all(promises); } +function extractUrlsFromNavigation( + nodes: NavigationNode[], + urls: string[] = [], +): string[] { + for (const node of nodes) { + if (node.type === "page") { + const page = node as NavigationPage; + // Only validate internal URLs (not external links) + if (!page.external && page.url) { + urls.push(page.url); + } + } else if (node.type === "folder") { + const folder = node as NavigationFolder; + if (folder.index && !folder.index.external) { + urls.push(folder.index.url); + } + if (folder.children) { + extractUrlsFromNavigation(folder.children, urls); + } + } + } + return urls; +} + +async function validateNavigationUrls( + scanned: Awaited>, +): Promise> { + const navigationTrees = { + "Ethereum & EVM": ethereumEvmTree, + "Arbitrum Stylus": arbitrumStylusTree, + Stellar: stellarTree, + Midnight: midnightTree, + Starknet: starknetTree, + "Zama FHEVM": zamaTree, + "Uniswap Hooks": uniswapTree, + Polkadot: polkadotTree, + "OpenZeppelin Impact": impactTree, + }; + + const errors: Array<{ tree: string; url: string; reason: string }> = []; + + for (const [treeName, tree] of Object.entries(navigationTrees)) { + const urls = extractUrlsFromNavigation(tree.children); + + for (const url of urls) { + // Split URL into path and fragment + const [urlPath, fragment] = url.split("#"); + + // Check if the URL path exists in the scanned pages + // scanned.urls is a Map + const found = scanned.urls.has(urlPath); + + if (!found) { + // Check fallback URLs (dynamic routes) + const foundInFallback = scanned.fallbackUrls.some((fallback) => + fallback.url.test(urlPath), + ); + + if (!foundInFallback) { + errors.push({ + tree: treeName, + url, + reason: "URL not found in site pages", + }); + } + } else if (fragment) { + // If URL has a fragment, validate that the fragment exists on the page + const urlMeta = scanned.urls.get(urlPath); + if (urlMeta?.hashes && !urlMeta.hashes.includes(fragment)) { + errors.push({ + tree: treeName, + url, + reason: `Fragment '#${fragment}' not found on page`, + }); + } + } + } + } + + return errors; +} + void checkLinks(); diff --git a/src/lib/openapi.ts b/src/lib/openapi.ts index 1532aa44..a803c68a 100644 --- a/src/lib/openapi.ts +++ b/src/lib/openapi.ts @@ -2,6 +2,6 @@ import { createOpenAPI } from "fumadocs-openapi/server"; export const openapi = createOpenAPI({ input: [ - "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-relayer/refs/heads/main/docs/openapi.json", + "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-relayer/refs/heads/main/openapi.json", ], }); diff --git a/src/navigation/stellar.json b/src/navigation/stellar.json index 2fe4e815..6387c3d4 100644 --- a/src/navigation/stellar.json +++ b/src/navigation/stellar.json @@ -82,182 +82,6 @@ "name": "Changelog", "url": "/stellar-contracts/changelog" }, - { - "type": "folder", - "name": "Previous Versions", - "children": [ - { - "type": "folder", - "name": "v0.3.0", - "children": [ - { - "type": "page", - "name": "Overview", - "url": "/stellar-contracts/0.3.0" - }, - { - "type": "page", - "name": "Get Started", - "url": "/stellar-contracts/0.3.0/get-started" - }, - { - "type": "folder", - "name": "Access Control", - "children": [ - { - "type": "page", - "name": "Access Control", - "url": "/stellar-contracts/0.3.0/utils/access/access-control" - }, - { - "type": "page", - "name": "Ownable", - "url": "/stellar-contracts/0.3.0/utils/access/ownable" - } - ] - }, - { - "type": "folder", - "name": "Tokens", - "children": [ - { - "type": "folder", - "name": "Fungible", - "children": [ - { - "type": "page", - "name": "Fungible Token", - "url": "/stellar-contracts/0.3.0/tokens/fungible/fungible" - }, - { - "type": "page", - "name": "SAC Admin Generic", - "url": "/stellar-contracts/0.3.0/tokens/fungible/sac-admin-generic" - }, - { - "type": "page", - "name": "SAC Admin Wrapper", - "url": "/stellar-contracts/0.3.0/tokens/fungible/sac-admin-wrapper" - } - ] - }, - { - "type": "folder", - "name": "Non-Fungible", - "children": [ - { - "type": "page", - "name": "Non-Fungible Token", - "url": "/stellar-contracts/0.3.0/tokens/non-fungible/non-fungible" - }, - { - "type": "page", - "name": "NFT Consecutive", - "url": "/stellar-contracts/0.3.0/tokens/non-fungible/nft-consecutive" - }, - { - "type": "page", - "name": "NFT Enumerable", - "url": "/stellar-contracts/0.3.0/tokens/non-fungible/nft-enumerable" - } - ] - } - ] - }, - { - "type": "folder", - "name": "Utilities", - "children": [ - { - "type": "page", - "name": "Cryptography", - "url": "/stellar-contracts/0.3.0/utils/crypto" - }, - { - "type": "page", - "name": "Pausable", - "url": "/stellar-contracts/0.3.0/utils/pausable" - }, - { - "type": "page", - "name": "Upgradeable", - "url": "/stellar-contracts/0.3.0/utils/upgradeable" - } - ] - }, - { - "type": "folder", - "name": "Helpers", - "children": [ - { - "type": "page", - "name": "Default Implementation Macro", - "url": "/stellar-contracts/0.3.0/helpers/default-impl-macro" - } - ] - } - ] - }, - { - "type": "folder", - "name": "v0.2.0", - "children": [ - { - "type": "page", - "name": "Overview", - "url": "/stellar-contracts/0.2.0" - }, - { - "type": "page", - "name": "Get Started", - "url": "/stellar-contracts/0.2.0/get-started" - }, - { - "type": "folder", - "name": "Tokens", - "children": [ - { - "type": "page", - "name": "Fungible Token", - "url": "/stellar-contracts/0.2.0/tokens/fungible" - }, - { - "type": "page", - "name": "Non-Fungible Token", - "url": "/stellar-contracts/0.2.0/tokens/non-fungible" - }, - { - "type": "page", - "name": "NFT Consecutive", - "url": "/stellar-contracts/0.2.0/tokens/nft-consecutive" - }, - { - "type": "page", - "name": "NFT Enumerable", - "url": "/stellar-contracts/0.2.0/tokens/nft-enumerable" - } - ] - }, - { - "type": "folder", - "name": "Utilities", - "children": [ - { - "type": "page", - "name": "Pausable", - "url": "/stellar-contracts/0.2.0/utils/pausable" - }, - { - "type": "page", - "name": "Upgradeable", - "url": "/stellar-contracts/0.2.0/utils/upgradeable" - } - ] - } - ] - } - ] - }, { "type": "separator", "name": "Open Source Tools"