@oobe-protocol-labs/synapse-client-sdk 1.0.7 → 1.2.0

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.
Files changed (659) hide show
  1. package/CHANGELOG.md +114 -0
  2. package/dist/cjs/ai/gateway/index.d.ts +5 -5
  3. package/dist/cjs/ai/gateway/index.d.ts.map +1 -1
  4. package/dist/cjs/ai/gateway/index.js +2 -2
  5. package/dist/cjs/ai/gateway/index.js.map +1 -1
  6. package/dist/cjs/ai/index.d.ts +1 -1
  7. package/dist/cjs/ai/index.d.ts.map +1 -1
  8. package/dist/cjs/ai/index.js +5 -2
  9. package/dist/cjs/ai/index.js.map +1 -1
  10. package/dist/cjs/ai/tools/index.d.ts +4 -4
  11. package/dist/cjs/ai/tools/index.d.ts.map +1 -1
  12. package/dist/cjs/ai/tools/index.js +5 -2
  13. package/dist/cjs/ai/tools/index.js.map +1 -1
  14. package/dist/cjs/ai/tools/protocols/index.d.ts +9 -3
  15. package/dist/cjs/ai/tools/protocols/index.d.ts.map +1 -1
  16. package/dist/cjs/ai/tools/protocols/index.js +16 -2
  17. package/dist/cjs/ai/tools/protocols/index.js.map +1 -1
  18. package/dist/cjs/ai/tools/protocols/jupiter/schemas.d.ts +1 -1
  19. package/dist/cjs/ai/tools/protocols/jupiter/schemas.d.ts.map +1 -1
  20. package/dist/cjs/ai/tools/protocols/jupiter/schemas.js +126 -28
  21. package/dist/cjs/ai/tools/protocols/jupiter/schemas.js.map +1 -1
  22. package/dist/cjs/ai/tools/protocols/jupiter/tools.d.ts +4 -3
  23. package/dist/cjs/ai/tools/protocols/jupiter/tools.d.ts.map +1 -1
  24. package/dist/cjs/ai/tools/protocols/jupiter/tools.js +91 -9
  25. package/dist/cjs/ai/tools/protocols/jupiter/tools.js.map +1 -1
  26. package/dist/cjs/ai/tools/protocols/jupiter-onchain/tools.d.ts +4 -4
  27. package/dist/cjs/ai/tools/protocols/jupiter-onchain/tools.d.ts.map +1 -1
  28. package/dist/cjs/ai/tools/protocols/jupiter-onchain/tools.js +1 -1
  29. package/dist/cjs/ai/tools/protocols/jupiter-onchain/tools.js.map +1 -1
  30. package/dist/cjs/ai/tools/protocols/metaplex/tools.d.ts +7 -4
  31. package/dist/cjs/ai/tools/protocols/metaplex/tools.d.ts.map +1 -1
  32. package/dist/cjs/ai/tools/protocols/metaplex/tools.js +4 -1
  33. package/dist/cjs/ai/tools/protocols/metaplex/tools.js.map +1 -1
  34. package/dist/cjs/ai/tools/protocols/raydium-onchain/tools.d.ts +4 -4
  35. package/dist/cjs/ai/tools/protocols/raydium-onchain/tools.d.ts.map +1 -1
  36. package/dist/cjs/ai/tools/protocols/raydium-onchain/tools.js +1 -1
  37. package/dist/cjs/ai/tools/protocols/raydium-onchain/tools.js.map +1 -1
  38. package/dist/cjs/ai/tools/protocols/solana-programs/index.d.ts +7 -0
  39. package/dist/cjs/ai/tools/protocols/solana-programs/index.d.ts.map +1 -0
  40. package/dist/cjs/ai/tools/protocols/solana-programs/index.js +13 -0
  41. package/dist/cjs/ai/tools/protocols/solana-programs/index.js.map +1 -0
  42. package/dist/cjs/ai/tools/protocols/solana-programs/schemas.d.ts +11 -0
  43. package/dist/cjs/ai/tools/protocols/solana-programs/schemas.d.ts.map +1 -0
  44. package/dist/cjs/ai/tools/protocols/solana-programs/schemas.js +160 -0
  45. package/dist/cjs/ai/tools/protocols/solana-programs/schemas.js.map +1 -0
  46. package/dist/cjs/ai/tools/protocols/solana-programs/tools.d.ts +57 -0
  47. package/dist/cjs/ai/tools/protocols/solana-programs/tools.d.ts.map +1 -0
  48. package/dist/cjs/ai/tools/protocols/solana-programs/tools.js +226 -0
  49. package/dist/cjs/ai/tools/protocols/solana-programs/tools.js.map +1 -0
  50. package/dist/cjs/context/container.d.ts +341 -0
  51. package/dist/cjs/context/container.d.ts.map +1 -0
  52. package/dist/cjs/context/container.js +670 -0
  53. package/dist/cjs/context/container.js.map +1 -0
  54. package/dist/cjs/context/hooks.d.ts +357 -0
  55. package/dist/cjs/context/hooks.d.ts.map +1 -0
  56. package/dist/cjs/context/hooks.js +451 -0
  57. package/dist/cjs/context/hooks.js.map +1 -0
  58. package/dist/cjs/context/index.d.ts +81 -0
  59. package/dist/cjs/context/index.d.ts.map +1 -0
  60. package/dist/cjs/context/index.js +125 -0
  61. package/dist/cjs/context/index.js.map +1 -0
  62. package/dist/cjs/context/providers.d.ts +176 -0
  63. package/dist/cjs/context/providers.d.ts.map +1 -0
  64. package/dist/cjs/context/providers.js +184 -0
  65. package/dist/cjs/context/providers.js.map +1 -0
  66. package/dist/cjs/context/refs.d.ts +491 -0
  67. package/dist/cjs/context/refs.d.ts.map +1 -0
  68. package/dist/cjs/context/refs.js +673 -0
  69. package/dist/cjs/context/refs.js.map +1 -0
  70. package/dist/cjs/context/types.d.ts +251 -0
  71. package/dist/cjs/context/types.d.ts.map +1 -0
  72. package/dist/cjs/context/types.js +87 -0
  73. package/dist/cjs/context/types.js.map +1 -0
  74. package/dist/cjs/core/client.d.ts +31 -1
  75. package/dist/cjs/core/client.d.ts.map +1 -1
  76. package/dist/cjs/core/client.js.map +1 -1
  77. package/dist/cjs/index.d.ts +4 -1
  78. package/dist/cjs/index.d.ts.map +1 -1
  79. package/dist/cjs/index.js +6 -1
  80. package/dist/cjs/index.js.map +1 -1
  81. package/dist/cjs/programs/associated-token.d.ts +97 -0
  82. package/dist/cjs/programs/associated-token.d.ts.map +1 -0
  83. package/dist/cjs/programs/associated-token.js +113 -0
  84. package/dist/cjs/programs/associated-token.js.map +1 -0
  85. package/dist/cjs/programs/compute-budget.d.ts +105 -0
  86. package/dist/cjs/programs/compute-budget.d.ts.map +1 -0
  87. package/dist/cjs/programs/compute-budget.js +99 -0
  88. package/dist/cjs/programs/compute-budget.js.map +1 -0
  89. package/dist/cjs/programs/index.d.ts +74 -0
  90. package/dist/cjs/programs/index.d.ts.map +1 -0
  91. package/dist/cjs/programs/index.js +112 -0
  92. package/dist/cjs/programs/index.js.map +1 -0
  93. package/dist/cjs/programs/memo.d.ts +70 -0
  94. package/dist/cjs/programs/memo.d.ts.map +1 -0
  95. package/dist/cjs/programs/memo.js +74 -0
  96. package/dist/cjs/programs/memo.js.map +1 -0
  97. package/dist/cjs/programs/spl-token.d.ts +373 -0
  98. package/dist/cjs/programs/spl-token.d.ts.map +1 -0
  99. package/dist/cjs/programs/spl-token.js +358 -0
  100. package/dist/cjs/programs/spl-token.js.map +1 -0
  101. package/dist/cjs/programs/system.d.ts +231 -0
  102. package/dist/cjs/programs/system.d.ts.map +1 -0
  103. package/dist/cjs/programs/system.js +231 -0
  104. package/dist/cjs/programs/system.js.map +1 -0
  105. package/dist/cjs/programs/types.d.ts +111 -0
  106. package/dist/cjs/programs/types.d.ts.map +1 -0
  107. package/dist/cjs/programs/types.js +166 -0
  108. package/dist/cjs/programs/types.js.map +1 -0
  109. package/dist/docs/assets/navigation.js +1 -1
  110. package/dist/docs/assets/search.js +1 -1
  111. package/dist/docs/classes/AccountReader.html +18 -18
  112. package/dist/docs/classes/AccountsClient.html +10 -10
  113. package/dist/docs/classes/AsyncProviderError.html +39 -0
  114. package/dist/docs/classes/CircularDependencyError.html +39 -0
  115. package/dist/docs/classes/DasClient.html +13 -13
  116. package/dist/docs/classes/GeyserParser.html +17 -17
  117. package/dist/docs/classes/GrpcTransport.html +6 -6
  118. package/dist/docs/classes/HttpTransport.html +4 -4
  119. package/dist/docs/classes/InstructionWriter.html +37 -0
  120. package/dist/docs/classes/MemoryGuard.html +27 -0
  121. package/dist/docs/classes/NetworkError.html +5 -5
  122. package/dist/docs/classes/RefRegistry.html +40 -0
  123. package/dist/docs/classes/RefReleasedError.html +39 -0
  124. package/dist/docs/classes/RpcMethodNotFoundError.html +4 -4
  125. package/dist/docs/classes/ServiceNotFoundError.html +39 -0
  126. package/dist/docs/classes/ServiceRef.html +60 -0
  127. package/dist/docs/classes/SolanaRpc.html +55 -55
  128. package/dist/docs/classes/SynapseClient.html +39 -27
  129. package/dist/docs/classes/SynapseContext.html +151 -0
  130. package/dist/docs/classes/SynapseError.html +4 -4
  131. package/dist/docs/classes/TimeoutError.html +4 -4
  132. package/dist/docs/classes/UpstreamError.html +6 -6
  133. package/dist/docs/classes/WeakServiceRef.html +17 -0
  134. package/dist/docs/classes/WsClient.html +10 -10
  135. package/dist/docs/enums/SynapseNetwork.html +2 -2
  136. package/dist/docs/enums/SynapseRegion.html +2 -2
  137. package/dist/docs/enums/TokenExtensionType.html +2 -2
  138. package/dist/docs/functions/Epoch-1.html +1 -1
  139. package/dist/docs/functions/Lamports-2.html +1 -1
  140. package/dist/docs/functions/Pubkey-1.html +1 -1
  141. package/dist/docs/functions/Sig.html +1 -1
  142. package/dist/docs/functions/Slot-1.html +1 -1
  143. package/dist/docs/functions/UnixTs.html +1 -1
  144. package/dist/docs/functions/autoSelectRegion.html +1 -1
  145. package/dist/docs/functions/autoWire.html +11 -0
  146. package/dist/docs/functions/base58Encode.html +1 -1
  147. package/dist/docs/functions/base64ToBytes.html +1 -1
  148. package/dist/docs/functions/chunk.html +1 -1
  149. package/dist/docs/functions/computeBalanceChanges.html +1 -1
  150. package/dist/docs/functions/computeTokenBalanceChanges.html +1 -1
  151. package/dist/docs/functions/createBareContext.html +6 -0
  152. package/dist/docs/functions/createBinding.html +11 -0
  153. package/dist/docs/functions/createBoundHook.html +8 -0
  154. package/dist/docs/functions/createReactAdapter.html +11 -0
  155. package/dist/docs/functions/createRefHook.html +10 -0
  156. package/dist/docs/functions/createServerMiddleware.html +11 -0
  157. package/dist/docs/functions/createServiceHook.html +10 -0
  158. package/dist/docs/functions/createSynapse.html +1 -1
  159. package/dist/docs/functions/createSynapseContext.html +12 -0
  160. package/dist/docs/functions/createToken.html +9 -0
  161. package/dist/docs/functions/decodeBase58.html +2 -0
  162. package/dist/docs/functions/decodeLookupTable.html +1 -1
  163. package/dist/docs/functions/decodeMint.html +1 -1
  164. package/dist/docs/functions/decodeMultisig.html +1 -1
  165. package/dist/docs/functions/decodeNonceAccount.html +1 -1
  166. package/dist/docs/functions/decodeStakeAccount.html +1 -1
  167. package/dist/docs/functions/decodeToken2022Account.html +1 -1
  168. package/dist/docs/functions/decodeToken2022Mint.html +1 -1
  169. package/dist/docs/functions/decodeTokenAccount.html +1 -1
  170. package/dist/docs/functions/encodeBase58.html +1 -1
  171. package/dist/docs/functions/fetchLookupTable.html +1 -1
  172. package/dist/docs/functions/fetchMint.html +1 -1
  173. package/dist/docs/functions/fetchNonceAccount.html +1 -1
  174. package/dist/docs/functions/fetchStakeAccount.html +1 -1
  175. package/dist/docs/functions/fetchTokenAccount.html +1 -1
  176. package/dist/docs/functions/fetchTokenAccountsByOwner.html +1 -1
  177. package/dist/docs/functions/fromKitAddress.html +1 -1
  178. package/dist/docs/functions/getAccountInfo.html +1 -1
  179. package/dist/docs/functions/getAsset.html +1 -1
  180. package/dist/docs/functions/getAssetBatch.html +1 -1
  181. package/dist/docs/functions/getAssetProof.html +1 -1
  182. package/dist/docs/functions/getAssetProofBatch.html +1 -1
  183. package/dist/docs/functions/getAssetsByAuthority.html +1 -1
  184. package/dist/docs/functions/getAssetsByCreator.html +1 -1
  185. package/dist/docs/functions/getAssetsByGroup.html +1 -1
  186. package/dist/docs/functions/getAssetsByOwner.html +1 -1
  187. package/dist/docs/functions/getBalance.html +1 -1
  188. package/dist/docs/functions/getBlock.html +1 -1
  189. package/dist/docs/functions/getBlockCommitment.html +1 -1
  190. package/dist/docs/functions/getBlockHeight.html +1 -1
  191. package/dist/docs/functions/getBlockProduction.html +1 -1
  192. package/dist/docs/functions/getBlockTime.html +1 -1
  193. package/dist/docs/functions/getBlocks.html +1 -1
  194. package/dist/docs/functions/getBlocksWithLimit.html +1 -1
  195. package/dist/docs/functions/getClusterNodes.html +1 -1
  196. package/dist/docs/functions/getContext.html +4 -0
  197. package/dist/docs/functions/getDecodedAccount.html +1 -1
  198. package/dist/docs/functions/getDecodedAccounts.html +1 -1
  199. package/dist/docs/functions/getEnvironment.html +1 -1
  200. package/dist/docs/functions/getEpochInfo.html +1 -1
  201. package/dist/docs/functions/getEpochSchedule.html +1 -1
  202. package/dist/docs/functions/getFeeForMessage.html +1 -1
  203. package/dist/docs/functions/getFirstAvailableBlock.html +1 -1
  204. package/dist/docs/functions/getGenesisHash.html +1 -1
  205. package/dist/docs/functions/getHealth.html +1 -1
  206. package/dist/docs/functions/getHighestSnapshotSlot.html +1 -1
  207. package/dist/docs/functions/getIdentity.html +1 -1
  208. package/dist/docs/functions/getInflationGovernor.html +1 -1
  209. package/dist/docs/functions/getInflationRate.html +1 -1
  210. package/dist/docs/functions/getInflationReward.html +1 -1
  211. package/dist/docs/functions/getLargestAccounts.html +1 -1
  212. package/dist/docs/functions/getLatestBlockhash.html +1 -1
  213. package/dist/docs/functions/getLeaderSchedule.html +1 -1
  214. package/dist/docs/functions/getMaxRetransmitSlot.html +1 -1
  215. package/dist/docs/functions/getMaxShredInsertSlot.html +1 -1
  216. package/dist/docs/functions/getMinimumBalanceForRentExemption.html +1 -1
  217. package/dist/docs/functions/getMultipleAccounts.html +1 -1
  218. package/dist/docs/functions/getProgramAccounts.html +1 -1
  219. package/dist/docs/functions/getProgramCategory.html +1 -1
  220. package/dist/docs/functions/getRecentPerformanceSamples.html +1 -1
  221. package/dist/docs/functions/getRecentPrioritizationFees.html +1 -1
  222. package/dist/docs/functions/getSignatureStatuses.html +1 -1
  223. package/dist/docs/functions/getSignaturesForAddress.html +1 -1
  224. package/dist/docs/functions/getSignaturesForAsset.html +1 -1
  225. package/dist/docs/functions/getSlot.html +1 -1
  226. package/dist/docs/functions/getSlotLeader.html +1 -1
  227. package/dist/docs/functions/getSlotLeaders.html +1 -1
  228. package/dist/docs/functions/getStakeActivation.html +1 -1
  229. package/dist/docs/functions/getStakeMinimumDelegation.html +1 -1
  230. package/dist/docs/functions/getSupply.html +1 -1
  231. package/dist/docs/functions/getTokenAccountBalance.html +1 -1
  232. package/dist/docs/functions/getTokenAccounts.html +1 -1
  233. package/dist/docs/functions/getTokenAccountsByDelegate.html +1 -1
  234. package/dist/docs/functions/getTokenAccountsByOwner.html +1 -1
  235. package/dist/docs/functions/getTokenLargestAccounts.html +1 -1
  236. package/dist/docs/functions/getTokenSupply.html +1 -1
  237. package/dist/docs/functions/getTransaction.html +1 -1
  238. package/dist/docs/functions/getTransactionCount.html +1 -1
  239. package/dist/docs/functions/getVersion.html +1 -1
  240. package/dist/docs/functions/getVoteAccounts.html +1 -1
  241. package/dist/docs/functions/isBlockhashValid.html +1 -1
  242. package/dist/docs/functions/isBrowser.html +1 -1
  243. package/dist/docs/functions/isDisposable.html +3 -0
  244. package/dist/docs/functions/isProgramInCategory.html +1 -1
  245. package/dist/docs/functions/isServer.html +1 -1
  246. package/dist/docs/functions/isValidPubkey.html +1 -1
  247. package/dist/docs/functions/isValidSignature.html +1 -1
  248. package/dist/docs/functions/lamportsToSol.html +1 -1
  249. package/dist/docs/functions/listEndpoints.html +1 -1
  250. package/dist/docs/functions/listNetworks.html +1 -1
  251. package/dist/docs/functions/listRegions.html +1 -1
  252. package/dist/docs/functions/minimumLedgerSlot.html +1 -1
  253. package/dist/docs/functions/parseAccountUpdate.html +1 -1
  254. package/dist/docs/functions/parseBlockMeta.html +1 -1
  255. package/dist/docs/functions/parseEntry.html +1 -1
  256. package/dist/docs/functions/parseGeyserUpdate.html +1 -1
  257. package/dist/docs/functions/parseSlotUpdate.html +1 -1
  258. package/dist/docs/functions/parseTimestamp.html +1 -1
  259. package/dist/docs/functions/parseTransaction.html +1 -1
  260. package/dist/docs/functions/probeLatency.html +1 -1
  261. package/dist/docs/functions/rawBufferToBase58.html +1 -1
  262. package/dist/docs/functions/rawBufferToBase64.html +1 -1
  263. package/dist/docs/functions/rawBufferToBytes.html +1 -1
  264. package/dist/docs/functions/rawBufferToHex.html +1 -1
  265. package/dist/docs/functions/readonly.html +3 -0
  266. package/dist/docs/functions/readonlySigner.html +3 -0
  267. package/dist/docs/functions/requestAirdrop.html +1 -1
  268. package/dist/docs/functions/resolveEndpoint.html +1 -1
  269. package/dist/docs/functions/resolveProgram.html +1 -1
  270. package/dist/docs/functions/resolveProgramBatch.html +1 -1
  271. package/dist/docs/functions/retry.html +1 -1
  272. package/dist/docs/functions/searchAssets.html +1 -1
  273. package/dist/docs/functions/sendTransaction.html +1 -1
  274. package/dist/docs/functions/setGlobalContext.html +9 -0
  275. package/dist/docs/functions/simulateTransaction.html +1 -1
  276. package/dist/docs/functions/sleep.html +1 -1
  277. package/dist/docs/functions/solToLamports.html +1 -1
  278. package/dist/docs/functions/toClientConfig.html +1 -1
  279. package/dist/docs/functions/toKitAddress.html +1 -1
  280. package/dist/docs/functions/toKitInstruction.html +9 -0
  281. package/dist/docs/functions/toKitLamports.html +1 -1
  282. package/dist/docs/functions/toKitSignatureString.html +1 -1
  283. package/dist/docs/functions/tryGetContext.html +3 -0
  284. package/dist/docs/functions/tryUseService.html +4 -0
  285. package/dist/docs/functions/useBoundServices.html +10 -0
  286. package/dist/docs/functions/useService.html +13 -0
  287. package/dist/docs/functions/useSharedRef.html +14 -0
  288. package/dist/docs/functions/withRef.html +14 -0
  289. package/dist/docs/functions/withRefAsync.html +12 -0
  290. package/dist/docs/functions/writable.html +3 -0
  291. package/dist/docs/functions/writableSigner.html +3 -0
  292. package/dist/docs/hierarchy.html +1 -1
  293. package/dist/docs/interfaces/AccountInfo.html +7 -7
  294. package/dist/docs/interfaces/AccountMeta.html +9 -0
  295. package/dist/docs/interfaces/AccountNotification.html +2 -2
  296. package/dist/docs/interfaces/AccountSubParams.html +2 -2
  297. package/dist/docs/interfaces/AddMemoParams.html +11 -0
  298. package/dist/docs/interfaces/AdvanceNonceParams.html +7 -0
  299. package/dist/docs/interfaces/AliasProvider.html +6 -0
  300. package/dist/docs/interfaces/AllocateParams.html +7 -0
  301. package/dist/docs/interfaces/ApproveCheckedParams.html +19 -0
  302. package/dist/docs/interfaces/ApproveParams.html +15 -0
  303. package/dist/docs/interfaces/AssetSignatureInfo.html +2 -2
  304. package/dist/docs/interfaces/AssetSignaturesPage.html +2 -2
  305. package/dist/docs/interfaces/AssignParams.html +7 -0
  306. package/dist/docs/interfaces/AsyncFactoryProvider.html +7 -0
  307. package/dist/docs/interfaces/AuthorizeNonceParams.html +9 -0
  308. package/dist/docs/interfaces/BalanceChange.html +6 -6
  309. package/dist/docs/interfaces/BlockProduction.html +3 -3
  310. package/dist/docs/interfaces/BlockResult.html +2 -2
  311. package/dist/docs/interfaces/BlockReward.html +2 -2
  312. package/dist/docs/interfaces/BlockhashResult.html +2 -2
  313. package/dist/docs/interfaces/BurnCheckedParams.html +17 -0
  314. package/dist/docs/interfaces/BurnParams.html +15 -0
  315. package/dist/docs/interfaces/CallOptions.html +6 -6
  316. package/dist/docs/interfaces/ClassProvider.html +6 -0
  317. package/dist/docs/interfaces/CloseAccountParams.html +13 -0
  318. package/dist/docs/interfaces/ConfirmedTransaction.html +6 -6
  319. package/dist/docs/interfaces/ContactInfo.html +2 -2
  320. package/dist/docs/interfaces/ContextAdapter.html +15 -0
  321. package/dist/docs/interfaces/ContextEvents.html +13 -0
  322. package/dist/docs/interfaces/ContextModule.html +12 -0
  323. package/dist/docs/interfaces/CreateATAParams.html +13 -0
  324. package/dist/docs/interfaces/CreateAccountParams.html +13 -0
  325. package/dist/docs/interfaces/CreateAccountWithSeedParams.html +17 -0
  326. package/dist/docs/interfaces/CreateSynapseContextOpts.html +18 -0
  327. package/dist/docs/interfaces/DasAsset.html +2 -2
  328. package/dist/docs/interfaces/DasAssetProof.html +2 -2
  329. package/dist/docs/interfaces/DasAuthority.html +2 -2
  330. package/dist/docs/interfaces/DasCompression.html +2 -2
  331. package/dist/docs/interfaces/DasContent.html +2 -2
  332. package/dist/docs/interfaces/DasCreator.html +2 -2
  333. package/dist/docs/interfaces/DasFile.html +2 -2
  334. package/dist/docs/interfaces/DasGrouping.html +2 -2
  335. package/dist/docs/interfaces/DasOpts.html +2 -2
  336. package/dist/docs/interfaces/DasOwnership.html +2 -2
  337. package/dist/docs/interfaces/DasPage.html +2 -2
  338. package/dist/docs/interfaces/DasRoyalty.html +2 -2
  339. package/dist/docs/interfaces/DasSearchParams.html +2 -2
  340. package/dist/docs/interfaces/DasSupply.html +2 -2
  341. package/dist/docs/interfaces/DataSlice.html +3 -3
  342. package/dist/docs/interfaces/DecodedAccountResult.html +4 -4
  343. package/dist/docs/interfaces/DecodedLookupTable.html +8 -8
  344. package/dist/docs/interfaces/DecodedMint.html +6 -6
  345. package/dist/docs/interfaces/DecodedMultisig.html +5 -5
  346. package/dist/docs/interfaces/DecodedNonceAccount.html +6 -6
  347. package/dist/docs/interfaces/DecodedStakeAccount.html +2 -2
  348. package/dist/docs/interfaces/DecodedToken2022Account.html +9 -9
  349. package/dist/docs/interfaces/DecodedToken2022Mint.html +6 -6
  350. package/dist/docs/interfaces/DecodedTokenAccount.html +9 -9
  351. package/dist/docs/interfaces/DefaultAccountStateExt.html +2 -2
  352. package/dist/docs/interfaces/Disposable.html +5 -0
  353. package/dist/docs/interfaces/EndpointConnectConfig.html +5 -5
  354. package/dist/docs/interfaces/EpochInfo.html +7 -7
  355. package/dist/docs/interfaces/EpochSchedule.html +2 -2
  356. package/dist/docs/interfaces/FactoryProvider.html +7 -0
  357. package/dist/docs/interfaces/FetchedMint.html +6 -6
  358. package/dist/docs/interfaces/FetchedTokenAccount.html +6 -6
  359. package/dist/docs/interfaces/FreezeThawParams.html +13 -0
  360. package/dist/docs/interfaces/GetAccountInfoOpts.html +6 -6
  361. package/dist/docs/interfaces/GetAssetsByAuthorityParams.html +2 -2
  362. package/dist/docs/interfaces/GetAssetsByCreatorParams.html +2 -2
  363. package/dist/docs/interfaces/GetAssetsByGroupParams.html +2 -2
  364. package/dist/docs/interfaces/GetAssetsByOwnerParams.html +2 -2
  365. package/dist/docs/interfaces/GetBlockOpts.html +6 -6
  366. package/dist/docs/interfaces/GetBlockProductionOpts.html +6 -6
  367. package/dist/docs/interfaces/GetMultipleAccountsOpts.html +6 -6
  368. package/dist/docs/interfaces/GetProgramAccountsOpts.html +6 -6
  369. package/dist/docs/interfaces/GetSignatureStatusesOpts.html +6 -6
  370. package/dist/docs/interfaces/GetSignaturesOpts.html +7 -7
  371. package/dist/docs/interfaces/GetTokenAccountsParams.html +2 -2
  372. package/dist/docs/interfaces/GetTransactionOpts.html +6 -6
  373. package/dist/docs/interfaces/GeyserParserConfig.html +6 -6
  374. package/dist/docs/interfaces/GeyserParserEvents.html +9 -9
  375. package/dist/docs/interfaces/GeyserParserStats.html +2 -2
  376. package/dist/docs/interfaces/GrpcCallOptions.html +2 -2
  377. package/dist/docs/interfaces/GrpcTransportConfig.html +6 -6
  378. package/dist/docs/interfaces/ImmutableOwnerExt.html +2 -2
  379. package/dist/docs/interfaces/InflationGovernor.html +2 -2
  380. package/dist/docs/interfaces/InflationRate.html +2 -2
  381. package/dist/docs/interfaces/InflationReward.html +2 -2
  382. package/dist/docs/interfaces/InitializeAccountParams.html +11 -0
  383. package/dist/docs/interfaces/InitializeMintParams.html +13 -0
  384. package/dist/docs/interfaces/InitializeNonceParams.html +7 -0
  385. package/dist/docs/interfaces/InterestBearingConfigExt.html +2 -2
  386. package/dist/docs/interfaces/LatencyProbeResult.html +2 -2
  387. package/dist/docs/interfaces/LeakReport.html +12 -0
  388. package/dist/docs/interfaces/LogsNotification.html +2 -2
  389. package/dist/docs/interfaces/LogsSubParams.html +2 -2
  390. package/dist/docs/interfaces/MemoTransferExt.html +2 -2
  391. package/dist/docs/interfaces/MemoryGuardConfig.html +20 -0
  392. package/dist/docs/interfaces/MetadataPointerExt.html +2 -2
  393. package/dist/docs/interfaces/MintCloseAuthorityExt.html +2 -2
  394. package/dist/docs/interfaces/MintToCheckedParams.html +17 -0
  395. package/dist/docs/interfaces/MintToParams.html +15 -0
  396. package/dist/docs/interfaces/NonTransferableExt.html +2 -2
  397. package/dist/docs/interfaces/PaginationOpts.html +2 -2
  398. package/dist/docs/interfaces/ParsedAccountUpdate.html +16 -16
  399. package/dist/docs/interfaces/ParsedBlockMeta.html +2 -2
  400. package/dist/docs/interfaces/ParsedEntry.html +2 -2
  401. package/dist/docs/interfaces/ParsedInstruction.html +9 -9
  402. package/dist/docs/interfaces/ParsedSlotUpdate.html +3 -3
  403. package/dist/docs/interfaces/ParsedTransaction.html +19 -19
  404. package/dist/docs/interfaces/PerfSample.html +2 -2
  405. package/dist/docs/interfaces/PermanentDelegateExt.html +2 -2
  406. package/dist/docs/interfaces/ProgramAccount.html +2 -2
  407. package/dist/docs/interfaces/ProgramNotification.html +2 -2
  408. package/dist/docs/interfaces/ProgramSubParams.html +2 -2
  409. package/dist/docs/interfaces/ProgramsBundle.html +108 -0
  410. package/dist/docs/interfaces/RawAccountInfo.html +2 -2
  411. package/dist/docs/interfaces/RawBlockMeta.html +2 -2
  412. package/dist/docs/interfaces/RawBuffer.html +2 -2
  413. package/dist/docs/interfaces/RawCompiledInstruction.html +2 -2
  414. package/dist/docs/interfaces/RawEntry.html +2 -2
  415. package/dist/docs/interfaces/RawGeyserUpdate.html +2 -2
  416. package/dist/docs/interfaces/RawInnerInstruction.html +2 -2
  417. package/dist/docs/interfaces/RawSlotInfo.html +2 -2
  418. package/dist/docs/interfaces/RawTimestamp.html +2 -2
  419. package/dist/docs/interfaces/RawTokenBalance.html +2 -2
  420. package/dist/docs/interfaces/RawTransactionInfo.html +2 -2
  421. package/dist/docs/interfaces/ReactAdapterConfig.html +8 -0
  422. package/dist/docs/interfaces/RecoverNestedParams.html +15 -0
  423. package/dist/docs/interfaces/RefRegistryConfig.html +9 -0
  424. package/dist/docs/interfaces/RefStats.html +15 -0
  425. package/dist/docs/interfaces/RequestHeapFrameParams.html +5 -0
  426. package/dist/docs/interfaces/ResolveMiddleware.html +8 -0
  427. package/dist/docs/interfaces/RevokeParams.html +11 -0
  428. package/dist/docs/interfaces/RootNotification.html +2 -2
  429. package/dist/docs/interfaces/RootSubParams.html +1 -1
  430. package/dist/docs/interfaces/RpcContext.html +2 -2
  431. package/dist/docs/interfaces/RpcError.html +4 -4
  432. package/dist/docs/interfaces/RpcRequest.html +2 -2
  433. package/dist/docs/interfaces/RpcResponse.html +2 -2
  434. package/dist/docs/interfaces/SendTransactionOpts.html +6 -6
  435. package/dist/docs/interfaces/ServerAdapterConfig.html +13 -0
  436. package/dist/docs/interfaces/ServiceBinding.html +17 -0
  437. package/dist/docs/interfaces/ServiceRegistration.html +7 -0
  438. package/dist/docs/interfaces/ServiceResolver.html +16 -0
  439. package/dist/docs/interfaces/ServiceToken.html +13 -0
  440. package/dist/docs/interfaces/SetComputeUnitLimitParams.html +5 -0
  441. package/dist/docs/interfaces/SetComputeUnitPriceParams.html +5 -0
  442. package/dist/docs/interfaces/SetLoadedAccountsDataSizeLimitParams.html +5 -0
  443. package/dist/docs/interfaces/SignatureInfo.html +7 -7
  444. package/dist/docs/interfaces/SignatureNotification.html +2 -2
  445. package/dist/docs/interfaces/SignatureStatus.html +5 -5
  446. package/dist/docs/interfaces/SignatureSubParams.html +2 -2
  447. package/dist/docs/interfaces/SignaturesForAssetParams.html +2 -2
  448. package/dist/docs/interfaces/SimulateResult.html +2 -2
  449. package/dist/docs/interfaces/SimulateTransactionOpts.html +7 -7
  450. package/dist/docs/interfaces/SlotNotification.html +2 -2
  451. package/dist/docs/interfaces/SlotSubParams.html +1 -1
  452. package/dist/docs/interfaces/SortOpts.html +2 -2
  453. package/dist/docs/interfaces/StakeAuthorized.html +2 -2
  454. package/dist/docs/interfaces/StakeDelegation.html +3 -3
  455. package/dist/docs/interfaces/StakeLockup.html +4 -4
  456. package/dist/docs/interfaces/StakeMeta.html +2 -2
  457. package/dist/docs/interfaces/Supply.html +5 -5
  458. package/dist/docs/interfaces/SynapseClientConfig.html +9 -9
  459. package/dist/docs/interfaces/SynapseClientLike.html +14 -0
  460. package/dist/docs/interfaces/SynapseEndpoint.html +7 -7
  461. package/dist/docs/interfaces/SyncNativeParams.html +7 -0
  462. package/dist/docs/interfaces/SystemTransferParams.html +9 -0
  463. package/dist/docs/interfaces/TokenAccount.html +3 -3
  464. package/dist/docs/interfaces/TokenAccountsByOwnerResult.html +2 -2
  465. package/dist/docs/interfaces/TokenAmount.html +5 -5
  466. package/dist/docs/interfaces/TokenBalanceChange.html +2 -2
  467. package/dist/docs/interfaces/TokenTransferParams.html +15 -0
  468. package/dist/docs/interfaces/TransactionInstruction.html +11 -0
  469. package/dist/docs/interfaces/TransactionMeta.html +11 -11
  470. package/dist/docs/interfaces/TransferCheckedParams.html +19 -0
  471. package/dist/docs/interfaces/TransferFeeAmount.html +2 -2
  472. package/dist/docs/interfaces/TransferFeeConfig.html +2 -2
  473. package/dist/docs/interfaces/TransportConfig.html +7 -7
  474. package/dist/docs/interfaces/UnknownExtension.html +2 -2
  475. package/dist/docs/interfaces/ValueProvider.html +4 -0
  476. package/dist/docs/interfaces/VoteAccount.html +9 -9
  477. package/dist/docs/interfaces/VoteAccountsResult.html +3 -3
  478. package/dist/docs/interfaces/WithdrawNonceParams.html +11 -0
  479. package/dist/docs/interfaces/WsConfig.html +6 -6
  480. package/dist/docs/media/CHANGELOG.md +114 -0
  481. package/dist/docs/modules.html +107 -1
  482. package/dist/docs/types/AccountFetchOpts.html +1 -1
  483. package/dist/docs/types/AccountFilter.html +1 -1
  484. package/dist/docs/types/Base58.html +1 -1
  485. package/dist/docs/types/Brand.html +1 -1
  486. package/dist/docs/types/Commitment.html +1 -1
  487. package/dist/docs/types/DasSortBy.html +1 -1
  488. package/dist/docs/types/DasSortDirection.html +1 -1
  489. package/dist/docs/types/DataSizeFilter.html +1 -1
  490. package/dist/docs/types/DecodedExtension.html +1 -1
  491. package/dist/docs/types/Encoding.html +1 -1
  492. package/dist/docs/types/Epoch.html +1 -1
  493. package/dist/docs/types/Lamports.html +1 -1
  494. package/dist/docs/types/LogsFilter.html +1 -1
  495. package/dist/docs/types/MemcmpFilter.html +1 -1
  496. package/dist/docs/types/NonceState.html +1 -1
  497. package/dist/docs/types/ParsedGeyserUpdate.html +1 -1
  498. package/dist/docs/types/Pubkey.html +1 -1
  499. package/dist/docs/types/RuntimeEnv.html +1 -1
  500. package/dist/docs/types/ServiceLifecycle.html +25 -0
  501. package/dist/docs/types/ServiceProvider.html +3 -0
  502. package/dist/docs/types/Signature.html +1 -1
  503. package/dist/docs/types/Slot.html +1 -1
  504. package/dist/docs/types/StakeAccountType.html +1 -1
  505. package/dist/docs/types/SubscriptionId.html +1 -1
  506. package/dist/docs/types/TokenAccountState.html +1 -1
  507. package/dist/docs/types/TransactionDetail.html +1 -1
  508. package/dist/docs/types/UnaryMethod.html +1 -1
  509. package/dist/docs/types/UnixTimestamp.html +1 -1
  510. package/dist/docs/types/WsNotification.html +1 -1
  511. package/dist/docs/variables/ASSOCIATED_TOKEN_PROGRAM.html +3 -0
  512. package/dist/docs/variables/AssociatedToken.html +13 -0
  513. package/dist/docs/variables/COMPUTE_BUDGET_PROGRAM.html +3 -0
  514. package/dist/docs/variables/ComputeBudget.html +19 -0
  515. package/dist/docs/variables/JUPITER_PROGRAMS.html +1 -1
  516. package/dist/docs/variables/KNOWN_PROGRAMS.html +1 -1
  517. package/dist/docs/variables/KNOWN_PROGRAMS_COUNT.html +1 -1
  518. package/dist/docs/variables/LOOKUP_TABLE_HEADER_SIZE.html +1 -1
  519. package/dist/docs/variables/LOOKUP_TABLE_PROGRAM_ID.html +1 -1
  520. package/dist/docs/variables/MARINADE_PROGRAMS.html +1 -1
  521. package/dist/docs/variables/MAX_MULTISIG_SIGNERS.html +1 -1
  522. package/dist/docs/variables/MEMO_PROGRAM_V1.html +3 -0
  523. package/dist/docs/variables/MEMO_PROGRAM_V2.html +3 -0
  524. package/dist/docs/variables/METAPLEX_PROGRAMS.html +1 -1
  525. package/dist/docs/variables/METEORA_PROGRAMS.html +1 -1
  526. package/dist/docs/variables/MINT_SIZE.html +1 -1
  527. package/dist/docs/variables/MULTISIG_SIZE.html +1 -1
  528. package/dist/docs/variables/Memo.html +9 -0
  529. package/dist/docs/variables/NONCE_ACCOUNT_SIZE.html +1 -1
  530. package/dist/docs/variables/ORCA_PROGRAMS.html +1 -1
  531. package/dist/docs/variables/OTHER_PROGRAMS.html +1 -1
  532. package/dist/docs/variables/RAYDIUM_PROGRAMS.html +1 -1
  533. package/dist/docs/variables/SDK_USER_AGENT.html +1 -1
  534. package/dist/docs/variables/SPL_PROGRAMS.html +1 -1
  535. package/dist/docs/variables/STAKE_PROGRAM_ID.html +1 -1
  536. package/dist/docs/variables/SYNAPSE_DEVNET_EU.html +1 -1
  537. package/dist/docs/variables/SYNAPSE_DEVNET_US.html +1 -1
  538. package/dist/docs/variables/SYNAPSE_ENDPOINTS.html +1 -1
  539. package/dist/docs/variables/SYNAPSE_MAINNET_EU.html +1 -1
  540. package/dist/docs/variables/SYNAPSE_MAINNET_US.html +1 -1
  541. package/dist/docs/variables/SYSTEM_PROGRAM.html +3 -0
  542. package/dist/docs/variables/SYSTEM_PROGRAMS.html +1 -1
  543. package/dist/docs/variables/SYSTEM_PROGRAM_ID.html +1 -1
  544. package/dist/docs/variables/SplToken.html +38 -0
  545. package/dist/docs/variables/SystemProgram.html +42 -0
  546. package/dist/docs/variables/TOKEN_2022_PROGRAM.html +3 -0
  547. package/dist/docs/variables/TOKEN_2022_PROGRAM_ID.html +1 -1
  548. package/dist/docs/variables/TOKEN_ACCOUNT_SIZE.html +1 -1
  549. package/dist/docs/variables/TOKEN_PROGRAM.html +3 -0
  550. package/dist/docs/variables/TOKEN_PROGRAM_ID.html +1 -1
  551. package/dist/docs/variables/Tokens.html +16 -0
  552. package/dist/esm/ai/gateway/index.d.ts +5 -5
  553. package/dist/esm/ai/gateway/index.d.ts.map +1 -1
  554. package/dist/esm/ai/gateway/index.js +2 -2
  555. package/dist/esm/ai/gateway/index.js.map +1 -1
  556. package/dist/esm/ai/index.d.ts +1 -1
  557. package/dist/esm/ai/index.d.ts.map +1 -1
  558. package/dist/esm/ai/index.js +2 -2
  559. package/dist/esm/ai/index.js.map +1 -1
  560. package/dist/esm/ai/tools/index.d.ts +4 -4
  561. package/dist/esm/ai/tools/index.d.ts.map +1 -1
  562. package/dist/esm/ai/tools/index.js +3 -3
  563. package/dist/esm/ai/tools/index.js.map +1 -1
  564. package/dist/esm/ai/tools/protocols/index.d.ts +9 -3
  565. package/dist/esm/ai/tools/protocols/index.d.ts.map +1 -1
  566. package/dist/esm/ai/tools/protocols/index.js +12 -1
  567. package/dist/esm/ai/tools/protocols/index.js.map +1 -1
  568. package/dist/esm/ai/tools/protocols/jupiter/schemas.d.ts +1 -1
  569. package/dist/esm/ai/tools/protocols/jupiter/schemas.d.ts.map +1 -1
  570. package/dist/esm/ai/tools/protocols/jupiter/schemas.js +126 -28
  571. package/dist/esm/ai/tools/protocols/jupiter/schemas.js.map +1 -1
  572. package/dist/esm/ai/tools/protocols/jupiter/tools.d.ts +4 -3
  573. package/dist/esm/ai/tools/protocols/jupiter/tools.d.ts.map +1 -1
  574. package/dist/esm/ai/tools/protocols/jupiter/tools.js +91 -9
  575. package/dist/esm/ai/tools/protocols/jupiter/tools.js.map +1 -1
  576. package/dist/esm/ai/tools/protocols/jupiter-onchain/tools.d.ts +4 -4
  577. package/dist/esm/ai/tools/protocols/jupiter-onchain/tools.d.ts.map +1 -1
  578. package/dist/esm/ai/tools/protocols/jupiter-onchain/tools.js +1 -1
  579. package/dist/esm/ai/tools/protocols/jupiter-onchain/tools.js.map +1 -1
  580. package/dist/esm/ai/tools/protocols/metaplex/tools.d.ts +7 -4
  581. package/dist/esm/ai/tools/protocols/metaplex/tools.d.ts.map +1 -1
  582. package/dist/esm/ai/tools/protocols/metaplex/tools.js +4 -1
  583. package/dist/esm/ai/tools/protocols/metaplex/tools.js.map +1 -1
  584. package/dist/esm/ai/tools/protocols/raydium-onchain/tools.d.ts +4 -4
  585. package/dist/esm/ai/tools/protocols/raydium-onchain/tools.d.ts.map +1 -1
  586. package/dist/esm/ai/tools/protocols/raydium-onchain/tools.js +1 -1
  587. package/dist/esm/ai/tools/protocols/raydium-onchain/tools.js.map +1 -1
  588. package/dist/esm/ai/tools/protocols/solana-programs/index.d.ts +7 -0
  589. package/dist/esm/ai/tools/protocols/solana-programs/index.d.ts.map +1 -0
  590. package/dist/esm/ai/tools/protocols/solana-programs/index.js +7 -0
  591. package/dist/esm/ai/tools/protocols/solana-programs/index.js.map +1 -0
  592. package/dist/esm/ai/tools/protocols/solana-programs/schemas.d.ts +11 -0
  593. package/dist/esm/ai/tools/protocols/solana-programs/schemas.d.ts.map +1 -0
  594. package/dist/esm/ai/tools/protocols/solana-programs/schemas.js +157 -0
  595. package/dist/esm/ai/tools/protocols/solana-programs/schemas.js.map +1 -0
  596. package/dist/esm/ai/tools/protocols/solana-programs/tools.d.ts +57 -0
  597. package/dist/esm/ai/tools/protocols/solana-programs/tools.d.ts.map +1 -0
  598. package/dist/esm/ai/tools/protocols/solana-programs/tools.js +220 -0
  599. package/dist/esm/ai/tools/protocols/solana-programs/tools.js.map +1 -0
  600. package/dist/esm/context/container.d.ts +341 -0
  601. package/dist/esm/context/container.d.ts.map +1 -0
  602. package/dist/esm/context/container.js +666 -0
  603. package/dist/esm/context/container.js.map +1 -0
  604. package/dist/esm/context/hooks.d.ts +357 -0
  605. package/dist/esm/context/hooks.d.ts.map +1 -0
  606. package/dist/esm/context/hooks.js +434 -0
  607. package/dist/esm/context/hooks.js.map +1 -0
  608. package/dist/esm/context/index.d.ts +81 -0
  609. package/dist/esm/context/index.d.ts.map +1 -0
  610. package/dist/esm/context/index.js +98 -0
  611. package/dist/esm/context/index.js.map +1 -0
  612. package/dist/esm/context/providers.d.ts +176 -0
  613. package/dist/esm/context/providers.d.ts.map +1 -0
  614. package/dist/esm/context/providers.js +179 -0
  615. package/dist/esm/context/providers.js.map +1 -0
  616. package/dist/esm/context/refs.d.ts +491 -0
  617. package/dist/esm/context/refs.d.ts.map +1 -0
  618. package/dist/esm/context/refs.js +664 -0
  619. package/dist/esm/context/refs.js.map +1 -0
  620. package/dist/esm/context/types.d.ts +251 -0
  621. package/dist/esm/context/types.d.ts.map +1 -0
  622. package/dist/esm/context/types.js +79 -0
  623. package/dist/esm/context/types.js.map +1 -0
  624. package/dist/esm/core/client.d.ts +31 -1
  625. package/dist/esm/core/client.d.ts.map +1 -1
  626. package/dist/esm/core/client.js.map +1 -1
  627. package/dist/esm/index.d.ts +4 -1
  628. package/dist/esm/index.d.ts.map +1 -1
  629. package/dist/esm/index.js +6 -1
  630. package/dist/esm/index.js.map +1 -1
  631. package/dist/esm/programs/associated-token.d.ts +97 -0
  632. package/dist/esm/programs/associated-token.d.ts.map +1 -0
  633. package/dist/esm/programs/associated-token.js +110 -0
  634. package/dist/esm/programs/associated-token.js.map +1 -0
  635. package/dist/esm/programs/compute-budget.d.ts +105 -0
  636. package/dist/esm/programs/compute-budget.d.ts.map +1 -0
  637. package/dist/esm/programs/compute-budget.js +96 -0
  638. package/dist/esm/programs/compute-budget.js.map +1 -0
  639. package/dist/esm/programs/index.d.ts +74 -0
  640. package/dist/esm/programs/index.d.ts.map +1 -0
  641. package/dist/esm/programs/index.js +90 -0
  642. package/dist/esm/programs/index.js.map +1 -0
  643. package/dist/esm/programs/memo.d.ts +70 -0
  644. package/dist/esm/programs/memo.d.ts.map +1 -0
  645. package/dist/esm/programs/memo.js +71 -0
  646. package/dist/esm/programs/memo.js.map +1 -0
  647. package/dist/esm/programs/spl-token.d.ts +373 -0
  648. package/dist/esm/programs/spl-token.d.ts.map +1 -0
  649. package/dist/esm/programs/spl-token.js +355 -0
  650. package/dist/esm/programs/spl-token.js.map +1 -0
  651. package/dist/esm/programs/system.d.ts +231 -0
  652. package/dist/esm/programs/system.d.ts.map +1 -0
  653. package/dist/esm/programs/system.js +228 -0
  654. package/dist/esm/programs/system.js.map +1 -0
  655. package/dist/esm/programs/types.d.ts +111 -0
  656. package/dist/esm/programs/types.d.ts.map +1 -0
  657. package/dist/esm/programs/types.js +157 -0
  658. package/dist/esm/programs/types.js.map +1 -0
  659. package/package.json +41 -1
