@oobe-protocol-labs/synapse-sap-sdk 0.1.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 (315) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +882 -0
  3. package/dist/cjs/constants/index.js +43 -0
  4. package/dist/cjs/constants/index.js.map +1 -0
  5. package/dist/cjs/constants/limits.js +161 -0
  6. package/dist/cjs/constants/limits.js.map +1 -0
  7. package/dist/cjs/constants/programs.js +78 -0
  8. package/dist/cjs/constants/programs.js.map +1 -0
  9. package/dist/cjs/constants/seeds.js +57 -0
  10. package/dist/cjs/constants/seeds.js.map +1 -0
  11. package/dist/cjs/core/client.js +391 -0
  12. package/dist/cjs/core/client.js.map +1 -0
  13. package/dist/cjs/core/connection.js +319 -0
  14. package/dist/cjs/core/connection.js.map +1 -0
  15. package/dist/cjs/core/index.js +24 -0
  16. package/dist/cjs/core/index.js.map +1 -0
  17. package/dist/cjs/errors/index.js +334 -0
  18. package/dist/cjs/errors/index.js.map +1 -0
  19. package/dist/cjs/events/index.js +136 -0
  20. package/dist/cjs/events/index.js.map +1 -0
  21. package/dist/cjs/idl/index.js +63 -0
  22. package/dist/cjs/idl/index.js.map +1 -0
  23. package/dist/cjs/idl/synapse_agent_sap.json +9710 -0
  24. package/dist/cjs/index.js +147 -0
  25. package/dist/cjs/index.js.map +1 -0
  26. package/dist/cjs/modules/agent.js +272 -0
  27. package/dist/cjs/modules/agent.js.map +1 -0
  28. package/dist/cjs/modules/attestation.js +147 -0
  29. package/dist/cjs/modules/attestation.js.map +1 -0
  30. package/dist/cjs/modules/base.js +128 -0
  31. package/dist/cjs/modules/base.js.map +1 -0
  32. package/dist/cjs/modules/escrow.js +246 -0
  33. package/dist/cjs/modules/escrow.js.map +1 -0
  34. package/dist/cjs/modules/feedback.js +166 -0
  35. package/dist/cjs/modules/feedback.js.map +1 -0
  36. package/dist/cjs/modules/index.js +35 -0
  37. package/dist/cjs/modules/index.js.map +1 -0
  38. package/dist/cjs/modules/indexing.js +375 -0
  39. package/dist/cjs/modules/indexing.js.map +1 -0
  40. package/dist/cjs/modules/ledger.js +234 -0
  41. package/dist/cjs/modules/ledger.js.map +1 -0
  42. package/dist/cjs/modules/tools.js +319 -0
  43. package/dist/cjs/modules/tools.js.map +1 -0
  44. package/dist/cjs/modules/vault.js +410 -0
  45. package/dist/cjs/modules/vault.js.map +1 -0
  46. package/dist/cjs/pda/index.js +377 -0
  47. package/dist/cjs/pda/index.js.map +1 -0
  48. package/dist/cjs/plugin/index.js +934 -0
  49. package/dist/cjs/plugin/index.js.map +1 -0
  50. package/dist/cjs/plugin/protocols.js +282 -0
  51. package/dist/cjs/plugin/protocols.js.map +1 -0
  52. package/dist/cjs/plugin/schemas.js +831 -0
  53. package/dist/cjs/plugin/schemas.js.map +1 -0
  54. package/dist/cjs/postgres/adapter.js +715 -0
  55. package/dist/cjs/postgres/adapter.js.map +1 -0
  56. package/dist/cjs/postgres/index.js +50 -0
  57. package/dist/cjs/postgres/index.js.map +1 -0
  58. package/dist/cjs/postgres/serializers.js +381 -0
  59. package/dist/cjs/postgres/serializers.js.map +1 -0
  60. package/dist/cjs/postgres/sync.js +221 -0
  61. package/dist/cjs/postgres/sync.js.map +1 -0
  62. package/dist/cjs/postgres/types.js +44 -0
  63. package/dist/cjs/postgres/types.js.map +1 -0
  64. package/dist/cjs/registries/builder.js +414 -0
  65. package/dist/cjs/registries/builder.js.map +1 -0
  66. package/dist/cjs/registries/discovery.js +362 -0
  67. package/dist/cjs/registries/discovery.js.map +1 -0
  68. package/dist/cjs/registries/index.js +51 -0
  69. package/dist/cjs/registries/index.js.map +1 -0
  70. package/dist/cjs/registries/session.js +433 -0
  71. package/dist/cjs/registries/session.js.map +1 -0
  72. package/dist/cjs/registries/x402.js +577 -0
  73. package/dist/cjs/registries/x402.js.map +1 -0
  74. package/dist/cjs/types/accounts.js +13 -0
  75. package/dist/cjs/types/accounts.js.map +1 -0
  76. package/dist/cjs/types/common.js +13 -0
  77. package/dist/cjs/types/common.js.map +1 -0
  78. package/dist/cjs/types/enums.js +174 -0
  79. package/dist/cjs/types/enums.js.map +1 -0
  80. package/dist/cjs/types/index.js +36 -0
  81. package/dist/cjs/types/index.js.map +1 -0
  82. package/dist/cjs/types/instructions.js +92 -0
  83. package/dist/cjs/types/instructions.js.map +1 -0
  84. package/dist/cjs/utils/hash.js +58 -0
  85. package/dist/cjs/utils/hash.js.map +1 -0
  86. package/dist/cjs/utils/index.js +27 -0
  87. package/dist/cjs/utils/index.js.map +1 -0
  88. package/dist/cjs/utils/serialization.js +105 -0
  89. package/dist/cjs/utils/serialization.js.map +1 -0
  90. package/dist/cjs/utils/validation.js +36 -0
  91. package/dist/cjs/utils/validation.js.map +1 -0
  92. package/dist/esm/constants/index.js +29 -0
  93. package/dist/esm/constants/index.js.map +1 -0
  94. package/dist/esm/constants/limits.js +158 -0
  95. package/dist/esm/constants/limits.js.map +1 -0
  96. package/dist/esm/constants/programs.js +75 -0
  97. package/dist/esm/constants/programs.js.map +1 -0
  98. package/dist/esm/constants/seeds.js +54 -0
  99. package/dist/esm/constants/seeds.js.map +1 -0
  100. package/dist/esm/core/client.js +384 -0
  101. package/dist/esm/core/client.js.map +1 -0
  102. package/dist/esm/core/connection.js +315 -0
  103. package/dist/esm/core/connection.js.map +1 -0
  104. package/dist/esm/core/index.js +19 -0
  105. package/dist/esm/core/index.js.map +1 -0
  106. package/dist/esm/errors/index.js +325 -0
  107. package/dist/esm/errors/index.js.map +1 -0
  108. package/dist/esm/events/index.js +132 -0
  109. package/dist/esm/events/index.js.map +1 -0
  110. package/dist/esm/idl/index.js +57 -0
  111. package/dist/esm/idl/index.js.map +1 -0
  112. package/dist/esm/idl/synapse_agent_sap.json +9710 -0
  113. package/dist/esm/index.js +70 -0
  114. package/dist/esm/index.js.map +1 -0
  115. package/dist/esm/modules/agent.js +268 -0
  116. package/dist/esm/modules/agent.js.map +1 -0
  117. package/dist/esm/modules/attestation.js +143 -0
  118. package/dist/esm/modules/attestation.js.map +1 -0
  119. package/dist/esm/modules/base.js +124 -0
  120. package/dist/esm/modules/base.js.map +1 -0
  121. package/dist/esm/modules/escrow.js +242 -0
  122. package/dist/esm/modules/escrow.js.map +1 -0
  123. package/dist/esm/modules/feedback.js +162 -0
  124. package/dist/esm/modules/feedback.js.map +1 -0
  125. package/dist/esm/modules/index.js +23 -0
  126. package/dist/esm/modules/index.js.map +1 -0
  127. package/dist/esm/modules/indexing.js +371 -0
  128. package/dist/esm/modules/indexing.js.map +1 -0
  129. package/dist/esm/modules/ledger.js +230 -0
  130. package/dist/esm/modules/ledger.js.map +1 -0
  131. package/dist/esm/modules/tools.js +315 -0
  132. package/dist/esm/modules/tools.js.map +1 -0
  133. package/dist/esm/modules/vault.js +406 -0
  134. package/dist/esm/modules/vault.js.map +1 -0
  135. package/dist/esm/pda/index.js +357 -0
  136. package/dist/esm/pda/index.js.map +1 -0
  137. package/dist/esm/plugin/index.js +927 -0
  138. package/dist/esm/plugin/index.js.map +1 -0
  139. package/dist/esm/plugin/protocols.js +279 -0
  140. package/dist/esm/plugin/protocols.js.map +1 -0
  141. package/dist/esm/plugin/schemas.js +828 -0
  142. package/dist/esm/plugin/schemas.js.map +1 -0
  143. package/dist/esm/postgres/adapter.js +678 -0
  144. package/dist/esm/postgres/adapter.js.map +1 -0
  145. package/dist/esm/postgres/index.js +27 -0
  146. package/dist/esm/postgres/index.js.map +1 -0
  147. package/dist/esm/postgres/serializers.js +362 -0
  148. package/dist/esm/postgres/serializers.js.map +1 -0
  149. package/dist/esm/postgres/sync.js +217 -0
  150. package/dist/esm/postgres/sync.js.map +1 -0
  151. package/dist/esm/postgres/types.js +41 -0
  152. package/dist/esm/postgres/types.js.map +1 -0
  153. package/dist/esm/registries/builder.js +410 -0
  154. package/dist/esm/registries/builder.js.map +1 -0
  155. package/dist/esm/registries/discovery.js +358 -0
  156. package/dist/esm/registries/discovery.js.map +1 -0
  157. package/dist/esm/registries/index.js +44 -0
  158. package/dist/esm/registries/index.js.map +1 -0
  159. package/dist/esm/registries/session.js +429 -0
  160. package/dist/esm/registries/session.js.map +1 -0
  161. package/dist/esm/registries/x402.js +573 -0
  162. package/dist/esm/registries/x402.js.map +1 -0
  163. package/dist/esm/types/accounts.js +12 -0
  164. package/dist/esm/types/accounts.js.map +1 -0
  165. package/dist/esm/types/common.js +12 -0
  166. package/dist/esm/types/common.js.map +1 -0
  167. package/dist/esm/types/enums.js +171 -0
  168. package/dist/esm/types/enums.js.map +1 -0
  169. package/dist/esm/types/index.js +25 -0
  170. package/dist/esm/types/index.js.map +1 -0
  171. package/dist/esm/types/instructions.js +89 -0
  172. package/dist/esm/types/instructions.js.map +1 -0
  173. package/dist/esm/utils/hash.js +53 -0
  174. package/dist/esm/utils/hash.js.map +1 -0
  175. package/dist/esm/utils/index.js +19 -0
  176. package/dist/esm/utils/index.js.map +1 -0
  177. package/dist/esm/utils/serialization.js +98 -0
  178. package/dist/esm/utils/serialization.js.map +1 -0
  179. package/dist/esm/utils/validation.js +33 -0
  180. package/dist/esm/utils/validation.js.map +1 -0
  181. package/dist/types/constants/index.d.ts +27 -0
  182. package/dist/types/constants/index.d.ts.map +1 -0
  183. package/dist/types/constants/limits.d.ts +149 -0
  184. package/dist/types/constants/limits.d.ts.map +1 -0
  185. package/dist/types/constants/programs.d.ts +69 -0
  186. package/dist/types/constants/programs.d.ts.map +1 -0
  187. package/dist/types/constants/seeds.d.ts +61 -0
  188. package/dist/types/constants/seeds.d.ts.map +1 -0
  189. package/dist/types/core/client.d.ts +323 -0
  190. package/dist/types/core/client.d.ts.map +1 -0
  191. package/dist/types/core/connection.d.ts +279 -0
  192. package/dist/types/core/connection.d.ts.map +1 -0
  193. package/dist/types/core/index.d.ts +20 -0
  194. package/dist/types/core/index.d.ts.map +1 -0
  195. package/dist/types/errors/index.d.ts +276 -0
  196. package/dist/types/errors/index.d.ts.map +1 -0
  197. package/dist/types/events/index.d.ts +248 -0
  198. package/dist/types/events/index.d.ts.map +1 -0
  199. package/dist/types/idl/index.d.ts +70 -0
  200. package/dist/types/idl/index.d.ts.map +1 -0
  201. package/dist/types/index.d.ts +68 -0
  202. package/dist/types/index.d.ts.map +1 -0
  203. package/dist/types/modules/agent.d.ts +166 -0
  204. package/dist/types/modules/agent.d.ts.map +1 -0
  205. package/dist/types/modules/attestation.d.ts +96 -0
  206. package/dist/types/modules/attestation.d.ts.map +1 -0
  207. package/dist/types/modules/base.d.ts +126 -0
  208. package/dist/types/modules/base.d.ts.map +1 -0
  209. package/dist/types/modules/escrow.d.ts +151 -0
  210. package/dist/types/modules/escrow.d.ts.map +1 -0
  211. package/dist/types/modules/feedback.d.ts +105 -0
  212. package/dist/types/modules/feedback.d.ts.map +1 -0
  213. package/dist/types/modules/index.d.ts +24 -0
  214. package/dist/types/modules/index.d.ts.map +1 -0
  215. package/dist/types/modules/indexing.d.ts +200 -0
  216. package/dist/types/modules/indexing.d.ts.map +1 -0
  217. package/dist/types/modules/ledger.d.ts +150 -0
  218. package/dist/types/modules/ledger.d.ts.map +1 -0
  219. package/dist/types/modules/tools.d.ts +182 -0
  220. package/dist/types/modules/tools.d.ts.map +1 -0
  221. package/dist/types/modules/vault.d.ts +240 -0
  222. package/dist/types/modules/vault.d.ts.map +1 -0
  223. package/dist/types/pda/index.d.ts +296 -0
  224. package/dist/types/pda/index.d.ts.map +1 -0
  225. package/dist/types/plugin/index.d.ts +171 -0
  226. package/dist/types/plugin/index.d.ts.map +1 -0
  227. package/dist/types/plugin/protocols.d.ts +152 -0
  228. package/dist/types/plugin/protocols.d.ts.map +1 -0
  229. package/dist/types/plugin/schemas.d.ts +823 -0
  230. package/dist/types/plugin/schemas.d.ts.map +1 -0
  231. package/dist/types/postgres/adapter.d.ts +355 -0
  232. package/dist/types/postgres/adapter.d.ts.map +1 -0
  233. package/dist/types/postgres/index.d.ts +24 -0
  234. package/dist/types/postgres/index.d.ts.map +1 -0
  235. package/dist/types/postgres/serializers.d.ts +30 -0
  236. package/dist/types/postgres/serializers.d.ts.map +1 -0
  237. package/dist/types/postgres/sync.d.ts +132 -0
  238. package/dist/types/postgres/sync.d.ts.map +1 -0
  239. package/dist/types/postgres/types.d.ts +167 -0
  240. package/dist/types/postgres/types.d.ts.map +1 -0
  241. package/dist/types/registries/builder.d.ts +340 -0
  242. package/dist/types/registries/builder.d.ts.map +1 -0
  243. package/dist/types/registries/discovery.d.ts +333 -0
  244. package/dist/types/registries/discovery.d.ts.map +1 -0
  245. package/dist/types/registries/index.d.ts +48 -0
  246. package/dist/types/registries/index.d.ts.map +1 -0
  247. package/dist/types/registries/session.d.ts +323 -0
  248. package/dist/types/registries/session.d.ts.map +1 -0
  249. package/dist/types/registries/x402.d.ts +463 -0
  250. package/dist/types/registries/x402.d.ts.map +1 -0
  251. package/dist/types/types/accounts.d.ts +565 -0
  252. package/dist/types/types/accounts.d.ts.map +1 -0
  253. package/dist/types/types/common.d.ts +166 -0
  254. package/dist/types/types/common.d.ts.map +1 -0
  255. package/dist/types/types/enums.d.ts +238 -0
  256. package/dist/types/types/enums.d.ts.map +1 -0
  257. package/dist/types/types/index.d.ts +28 -0
  258. package/dist/types/types/index.d.ts.map +1 -0
  259. package/dist/types/types/instructions.d.ts +366 -0
  260. package/dist/types/types/instructions.d.ts.map +1 -0
  261. package/dist/types/utils/hash.d.ts +48 -0
  262. package/dist/types/utils/hash.d.ts.map +1 -0
  263. package/dist/types/utils/index.d.ts +19 -0
  264. package/dist/types/utils/index.d.ts.map +1 -0
  265. package/dist/types/utils/serialization.d.ts +69 -0
  266. package/dist/types/utils/serialization.d.ts.map +1 -0
  267. package/dist/types/utils/validation.d.ts +29 -0
  268. package/dist/types/utils/validation.d.ts.map +1 -0
  269. package/package.json +178 -0
  270. package/src/constants/index.ts +44 -0
  271. package/src/constants/limits.ts +165 -0
  272. package/src/constants/programs.ts +83 -0
  273. package/src/constants/seeds.ts +66 -0
  274. package/src/core/client.ts +416 -0
  275. package/src/core/connection.ts +409 -0
  276. package/src/core/index.ts +20 -0
  277. package/src/errors/index.ts +346 -0
  278. package/src/events/index.ts +335 -0
  279. package/src/idl/index.ts +76 -0
  280. package/src/idl/synapse_agent_sap.json +9710 -0
  281. package/src/index.ts +253 -0
  282. package/src/modules/agent.ts +319 -0
  283. package/src/modules/attestation.ts +168 -0
  284. package/src/modules/base.ts +158 -0
  285. package/src/modules/escrow.ts +308 -0
  286. package/src/modules/feedback.ts +186 -0
  287. package/src/modules/index.ts +24 -0
  288. package/src/modules/indexing.ts +444 -0
  289. package/src/modules/ledger.ts +262 -0
  290. package/src/modules/tools.ts +411 -0
  291. package/src/modules/vault.ts +533 -0
  292. package/src/pda/index.ts +512 -0
  293. package/src/plugin/index.ts +1202 -0
  294. package/src/plugin/protocols.ts +404 -0
  295. package/src/plugin/schemas.ts +909 -0
  296. package/src/postgres/adapter.ts +904 -0
  297. package/src/postgres/index.ts +59 -0
  298. package/src/postgres/schema.sql +683 -0
  299. package/src/postgres/serializers.ts +485 -0
  300. package/src/postgres/sync.ts +254 -0
  301. package/src/postgres/types.ts +245 -0
  302. package/src/registries/builder.ts +607 -0
  303. package/src/registries/discovery.ts +572 -0
  304. package/src/registries/index.ts +77 -0
  305. package/src/registries/session.ts +613 -0
  306. package/src/registries/x402.ts +906 -0
  307. package/src/types/accounts.ts +618 -0
  308. package/src/types/common.ts +187 -0
  309. package/src/types/enums.ts +214 -0
  310. package/src/types/index.ts +92 -0
  311. package/src/types/instructions.ts +413 -0
  312. package/src/utils/hash.ts +57 -0
  313. package/src/utils/index.ts +19 -0
  314. package/src/utils/serialization.ts +98 -0
  315. package/src/utils/validation.ts +36 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/plugin/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA4ExB;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiHf,CAAC;AAMX;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDlB,CAAC;AAMX;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CrB,CAAC;AAMX;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8EhB,CAAC;AAMX;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Hf,CAAC;AAMX;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoIf,CAAC;AAMX;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsElB,CAAC;AAMX;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFhB,CAAC"}
