@oobe-protocol-labs/synapse-client-sdk 1.2.1 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +74 -0
- package/dist/cjs/ai/gateway/index.d.ts +86 -5
- package/dist/cjs/ai/gateway/index.d.ts.map +1 -1
- package/dist/cjs/ai/gateway/index.js +278 -40
- package/dist/cjs/ai/gateway/index.js.map +1 -1
- package/dist/cjs/ai/gateway/registry.d.ts +223 -0
- package/dist/cjs/ai/gateway/registry.d.ts.map +1 -0
- package/dist/cjs/ai/gateway/registry.js +290 -0
- package/dist/cjs/ai/gateway/registry.js.map +1 -0
- package/dist/cjs/ai/gateway/types.d.ts +107 -1
- package/dist/cjs/ai/gateway/types.d.ts.map +1 -1
- package/dist/cjs/ai/gateway/x402/index.d.ts +2 -4
- package/dist/cjs/ai/gateway/x402/index.d.ts.map +1 -1
- package/dist/cjs/ai/gateway/x402/index.js +2 -1
- package/dist/cjs/ai/gateway/x402/index.js.map +1 -1
- package/dist/cjs/ai/gateway/x402/registry.d.ts +131 -1
- package/dist/cjs/ai/gateway/x402/registry.d.ts.map +1 -1
- package/dist/cjs/ai/gateway/x402/registry.js +229 -1
- package/dist/cjs/ai/gateway/x402/registry.js.map +1 -1
- package/dist/cjs/ai/index.d.ts +2 -1
- package/dist/cjs/ai/index.d.ts.map +1 -1
- package/dist/cjs/ai/index.js +21 -2
- package/dist/cjs/ai/index.js.map +1 -1
- package/dist/cjs/ai/persistence/helpers.d.ts +83 -0
- package/dist/cjs/ai/persistence/helpers.d.ts.map +1 -0
- package/dist/cjs/ai/persistence/helpers.js +193 -0
- package/dist/cjs/ai/persistence/helpers.js.map +1 -0
- package/dist/cjs/ai/persistence/index.d.ts +91 -0
- package/dist/cjs/ai/persistence/index.d.ts.map +1 -0
- package/dist/cjs/ai/persistence/index.js +109 -0
- package/dist/cjs/ai/persistence/index.js.map +1 -0
- package/dist/cjs/ai/persistence/memory.d.ts +71 -0
- package/dist/cjs/ai/persistence/memory.d.ts.map +1 -0
- package/dist/cjs/ai/persistence/memory.js +192 -0
- package/dist/cjs/ai/persistence/memory.js.map +1 -0
- package/dist/cjs/ai/persistence/postgresql.d.ts +119 -0
- package/dist/cjs/ai/persistence/postgresql.d.ts.map +1 -0
- package/dist/cjs/ai/persistence/postgresql.js +310 -0
- package/dist/cjs/ai/persistence/postgresql.js.map +1 -0
- package/dist/cjs/ai/persistence/redis.d.ts +84 -0
- package/dist/cjs/ai/persistence/redis.d.ts.map +1 -0
- package/dist/cjs/ai/persistence/redis.js +241 -0
- package/dist/cjs/ai/persistence/redis.js.map +1 -0
- package/dist/cjs/ai/persistence/types.d.ts +267 -0
- package/dist/cjs/ai/persistence/types.d.ts.map +1 -0
- package/dist/cjs/ai/persistence/types.js +40 -0
- package/dist/cjs/ai/persistence/types.js.map +1 -0
- package/dist/cjs/core/client.d.ts +16 -0
- package/dist/cjs/core/client.d.ts.map +1 -1
- package/dist/cjs/core/client.js +18 -0
- package/dist/cjs/core/client.js.map +1 -1
- package/dist/cjs/next/index.d.ts +141 -0
- package/dist/cjs/next/index.d.ts.map +1 -0
- package/dist/cjs/next/index.js +177 -0
- package/dist/cjs/next/index.js.map +1 -0
- package/dist/cjs/utils/helpers.d.ts +79 -1
- package/dist/cjs/utils/helpers.d.ts.map +1 -1
- package/dist/cjs/utils/helpers.js +109 -0
- package/dist/cjs/utils/helpers.js.map +1 -1
- package/dist/docs/assets/navigation.js +1 -1
- package/dist/docs/assets/search.js +1 -1
- package/dist/docs/classes/AccountReader.html +18 -18
- package/dist/docs/classes/AccountsClient.html +10 -10
- package/dist/docs/classes/AsyncProviderError.html +4 -4
- package/dist/docs/classes/CircularDependencyError.html +4 -4
- package/dist/docs/classes/DasClient.html +13 -13
- package/dist/docs/classes/GeyserParser.html +17 -17
- package/dist/docs/classes/GrpcTransport.html +6 -6
- package/dist/docs/classes/HttpTransport.html +4 -4
- package/dist/docs/classes/InstructionWriter.html +11 -11
- package/dist/docs/classes/MemoryGuard.html +9 -9
- package/dist/docs/classes/NetworkError.html +5 -5
- package/dist/docs/classes/RefRegistry.html +11 -11
- package/dist/docs/classes/RefReleasedError.html +4 -4
- package/dist/docs/classes/RpcMethodNotFoundError.html +4 -4
- package/dist/docs/classes/ServiceNotFoundError.html +4 -4
- package/dist/docs/classes/ServiceRef.html +13 -13
- package/dist/docs/classes/SolanaRpc.html +55 -55
- package/dist/docs/classes/SynapseClient.html +25 -15
- package/dist/docs/classes/SynapseContext.html +27 -27
- package/dist/docs/classes/SynapseError.html +4 -4
- package/dist/docs/classes/TimeoutError.html +4 -4
- package/dist/docs/classes/UpstreamError.html +6 -6
- package/dist/docs/classes/WeakServiceRef.html +4 -4
- package/dist/docs/classes/WsClient.html +10 -10
- package/dist/docs/enums/SynapseNetwork.html +2 -2
- package/dist/docs/enums/SynapseRegion.html +2 -2
- package/dist/docs/enums/TokenExtensionType.html +2 -2
- package/dist/docs/functions/Epoch-1.html +1 -1
- package/dist/docs/functions/Lamports-2.html +1 -1
- package/dist/docs/functions/Pubkey-1.html +1 -1
- package/dist/docs/functions/Sig.html +1 -1
- package/dist/docs/functions/Slot-1.html +1 -1
- package/dist/docs/functions/UnixTs.html +1 -1
- package/dist/docs/functions/autoSelectRegion.html +1 -1
- package/dist/docs/functions/autoWire.html +1 -1
- package/dist/docs/functions/base58Encode.html +1 -1
- package/dist/docs/functions/base64ToBytes.html +1 -1
- package/dist/docs/functions/bigIntReplacer.html +6 -0
- package/dist/docs/functions/chunk.html +1 -1
- package/dist/docs/functions/computeBalanceChanges.html +1 -1
- package/dist/docs/functions/computeTokenBalanceChanges.html +1 -1
- package/dist/docs/functions/createBareContext.html +1 -1
- package/dist/docs/functions/createBinding.html +1 -1
- package/dist/docs/functions/createBoundHook.html +1 -1
- package/dist/docs/functions/createReactAdapter.html +1 -1
- package/dist/docs/functions/createRefHook.html +1 -1
- package/dist/docs/functions/createServerMiddleware.html +1 -1
- package/dist/docs/functions/createServiceHook.html +1 -1
- package/dist/docs/functions/createSingleton.html +15 -0
- package/dist/docs/functions/createSynapse.html +1 -1
- package/dist/docs/functions/createSynapseContext.html +1 -1
- package/dist/docs/functions/createToken.html +1 -1
- package/dist/docs/functions/decodeBase58.html +1 -1
- package/dist/docs/functions/decodeLookupTable.html +1 -1
- package/dist/docs/functions/decodeMint.html +1 -1
- package/dist/docs/functions/decodeMultisig.html +1 -1
- package/dist/docs/functions/decodeNonceAccount.html +1 -1
- package/dist/docs/functions/decodeStakeAccount.html +1 -1
- package/dist/docs/functions/decodeToken2022Account.html +1 -1
- package/dist/docs/functions/decodeToken2022Mint.html +1 -1
- package/dist/docs/functions/decodeTokenAccount.html +1 -1
- package/dist/docs/functions/encodeBase58.html +1 -1
- package/dist/docs/functions/fetchLookupTable.html +1 -1
- package/dist/docs/functions/fetchMint.html +1 -1
- package/dist/docs/functions/fetchNonceAccount.html +1 -1
- package/dist/docs/functions/fetchStakeAccount.html +1 -1
- package/dist/docs/functions/fetchTokenAccount.html +1 -1
- package/dist/docs/functions/fetchTokenAccountsByOwner.html +1 -1
- package/dist/docs/functions/fromKitAddress.html +1 -1
- package/dist/docs/functions/getAccountInfo.html +1 -1
- package/dist/docs/functions/getAsset.html +1 -1
- package/dist/docs/functions/getAssetBatch.html +1 -1
- package/dist/docs/functions/getAssetProof.html +1 -1
- package/dist/docs/functions/getAssetProofBatch.html +1 -1
- package/dist/docs/functions/getAssetsByAuthority.html +1 -1
- package/dist/docs/functions/getAssetsByCreator.html +1 -1
- package/dist/docs/functions/getAssetsByGroup.html +1 -1
- package/dist/docs/functions/getAssetsByOwner.html +1 -1
- package/dist/docs/functions/getBalance.html +1 -1
- package/dist/docs/functions/getBlock.html +1 -1
- package/dist/docs/functions/getBlockCommitment.html +1 -1
- package/dist/docs/functions/getBlockHeight.html +1 -1
- package/dist/docs/functions/getBlockProduction.html +1 -1
- package/dist/docs/functions/getBlockTime.html +1 -1
- package/dist/docs/functions/getBlocks.html +1 -1
- package/dist/docs/functions/getBlocksWithLimit.html +1 -1
- package/dist/docs/functions/getClusterNodes.html +1 -1
- package/dist/docs/functions/getContext.html +1 -1
- package/dist/docs/functions/getDecodedAccount.html +1 -1
- package/dist/docs/functions/getDecodedAccounts.html +1 -1
- package/dist/docs/functions/getEnvironment.html +1 -1
- package/dist/docs/functions/getEpochInfo.html +1 -1
- package/dist/docs/functions/getEpochSchedule.html +1 -1
- package/dist/docs/functions/getFeeForMessage.html +1 -1
- package/dist/docs/functions/getFirstAvailableBlock.html +1 -1
- package/dist/docs/functions/getGenesisHash.html +1 -1
- package/dist/docs/functions/getHealth.html +1 -1
- package/dist/docs/functions/getHighestSnapshotSlot.html +1 -1
- package/dist/docs/functions/getIdentity.html +1 -1
- package/dist/docs/functions/getInflationGovernor.html +1 -1
- package/dist/docs/functions/getInflationRate.html +1 -1
- package/dist/docs/functions/getInflationReward.html +1 -1
- package/dist/docs/functions/getLargestAccounts.html +1 -1
- package/dist/docs/functions/getLatestBlockhash.html +1 -1
- package/dist/docs/functions/getLeaderSchedule.html +1 -1
- package/dist/docs/functions/getMaxRetransmitSlot.html +1 -1
- package/dist/docs/functions/getMaxShredInsertSlot.html +1 -1
- package/dist/docs/functions/getMinimumBalanceForRentExemption.html +1 -1
- package/dist/docs/functions/getMultipleAccounts.html +1 -1
- package/dist/docs/functions/getProgramAccounts.html +1 -1
- package/dist/docs/functions/getProgramCategory.html +1 -1
- package/dist/docs/functions/getRecentPerformanceSamples.html +1 -1
- package/dist/docs/functions/getRecentPrioritizationFees.html +1 -1
- package/dist/docs/functions/getSignatureStatuses.html +1 -1
- package/dist/docs/functions/getSignaturesForAddress.html +1 -1
- package/dist/docs/functions/getSignaturesForAsset.html +1 -1
- package/dist/docs/functions/getSlot.html +1 -1
- package/dist/docs/functions/getSlotLeader.html +1 -1
- package/dist/docs/functions/getSlotLeaders.html +1 -1
- package/dist/docs/functions/getStakeActivation.html +1 -1
- package/dist/docs/functions/getStakeMinimumDelegation.html +1 -1
- package/dist/docs/functions/getSupply.html +1 -1
- package/dist/docs/functions/getTokenAccountBalance.html +1 -1
- package/dist/docs/functions/getTokenAccounts.html +1 -1
- package/dist/docs/functions/getTokenAccountsByDelegate.html +1 -1
- package/dist/docs/functions/getTokenAccountsByOwner.html +1 -1
- package/dist/docs/functions/getTokenLargestAccounts.html +1 -1
- package/dist/docs/functions/getTokenSupply.html +1 -1
- package/dist/docs/functions/getTransaction.html +1 -1
- package/dist/docs/functions/getTransactionCount.html +1 -1
- package/dist/docs/functions/getVersion.html +1 -1
- package/dist/docs/functions/getVoteAccounts.html +1 -1
- package/dist/docs/functions/isBlockhashValid.html +1 -1
- package/dist/docs/functions/isBrowser.html +1 -1
- package/dist/docs/functions/isDisposable.html +1 -1
- package/dist/docs/functions/isProgramInCategory.html +1 -1
- package/dist/docs/functions/isServer.html +1 -1
- package/dist/docs/functions/isValidPubkey.html +1 -1
- package/dist/docs/functions/isValidSignature.html +1 -1
- package/dist/docs/functions/lamportsToSol.html +1 -1
- package/dist/docs/functions/listEndpoints.html +1 -1
- package/dist/docs/functions/listNetworks.html +1 -1
- package/dist/docs/functions/listRegions.html +1 -1
- package/dist/docs/functions/minimumLedgerSlot.html +1 -1
- package/dist/docs/functions/parseAccountUpdate.html +1 -1
- package/dist/docs/functions/parseBlockMeta.html +1 -1
- package/dist/docs/functions/parseEntry.html +1 -1
- package/dist/docs/functions/parseGeyserUpdate.html +1 -1
- package/dist/docs/functions/parseSlotUpdate.html +1 -1
- package/dist/docs/functions/parseTimestamp.html +1 -1
- package/dist/docs/functions/parseTransaction.html +1 -1
- package/dist/docs/functions/probeLatency.html +1 -1
- package/dist/docs/functions/rawBufferToBase58.html +1 -1
- package/dist/docs/functions/rawBufferToBase64.html +1 -1
- package/dist/docs/functions/rawBufferToBytes.html +1 -1
- package/dist/docs/functions/rawBufferToHex.html +1 -1
- package/dist/docs/functions/readonly.html +1 -1
- package/dist/docs/functions/readonlySigner.html +1 -1
- package/dist/docs/functions/requestAirdrop.html +1 -1
- package/dist/docs/functions/resolveEndpoint.html +1 -1
- package/dist/docs/functions/resolveProgram.html +1 -1
- package/dist/docs/functions/resolveProgramBatch.html +1 -1
- package/dist/docs/functions/retry.html +1 -1
- package/dist/docs/functions/searchAssets.html +1 -1
- package/dist/docs/functions/sendTransaction.html +1 -1
- package/dist/docs/functions/setGlobalContext.html +1 -1
- package/dist/docs/functions/simulateTransaction.html +1 -1
- package/dist/docs/functions/sleep.html +1 -1
- package/dist/docs/functions/solToLamports.html +1 -1
- package/dist/docs/functions/toClientConfig.html +1 -1
- package/dist/docs/functions/toJsonSafe.html +13 -0
- package/dist/docs/functions/toKitAddress.html +1 -1
- package/dist/docs/functions/toKitInstruction.html +1 -1
- package/dist/docs/functions/toKitLamports.html +1 -1
- package/dist/docs/functions/toKitSignatureString.html +1 -1
- package/dist/docs/functions/tryGetContext.html +1 -1
- package/dist/docs/functions/tryUseService.html +1 -1
- package/dist/docs/functions/useBoundServices.html +1 -1
- package/dist/docs/functions/useService.html +1 -1
- package/dist/docs/functions/useSharedRef.html +1 -1
- package/dist/docs/functions/withRef.html +1 -1
- package/dist/docs/functions/withRefAsync.html +1 -1
- package/dist/docs/functions/writable.html +1 -1
- package/dist/docs/functions/writableSigner.html +1 -1
- package/dist/docs/interfaces/AccountInfo.html +7 -7
- package/dist/docs/interfaces/AccountMeta.html +4 -4
- package/dist/docs/interfaces/AccountNotification.html +2 -2
- package/dist/docs/interfaces/AccountSubParams.html +2 -2
- package/dist/docs/interfaces/AddMemoParams.html +5 -5
- package/dist/docs/interfaces/AdvanceNonceParams.html +3 -3
- package/dist/docs/interfaces/AliasProvider.html +2 -2
- package/dist/docs/interfaces/AllocateParams.html +3 -3
- package/dist/docs/interfaces/ApproveCheckedParams.html +9 -9
- package/dist/docs/interfaces/ApproveParams.html +7 -7
- package/dist/docs/interfaces/AssetSignatureInfo.html +2 -2
- package/dist/docs/interfaces/AssetSignaturesPage.html +2 -2
- package/dist/docs/interfaces/AssignParams.html +3 -3
- package/dist/docs/interfaces/AsyncFactoryProvider.html +2 -2
- package/dist/docs/interfaces/AuthorizeNonceParams.html +4 -4
- package/dist/docs/interfaces/BalanceChange.html +6 -6
- package/dist/docs/interfaces/BlockProduction.html +3 -3
- package/dist/docs/interfaces/BlockResult.html +2 -2
- package/dist/docs/interfaces/BlockReward.html +2 -2
- package/dist/docs/interfaces/BlockhashResult.html +2 -2
- package/dist/docs/interfaces/BurnCheckedParams.html +8 -8
- package/dist/docs/interfaces/BurnParams.html +7 -7
- package/dist/docs/interfaces/CallOptions.html +6 -6
- package/dist/docs/interfaces/ClassProvider.html +2 -2
- package/dist/docs/interfaces/CloseAccountParams.html +6 -6
- package/dist/docs/interfaces/ConfirmedTransaction.html +6 -6
- package/dist/docs/interfaces/ContactInfo.html +2 -2
- package/dist/docs/interfaces/ContextAdapter.html +5 -5
- package/dist/docs/interfaces/ContextEvents.html +6 -6
- package/dist/docs/interfaces/ContextModule.html +3 -3
- package/dist/docs/interfaces/CreateATAParams.html +6 -6
- package/dist/docs/interfaces/CreateAccountParams.html +6 -6
- package/dist/docs/interfaces/CreateAccountWithSeedParams.html +8 -8
- package/dist/docs/interfaces/CreateSynapseContextOpts.html +4 -4
- package/dist/docs/interfaces/DasAsset.html +2 -2
- package/dist/docs/interfaces/DasAssetProof.html +2 -2
- package/dist/docs/interfaces/DasAuthority.html +2 -2
- package/dist/docs/interfaces/DasCompression.html +2 -2
- package/dist/docs/interfaces/DasContent.html +2 -2
- package/dist/docs/interfaces/DasCreator.html +2 -2
- package/dist/docs/interfaces/DasFile.html +2 -2
- package/dist/docs/interfaces/DasGrouping.html +2 -2
- package/dist/docs/interfaces/DasOpts.html +2 -2
- package/dist/docs/interfaces/DasOwnership.html +2 -2
- package/dist/docs/interfaces/DasPage.html +2 -2
- package/dist/docs/interfaces/DasRoyalty.html +2 -2
- package/dist/docs/interfaces/DasSearchParams.html +2 -2
- package/dist/docs/interfaces/DasSupply.html +2 -2
- package/dist/docs/interfaces/DataSlice.html +3 -3
- package/dist/docs/interfaces/DecodedAccountResult.html +4 -4
- package/dist/docs/interfaces/DecodedLookupTable.html +8 -8
- package/dist/docs/interfaces/DecodedMint.html +6 -6
- package/dist/docs/interfaces/DecodedMultisig.html +5 -5
- package/dist/docs/interfaces/DecodedNonceAccount.html +6 -6
- package/dist/docs/interfaces/DecodedStakeAccount.html +2 -2
- package/dist/docs/interfaces/DecodedToken2022Account.html +9 -9
- package/dist/docs/interfaces/DecodedToken2022Mint.html +6 -6
- package/dist/docs/interfaces/DecodedTokenAccount.html +9 -9
- package/dist/docs/interfaces/DefaultAccountStateExt.html +2 -2
- package/dist/docs/interfaces/Disposable.html +2 -2
- package/dist/docs/interfaces/EndpointConnectConfig.html +5 -5
- package/dist/docs/interfaces/EpochInfo.html +7 -7
- package/dist/docs/interfaces/EpochSchedule.html +2 -2
- package/dist/docs/interfaces/FactoryProvider.html +2 -2
- package/dist/docs/interfaces/FetchedMint.html +6 -6
- package/dist/docs/interfaces/FetchedTokenAccount.html +6 -6
- package/dist/docs/interfaces/FreezeThawParams.html +6 -6
- package/dist/docs/interfaces/GetAccountInfoOpts.html +6 -6
- package/dist/docs/interfaces/GetAssetsByAuthorityParams.html +2 -2
- package/dist/docs/interfaces/GetAssetsByCreatorParams.html +2 -2
- package/dist/docs/interfaces/GetAssetsByGroupParams.html +2 -2
- package/dist/docs/interfaces/GetAssetsByOwnerParams.html +2 -2
- package/dist/docs/interfaces/GetBlockOpts.html +6 -6
- package/dist/docs/interfaces/GetBlockProductionOpts.html +6 -6
- package/dist/docs/interfaces/GetMultipleAccountsOpts.html +6 -6
- package/dist/docs/interfaces/GetProgramAccountsOpts.html +6 -6
- package/dist/docs/interfaces/GetSignatureStatusesOpts.html +6 -6
- package/dist/docs/interfaces/GetSignaturesOpts.html +7 -7
- package/dist/docs/interfaces/GetTokenAccountsParams.html +2 -2
- package/dist/docs/interfaces/GetTransactionOpts.html +6 -6
- package/dist/docs/interfaces/GeyserParserConfig.html +6 -6
- package/dist/docs/interfaces/GeyserParserEvents.html +9 -9
- package/dist/docs/interfaces/GeyserParserStats.html +2 -2
- package/dist/docs/interfaces/GrpcCallOptions.html +2 -2
- package/dist/docs/interfaces/GrpcTransportConfig.html +6 -6
- package/dist/docs/interfaces/ImmutableOwnerExt.html +2 -2
- package/dist/docs/interfaces/InflationGovernor.html +2 -2
- package/dist/docs/interfaces/InflationRate.html +2 -2
- package/dist/docs/interfaces/InflationReward.html +2 -2
- package/dist/docs/interfaces/InitializeAccountParams.html +5 -5
- package/dist/docs/interfaces/InitializeMintParams.html +6 -6
- package/dist/docs/interfaces/InitializeNonceParams.html +3 -3
- package/dist/docs/interfaces/InterestBearingConfigExt.html +2 -2
- package/dist/docs/interfaces/LatencyProbeResult.html +2 -2
- package/dist/docs/interfaces/LeakReport.html +5 -5
- package/dist/docs/interfaces/LogsNotification.html +2 -2
- package/dist/docs/interfaces/LogsSubParams.html +2 -2
- package/dist/docs/interfaces/MemoTransferExt.html +2 -2
- package/dist/docs/interfaces/MemoryGuardConfig.html +4 -4
- package/dist/docs/interfaces/MetadataPointerExt.html +2 -2
- package/dist/docs/interfaces/MintCloseAuthorityExt.html +2 -2
- package/dist/docs/interfaces/MintToCheckedParams.html +8 -8
- package/dist/docs/interfaces/MintToParams.html +7 -7
- package/dist/docs/interfaces/NonTransferableExt.html +2 -2
- package/dist/docs/interfaces/PaginationOpts.html +2 -2
- package/dist/docs/interfaces/ParsedAccountUpdate.html +16 -16
- package/dist/docs/interfaces/ParsedBlockMeta.html +2 -2
- package/dist/docs/interfaces/ParsedEntry.html +2 -2
- package/dist/docs/interfaces/ParsedInstruction.html +9 -9
- package/dist/docs/interfaces/ParsedSlotUpdate.html +3 -3
- package/dist/docs/interfaces/ParsedTransaction.html +19 -19
- package/dist/docs/interfaces/PerfSample.html +2 -2
- package/dist/docs/interfaces/PermanentDelegateExt.html +2 -2
- package/dist/docs/interfaces/ProgramAccount.html +2 -2
- package/dist/docs/interfaces/ProgramNotification.html +2 -2
- package/dist/docs/interfaces/ProgramSubParams.html +2 -2
- package/dist/docs/interfaces/ProgramsBundle.html +33 -33
- package/dist/docs/interfaces/RawAccountInfo.html +2 -2
- package/dist/docs/interfaces/RawBlockMeta.html +2 -2
- package/dist/docs/interfaces/RawBuffer.html +2 -2
- package/dist/docs/interfaces/RawCompiledInstruction.html +2 -2
- package/dist/docs/interfaces/RawEntry.html +2 -2
- package/dist/docs/interfaces/RawGeyserUpdate.html +2 -2
- package/dist/docs/interfaces/RawInnerInstruction.html +2 -2
- package/dist/docs/interfaces/RawSlotInfo.html +2 -2
- package/dist/docs/interfaces/RawTimestamp.html +2 -2
- package/dist/docs/interfaces/RawTokenBalance.html +2 -2
- package/dist/docs/interfaces/RawTransactionInfo.html +2 -2
- package/dist/docs/interfaces/ReactAdapterConfig.html +2 -2
- package/dist/docs/interfaces/RecoverNestedParams.html +7 -7
- package/dist/docs/interfaces/RefRegistryConfig.html +2 -2
- package/dist/docs/interfaces/RefStats.html +7 -7
- package/dist/docs/interfaces/RequestHeapFrameParams.html +2 -2
- package/dist/docs/interfaces/ResolveMiddleware.html +1 -1
- package/dist/docs/interfaces/RevokeParams.html +5 -5
- package/dist/docs/interfaces/RootNotification.html +2 -2
- package/dist/docs/interfaces/RootSubParams.html +1 -1
- package/dist/docs/interfaces/RpcContext.html +2 -2
- package/dist/docs/interfaces/RpcError.html +4 -4
- package/dist/docs/interfaces/RpcRequest.html +3 -3
- package/dist/docs/interfaces/RpcResponse.html +2 -2
- package/dist/docs/interfaces/SendTransactionOpts.html +6 -6
- package/dist/docs/interfaces/ServerAdapterConfig.html +3 -3
- package/dist/docs/interfaces/ServiceBinding.html +6 -6
- package/dist/docs/interfaces/ServiceRegistration.html +3 -3
- package/dist/docs/interfaces/ServiceResolver.html +6 -6
- package/dist/docs/interfaces/ServiceToken.html +4 -4
- package/dist/docs/interfaces/SetComputeUnitLimitParams.html +2 -2
- package/dist/docs/interfaces/SetComputeUnitPriceParams.html +2 -2
- package/dist/docs/interfaces/SetLoadedAccountsDataSizeLimitParams.html +2 -2
- package/dist/docs/interfaces/SignatureInfo.html +7 -7
- package/dist/docs/interfaces/SignatureNotification.html +2 -2
- package/dist/docs/interfaces/SignatureStatus.html +5 -5
- package/dist/docs/interfaces/SignatureSubParams.html +2 -2
- package/dist/docs/interfaces/SignaturesForAssetParams.html +2 -2
- package/dist/docs/interfaces/SimulateResult.html +2 -2
- package/dist/docs/interfaces/SimulateTransactionOpts.html +7 -7
- package/dist/docs/interfaces/SingletonOptions.html +7 -0
- package/dist/docs/interfaces/SlotNotification.html +2 -2
- package/dist/docs/interfaces/SlotSubParams.html +1 -1
- package/dist/docs/interfaces/SortOpts.html +2 -2
- package/dist/docs/interfaces/StakeAuthorized.html +2 -2
- package/dist/docs/interfaces/StakeDelegation.html +3 -3
- package/dist/docs/interfaces/StakeLockup.html +4 -4
- package/dist/docs/interfaces/StakeMeta.html +2 -2
- package/dist/docs/interfaces/Supply.html +5 -5
- package/dist/docs/interfaces/SynapseClientConfig.html +9 -9
- package/dist/docs/interfaces/SynapseClientLike.html +2 -2
- package/dist/docs/interfaces/SynapseEndpoint.html +7 -7
- package/dist/docs/interfaces/SyncNativeParams.html +3 -3
- package/dist/docs/interfaces/SystemTransferParams.html +4 -4
- package/dist/docs/interfaces/TokenAccount.html +3 -3
- package/dist/docs/interfaces/TokenAccountsByOwnerResult.html +2 -2
- package/dist/docs/interfaces/TokenAmount.html +5 -5
- package/dist/docs/interfaces/TokenBalanceChange.html +2 -2
- package/dist/docs/interfaces/TokenTransferParams.html +7 -7
- package/dist/docs/interfaces/TransactionInstruction.html +4 -4
- package/dist/docs/interfaces/TransactionMeta.html +11 -11
- package/dist/docs/interfaces/TransferCheckedParams.html +9 -9
- package/dist/docs/interfaces/TransferFeeAmount.html +2 -2
- package/dist/docs/interfaces/TransferFeeConfig.html +2 -2
- package/dist/docs/interfaces/TransportConfig.html +7 -7
- package/dist/docs/interfaces/UnknownExtension.html +2 -2
- package/dist/docs/interfaces/ValueProvider.html +2 -2
- package/dist/docs/interfaces/VoteAccount.html +9 -9
- package/dist/docs/interfaces/VoteAccountsResult.html +3 -3
- package/dist/docs/interfaces/WithdrawNonceParams.html +5 -5
- package/dist/docs/interfaces/WsConfig.html +6 -6
- package/dist/docs/media/CHANGELOG.md +74 -0
- package/dist/docs/modules.html +4 -0
- package/dist/docs/types/AccountFetchOpts.html +1 -1
- package/dist/docs/types/AccountFilter.html +1 -1
- package/dist/docs/types/Base58.html +1 -1
- package/dist/docs/types/Brand.html +1 -1
- package/dist/docs/types/Commitment.html +1 -1
- package/dist/docs/types/DasSortBy.html +1 -1
- package/dist/docs/types/DasSortDirection.html +1 -1
- package/dist/docs/types/DataSizeFilter.html +1 -1
- package/dist/docs/types/DecodedExtension.html +1 -1
- package/dist/docs/types/Encoding.html +1 -1
- package/dist/docs/types/Epoch.html +1 -1
- package/dist/docs/types/Lamports.html +1 -1
- package/dist/docs/types/LogsFilter.html +1 -1
- package/dist/docs/types/MemcmpFilter.html +1 -1
- package/dist/docs/types/NonceState.html +1 -1
- package/dist/docs/types/ParsedGeyserUpdate.html +1 -1
- package/dist/docs/types/Pubkey.html +1 -1
- package/dist/docs/types/RuntimeEnv.html +1 -1
- package/dist/docs/types/ServiceLifecycle.html +1 -1
- package/dist/docs/types/ServiceProvider.html +1 -1
- package/dist/docs/types/Signature.html +1 -1
- package/dist/docs/types/Slot.html +1 -1
- package/dist/docs/types/StakeAccountType.html +1 -1
- package/dist/docs/types/SubscriptionId.html +1 -1
- package/dist/docs/types/TokenAccountState.html +1 -1
- package/dist/docs/types/TransactionDetail.html +1 -1
- package/dist/docs/types/UnaryMethod.html +1 -1
- package/dist/docs/types/UnixTimestamp.html +1 -1
- package/dist/docs/types/WsNotification.html +1 -1
- package/dist/docs/variables/ASSOCIATED_TOKEN_PROGRAM.html +1 -1
- package/dist/docs/variables/AssociatedToken.html +4 -4
- package/dist/docs/variables/COMPUTE_BUDGET_PROGRAM.html +1 -1
- package/dist/docs/variables/ComputeBudget.html +5 -5
- package/dist/docs/variables/JUPITER_PROGRAMS.html +1 -1
- package/dist/docs/variables/KNOWN_PROGRAMS.html +1 -1
- package/dist/docs/variables/KNOWN_PROGRAMS_COUNT.html +1 -1
- package/dist/docs/variables/LOOKUP_TABLE_HEADER_SIZE.html +1 -1
- package/dist/docs/variables/LOOKUP_TABLE_PROGRAM_ID.html +1 -1
- package/dist/docs/variables/MARINADE_PROGRAMS.html +1 -1
- package/dist/docs/variables/MAX_MULTISIG_SIGNERS.html +1 -1
- package/dist/docs/variables/MEMO_PROGRAM_V1.html +1 -1
- package/dist/docs/variables/MEMO_PROGRAM_V2.html +1 -1
- package/dist/docs/variables/METAPLEX_PROGRAMS.html +1 -1
- package/dist/docs/variables/METEORA_PROGRAMS.html +1 -1
- package/dist/docs/variables/MINT_SIZE.html +1 -1
- package/dist/docs/variables/MULTISIG_SIZE.html +1 -1
- package/dist/docs/variables/Memo.html +2 -2
- package/dist/docs/variables/NONCE_ACCOUNT_SIZE.html +1 -1
- package/dist/docs/variables/ORCA_PROGRAMS.html +1 -1
- package/dist/docs/variables/OTHER_PROGRAMS.html +1 -1
- package/dist/docs/variables/RAYDIUM_PROGRAMS.html +1 -1
- package/dist/docs/variables/SDK_USER_AGENT.html +1 -1
- package/dist/docs/variables/SPL_PROGRAMS.html +1 -1
- package/dist/docs/variables/STAKE_PROGRAM_ID.html +1 -1
- package/dist/docs/variables/SYNAPSE_DEVNET_EU.html +1 -1
- package/dist/docs/variables/SYNAPSE_DEVNET_US.html +1 -1
- package/dist/docs/variables/SYNAPSE_ENDPOINTS.html +1 -1
- package/dist/docs/variables/SYNAPSE_MAINNET_EU.html +1 -1
- package/dist/docs/variables/SYNAPSE_MAINNET_US.html +1 -1
- package/dist/docs/variables/SYSTEM_PROGRAM.html +1 -1
- package/dist/docs/variables/SYSTEM_PROGRAMS.html +1 -1
- package/dist/docs/variables/SYSTEM_PROGRAM_ID.html +1 -1
- package/dist/docs/variables/SplToken.html +16 -16
- package/dist/docs/variables/SystemProgram.html +10 -10
- package/dist/docs/variables/TOKEN_2022_PROGRAM.html +1 -1
- package/dist/docs/variables/TOKEN_2022_PROGRAM_ID.html +1 -1
- package/dist/docs/variables/TOKEN_ACCOUNT_SIZE.html +1 -1
- package/dist/docs/variables/TOKEN_PROGRAM.html +1 -1
- package/dist/docs/variables/TOKEN_PROGRAM_ID.html +1 -1
- package/dist/docs/variables/Tokens.html +1 -1
- package/dist/esm/ai/gateway/index.d.ts +86 -5
- package/dist/esm/ai/gateway/index.d.ts.map +1 -1
- package/dist/esm/ai/gateway/index.js +275 -39
- package/dist/esm/ai/gateway/index.js.map +1 -1
- package/dist/esm/ai/gateway/registry.d.ts +223 -0
- package/dist/esm/ai/gateway/registry.d.ts.map +1 -0
- package/dist/esm/ai/gateway/registry.js +285 -0
- package/dist/esm/ai/gateway/registry.js.map +1 -0
- package/dist/esm/ai/gateway/types.d.ts +107 -1
- package/dist/esm/ai/gateway/types.d.ts.map +1 -1
- package/dist/esm/ai/gateway/x402/index.d.ts +2 -4
- package/dist/esm/ai/gateway/x402/index.d.ts.map +1 -1
- package/dist/esm/ai/gateway/x402/index.js +2 -3
- package/dist/esm/ai/gateway/x402/index.js.map +1 -1
- package/dist/esm/ai/gateway/x402/registry.d.ts +131 -1
- package/dist/esm/ai/gateway/x402/registry.d.ts.map +1 -1
- package/dist/esm/ai/gateway/x402/registry.js +227 -0
- package/dist/esm/ai/gateway/x402/registry.js.map +1 -1
- package/dist/esm/ai/index.d.ts +2 -1
- package/dist/esm/ai/index.d.ts.map +1 -1
- package/dist/esm/ai/index.js +13 -1
- package/dist/esm/ai/index.js.map +1 -1
- package/dist/esm/ai/persistence/helpers.d.ts +83 -0
- package/dist/esm/ai/persistence/helpers.d.ts.map +1 -0
- package/dist/esm/ai/persistence/helpers.js +183 -0
- package/dist/esm/ai/persistence/helpers.js.map +1 -0
- package/dist/esm/ai/persistence/index.d.ts +91 -0
- package/dist/esm/ai/persistence/index.d.ts.map +1 -0
- package/dist/esm/ai/persistence/index.js +94 -0
- package/dist/esm/ai/persistence/index.js.map +1 -0
- package/dist/esm/ai/persistence/memory.d.ts +71 -0
- package/dist/esm/ai/persistence/memory.d.ts.map +1 -0
- package/dist/esm/ai/persistence/memory.js +188 -0
- package/dist/esm/ai/persistence/memory.js.map +1 -0
- package/dist/esm/ai/persistence/postgresql.d.ts +119 -0
- package/dist/esm/ai/persistence/postgresql.d.ts.map +1 -0
- package/dist/esm/ai/persistence/postgresql.js +306 -0
- package/dist/esm/ai/persistence/postgresql.js.map +1 -0
- package/dist/esm/ai/persistence/redis.d.ts +84 -0
- package/dist/esm/ai/persistence/redis.d.ts.map +1 -0
- package/dist/esm/ai/persistence/redis.js +237 -0
- package/dist/esm/ai/persistence/redis.js.map +1 -0
- package/dist/esm/ai/persistence/types.d.ts +267 -0
- package/dist/esm/ai/persistence/types.d.ts.map +1 -0
- package/dist/esm/ai/persistence/types.js +36 -0
- package/dist/esm/ai/persistence/types.js.map +1 -0
- package/dist/esm/core/client.d.ts +16 -0
- package/dist/esm/core/client.d.ts.map +1 -1
- package/dist/esm/core/client.js +18 -0
- package/dist/esm/core/client.js.map +1 -1
- package/dist/esm/next/index.d.ts +141 -0
- package/dist/esm/next/index.d.ts.map +1 -0
- package/dist/esm/next/index.js +171 -0
- package/dist/esm/next/index.js.map +1 -0
- package/dist/esm/utils/helpers.d.ts +79 -1
- package/dist/esm/utils/helpers.d.ts.map +1 -1
- package/dist/esm/utils/helpers.js +106 -0
- package/dist/esm/utils/helpers.js.map +1 -1
- package/package.json +20 -2
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module next
|
|
3
|
+
* @description Synapse Client SDK — Next.js integration helpers.
|
|
4
|
+
*
|
|
5
|
+
* Drop-in utilities for using the Synapse SDK in Next.js 13+ (App Router)
|
|
6
|
+
* with zero boilerplate for the most common patterns:
|
|
7
|
+
*
|
|
8
|
+
* - **`synapseResponse()`** — wraps `NextResponse.json()` with BigInt serialization
|
|
9
|
+
* - **`withSynapseError()`** — API Route error boundary / handler wrapper
|
|
10
|
+
* - **`createSynapseProvider()`** — HMR-safe SynapseClient singleton factory
|
|
11
|
+
* - **`createGatewayProvider()`** — HMR-safe AgentGateway singleton factory
|
|
12
|
+
*
|
|
13
|
+
* All exports are framework-independent at the type level: they work with
|
|
14
|
+
* any object that has `json()` and `status` — so they can be tested outside
|
|
15
|
+
* of a Next.js environment.
|
|
16
|
+
*
|
|
17
|
+
* @example API Route (App Router)
|
|
18
|
+
* ```ts
|
|
19
|
+
* // app/api/balance/route.ts
|
|
20
|
+
* import { synapseResponse, withSynapseError, createSynapseProvider } from '@oobe-protocol-labs/synapse-client-sdk/next';
|
|
21
|
+
* import { Pubkey } from '@oobe-protocol-labs/synapse-client-sdk';
|
|
22
|
+
*
|
|
23
|
+
* const getClient = createSynapseProvider({ endpoint: process.env.SYNAPSE_RPC! });
|
|
24
|
+
*
|
|
25
|
+
* export const GET = withSynapseError(async (req) => {
|
|
26
|
+
* const address = new URL(req.url).searchParams.get('address')!;
|
|
27
|
+
* const balance = await getClient().rpc.getBalance(Pubkey(address));
|
|
28
|
+
* return synapseResponse({ balance });
|
|
29
|
+
* });
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @since 1.2.2
|
|
33
|
+
*/
|
|
34
|
+
import { type SingletonOptions } from '../utils/helpers';
|
|
35
|
+
import { SynapseClient, type SynapseClientConfig } from '../core/client';
|
|
36
|
+
/**
|
|
37
|
+
* @description Options for {@link synapseResponse}.
|
|
38
|
+
* @since 1.2.2
|
|
39
|
+
*/
|
|
40
|
+
export interface SynapseResponseInit {
|
|
41
|
+
/** HTTP status code (default: 200). */
|
|
42
|
+
status?: number;
|
|
43
|
+
/** Extra headers to include. */
|
|
44
|
+
headers?: Record<string, string>;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @description Create a JSON `Response` with automatic BigInt serialization.
|
|
48
|
+
*
|
|
49
|
+
* Works with Next.js App Router, edge functions, or any Web-standard
|
|
50
|
+
* `Response` environment.
|
|
51
|
+
*
|
|
52
|
+
* @param data - Any value (may contain `BigInt`).
|
|
53
|
+
* @param init - Optional status code and headers.
|
|
54
|
+
* @returns A `Response` with `Content-Type: application/json`.
|
|
55
|
+
* @since 1.2.2
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```ts
|
|
59
|
+
* return synapseResponse({ budget: 100_000n, status: 'ok' });
|
|
60
|
+
* // → Response { body: '{"budget":"100000","status":"ok"}', status: 200 }
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export declare function synapseResponse(data: unknown, init?: SynapseResponseInit): Response;
|
|
64
|
+
/**
|
|
65
|
+
* @description Wrap a Next.js API Route handler with error handling.
|
|
66
|
+
*
|
|
67
|
+
* Catches thrown errors and returns a structured JSON error response
|
|
68
|
+
* with the appropriate status code. SDK errors include the error code.
|
|
69
|
+
*
|
|
70
|
+
* @param handler - Async handler function `(req) => Response`
|
|
71
|
+
* @returns Wrapped handler with the same signature
|
|
72
|
+
* @since 1.2.2
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```ts
|
|
76
|
+
* export const GET = withSynapseError(async (req) => {
|
|
77
|
+
* // If this throws, caller gets { error: '...', code: '...' } with 500
|
|
78
|
+
* const data = await client.rpc.getBalance(Pubkey('...'));
|
|
79
|
+
* return synapseResponse({ data });
|
|
80
|
+
* });
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export declare function withSynapseError<T extends Request = Request>(handler: (req: T, ...args: unknown[]) => Promise<Response>): (req: T, ...args: unknown[]) => Promise<Response>;
|
|
84
|
+
/**
|
|
85
|
+
* @description Create an HMR-safe SynapseClient singleton for Next.js.
|
|
86
|
+
*
|
|
87
|
+
* Uses {@link createSingleton} under the hood to store the instance
|
|
88
|
+
* on `globalThis`, surviving hot-module reloads in development.
|
|
89
|
+
*
|
|
90
|
+
* @param config - SynapseClient configuration
|
|
91
|
+
* @param opts - Optional singleton options (version for cache busting)
|
|
92
|
+
* @returns A zero-arg getter that returns the singleton client
|
|
93
|
+
* @since 1.2.2
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```ts
|
|
97
|
+
* // lib/synapse.ts
|
|
98
|
+
* import { createSynapseProvider } from '@oobe-protocol-labs/synapse-client-sdk/next';
|
|
99
|
+
*
|
|
100
|
+
* export const getSynapseClient = createSynapseProvider({
|
|
101
|
+
* endpoint: process.env.SYNAPSE_RPC!,
|
|
102
|
+
* apiKey: process.env.SYNAPSE_API_KEY,
|
|
103
|
+
* });
|
|
104
|
+
*
|
|
105
|
+
* // Then in any route/server component:
|
|
106
|
+
* const client = getSynapseClient();
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
export declare function createSynapseProvider(config: SynapseClientConfig, opts?: SingletonOptions): () => SynapseClient;
|
|
110
|
+
/**
|
|
111
|
+
* @description Create an HMR-safe AgentGateway singleton for Next.js.
|
|
112
|
+
*
|
|
113
|
+
* Lazily imports `AgentGateway` to avoid pulling the full AI module
|
|
114
|
+
* into routes that don't need it.
|
|
115
|
+
*
|
|
116
|
+
* @param clientProvider - A getter that returns the SynapseClient (from {@link createSynapseProvider})
|
|
117
|
+
* @param configFactory - Function returning the GatewayConfig (evaluated once)
|
|
118
|
+
* @param opts - Optional singleton options
|
|
119
|
+
* @returns A zero-arg getter that returns the singleton gateway
|
|
120
|
+
* @since 1.2.2
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```ts
|
|
124
|
+
* import { createSynapseProvider, createGatewayProvider } from '@oobe-protocol-labs/synapse-client-sdk/next';
|
|
125
|
+
* import { AgentId, DEFAULT_TIERS } from '@oobe-protocol-labs/synapse-client-sdk/ai';
|
|
126
|
+
*
|
|
127
|
+
* const getClient = createSynapseProvider({ endpoint: process.env.SYNAPSE_RPC! });
|
|
128
|
+
*
|
|
129
|
+
* export const getGateway = createGatewayProvider(getClient, () => ({
|
|
130
|
+
* identity: {
|
|
131
|
+
* id: AgentId('did:synapse:agent:my-agent'),
|
|
132
|
+
* name: 'My Agent',
|
|
133
|
+
* walletPubkey: process.env.AGENT_WALLET!,
|
|
134
|
+
* createdAt: Date.now(),
|
|
135
|
+
* },
|
|
136
|
+
* defaultTiers: DEFAULT_TIERS,
|
|
137
|
+
* }));
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
export declare function createGatewayProvider(clientProvider: () => SynapseClient, configFactory: () => import('../ai/gateway/types').GatewayConfig, opts?: SingletonOptions): () => import('../ai/gateway/index').AgentGateway;
|
|
141
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/next/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAGH,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAMzE;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,OAAO,EACb,IAAI,GAAE,mBAAwB,GAC7B,QAAQ,CAUV;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAC1D,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,GACzD,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAenD;AAMD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,mBAAmB,EAC3B,IAAI,CAAC,EAAE,gBAAgB,GACtB,MAAM,aAAa,CAMrB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,MAAM,aAAa,EACnC,aAAa,EAAE,MAAM,OAAO,qBAAqB,EAAE,aAAa,EAChE,IAAI,CAAC,EAAE,gBAAgB,GACtB,MAAM,OAAO,qBAAqB,EAAE,YAAY,CAUlD"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module next
|
|
3
|
+
* @description Synapse Client SDK — Next.js integration helpers.
|
|
4
|
+
*
|
|
5
|
+
* Drop-in utilities for using the Synapse SDK in Next.js 13+ (App Router)
|
|
6
|
+
* with zero boilerplate for the most common patterns:
|
|
7
|
+
*
|
|
8
|
+
* - **`synapseResponse()`** — wraps `NextResponse.json()` with BigInt serialization
|
|
9
|
+
* - **`withSynapseError()`** — API Route error boundary / handler wrapper
|
|
10
|
+
* - **`createSynapseProvider()`** — HMR-safe SynapseClient singleton factory
|
|
11
|
+
* - **`createGatewayProvider()`** — HMR-safe AgentGateway singleton factory
|
|
12
|
+
*
|
|
13
|
+
* All exports are framework-independent at the type level: they work with
|
|
14
|
+
* any object that has `json()` and `status` — so they can be tested outside
|
|
15
|
+
* of a Next.js environment.
|
|
16
|
+
*
|
|
17
|
+
* @example API Route (App Router)
|
|
18
|
+
* ```ts
|
|
19
|
+
* // app/api/balance/route.ts
|
|
20
|
+
* import { synapseResponse, withSynapseError, createSynapseProvider } from '@oobe-protocol-labs/synapse-client-sdk/next';
|
|
21
|
+
* import { Pubkey } from '@oobe-protocol-labs/synapse-client-sdk';
|
|
22
|
+
*
|
|
23
|
+
* const getClient = createSynapseProvider({ endpoint: process.env.SYNAPSE_RPC! });
|
|
24
|
+
*
|
|
25
|
+
* export const GET = withSynapseError(async (req) => {
|
|
26
|
+
* const address = new URL(req.url).searchParams.get('address')!;
|
|
27
|
+
* const balance = await getClient().rpc.getBalance(Pubkey(address));
|
|
28
|
+
* return synapseResponse({ balance });
|
|
29
|
+
* });
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @since 1.2.2
|
|
33
|
+
*/
|
|
34
|
+
import { toJsonSafe } from '../utils/helpers.js';
|
|
35
|
+
import { createSingleton } from '../utils/helpers.js';
|
|
36
|
+
import { SynapseClient } from '../core/client.js';
|
|
37
|
+
/**
|
|
38
|
+
* @description Create a JSON `Response` with automatic BigInt serialization.
|
|
39
|
+
*
|
|
40
|
+
* Works with Next.js App Router, edge functions, or any Web-standard
|
|
41
|
+
* `Response` environment.
|
|
42
|
+
*
|
|
43
|
+
* @param data - Any value (may contain `BigInt`).
|
|
44
|
+
* @param init - Optional status code and headers.
|
|
45
|
+
* @returns A `Response` with `Content-Type: application/json`.
|
|
46
|
+
* @since 1.2.2
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```ts
|
|
50
|
+
* return synapseResponse({ budget: 100_000n, status: 'ok' });
|
|
51
|
+
* // → Response { body: '{"budget":"100000","status":"ok"}', status: 200 }
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export function synapseResponse(data, init = {}) {
|
|
55
|
+
const safe = toJsonSafe(data);
|
|
56
|
+
const body = JSON.stringify(safe);
|
|
57
|
+
return new Response(body, {
|
|
58
|
+
status: init.status ?? 200,
|
|
59
|
+
headers: {
|
|
60
|
+
'Content-Type': 'application/json',
|
|
61
|
+
...init.headers,
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
66
|
+
* withSynapseError — API Route error boundary
|
|
67
|
+
* ═══════════════════════════════════════════════════════════════ */
|
|
68
|
+
/**
|
|
69
|
+
* @description Wrap a Next.js API Route handler with error handling.
|
|
70
|
+
*
|
|
71
|
+
* Catches thrown errors and returns a structured JSON error response
|
|
72
|
+
* with the appropriate status code. SDK errors include the error code.
|
|
73
|
+
*
|
|
74
|
+
* @param handler - Async handler function `(req) => Response`
|
|
75
|
+
* @returns Wrapped handler with the same signature
|
|
76
|
+
* @since 1.2.2
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```ts
|
|
80
|
+
* export const GET = withSynapseError(async (req) => {
|
|
81
|
+
* // If this throws, caller gets { error: '...', code: '...' } with 500
|
|
82
|
+
* const data = await client.rpc.getBalance(Pubkey('...'));
|
|
83
|
+
* return synapseResponse({ data });
|
|
84
|
+
* });
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
export function withSynapseError(handler) {
|
|
88
|
+
return async (req, ...args) => {
|
|
89
|
+
try {
|
|
90
|
+
return await handler(req, ...args);
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
94
|
+
const code = err.code ?? 'INTERNAL_ERROR';
|
|
95
|
+
const status = err.status ?? 500;
|
|
96
|
+
return synapseResponse({ error: message, code, timestamp: Date.now() }, { status });
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
101
|
+
* createSynapseProvider — HMR-safe client singleton
|
|
102
|
+
* ═══════════════════════════════════════════════════════════════ */
|
|
103
|
+
/**
|
|
104
|
+
* @description Create an HMR-safe SynapseClient singleton for Next.js.
|
|
105
|
+
*
|
|
106
|
+
* Uses {@link createSingleton} under the hood to store the instance
|
|
107
|
+
* on `globalThis`, surviving hot-module reloads in development.
|
|
108
|
+
*
|
|
109
|
+
* @param config - SynapseClient configuration
|
|
110
|
+
* @param opts - Optional singleton options (version for cache busting)
|
|
111
|
+
* @returns A zero-arg getter that returns the singleton client
|
|
112
|
+
* @since 1.2.2
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```ts
|
|
116
|
+
* // lib/synapse.ts
|
|
117
|
+
* import { createSynapseProvider } from '@oobe-protocol-labs/synapse-client-sdk/next';
|
|
118
|
+
*
|
|
119
|
+
* export const getSynapseClient = createSynapseProvider({
|
|
120
|
+
* endpoint: process.env.SYNAPSE_RPC!,
|
|
121
|
+
* apiKey: process.env.SYNAPSE_API_KEY,
|
|
122
|
+
* });
|
|
123
|
+
*
|
|
124
|
+
* // Then in any route/server component:
|
|
125
|
+
* const client = getSynapseClient();
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
export function createSynapseProvider(config, opts) {
|
|
129
|
+
return createSingleton('__synapse_client__', () => new SynapseClient(config), opts);
|
|
130
|
+
}
|
|
131
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
132
|
+
* createGatewayProvider — HMR-safe gateway singleton
|
|
133
|
+
* ═══════════════════════════════════════════════════════════════ */
|
|
134
|
+
/**
|
|
135
|
+
* @description Create an HMR-safe AgentGateway singleton for Next.js.
|
|
136
|
+
*
|
|
137
|
+
* Lazily imports `AgentGateway` to avoid pulling the full AI module
|
|
138
|
+
* into routes that don't need it.
|
|
139
|
+
*
|
|
140
|
+
* @param clientProvider - A getter that returns the SynapseClient (from {@link createSynapseProvider})
|
|
141
|
+
* @param configFactory - Function returning the GatewayConfig (evaluated once)
|
|
142
|
+
* @param opts - Optional singleton options
|
|
143
|
+
* @returns A zero-arg getter that returns the singleton gateway
|
|
144
|
+
* @since 1.2.2
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* ```ts
|
|
148
|
+
* import { createSynapseProvider, createGatewayProvider } from '@oobe-protocol-labs/synapse-client-sdk/next';
|
|
149
|
+
* import { AgentId, DEFAULT_TIERS } from '@oobe-protocol-labs/synapse-client-sdk/ai';
|
|
150
|
+
*
|
|
151
|
+
* const getClient = createSynapseProvider({ endpoint: process.env.SYNAPSE_RPC! });
|
|
152
|
+
*
|
|
153
|
+
* export const getGateway = createGatewayProvider(getClient, () => ({
|
|
154
|
+
* identity: {
|
|
155
|
+
* id: AgentId('did:synapse:agent:my-agent'),
|
|
156
|
+
* name: 'My Agent',
|
|
157
|
+
* walletPubkey: process.env.AGENT_WALLET!,
|
|
158
|
+
* createdAt: Date.now(),
|
|
159
|
+
* },
|
|
160
|
+
* defaultTiers: DEFAULT_TIERS,
|
|
161
|
+
* }));
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
export function createGatewayProvider(clientProvider, configFactory, opts) {
|
|
165
|
+
return createSingleton('__synapse_gateway__', () => {
|
|
166
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
167
|
+
const { AgentGateway } = require('../ai/gateway/index');
|
|
168
|
+
return new AgentGateway(clientProvider(), configFactory());
|
|
169
|
+
}, opts);
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/next/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAyB,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAA4B,MAAM,gBAAgB,CAAC;AAiBzE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAa,EACb,OAA4B,EAAE;IAE9B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;QACxB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,GAAG;QAC1B,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,GAAG,IAAI,CAAC,OAAO;SAChB;KACF,CAAC,CAAC;AACL,CAAC;AAED;;qEAEqE;AAErE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAA0D;IAE1D,OAAO,KAAK,EAAE,GAAM,EAAE,GAAG,IAAe,EAAqB,EAAE;QAC7D,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,IAAI,GAAI,GAAyB,CAAC,IAAI,IAAI,gBAAgB,CAAC;YACjE,MAAM,MAAM,GAAI,GAA2B,CAAC,MAAM,IAAI,GAAG,CAAC;YAE1D,OAAO,eAAe,CACpB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAC/C,EAAE,MAAM,EAAE,CACX,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;qEAEqE;AAErE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAA2B,EAC3B,IAAuB;IAEvB,OAAO,eAAe,CACpB,oBAAoB,EACpB,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,EAC/B,IAAI,CACL,CAAC;AACJ,CAAC;AAED;;qEAEqE;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,qBAAqB,CACnC,cAAmC,EACnC,aAAgE,EAChE,IAAuB;IAEvB,OAAO,eAAe,CACpB,qBAAqB,EACrB,GAAG,EAAE;QACH,iEAAiE;QACjE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAyC,CAAC;QAChG,OAAO,IAAI,YAAY,CAAC,cAAc,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IAC7D,CAAC,EACD,IAAI,CACL,CAAC;AACJ,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SDK utility helpers — minimal, zero-dependency.
|
|
3
3
|
*
|
|
4
4
|
* Pure functions for common Solana value conversions, validation,
|
|
5
|
-
*
|
|
5
|
+
* async control flow, BigInt serialization, and HMR-safe singletons.
|
|
6
6
|
*
|
|
7
7
|
* @module utils/helpers
|
|
8
8
|
* @since 1.0.0
|
|
@@ -94,4 +94,82 @@ export declare function chunk<T>(arr: readonly T[], size: number): T[][];
|
|
|
94
94
|
* ```
|
|
95
95
|
*/
|
|
96
96
|
export declare function retry<T>(fn: () => Promise<T>, maxAttempts?: number, baseDelayMs?: number): Promise<T>;
|
|
97
|
+
/**
|
|
98
|
+
* Recursively convert `BigInt` values to `string` so the result is
|
|
99
|
+
* safe for `JSON.stringify()`.
|
|
100
|
+
*
|
|
101
|
+
* Useful in Next.js API Routes, Express handlers, or anywhere you
|
|
102
|
+
* need to serialize gateway / x402 objects that contain `BigInt`
|
|
103
|
+
* fields like `pricePerCall`, `maxBudget`, or `amountCharged`.
|
|
104
|
+
*
|
|
105
|
+
* @param obj - Any value (object, array, primitive, BigInt).
|
|
106
|
+
* @returns A deep clone with every `BigInt` replaced by its string
|
|
107
|
+
* representation.
|
|
108
|
+
* @since 1.2.2
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```ts
|
|
112
|
+
* import { toJsonSafe } from '@oobe-protocol-labs/synapse-client-sdk/utils';
|
|
113
|
+
*
|
|
114
|
+
* return NextResponse.json(toJsonSafe({ budget: 100_000n, data }));
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
export declare function toJsonSafe(obj: unknown): unknown;
|
|
118
|
+
/**
|
|
119
|
+
* `JSON.stringify` replacer that converts `BigInt` → `string`.
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* ```ts
|
|
123
|
+
* import { bigIntReplacer } from '@oobe-protocol-labs/synapse-client-sdk/utils';
|
|
124
|
+
*
|
|
125
|
+
* const json = JSON.stringify(data, bigIntReplacer);
|
|
126
|
+
* ```
|
|
127
|
+
*
|
|
128
|
+
* @since 1.2.2
|
|
129
|
+
*/
|
|
130
|
+
export declare function bigIntReplacer(_key: string, value: unknown): unknown;
|
|
131
|
+
/**
|
|
132
|
+
* Options for {@link createSingleton}.
|
|
133
|
+
* @since 1.2.2
|
|
134
|
+
*/
|
|
135
|
+
export interface SingletonOptions {
|
|
136
|
+
/**
|
|
137
|
+
* Bump this number to invalidate a cached instance (e.g. after
|
|
138
|
+
* changing the factory config). The old instance is replaced on
|
|
139
|
+
* the next call.
|
|
140
|
+
*/
|
|
141
|
+
version?: number;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Create an HMR-safe singleton accessor.
|
|
145
|
+
*
|
|
146
|
+
* In Next.js (and other HMR-enabled environments) module scope is
|
|
147
|
+
* re-evaluated on every hot reload, destroying any `let` / `const`
|
|
148
|
+
* singleton. This helper stores the instance on `globalThis` so it
|
|
149
|
+
* survives reloads.
|
|
150
|
+
*
|
|
151
|
+
* @typeParam T - Type of the singleton instance.
|
|
152
|
+
* @param key - Unique global key (e.g. `'synapseClient'`).
|
|
153
|
+
* @param factory - Function that creates the instance.
|
|
154
|
+
* @param options - Optional version for cache invalidation.
|
|
155
|
+
* @returns A zero-arg getter that returns the singleton.
|
|
156
|
+
* @since 1.2.2
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```ts
|
|
160
|
+
* import { createSingleton } from '@oobe-protocol-labs/synapse-client-sdk/utils';
|
|
161
|
+
* import { SynapseClient } from '@oobe-protocol-labs/synapse-client-sdk';
|
|
162
|
+
*
|
|
163
|
+
* export const getSynapseClient = createSingleton('synapseClient', () =>
|
|
164
|
+
* SynapseClient.fromEndpoint({ network: 'mainnet', region: 'US', apiKey: process.env.SYNAPSE_API_KEY! }),
|
|
165
|
+
* );
|
|
166
|
+
*
|
|
167
|
+
* // With version invalidation — bump to recreate:
|
|
168
|
+
* export const getGateway = createSingleton('agentGateway', () =>
|
|
169
|
+
* createAgentGateway(getSynapseClient(), config),
|
|
170
|
+
* { version: 4 },
|
|
171
|
+
* );
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
export declare function createSingleton<T>(key: string, factory: () => T, options?: SingletonOptions): () => T;
|
|
97
175
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGtD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,GAAI,UAAU,QAAQ,GAAG,MAAM,KAAG,MACpC,CAAC;AAEzB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,QACT,CAAC;AAEpC;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,MACN,CAAC;AAE1C;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,GAAG,MAAM,KAAG,OACJ,CAAC;AAE1C;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CACV,CAAC;AAEtC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAM/D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,KAAK,CAAC,CAAC,EAC3B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,WAAW,SAAI,EACf,WAAW,SAAM,GAChB,OAAO,CAAC,CAAC,CAAC,CAWZ"}
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGtD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,GAAI,UAAU,QAAQ,GAAG,MAAM,KAAG,MACpC,CAAC;AAEzB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,QACT,CAAC;AAEpC;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,MACN,CAAC;AAE1C;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,GAAG,MAAM,KAAG,OACJ,CAAC;AAE1C;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CACV,CAAC;AAEtC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAM/D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,KAAK,CAAC,CAAC,EAC3B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,WAAW,SAAI,EACf,WAAW,SAAM,GAChB,OAAO,CAAC,CAAC,CAAC,CAWZ;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAiBhD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAEpE;AAMD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAC/B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,CAAC,EAChB,OAAO,CAAC,EAAE,gBAAgB,GACzB,MAAM,CAAC,CAaT"}
|
|
@@ -104,4 +104,110 @@ export async function retry(fn, maxAttempts = 3, baseDelayMs = 500) {
|
|
|
104
104
|
}
|
|
105
105
|
throw lastErr;
|
|
106
106
|
}
|
|
107
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
108
|
+
* BigInt-safe JSON serialization
|
|
109
|
+
* ═══════════════════════════════════════════════════════════════ */
|
|
110
|
+
/**
|
|
111
|
+
* Recursively convert `BigInt` values to `string` so the result is
|
|
112
|
+
* safe for `JSON.stringify()`.
|
|
113
|
+
*
|
|
114
|
+
* Useful in Next.js API Routes, Express handlers, or anywhere you
|
|
115
|
+
* need to serialize gateway / x402 objects that contain `BigInt`
|
|
116
|
+
* fields like `pricePerCall`, `maxBudget`, or `amountCharged`.
|
|
117
|
+
*
|
|
118
|
+
* @param obj - Any value (object, array, primitive, BigInt).
|
|
119
|
+
* @returns A deep clone with every `BigInt` replaced by its string
|
|
120
|
+
* representation.
|
|
121
|
+
* @since 1.2.2
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```ts
|
|
125
|
+
* import { toJsonSafe } from '@oobe-protocol-labs/synapse-client-sdk/utils';
|
|
126
|
+
*
|
|
127
|
+
* return NextResponse.json(toJsonSafe({ budget: 100_000n, data }));
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
export function toJsonSafe(obj) {
|
|
131
|
+
if (typeof obj === 'bigint')
|
|
132
|
+
return obj.toString();
|
|
133
|
+
if (obj === null || obj === undefined)
|
|
134
|
+
return obj;
|
|
135
|
+
if (Array.isArray(obj))
|
|
136
|
+
return obj.map(toJsonSafe);
|
|
137
|
+
if (obj instanceof Map) {
|
|
138
|
+
const out = {};
|
|
139
|
+
for (const [k, v] of obj)
|
|
140
|
+
out[String(k)] = toJsonSafe(v);
|
|
141
|
+
return out;
|
|
142
|
+
}
|
|
143
|
+
if (typeof obj === 'object') {
|
|
144
|
+
const out = {};
|
|
145
|
+
for (const [k, v] of Object.entries(obj)) {
|
|
146
|
+
out[k] = toJsonSafe(v);
|
|
147
|
+
}
|
|
148
|
+
return out;
|
|
149
|
+
}
|
|
150
|
+
return obj;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* `JSON.stringify` replacer that converts `BigInt` → `string`.
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```ts
|
|
157
|
+
* import { bigIntReplacer } from '@oobe-protocol-labs/synapse-client-sdk/utils';
|
|
158
|
+
*
|
|
159
|
+
* const json = JSON.stringify(data, bigIntReplacer);
|
|
160
|
+
* ```
|
|
161
|
+
*
|
|
162
|
+
* @since 1.2.2
|
|
163
|
+
*/
|
|
164
|
+
export function bigIntReplacer(_key, value) {
|
|
165
|
+
return typeof value === 'bigint' ? value.toString() : value;
|
|
166
|
+
}
|
|
167
|
+
// Shared registry on globalThis — survives HMR reloads.
|
|
168
|
+
const _singletonRegistry = globalThis.__synapse_singletons ??= {};
|
|
169
|
+
/**
|
|
170
|
+
* Create an HMR-safe singleton accessor.
|
|
171
|
+
*
|
|
172
|
+
* In Next.js (and other HMR-enabled environments) module scope is
|
|
173
|
+
* re-evaluated on every hot reload, destroying any `let` / `const`
|
|
174
|
+
* singleton. This helper stores the instance on `globalThis` so it
|
|
175
|
+
* survives reloads.
|
|
176
|
+
*
|
|
177
|
+
* @typeParam T - Type of the singleton instance.
|
|
178
|
+
* @param key - Unique global key (e.g. `'synapseClient'`).
|
|
179
|
+
* @param factory - Function that creates the instance.
|
|
180
|
+
* @param options - Optional version for cache invalidation.
|
|
181
|
+
* @returns A zero-arg getter that returns the singleton.
|
|
182
|
+
* @since 1.2.2
|
|
183
|
+
*
|
|
184
|
+
* @example
|
|
185
|
+
* ```ts
|
|
186
|
+
* import { createSingleton } from '@oobe-protocol-labs/synapse-client-sdk/utils';
|
|
187
|
+
* import { SynapseClient } from '@oobe-protocol-labs/synapse-client-sdk';
|
|
188
|
+
*
|
|
189
|
+
* export const getSynapseClient = createSingleton('synapseClient', () =>
|
|
190
|
+
* SynapseClient.fromEndpoint({ network: 'mainnet', region: 'US', apiKey: process.env.SYNAPSE_API_KEY! }),
|
|
191
|
+
* );
|
|
192
|
+
*
|
|
193
|
+
* // With version invalidation — bump to recreate:
|
|
194
|
+
* export const getGateway = createSingleton('agentGateway', () =>
|
|
195
|
+
* createAgentGateway(getSynapseClient(), config),
|
|
196
|
+
* { version: 4 },
|
|
197
|
+
* );
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
export function createSingleton(key, factory, options) {
|
|
201
|
+
const versionKey = `${key}__v`;
|
|
202
|
+
return () => {
|
|
203
|
+
const versionMismatch = options?.version != null && _singletonRegistry[versionKey] !== options.version;
|
|
204
|
+
if (!_singletonRegistry[key] || versionMismatch) {
|
|
205
|
+
_singletonRegistry[key] = factory();
|
|
206
|
+
if (options?.version != null) {
|
|
207
|
+
_singletonRegistry[versionKey] = options.version;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return _singletonRegistry[key];
|
|
211
|
+
};
|
|
212
|
+
}
|
|
107
213
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/utils/helpers.ts"],"names":[],"mappings":"AAUA,OAAO,EAAsB,QAAQ,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3E;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAA2B,EAAU,EAAE,CACnE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;AAEzB;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAW,EAAY,EAAE,CACrD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AAEpC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAS,EAAe,EAAE,CACtD,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAS,EAAW,EAAE,CACrD,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CACjD,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAEtC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,KAAK,CAAI,GAAiB,EAAE,IAAY;IACtD,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAQ,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,EAAoB,EACpB,WAAW,GAAG,CAAC,EACf,WAAW,GAAG,GAAG;IAEjB,IAAI,OAAgB,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,GAAG,GAAG,CAAC;YACd,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC;gBAAE,MAAM,KAAK,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,MAAM,OAAO,CAAC;AAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/utils/helpers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oobe-protocol-labs/synapse-client-sdk",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.2",
|
|
4
4
|
"description": "Synapse Client SDK -- Typed Solana RPC gateway with @solana/kit native types, 53 JSON-RPC methods, DAS, WebSocket, gRPC/Geyser parser, signers/wallets, and AI agent tooling (LangChain, x402) | Powered by oobeprotocol.ai (OOBE)",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -66,6 +66,11 @@
|
|
|
66
66
|
"import": "./dist/esm/ai/lazy.js",
|
|
67
67
|
"require": "./dist/cjs/ai/lazy.js"
|
|
68
68
|
},
|
|
69
|
+
"./ai/persistence": {
|
|
70
|
+
"types": "./dist/esm/ai/persistence/index.d.ts",
|
|
71
|
+
"import": "./dist/esm/ai/persistence/index.js",
|
|
72
|
+
"require": "./dist/cjs/ai/persistence/index.js"
|
|
73
|
+
},
|
|
69
74
|
"./kit": {
|
|
70
75
|
"types": "./dist/esm/kit/index.d.ts",
|
|
71
76
|
"import": "./dist/esm/kit/index.js",
|
|
@@ -155,6 +160,11 @@
|
|
|
155
160
|
"types": "./dist/esm/context/index.d.ts",
|
|
156
161
|
"import": "./dist/esm/context/index.js",
|
|
157
162
|
"require": "./dist/cjs/context/index.js"
|
|
163
|
+
},
|
|
164
|
+
"./next": {
|
|
165
|
+
"types": "./dist/esm/next/index.d.ts",
|
|
166
|
+
"import": "./dist/esm/next/index.js",
|
|
167
|
+
"require": "./dist/cjs/next/index.js"
|
|
158
168
|
}
|
|
159
169
|
},
|
|
160
170
|
"files": [
|
|
@@ -243,7 +253,9 @@
|
|
|
243
253
|
"peerDependencies": {
|
|
244
254
|
"@langchain/core": ">=0.3.0 <0.4.0",
|
|
245
255
|
"typescript": ">=5.0.0",
|
|
246
|
-
"zod": ">=3.23.0 || >=4.0.0"
|
|
256
|
+
"zod": ">=3.23.0 || >=4.0.0",
|
|
257
|
+
"ioredis": ">=5.0.0",
|
|
258
|
+
"pg": ">=8.0.0"
|
|
247
259
|
},
|
|
248
260
|
"peerDependenciesMeta": {
|
|
249
261
|
"zod": {
|
|
@@ -251,6 +263,12 @@
|
|
|
251
263
|
},
|
|
252
264
|
"@langchain/core": {
|
|
253
265
|
"optional": true
|
|
266
|
+
},
|
|
267
|
+
"ioredis": {
|
|
268
|
+
"optional": true
|
|
269
|
+
},
|
|
270
|
+
"pg": {
|
|
271
|
+
"optional": true
|
|
254
272
|
}
|
|
255
273
|
},
|
|
256
274
|
"engines": {
|