@lightconexyz/lightcone-sdk 0.1.0 → 0.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 (373) hide show
  1. package/README.md +33 -206
  2. package/dist/auth/client.d.ts +25 -0
  3. package/dist/auth/client.d.ts.map +1 -0
  4. package/dist/auth/client.js +120 -0
  5. package/dist/auth/client.js.map +1 -0
  6. package/dist/auth/index.d.ts +73 -0
  7. package/dist/auth/index.d.ts.map +1 -0
  8. package/dist/auth/index.js +42 -0
  9. package/dist/auth/index.js.map +1 -0
  10. package/dist/auth/native.d.ts +8 -0
  11. package/dist/auth/native.d.ts.map +1 -0
  12. package/dist/auth/native.js +19 -0
  13. package/dist/auth/native.js.map +1 -0
  14. package/dist/auth.d.ts +1 -79
  15. package/dist/auth.d.ts.map +1 -1
  16. package/dist/auth.js +15 -145
  17. package/dist/auth.js.map +1 -1
  18. package/dist/client.d.ts +69 -0
  19. package/dist/client.d.ts.map +1 -0
  20. package/dist/client.js +158 -0
  21. package/dist/client.js.map +1 -0
  22. package/dist/domain/admin/client.d.ts +17 -0
  23. package/dist/domain/admin/client.d.ts.map +1 -0
  24. package/dist/domain/admin/client.js +32 -0
  25. package/dist/domain/admin/client.js.map +1 -0
  26. package/dist/domain/admin/index.d.ts +7 -0
  27. package/dist/domain/admin/index.d.ts.map +1 -0
  28. package/dist/domain/admin/index.js +19 -0
  29. package/dist/domain/admin/index.js.map +1 -0
  30. package/dist/domain/admin/wire.d.ts +117 -0
  31. package/dist/domain/admin/wire.d.ts.map +1 -0
  32. package/dist/domain/admin/wire.js +3 -0
  33. package/dist/domain/admin/wire.js.map +1 -0
  34. package/dist/domain/index.d.ts +9 -0
  35. package/dist/domain/index.d.ts.map +1 -0
  36. package/dist/domain/index.js +45 -0
  37. package/dist/domain/index.js.map +1 -0
  38. package/dist/domain/market/client.d.ts +21 -0
  39. package/dist/domain/market/client.d.ts.map +1 -0
  40. package/dist/domain/market/client.js +70 -0
  41. package/dist/domain/market/client.js.map +1 -0
  42. package/dist/domain/market/convert.d.ts +8 -0
  43. package/dist/domain/market/convert.d.ts.map +1 -0
  44. package/dist/domain/market/convert.js +96 -0
  45. package/dist/domain/market/convert.js.map +1 -0
  46. package/dist/domain/market/index.d.ts +47 -0
  47. package/dist/domain/market/index.d.ts.map +1 -0
  48. package/dist/domain/market/index.js +58 -0
  49. package/dist/domain/market/index.js.map +1 -0
  50. package/dist/domain/market/outcome.d.ts +12 -0
  51. package/dist/domain/market/outcome.d.ts.map +1 -0
  52. package/dist/domain/market/outcome.js +28 -0
  53. package/dist/domain/market/outcome.js.map +1 -0
  54. package/dist/domain/market/tokens.d.ts +42 -0
  55. package/dist/domain/market/tokens.d.ts.map +1 -0
  56. package/dist/domain/market/tokens.js +106 -0
  57. package/dist/domain/market/tokens.js.map +1 -0
  58. package/dist/domain/market/wire.d.ts +116 -0
  59. package/dist/domain/market/wire.d.ts.map +1 -0
  60. package/dist/domain/market/wire.js +3 -0
  61. package/dist/domain/market/wire.js.map +1 -0
  62. package/dist/domain/order/client.d.ts +187 -0
  63. package/dist/domain/order/client.d.ts.map +1 -0
  64. package/dist/domain/order/client.js +122 -0
  65. package/dist/domain/order/client.js.map +1 -0
  66. package/dist/domain/order/convert.d.ts +8 -0
  67. package/dist/domain/order/convert.d.ts.map +1 -0
  68. package/dist/domain/order/convert.js +80 -0
  69. package/dist/domain/order/convert.js.map +1 -0
  70. package/dist/domain/order/index.d.ts +48 -0
  71. package/dist/domain/order/index.d.ts.map +1 -0
  72. package/dist/domain/order/index.js +41 -0
  73. package/dist/domain/order/index.js.map +1 -0
  74. package/dist/domain/order/state.d.ts +26 -0
  75. package/dist/domain/order/state.d.ts.map +1 -0
  76. package/dist/domain/order/state.js +85 -0
  77. package/dist/domain/order/state.js.map +1 -0
  78. package/dist/domain/order/wire.d.ts +123 -0
  79. package/dist/domain/order/wire.d.ts.map +1 -0
  80. package/dist/domain/order/wire.js +3 -0
  81. package/dist/domain/order/wire.js.map +1 -0
  82. package/dist/domain/orderbook/client.d.ts +20 -0
  83. package/dist/domain/orderbook/client.d.ts.map +1 -0
  84. package/dist/domain/orderbook/client.js +30 -0
  85. package/dist/domain/orderbook/client.js.map +1 -0
  86. package/dist/domain/orderbook/convert.d.ts +5 -0
  87. package/dist/domain/orderbook/convert.d.ts.map +1 -0
  88. package/dist/domain/orderbook/convert.js +34 -0
  89. package/dist/domain/orderbook/convert.js.map +1 -0
  90. package/dist/domain/orderbook/index.d.ts +36 -0
  91. package/dist/domain/orderbook/index.d.ts.map +1 -0
  92. package/dist/domain/orderbook/index.js +63 -0
  93. package/dist/domain/orderbook/index.js.map +1 -0
  94. package/dist/domain/orderbook/state.d.ts +19 -0
  95. package/dist/domain/orderbook/state.d.ts.map +1 -0
  96. package/dist/domain/orderbook/state.js +86 -0
  97. package/dist/domain/orderbook/state.js.map +1 -0
  98. package/dist/domain/orderbook/ticker.d.ts +8 -0
  99. package/dist/domain/orderbook/ticker.d.ts.map +1 -0
  100. package/dist/domain/orderbook/ticker.js +3 -0
  101. package/dist/domain/orderbook/ticker.js.map +1 -0
  102. package/dist/domain/orderbook/wire.d.ts +61 -0
  103. package/dist/domain/orderbook/wire.d.ts.map +1 -0
  104. package/dist/domain/orderbook/wire.js +3 -0
  105. package/dist/domain/orderbook/wire.js.map +1 -0
  106. package/dist/domain/position/client.d.ts +13 -0
  107. package/dist/domain/position/client.d.ts.map +1 -0
  108. package/dist/domain/position/client.js +20 -0
  109. package/dist/domain/position/client.js.map +1 -0
  110. package/dist/domain/position/index.d.ts +66 -0
  111. package/dist/domain/position/index.d.ts.map +1 -0
  112. package/dist/domain/position/index.js +19 -0
  113. package/dist/domain/position/index.js.map +1 -0
  114. package/dist/domain/position/wire.d.ts +29 -0
  115. package/dist/domain/position/wire.d.ts.map +1 -0
  116. package/dist/domain/position/wire.js +3 -0
  117. package/dist/domain/position/wire.js.map +1 -0
  118. package/dist/domain/price_history/client.d.ts +12 -0
  119. package/dist/domain/price_history/client.d.ts.map +1 -0
  120. package/dist/domain/price_history/client.js +24 -0
  121. package/dist/domain/price_history/client.js.map +1 -0
  122. package/dist/domain/price_history/index.d.ts +14 -0
  123. package/dist/domain/price_history/index.d.ts.map +1 -0
  124. package/dist/domain/price_history/index.js +27 -0
  125. package/dist/domain/price_history/index.js.map +1 -0
  126. package/dist/domain/price_history/state.d.ts +11 -0
  127. package/dist/domain/price_history/state.d.ts.map +1 -0
  128. package/dist/domain/price_history/state.js +35 -0
  129. package/dist/domain/price_history/state.js.map +1 -0
  130. package/dist/domain/price_history/wire.d.ts +47 -0
  131. package/dist/domain/price_history/wire.d.ts.map +1 -0
  132. package/dist/domain/price_history/wire.js +3 -0
  133. package/dist/domain/price_history/wire.js.map +1 -0
  134. package/dist/domain/referral/client.d.ts +13 -0
  135. package/dist/domain/referral/client.d.ts.map +1 -0
  136. package/dist/domain/referral/client.js +34 -0
  137. package/dist/domain/referral/client.js.map +1 -0
  138. package/dist/domain/referral/index.d.ts +17 -0
  139. package/dist/domain/referral/index.d.ts.map +1 -0
  140. package/dist/domain/referral/index.js +19 -0
  141. package/dist/domain/referral/index.js.map +1 -0
  142. package/dist/domain/referral/wire.d.ts +22 -0
  143. package/dist/domain/referral/wire.d.ts.map +1 -0
  144. package/dist/domain/referral/wire.js +3 -0
  145. package/dist/domain/referral/wire.js.map +1 -0
  146. package/dist/domain/trade/client.d.ts +12 -0
  147. package/dist/domain/trade/client.d.ts.map +1 -0
  148. package/dist/domain/trade/client.js +27 -0
  149. package/dist/domain/trade/client.js.map +1 -0
  150. package/dist/domain/trade/convert.d.ts +5 -0
  151. package/dist/domain/trade/convert.d.ts.map +1 -0
  152. package/dist/domain/trade/convert.js +25 -0
  153. package/dist/domain/trade/convert.js.map +1 -0
  154. package/dist/domain/trade/index.d.ts +19 -0
  155. package/dist/domain/trade/index.d.ts.map +1 -0
  156. package/dist/domain/trade/index.js +24 -0
  157. package/dist/domain/trade/index.js.map +1 -0
  158. package/dist/domain/trade/state.d.ts +16 -0
  159. package/dist/domain/trade/state.d.ts.map +1 -0
  160. package/dist/domain/trade/state.js +40 -0
  161. package/dist/domain/trade/state.js.map +1 -0
  162. package/dist/domain/trade/wire.d.ts +34 -0
  163. package/dist/domain/trade/wire.d.ts.map +1 -0
  164. package/dist/domain/trade/wire.js +3 -0
  165. package/dist/domain/trade/wire.js.map +1 -0
  166. package/dist/error.d.ts +44 -0
  167. package/dist/error.d.ts.map +1 -0
  168. package/dist/error.js +126 -0
  169. package/dist/error.js.map +1 -0
  170. package/dist/http/client.d.ts +16 -0
  171. package/dist/http/client.d.ts.map +1 -0
  172. package/dist/http/client.js +146 -0
  173. package/dist/http/client.js.map +1 -0
  174. package/dist/http/index.d.ts +3 -0
  175. package/dist/http/index.d.ts.map +1 -0
  176. package/dist/http/index.js +12 -0
  177. package/dist/http/index.js.map +1 -0
  178. package/dist/http/retry.d.ts +30 -0
  179. package/dist/http/retry.d.ts.map +1 -0
  180. package/dist/http/retry.js +48 -0
  181. package/dist/http/retry.js.map +1 -0
  182. package/dist/index.d.ts +13 -51
  183. package/dist/index.d.ts.map +1 -1
  184. package/dist/index.js +22 -68
  185. package/dist/index.js.map +1 -1
  186. package/dist/network.d.ts +4 -4
  187. package/dist/network.d.ts.map +1 -1
  188. package/dist/network.js +4 -4
  189. package/dist/network.js.map +1 -1
  190. package/dist/prelude.d.ts +41 -0
  191. package/dist/prelude.d.ts.map +1 -0
  192. package/dist/prelude.js +55 -0
  193. package/dist/prelude.js.map +1 -0
  194. package/dist/privy/client.d.ts +17 -0
  195. package/dist/privy/client.d.ts.map +1 -0
  196. package/dist/privy/client.js +66 -0
  197. package/dist/privy/client.js.map +1 -0
  198. package/dist/privy/index.d.ts +57 -0
  199. package/dist/privy/index.d.ts.map +1 -0
  200. package/dist/privy/index.js +80 -0
  201. package/dist/privy/index.js.map +1 -0
  202. package/dist/program/accounts.d.ts +19 -2
  203. package/dist/program/accounts.d.ts.map +1 -1
  204. package/dist/program/accounts.js +52 -2
  205. package/dist/program/accounts.js.map +1 -1
  206. package/dist/program/builder.d.ts +15 -11
  207. package/dist/program/builder.d.ts.map +1 -1
  208. package/dist/program/builder.js +30 -22
  209. package/dist/program/builder.js.map +1 -1
  210. package/dist/program/client.d.ts +40 -1
  211. package/dist/program/client.d.ts.map +1 -1
  212. package/dist/program/client.js +87 -2
  213. package/dist/program/client.js.map +1 -1
  214. package/dist/program/constants.d.ts +10 -1
  215. package/dist/program/constants.d.ts.map +1 -1
  216. package/dist/program/constants.js +11 -2
  217. package/dist/program/constants.js.map +1 -1
  218. package/dist/program/envelope.d.ts +94 -0
  219. package/dist/program/envelope.d.ts.map +1 -0
  220. package/dist/program/envelope.js +258 -0
  221. package/dist/program/envelope.js.map +1 -0
  222. package/dist/program/error.d.ts +8 -0
  223. package/dist/program/error.d.ts.map +1 -0
  224. package/dist/program/error.js +20 -0
  225. package/dist/program/error.js.map +1 -0
  226. package/dist/program/index.d.ts +8 -5
  227. package/dist/program/index.d.ts.map +1 -1
  228. package/dist/program/index.js +29 -3
  229. package/dist/program/index.js.map +1 -1
  230. package/dist/program/instructions.d.ts +124 -1
  231. package/dist/program/instructions.d.ts.map +1 -1
  232. package/dist/program/instructions.js +439 -4
  233. package/dist/program/instructions.js.map +1 -1
  234. package/dist/program/orders.d.ts +26 -8
  235. package/dist/program/orders.d.ts.map +1 -1
  236. package/dist/program/orders.js +58 -31
  237. package/dist/program/orders.js.map +1 -1
  238. package/dist/program/pda.d.ts +19 -0
  239. package/dist/program/pda.d.ts.map +1 -1
  240. package/dist/program/pda.js +28 -0
  241. package/dist/program/pda.js.map +1 -1
  242. package/dist/program/types.d.ts +93 -9
  243. package/dist/program/types.d.ts.map +1 -1
  244. package/dist/program/types.js.map +1 -1
  245. package/dist/shared/fmt/decimal.d.ts +5 -0
  246. package/dist/shared/fmt/decimal.d.ts.map +1 -0
  247. package/dist/shared/fmt/decimal.js +54 -0
  248. package/dist/shared/fmt/decimal.js.map +1 -0
  249. package/dist/shared/fmt/index.d.ts +3 -0
  250. package/dist/shared/fmt/index.d.ts.map +1 -0
  251. package/dist/shared/fmt/index.js +39 -0
  252. package/dist/shared/fmt/index.js.map +1 -0
  253. package/dist/shared/fmt/num.d.ts +6 -0
  254. package/dist/shared/fmt/num.d.ts.map +1 -0
  255. package/dist/shared/fmt/num.js +44 -0
  256. package/dist/shared/fmt/num.js.map +1 -0
  257. package/dist/shared/index.d.ts +4 -7
  258. package/dist/shared/index.d.ts.map +1 -1
  259. package/dist/shared/index.js +19 -7
  260. package/dist/shared/index.js.map +1 -1
  261. package/dist/shared/price.d.ts +5 -33
  262. package/dist/shared/price.d.ts.map +1 -1
  263. package/dist/shared/price.js +11 -39
  264. package/dist/shared/price.js.map +1 -1
  265. package/dist/shared/scaling.d.ts +17 -30
  266. package/dist/shared/scaling.d.ts.map +1 -1
  267. package/dist/shared/scaling.js +88 -57
  268. package/dist/shared/scaling.js.map +1 -1
  269. package/dist/shared/types.d.ts +66 -16
  270. package/dist/shared/types.d.ts.map +1 -1
  271. package/dist/shared/types.js +81 -17
  272. package/dist/shared/types.js.map +1 -1
  273. package/dist/ws/client.d.ts +35 -0
  274. package/dist/ws/client.d.ts.map +1 -0
  275. package/dist/ws/client.js +226 -0
  276. package/dist/ws/client.js.map +1 -0
  277. package/dist/ws/index.d.ts +109 -0
  278. package/dist/ws/index.d.ts.map +1 -0
  279. package/dist/ws/index.js +181 -0
  280. package/dist/ws/index.js.map +1 -0
  281. package/dist/ws/subscriptions.d.ts +51 -0
  282. package/dist/ws/subscriptions.d.ts.map +1 -0
  283. package/dist/ws/subscriptions.js +44 -0
  284. package/dist/ws/subscriptions.js.map +1 -0
  285. package/package.json +3 -11
  286. package/dist/api/client.d.ts +0 -225
  287. package/dist/api/client.d.ts.map +0 -1
  288. package/dist/api/client.js +0 -452
  289. package/dist/api/client.js.map +0 -1
  290. package/dist/api/error.d.ts +0 -58
  291. package/dist/api/error.d.ts.map +0 -1
  292. package/dist/api/error.js +0 -98
  293. package/dist/api/error.js.map +0 -1
  294. package/dist/api/index.d.ts +0 -23
  295. package/dist/api/index.d.ts.map +0 -1
  296. package/dist/api/index.js +0 -51
  297. package/dist/api/index.js.map +0 -1
  298. package/dist/api/types/admin.d.ts +0 -49
  299. package/dist/api/types/admin.d.ts.map +0 -1
  300. package/dist/api/types/admin.js +0 -13
  301. package/dist/api/types/admin.js.map +0 -1
  302. package/dist/api/types/index.d.ts +0 -14
  303. package/dist/api/types/index.d.ts.map +0 -1
  304. package/dist/api/types/index.js +0 -13
  305. package/dist/api/types/index.js.map +0 -1
  306. package/dist/api/types/market.d.ts +0 -186
  307. package/dist/api/types/market.d.ts.map +0 -1
  308. package/dist/api/types/market.js +0 -6
  309. package/dist/api/types/market.js.map +0 -1
  310. package/dist/api/types/order.d.ts +0 -190
  311. package/dist/api/types/order.d.ts.map +0 -1
  312. package/dist/api/types/order.js +0 -6
  313. package/dist/api/types/order.js.map +0 -1
  314. package/dist/api/types/orderbook.d.ts +0 -36
  315. package/dist/api/types/orderbook.d.ts.map +0 -1
  316. package/dist/api/types/orderbook.js +0 -6
  317. package/dist/api/types/orderbook.js.map +0 -1
  318. package/dist/api/types/position.d.ts +0 -60
  319. package/dist/api/types/position.d.ts.map +0 -1
  320. package/dist/api/types/position.js +0 -6
  321. package/dist/api/types/position.js.map +0 -1
  322. package/dist/api/types/price_history.d.ts +0 -68
  323. package/dist/api/types/price_history.d.ts.map +0 -1
  324. package/dist/api/types/price_history.js +0 -13
  325. package/dist/api/types/price_history.js.map +0 -1
  326. package/dist/api/types/trade.d.ts +0 -67
  327. package/dist/api/types/trade.d.ts.map +0 -1
  328. package/dist/api/types/trade.js +0 -13
  329. package/dist/api/types/trade.js.map +0 -1
  330. package/dist/api/validation.d.ts +0 -24
  331. package/dist/api/validation.d.ts.map +0 -1
  332. package/dist/api/validation.js +0 -53
  333. package/dist/api/validation.js.map +0 -1
  334. package/dist/websocket/client.d.ts +0 -238
  335. package/dist/websocket/client.d.ts.map +0 -1
  336. package/dist/websocket/client.js +0 -580
  337. package/dist/websocket/client.js.map +0 -1
  338. package/dist/websocket/error.d.ts +0 -47
  339. package/dist/websocket/error.d.ts.map +0 -1
  340. package/dist/websocket/error.js +0 -83
  341. package/dist/websocket/error.js.map +0 -1
  342. package/dist/websocket/handlers.d.ts +0 -97
  343. package/dist/websocket/handlers.d.ts.map +0 -1
  344. package/dist/websocket/handlers.js +0 -277
  345. package/dist/websocket/handlers.js.map +0 -1
  346. package/dist/websocket/index.d.ts +0 -38
  347. package/dist/websocket/index.d.ts.map +0 -1
  348. package/dist/websocket/index.js +0 -75
  349. package/dist/websocket/index.js.map +0 -1
  350. package/dist/websocket/state/index.d.ts +0 -7
  351. package/dist/websocket/state/index.d.ts.map +0 -1
  352. package/dist/websocket/state/index.js +0 -14
  353. package/dist/websocket/state/index.js.map +0 -1
  354. package/dist/websocket/state/orderbook.d.ts +0 -107
  355. package/dist/websocket/state/orderbook.d.ts.map +0 -1
  356. package/dist/websocket/state/orderbook.js +0 -293
  357. package/dist/websocket/state/orderbook.js.map +0 -1
  358. package/dist/websocket/state/price.d.ts +0 -108
  359. package/dist/websocket/state/price.d.ts.map +0 -1
  360. package/dist/websocket/state/price.js +0 -243
  361. package/dist/websocket/state/price.js.map +0 -1
  362. package/dist/websocket/state/user.d.ts +0 -83
  363. package/dist/websocket/state/user.d.ts.map +0 -1
  364. package/dist/websocket/state/user.js +0 -228
  365. package/dist/websocket/state/user.js.map +0 -1
  366. package/dist/websocket/subscriptions.d.ts +0 -143
  367. package/dist/websocket/subscriptions.d.ts.map +0 -1
  368. package/dist/websocket/subscriptions.js +0 -244
  369. package/dist/websocket/subscriptions.js.map +0 -1
  370. package/dist/websocket/types.d.ts +0 -417
  371. package/dist/websocket/types.d.ts.map +0 -1
  372. package/dist/websocket/types.js +0 -195
  373. package/dist/websocket/types.js.map +0 -1
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PriceHistoryState = void 0;
4
+ class PriceHistoryState {
5
+ data;
6
+ constructor() {
7
+ this.data = new Map();
8
+ }
9
+ applySnapshot(orderbookId, resolution, prices) {
10
+ this.data.set(keyFor(orderbookId, resolution), prices);
11
+ }
12
+ applyUpdate(orderbookId, resolution, point) {
13
+ const key = keyFor(orderbookId, resolution);
14
+ const existing = this.data.get(key) ?? [];
15
+ const last = existing.at(-1);
16
+ if (last && last.time === point.time) {
17
+ last.value = point.value;
18
+ this.data.set(key, existing);
19
+ return;
20
+ }
21
+ existing.push(point);
22
+ this.data.set(key, existing);
23
+ }
24
+ get(orderbookId, resolution) {
25
+ return this.data.get(keyFor(orderbookId, resolution));
26
+ }
27
+ clear() {
28
+ this.data.clear();
29
+ }
30
+ }
31
+ exports.PriceHistoryState = PriceHistoryState;
32
+ function keyFor(orderbookId, resolution) {
33
+ return `${orderbookId}:${resolution}`;
34
+ }
35
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/domain/price_history/state.ts"],"names":[],"mappings":";;;AAGA,MAAa,iBAAiB;IACX,IAAI,CAA0B;IAE/C;QACE,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,aAAa,CAAC,WAAwB,EAAE,UAAsB,EAAE,MAAkB;QAChF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,WAAW,CAAC,WAAwB,EAAE,UAAsB,EAAE,KAAe;QAC3E,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAE1C,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,WAAwB,EAAE,UAAsB;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;CACF;AAjCD,8CAiCC;AAED,SAAS,MAAM,CAAC,WAAwB,EAAE,UAAsB;IAC9D,OAAO,GAAG,WAAW,IAAI,UAAU,EAAE,CAAC;AACxC,CAAC","sourcesContent":["import type { OrderBookId, Resolution } from \"../../shared\";\nimport type { LineData } from \"./index\";\n\nexport class PriceHistoryState {\n private readonly data: Map<string, LineData[]>;\n\n constructor() {\n this.data = new Map();\n }\n\n applySnapshot(orderbookId: OrderBookId, resolution: Resolution, prices: LineData[]): void {\n this.data.set(keyFor(orderbookId, resolution), prices);\n }\n\n applyUpdate(orderbookId: OrderBookId, resolution: Resolution, point: LineData): void {\n const key = keyFor(orderbookId, resolution);\n const existing = this.data.get(key) ?? [];\n\n const last = existing.at(-1);\n if (last && last.time === point.time) {\n last.value = point.value;\n this.data.set(key, existing);\n return;\n }\n\n existing.push(point);\n this.data.set(key, existing);\n }\n\n get(orderbookId: OrderBookId, resolution: Resolution): readonly LineData[] | undefined {\n return this.data.get(keyFor(orderbookId, resolution));\n }\n\n clear(): void {\n this.data.clear();\n }\n}\n\nfunction keyFor(orderbookId: OrderBookId, resolution: Resolution): string {\n return `${orderbookId}:${resolution}`;\n}\n"]}
@@ -0,0 +1,47 @@
1
+ import type { OrderBookId, Resolution } from "../../shared";
2
+ export interface PriceCandle {
3
+ t: number;
4
+ m?: string;
5
+ o?: string;
6
+ h?: string;
7
+ l?: string;
8
+ c?: string;
9
+ v?: string;
10
+ bb?: string;
11
+ ba?: string;
12
+ }
13
+ export interface PriceHistorySnapshot {
14
+ orderbook_id: OrderBookId;
15
+ resolution: Resolution;
16
+ prices: PriceCandle[];
17
+ last_timestamp?: number;
18
+ server_time?: number;
19
+ }
20
+ export interface PriceHistoryUpdate {
21
+ orderbook_id: OrderBookId;
22
+ resolution: Resolution;
23
+ t: number;
24
+ m?: string;
25
+ o?: string;
26
+ h?: string;
27
+ l?: string;
28
+ c?: string;
29
+ v?: string;
30
+ bb?: string;
31
+ ba?: string;
32
+ }
33
+ export interface PriceHistoryHeartbeat {
34
+ server_time: number;
35
+ last_processed?: number;
36
+ }
37
+ export type PriceHistory = {
38
+ event_type: "snapshot";
39
+ payload: PriceHistorySnapshot;
40
+ } | {
41
+ event_type: "update";
42
+ payload: PriceHistoryUpdate;
43
+ } | {
44
+ event_type: "heartbeat";
45
+ payload: PriceHistoryHeartbeat;
46
+ };
47
+ //# sourceMappingURL=wire.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/domain/price_history/wire.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,WAAW,CAAC;IAC1B,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,WAAW,CAAC;IAC1B,UAAU,EAAE,UAAU,CAAC;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,YAAY,GACpB;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,GACzD;IAAE,UAAU,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,GACrD;IAAE,UAAU,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,qBAAqB,CAAA;CAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=wire.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/domain/price_history/wire.ts"],"names":[],"mappings":"","sourcesContent":["import type { OrderBookId, Resolution } from \"../../shared\";\n\nexport interface PriceCandle {\n t: number;\n m?: string;\n o?: string;\n h?: string;\n l?: string;\n c?: string;\n v?: string;\n bb?: string;\n ba?: string;\n}\n\nexport interface PriceHistorySnapshot {\n orderbook_id: OrderBookId;\n resolution: Resolution;\n prices: PriceCandle[];\n last_timestamp?: number;\n server_time?: number;\n}\n\nexport interface PriceHistoryUpdate {\n orderbook_id: OrderBookId;\n resolution: Resolution;\n t: number;\n m?: string;\n o?: string;\n h?: string;\n l?: string;\n c?: string;\n v?: string;\n bb?: string;\n ba?: string;\n}\n\nexport interface PriceHistoryHeartbeat {\n server_time: number;\n last_processed?: number;\n}\n\nexport type PriceHistory =\n | { event_type: \"snapshot\"; payload: PriceHistorySnapshot }\n | { event_type: \"update\"; payload: PriceHistoryUpdate }\n | { event_type: \"heartbeat\"; payload: PriceHistoryHeartbeat };\n"]}
@@ -0,0 +1,13 @@
1
+ import { type LightconeHttp } from "../../http";
2
+ import type { RedeemResult, ReferralStatus } from "./index";
3
+ interface ClientContext {
4
+ http: LightconeHttp;
5
+ }
6
+ export declare class Referrals {
7
+ private readonly client;
8
+ constructor(client: ClientContext);
9
+ getStatus(): Promise<ReferralStatus>;
10
+ redeem(code: string): Promise<RedeemResult>;
11
+ }
12
+ export {};
13
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/domain/referral/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG5D,UAAU,aAAa;IACrB,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAE5C,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC;IAepC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAclD"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Referrals = void 0;
4
+ const http_1 = require("../../http");
5
+ class Referrals {
6
+ client;
7
+ constructor(client) {
8
+ this.client = client;
9
+ }
10
+ async getStatus() {
11
+ const url = `${this.client.http.baseUrl()}/api/referral/status`;
12
+ const response = await this.client.http.get(url, http_1.RetryPolicy.Idempotent);
13
+ return {
14
+ isBeta: response.is_beta,
15
+ source: response.source,
16
+ referralCodes: response.referral_codes.map((code) => ({
17
+ code: code.code,
18
+ maxUses: code.max_uses,
19
+ useCount: code.use_count,
20
+ })),
21
+ };
22
+ }
23
+ async redeem(code) {
24
+ const url = `${this.client.http.baseUrl()}/api/referral/redeem`;
25
+ const body = { code };
26
+ const response = await this.client.http.post(url, body, http_1.RetryPolicy.None);
27
+ return {
28
+ success: response.success,
29
+ isBeta: response.is_beta,
30
+ };
31
+ }
32
+ }
33
+ exports.Referrals = Referrals;
34
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/domain/referral/client.ts"],"names":[],"mappings":";;;AAAA,qCAA6D;AAQ7D,MAAa,SAAS;IACS;IAA7B,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtD,KAAK,CAAC,SAAS;QACb,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC;QAChE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAyB,GAAG,EAAE,kBAAW,CAAC,UAAU,CAAC,CAAC;QAEjG,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,OAAO;YACxB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,aAAa,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACpD,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,QAAQ;gBACtB,QAAQ,EAAE,IAAI,CAAC,SAAS;aACzB,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC;QAChE,MAAM,IAAI,GAAkB,EAAE,IAAI,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAC1C,GAAG,EACH,IAAI,EACJ,kBAAW,CAAC,IAAI,CACjB,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EAAE,QAAQ,CAAC,OAAO;SACzB,CAAC;IACJ,CAAC;CACF;AAhCD,8BAgCC","sourcesContent":["import { RetryPolicy, type LightconeHttp } from \"../../http\";\nimport type { RedeemResult, ReferralStatus } from \"./index\";\nimport type { RedeemRequest, RedeemResponse, ReferralStatusResponse } from \"./wire\";\n\ninterface ClientContext {\n http: LightconeHttp;\n}\n\nexport class Referrals {\n constructor(private readonly client: ClientContext) {}\n\n async getStatus(): Promise<ReferralStatus> {\n const url = `${this.client.http.baseUrl()}/api/referral/status`;\n const response = await this.client.http.get<ReferralStatusResponse>(url, RetryPolicy.Idempotent);\n\n return {\n isBeta: response.is_beta,\n source: response.source,\n referralCodes: response.referral_codes.map((code) => ({\n code: code.code,\n maxUses: code.max_uses,\n useCount: code.use_count,\n })),\n };\n }\n\n async redeem(code: string): Promise<RedeemResult> {\n const url = `${this.client.http.baseUrl()}/api/referral/redeem`;\n const body: RedeemRequest = { code };\n const response = await this.client.http.post<RedeemResponse, RedeemRequest>(\n url,\n body,\n RetryPolicy.None\n );\n\n return {\n success: response.success,\n isBeta: response.is_beta,\n };\n }\n}\n"]}
@@ -0,0 +1,17 @@
1
+ export * from "./client";
2
+ export * from "./wire";
3
+ export interface ReferralCodeInfo {
4
+ code: string;
5
+ maxUses: number;
6
+ useCount: number;
7
+ }
8
+ export interface ReferralStatus {
9
+ isBeta: boolean;
10
+ source?: string;
11
+ referralCodes: ReferralCodeInfo[];
12
+ }
13
+ export interface RedeemResult {
14
+ success: boolean;
15
+ isBeta: boolean;
16
+ }
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/referral/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AAEvB,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,gBAAgB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./client"), exports);
18
+ __exportStar(require("./wire"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/referral/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,yCAAuB","sourcesContent":["export * from \"./client\";\nexport * from \"./wire\";\n\nexport interface ReferralCodeInfo {\n code: string;\n maxUses: number;\n useCount: number;\n}\n\nexport interface ReferralStatus {\n isBeta: boolean;\n source?: string;\n referralCodes: ReferralCodeInfo[];\n}\n\nexport interface RedeemResult {\n success: boolean;\n isBeta: boolean;\n}\n"]}
@@ -0,0 +1,22 @@
1
+ export interface ReferralCodeWire {
2
+ code: string;
3
+ max_uses: number;
4
+ use_count: number;
5
+ }
6
+ export interface ReferralStatusResponse {
7
+ is_beta: boolean;
8
+ source?: string;
9
+ referral_codes: ReferralCodeWire[];
10
+ }
11
+ export interface RedeemRequest {
12
+ code: string;
13
+ }
14
+ export interface RedeemResponse {
15
+ success: boolean;
16
+ is_beta: boolean;
17
+ }
18
+ export interface RedeemErrorResponse {
19
+ error: string;
20
+ code: string;
21
+ }
22
+ //# sourceMappingURL=wire.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/domain/referral/wire.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,gBAAgB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=wire.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/domain/referral/wire.ts"],"names":[],"mappings":"","sourcesContent":["export interface ReferralCodeWire {\n code: string;\n max_uses: number;\n use_count: number;\n}\n\nexport interface ReferralStatusResponse {\n is_beta: boolean;\n source?: string;\n referral_codes: ReferralCodeWire[];\n}\n\nexport interface RedeemRequest {\n code: string;\n}\n\nexport interface RedeemResponse {\n success: boolean;\n is_beta: boolean;\n}\n\nexport interface RedeemErrorResponse {\n error: string;\n code: string;\n}\n"]}
@@ -0,0 +1,12 @@
1
+ import { type LightconeHttp } from "../../http";
2
+ import type { TradesPage } from "./index";
3
+ interface ClientContext {
4
+ http: LightconeHttp;
5
+ }
6
+ export declare class Trades {
7
+ private readonly client;
8
+ constructor(client: ClientContext);
9
+ get(orderbookId: string, limit?: number, before?: number): Promise<TradesPage>;
10
+ }
11
+ export {};
12
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/domain/trade/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAI1C,UAAU,aAAa;IACrB,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,qBAAa,MAAM;IACL,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAE5C,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAcrF"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Trades = void 0;
4
+ const http_1 = require("../../http");
5
+ const convert_1 = require("./convert");
6
+ class Trades {
7
+ client;
8
+ constructor(client) {
9
+ this.client = client;
10
+ }
11
+ async get(orderbookId, limit, before) {
12
+ const params = new URLSearchParams({ orderbook_id: orderbookId });
13
+ if (limit !== undefined)
14
+ params.set("limit", String(limit));
15
+ if (before !== undefined)
16
+ params.set("before", String(before));
17
+ const url = `${this.client.http.baseUrl()}/api/trades?${params.toString()}`;
18
+ const response = await this.client.http.get(url, http_1.RetryPolicy.Idempotent);
19
+ return {
20
+ trades: response.trades.map(convert_1.tradeFromResponse),
21
+ nextCursor: response.next_cursor,
22
+ hasMore: response.has_more ?? false,
23
+ };
24
+ }
25
+ }
26
+ exports.Trades = Trades;
27
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/domain/trade/client.ts"],"names":[],"mappings":";;;AAAA,qCAA6D;AAE7D,uCAA8C;AAO9C,MAAa,MAAM;IACY;IAA7B,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtD,KAAK,CAAC,GAAG,CAAC,WAAmB,EAAE,KAAc,EAAE,MAAe;QAC5D,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;QAClE,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAE/D,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC5E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAiB,GAAG,EAAE,kBAAW,CAAC,UAAU,CAAC,CAAC;QAEzF,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,2BAAiB,CAAC;YAC9C,UAAU,EAAE,QAAQ,CAAC,WAAW;YAChC,OAAO,EAAE,QAAQ,CAAC,QAAQ,IAAI,KAAK;SACpC,CAAC;IACJ,CAAC;CACF;AAjBD,wBAiBC","sourcesContent":["import { RetryPolicy, type LightconeHttp } from \"../../http\";\nimport type { TradesPage } from \"./index\";\nimport { tradeFromResponse } from \"./convert\";\nimport type { TradesResponse } from \"./wire\";\n\ninterface ClientContext {\n http: LightconeHttp;\n}\n\nexport class Trades {\n constructor(private readonly client: ClientContext) {}\n\n async get(orderbookId: string, limit?: number, before?: number): Promise<TradesPage> {\n const params = new URLSearchParams({ orderbook_id: orderbookId });\n if (limit !== undefined) params.set(\"limit\", String(limit));\n if (before !== undefined) params.set(\"before\", String(before));\n\n const url = `${this.client.http.baseUrl()}/api/trades?${params.toString()}`;\n const response = await this.client.http.get<TradesResponse>(url, RetryPolicy.Idempotent);\n\n return {\n trades: response.trades.map(tradeFromResponse),\n nextCursor: response.next_cursor,\n hasMore: response.has_more ?? false,\n };\n }\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import type { Trade } from "./index";
2
+ import type { TradeResponse, WsTrade } from "./wire";
3
+ export declare function tradeFromResponse(source: TradeResponse): Trade;
4
+ export declare function tradeFromWs(source: WsTrade): Trade;
5
+ //# sourceMappingURL=convert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../src/domain/trade/convert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAErD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,KAAK,CAS9D;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,KAAK,CASlD"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tradeFromResponse = tradeFromResponse;
4
+ exports.tradeFromWs = tradeFromWs;
5
+ function tradeFromResponse(source) {
6
+ return {
7
+ orderbookId: source.orderbook_id,
8
+ tradeId: String(source.id),
9
+ timestamp: new Date(source.executed_at),
10
+ price: source.price,
11
+ size: source.size,
12
+ side: source.side,
13
+ };
14
+ }
15
+ function tradeFromWs(source) {
16
+ return {
17
+ orderbookId: source.orderbook_id,
18
+ tradeId: source.trade_id,
19
+ timestamp: new Date(source.timestamp),
20
+ price: source.price,
21
+ size: source.size,
22
+ side: source.side,
23
+ };
24
+ }
25
+ //# sourceMappingURL=convert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/domain/trade/convert.ts"],"names":[],"mappings":";;AAGA,8CASC;AAED,kCASC;AApBD,SAAgB,iBAAiB,CAAC,MAAqB;IACrD,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,YAAY;QAChC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACvC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC;AACJ,CAAC;AAED,SAAgB,WAAW,CAAC,MAAe;IACzC,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,YAAY;QAChC,OAAO,EAAE,MAAM,CAAC,QAAQ;QACxB,SAAS,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QACrC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC;AACJ,CAAC","sourcesContent":["import type { Trade } from \"./index\";\nimport type { TradeResponse, WsTrade } from \"./wire\";\n\nexport function tradeFromResponse(source: TradeResponse): Trade {\n return {\n orderbookId: source.orderbook_id,\n tradeId: String(source.id),\n timestamp: new Date(source.executed_at),\n price: source.price,\n size: source.size,\n side: source.side,\n };\n}\n\nexport function tradeFromWs(source: WsTrade): Trade {\n return {\n orderbookId: source.orderbook_id,\n tradeId: source.trade_id,\n timestamp: new Date(source.timestamp),\n price: source.price,\n size: source.size,\n side: source.side,\n };\n}\n"]}
@@ -0,0 +1,19 @@
1
+ import type { OrderBookId, Side } from "../../shared";
2
+ export * from "./client";
3
+ export * from "./wire";
4
+ export * from "./state";
5
+ export { tradeFromResponse, tradeFromWs } from "./convert";
6
+ export interface Trade {
7
+ orderbookId: OrderBookId;
8
+ tradeId: string;
9
+ timestamp: Date;
10
+ price: string;
11
+ size: string;
12
+ side: Side;
13
+ }
14
+ export interface TradesPage {
15
+ trades: Trade[];
16
+ nextCursor?: number;
17
+ hasMore: boolean;
18
+ }
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/trade/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEtD,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE3D,MAAM,WAAW,KAAK;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.tradeFromWs = exports.tradeFromResponse = void 0;
18
+ __exportStar(require("./client"), exports);
19
+ __exportStar(require("./wire"), exports);
20
+ __exportStar(require("./state"), exports);
21
+ var convert_1 = require("./convert");
22
+ Object.defineProperty(exports, "tradeFromResponse", { enumerable: true, get: function () { return convert_1.tradeFromResponse; } });
23
+ Object.defineProperty(exports, "tradeFromWs", { enumerable: true, get: function () { return convert_1.tradeFromWs; } });
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/trade/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,2CAAyB;AACzB,yCAAuB;AACvB,0CAAwB;AACxB,qCAA2D;AAAlD,4GAAA,iBAAiB,OAAA;AAAE,sGAAA,WAAW,OAAA","sourcesContent":["import type { OrderBookId, Side } from \"../../shared\";\n\nexport * from \"./client\";\nexport * from \"./wire\";\nexport * from \"./state\";\nexport { tradeFromResponse, tradeFromWs } from \"./convert\";\n\nexport interface Trade {\n orderbookId: OrderBookId;\n tradeId: string;\n timestamp: Date;\n price: string;\n size: string;\n side: Side;\n}\n\nexport interface TradesPage {\n trades: Trade[];\n nextCursor?: number;\n hasMore: boolean;\n}\n"]}
@@ -0,0 +1,16 @@
1
+ import type { OrderBookId } from "../../shared";
2
+ import type { Trade } from "./index";
3
+ export declare class TradeHistory {
4
+ readonly orderbookId: OrderBookId;
5
+ private readonly maxSize;
6
+ private readonly buffer;
7
+ constructor(orderbookId: OrderBookId, maxSize: number);
8
+ push(trade: Trade): void;
9
+ replace(trades: Trade[]): void;
10
+ trades(): readonly Trade[];
11
+ latest(): Trade | undefined;
12
+ clear(): void;
13
+ len(): number;
14
+ isEmpty(): boolean;
15
+ }
16
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/domain/trade/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,qBAAa,YAAY;IACvB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAErB,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM;IAMrD,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAOxB,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;IAK9B,MAAM,IAAI,SAAS,KAAK,EAAE;IAI1B,MAAM,IAAI,KAAK,GAAG,SAAS;IAI3B,KAAK,IAAI,IAAI;IAIb,GAAG,IAAI,MAAM;IAIb,OAAO,IAAI,OAAO;CAGnB"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TradeHistory = void 0;
4
+ class TradeHistory {
5
+ orderbookId;
6
+ maxSize;
7
+ buffer;
8
+ constructor(orderbookId, maxSize) {
9
+ this.orderbookId = orderbookId;
10
+ this.maxSize = maxSize;
11
+ this.buffer = [];
12
+ }
13
+ push(trade) {
14
+ this.buffer.unshift(trade);
15
+ if (this.buffer.length > this.maxSize) {
16
+ this.buffer.pop();
17
+ }
18
+ }
19
+ replace(trades) {
20
+ this.buffer.length = 0;
21
+ this.buffer.push(...trades.slice(0, this.maxSize));
22
+ }
23
+ trades() {
24
+ return this.buffer;
25
+ }
26
+ latest() {
27
+ return this.buffer[0];
28
+ }
29
+ clear() {
30
+ this.buffer.length = 0;
31
+ }
32
+ len() {
33
+ return this.buffer.length;
34
+ }
35
+ isEmpty() {
36
+ return this.buffer.length === 0;
37
+ }
38
+ }
39
+ exports.TradeHistory = TradeHistory;
40
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/domain/trade/state.ts"],"names":[],"mappings":";;;AAGA,MAAa,YAAY;IACd,WAAW,CAAc;IACjB,OAAO,CAAS;IAChB,MAAM,CAAU;IAEjC,YAAY,WAAwB,EAAE,OAAe;QACnD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,KAAY;QACf,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,MAAe;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAClC,CAAC;CACF;AA1CD,oCA0CC","sourcesContent":["import type { OrderBookId } from \"../../shared\";\nimport type { Trade } from \"./index\";\n\nexport class TradeHistory {\n readonly orderbookId: OrderBookId;\n private readonly maxSize: number;\n private readonly buffer: Trade[];\n\n constructor(orderbookId: OrderBookId, maxSize: number) {\n this.orderbookId = orderbookId;\n this.maxSize = maxSize;\n this.buffer = [];\n }\n\n push(trade: Trade): void {\n this.buffer.unshift(trade);\n if (this.buffer.length > this.maxSize) {\n this.buffer.pop();\n }\n }\n\n replace(trades: Trade[]): void {\n this.buffer.length = 0;\n this.buffer.push(...trades.slice(0, this.maxSize));\n }\n\n trades(): readonly Trade[] {\n return this.buffer;\n }\n\n latest(): Trade | undefined {\n return this.buffer[0];\n }\n\n clear(): void {\n this.buffer.length = 0;\n }\n\n len(): number {\n return this.buffer.length;\n }\n\n isEmpty(): boolean {\n return this.buffer.length === 0;\n }\n}\n"]}
@@ -0,0 +1,34 @@
1
+ import type { OrderBookId, Side } from "../../shared";
2
+ export interface TradeResponse {
3
+ id: number;
4
+ orderbook_id: OrderBookId;
5
+ taker_pubkey: string;
6
+ maker_pubkey: string;
7
+ side: Side;
8
+ size: string;
9
+ price: string;
10
+ taker_fee?: string;
11
+ maker_fee?: string;
12
+ executed_at: number;
13
+ }
14
+ export interface TradesDecimals {
15
+ price?: number;
16
+ size?: number;
17
+ fee?: number;
18
+ }
19
+ export interface TradesResponse {
20
+ orderbook_id: OrderBookId;
21
+ trades: TradeResponse[];
22
+ next_cursor?: number;
23
+ has_more?: boolean;
24
+ decimals?: TradesDecimals;
25
+ }
26
+ export interface WsTrade {
27
+ orderbook_id: OrderBookId;
28
+ trade_id: string;
29
+ timestamp: string;
30
+ price: string;
31
+ size: string;
32
+ side: Side;
33
+ }
34
+ //# sourceMappingURL=wire.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/domain/trade/wire.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,WAAW,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,WAAW,CAAC;IAC1B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,WAAW,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=wire.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/domain/trade/wire.ts"],"names":[],"mappings":"","sourcesContent":["import type { OrderBookId, Side } from \"../../shared\";\n\nexport interface TradeResponse {\n id: number;\n orderbook_id: OrderBookId;\n taker_pubkey: string;\n maker_pubkey: string;\n side: Side;\n size: string;\n price: string;\n taker_fee?: string;\n maker_fee?: string;\n executed_at: number;\n}\n\nexport interface TradesDecimals {\n price?: number;\n size?: number;\n fee?: number;\n}\n\nexport interface TradesResponse {\n orderbook_id: OrderBookId;\n trades: TradeResponse[];\n next_cursor?: number;\n has_more?: boolean;\n decimals?: TradesDecimals;\n}\n\nexport interface WsTrade {\n orderbook_id: OrderBookId;\n trade_id: string;\n timestamp: string;\n price: string;\n size: string;\n side: Side;\n}\n"]}
@@ -0,0 +1,44 @@
1
+ export type HttpErrorVariant = "Request" | "ServerError" | "RateLimited" | "Unauthorized" | "NotFound" | "BadRequest" | "Timeout" | "MaxRetriesExceeded";
2
+ export declare class HttpError extends Error {
3
+ readonly variant: HttpErrorVariant;
4
+ readonly status?: number;
5
+ readonly body?: string;
6
+ readonly retryAfterMs?: number;
7
+ readonly attempts?: number;
8
+ constructor(params: {
9
+ variant: HttpErrorVariant;
10
+ message: string;
11
+ status?: number;
12
+ body?: string;
13
+ retryAfterMs?: number;
14
+ attempts?: number;
15
+ });
16
+ static request(message: string): HttpError;
17
+ static timeout(): HttpError;
18
+ static unauthorized(): HttpError;
19
+ static notFound(body: string): HttpError;
20
+ static badRequest(body: string): HttpError;
21
+ static rateLimited(retryAfterMs?: number): HttpError;
22
+ static serverError(status: number, body: string): HttpError;
23
+ static maxRetriesExceeded(attempts: number, lastError: string): HttpError;
24
+ }
25
+ export type WsErrorVariant = "NotConnected" | "ConnectionFailed" | "SendFailed" | "DeserializationError" | "ProtocolError" | "Closed";
26
+ export declare class WsError extends Error {
27
+ readonly variant: WsErrorVariant;
28
+ readonly code?: number;
29
+ constructor(variant: WsErrorVariant, message: string, code?: number);
30
+ }
31
+ export type AuthErrorVariant = "NotAuthenticated" | "LoginFailed" | "SignatureVerificationFailed" | "TokenExpired";
32
+ export declare class AuthError extends Error {
33
+ readonly variant: AuthErrorVariant;
34
+ constructor(variant: AuthErrorVariant, message: string);
35
+ }
36
+ export type SdkErrorVariant = "Http" | "Ws" | "Auth" | "Validation" | "Serde" | "Other";
37
+ export declare class SdkError extends Error {
38
+ readonly variant: SdkErrorVariant;
39
+ readonly causeError?: Error;
40
+ constructor(variant: SdkErrorVariant, message: string, causeError?: Error);
41
+ static from(error: unknown): SdkError;
42
+ static validation(message: string): SdkError;
43
+ }
44
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,aAAa,GACb,aAAa,GACb,cAAc,GACd,UAAU,GACV,YAAY,GACZ,SAAS,GACT,oBAAoB,CAAC;AAEzB,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAEf,MAAM,EAAE;QAClB,OAAO,EAAE,gBAAgB,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAUD,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;IAI1C,MAAM,CAAC,OAAO,IAAI,SAAS;IAI3B,MAAM,CAAC,YAAY,IAAI,SAAS;IAIhC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IASxC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IAS1C,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS;IAYpD,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS;IAS3D,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS;CAO1E;AAED,MAAM,MAAM,cAAc,GACtB,cAAc,GACd,kBAAkB,GAClB,YAAY,GACZ,sBAAsB,GACtB,eAAe,GACf,QAAQ,CAAC;AAEb,qBAAa,OAAQ,SAAQ,KAAK;IAChC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAMpE;AAED,MAAM,MAAM,gBAAgB,GACxB,kBAAkB,GAClB,aAAa,GACb,6BAA6B,GAC7B,cAAc,CAAC;AAEnB,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBAEvB,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM;CAKvD;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC;AAExF,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;gBAEhB,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK;IAOzE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ;IAsBrC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;CAG7C"}