diff --git a/docs/pages/sdk/v5_3_x/VersionWarning.tsx b/docs/components/VersionWarning.tsx similarity index 100% rename from docs/pages/sdk/v5_3_x/VersionWarning.tsx rename to docs/components/VersionWarning.tsx diff --git a/docs/pages/shared/mutation-result.mdx b/docs/components/shared/mutation-result.mdx similarity index 100% rename from docs/pages/shared/mutation-result.mdx rename to docs/components/shared/mutation-result.mdx diff --git a/docs/pages/shared/query-result.mdx b/docs/components/shared/query-result.mdx similarity index 100% rename from docs/pages/shared/query-result.mdx rename to docs/components/shared/query-result.mdx diff --git a/docs/pages/shared/social-login-setup.mdx b/docs/components/shared/social-login-setup.mdx similarity index 100% rename from docs/pages/shared/social-login-setup.mdx rename to docs/components/shared/social-login-setup.mdx diff --git a/docs/pages/advanced/react-hooks/use-balance.mdx b/docs/pages/advanced/react-hooks/use-balance.mdx index 447018c3..4370ea8e 100644 --- a/docs/pages/advanced/react-hooks/use-balance.mdx +++ b/docs/pages/advanced/react-hooks/use-balance.mdx @@ -1,4 +1,4 @@ -import QueryResult from "../../shared/query-result.mdx" +import QueryResult from "@components/shared/query-result.mdx" # useBalance [Hook for getting balance of kernel account] diff --git a/docs/pages/advanced/react-hooks/use-create-basic-session.mdx b/docs/pages/advanced/react-hooks/use-create-basic-session.mdx index 4e629ceb..60c818d5 100644 --- a/docs/pages/advanced/react-hooks/use-create-basic-session.mdx +++ b/docs/pages/advanced/react-hooks/use-create-basic-session.mdx @@ -1,4 +1,4 @@ -import MutationResult from '../../shared/mutation-result.mdx' +import MutationResult from "@components/shared/mutation-result.mdx" # useCreateBasicSession [Hook for creating session for kernel v2 account] diff --git a/docs/pages/advanced/react-hooks/use-create-kernelclient-eoa.mdx b/docs/pages/advanced/react-hooks/use-create-kernelclient-eoa.mdx index 4729e6a7..910f9a69 100644 --- a/docs/pages/advanced/react-hooks/use-create-kernelclient-eoa.mdx +++ b/docs/pages/advanced/react-hooks/use-create-kernelclient-eoa.mdx @@ -1,4 +1,4 @@ -import MutationResult from '../../shared/mutation-result.mdx' +import MutationResult from "@components/shared/mutation-result.mdx" # useCreateKernelClientEOA [Hook for creating kernel client with EOA] diff --git a/docs/pages/advanced/react-hooks/use-create-kernelclient-passkey.mdx b/docs/pages/advanced/react-hooks/use-create-kernelclient-passkey.mdx index cb4a6658..3c6f1043 100644 --- a/docs/pages/advanced/react-hooks/use-create-kernelclient-passkey.mdx +++ b/docs/pages/advanced/react-hooks/use-create-kernelclient-passkey.mdx @@ -1,4 +1,4 @@ -import MutationResult from '../../shared/mutation-result.mdx' +import MutationResult from "@components/shared/mutation-result.mdx" # useCreateKernelClientPasskey [Hook for creating kernel client with Passkey] diff --git a/docs/pages/advanced/react-hooks/use-create-kernelclient-social.mdx b/docs/pages/advanced/react-hooks/use-create-kernelclient-social.mdx index b00f7322..8336d311 100644 --- a/docs/pages/advanced/react-hooks/use-create-kernelclient-social.mdx +++ b/docs/pages/advanced/react-hooks/use-create-kernelclient-social.mdx @@ -1,4 +1,4 @@ -import MutationResult from '../../shared/mutation-result.mdx' +import MutationResult from "@components/shared/mutation-result.mdx" # useCreateKernelClientSocial [Hook for creating a kernel client with social login integration] diff --git a/docs/pages/advanced/react-hooks/use-create-session.mdx b/docs/pages/advanced/react-hooks/use-create-session.mdx index 05caf43c..4cf9f3f0 100644 --- a/docs/pages/advanced/react-hooks/use-create-session.mdx +++ b/docs/pages/advanced/react-hooks/use-create-session.mdx @@ -1,4 +1,4 @@ -import MutationResult from '../../shared/mutation-result.mdx' +import MutationResult from "@components/shared/mutation-result.mdx" # useCreateSession [Hook for creating session for kernel v3 account] diff --git a/docs/pages/advanced/react-hooks/use-disconnect-kernelclient.mdx b/docs/pages/advanced/react-hooks/use-disconnect-kernelclient.mdx index 08640084..eac758bb 100644 --- a/docs/pages/advanced/react-hooks/use-disconnect-kernelclient.mdx +++ b/docs/pages/advanced/react-hooks/use-disconnect-kernelclient.mdx @@ -1,4 +1,4 @@ -import MutationResult from '../../shared/mutation-result.mdx' +import MutationResult from "@components/shared/mutation-result.mdx" # useDisconnectKernelClient [Hook for disconnecting kernel account client] diff --git a/docs/pages/advanced/react-hooks/use-kernelclient.mdx b/docs/pages/advanced/react-hooks/use-kernelclient.mdx index 6dc91bf8..ec45a709 100644 --- a/docs/pages/advanced/react-hooks/use-kernelclient.mdx +++ b/docs/pages/advanced/react-hooks/use-kernelclient.mdx @@ -1,4 +1,4 @@ -import QueryResult from "../../shared/query-result.mdx" +import QueryResult from "@components/shared/query-result.mdx" # useKernelClient [Hook for getting kernel account client] diff --git a/docs/pages/advanced/react-hooks/use-send-transaction-with-session.mdx b/docs/pages/advanced/react-hooks/use-send-transaction-with-session.mdx index 98d864a2..63be83f2 100644 --- a/docs/pages/advanced/react-hooks/use-send-transaction-with-session.mdx +++ b/docs/pages/advanced/react-hooks/use-send-transaction-with-session.mdx @@ -1,4 +1,4 @@ -import MutationResult from '../../shared/mutation-result.mdx' +import MutationResult from "@components/shared/mutation-result.mdx" # useSendTransactionWithSession [Hooks for sending transactions with session keys] diff --git a/docs/pages/advanced/react-hooks/use-send-transaction.mdx b/docs/pages/advanced/react-hooks/use-send-transaction.mdx index 00d06d8f..c4f93a41 100644 --- a/docs/pages/advanced/react-hooks/use-send-transaction.mdx +++ b/docs/pages/advanced/react-hooks/use-send-transaction.mdx @@ -1,4 +1,4 @@ -import MutationResult from '../../shared/mutation-result.mdx' +import MutationResult from "@components/shared/mutation-result.mdx" # useSendTransaction [Hook for sending transaction] diff --git a/docs/pages/advanced/react-hooks/use-send-useroperation-with-session.mdx b/docs/pages/advanced/react-hooks/use-send-useroperation-with-session.mdx index 0be5d956..741b0a52 100644 --- a/docs/pages/advanced/react-hooks/use-send-useroperation-with-session.mdx +++ b/docs/pages/advanced/react-hooks/use-send-useroperation-with-session.mdx @@ -1,4 +1,4 @@ -import MutationResult from '../../shared/mutation-result.mdx' +import MutationResult from "@components/shared/mutation-result.mdx" # useSendUserOperationWithSession [Hooks for sending user operation with session keys] diff --git a/docs/pages/advanced/react-hooks/use-send-useroperation.mdx b/docs/pages/advanced/react-hooks/use-send-useroperation.mdx index 8bfa859b..105af9ed 100644 --- a/docs/pages/advanced/react-hooks/use-send-useroperation.mdx +++ b/docs/pages/advanced/react-hooks/use-send-useroperation.mdx @@ -1,4 +1,4 @@ -import MutationResult from '../../shared/mutation-result.mdx' +import MutationResult from "@components/shared/mutation-result.mdx" # useSendUserOperation [Hook for sending user operation] diff --git a/docs/pages/advanced/react-hooks/use-session-kernelclient.mdx b/docs/pages/advanced/react-hooks/use-session-kernelclient.mdx index 85164f89..55c62588 100644 --- a/docs/pages/advanced/react-hooks/use-session-kernelclient.mdx +++ b/docs/pages/advanced/react-hooks/use-session-kernelclient.mdx @@ -1,4 +1,4 @@ -import QueryResult from "../../shared/query-result.mdx" +import QueryResult from "@components/shared/query-result.mdx" # useSessionKernelClient [Hook for getting kernel account client with session plugin] diff --git a/docs/pages/advanced/react-hooks/use-set-kernelclient.mdx b/docs/pages/advanced/react-hooks/use-set-kernelclient.mdx index 738b3b3e..c97fedcd 100644 --- a/docs/pages/advanced/react-hooks/use-set-kernelclient.mdx +++ b/docs/pages/advanced/react-hooks/use-set-kernelclient.mdx @@ -1,4 +1,4 @@ -import MutationResult from '../../shared/mutation-result.mdx' +import MutationResult from "@components/shared/mutation-result.mdx" # useSetKernelClient [Hook for setting kernel account client] diff --git a/docs/pages/advanced/react-hooks/use-switch-chain.mdx b/docs/pages/advanced/react-hooks/use-switch-chain.mdx index 032c61c0..2a8aef82 100644 --- a/docs/pages/advanced/react-hooks/use-switch-chain.mdx +++ b/docs/pages/advanced/react-hooks/use-switch-chain.mdx @@ -1,4 +1,4 @@ -import MutationResult from '../../shared/mutation-result.mdx' +import MutationResult from "@components/shared/mutation-result.mdx" # useSwitchChain [Hook for switching chain] diff --git a/docs/pages/onboarding/social-login.mdx b/docs/pages/onboarding/social-login.mdx index fbe9b1a6..e77f3d6b 100644 --- a/docs/pages/onboarding/social-login.mdx +++ b/docs/pages/onboarding/social-login.mdx @@ -1,4 +1,4 @@ -import SocialLoginSetup from '../shared/social-login-setup.mdx' +import SocialLoginSetup from "@components/shared/social-login-setup.mdx" # Social Login [Social login allows users to authenticate using their existing social media accounts such as Google or Facebook.] diff --git a/docs/pages/sdk/v5_3_x/advanced/chain-abstraction.mdx b/docs/pages/sdk/v5_3_x/advanced/chain-abstraction.mdx index ff705247..80878481 100644 --- a/docs/pages/sdk/v5_3_x/advanced/chain-abstraction.mdx +++ b/docs/pages/sdk/v5_3_x/advanced/chain-abstraction.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/advanced/defi.mdx b/docs/pages/sdk/v5_3_x/advanced/defi.mdx index 70438893..1e4d97ec 100644 --- a/docs/pages/sdk/v5_3_x/advanced/defi.mdx +++ b/docs/pages/sdk/v5_3_x/advanced/defi.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/advanced/fallback-providers.mdx b/docs/pages/sdk/v5_3_x/advanced/fallback-providers.mdx index 9f0b486e..73b623c7 100644 --- a/docs/pages/sdk/v5_3_x/advanced/fallback-providers.mdx +++ b/docs/pages/sdk/v5_3_x/advanced/fallback-providers.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/advanced/key-storage.mdx b/docs/pages/sdk/v5_3_x/advanced/key-storage.mdx index bbb5bb0e..56e57c16 100644 --- a/docs/pages/sdk/v5_3_x/advanced/key-storage.mdx +++ b/docs/pages/sdk/v5_3_x/advanced/key-storage.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/advanced/multi-chain-signing.mdx b/docs/pages/sdk/v5_3_x/advanced/multi-chain-signing.mdx index 410790cf..9b316e19 100644 --- a/docs/pages/sdk/v5_3_x/advanced/multi-chain-signing.mdx +++ b/docs/pages/sdk/v5_3_x/advanced/multi-chain-signing.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/advanced/multisig.mdx b/docs/pages/sdk/v5_3_x/advanced/multisig.mdx index 194576c4..50e8e648 100644 --- a/docs/pages/sdk/v5_3_x/advanced/multisig.mdx +++ b/docs/pages/sdk/v5_3_x/advanced/multisig.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/advanced/parallel-orders.mdx b/docs/pages/sdk/v5_3_x/advanced/parallel-orders.mdx index 7f9a0abf..106a11af 100644 --- a/docs/pages/sdk/v5_3_x/advanced/parallel-orders.mdx +++ b/docs/pages/sdk/v5_3_x/advanced/parallel-orders.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/advanced/passkeys.mdx b/docs/pages/sdk/v5_3_x/advanced/passkeys.mdx index c6bf245d..0e18495d 100644 --- a/docs/pages/sdk/v5_3_x/advanced/passkeys.mdx +++ b/docs/pages/sdk/v5_3_x/advanced/passkeys.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/advanced/recovery.mdx b/docs/pages/sdk/v5_3_x/advanced/recovery.mdx index 8f21a554..2d6c34a7 100644 --- a/docs/pages/sdk/v5_3_x/advanced/recovery.mdx +++ b/docs/pages/sdk/v5_3_x/advanced/recovery.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/advanced/session-keys.mdx b/docs/pages/sdk/v5_3_x/advanced/session-keys.mdx index 6ec4b4fd..01f8b5be 100644 --- a/docs/pages/sdk/v5_3_x/advanced/session-keys.mdx +++ b/docs/pages/sdk/v5_3_x/advanced/session-keys.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/advanced/social-login.mdx b/docs/pages/sdk/v5_3_x/advanced/social-login.mdx index 98690470..da13da48 100644 --- a/docs/pages/sdk/v5_3_x/advanced/social-login.mdx +++ b/docs/pages/sdk/v5_3_x/advanced/social-login.mdx @@ -1,6 +1,6 @@ -import SocialLoginSetup from '../../../shared/social-login-setup.mdx' +import SocialLoginSetup from "@components/shared/social-login-setup.mdx" -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/advanced/supported-base-tokens.mdx b/docs/pages/sdk/v5_3_x/advanced/supported-base-tokens.mdx index f1d4c8a3..0c2ab9a8 100644 --- a/docs/pages/sdk/v5_3_x/advanced/supported-base-tokens.mdx +++ b/docs/pages/sdk/v5_3_x/advanced/supported-base-tokens.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/advanced/supported-defi-tokens.mdx b/docs/pages/sdk/v5_3_x/advanced/supported-defi-tokens.mdx index f4b8cd95..88c0008e 100644 --- a/docs/pages/sdk/v5_3_x/advanced/supported-defi-tokens.mdx +++ b/docs/pages/sdk/v5_3_x/advanced/supported-defi-tokens.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/advanced/wallet-connect.mdx b/docs/pages/sdk/v5_3_x/advanced/wallet-connect.mdx index ec1fb784..3a7fd5a2 100644 --- a/docs/pages/sdk/v5_3_x/advanced/wallet-connect.mdx +++ b/docs/pages/sdk/v5_3_x/advanced/wallet-connect.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/core-api/batch-transactions.mdx b/docs/pages/sdk/v5_3_x/core-api/batch-transactions.mdx index 6f9e03ab..96b22987 100644 --- a/docs/pages/sdk/v5_3_x/core-api/batch-transactions.mdx +++ b/docs/pages/sdk/v5_3_x/core-api/batch-transactions.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/core-api/create-account.mdx b/docs/pages/sdk/v5_3_x/core-api/create-account.mdx index 8199f214..1aecf3b5 100644 --- a/docs/pages/sdk/v5_3_x/core-api/create-account.mdx +++ b/docs/pages/sdk/v5_3_x/core-api/create-account.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/core-api/delegatecall.mdx b/docs/pages/sdk/v5_3_x/core-api/delegatecall.mdx index 8f69b35c..1d84cbae 100644 --- a/docs/pages/sdk/v5_3_x/core-api/delegatecall.mdx +++ b/docs/pages/sdk/v5_3_x/core-api/delegatecall.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/core-api/deploy-contract.mdx b/docs/pages/sdk/v5_3_x/core-api/deploy-contract.mdx index 724a0a49..3588cf09 100644 --- a/docs/pages/sdk/v5_3_x/core-api/deploy-contract.mdx +++ b/docs/pages/sdk/v5_3_x/core-api/deploy-contract.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/core-api/pay-gas-with-erc20s.mdx b/docs/pages/sdk/v5_3_x/core-api/pay-gas-with-erc20s.mdx index 1c196c77..2d6b88a8 100644 --- a/docs/pages/sdk/v5_3_x/core-api/pay-gas-with-erc20s.mdx +++ b/docs/pages/sdk/v5_3_x/core-api/pay-gas-with-erc20s.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/core-api/send-transactions.mdx b/docs/pages/sdk/v5_3_x/core-api/send-transactions.mdx index 147b25f0..6acd6aca 100644 --- a/docs/pages/sdk/v5_3_x/core-api/send-transactions.mdx +++ b/docs/pages/sdk/v5_3_x/core-api/send-transactions.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/core-api/sign-and-verify.mdx b/docs/pages/sdk/v5_3_x/core-api/sign-and-verify.mdx index a6b839cf..a6cd0344 100644 --- a/docs/pages/sdk/v5_3_x/core-api/sign-and-verify.mdx +++ b/docs/pages/sdk/v5_3_x/core-api/sign-and-verify.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/core-api/sponsor-gas.mdx b/docs/pages/sdk/v5_3_x/core-api/sponsor-gas.mdx index 8510cb4c..0a8ce89d 100644 --- a/docs/pages/sdk/v5_3_x/core-api/sponsor-gas.mdx +++ b/docs/pages/sdk/v5_3_x/core-api/sponsor-gas.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/core-api/using-plugins.mdx b/docs/pages/sdk/v5_3_x/core-api/using-plugins.mdx index 0f70d6ad..07bc50bb 100644 --- a/docs/pages/sdk/v5_3_x/core-api/using-plugins.mdx +++ b/docs/pages/sdk/v5_3_x/core-api/using-plugins.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/faqs/audits.mdx b/docs/pages/sdk/v5_3_x/faqs/audits.mdx index 30107382..27d8c54b 100644 --- a/docs/pages/sdk/v5_3_x/faqs/audits.mdx +++ b/docs/pages/sdk/v5_3_x/faqs/audits.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/faqs/chains.mdx b/docs/pages/sdk/v5_3_x/faqs/chains.mdx index 61ba6e7b..9e64857e 100644 --- a/docs/pages/sdk/v5_3_x/faqs/chains.mdx +++ b/docs/pages/sdk/v5_3_x/faqs/chains.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/faqs/debug-userop.mdx b/docs/pages/sdk/v5_3_x/faqs/debug-userop.mdx index c016fdcb..4cacb064 100644 --- a/docs/pages/sdk/v5_3_x/faqs/debug-userop.mdx +++ b/docs/pages/sdk/v5_3_x/faqs/debug-userop.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/faqs/use-with-ethers.mdx b/docs/pages/sdk/v5_3_x/faqs/use-with-ethers.mdx index 34207bce..3276d42d 100644 --- a/docs/pages/sdk/v5_3_x/faqs/use-with-ethers.mdx +++ b/docs/pages/sdk/v5_3_x/faqs/use-with-ethers.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/faqs/use-with-gelato.mdx b/docs/pages/sdk/v5_3_x/faqs/use-with-gelato.mdx index 4a2ba319..5ad3034d 100644 --- a/docs/pages/sdk/v5_3_x/faqs/use-with-gelato.mdx +++ b/docs/pages/sdk/v5_3_x/faqs/use-with-gelato.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/faqs/use-with-react-native.mdx b/docs/pages/sdk/v5_3_x/faqs/use-with-react-native.mdx index 275eea26..2444fb7f 100644 --- a/docs/pages/sdk/v5_3_x/faqs/use-with-react-native.mdx +++ b/docs/pages/sdk/v5_3_x/faqs/use-with-react-native.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/getting-started/migration.mdx b/docs/pages/sdk/v5_3_x/getting-started/migration.mdx index d7edd563..8e009648 100644 --- a/docs/pages/sdk/v5_3_x/getting-started/migration.mdx +++ b/docs/pages/sdk/v5_3_x/getting-started/migration.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/getting-started/quickstart.mdx b/docs/pages/sdk/v5_3_x/getting-started/quickstart.mdx index be4963f3..727ed1f5 100644 --- a/docs/pages/sdk/v5_3_x/getting-started/quickstart.mdx +++ b/docs/pages/sdk/v5_3_x/getting-started/quickstart.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/getting-started/tutorial-passkeys.mdx b/docs/pages/sdk/v5_3_x/getting-started/tutorial-passkeys.mdx index 8ea47dc3..6c326cce 100644 --- a/docs/pages/sdk/v5_3_x/getting-started/tutorial-passkeys.mdx +++ b/docs/pages/sdk/v5_3_x/getting-started/tutorial-passkeys.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/getting-started/tutorial.mdx b/docs/pages/sdk/v5_3_x/getting-started/tutorial.mdx index 3601bb74..7151c1bb 100644 --- a/docs/pages/sdk/v5_3_x/getting-started/tutorial.mdx +++ b/docs/pages/sdk/v5_3_x/getting-started/tutorial.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/index.mdx b/docs/pages/sdk/v5_3_x/index.mdx index 735742b1..f29a8d0f 100644 --- a/docs/pages/sdk/v5_3_x/index.mdx +++ b/docs/pages/sdk/v5_3_x/index.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "./VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/infra/coinbase.mdx b/docs/pages/sdk/v5_3_x/infra/coinbase.mdx index f5da7939..e390617f 100644 --- a/docs/pages/sdk/v5_3_x/infra/coinbase.mdx +++ b/docs/pages/sdk/v5_3_x/infra/coinbase.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/infra/intro.mdx b/docs/pages/sdk/v5_3_x/infra/intro.mdx index da23c12d..c9476f69 100644 --- a/docs/pages/sdk/v5_3_x/infra/intro.mdx +++ b/docs/pages/sdk/v5_3_x/infra/intro.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/infra/pimlico.mdx b/docs/pages/sdk/v5_3_x/infra/pimlico.mdx index 7e89a5d9..5b2deed4 100644 --- a/docs/pages/sdk/v5_3_x/infra/pimlico.mdx +++ b/docs/pages/sdk/v5_3_x/infra/pimlico.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/infra/zerodev.mdx b/docs/pages/sdk/v5_3_x/infra/zerodev.mdx index cbaa42d7..36bba83c 100644 --- a/docs/pages/sdk/v5_3_x/infra/zerodev.mdx +++ b/docs/pages/sdk/v5_3_x/infra/zerodev.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/permissions/1-click-trading.mdx b/docs/pages/sdk/v5_3_x/permissions/1-click-trading.mdx index 0a1ebb6f..75b10789 100644 --- a/docs/pages/sdk/v5_3_x/permissions/1-click-trading.mdx +++ b/docs/pages/sdk/v5_3_x/permissions/1-click-trading.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/permissions/actions/build-your-own.mdx b/docs/pages/sdk/v5_3_x/permissions/actions/build-your-own.mdx index 5ee3d440..f6aeaca6 100644 --- a/docs/pages/sdk/v5_3_x/permissions/actions/build-your-own.mdx +++ b/docs/pages/sdk/v5_3_x/permissions/actions/build-your-own.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/permissions/intro.mdx b/docs/pages/sdk/v5_3_x/permissions/intro.mdx index 219e03eb..816e491c 100644 --- a/docs/pages/sdk/v5_3_x/permissions/intro.mdx +++ b/docs/pages/sdk/v5_3_x/permissions/intro.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/permissions/policies/build-your-own.mdx b/docs/pages/sdk/v5_3_x/permissions/policies/build-your-own.mdx index 5b7b0aa3..d659dea0 100644 --- a/docs/pages/sdk/v5_3_x/permissions/policies/build-your-own.mdx +++ b/docs/pages/sdk/v5_3_x/permissions/policies/build-your-own.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/permissions/policies/call.mdx b/docs/pages/sdk/v5_3_x/permissions/policies/call.mdx index 7fe8c6fa..656033f5 100644 --- a/docs/pages/sdk/v5_3_x/permissions/policies/call.mdx +++ b/docs/pages/sdk/v5_3_x/permissions/policies/call.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/permissions/policies/gas.mdx b/docs/pages/sdk/v5_3_x/permissions/policies/gas.mdx index ca160f83..ebd375e4 100644 --- a/docs/pages/sdk/v5_3_x/permissions/policies/gas.mdx +++ b/docs/pages/sdk/v5_3_x/permissions/policies/gas.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/permissions/policies/rate-limit.mdx b/docs/pages/sdk/v5_3_x/permissions/policies/rate-limit.mdx index 6688266e..713d5eb1 100644 --- a/docs/pages/sdk/v5_3_x/permissions/policies/rate-limit.mdx +++ b/docs/pages/sdk/v5_3_x/permissions/policies/rate-limit.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/permissions/policies/signature.mdx b/docs/pages/sdk/v5_3_x/permissions/policies/signature.mdx index 3c612067..5aabaafd 100644 --- a/docs/pages/sdk/v5_3_x/permissions/policies/signature.mdx +++ b/docs/pages/sdk/v5_3_x/permissions/policies/signature.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/permissions/policies/sudo.mdx b/docs/pages/sdk/v5_3_x/permissions/policies/sudo.mdx index f979e098..b840b5df 100644 --- a/docs/pages/sdk/v5_3_x/permissions/policies/sudo.mdx +++ b/docs/pages/sdk/v5_3_x/permissions/policies/sudo.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/permissions/policies/timestamp.mdx b/docs/pages/sdk/v5_3_x/permissions/policies/timestamp.mdx index f3c6ab0d..26d5f4f4 100644 --- a/docs/pages/sdk/v5_3_x/permissions/policies/timestamp.mdx +++ b/docs/pages/sdk/v5_3_x/permissions/policies/timestamp.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/permissions/signers/build-your-own.mdx b/docs/pages/sdk/v5_3_x/permissions/signers/build-your-own.mdx index b5fbe3f3..3c6f23ef 100644 --- a/docs/pages/sdk/v5_3_x/permissions/signers/build-your-own.mdx +++ b/docs/pages/sdk/v5_3_x/permissions/signers/build-your-own.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/permissions/signers/ecdsa.mdx b/docs/pages/sdk/v5_3_x/permissions/signers/ecdsa.mdx index e595122c..06ff1d10 100644 --- a/docs/pages/sdk/v5_3_x/permissions/signers/ecdsa.mdx +++ b/docs/pages/sdk/v5_3_x/permissions/signers/ecdsa.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/permissions/signers/multisig.mdx b/docs/pages/sdk/v5_3_x/permissions/signers/multisig.mdx index e8e87ab2..c0ae677e 100644 --- a/docs/pages/sdk/v5_3_x/permissions/signers/multisig.mdx +++ b/docs/pages/sdk/v5_3_x/permissions/signers/multisig.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/permissions/signers/passkeys.mdx b/docs/pages/sdk/v5_3_x/permissions/signers/passkeys.mdx index ea404d2d..dec0da5e 100644 --- a/docs/pages/sdk/v5_3_x/permissions/signers/passkeys.mdx +++ b/docs/pages/sdk/v5_3_x/permissions/signers/passkeys.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/permissions/transaction-automation.mdx b/docs/pages/sdk/v5_3_x/permissions/transaction-automation.mdx index b8dacae7..5570562a 100644 --- a/docs/pages/sdk/v5_3_x/permissions/transaction-automation.mdx +++ b/docs/pages/sdk/v5_3_x/permissions/transaction-automation.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/presets/intro.mdx b/docs/pages/sdk/v5_3_x/presets/intro.mdx index dd1e5bad..5cab881d 100644 --- a/docs/pages/sdk/v5_3_x/presets/intro.mdx +++ b/docs/pages/sdk/v5_3_x/presets/intro.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/presets/zerodev.mdx b/docs/pages/sdk/v5_3_x/presets/zerodev.mdx index 3b069a6b..d234f1a5 100644 --- a/docs/pages/sdk/v5_3_x/presets/zerodev.mdx +++ b/docs/pages/sdk/v5_3_x/presets/zerodev.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/signers/arcana.mdx b/docs/pages/sdk/v5_3_x/signers/arcana.mdx index a6ed7439..285fed71 100644 --- a/docs/pages/sdk/v5_3_x/signers/arcana.mdx +++ b/docs/pages/sdk/v5_3_x/signers/arcana.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/signers/capsule.mdx b/docs/pages/sdk/v5_3_x/signers/capsule.mdx index 3f05cae4..2d4a93db 100644 --- a/docs/pages/sdk/v5_3_x/signers/capsule.mdx +++ b/docs/pages/sdk/v5_3_x/signers/capsule.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/signers/custom-signer.mdx b/docs/pages/sdk/v5_3_x/signers/custom-signer.mdx index 975b376f..f0c05ee3 100644 --- a/docs/pages/sdk/v5_3_x/signers/custom-signer.mdx +++ b/docs/pages/sdk/v5_3_x/signers/custom-signer.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/signers/dfns.mdx b/docs/pages/sdk/v5_3_x/signers/dfns.mdx index a3234fe2..289ef3fe 100644 --- a/docs/pages/sdk/v5_3_x/signers/dfns.mdx +++ b/docs/pages/sdk/v5_3_x/signers/dfns.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/signers/dynamic.mdx b/docs/pages/sdk/v5_3_x/signers/dynamic.mdx index 620c61cf..ec9f48c8 100644 --- a/docs/pages/sdk/v5_3_x/signers/dynamic.mdx +++ b/docs/pages/sdk/v5_3_x/signers/dynamic.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/signers/eoa.mdx b/docs/pages/sdk/v5_3_x/signers/eoa.mdx index ab74ec1c..884aee00 100644 --- a/docs/pages/sdk/v5_3_x/signers/eoa.mdx +++ b/docs/pages/sdk/v5_3_x/signers/eoa.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/signers/fireblocks.mdx b/docs/pages/sdk/v5_3_x/signers/fireblocks.mdx index 1435381d..684c5676 100644 --- a/docs/pages/sdk/v5_3_x/signers/fireblocks.mdx +++ b/docs/pages/sdk/v5_3_x/signers/fireblocks.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/signers/intro.mdx b/docs/pages/sdk/v5_3_x/signers/intro.mdx index be6cd6b7..4f432439 100644 --- a/docs/pages/sdk/v5_3_x/signers/intro.mdx +++ b/docs/pages/sdk/v5_3_x/signers/intro.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/signers/lit-protocol.mdx b/docs/pages/sdk/v5_3_x/signers/lit-protocol.mdx index ae330d46..b4bcbcbc 100644 --- a/docs/pages/sdk/v5_3_x/signers/lit-protocol.mdx +++ b/docs/pages/sdk/v5_3_x/signers/lit-protocol.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/signers/magic.mdx b/docs/pages/sdk/v5_3_x/signers/magic.mdx index 27edf8a2..8d6dcc9f 100644 --- a/docs/pages/sdk/v5_3_x/signers/magic.mdx +++ b/docs/pages/sdk/v5_3_x/signers/magic.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/signers/particle.mdx b/docs/pages/sdk/v5_3_x/signers/particle.mdx index a14e085c..a82b3b74 100644 --- a/docs/pages/sdk/v5_3_x/signers/particle.mdx +++ b/docs/pages/sdk/v5_3_x/signers/particle.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/signers/portal.mdx b/docs/pages/sdk/v5_3_x/signers/portal.mdx index df6e382e..cf97dbca 100644 --- a/docs/pages/sdk/v5_3_x/signers/portal.mdx +++ b/docs/pages/sdk/v5_3_x/signers/portal.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/signers/privy.mdx b/docs/pages/sdk/v5_3_x/signers/privy.mdx index ac16d666..4f198069 100644 --- a/docs/pages/sdk/v5_3_x/signers/privy.mdx +++ b/docs/pages/sdk/v5_3_x/signers/privy.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/signers/turnkey.mdx b/docs/pages/sdk/v5_3_x/signers/turnkey.mdx index 50d1b33c..b71c95fe 100644 --- a/docs/pages/sdk/v5_3_x/signers/turnkey.mdx +++ b/docs/pages/sdk/v5_3_x/signers/turnkey.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/pages/sdk/v5_3_x/signers/web3auth.mdx b/docs/pages/sdk/v5_3_x/signers/web3auth.mdx index 09f6842b..25ecdc35 100644 --- a/docs/pages/sdk/v5_3_x/signers/web3auth.mdx +++ b/docs/pages/sdk/v5_3_x/signers/web3auth.mdx @@ -1,4 +1,4 @@ -import VersionWarning from "../VersionWarning" +import VersionWarning from "@components/VersionWarning" diff --git a/docs/public/404.html b/docs/public/404.html new file mode 100644 index 00000000..777ebdec --- /dev/null +++ b/docs/public/404.html @@ -0,0 +1,110 @@ + + + + + + + Page not found – ZeroDev + + + + +
+