@@ -0,0 +1,355 @@
1
+ /**
2
+ * @module postgres/adapter
3
+ * @description PostgreSQL adapter for SAP v2 — syncs on-chain accounts
4
+ * to a relational database for off-chain querying and analytics.
5
+ *
6
+ * The adapter uses `pg` (node-postgres) as the database driver.
7
+ * It is database-driver agnostic at the interface level — you can
8
+ * substitute any client that implements the `PgClient` interface.
9
+ *
10
+ * @category Postgres
11
+ * @since v0.1.0
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import { SapPostgres } from "@synapse-sap/sdk/postgres";
16
+ * import { Pool } from "pg";
17
+ *
18
+ * const pool = new Pool({ connectionString: "postgresql://..." });
19
+ * const pg = new SapPostgres(pool, sapClient);
20
+ *
21
+ * // Run schema migration
22
+ * await pg.migrate();
23
+ *
24
+ * // Sync all agents to PostgreSQL
25
+ * await pg.syncAgents();
26
+ *
27
+ * // Full sync (all account types)
28
+ * await pg.syncAll();
29
+ *
30
+ * // Query off-chain
31
+ * const agents = await pg.query("SELECT * FROM sap_agents WHERE is_active = true");
32
+ * ```
33
+ */
34
+ import type { SapClient } from "../core/client";
35
+ import type { SyncOptions, SyncCursorRow, SapAccountType } from "./types";
36
+ /**
37
+ * @interface PgClient
38
+ * @description Minimal PostgreSQL client interface.
39
+ * Compatible with `pg.Pool`, `pg.Client`, or any wrapper
40
+ * that provides `query()`.
41
+ * @category Postgres
42
+ * @since v0.1.0
43
+ */
44
+ export interface PgClient {
45
+ query(text: string, values?: unknown[]): Promise<{
46
+ rows: unknown[];
47
+ rowCount: number;
48
+ }>;
49
+ }
50
+ /**
51
+ * @name SapPostgres
52
+ * @description PostgreSQL off-chain mirror for SAP v2 on-chain data.
53
+ *
54
+ * Connects to a PostgreSQL database and synchronizes all 22 on-chain
55
+ * account types into relational tables. Supports incremental sync,
56
+ * event logging, and cursor-based pagination.
57
+ *
58
+ * @category Postgres
59
+ * @since v0.1.0
60
+ *
61
+ * @example
62
+ * ```ts
63
+ * import { SapPostgres } from "@synapse-sap/sdk/postgres";
64
+ * import { Pool } from "pg";
65
+ * import { SapClient } from "@synapse-sap/sdk";
66
+ *
67
+ * const pool = new Pool({ connectionString: process.env.DATABASE_URL });
68
+ * const sap = SapClient.from(provider);
69
+ * const pg = new SapPostgres(pool, sap);
70
+ *
71
+ * await pg.migrate(); // Create tables
72
+ * await pg.syncAll(); // Mirror on-chain state
73
+ *
74
+ * // Read from PostgreSQL
75
+ * const { rows } = await pg.query(
76
+ * "SELECT * FROM sap_agents WHERE is_active = true ORDER BY reputation_score DESC"
77
+ * );
78
+ * ```
79
+ */
80
+ export declare class SapPostgres {
81
+ private readonly db;
82
+ private readonly client;
83
+ private readonly debug;
84
+ constructor(db: PgClient, client: SapClient, debug?: boolean);
85
+ /**
86
+ * @name migrate
87
+ * @description Run the SQL schema migration to create all SAP tables,
88
+ * indexes, views, and enum types. Safe to call multiple times
89
+ * (uses `CREATE IF NOT EXISTS`).
90
+ * @returns {Promise<void>}
91
+ * @since v0.1.0
92
+ */
93
+ migrate(): Promise<void>;
94
+ /**
95
+ * @name migrateWithSQL
96
+ * @description Run migration with a custom SQL string.
97
+ * Useful when the schema.sql file is bundled differently.
98
+ * @param sql - The full SQL schema to execute.
99
+ * @since v0.1.0
100
+ */
101
+ migrateWithSQL(sql: string): Promise<void>;
102
+ /**
103
+ * @name query
104
+ * @description Execute a raw SQL query against the database.
105
+ * @param text - SQL query string.
106
+ * @param values - Parameterized values.
107
+ * @returns Query result with rows and rowCount.
108
+ * @since v0.1.0
109
+ */
110
+ query<T = unknown>(text: string, values?: unknown[]): Promise<{
111
+ rows: T[];
112
+ rowCount: number;
113
+ }>;
114
+ /**
115
+ * @name upsert
116
+ * @description Insert or update a row in the specified table.
117
+ * Uses `ON CONFLICT (pda) DO UPDATE` for idempotent writes.
118
+ * @param table - Target table name.
119
+ * @param row - Key-value record to insert.
120
+ * @since v0.1.0
121
+ */
122
+ upsert(table: string, row: Record<string, unknown>): Promise<void>;
123
+ /**
124
+ * @name upsertBatch
125
+ * @description Upsert multiple rows in a single transaction.
126
+ * @param table - Target table name.
127
+ * @param rows - Array of key-value records.
128
+ * @since v0.1.0
129
+ */
130
+ upsertBatch(table: string, rows: Record<string, unknown>[]): Promise<void>;
131
+ /**
132
+ * @name getCursor
133
+ * @description Get the sync cursor for a given account type.
134
+ * @param accountType - The account type to check.
135
+ * @since v0.1.0
136
+ */
137
+ getCursor(accountType: SapAccountType): Promise<SyncCursorRow | null>;
138
+ /**
139
+ * @name updateCursor
140
+ * @description Update the sync cursor after a successful sync.
141
+ * @param accountType - The account type synced.
142
+ * @param slot - The last synced slot.
143
+ * @param signature - Optional last TX signature.
144
+ * @since v0.1.0
145
+ */
146
+ updateCursor(accountType: SapAccountType | string, slot: number, signature?: string): Promise<void>;
147
+ /**
148
+ * @name syncGlobal
149
+ * @description Sync the GlobalRegistry singleton to PostgreSQL.
150
+ * @since v0.1.0
151
+ */
152
+ syncGlobal(): Promise<void>;
153
+ /**
154
+ * @name syncAgents
155
+ * @description Sync all AgentAccount PDAs to PostgreSQL.
156
+ * @since v0.1.0
157
+ */
158
+ syncAgents(): Promise<number>;
159
+ /**
160
+ * @name syncAgentStats
161
+ * @description Sync all AgentStats PDAs to PostgreSQL.
162
+ * @since v0.1.0
163
+ */
164
+ syncAgentStats(): Promise<number>;
165
+ /**
166
+ * @name syncFeedbacks
167
+ * @description Sync all FeedbackAccount PDAs to PostgreSQL.
168
+ * @since v0.1.0
169
+ */
170
+ syncFeedbacks(): Promise<number>;
171
+ /**
172
+ * @name syncTools
173
+ * @description Sync all ToolDescriptor PDAs to PostgreSQL.
174
+ * @since v0.1.0
175
+ */
176
+ syncTools(): Promise<number>;
177
+ /**
178
+ * @name syncEscrows
179
+ * @description Sync all EscrowAccount PDAs to PostgreSQL.
180
+ * @since v0.1.0
181
+ */
182
+ syncEscrows(): Promise<number>;
183
+ /**
184
+ * @name syncAttestations
185
+ * @description Sync all AgentAttestation PDAs to PostgreSQL.
186
+ * @since v0.1.0
187
+ */
188
+ syncAttestations(): Promise<number>;
189
+ /**
190
+ * @name syncVaults
191
+ * @description Sync all MemoryVault PDAs to PostgreSQL.
192
+ * @since v0.1.0
193
+ */
194
+ syncVaults(): Promise<number>;
195
+ /**
196
+ * @name syncSessions
197
+ * @description Sync all SessionLedger PDAs to PostgreSQL.
198
+ * @since v0.1.0
199
+ */
200
+ syncSessions(): Promise<number>;
201
+ /**
202
+ * @name syncLedgers
203
+ * @description Sync all MemoryLedger PDAs to PostgreSQL.
204
+ * @since v0.1.0
205
+ */
206
+ syncLedgers(): Promise<number>;
207
+ /**
208
+ * @name syncLedgerPages
209
+ * @description Sync all LedgerPage PDAs to PostgreSQL.
210
+ * @since v0.1.0
211
+ */
212
+ syncLedgerPages(): Promise<number>;
213
+ /**
214
+ * @name syncCapabilityIndexes
215
+ * @description Sync all CapabilityIndex PDAs to PostgreSQL.
216
+ * @since v0.1.0
217
+ */
218
+ syncCapabilityIndexes(): Promise<number>;
219
+ /**
220
+ * @name syncProtocolIndexes
221
+ * @description Sync all ProtocolIndex PDAs to PostgreSQL.
222
+ * @since v0.1.0
223
+ */
224
+ syncProtocolIndexes(): Promise<number>;
225
+ /**
226
+ * @name syncToolCategoryIndexes
227
+ * @description Sync all ToolCategoryIndex PDAs to PostgreSQL.
228
+ * @since v0.1.0
229
+ */
230
+ syncToolCategoryIndexes(): Promise<number>;
231
+ /**
232
+ * @name syncEpochPages
233
+ * @description Sync all EpochPage PDAs to PostgreSQL.
234
+ * @since v0.1.0
235
+ */
236
+ syncEpochPages(): Promise<number>;
237
+ /**
238
+ * @name syncDelegates
239
+ * @description Sync all VaultDelegate PDAs to PostgreSQL.
240
+ * @since v0.1.0
241
+ */
242
+ syncDelegates(): Promise<number>;
243
+ /**
244
+ * @name syncCheckpoints
245
+ * @description Sync all SessionCheckpoint PDAs to PostgreSQL.
246
+ * @since v0.1.0
247
+ */
248
+ syncCheckpoints(): Promise<number>;
249
+ /**
250
+ * @name syncAll
251
+ * @description Sync all on-chain account types to PostgreSQL.
252
+ *
253
+ * Fetches every account via `program.account.*.all()` and
254
+ * upserts into the corresponding table. Reports progress
255
+ * via the `onProgress` callback.
256
+ *
257
+ * @param options - Optional sync configuration.
258
+ * @returns Summary of synced account counts.
259
+ * @since v0.1.0
260
+ *
261
+ * @example
262
+ * ```ts
263
+ * const result = await pg.syncAll({
264
+ * onProgress: (synced, total, type) => {
265
+ * console.log(`[${type}] ${synced}/${total}`);
266
+ * },
267
+ * });
268
+ * console.log("Total synced:", result.totalRecords);
269
+ * ```
270
+ */
271
+ syncAll(options?: SyncOptions): Promise<SyncAllResult>;
272
+ /**
273
+ * @name syncEvent
274
+ * @description Store a parsed SAP event in the events log table.
275
+ * @param eventName - The event name (e.g. "RegisteredEvent").
276
+ * @param txSignature - The transaction signature.
277
+ * @param slot - The Solana slot.
278
+ * @param data - The parsed event data.
279
+ * @param agentPda - Optional agent PDA for indexing.
280
+ * @param wallet - Optional wallet for indexing.
281
+ * @since v0.1.0
282
+ */
283
+ syncEvent(eventName: string, txSignature: string, slot: number, data: Record<string, unknown>, agentPda?: string, wallet?: string): Promise<void>;
284
+ /**
285
+ * @name getAgent
286
+ * @description Fetch a single agent by PDA or wallet.
287
+ * @param pdaOrWallet - Agent PDA (base58) or owner wallet.
288
+ * @since v0.1.0
289
+ */
290
+ getAgent(pdaOrWallet: string): Promise<unknown | null>;
291
+ /**
292
+ * @name getActiveAgents
293
+ * @description Fetch all active agents, ordered by reputation.
294
+ * @param limit - Max agents to return (default: 100).
295
+ * @since v0.1.0
296
+ */
297
+ getActiveAgents(limit?: number): Promise<unknown[]>;
298
+ /**
299
+ * @name getEscrowBalance
300
+ * @description Fetch escrow balance for a specific agent/depositor pair.
301
+ * @param agentPda - Agent PDA (base58).
302
+ * @param depositor - Depositor wallet (base58).
303
+ * @since v0.1.0
304
+ */
305
+ getEscrowBalance(agentPda: string, depositor: string): Promise<unknown | null>;
306
+ /**
307
+ * @name getAgentTools
308
+ * @description Fetch all active tools for a given agent.
309
+ * @param agentPda - Agent PDA (base58).
310
+ * @since v0.1.0
311
+ */
312
+ getAgentTools(agentPda: string): Promise<unknown[]>;
313
+ /**
314
+ * @name getRecentEvents
315
+ * @description Fetch the most recent events.
316
+ * @param limit - Max events to return (default: 50).
317
+ * @param eventName - Optional filter by event name.
318
+ * @since v0.1.0
319
+ */
320
+ getRecentEvents(limit?: number, eventName?: string): Promise<unknown[]>;
321
+ /**
322
+ * @name getSyncStatus
323
+ * @description Get the sync status for all account types.
324
+ * @since v0.1.0
325
+ */
326
+ getSyncStatus(): Promise<SyncCursorRow[]>;
327
+ private log;
328
+ }
329
+ /**
330
+ * @interface SyncAllResult
331
+ * @description Result of a full sync operation.
332
+ * @category Postgres
333
+ * @since v0.1.0
334
+ */
335
+ export interface SyncAllResult {
336
+ agents: number;
337
+ agentStats: number;
338
+ feedbacks: number;
339
+ tools: number;
340
+ escrows: number;
341
+ attestations: number;
342
+ vaults: number;
343
+ sessions: number;
344
+ epochPages: number;
345
+ delegates: number;
346
+ checkpoints: number;
347
+ ledgers: number;
348
+ ledgerPages: number;
349
+ capabilityIndexes: number;
350
+ protocolIndexes: number;
351
+ toolCategoryIndexes: number;
352
+ totalRecords: number;
353
+ durationMs: number;
354
+ }
355
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/postgres/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @module postgres
3
+ * @description PostgreSQL off-chain mirror for SAP v2.
4
+ *
5
+ * Re-exports all public types, the adapter, sync engine,
6
+ * and serializer functions.
7
+ *
8
+ * @category Postgres
9
+ * @since v0.1.0
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * import {
14
+ * SapPostgres,
15
+ * SapSyncEngine,
16
+ * SAP_TABLE_MAP,
17
+ * } from "@synapse-sap/sdk/postgres";
18
+ * ```
19
+ */
20
+ export { SapPostgres, type PgClient, type SyncAllResult } from "./adapter";
21
+ export { SapSyncEngine } from "./sync";
22
+ export { SAP_TABLE_MAP, type SapPostgresConfig, type SapAccountType, type SyncMeta, type AgentRow, type EscrowRow, type ToolRow, type LedgerRow, type EventRow, type SyncCursorRow, type SyncOptions, } from "./types";
23
+ export { serializeGlobalRegistry, serializeAgent, serializeAgentStats, serializeFeedback, serializeCapabilityIndex, serializeProtocolIndex, serializeVault, serializeSession, serializeEpochPage, serializeDelegate, serializeTool, serializeCheckpoint, serializeEscrow, serializeToolCategoryIndex, serializeAttestation, serializeLedger, serializeLedgerPage, } from "./serializers";
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/postgres/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,WAAW,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAGvC,OAAO,EACL,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,EACf,mBAAmB,GACpB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @module postgres/serializers
3
+ * @description Transforms on-chain account data into PostgreSQL-ready row objects.
4
+ *
5
+ * Each serializer takes the deserialized Anchor account data and the PDA
6
+ * address, then returns a flat key-value record suitable for SQL INSERT/UPSERT.
7
+ *
8
+ * @category Postgres
9
+ * @since v0.1.0
10
+ * @internal
11
+ */
12
+ import type { AgentAccountData, AgentStatsData, FeedbackAccountData, CapabilityIndexData, ProtocolIndexData, ToolCategoryIndexData, GlobalRegistryData, MemoryVaultData, SessionLedgerData, EpochPageData, VaultDelegateData, SessionCheckpointData, ToolDescriptorData, EscrowAccountData, AgentAttestationData, MemoryLedgerData, LedgerPageData } from "../types";
13
+ export declare function serializeGlobalRegistry(pda: string, d: GlobalRegistryData, slot: number): Record<string, unknown>;
14
+ export declare function serializeAgent(pda: string, d: AgentAccountData, slot: number): Record<string, unknown>;
15
+ export declare function serializeAgentStats(pda: string, d: AgentStatsData, slot: number): Record<string, unknown>;
16
+ export declare function serializeFeedback(pda: string, d: FeedbackAccountData, slot: number): Record<string, unknown>;
17
+ export declare function serializeCapabilityIndex(pda: string, d: CapabilityIndexData, slot: number): Record<string, unknown>;
18
+ export declare function serializeProtocolIndex(pda: string, d: ProtocolIndexData, slot: number): Record<string, unknown>;
19
+ export declare function serializeVault(pda: string, d: MemoryVaultData, slot: number): Record<string, unknown>;
20
+ export declare function serializeSession(pda: string, d: SessionLedgerData, slot: number): Record<string, unknown>;
21
+ export declare function serializeEpochPage(pda: string, d: EpochPageData, slot: number): Record<string, unknown>;
22
+ export declare function serializeDelegate(pda: string, d: VaultDelegateData, slot: number): Record<string, unknown>;
23
+ export declare function serializeTool(pda: string, d: ToolDescriptorData, slot: number): Record<string, unknown>;
24
+ export declare function serializeCheckpoint(pda: string, d: SessionCheckpointData, slot: number): Record<string, unknown>;
25
+ export declare function serializeEscrow(pda: string, d: EscrowAccountData, slot: number): Record<string, unknown>;
26
+ export declare function serializeToolCategoryIndex(pda: string, d: ToolCategoryIndexData, slot: number): Record<string, unknown>;
27
+ export declare function serializeAttestation(pda: string, d: AgentAttestationData, slot: number): Record<string, unknown>;
28
+ export declare function serializeLedger(pda: string, d: MemoryLedgerData, slot: number): Record<string, unknown>;
29
+ export declare function serializeLedgerPage(pda: string, d: LedgerPageData, slot: number): Record<string, unknown>;
30
+ //# sourceMappingURL=serializers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializers.d.ts","sourceRoot":"","sources":["../../../src/postgres/serializers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * @module postgres/sync
3
+ * @description Real-time and scheduled sync engine for the SAP PostgreSQL
4
+ * adapter. Provides cron-like periodic sync and WebSocket-based
5
+ * live event streaming.
6
+ *
7
+ * @category Postgres
8
+ * @since v0.1.0
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * import { SapSyncEngine } from "@synapse-sap/sdk/postgres";
13
+ * import { SapPostgres } from "@synapse-sap/sdk/postgres";
14
+ * import { SapClient } from "@synapse-sap/sdk";
15
+ * import { Pool } from "pg";
16
+ *
17
+ * const pool = new Pool({ connectionString: "postgresql://..." });
18
+ * const sap = SapClient.from(provider);
19
+ * const pg = new SapPostgres(pool, sap);
20
+ * const sync = new SapSyncEngine(pg, sap);
21
+ *
22
+ * // One-shot full sync
23
+ * await sync.run();
24
+ *
25
+ * // Periodic sync (every 60 seconds)
26
+ * sync.start(60_000);
27
+ *
28
+ * // Live event streaming via WebSocket
29
+ * await sync.startEventStream();
30
+ *
31
+ * // Graceful shutdown
32
+ * await sync.stop();
33
+ * ```
34
+ */
35
+ import type { SapClient } from "../core/client";
36
+ import type { SapPostgres, SyncAllResult } from "./adapter";
37
+ import type { SyncOptions } from "./types";
38
+ /**
39
+ * @name SapSyncEngine
40
+ * @description Orchestrates periodic and real-time sync between
41
+ * Solana on-chain state and the PostgreSQL mirror.
42
+ *
43
+ * Two operational modes:
44
+ *
45
+ * 1. **Periodic sync** — polls all account types at a configurable
46
+ * interval and upserts into PostgreSQL.
47
+ *
48
+ * 2. **Event streaming** — subscribes to SAP program logs via
49
+ * WebSocket and inserts events in real-time.
50
+ *
51
+ * Both modes can run simultaneously.
52
+ *
53
+ * @category Postgres
54
+ * @since v0.1.0
55
+ */
56
+ export declare class SapSyncEngine {
57
+ private readonly pg;
58
+ private readonly client;
59
+ private readonly debug;
60
+ private intervalId;
61
+ private logSubId;
62
+ private running;
63
+ constructor(pg: SapPostgres, client: SapClient, debug?: boolean);
64
+ /**
65
+ * @name run
66
+ * @description Execute a single full sync cycle.
67
+ * @param options - Optional sync configuration.
68
+ * @returns Sync result summary.
69
+ * @since v0.1.0
70
+ */
71
+ run(options?: SyncOptions): Promise<SyncAllResult>;
72
+ /**
73
+ * @name start
74
+ * @description Start periodic sync at the given interval.
75
+ * Safe to call when already running — resets the interval.
76
+ *
77
+ * @param intervalMs - Sync interval in milliseconds (default: 60_000).
78
+ * @param options - Optional sync configuration.
79
+ * @since v0.1.0
80
+ *
81
+ * @example
82
+ * ```ts
83
+ * // Sync every 30 seconds
84
+ * sync.start(30_000);
85
+ * ```
86
+ */
87
+ start(intervalMs?: number, options?: SyncOptions): void;
88
+ /**
89
+ * @name stop
90
+ * @description Stop all sync activity (periodic + event stream).
91
+ * @since v0.1.0
92
+ */
93
+ stop(): Promise<void>;
94
+ private stopInterval;
95
+ /**
96
+ * @name startEventStream
97
+ * @description Subscribe to SAP program logs via WebSocket and
98
+ * insert parsed events into the `sap_events` table in real-time.
99
+ *
100
+ * @since v0.1.0
101
+ *
102
+ * @example
103
+ * ```ts
104
+ * // Start streaming events
105
+ * await sync.startEventStream();
106
+ *
107
+ * // Later, stop the stream
108
+ * await sync.stopEventStream();
109
+ * ```
110
+ */
111
+ startEventStream(): Promise<void>;
112
+ /**
113
+ * @name stopEventStream
114
+ * @description Unsubscribe from the program log stream.
115
+ * @since v0.1.0
116
+ */
117
+ stopEventStream(): Promise<void>;
118
+ /**
119
+ * @name isRunning
120
+ * @description Check whether the periodic sync is active.
121
+ * @since v0.1.0
122
+ */
123
+ isRunning(): boolean;
124
+ /**
125
+ * @name isStreaming
126
+ * @description Check whether the event stream is active.
127
+ * @since v0.1.0
128
+ */
129
+ isStreaming(): boolean;
130
+ private log;
131
+ }
132
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/postgres/sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAM3C;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAEhC,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,OAAO,CAAS;gBAEZ,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,UAAQ;IAU7D;;;;;;OAMG;IACG,GAAG,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAWxD;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,UAAU,SAAS,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI;IAcvD;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,OAAO,CAAC,YAAY;IAWpB;;;;;;;;;;;;;;;OAeG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAyCvC;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAatC;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,WAAW,IAAI,OAAO;IAQtB,OAAO,CAAC,GAAG;CAKZ"}