@@ -0,0 +1,670 @@
1
+ "use strict";
2
+ /**
3
+ * SynapseContext — IoC service container with scoping, middleware, and lifecycle management.
4
+ *
5
+ * This is the core runtime of the context provider system. It holds all
6
+ * service registrations and resolves them on demand, respecting lifecycle
7
+ * rules (singleton / transient / scoped), circular-dependency detection,
8
+ * and middleware chains.
9
+ *
10
+ * ## Usage
11
+ *
12
+ * ```ts
13
+ * import { SynapseContext, createToken } from '@oobe-protocol-labs/synapse-client-sdk/context';
14
+ *
15
+ * interface Logger { log(msg: string): void; }
16
+ * const LOGGER = createToken<Logger>('Logger');
17
+ *
18
+ * const ctx = new SynapseContext();
19
+ * ctx.register(LOGGER, { useValue: console });
20
+ * const logger = ctx.resolve(LOGGER); // typed as Logger
21
+ * ```
22
+ *
23
+ * ## Scoping
24
+ *
25
+ * ```ts
26
+ * const scope = ctx.createScope('request-123');
27
+ * scope.register(REQUEST_ID, { useValue: '123' });
28
+ * scope.resolve(LOGGER); // inherits from parent
29
+ * scope.resolve(REQUEST_ID); // scoped value
30
+ * scope.dispose();
31
+ * ```
32
+ *
33
+ * @module context/container
34
+ * @since 1.2.0
35
+ */
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.SynapseContext = void 0;
38
+ const types_1 = require("./types");
39
+ const refs_1 = require("./refs");
40
+ // ── Type guards for provider shapes ────────────────────────────
41
+ function isValue(p) {
42
+ return 'useValue' in p;
43
+ }
44
+ function isFactory(p) {
45
+ return 'useFactory' in p;
46
+ }
47
+ function isClass(p) {
48
+ return 'useClass' in p;
49
+ }
50
+ function isAlias(p) {
51
+ return 'useExisting' in p;
52
+ }
53
+ function isAsyncFactory(p) {
54
+ return 'useAsyncFactory' in p;
55
+ }
56
+ class TinyEmitter {
57
+ handlers = new Map();
58
+ on(event, handler) {
59
+ let set = this.handlers.get(event);
60
+ if (!set) {
61
+ set = new Set();
62
+ this.handlers.set(event, set);
63
+ }
64
+ set.add(handler);
65
+ }
66
+ off(event, handler) {
67
+ this.handlers.get(event)?.delete(handler);
68
+ }
69
+ emit(event, payload) {
70
+ this.handlers.get(event)?.forEach(fn => {
71
+ try {
72
+ fn(payload);
73
+ }
74
+ catch { /* swallow listener errors */ }
75
+ });
76
+ }
77
+ removeAll() { this.handlers.clear(); }
78
+ }
79
+ // ── SynapseContext ─────────────────────────────────────────────
80
+ /**
81
+ * The main IoC service container.
82
+ *
83
+ * Provides type-safe dependency injection with support for:
84
+ * - Value, factory, class, alias, and async factory providers
85
+ * - Singleton, transient, and scoped lifecycles
86
+ * - Hierarchical scopes (child inherits parent registrations)
87
+ * - Circular dependency detection
88
+ * - Resolve middleware (logging, metrics, decoration)
89
+ * - Automatic disposal of services implementing `Disposable`
90
+ * - Event-driven observability
91
+ *
92
+ * @since 1.2.0
93
+ */
94
+ class SynapseContext {
95
+ scopeId;
96
+ parent;
97
+ registry = new Map();
98
+ middlewares = [];
99
+ events = new TinyEmitter();
100
+ resolutionStack = new Set();
101
+ children = new Set();
102
+ disposed = false;
103
+ /** @internal Lazy ref registry — created on first acquireRef(). */
104
+ _refRegistry;
105
+ /** @internal Optional memory guard. */
106
+ _memoryGuard;
107
+ /**
108
+ * @param scopeId - Unique scope identifier (auto-generated for child scopes).
109
+ * @param parent - Parent context for hierarchical resolution.
110
+ */
111
+ constructor(scopeId = 'root', parent) {
112
+ this.scopeId = scopeId;
113
+ this.parent = parent;
114
+ }
115
+ // ── Ref Registry (lazy) ───────────────────────────────────────
116
+ /** @internal Get or create the ref registry. */
117
+ getRefRegistry() {
118
+ if (!this._refRegistry) {
119
+ this._refRegistry = new refs_1.RefRegistry({ enableLeakDetection: true });
120
+ }
121
+ return this._refRegistry;
122
+ }
123
+ /**
124
+ * Acquire a tracked, ref-counted reference to a service.
125
+ *
126
+ * Returns a {@link ServiceRef} that must be `.release()`'d when no
127
+ * longer needed. Multiple `acquireRef()` calls for the same singleton
128
+ * token return different refs to the **same** instance — the ref count
129
+ * tracks how many holders exist.
130
+ *
131
+ * @typeParam T - The service type.
132
+ * @param token - The service token to resolve.
133
+ * @returns A new `ServiceRef<T>` linked to this context's ref registry.
134
+ * @throws {ServiceNotFoundError} If no provider is registered for the token.
135
+ * @since 1.2.0
136
+ *
137
+ * @example
138
+ * ```ts
139
+ * // Component A
140
+ * const rpcRef = ctx.acquireRef(Tokens.RPC);
141
+ * await rpcRef.current.getBalance(pubkey);
142
+ *
143
+ * // Component B — same singleton, separate ref
144
+ * const rpcRef2 = ctx.acquireRef(Tokens.RPC);
145
+ * ctx.refCount(Tokens.RPC); // → 2
146
+ *
147
+ * // Cleanup
148
+ * rpcRef.release(); // ref count → 1
149
+ * rpcRef2.release(); // ref count → 0
150
+ * ```
151
+ */
152
+ acquireRef(token) {
153
+ this.assertNotDisposed();
154
+ const value = this.resolve(token);
155
+ return this.getRefRegistry().acquire(token, value);
156
+ }
157
+ /**
158
+ * Acquire tracked refs for multiple tokens at once.
159
+ *
160
+ * Returns a {@link ServiceBinding} whose `.services` proxy lazily
161
+ * resolves each token. A single `.release()` frees all refs.
162
+ *
163
+ * @param tokens - Record mapping property names to service tokens.
164
+ * @returns A binding with lazy services and batch release.
165
+ * @since 1.2.0
166
+ *
167
+ * @example
168
+ * ```ts
169
+ * const binding = ctx.bind({
170
+ * rpc: Tokens.RPC,
171
+ * das: Tokens.DAS,
172
+ * programs: Tokens.PROGRAMS,
173
+ * });
174
+ *
175
+ * await binding.services.rpc.getBalance(pubkey);
176
+ * binding.release(); // releases all at once
177
+ * ```
178
+ */
179
+ bind(tokens) {
180
+ this.assertNotDisposed();
181
+ return (0, refs_1.createBinding)((t) => this.acquireRef(t), tokens);
182
+ }
183
+ /**
184
+ * Number of active (unreleased) refs for a specific token.
185
+ *
186
+ * Returns `0` if no refs have been acquired or the ref registry
187
+ * hasn't been initialized yet.
188
+ *
189
+ * @since 1.2.0
190
+ */
191
+ refCount(token) {
192
+ return this._refRegistry?.refCount(token) ?? 0;
193
+ }
194
+ /**
195
+ * The ref registry for this context, if any refs have been acquired.
196
+ *
197
+ * Returns `undefined` if `acquireRef()` has never been called.
198
+ * @since 1.2.0
199
+ */
200
+ get refs() {
201
+ return this._refRegistry;
202
+ }
203
+ /**
204
+ * Enable a memory guard with configurable thresholds.
205
+ *
206
+ * The guard monitors ref counts and emits pressure/leak events.
207
+ * Can only be called once per context.
208
+ *
209
+ * @param config - Guard thresholds.
210
+ * @returns The created `MemoryGuard`.
211
+ * @since 1.2.0
212
+ *
213
+ * @example
214
+ * ```ts
215
+ * const guard = ctx.enableMemoryGuard({
216
+ * maxRefAgeMs: 30_000,
217
+ * maxActiveRefs: 50,
218
+ * checkIntervalMs: 10_000,
219
+ * });
220
+ *
221
+ * guard.onPressure(stats => console.warn('Memory pressure:', stats));
222
+ * guard.onLeak(leak => console.error('Leaked ref:', leak));
223
+ * ```
224
+ */
225
+ enableMemoryGuard(config) {
226
+ this.assertNotDisposed();
227
+ if (this._memoryGuard)
228
+ return this._memoryGuard;
229
+ this._memoryGuard = new refs_1.MemoryGuard(this.getRefRegistry(), config);
230
+ return this._memoryGuard;
231
+ }
232
+ /**
233
+ * The active memory guard, if enabled.
234
+ * @since 1.2.0
235
+ */
236
+ get memoryGuard() {
237
+ return this._memoryGuard;
238
+ }
239
+ // ── Registration ──────────────────────────────────────────────
240
+ /**
241
+ * Register a service provider for a token.
242
+ *
243
+ * @param token - The service token.
244
+ * @param provider - How to create the service.
245
+ * @param tags - Optional tags for filtering.
246
+ * @returns `this` for chaining.
247
+ *
248
+ * @example
249
+ * ```ts
250
+ * ctx.register(DB, { useFactory: r => new PostgresDB(r.resolve(CONFIG)) });
251
+ * ctx.register(LOGGER, { useValue: console }, ['core']);
252
+ * ctx.register(CACHE, { useClass: RedisCache, lifecycle: 'singleton' });
253
+ * ```
254
+ *
255
+ * @since 1.2.0
256
+ */
257
+ register(token, provider, tags) {
258
+ this.assertNotDisposed();
259
+ const lifecycle = isValue(provider)
260
+ ? 'singleton' // values are always singletons
261
+ : provider.lifecycle ?? 'singleton';
262
+ this.registry.set(token, {
263
+ provider,
264
+ lifecycle,
265
+ tags: tags ?? [],
266
+ resolved: false,
267
+ });
268
+ this.events.emit('registered', { token, tags });
269
+ return this;
270
+ }
271
+ /**
272
+ * Register multiple services at once.
273
+ *
274
+ * @param registrations - Array of `{ token, provider, tags? }` descriptors.
275
+ * @returns `this` for chaining.
276
+ * @since 1.2.0
277
+ */
278
+ registerMany(registrations) {
279
+ for (const reg of registrations) {
280
+ this.register(reg.token, reg.provider, reg.tags);
281
+ }
282
+ return this;
283
+ }
284
+ /**
285
+ * Register a service only if the token is not already registered.
286
+ *
287
+ * Useful for default/fallback providers that should not override
288
+ * user-provided registrations.
289
+ *
290
+ * @since 1.2.0
291
+ */
292
+ registerIfMissing(token, provider, tags) {
293
+ if (!this.has(token)) {
294
+ this.register(token, provider, tags);
295
+ }
296
+ return this;
297
+ }
298
+ // ── Resolution ────────────────────────────────────────────────
299
+ /**
300
+ * Resolve a service synchronously.
301
+ *
302
+ * @throws {ServiceNotFoundError} If no provider is registered.
303
+ * @throws {CircularDependencyError} If a circular dependency is detected.
304
+ * @throws {AsyncProviderError} If the provider is async.
305
+ * @since 1.2.0
306
+ */
307
+ resolve(token) {
308
+ this.assertNotDisposed();
309
+ const start = performance.now();
310
+ try {
311
+ const result = this.applyMiddleware(token, () => this.doResolve(token));
312
+ this.events.emit('resolved', {
313
+ token,
314
+ lifecycle: this.getLifecycle(token),
315
+ durationMs: performance.now() - start,
316
+ });
317
+ return result;
318
+ }
319
+ catch (err) {
320
+ this.events.emit('error', { token, error: err });
321
+ throw err;
322
+ }
323
+ }
324
+ /**
325
+ * Resolve a service asynchronously.
326
+ *
327
+ * Required for services registered with `useAsyncFactory`.
328
+ * Also works for sync providers (wraps result in a resolved promise).
329
+ *
330
+ * @since 1.2.0
331
+ */
332
+ async resolveAsync(token) {
333
+ this.assertNotDisposed();
334
+ const start = performance.now();
335
+ try {
336
+ const result = await this.doResolveAsync(token);
337
+ this.events.emit('resolved', {
338
+ token,
339
+ lifecycle: this.getLifecycle(token),
340
+ durationMs: performance.now() - start,
341
+ });
342
+ return result;
343
+ }
344
+ catch (err) {
345
+ this.events.emit('error', { token, error: err });
346
+ throw err;
347
+ }
348
+ }
349
+ /**
350
+ * Try to resolve a service; return `undefined` if not registered.
351
+ * @since 1.2.0
352
+ */
353
+ tryResolve(token) {
354
+ if (!this.has(token))
355
+ return undefined;
356
+ return this.resolve(token);
357
+ }
358
+ /**
359
+ * Check if a token has a provider (searches parent scopes too).
360
+ * @since 1.2.0
361
+ */
362
+ has(token) {
363
+ return this.registry.has(token) || (this.parent?.has(token) ?? false);
364
+ }
365
+ /**
366
+ * Resolve all services whose registrations contain the given tag.
367
+ * @since 1.2.0
368
+ */
369
+ resolveByTag(tag) {
370
+ const results = [];
371
+ for (const [token, entry] of this.registry) {
372
+ if (entry.tags.includes(tag)) {
373
+ results.push(this.resolve(token));
374
+ }
375
+ }
376
+ // Also search parent
377
+ if (this.parent) {
378
+ results.push(...this.parent.resolveByTag(tag));
379
+ }
380
+ return results;
381
+ }
382
+ // ── Scoping ───────────────────────────────────────────────────
383
+ /**
384
+ * Create a child scope that inherits all parent registrations.
385
+ *
386
+ * Scoped services get fresh instances in the child scope.
387
+ * The child scope is tracked and disposed when the parent is disposed.
388
+ *
389
+ * @param scopeId - Unique identifier for the child scope.
390
+ * @returns A new `SynapseContext` linked to this parent.
391
+ * @since 1.2.0
392
+ *
393
+ * @example
394
+ * ```ts
395
+ * const reqScope = ctx.createScope(`request-${id}`);
396
+ * reqScope.register(REQUEST_CTX, { useValue: { id, user } });
397
+ * // ... handle request ...
398
+ * reqScope.dispose();
399
+ * ```
400
+ */
401
+ createScope(scopeId) {
402
+ this.assertNotDisposed();
403
+ const id = scopeId ?? `scope-${Math.random().toString(36).slice(2, 9)}`;
404
+ const child = new SynapseContext(id, this);
405
+ this.children.add(child);
406
+ this.events.emit('scopeCreated', { scopeId: id });
407
+ return child;
408
+ }
409
+ // ── Middleware ─────────────────────────────────────────────────
410
+ /**
411
+ * Add a resolve middleware.
412
+ *
413
+ * Middleware functions wrap every `resolve()` call. They execute in
414
+ * the order they are added (first-in, outermost).
415
+ *
416
+ * @param mw - Middleware function.
417
+ * @returns `this` for chaining.
418
+ * @since 1.2.0
419
+ *
420
+ * @example
421
+ * ```ts
422
+ * ctx.use((token, next) => {
423
+ * console.time(token.name);
424
+ * const result = next();
425
+ * console.timeEnd(token.name);
426
+ * return result;
427
+ * });
428
+ * ```
429
+ */
430
+ use(mw) {
431
+ this.middlewares.push(mw);
432
+ return this;
433
+ }
434
+ // ── Events ────────────────────────────────────────────────────
435
+ /**
436
+ * Subscribe to a container event.
437
+ * @since 1.2.0
438
+ */
439
+ on(event, handler) {
440
+ this.events.on(event, handler);
441
+ return this;
442
+ }
443
+ /**
444
+ * Unsubscribe from a container event.
445
+ * @since 1.2.0
446
+ */
447
+ off(event, handler) {
448
+ this.events.off(event, handler);
449
+ return this;
450
+ }
451
+ // ── Lifecycle ─────────────────────────────────────────────────
452
+ /**
453
+ * Dispose this context and all child scopes.
454
+ *
455
+ * Calls `.dispose()` on all singleton/scoped services that implement
456
+ * {@link Disposable}. After disposal, any call to `resolve()` throws.
457
+ *
458
+ * @returns Number of services disposed.
459
+ * @since 1.2.0
460
+ */
461
+ async dispose() {
462
+ if (this.disposed)
463
+ return 0;
464
+ this.disposed = true;
465
+ let count = 0;
466
+ // Dispose children first (innermost to outermost)
467
+ for (const child of this.children) {
468
+ count += await child.dispose();
469
+ }
470
+ this.children.clear();
471
+ // Invalidate all tracked refs before disposing services
472
+ if (this._refRegistry) {
473
+ this._refRegistry.dispose();
474
+ this._refRegistry = undefined;
475
+ }
476
+ if (this._memoryGuard) {
477
+ this._memoryGuard.dispose();
478
+ this._memoryGuard = undefined;
479
+ }
480
+ // Dispose own singletons & scoped instances
481
+ for (const entry of this.registry.values()) {
482
+ if (entry.resolved && entry.instance != null && (0, types_1.isDisposable)(entry.instance)) {
483
+ try {
484
+ await entry.instance.dispose();
485
+ count++;
486
+ }
487
+ catch { /* best effort */ }
488
+ }
489
+ }
490
+ this.registry.clear();
491
+ this.events.emit('disposed', { scopeId: this.scopeId, servicesDisposed: count });
492
+ this.events.removeAll();
493
+ // Unlink from parent
494
+ if (this.parent) {
495
+ this.parent.children.delete(this);
496
+ }
497
+ return count;
498
+ }
499
+ // ── Introspection ─────────────────────────────────────────────
500
+ /**
501
+ * Get all registered tokens (this scope only, not parent).
502
+ * @since 1.2.0
503
+ */
504
+ get tokens() {
505
+ return [...this.registry.keys()];
506
+ }
507
+ /**
508
+ * Get all registered tokens across this scope and all parents.
509
+ * @since 1.2.0
510
+ */
511
+ get allTokens() {
512
+ const parentTokens = this.parent?.allTokens ?? [];
513
+ return [...new Set([...this.registry.keys(), ...parentTokens])];
514
+ }
515
+ /**
516
+ * Number of services registered in this scope.
517
+ * @since 1.2.0
518
+ */
519
+ get size() {
520
+ return this.registry.size;
521
+ }
522
+ /**
523
+ * Whether this context has been disposed.
524
+ * @since 1.2.0
525
+ */
526
+ get isDisposed() {
527
+ return this.disposed;
528
+ }
529
+ /**
530
+ * Return a snapshot of registered services for debugging.
531
+ * @since 1.2.0
532
+ */
533
+ snapshot() {
534
+ return [...this.registry.entries()].map(([token, entry]) => ({
535
+ token: token.name,
536
+ lifecycle: entry.lifecycle,
537
+ resolved: entry.resolved,
538
+ tags: entry.tags,
539
+ }));
540
+ }
541
+ // ── Private resolution logic ──────────────────────────────────
542
+ /** @internal Synchronous resolution (no middleware). */
543
+ doResolve(token) {
544
+ // Check for circular deps
545
+ if (this.resolutionStack.has(token)) {
546
+ const chain = [...this.resolutionStack].map(t => t.name);
547
+ chain.push(token.name);
548
+ throw new types_1.CircularDependencyError(chain);
549
+ }
550
+ // Find entry (local first, then parent)
551
+ const entry = this.findEntry(token);
552
+ if (!entry)
553
+ throw new types_1.ServiceNotFoundError(token.name);
554
+ const { provider, lifecycle } = entry;
555
+ // Singleton / scoped: return cached instance
556
+ if (lifecycle !== 'transient' && entry.resolved && entry.instance !== undefined) {
557
+ return entry.instance;
558
+ }
559
+ // Async guard
560
+ if (isAsyncFactory(provider)) {
561
+ throw new types_1.AsyncProviderError(token.name);
562
+ }
563
+ // Track resolution for circular-dep detection
564
+ this.resolutionStack.add(token);
565
+ try {
566
+ const instance = this.instantiate(provider);
567
+ // Cache for singleton / scoped
568
+ if (lifecycle !== 'transient') {
569
+ entry.instance = instance;
570
+ entry.resolved = true;
571
+ }
572
+ return instance;
573
+ }
574
+ finally {
575
+ this.resolutionStack.delete(token);
576
+ }
577
+ }
578
+ /** @internal Async resolution. */
579
+ async doResolveAsync(token) {
580
+ const entry = this.findEntry(token);
581
+ if (!entry)
582
+ throw new types_1.ServiceNotFoundError(token.name);
583
+ const { provider, lifecycle } = entry;
584
+ // Singleton / scoped: return cached instance
585
+ if (lifecycle !== 'transient' && entry.resolved && entry.instance !== undefined) {
586
+ return entry.instance;
587
+ }
588
+ if (isAsyncFactory(provider)) {
589
+ this.resolutionStack.add(token);
590
+ try {
591
+ const instance = await provider.useAsyncFactory(this);
592
+ if (lifecycle !== 'transient') {
593
+ entry.instance = instance;
594
+ entry.resolved = true;
595
+ }
596
+ return instance;
597
+ }
598
+ finally {
599
+ this.resolutionStack.delete(token);
600
+ }
601
+ }
602
+ // For non-async providers, delegate to sync resolve
603
+ return this.doResolve(token);
604
+ }
605
+ /** @internal Instantiate a sync provider. */
606
+ instantiate(provider) {
607
+ if (isValue(provider))
608
+ return provider.useValue;
609
+ if (isFactory(provider))
610
+ return provider.useFactory(this);
611
+ if (isClass(provider))
612
+ return new provider.useClass(this);
613
+ if (isAlias(provider))
614
+ return this.doResolve(provider.useExisting);
615
+ // Should never reach here
616
+ throw new errors_1.SynapseError(`Unknown provider type`);
617
+ }
618
+ /** @internal Find registry entry (local scope first, then parent). */
619
+ findEntry(token) {
620
+ const local = this.registry.get(token);
621
+ if (local)
622
+ return local;
623
+ // For scoped lifecycle, the parent entry needs a local copy
624
+ const parentEntry = this.parent?.findEntry(token);
625
+ if (!parentEntry)
626
+ return undefined;
627
+ if (parentEntry.lifecycle === 'scoped') {
628
+ // Create a local copy for scoped resolution
629
+ const localCopy = {
630
+ provider: parentEntry.provider,
631
+ lifecycle: 'scoped',
632
+ tags: parentEntry.tags,
633
+ resolved: false,
634
+ };
635
+ this.registry.set(token, localCopy);
636
+ return localCopy;
637
+ }
638
+ return parentEntry;
639
+ }
640
+ /** @internal Get lifecycle for a token (for event emission). */
641
+ getLifecycle(token) {
642
+ const entry = this.findEntry(token);
643
+ return entry?.lifecycle ?? 'singleton';
644
+ }
645
+ /** @internal Apply middleware chain. */
646
+ applyMiddleware(token, resolve) {
647
+ // Combine parent middlewares + own
648
+ const allMw = [...(this.parent?.middlewares ?? []), ...this.middlewares];
649
+ if (allMw.length === 0)
650
+ return resolve();
651
+ // Build the chain: last middleware calls resolve(), each prior calls next
652
+ let current = resolve;
653
+ for (let i = allMw.length - 1; i >= 0; i--) {
654
+ const mw = allMw[i];
655
+ const next = current;
656
+ current = () => mw(token, next);
657
+ }
658
+ return current();
659
+ }
660
+ /** @internal Guard against usage after disposal. */
661
+ assertNotDisposed() {
662
+ if (this.disposed) {
663
+ throw new errors_1.SynapseError('Context has been disposed and can no longer be used', -32103);
664
+ }
665
+ }
666
+ }
667
+ exports.SynapseContext = SynapseContext;
668
+ // ── Re-export error for convenience ────────────────────────────
669
+ const errors_1 = require("../core/errors");
670
+ //# sourceMappingURL=container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../src/context/container.ts"],"names":[],"mappings":"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"}