@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,673 @@
1
+ "use strict";
2
+ /**
3
+ * Memory-safe service references — ref counting, leak detection, WeakRef sharing.
4
+ *
5
+ * ## Why refs?
6
+ *
7
+ * In an SDK, memory management is critical. Raw `resolve()` returns
8
+ * a direct reference with no tracking. `acquireRef()` returns a
9
+ * `ServiceRef<T>` that:
10
+ *
11
+ * 1. **Tracks** how many components hold the service (ref counting)
12
+ * 2. **Invalidates** automatically when the context is disposed
13
+ * 3. **Detects leaks** via `FinalizationRegistry` (if a ref is GC'd without release)
14
+ * 4. **Supports RAII** via `use()` / `useAsync()` / `withRef()`
15
+ *
16
+ * ## Architecture
17
+ *
18
+ * ```
19
+ * ┌──────────────────────────────────────────────────────────┐
20
+ * │ Component A Component B │
21
+ * │ acquireRef(RPC) ──┐ ┌── acquireRef(RPC) │
22
+ * │ ServiceRef #1 │ │ ServiceRef #2 │
23
+ * │ refCount: 2 ▼ ▼ refCount: 2 │
24
+ * │ ┌──────────┐ │
25
+ * │ │ Registry │ ← FinalizationRegistry │
26
+ * │ │ RPC → 2 │ (leak detection) │
27
+ * │ └────┬─────┘ │
28
+ * │ │ │
29
+ * │ ┌────▼─────┐ │
30
+ * │ │ Singleton│ (one instance, N refs) │
31
+ * │ │ RPC svc │ │
32
+ * │ └──────────┘ │
33
+ * │ │
34
+ * │ A.release() → refCount: 1 │ B.release() → refCount: 0 │
35
+ * └──────────────────────────────────────────────────────────┘
36
+ * ```
37
+ *
38
+ * ## Component sharing pattern
39
+ *
40
+ * ```ts
41
+ * // Component A — acquires a tracked reference
42
+ * const rpcRef = ctx.acquireRef(Tokens.RPC);
43
+ * const balance = await rpcRef.current.getBalance(pubkey);
44
+ *
45
+ * // Component B — acquires its own tracked ref to the SAME instance
46
+ * const rpcRef2 = ctx.acquireRef(Tokens.RPC);
47
+ * const slot = await rpcRef2.current.getSlot();
48
+ *
49
+ * // Both hold the SAME singleton — ref count is 2
50
+ * ctx.refCount(Tokens.RPC); // → 2
51
+ *
52
+ * // Component A unmounts
53
+ * rpcRef.release(); // ref count → 1
54
+ *
55
+ * // Component B unmounts
56
+ * rpcRef2.release(); // ref count → 0
57
+ * ```
58
+ *
59
+ * ## RAII pattern (auto-release)
60
+ *
61
+ * ```ts
62
+ * // Sync — ref released in finally block
63
+ * const balance = withRef(ctx, Tokens.RPC, rpc => rpc.getBalance(pubkey));
64
+ *
65
+ * // Async — ref released after await completes
66
+ * const slot = await withRefAsync(ctx, Tokens.RPC, rpc => rpc.getSlot());
67
+ *
68
+ * // On the ref itself
69
+ * const result = ref.use(rpc => rpc.getBalance(pubkey));
70
+ * ```
71
+ *
72
+ * @module context/refs
73
+ * @since 1.2.0
74
+ */
75
+ Object.defineProperty(exports, "__esModule", { value: true });
76
+ exports.MemoryGuard = exports.RefRegistry = exports.WeakServiceRef = exports.ServiceRef = exports.RefReleasedError = void 0;
77
+ exports.createBinding = createBinding;
78
+ const errors_1 = require("../core/errors");
79
+ // ── Errors ─────────────────────────────────────────────────────
80
+ /**
81
+ * Thrown when accessing `.current` on a released or invalidated reference.
82
+ * @since 1.2.0
83
+ */
84
+ class RefReleasedError extends errors_1.SynapseError {
85
+ constructor(tokenName) {
86
+ super(`Service reference for "${tokenName}" has been released. ` +
87
+ 'Acquire a new ref with acquireRef() or check ref.alive before access.', -32104);
88
+ this.name = 'RefReleasedError';
89
+ }
90
+ }
91
+ exports.RefReleasedError = RefReleasedError;
92
+ // ── ServiceRef ─────────────────────────────────────────────────
93
+ /**
94
+ * A tracked, ref-counted reference to a resolved service.
95
+ *
96
+ * Provides memory-safe access: accessing `.current` after `.release()`
97
+ * throws {@link RefReleasedError} instead of returning a stale value.
98
+ *
99
+ * @typeParam T - The service type.
100
+ * @since 1.2.0
101
+ *
102
+ * @example
103
+ * ```ts
104
+ * const rpcRef = ctx.acquireRef(Tokens.RPC);
105
+ *
106
+ * // Use the service
107
+ * const balance = await rpcRef.current.getBalance(pubkey);
108
+ *
109
+ * // Release when done (e.g. on unmount)
110
+ * rpcRef.release();
111
+ *
112
+ * // Accessing after release throws
113
+ * rpcRef.current; // ❌ RefReleasedError
114
+ * ```
115
+ */
116
+ class ServiceRef {
117
+ _value;
118
+ _token;
119
+ _onRelease;
120
+ id;
121
+ _released = false;
122
+ _acquiredAt;
123
+ /**
124
+ * @internal Use `ctx.acquireRef(token)` or `RefRegistry.acquire()` to create refs.
125
+ */
126
+ constructor(_value, _token, _onRelease,
127
+ /** Unique reference ID (monotonically increasing within a registry). */
128
+ id) {
129
+ this._value = _value;
130
+ this._token = _token;
131
+ this._onRelease = _onRelease;
132
+ this.id = id;
133
+ this._acquiredAt = performance.now();
134
+ }
135
+ // ── Accessors ──────────────────────────────────────────────
136
+ /**
137
+ * The resolved service instance.
138
+ *
139
+ * @throws {RefReleasedError} If the ref has been released or invalidated.
140
+ */
141
+ get current() {
142
+ if (this._released) {
143
+ throw new RefReleasedError(this._token.name);
144
+ }
145
+ return this._value;
146
+ }
147
+ /** Whether this reference is still valid (not released). */
148
+ get alive() { return !this._released; }
149
+ /** The token this ref was acquired for. */
150
+ get token() { return this._token; }
151
+ /** `performance.now()` timestamp when this ref was acquired. */
152
+ get acquiredAt() { return this._acquiredAt; }
153
+ /** How long this ref has been alive, in ms. */
154
+ get ageMs() { return performance.now() - this._acquiredAt; }
155
+ // ── Release ────────────────────────────────────────────────
156
+ /**
157
+ * Release this reference, decrementing the ref count.
158
+ *
159
+ * After release:
160
+ * - `.current` throws {@link RefReleasedError}
161
+ * - `.alive` returns `false`
162
+ * - The ref count for this token decreases by 1
163
+ *
164
+ * Safe to call multiple times (idempotent).
165
+ */
166
+ release() {
167
+ if (this._released)
168
+ return;
169
+ this._released = true;
170
+ this._onRelease(this);
171
+ }
172
+ /** Alias for {@link release}. Implements {@link Disposable}. */
173
+ dispose() { this.release(); }
174
+ // ── RAII patterns ──────────────────────────────────────────
175
+ /**
176
+ * Execute a function with this reference, auto-releasing afterward.
177
+ *
178
+ * The ref is released in a `finally` block, guaranteeing cleanup
179
+ * even if the function throws.
180
+ *
181
+ * @param fn - Receives the unwrapped service value.
182
+ * @returns The return value of `fn`.
183
+ *
184
+ * @example
185
+ * ```ts
186
+ * const balance = rpcRef.use(rpc => rpc.getBalance(pubkey));
187
+ * // rpcRef is now released — no leak possible
188
+ * ```
189
+ */
190
+ use(fn) {
191
+ try {
192
+ return fn(this.current);
193
+ }
194
+ finally {
195
+ this.release();
196
+ }
197
+ }
198
+ /**
199
+ * Async version of {@link use}. Awaits the function, then releases.
200
+ *
201
+ * @example
202
+ * ```ts
203
+ * const balance = await rpcRef.useAsync(rpc => rpc.getBalance(pubkey));
204
+ * ```
205
+ */
206
+ async useAsync(fn) {
207
+ try {
208
+ return await fn(this.current);
209
+ }
210
+ finally {
211
+ this.release();
212
+ }
213
+ }
214
+ // ── Sharing ────────────────────────────────────────────────
215
+ /**
216
+ * Create a weak reference that does **not** prevent garbage collection.
217
+ *
218
+ * The returned `WeakServiceRef` can be shared to components that
219
+ * only need the service optionally — if the strong refs are all
220
+ * released and the GC collects the object, `.deref()` returns
221
+ * `undefined` instead of throwing.
222
+ *
223
+ * @throws {SynapseError} If the service value is a primitive (not weakly referenceable).
224
+ *
225
+ * @example
226
+ * ```ts
227
+ * const weakRpc = rpcRef.toWeak();
228
+ * // Later:
229
+ * const rpc = weakRpc.deref();
230
+ * if (rpc) rpc.getBalance(pubkey);
231
+ * ```
232
+ */
233
+ toWeak() {
234
+ if (typeof this._value !== 'object' || this._value === null) {
235
+ throw new errors_1.SynapseError(`Cannot create WeakRef for non-object service "${this._token.name}". ` +
236
+ 'WeakRef requires an object target.', -32105);
237
+ }
238
+ return new WeakServiceRef(this._value);
239
+ }
240
+ }
241
+ exports.ServiceRef = ServiceRef;
242
+ // ── WeakServiceRef ─────────────────────────────────────────────
243
+ /**
244
+ * A non-preventing (weak) reference to a service.
245
+ *
246
+ * Unlike {@link ServiceRef}, this does **not** keep the service alive
247
+ * in memory. The garbage collector can collect the underlying object
248
+ * even while this ref exists. Use `.deref()` to check if the service
249
+ * is still available.
250
+ *
251
+ * @typeParam T - The service type (must be an object).
252
+ * @since 1.2.0
253
+ *
254
+ * @example
255
+ * ```ts
256
+ * const weakRpc = strongRef.toWeak();
257
+ *
258
+ * // In another component — check before use
259
+ * const rpc = weakRpc.deref();
260
+ * if (rpc) {
261
+ * await rpc.getBalance(pubkey);
262
+ * } else {
263
+ * // Service was GC'd — re-acquire if needed
264
+ * }
265
+ * ```
266
+ */
267
+ class WeakServiceRef {
268
+ _ref;
269
+ constructor(value) {
270
+ this._ref = new WeakRef(value);
271
+ }
272
+ /**
273
+ * Dereference the weak ref.
274
+ * @returns The service instance, or `undefined` if it was GC'd.
275
+ */
276
+ deref() {
277
+ return this._ref.deref();
278
+ }
279
+ /** Whether the underlying object is still alive (not yet GC'd). */
280
+ get alive() {
281
+ return this._ref.deref() !== undefined;
282
+ }
283
+ }
284
+ exports.WeakServiceRef = WeakServiceRef;
285
+ // ── RefRegistry ────────────────────────────────────────────────
286
+ /**
287
+ * Centralized registry that tracks all active {@link ServiceRef}s.
288
+ *
289
+ * Provides ref counting, introspection, and leak detection via
290
+ * `FinalizationRegistry`. Each `SynapseContext` owns at most one
291
+ * `RefRegistry` (created lazily on first `acquireRef()`).
292
+ *
293
+ * @since 1.2.0
294
+ */
295
+ class RefRegistry {
296
+ /** @internal Active refs grouped by token. */
297
+ _entries = new Map();
298
+ /** @internal FinalizationRegistry for GC-based leak detection. */
299
+ _leakDetector;
300
+ /** @internal Track which ref IDs are still active (for leak detection). */
301
+ _activeRefIds = new Set();
302
+ /** @internal Monotonically increasing ref ID. */
303
+ _nextId = 1;
304
+ /** @internal Counters. */
305
+ _totalAcquired = 0;
306
+ _totalReleased = 0;
307
+ _peakActive = 0;
308
+ _leakedCount = 0;
309
+ /** @internal Leak handlers. */
310
+ _leakHandlers = [];
311
+ /** @internal Whether the registry has been disposed. */
312
+ _disposed = false;
313
+ constructor(config = {}) {
314
+ const enableLeaks = config.enableLeakDetection !== false;
315
+ if (enableLeaks && typeof FinalizationRegistry !== 'undefined') {
316
+ this._leakDetector = new FinalizationRegistry((held) => {
317
+ // This ref was GC'd without release() being called → leak
318
+ if (this._activeRefIds.has(held.refId)) {
319
+ this._activeRefIds.delete(held.refId);
320
+ this._leakedCount++;
321
+ const report = {
322
+ tokenName: held.tokenName,
323
+ refId: held.refId,
324
+ acquiredAt: held.acquiredAt,
325
+ detectedAt: performance.now(),
326
+ };
327
+ for (const handler of this._leakHandlers) {
328
+ try {
329
+ handler(report);
330
+ }
331
+ catch { /* swallow listener errors */ }
332
+ }
333
+ }
334
+ });
335
+ }
336
+ }
337
+ // ── Acquire & Release ──────────────────────────────────────
338
+ /**
339
+ * Create a tracked ref for a resolved service value.
340
+ *
341
+ * @param token - The service token.
342
+ * @param value - The resolved service instance.
343
+ * @returns A new `ServiceRef<T>` linked to this registry.
344
+ */
345
+ acquire(token, value) {
346
+ if (this._disposed) {
347
+ throw new errors_1.SynapseError('RefRegistry has been disposed', -32106);
348
+ }
349
+ const id = this._nextId++;
350
+ this._totalAcquired++;
351
+ const ref = new ServiceRef(value, token, (r) => this._handleRelease(token, r), id);
352
+ // Track in entries map
353
+ let set = this._entries.get(token);
354
+ if (!set) {
355
+ set = new Set();
356
+ this._entries.set(token, set);
357
+ }
358
+ set.add(ref);
359
+ // Track active ID
360
+ this._activeRefIds.add(id);
361
+ if (this._activeRefIds.size > this._peakActive) {
362
+ this._peakActive = this._activeRefIds.size;
363
+ }
364
+ // Register with leak detector
365
+ if (this._leakDetector) {
366
+ this._leakDetector.register(ref, { tokenName: token.name, refId: id, acquiredAt: ref.acquiredAt }, ref);
367
+ }
368
+ return ref;
369
+ }
370
+ /** @internal Handle a ref being released. */
371
+ _handleRelease(token, ref) {
372
+ this._activeRefIds.delete(ref.id);
373
+ this._totalReleased++;
374
+ const set = this._entries.get(token);
375
+ if (set) {
376
+ set.delete(ref);
377
+ if (set.size === 0)
378
+ this._entries.delete(token);
379
+ }
380
+ // Unregister from leak detector (ref was properly released)
381
+ if (this._leakDetector) {
382
+ this._leakDetector.unregister(ref);
383
+ }
384
+ }
385
+ // ── Ref Counting ───────────────────────────────────────────
386
+ /**
387
+ * Number of active refs for a specific token.
388
+ */
389
+ refCount(token) {
390
+ return this._entries.get(token)?.size ?? 0;
391
+ }
392
+ /**
393
+ * Total number of active (unreleased) refs across all tokens.
394
+ */
395
+ totalActive() {
396
+ return this._activeRefIds.size;
397
+ }
398
+ // ── Stats & Introspection ──────────────────────────────────
399
+ /**
400
+ * Aggregate statistics snapshot.
401
+ */
402
+ get stats() {
403
+ return {
404
+ totalAcquired: this._totalAcquired,
405
+ totalReleased: this._totalReleased,
406
+ active: this._activeRefIds.size,
407
+ peak: this._peakActive,
408
+ leaked: this._leakedCount,
409
+ byToken: this._tokenBreakdown(),
410
+ };
411
+ }
412
+ /** @internal Build per-token breakdown. */
413
+ _tokenBreakdown() {
414
+ const result = {};
415
+ for (const [token, set] of this._entries) {
416
+ if (set.size > 0)
417
+ result[token.name] = set.size;
418
+ }
419
+ return result;
420
+ }
421
+ // ── Leak Detection ─────────────────────────────────────────
422
+ /**
423
+ * Check for potential leaks: refs that have been alive longer
424
+ * than `maxAgeMs` without being released.
425
+ *
426
+ * This is a **heuristic** — long-lived refs (e.g. for the lifetime
427
+ * of the app) are expected. Use this for debugging / dev mode.
428
+ *
429
+ * @param maxAgeMs - Threshold in ms. @default 60_000
430
+ */
431
+ checkLeaks(maxAgeMs = 60_000) {
432
+ const now = performance.now();
433
+ const reports = [];
434
+ for (const [token, set] of this._entries) {
435
+ for (const ref of set) {
436
+ if (ref.ageMs > maxAgeMs) {
437
+ reports.push({
438
+ tokenName: token.name,
439
+ refId: ref.id,
440
+ acquiredAt: ref.acquiredAt,
441
+ detectedAt: now,
442
+ });
443
+ }
444
+ }
445
+ }
446
+ return reports;
447
+ }
448
+ /**
449
+ * Register a handler for GC-detected leaks.
450
+ *
451
+ * Called when a `ServiceRef` is garbage collected without
452
+ * `.release()` having been called first.
453
+ *
454
+ * @param handler - Receives a {@link LeakReport} for each leak.
455
+ */
456
+ onLeak(handler) {
457
+ this._leakHandlers.push(handler);
458
+ }
459
+ // ── Cleanup ────────────────────────────────────────────────
460
+ /**
461
+ * Force-release all active refs.
462
+ *
463
+ * Called automatically when the owning `SynapseContext` is disposed.
464
+ * After this, all refs' `.current` will throw {@link RefReleasedError}.
465
+ */
466
+ invalidateAll() {
467
+ for (const set of this._entries.values()) {
468
+ // Iterate a copy because release() modifies the set
469
+ for (const ref of [...set]) {
470
+ ref.release();
471
+ }
472
+ }
473
+ this._entries.clear();
474
+ this._activeRefIds.clear();
475
+ }
476
+ /** Dispose the registry — invalidates all refs, clears handlers. */
477
+ dispose() {
478
+ if (this._disposed)
479
+ return;
480
+ this._disposed = true;
481
+ this.invalidateAll();
482
+ this._leakHandlers.length = 0;
483
+ }
484
+ /** Whether this registry has been disposed. */
485
+ get isDisposed() { return this._disposed; }
486
+ }
487
+ exports.RefRegistry = RefRegistry;
488
+ // ── MemoryGuard ────────────────────────────────────────────────
489
+ /**
490
+ * Memory safety monitor that wraps a {@link RefRegistry}.
491
+ *
492
+ * Provides configurable thresholds, periodic leak checks, and
493
+ * pressure alerts. Designed for dev-mode diagnostics or production
494
+ * monitoring of SDK memory usage.
495
+ *
496
+ * @since 1.2.0
497
+ *
498
+ * @example
499
+ * ```ts
500
+ * const guard = new MemoryGuard(registry, {
501
+ * maxRefAgeMs: 30_000,
502
+ * maxActiveRefs: 50,
503
+ * checkIntervalMs: 10_000,
504
+ * });
505
+ *
506
+ * guard.onPressure(stats => {
507
+ * console.warn('⚠️ Memory pressure:', stats.active, 'active refs');
508
+ * });
509
+ *
510
+ * guard.onLeak(report => {
511
+ * console.error('🔴 Leaked ref:', report.tokenName, '#' + report.refId);
512
+ * });
513
+ * ```
514
+ */
515
+ class MemoryGuard {
516
+ _registry;
517
+ _timer;
518
+ _pressureHandlers = [];
519
+ _config;
520
+ constructor(_registry, config = {}) {
521
+ this._registry = _registry;
522
+ this._config = {
523
+ maxRefAgeMs: config.maxRefAgeMs ?? 60_000,
524
+ maxActiveRefs: config.maxActiveRefs ?? 100,
525
+ checkIntervalMs: config.checkIntervalMs ?? 0,
526
+ };
527
+ // Forward leak events from registry
528
+ // (no extra wiring needed — users subscribe via guard.onLeak())
529
+ // Periodic check timer
530
+ if (this._config.checkIntervalMs > 0) {
531
+ this._timer = setInterval(() => this._periodicCheck(), this._config.checkIntervalMs);
532
+ // unref() so the timer doesn't prevent process.exit()
533
+ if (typeof this._timer === 'object' && 'unref' in this._timer) {
534
+ this._timer.unref();
535
+ }
536
+ }
537
+ }
538
+ // ── Stats ──────────────────────────────────────────────────
539
+ /** Current ref statistics from the underlying registry. */
540
+ get stats() { return this._registry.stats; }
541
+ /** Whether the active ref count exceeds the threshold. */
542
+ get underPressure() {
543
+ return this._registry.totalActive() >= this._config.maxActiveRefs;
544
+ }
545
+ /** Number of currently active refs. */
546
+ get activeRefs() {
547
+ return this._registry.totalActive();
548
+ }
549
+ // ── Checks ─────────────────────────────────────────────────
550
+ /**
551
+ * Check for potential leaks (refs older than `maxRefAgeMs`).
552
+ */
553
+ checkLeaks() {
554
+ return this._registry.checkLeaks(this._config.maxRefAgeMs);
555
+ }
556
+ // ── Events ─────────────────────────────────────────────────
557
+ /**
558
+ * Subscribe to memory pressure events.
559
+ *
560
+ * Fires when the active ref count exceeds `maxActiveRefs`
561
+ * during a periodic check.
562
+ */
563
+ onPressure(handler) {
564
+ this._pressureHandlers.push(handler);
565
+ }
566
+ /**
567
+ * Subscribe to GC-detected leak events.
568
+ *
569
+ * Delegates to the underlying {@link RefRegistry.onLeak}.
570
+ */
571
+ onLeak(handler) {
572
+ this._registry.onLeak(handler);
573
+ }
574
+ // ── Internal ───────────────────────────────────────────────
575
+ /** @internal Periodic check callback. */
576
+ _periodicCheck() {
577
+ if (this.underPressure) {
578
+ const stats = this.stats;
579
+ for (const handler of this._pressureHandlers) {
580
+ try {
581
+ handler(stats);
582
+ }
583
+ catch { /* swallow */ }
584
+ }
585
+ }
586
+ }
587
+ /** Dispose the guard — stops the timer, clears handlers. */
588
+ dispose() {
589
+ if (this._timer) {
590
+ clearInterval(this._timer);
591
+ this._timer = undefined;
592
+ }
593
+ this._pressureHandlers.length = 0;
594
+ }
595
+ }
596
+ exports.MemoryGuard = MemoryGuard;
597
+ /**
598
+ * Create a binding that acquires tracked refs for multiple tokens.
599
+ *
600
+ * Services are resolved **lazily** on first property access. All refs
601
+ * are released together with a single `.release()` call.
602
+ *
603
+ * @param acquireFn - Function that acquires a ref for a token (usually `ctx.acquireRef.bind(ctx)`).
604
+ * @param tokens - Record mapping property names to service tokens.
605
+ * @returns A {@link ServiceBinding} with lazy services and batch release.
606
+ * @since 1.2.0
607
+ *
608
+ * @example
609
+ * ```ts
610
+ * const binding = createBinding(
611
+ * token => ctx.acquireRef(token),
612
+ * { rpc: Tokens.RPC, das: Tokens.DAS, programs: Tokens.PROGRAMS },
613
+ * );
614
+ *
615
+ * // Use services (each is acquired on first access):
616
+ * await binding.services.rpc.getBalance(pubkey);
617
+ * await binding.services.das.getAsset(assetId);
618
+ *
619
+ * // Release ALL refs at once:
620
+ * binding.release();
621
+ * ```
622
+ */
623
+ function createBinding(acquireFn, tokens) {
624
+ const refs = new Map();
625
+ let released = false;
626
+ const services = new Proxy({}, {
627
+ get(_target, prop) {
628
+ if (typeof prop === 'symbol')
629
+ return undefined;
630
+ if (released) {
631
+ throw new errors_1.SynapseError('ServiceBinding has been released. Cannot access services after release.', -32107);
632
+ }
633
+ // Return cached if already acquired
634
+ const existing = refs.get(prop);
635
+ if (existing)
636
+ return existing.current;
637
+ // Acquire new ref
638
+ const token = tokens[prop];
639
+ if (!token)
640
+ return undefined;
641
+ const ref = acquireFn(token);
642
+ refs.set(prop, ref);
643
+ return ref.current;
644
+ },
645
+ has(_target, prop) {
646
+ return typeof prop === 'string' && prop in tokens;
647
+ },
648
+ ownKeys() {
649
+ return Object.keys(tokens);
650
+ },
651
+ getOwnPropertyDescriptor(_target, prop) {
652
+ if (typeof prop === 'string' && prop in tokens) {
653
+ return { configurable: true, enumerable: true, writable: false };
654
+ }
655
+ return undefined;
656
+ },
657
+ });
658
+ return {
659
+ services,
660
+ refs,
661
+ get alive() { return !released && [...refs.values()].some(r => r.alive); },
662
+ release() {
663
+ if (released)
664
+ return;
665
+ released = true;
666
+ for (const ref of refs.values()) {
667
+ ref.release();
668
+ }
669
+ },
670
+ dispose() { this.release(); },
671
+ };
672
+ }
673
+ //# sourceMappingURL=refs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refs.js","sourceRoot":"","sources":["../../../src/context/refs.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;;;AA0tBH,sCA6DC;AArxBD,2CAA8C;AAG9C,kEAAkE;AAElE;;;GAGG;AACH,MAAa,gBAAiB,SAAQ,qBAAY;IAChD,YAAY,SAAiB;QAC3B,KAAK,CACH,0BAA0B,SAAS,uBAAuB;YAC1D,uEAAuE,EACvE,CAAC,KAAK,CACP,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AATD,4CASC;AA8ED,kEAAkE;AAElE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAa,UAAU;IAQF;IACA;IACA;IAER;IAXH,SAAS,GAAG,KAAK,CAAC;IACT,WAAW,CAAS;IAErC;;OAEG;IACH,YACmB,MAAS,EACT,MAAuB,EACvB,UAAwC;IACzD,wEAAwE;IAC/D,EAAU;QAJF,WAAM,GAAN,MAAM,CAAG;QACT,WAAM,GAAN,MAAM,CAAiB;QACvB,eAAU,GAAV,UAAU,CAA8B;QAEhD,OAAE,GAAF,EAAE,CAAQ;QAEnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACvC,CAAC;IAED,8DAA8D;IAE9D;;;;OAIG;IACH,IAAI,OAAO;QACT,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,4DAA4D;IAC5D,IAAI,KAAK,KAAc,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhD,2CAA2C;IAC3C,IAAI,KAAK,KAAsB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEpD,gEAAgE;IAChE,IAAI,UAAU,KAAa,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAErD,+CAA+C;IAC/C,IAAI,KAAK,KAAa,OAAO,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAEpE,8DAA8D;IAE9D;;;;;;;;;OASG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,gEAAgE;IAChE,OAAO,KAAW,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEnC,8DAA8D;IAE9D;;;;;;;;;;;;;;OAcG;IACH,GAAG,CAAI,EAAqB;QAC1B,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,QAAQ,CAAI,EAA8B;QAC9C,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,8DAA8D;IAE9D;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM;QACJ,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC5D,MAAM,IAAI,qBAAY,CACpB,iDAAiD,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK;gBACtE,oCAAoC,EACpC,CAAC,KAAK,CACP,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,MAAoB,CAAC,CAAC;IACvD,CAAC;CACF;AAvID,gCAuIC;AAED,kEAAkE;AAElE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAa,cAAc;IACR,IAAI,CAAa;IAElC,YAAY,KAAQ;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,mEAAmE;IACnE,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,SAAS,CAAC;IACzC,CAAC;CACF;AAnBD,wCAmBC;AAED,kEAAkE;AAElE;;;;;;;;GAQG;AACH,MAAa,WAAW;IACtB,8CAA8C;IAC7B,QAAQ,GAAG,IAAI,GAAG,EAA0C,CAAC;IAE9E,kEAAkE;IACjD,aAAa,CAI3B;IAEH,2EAA2E;IAC1D,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnD,iDAAiD;IACzC,OAAO,GAAG,CAAC,CAAC;IAEpB,0BAA0B;IAClB,cAAc,GAAG,CAAC,CAAC;IACnB,cAAc,GAAG,CAAC,CAAC;IACnB,WAAW,GAAG,CAAC,CAAC;IAChB,YAAY,GAAG,CAAC,CAAC;IAEzB,+BAA+B;IACd,aAAa,GAAwC,EAAE,CAAC;IAEzE,wDAAwD;IAChD,SAAS,GAAG,KAAK,CAAC;IAE1B,YAAY,SAA4B,EAAE;QACxC,MAAM,WAAW,GAAG,MAAM,CAAC,mBAAmB,KAAK,KAAK,CAAC;QAEzD,IAAI,WAAW,IAAI,OAAO,oBAAoB,KAAK,WAAW,EAAE,CAAC;YAC/D,IAAI,CAAC,aAAa,GAAG,IAAI,oBAAoB,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrD,0DAA0D;gBAC1D,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACvC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,CAAC,YAAY,EAAE,CAAC;oBAEpB,MAAM,MAAM,GAAe;wBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,UAAU,EAAE,WAAW,CAAC,GAAG,EAAE;qBAC9B,CAAC;oBAEF,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;wBACzC,IAAI,CAAC;4BAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBAAC,CAAC;wBAAC,MAAM,CAAC,CAAC,6BAA6B,CAAC,CAAC;oBAClE,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,8DAA8D;IAE9D;;;;;;OAMG;IACH,OAAO,CAAI,KAAsB,EAAE,KAAQ;QACzC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,qBAAY,CAAC,+BAA+B,EAAE,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,MAAM,GAAG,GAAG,IAAI,UAAU,CACxB,KAAK,EACL,KAAK,EACL,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAwB,CAAC,EAC3D,EAAE,CACH,CAAC;QAEF,uBAAuB;QACvB,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,EAAE,CAAC;YAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAAC,CAAC;QAC7D,GAAG,CAAC,GAAG,CAAC,GAA0B,CAAC,CAAC;QAEpC,kBAAkB;QAClB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAC7C,CAAC;QAED,8BAA8B;QAC9B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,QAAQ,CACzB,GAAG,EACH,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAChE,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,6CAA6C;IACrC,cAAc,CAAC,KAAmB,EAAE,GAAwB;QAClE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChB,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;QAED,4DAA4D;QAC5D,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,8DAA8D;IAE9D;;OAEG;IACH,QAAQ,CAAC,KAAmB;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,8DAA8D;IAE9D;;OAEG;IACH,IAAI,KAAK;QACP,OAAO;YACL,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;YAC/B,IAAI,EAAE,IAAI,CAAC,WAAW;YACtB,MAAM,EAAE,IAAI,CAAC,YAAY;YACzB,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE;SAChC,CAAC;IACJ,CAAC;IAED,2CAA2C;IACnC,eAAe;QACrB,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC;gBAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;QAClD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,8DAA8D;IAE9D;;;;;;;;OAQG;IACH,UAAU,CAAC,WAAmB,MAAM;QAClC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;gBACtB,IAAI,GAAG,CAAC,KAAK,GAAG,QAAQ,EAAE,CAAC;oBACzB,OAAO,CAAC,IAAI,CAAC;wBACX,SAAS,EAAE,KAAK,CAAC,IAAI;wBACrB,KAAK,EAAE,GAAG,CAAC,EAAE;wBACb,UAAU,EAAE,GAAG,CAAC,UAAU;wBAC1B,UAAU,EAAE,GAAG;qBAChB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,OAAqC;QAC1C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,8DAA8D;IAE9D;;;;;OAKG;IACH,aAAa;QACX,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,oDAAoD;YACpD,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC3B,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,oEAAoE;IACpE,OAAO;QACL,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,+CAA+C;IAC/C,IAAI,UAAU,KAAc,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;CACrD;AAvOD,kCAuOC;AAED,kEAAkE;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAa,WAAW;IAMH;IALX,MAAM,CAAkC;IAC/B,iBAAiB,GAAqC,EAAE,CAAC;IACzD,OAAO,CAA8B;IAEtD,YACmB,SAAsB,EACvC,SAA4B,EAAE;QADb,cAAS,GAAT,SAAS,CAAa;QAGvC,IAAI,CAAC,OAAO,GAAG;YACb,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM;YACzC,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,GAAG;YAC1C,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,CAAC;SAC7C,CAAC;QAEF,oCAAoC;QACpC,gEAAgE;QAEhE,uBAAuB;QACvB,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,GAAG,WAAW,CACvB,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,EAC3B,IAAI,CAAC,OAAO,CAAC,eAAe,CAC7B,CAAC;YACF,sDAAsD;YACtD,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC7D,IAAI,CAAC,MAAyB,CAAC,KAAK,EAAE,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAED,8DAA8D;IAE9D,2DAA2D;IAC3D,IAAI,KAAK,KAAe,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAEtD,0DAA0D;IAC1D,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;IACpE,CAAC;IAED,uCAAuC;IACvC,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IAED,8DAA8D;IAE9D;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7D,CAAC;IAED,8DAA8D;IAE9D;;;;;OAKG;IACH,UAAU,CAAC,OAAkC;QAC3C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAqC;QAC1C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,8DAA8D;IAE9D,yCAAyC;IACjC,cAAc;QACpB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC7C,IAAI,CAAC;oBAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,OAAO;QACL,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,CAAC;CACF;AAhGD,kCAgGC;AA6BD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,aAAa,CAC3B,SAAuD,EACvD,MAAS;IAET,MAAM,IAAI,GAAG,IAAI,GAAG,EAA+B,CAAC;IACpD,IAAI,QAAQ,GAAG,KAAK,CAAC;IAIrB,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,EAAc,EAAE;QACzC,GAAG,CAAC,OAAO,EAAE,IAAqB;YAChC,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAC;YAC/C,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,qBAAY,CACpB,yEAAyE,EACzE,CAAC,KAAK,CACP,CAAC;YACJ,CAAC;YAED,oCAAoC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC,OAAO,CAAC;YAEtC,kBAAkB;YAClB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK;gBAAE,OAAO,SAAS,CAAC;YAE7B,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAA0B,CAAC,CAAC;YAC3C,OAAO,GAAG,CAAC,OAAO,CAAC;QACrB,CAAC;QAED,GAAG,CAAC,OAAO,EAAE,IAAqB;YAChC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,MAAM,CAAC;QACpD,CAAC;QAED,OAAO;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;QAED,wBAAwB,CAAC,OAAO,EAAE,IAAI;YACpC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;gBAC/C,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YACnE,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ;QACR,IAAI;QACJ,IAAI,KAAK,KAAK,OAAO,CAAC,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1E,OAAO;YACL,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;gBAChC,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QACD,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;KAC9B,CAAC;AACJ,CAAC"}