404

+

That page has moved or no longer exists.

+

+ The documentation was reorganised. Most old links redirect + automatically, so this one points at a page that was retired without a + replacement. +

+ +
+ + diff --git a/docs/public/robots.txt b/docs/public/robots.txt new file mode 100644 index 00000000..5147ec8c --- /dev/null +++ b/docs/public/robots.txt @@ -0,0 +1,19 @@ +User-agent: * +Allow: / + +User-agent: GPTBot +Allow: / + +User-agent: Claude-Web +Allow: / + +User-agent: Anthropic-AI +Allow: / + +User-agent: ChatGPT-User +Allow: / + +User-agent: Google-Extended +Allow: / + +Sitemap: https://docs.zerodev.app/sitemap.xml diff --git a/package.json b/package.json index c29f06e0..53a53230 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "type": "module", "scripts": { "dev": "vocs dev", - "build": "vocs build", + "build": "vocs build && node scripts/sitemap.mjs", "start": "node server.mjs", "preview": "vocs preview", "check:redirects": "node scripts/check-redirects.mjs", diff --git a/redirects.config.js b/redirects.config.js index 09e2c486..8f03f642 100644 --- a/redirects.config.js +++ b/redirects.config.js @@ -125,6 +125,10 @@ export const redirects = [ { from: "/recovery-flow/portal", to: "/advanced/account-recovery/portal" }, // Smart Routing Address (and global-address duplicate) + // + // /global-address never reaches this server: a Cloudflare rule 301s it to + // /smart-routing-address first, so a reader takes two hops. The rule below is + // the target we want and takes effect once that Cloudflare rule is gone. { from: "/smart-routing-address", to: "/onramp/smart-routing-address/quickstart" }, { from: "/global-address", to: "/onramp/smart-routing-address/quickstart" }, diff --git a/scripts/check-redirects.mjs b/scripts/check-redirects.mjs index 0334ceb9..9be09563 100644 --- a/scripts/check-redirects.mjs +++ b/scripts/check-redirects.mjs @@ -48,10 +48,8 @@ function sidebarLinks() { .map((m) => stripTrailingSlash(m[1]))); } -// Orphaned on purpose. The React hooks tree documents @zerodev/waas, which is -// unmaintained: DES-21 settled on keeping the pages for old links but hiding -// them from crawlers, so they stay out of the sidebar. New orphan targets -// outside these must not be added. +// Orphaned on purpose: the react-hooks tree is unmaintained and stays hidden, +// the rest is a known gap. Do not add new orphan targets outside these. const ORPHAN_OK = ["/advanced/react-hooks/", "/api-and-toolings/", "/smart-accounts/permissions/1-click-trading"]; const SIDEBAR = sidebarLinks(); @@ -84,6 +82,17 @@ for (const { from, to } of redirects) { } } +// The v5.3.x canonical tags are derived from this table (see vocs.config.tsx). +// A page that stops mapping falls back to crediting itself and quietly competes +// again. The set's index has no equivalent and is excluded. +for (const route of ROUTES) { + if (!route.startsWith("/sdk/v5_3_x/")) continue; + const current = resolveRedirect(route.replace("/sdk/v5_3_x", "/sdk")); + if (!current?.startsWith("/")) { + errors.push(`${route} has no current page to credit, so its canonical falls back to itself`); + } +} + for (const [prefix, target] of PREFIX) { if (!ROUTES.has(stripTrailingSlash(target))) { errors.push(`prefix ${prefix} -> ${target} (no such page)`); diff --git a/scripts/sitemap.mjs b/scripts/sitemap.mjs new file mode 100644 index 00000000..7ee9469d --- /dev/null +++ b/scripts/sitemap.mjs @@ -0,0 +1,121 @@ +// Writes docs/dist/sitemap.xml after `vocs build`. +// +// Read from the built HTML, not the page sources, so the sitemap cannot +// contradict what a page declares. Listed only if the page asks to be indexed: +// no noindex, and a canonical pointing at itself. + +import { readdirSync, readFileSync, statSync, writeFileSync } from "node:fs"; +import { join } from "node:path"; +import { fileURLToPath } from "node:url"; + +import { resolveRedirect, stripTrailingSlash } from "../resolve-redirect.js"; + +export const ORIGIN = "https://docs.zerodev.app"; + +const ROOT = fileURLToPath(new URL("..", import.meta.url)); +const DIST = join(ROOT, "docs", "dist"); + +// Under this many characters of visible text a page has nothing to rank for. +const MIN_TEXT = 50; + +function pages(dir, prefix = "") { + const out = []; + for (const entry of readdirSync(dir)) { + const full = join(dir, entry); + if (statSync(full).isDirectory()) + out.push(...pages(full, `${prefix}/${entry}`)); + else if (entry === "index.html") out.push([prefix || "/", full]); + } + return out; +} + +const textOf = (html) => + html + .replace(/<(script|style)\b[^>]*>[\s\S]*?<\/\1>/gi, "") + .replace(/<[^>]+>/g, " ") + .replace(/\s+/g, " ") + .trim(); + +const tag = (html, re) => html.match(re)?.[1] ?? null; + +export function sitemapEntries() { + const skipped = { redirected: 0, noindex: 0, duplicate: 0, empty: 0 }; + const urls = []; + const uncanonical = []; + + for (const [route, file] of pages(DIST)) { + // .vocs holds the search index, not pages. + if (route.startsWith("/.")) continue; + + if (resolveRedirect(route)) { + skipped.redirected++; + continue; + } + + const html = readFileSync(file, "utf8"); + + if (/]+name=["']robots["'][^>]+noindex/i.test(html)) { + skipped.noindex++; + continue; + } + + // No canonical means the head config stopped rendering, which vocs does + // silently. Collect and fail rather than listing the page: a sitemap that + // keeps working while the tags vanish hides the regression. + const canonical = tag( + html, + /]+rel=["']canonical["'][^>]+href=["']([^"']+)["']/i, + ); + if (!canonical) { + uncanonical.push(route); + continue; + } + if (stripTrailingSlash(canonical) !== stripTrailingSlash(ORIGIN + route)) { + skipped.duplicate++; + continue; + } + + if (textOf(html).length < MIN_TEXT) { + skipped.empty++; + continue; + } + + urls.push(route === "/" ? `${ORIGIN}/` : ORIGIN + route); + } + + return { urls: urls.sort(), skipped, uncanonical }; +} + +function main() { + const { urls, skipped, uncanonical } = sitemapEntries(); + + if (uncanonical.length) { + console.error(`${uncanonical.length} built page(s) have no canonical tag:`); + for (const r of uncanonical.slice(0, 10)) console.error(` ${r}`); + if (uncanonical.length > 10) { + console.error(` ...${uncanonical.length - 10} more`); + } + console.error("check the head() function in vocs.config.tsx"); + process.exit(1); + } + + const xml = [ + '', + '', + ...urls.map((u) => ` ${u}`), + "", + "", + ].join("\n"); + + writeFileSync(join(DIST, "sitemap.xml"), xml); + + const dropped = Object.entries(skipped) + .filter(([, n]) => n) + .map(([k, n]) => `${n} ${k}`) + .join(", "); + console.log( + `sitemap.xml: ${urls.length} urls${dropped ? ` (skipped ${dropped})` : ""}`, + ); +} + +if (process.argv[1] === fileURLToPath(import.meta.url)) main(); diff --git a/vocs.config.tsx b/vocs.config.tsx index 7c0bc7e5..36341d77 100644 --- a/vocs.config.tsx +++ b/vocs.config.tsx @@ -1,4 +1,5 @@ -import { resolve } from "node:path"; +import { readFileSync, readdirSync } from "node:fs"; +import { join, resolve } from "node:path"; import { defineConfig } from "vocs"; import dotenv from "dotenv"; import { resolveRedirect } from "./resolve-redirect.js"; @@ -12,6 +13,65 @@ const componentsDir = resolve(process.cwd(), "docs/components"); dotenv.config(); +// Absolute, so the copy served on new-docs.zerodev.app credits this host +// instead of competing with it. A path-only canonical would resolve against +// whichever host served the page. +const ORIGIN = "https://docs.zerodev.app"; + +// /sdk/v5_3_x/x is the old version of /sdk/x, which already has a vetted +// redirect target, so the old set credits the current pages without a +// hand-written map. check:redirects fails if a page stops mapping. +function canonicalPath(path: string) { + if (!path.startsWith("/sdk/v5_3_x")) return path; + const current = resolveRedirect(path.replace("/sdk/v5_3_x", "/sdk")); + // Off-site targets and the set's index have no equivalent: credit itself. + return current?.startsWith("/") ? current : path; +} + +// @zerodev/waas, no release in about two years. Kept so old links resolve, +// hidden so it stops competing with the current docs. +const isUnmaintained = (path: string) => + path.startsWith("/advanced/react-hooks/"); + +const SITE_DESCRIPTION = + "Build a Web3 experience that feels like Web2, using account abstraction through ZeroDev. Say goodbye to gas, seed phrases, transaction prompts, and more."; + +// Stopgap. Vocs emits a description only where the page supplies one, and most +// do not, so they ship bare. Collect the ones that already have their own so +// the fallback never doubles up. +const PAGES_DIR = resolve(process.cwd(), "docs/pages"); + +// Either frontmatter `description:` or a bracketed suffix on the H1, as in +// `# Social Login [Social login lets users...]`. The trailing-bracket test +// excludes a markdown link, which is `[text](url)`. +function hasDescription(src: string) { + const close = src.startsWith("---") ? src.indexOf("\n---", 3) : -1; + if (close > 0 && /^description:\s*\S/m.test(src.slice(3, close))) return true; + const h1 = src.match(/^#[^#\n].*$/m)?.[0]; + return Boolean(h1 && /\[[^\]]+\]\s*$/.test(h1)); +} + +function routesWithDescription(dir = PAGES_DIR, prefix = "") { + const out = new Set(); + for (const entry of readdirSync(dir, { withFileTypes: true })) { + const full = join(dir, entry.name); + if (entry.isDirectory()) { + for (const r of routesWithDescription(full, `${prefix}/${entry.name}`)) { + out.add(r); + } + continue; + } + if (!/\.mdx?$/.test(entry.name)) continue; + const src = readFileSync(full, "utf8"); + if (!hasDescription(src)) continue; + const name = entry.name.replace(/\.mdx?$/, ""); + out.add(name === "index" ? prefix || "/" : `${prefix}/${name}`); + } + return out; +} + +const HAS_DESCRIPTION = routesWithDescription(); + export default defineConfig({ iconUrl: "/favicon.ico", logoUrl: { @@ -85,20 +145,28 @@ export default defineConfig({ title: "ZeroDev", titleTemplate: "%s – ZeroDev", description: "The most powerful smart account.", - head: ( - <> - - - - - - ), + // Must stay a function: vocs tests `typeof head === "object"` before it tests + // for an element, so a JSX element here takes the path-prefix-map branch, + // matches nothing and renders nothing. Only tags vocs does not already emit + // belong here, or pages get two of each. + head({ path }) { + const canonical = ORIGIN + canonicalPath(path); + return ( + <> + + + {!HAS_DESCRIPTION.has(path) && ( + <> + + + + )} + {isUnmaintained(path) && ( + + )} + + ); + }, // Pillars (Getting Started, Onboarding, Onramp, Smart Account, Advanced, // API & Tooling) are rendered by the `inject-pillar-bar` Vite plugin // below as a separate horizontal bar BELOW this top nav. Only utility links