@supalive/core 1.7.1 → 1.8.1

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 (581) hide show
  1. package/dist/index-0XwMOQBo.d.ts +2110 -0
  2. package/dist/index-0XwMOQBo.d.ts.map +1 -0
  3. package/dist/index-BHwZ0TXc.d.ts +2126 -0
  4. package/dist/index-BHwZ0TXc.d.ts.map +1 -0
  5. package/dist/index-BSqGOgxz.d.ts +2126 -0
  6. package/dist/index-BSqGOgxz.d.ts.map +1 -0
  7. package/dist/index-BSvfTwmf.d.ts +2127 -0
  8. package/dist/index-BSvfTwmf.d.ts.map +1 -0
  9. package/dist/index-BX33pXeZ.d.ts +2126 -0
  10. package/dist/index-BX33pXeZ.d.ts.map +1 -0
  11. package/dist/index-B_eYxS62.d.ts +2127 -0
  12. package/dist/index-B_eYxS62.d.ts.map +1 -0
  13. package/dist/index-BbGO7Ejp.d.ts +2126 -0
  14. package/dist/index-BbGO7Ejp.d.ts.map +1 -0
  15. package/dist/index-C2ZMPgsI.d.ts +2114 -0
  16. package/dist/index-C2ZMPgsI.d.ts.map +1 -0
  17. package/dist/index-CTFFQWz1.d.ts +2126 -0
  18. package/dist/index-CTFFQWz1.d.ts.map +1 -0
  19. package/dist/index-CjOTzplF.d.ts +2126 -0
  20. package/dist/index-CjOTzplF.d.ts.map +1 -0
  21. package/dist/index-CmFZetc-.d.ts +2127 -0
  22. package/dist/index-CmFZetc-.d.ts.map +1 -0
  23. package/dist/index-Cmrr9Tec.d.ts +2126 -0
  24. package/dist/index-Cmrr9Tec.d.ts.map +1 -0
  25. package/dist/index-CqVR7zll.d.ts +2125 -0
  26. package/dist/index-CqVR7zll.d.ts.map +1 -0
  27. package/dist/index-CtHo5xAL.d.ts +2125 -0
  28. package/dist/index-CtHo5xAL.d.ts.map +1 -0
  29. package/dist/index-Ctw7txMT.d.ts +2166 -0
  30. package/dist/index-Ctw7txMT.d.ts.map +1 -0
  31. package/dist/index-Cwbbu-XP.d.ts +2166 -0
  32. package/dist/index-Cwbbu-XP.d.ts.map +1 -0
  33. package/dist/index-Cy8IkuGR.d.ts +2125 -0
  34. package/dist/index-Cy8IkuGR.d.ts.map +1 -0
  35. package/dist/index-D4_QHo7q.d.ts +2126 -0
  36. package/dist/index-D4_QHo7q.d.ts.map +1 -0
  37. package/dist/index-D87c8EVr.d.ts +2125 -0
  38. package/dist/index-D87c8EVr.d.ts.map +1 -0
  39. package/dist/index-D9vqKJO_.d.ts +2126 -0
  40. package/dist/index-D9vqKJO_.d.ts.map +1 -0
  41. package/dist/index-DJnKNJ6y.d.ts +2110 -0
  42. package/dist/index-DJnKNJ6y.d.ts.map +1 -0
  43. package/dist/index-DTPJn741.d.ts +2126 -0
  44. package/dist/index-DTPJn741.d.ts.map +1 -0
  45. package/dist/index-DeM-i96w.d.ts +2109 -0
  46. package/dist/index-DeM-i96w.d.ts.map +1 -0
  47. package/dist/index-DfMHVkVC.d.ts +2126 -0
  48. package/dist/index-DfMHVkVC.d.ts.map +1 -0
  49. package/dist/index-DgZeS3JK.d.ts +2166 -0
  50. package/dist/index-DgZeS3JK.d.ts.map +1 -0
  51. package/dist/index-DkfqkzsC.d.ts +2125 -0
  52. package/dist/index-DkfqkzsC.d.ts.map +1 -0
  53. package/dist/index-DzGkzEaO.d.ts +2126 -0
  54. package/dist/index-DzGkzEaO.d.ts.map +1 -0
  55. package/dist/index-Dzbvt3C2.d.ts +2127 -0
  56. package/dist/index-Dzbvt3C2.d.ts.map +1 -0
  57. package/dist/index-WvntPU0e.d.ts +2111 -0
  58. package/dist/index-WvntPU0e.d.ts.map +1 -0
  59. package/dist/index-YnlFOYMJ.d.ts +2127 -0
  60. package/dist/index-YnlFOYMJ.d.ts.map +1 -0
  61. package/dist/mysql-6XsvNwxp.d.ts +109 -0
  62. package/dist/mysql-6XsvNwxp.d.ts.map +1 -0
  63. package/dist/mysql-9euRTU3L.d.ts +109 -0
  64. package/dist/mysql-9euRTU3L.d.ts.map +1 -0
  65. package/dist/mysql-B2kTH1jJ.d.ts +109 -0
  66. package/dist/mysql-B2kTH1jJ.d.ts.map +1 -0
  67. package/dist/mysql-B49q-Cmk.d.ts +109 -0
  68. package/dist/mysql-B49q-Cmk.d.ts.map +1 -0
  69. package/dist/mysql-B5FzK4eP.js +602 -0
  70. package/dist/mysql-B5FzK4eP.js.map +1 -0
  71. package/dist/mysql-B94uJ3tN.js +602 -0
  72. package/dist/mysql-B94uJ3tN.js.map +1 -0
  73. package/dist/mysql-BB7xHRP5.d.ts +109 -0
  74. package/dist/mysql-BB7xHRP5.d.ts.map +1 -0
  75. package/dist/mysql-BF2gBly8.js +602 -0
  76. package/dist/mysql-BF2gBly8.js.map +1 -0
  77. package/dist/mysql-BK0abZ2z.d.ts +109 -0
  78. package/dist/mysql-BK0abZ2z.d.ts.map +1 -0
  79. package/dist/mysql-BK5D6KCY.d.ts +109 -0
  80. package/dist/mysql-BK5D6KCY.d.ts.map +1 -0
  81. package/dist/mysql-BNIwKbOq.js +602 -0
  82. package/dist/mysql-BNIwKbOq.js.map +1 -0
  83. package/dist/mysql-BNoXrafv.js +602 -0
  84. package/dist/mysql-BNoXrafv.js.map +1 -0
  85. package/dist/mysql-BPQInRAe.js +602 -0
  86. package/dist/mysql-BPQInRAe.js.map +1 -0
  87. package/dist/mysql-BYGEXm2C.d.ts +109 -0
  88. package/dist/mysql-BYGEXm2C.d.ts.map +1 -0
  89. package/dist/mysql-BYI8YXkW.d.ts +109 -0
  90. package/dist/mysql-BYI8YXkW.d.ts.map +1 -0
  91. package/dist/mysql-BYcoH18V.js +602 -0
  92. package/dist/mysql-BYcoH18V.js.map +1 -0
  93. package/dist/mysql-BkVE_Ujv.d.ts +109 -0
  94. package/dist/mysql-BkVE_Ujv.d.ts.map +1 -0
  95. package/dist/mysql-Bm2p56cX.d.ts +109 -0
  96. package/dist/mysql-Bm2p56cX.d.ts.map +1 -0
  97. package/dist/mysql-BpXbhT7n.d.ts +109 -0
  98. package/dist/mysql-BpXbhT7n.d.ts.map +1 -0
  99. package/dist/mysql-C5mY2vsv.d.ts +109 -0
  100. package/dist/mysql-C5mY2vsv.d.ts.map +1 -0
  101. package/dist/mysql-CA7GCR62.js +602 -0
  102. package/dist/mysql-CA7GCR62.js.map +1 -0
  103. package/dist/mysql-CB92MLis.d.ts +109 -0
  104. package/dist/mysql-CB92MLis.d.ts.map +1 -0
  105. package/dist/mysql-CJzUHhkD.d.ts +109 -0
  106. package/dist/mysql-CJzUHhkD.d.ts.map +1 -0
  107. package/dist/mysql-CMxoLJKU.js +602 -0
  108. package/dist/mysql-CMxoLJKU.js.map +1 -0
  109. package/dist/mysql-CWUc2OMX.js +602 -0
  110. package/dist/mysql-CWUc2OMX.js.map +1 -0
  111. package/dist/mysql-CXjC0ysZ.js +602 -0
  112. package/dist/mysql-CXjC0ysZ.js.map +1 -0
  113. package/dist/mysql-Cki0N6RJ.d.ts +109 -0
  114. package/dist/mysql-Cki0N6RJ.d.ts.map +1 -0
  115. package/dist/mysql-CmEj_TDt.d.ts +109 -0
  116. package/dist/mysql-CmEj_TDt.d.ts.map +1 -0
  117. package/dist/mysql-CqIRmBp7.d.ts +109 -0
  118. package/dist/mysql-CqIRmBp7.d.ts.map +1 -0
  119. package/dist/mysql-CtEorg4f.d.ts +109 -0
  120. package/dist/mysql-CtEorg4f.d.ts.map +1 -0
  121. package/dist/mysql-CuOauMxY.d.ts +109 -0
  122. package/dist/mysql-CuOauMxY.d.ts.map +1 -0
  123. package/dist/mysql-CuXo3LRu.js +602 -0
  124. package/dist/mysql-CuXo3LRu.js.map +1 -0
  125. package/dist/mysql-CzTpgBoO.js +602 -0
  126. package/dist/mysql-CzTpgBoO.js.map +1 -0
  127. package/dist/mysql-D8wL7pst.js +602 -0
  128. package/dist/mysql-D8wL7pst.js.map +1 -0
  129. package/dist/mysql-DA72G9SS.d.ts +109 -0
  130. package/dist/mysql-DA72G9SS.d.ts.map +1 -0
  131. package/dist/mysql-DGE7rJ0V.js +602 -0
  132. package/dist/mysql-DGE7rJ0V.js.map +1 -0
  133. package/dist/mysql-DVAc6aZz.d.ts +109 -0
  134. package/dist/mysql-DVAc6aZz.d.ts.map +1 -0
  135. package/dist/mysql-DVwWeE_Y.d.ts +109 -0
  136. package/dist/mysql-DVwWeE_Y.d.ts.map +1 -0
  137. package/dist/mysql-Db5cdkrK.d.ts +109 -0
  138. package/dist/mysql-Db5cdkrK.d.ts.map +1 -0
  139. package/dist/mysql-DfJaMwhW.d.ts +109 -0
  140. package/dist/mysql-DfJaMwhW.d.ts.map +1 -0
  141. package/dist/mysql-DifqBSa_.d.ts +109 -0
  142. package/dist/mysql-DifqBSa_.d.ts.map +1 -0
  143. package/dist/mysql-Dir8ENr2.d.ts +109 -0
  144. package/dist/mysql-Dir8ENr2.d.ts.map +1 -0
  145. package/dist/mysql-DpjO1Ytp.d.ts +109 -0
  146. package/dist/mysql-DpjO1Ytp.d.ts.map +1 -0
  147. package/dist/mysql-DswRsxyn.js +602 -0
  148. package/dist/mysql-DswRsxyn.js.map +1 -0
  149. package/dist/mysql-Dt8SVcVr.js +602 -0
  150. package/dist/mysql-Dt8SVcVr.js.map +1 -0
  151. package/dist/mysql-DtvfcLez.js +602 -0
  152. package/dist/mysql-DtvfcLez.js.map +1 -0
  153. package/dist/mysql-Dx64LagV.d.ts +109 -0
  154. package/dist/mysql-Dx64LagV.d.ts.map +1 -0
  155. package/dist/mysql-EDJ_yHHV.d.ts +109 -0
  156. package/dist/mysql-EDJ_yHHV.d.ts.map +1 -0
  157. package/dist/mysql-EgLnP40l.js +602 -0
  158. package/dist/mysql-EgLnP40l.js.map +1 -0
  159. package/dist/mysql-HDKtlHA7.js +602 -0
  160. package/dist/mysql-HDKtlHA7.js.map +1 -0
  161. package/dist/mysql-JpthxaEC.js +602 -0
  162. package/dist/mysql-JpthxaEC.js.map +1 -0
  163. package/dist/mysql-P_b5BFqG.js +602 -0
  164. package/dist/mysql-P_b5BFqG.js.map +1 -0
  165. package/dist/mysql-SLS-B4FA.js +602 -0
  166. package/dist/mysql-SLS-B4FA.js.map +1 -0
  167. package/dist/mysql-W2O36FZp.js +602 -0
  168. package/dist/mysql-W2O36FZp.js.map +1 -0
  169. package/dist/mysql-e29bahXC.js +602 -0
  170. package/dist/mysql-e29bahXC.js.map +1 -0
  171. package/dist/mysql-xrp4lX9M.js +602 -0
  172. package/dist/mysql-xrp4lX9M.js.map +1 -0
  173. package/dist/mysql-yzsN4kja.js +602 -0
  174. package/dist/mysql-yzsN4kja.js.map +1 -0
  175. package/dist/overlap-checker-BGIygypG.js +235 -0
  176. package/dist/overlap-checker-BGIygypG.js.map +1 -0
  177. package/dist/overlap-checker-BZShba_4.js +235 -0
  178. package/dist/overlap-checker-BZShba_4.js.map +1 -0
  179. package/dist/overlap-checker-BqR9qCfy.js +235 -0
  180. package/dist/overlap-checker-BqR9qCfy.js.map +1 -0
  181. package/dist/overlap-checker-BsSy8AzX.js +235 -0
  182. package/dist/overlap-checker-BsSy8AzX.js.map +1 -0
  183. package/dist/overlap-checker-C7ZufVA_.js +235 -0
  184. package/dist/overlap-checker-C7ZufVA_.js.map +1 -0
  185. package/dist/overlap-checker-CVOLquoJ.js +235 -0
  186. package/dist/overlap-checker-CVOLquoJ.js.map +1 -0
  187. package/dist/overlap-checker-C_TrIsl9.js +235 -0
  188. package/dist/overlap-checker-C_TrIsl9.js.map +1 -0
  189. package/dist/overlap-checker-CdY929rB.js +235 -0
  190. package/dist/overlap-checker-CdY929rB.js.map +1 -0
  191. package/dist/overlap-checker-CexhOI6d.js +235 -0
  192. package/dist/overlap-checker-CexhOI6d.js.map +1 -0
  193. package/dist/overlap-checker-CiQ0i2he.js +235 -0
  194. package/dist/overlap-checker-CiQ0i2he.js.map +1 -0
  195. package/dist/overlap-checker-Clg2Tvh1.js +235 -0
  196. package/dist/overlap-checker-Clg2Tvh1.js.map +1 -0
  197. package/dist/overlap-checker-CmH6Q_Zr.js +235 -0
  198. package/dist/overlap-checker-CmH6Q_Zr.js.map +1 -0
  199. package/dist/overlap-checker-Con95unw.js +235 -0
  200. package/dist/overlap-checker-Con95unw.js.map +1 -0
  201. package/dist/overlap-checker-D3fIwrEe.js +235 -0
  202. package/dist/overlap-checker-D3fIwrEe.js.map +1 -0
  203. package/dist/overlap-checker-D8aJEZhc.js +235 -0
  204. package/dist/overlap-checker-D8aJEZhc.js.map +1 -0
  205. package/dist/overlap-checker-DF8mpxy4.js +235 -0
  206. package/dist/overlap-checker-DF8mpxy4.js.map +1 -0
  207. package/dist/overlap-checker-DMkMOPz8.js +235 -0
  208. package/dist/overlap-checker-DMkMOPz8.js.map +1 -0
  209. package/dist/overlap-checker-DNqu1-af.js +235 -0
  210. package/dist/overlap-checker-DNqu1-af.js.map +1 -0
  211. package/dist/overlap-checker-DO4z3CWn.js +235 -0
  212. package/dist/overlap-checker-DO4z3CWn.js.map +1 -0
  213. package/dist/overlap-checker-DOuPHIda.js +235 -0
  214. package/dist/overlap-checker-DOuPHIda.js.map +1 -0
  215. package/dist/overlap-checker-DPlDexLT.js +235 -0
  216. package/dist/overlap-checker-DPlDexLT.js.map +1 -0
  217. package/dist/overlap-checker-DvVGLMNQ.js +235 -0
  218. package/dist/overlap-checker-DvVGLMNQ.js.map +1 -0
  219. package/dist/overlap-checker-FEC4bTk3.js +235 -0
  220. package/dist/overlap-checker-FEC4bTk3.js.map +1 -0
  221. package/dist/overlap-checker-JLCNx5q4.js +235 -0
  222. package/dist/overlap-checker-JLCNx5q4.js.map +1 -0
  223. package/dist/overlap-checker-fpoPpTQY.js +235 -0
  224. package/dist/overlap-checker-fpoPpTQY.js.map +1 -0
  225. package/dist/overlap-checker-j0GcZW77.js +235 -0
  226. package/dist/overlap-checker-j0GcZW77.js.map +1 -0
  227. package/dist/overlap-checker-zUQdaIYv.js +235 -0
  228. package/dist/overlap-checker-zUQdaIYv.js.map +1 -0
  229. package/dist/postgres-AyB5fPHb.js +857 -0
  230. package/dist/postgres-AyB5fPHb.js.map +1 -0
  231. package/dist/postgres-B-OZJdD9.d.ts +113 -0
  232. package/dist/postgres-B-OZJdD9.d.ts.map +1 -0
  233. package/dist/postgres-B1ybwr2I.d.ts +113 -0
  234. package/dist/postgres-B1ybwr2I.d.ts.map +1 -0
  235. package/dist/postgres-B2396cQX.js +857 -0
  236. package/dist/postgres-B2396cQX.js.map +1 -0
  237. package/dist/postgres-B7w7AW5q.d.ts +113 -0
  238. package/dist/postgres-B7w7AW5q.d.ts.map +1 -0
  239. package/dist/postgres-BE2VC-lV.d.ts +113 -0
  240. package/dist/postgres-BE2VC-lV.d.ts.map +1 -0
  241. package/dist/postgres-BIVafBnG.js +857 -0
  242. package/dist/postgres-BIVafBnG.js.map +1 -0
  243. package/dist/postgres-BJ3N1ARq.d.ts +113 -0
  244. package/dist/postgres-BJ3N1ARq.d.ts.map +1 -0
  245. package/dist/postgres-BKCshpjz.d.ts +113 -0
  246. package/dist/postgres-BKCshpjz.d.ts.map +1 -0
  247. package/dist/postgres-BLDfi_c1.js +857 -0
  248. package/dist/postgres-BLDfi_c1.js.map +1 -0
  249. package/dist/postgres-BLsYmvBT.js +857 -0
  250. package/dist/postgres-BLsYmvBT.js.map +1 -0
  251. package/dist/postgres-BOHVFFRE.d.ts +113 -0
  252. package/dist/postgres-BOHVFFRE.d.ts.map +1 -0
  253. package/dist/postgres-BSm7hkOq.js +857 -0
  254. package/dist/postgres-BSm7hkOq.js.map +1 -0
  255. package/dist/postgres-Bc0E1TrW.d.ts +113 -0
  256. package/dist/postgres-Bc0E1TrW.d.ts.map +1 -0
  257. package/dist/postgres-BoMAdlCX.d.ts +113 -0
  258. package/dist/postgres-BoMAdlCX.d.ts.map +1 -0
  259. package/dist/postgres-C4x9dHnD.js +857 -0
  260. package/dist/postgres-C4x9dHnD.js.map +1 -0
  261. package/dist/postgres-C7JBu6rW.d.ts +113 -0
  262. package/dist/postgres-C7JBu6rW.d.ts.map +1 -0
  263. package/dist/postgres-C7K6Ylb-.d.ts +113 -0
  264. package/dist/postgres-C7K6Ylb-.d.ts.map +1 -0
  265. package/dist/postgres-CECxtb8l.js +857 -0
  266. package/dist/postgres-CECxtb8l.js.map +1 -0
  267. package/dist/postgres-CGHUivER.d.ts +113 -0
  268. package/dist/postgres-CGHUivER.d.ts.map +1 -0
  269. package/dist/postgres-CH2UJrpO.js +857 -0
  270. package/dist/postgres-CH2UJrpO.js.map +1 -0
  271. package/dist/postgres-CJAn-jlg.js +857 -0
  272. package/dist/postgres-CJAn-jlg.js.map +1 -0
  273. package/dist/postgres-CPZDIBB0.d.ts +113 -0
  274. package/dist/postgres-CPZDIBB0.d.ts.map +1 -0
  275. package/dist/postgres-CaxNPOOz.js +857 -0
  276. package/dist/postgres-CaxNPOOz.js.map +1 -0
  277. package/dist/postgres-Chws2Anm.js +857 -0
  278. package/dist/postgres-Chws2Anm.js.map +1 -0
  279. package/dist/postgres-Cjmj7ESy.js +857 -0
  280. package/dist/postgres-Cjmj7ESy.js.map +1 -0
  281. package/dist/postgres-Clc1i2dP.d.ts +113 -0
  282. package/dist/postgres-Clc1i2dP.d.ts.map +1 -0
  283. package/dist/postgres-Cm-bmEN9.js +857 -0
  284. package/dist/postgres-Cm-bmEN9.js.map +1 -0
  285. package/dist/postgres-CotH5IcJ.d.ts +113 -0
  286. package/dist/postgres-CotH5IcJ.d.ts.map +1 -0
  287. package/dist/postgres-CtCEIxj_.js +857 -0
  288. package/dist/postgres-CtCEIxj_.js.map +1 -0
  289. package/dist/postgres-Cwq5EPBg.js +857 -0
  290. package/dist/postgres-Cwq5EPBg.js.map +1 -0
  291. package/dist/postgres-CzE7AZii.js +857 -0
  292. package/dist/postgres-CzE7AZii.js.map +1 -0
  293. package/dist/postgres-D-9VfxTJ.js +857 -0
  294. package/dist/postgres-D-9VfxTJ.js.map +1 -0
  295. package/dist/postgres-D3yPBJPF.d.ts +113 -0
  296. package/dist/postgres-D3yPBJPF.d.ts.map +1 -0
  297. package/dist/postgres-D5r-bNx9.d.ts +113 -0
  298. package/dist/postgres-D5r-bNx9.d.ts.map +1 -0
  299. package/dist/postgres-D9uq7-pc.d.ts +113 -0
  300. package/dist/postgres-D9uq7-pc.d.ts.map +1 -0
  301. package/dist/postgres-DC-_vGdw.js +857 -0
  302. package/dist/postgres-DC-_vGdw.js.map +1 -0
  303. package/dist/postgres-DKcSOpXu.js +857 -0
  304. package/dist/postgres-DKcSOpXu.js.map +1 -0
  305. package/dist/postgres-DKrGqh_j.d.ts +113 -0
  306. package/dist/postgres-DKrGqh_j.d.ts.map +1 -0
  307. package/dist/postgres-DPje6yca.js +857 -0
  308. package/dist/postgres-DPje6yca.js.map +1 -0
  309. package/dist/postgres-DUfgpwmk.js +857 -0
  310. package/dist/postgres-DUfgpwmk.js.map +1 -0
  311. package/dist/postgres-DkxzH2Dg.d.ts +113 -0
  312. package/dist/postgres-DkxzH2Dg.d.ts.map +1 -0
  313. package/dist/postgres-Dm2hJj_z.d.ts +113 -0
  314. package/dist/postgres-Dm2hJj_z.d.ts.map +1 -0
  315. package/dist/postgres-DmvXfcDq.d.ts +113 -0
  316. package/dist/postgres-DmvXfcDq.d.ts.map +1 -0
  317. package/dist/postgres-DpJbDdVo.d.ts +113 -0
  318. package/dist/postgres-DpJbDdVo.d.ts.map +1 -0
  319. package/dist/postgres-DqMmjAnq.js +857 -0
  320. package/dist/postgres-DqMmjAnq.js.map +1 -0
  321. package/dist/postgres-Dqo6TmkC.d.ts +113 -0
  322. package/dist/postgres-Dqo6TmkC.d.ts.map +1 -0
  323. package/dist/postgres-DuJMKfZT.js +857 -0
  324. package/dist/postgres-DuJMKfZT.js.map +1 -0
  325. package/dist/postgres-DuXHCyLM.d.ts +113 -0
  326. package/dist/postgres-DuXHCyLM.d.ts.map +1 -0
  327. package/dist/postgres-GjRa0yUX.d.ts +113 -0
  328. package/dist/postgres-GjRa0yUX.d.ts.map +1 -0
  329. package/dist/postgres-QmkUq1wW.js +857 -0
  330. package/dist/postgres-QmkUq1wW.js.map +1 -0
  331. package/dist/postgres-RYL0Miyw.js +857 -0
  332. package/dist/postgres-RYL0Miyw.js.map +1 -0
  333. package/dist/postgres-TiV0hbea.d.ts +113 -0
  334. package/dist/postgres-TiV0hbea.d.ts.map +1 -0
  335. package/dist/postgres-oXKx8meT.d.ts +113 -0
  336. package/dist/postgres-oXKx8meT.d.ts.map +1 -0
  337. package/dist/postgres-sIfan-wV.d.ts +113 -0
  338. package/dist/postgres-sIfan-wV.d.ts.map +1 -0
  339. package/dist/postgres-t-CmTR4w.js +857 -0
  340. package/dist/postgres-t-CmTR4w.js.map +1 -0
  341. package/dist/postgres-wSYI5UGF.d.ts +113 -0
  342. package/dist/postgres-wSYI5UGF.d.ts.map +1 -0
  343. package/dist/query-BLQJ9SWs.js +738 -0
  344. package/dist/query-BLQJ9SWs.js.map +1 -0
  345. package/dist/query-BMkGnyXV.js +722 -0
  346. package/dist/query-BMkGnyXV.js.map +1 -0
  347. package/dist/query-BXFo-xCO.js +705 -0
  348. package/dist/query-BXFo-xCO.js.map +1 -0
  349. package/dist/query-BXMj4jr-.js +718 -0
  350. package/dist/query-BXMj4jr-.js.map +1 -0
  351. package/dist/query-BuL8f9F8.js +724 -0
  352. package/dist/query-BuL8f9F8.js.map +1 -0
  353. package/dist/query-C10FzUWC.js +721 -0
  354. package/dist/query-C10FzUWC.js.map +1 -0
  355. package/dist/query-C4u8tD4H.js +698 -0
  356. package/dist/query-C4u8tD4H.js.map +1 -0
  357. package/dist/query-CLJCQlyA.js +722 -0
  358. package/dist/query-CLJCQlyA.js.map +1 -0
  359. package/dist/query-CMzRDKYw.js +714 -0
  360. package/dist/query-CMzRDKYw.js.map +1 -0
  361. package/dist/query-CNOc_XzM.js +709 -0
  362. package/dist/query-CNOc_XzM.js.map +1 -0
  363. package/dist/query-CVKqKDJE.js +737 -0
  364. package/dist/query-CVKqKDJE.js.map +1 -0
  365. package/dist/query-CbY0iPoj.js +724 -0
  366. package/dist/query-CbY0iPoj.js.map +1 -0
  367. package/dist/query-ClVEugE4.js +693 -0
  368. package/dist/query-ClVEugE4.js.map +1 -0
  369. package/dist/query-Cx7F-ete.js +740 -0
  370. package/dist/query-Cx7F-ete.js.map +1 -0
  371. package/dist/query-Cz7nBVio.js +738 -0
  372. package/dist/query-Cz7nBVio.js.map +1 -0
  373. package/dist/query-DC40-Yjv.js +737 -0
  374. package/dist/query-DC40-Yjv.js.map +1 -0
  375. package/dist/query-DQQ-PgGW.js +724 -0
  376. package/dist/query-DQQ-PgGW.js.map +1 -0
  377. package/dist/query-DleaAa4_.js +734 -0
  378. package/dist/query-DleaAa4_.js.map +1 -0
  379. package/dist/query-EzBrnggP.js +721 -0
  380. package/dist/query-EzBrnggP.js.map +1 -0
  381. package/dist/query-LVDVZXYz.js +729 -0
  382. package/dist/query-LVDVZXYz.js.map +1 -0
  383. package/dist/query-RyqMp8z7.js +697 -0
  384. package/dist/query-RyqMp8z7.js.map +1 -0
  385. package/dist/query-UQIzz6l1.js +722 -0
  386. package/dist/query-UQIzz6l1.js.map +1 -0
  387. package/dist/query-UzuYEXCD.js +724 -0
  388. package/dist/query-UzuYEXCD.js.map +1 -0
  389. package/dist/query-a1sRfDbW.js +739 -0
  390. package/dist/query-a1sRfDbW.js.map +1 -0
  391. package/dist/query-dsNEpb6t.js +706 -0
  392. package/dist/query-dsNEpb6t.js.map +1 -0
  393. package/dist/query-ur-jCtVr.js +740 -0
  394. package/dist/query-ur-jCtVr.js.map +1 -0
  395. package/dist/realtime_db-1gVIBhXB.js +272 -0
  396. package/dist/realtime_db-1gVIBhXB.js.map +1 -0
  397. package/dist/realtime_db-B7y4VvqK.js +272 -0
  398. package/dist/realtime_db-B7y4VvqK.js.map +1 -0
  399. package/dist/realtime_db-B9p7nVqA.js +272 -0
  400. package/dist/realtime_db-B9p7nVqA.js.map +1 -0
  401. package/dist/realtime_db-BGbxIA49.js +272 -0
  402. package/dist/realtime_db-BGbxIA49.js.map +1 -0
  403. package/dist/realtime_db-BHcg-hrk.js +272 -0
  404. package/dist/realtime_db-BHcg-hrk.js.map +1 -0
  405. package/dist/realtime_db-BNGcb0XU.js +272 -0
  406. package/dist/realtime_db-BNGcb0XU.js.map +1 -0
  407. package/dist/realtime_db-BeSfp0TC.js +272 -0
  408. package/dist/realtime_db-BeSfp0TC.js.map +1 -0
  409. package/dist/realtime_db-Bqjr53bi.js +272 -0
  410. package/dist/realtime_db-Bqjr53bi.js.map +1 -0
  411. package/dist/realtime_db-CC7YVTXO.js +272 -0
  412. package/dist/realtime_db-CC7YVTXO.js.map +1 -0
  413. package/dist/realtime_db-CKC01P0a.js +272 -0
  414. package/dist/realtime_db-CKC01P0a.js.map +1 -0
  415. package/dist/realtime_db-COWVCIVH.js +272 -0
  416. package/dist/realtime_db-COWVCIVH.js.map +1 -0
  417. package/dist/realtime_db-CRzNVBAz.js +272 -0
  418. package/dist/realtime_db-CRzNVBAz.js.map +1 -0
  419. package/dist/realtime_db-Cfkgkm9D.js +272 -0
  420. package/dist/realtime_db-Cfkgkm9D.js.map +1 -0
  421. package/dist/realtime_db-D3D8n8z1.js +272 -0
  422. package/dist/realtime_db-D3D8n8z1.js.map +1 -0
  423. package/dist/realtime_db-DI5Z16wS.js +272 -0
  424. package/dist/realtime_db-DI5Z16wS.js.map +1 -0
  425. package/dist/realtime_db-DbLFDG_j.js +272 -0
  426. package/dist/realtime_db-DbLFDG_j.js.map +1 -0
  427. package/dist/realtime_db-DiYQbfeA.js +272 -0
  428. package/dist/realtime_db-DiYQbfeA.js.map +1 -0
  429. package/dist/realtime_db-DnJ7fr2H.js +272 -0
  430. package/dist/realtime_db-DnJ7fr2H.js.map +1 -0
  431. package/dist/realtime_db-DpGFkUHy.js +272 -0
  432. package/dist/realtime_db-DpGFkUHy.js.map +1 -0
  433. package/dist/realtime_db-DpZLibPQ.js +272 -0
  434. package/dist/realtime_db-DpZLibPQ.js.map +1 -0
  435. package/dist/realtime_db-DwxYj-Si.js +272 -0
  436. package/dist/realtime_db-DwxYj-Si.js.map +1 -0
  437. package/dist/realtime_db-F0o5WP5z.js +272 -0
  438. package/dist/realtime_db-F0o5WP5z.js.map +1 -0
  439. package/dist/realtime_db-G-9ZPdwx.js +272 -0
  440. package/dist/realtime_db-G-9ZPdwx.js.map +1 -0
  441. package/dist/realtime_db-NPtQRElK.js +272 -0
  442. package/dist/realtime_db-NPtQRElK.js.map +1 -0
  443. package/dist/realtime_db-Zs7Ox8YY.js +272 -0
  444. package/dist/realtime_db-Zs7Ox8YY.js.map +1 -0
  445. package/dist/realtime_db-jQ7mhwvO.js +272 -0
  446. package/dist/realtime_db-jQ7mhwvO.js.map +1 -0
  447. package/dist/realtime_db-xIwkcoDg.js +272 -0
  448. package/dist/realtime_db-xIwkcoDg.js.map +1 -0
  449. package/dist/src/client/index.d.ts +1 -1
  450. package/dist/src/client/index.js +3 -3
  451. package/dist/src/exports/mysql.d.ts +1 -1
  452. package/dist/src/exports/mysql.js +1 -1
  453. package/dist/src/exports/postgres.d.ts +1 -1
  454. package/dist/src/exports/postgres.js +1 -1
  455. package/dist/src/exports/procedure.d.ts +2 -2
  456. package/dist/src/exports/procedure.js +1 -1
  457. package/dist/src/exports/schema-sql.d.ts +1 -1
  458. package/dist/src/exports/server.d.ts +4 -4
  459. package/dist/src/exports/server.js +3 -3
  460. package/dist/src/exports/subscription-manager-worker-entry.js +2 -2
  461. package/dist/src/exports/types.d.ts +2 -2
  462. package/dist/src/exports/types.js +1 -1
  463. package/dist/subscription-worker-5l4qavz7.js +749 -0
  464. package/dist/subscription-worker-5l4qavz7.js.map +1 -0
  465. package/dist/subscription-worker-B7sDMXsu.js +749 -0
  466. package/dist/subscription-worker-B7sDMXsu.js.map +1 -0
  467. package/dist/subscription-worker-BCXO8Lwm.js +749 -0
  468. package/dist/subscription-worker-BCXO8Lwm.js.map +1 -0
  469. package/dist/subscription-worker-BEIjeBhb.js +749 -0
  470. package/dist/subscription-worker-BEIjeBhb.js.map +1 -0
  471. package/dist/subscription-worker-BQv_WD7J.js +749 -0
  472. package/dist/subscription-worker-BQv_WD7J.js.map +1 -0
  473. package/dist/subscription-worker-Beayghw3.js +749 -0
  474. package/dist/subscription-worker-Beayghw3.js.map +1 -0
  475. package/dist/subscription-worker-C4b0RWPI.js +749 -0
  476. package/dist/subscription-worker-C4b0RWPI.js.map +1 -0
  477. package/dist/subscription-worker-CFPiS-lO.js +749 -0
  478. package/dist/subscription-worker-CFPiS-lO.js.map +1 -0
  479. package/dist/subscription-worker-CKQad7zS.js +749 -0
  480. package/dist/subscription-worker-CKQad7zS.js.map +1 -0
  481. package/dist/subscription-worker-CUGSAwmV.js +749 -0
  482. package/dist/subscription-worker-CUGSAwmV.js.map +1 -0
  483. package/dist/subscription-worker-CjYVbFq2.js +749 -0
  484. package/dist/subscription-worker-CjYVbFq2.js.map +1 -0
  485. package/dist/subscription-worker-Cm-wPcp-.js +749 -0
  486. package/dist/subscription-worker-Cm-wPcp-.js.map +1 -0
  487. package/dist/subscription-worker-Cu6-TIg3.js +749 -0
  488. package/dist/subscription-worker-Cu6-TIg3.js.map +1 -0
  489. package/dist/subscription-worker-D02vQ0YL.js +749 -0
  490. package/dist/subscription-worker-D02vQ0YL.js.map +1 -0
  491. package/dist/subscription-worker-D8TcRMuX.js +749 -0
  492. package/dist/subscription-worker-D8TcRMuX.js.map +1 -0
  493. package/dist/subscription-worker-DC9v3_Xn.js +749 -0
  494. package/dist/subscription-worker-DC9v3_Xn.js.map +1 -0
  495. package/dist/subscription-worker-DHOkFYtt.js +749 -0
  496. package/dist/subscription-worker-DHOkFYtt.js.map +1 -0
  497. package/dist/subscription-worker-DrR2G0UY.js +749 -0
  498. package/dist/subscription-worker-DrR2G0UY.js.map +1 -0
  499. package/dist/subscription-worker-Dwdp_WGy.js +749 -0
  500. package/dist/subscription-worker-Dwdp_WGy.js.map +1 -0
  501. package/dist/subscription-worker-Dy1rzhyX.js +749 -0
  502. package/dist/subscription-worker-Dy1rzhyX.js.map +1 -0
  503. package/dist/subscription-worker-DyOE3VkC.js +749 -0
  504. package/dist/subscription-worker-DyOE3VkC.js.map +1 -0
  505. package/dist/subscription-worker-O731E8Bh.js +749 -0
  506. package/dist/subscription-worker-O731E8Bh.js.map +1 -0
  507. package/dist/subscription-worker-Sj1M8tbn.js +749 -0
  508. package/dist/subscription-worker-Sj1M8tbn.js.map +1 -0
  509. package/dist/subscription-worker-Zrw5q6qO.js +749 -0
  510. package/dist/subscription-worker-Zrw5q6qO.js.map +1 -0
  511. package/dist/subscription-worker-exWsillu.js +749 -0
  512. package/dist/subscription-worker-exWsillu.js.map +1 -0
  513. package/dist/subscription-worker-pTVrvvmW.js +749 -0
  514. package/dist/subscription-worker-pTVrvvmW.js.map +1 -0
  515. package/dist/subscription-worker-zvtbinBF.js +749 -0
  516. package/dist/subscription-worker-zvtbinBF.js.map +1 -0
  517. package/dist/types_db-B039N8Em.js +173 -0
  518. package/dist/types_db-B039N8Em.js.map +1 -0
  519. package/dist/types_db-NY-7zuhP.js +173 -0
  520. package/dist/types_db-NY-7zuhP.js.map +1 -0
  521. package/dist/types_server-6U7QWGuL.d.ts +328 -0
  522. package/dist/types_server-6U7QWGuL.d.ts.map +1 -0
  523. package/dist/types_server-B2rOOZ0z.d.ts +328 -0
  524. package/dist/types_server-B2rOOZ0z.d.ts.map +1 -0
  525. package/dist/types_server-B49_-V9c.d.ts +328 -0
  526. package/dist/types_server-B49_-V9c.d.ts.map +1 -0
  527. package/dist/types_server-BDHd_YTS.d.ts +328 -0
  528. package/dist/types_server-BDHd_YTS.d.ts.map +1 -0
  529. package/dist/types_server-BEX-uJc5.d.ts +328 -0
  530. package/dist/types_server-BEX-uJc5.d.ts.map +1 -0
  531. package/dist/types_server-BH5h91D0.d.ts +328 -0
  532. package/dist/types_server-BH5h91D0.d.ts.map +1 -0
  533. package/dist/types_server-BNuTxu-E.d.ts +328 -0
  534. package/dist/types_server-BNuTxu-E.d.ts.map +1 -0
  535. package/dist/types_server-BQ33p2LM.d.ts +328 -0
  536. package/dist/types_server-BQ33p2LM.d.ts.map +1 -0
  537. package/dist/types_server-BiXcNKA3.d.ts +328 -0
  538. package/dist/types_server-BiXcNKA3.d.ts.map +1 -0
  539. package/dist/types_server-BkbGHQzW.d.ts +328 -0
  540. package/dist/types_server-BkbGHQzW.d.ts.map +1 -0
  541. package/dist/types_server-BkeSAZmH.d.ts +328 -0
  542. package/dist/types_server-BkeSAZmH.d.ts.map +1 -0
  543. package/dist/types_server-BlpFFYCI.d.ts +328 -0
  544. package/dist/types_server-BlpFFYCI.d.ts.map +1 -0
  545. package/dist/types_server-BtvZjizR.d.ts +328 -0
  546. package/dist/types_server-BtvZjizR.d.ts.map +1 -0
  547. package/dist/types_server-C38fddo_.d.ts +328 -0
  548. package/dist/types_server-C38fddo_.d.ts.map +1 -0
  549. package/dist/types_server-CN02ApQ_.d.ts +328 -0
  550. package/dist/types_server-CN02ApQ_.d.ts.map +1 -0
  551. package/dist/types_server-CPd_Fuhq.d.ts +328 -0
  552. package/dist/types_server-CPd_Fuhq.d.ts.map +1 -0
  553. package/dist/types_server-Ce4bZgQJ.d.ts +328 -0
  554. package/dist/types_server-Ce4bZgQJ.d.ts.map +1 -0
  555. package/dist/types_server-CexXO5sW.d.ts +328 -0
  556. package/dist/types_server-CexXO5sW.d.ts.map +1 -0
  557. package/dist/types_server-Cq8HGFGy.d.ts +328 -0
  558. package/dist/types_server-Cq8HGFGy.d.ts.map +1 -0
  559. package/dist/types_server-CuHsqi4p.d.ts +328 -0
  560. package/dist/types_server-CuHsqi4p.d.ts.map +1 -0
  561. package/dist/types_server-D8PzF-79.d.ts +328 -0
  562. package/dist/types_server-D8PzF-79.d.ts.map +1 -0
  563. package/dist/types_server-DB3IrC2o.d.ts +328 -0
  564. package/dist/types_server-DB3IrC2o.d.ts.map +1 -0
  565. package/dist/types_server-DUV3oRXr.d.ts +328 -0
  566. package/dist/types_server-DUV3oRXr.d.ts.map +1 -0
  567. package/dist/types_server-DYNpoqfL.d.ts +328 -0
  568. package/dist/types_server-DYNpoqfL.d.ts.map +1 -0
  569. package/dist/types_server-MkSVQQVM.d.ts +328 -0
  570. package/dist/types_server-MkSVQQVM.d.ts.map +1 -0
  571. package/dist/types_server-N_coWvBq.d.ts +328 -0
  572. package/dist/types_server-N_coWvBq.d.ts.map +1 -0
  573. package/dist/types_server-XPVdOY-I.d.ts +328 -0
  574. package/dist/types_server-XPVdOY-I.d.ts.map +1 -0
  575. package/dist/types_server-eQqn3f_C.d.ts +328 -0
  576. package/dist/types_server-eQqn3f_C.d.ts.map +1 -0
  577. package/dist/types_server-hAXcDGD4.d.ts +328 -0
  578. package/dist/types_server-hAXcDGD4.d.ts.map +1 -0
  579. package/dist/types_server-sKy9tI8G.d.ts +328 -0
  580. package/dist/types_server-sKy9tI8G.d.ts.map +1 -0
  581. package/package.json +1 -1
@@ -0,0 +1,328 @@
1
+ import { Bt as SupaliveDb, Ft as JobScheduler, Tr as MutationResult, Xn as CacheLayer, nt as RegisteredProcedure } from "./index-Cmrr9Tec.js";
2
+ import { r as ObjectStorage } from "./object-storage-354KU6Mj.js";
3
+ import z from "zod";
4
+ import { IncomingMessage } from "http";
5
+ import { WebSocket } from "ws";
6
+ import { Level } from "pino";
7
+ import { Redis } from "ioredis";
8
+
9
+ //#region src/config.d.ts
10
+ /** CORS policy for the HTTP RPC endpoint. */
11
+ interface RpcCorsConfig {
12
+ /**
13
+ * Allowed origins. `"*"` sends `Access-Control-Allow-Origin: *`; a list
14
+ * echoes back a request's `Origin` only when it matches (and sets `Vary`).
15
+ * Omit `cors` entirely to send no CORS headers (same-origin only).
16
+ */
17
+ origins: string[] | "*";
18
+ }
19
+ /** Rate-limit policy for the HTTP RPC endpoint (fixed window, per instance). */
20
+ interface RpcRateLimitConfig {
21
+ /** Window length in ms. Default 60000. */
22
+ windowMs?: number;
23
+ /** Max requests per window per key. Default 120. */
24
+ max?: number;
25
+ /**
26
+ * Derive the limiter key from the request. Default: client IP
27
+ * (`X-Forwarded-For` first hop, else socket address). Return a stable string.
28
+ */
29
+ keyBy?: (req: IncomingMessage) => string;
30
+ }
31
+ /**
32
+ * Enables a one-shot HTTP RPC transport for `query`/`mutation`/`action`
33
+ * (no subscriptions — those stay WebSocket-only). Lets clients that don't need
34
+ * live queries call procedures without holding a socket open. Omit to disable
35
+ * the endpoint entirely.
36
+ */
37
+ interface RpcConfig<TContext = unknown> {
38
+ /**
39
+ * The single endpoint path. Default `/_rpc`. Every procedure is called as
40
+ * `POST {path}` with `{ name, input }` in the body — the name is never in the
41
+ * URL. Keep this distinct from `jobPath`.
42
+ */
43
+ path?: string;
44
+ /**
45
+ * Map an HTTP request to the auth `data` handed to `verifyAuth` (the same
46
+ * callback the WebSocket path uses). Default: `Authorization: Bearer <token>`
47
+ * → `{ token }`. Return `undefined` for an anonymous request.
48
+ */
49
+ auth?: (req: IncomingMessage) => Record<string, unknown> | undefined;
50
+ /** CORS policy. Omit for same-origin only (no CORS headers). */
51
+ cors?: RpcCorsConfig;
52
+ /** Rate limiting. Omit for defaults (120/min per IP); set `false` to disable. */
53
+ rateLimit?: RpcRateLimitConfig | false;
54
+ }
55
+ interface UpstashConfig {
56
+ url: string;
57
+ token: string;
58
+ redisUrl: string;
59
+ }
60
+ /** Database configuration for PostgreSQL */
61
+ interface PostgresConfig {
62
+ type: "postgres";
63
+ connectionString: string;
64
+ /** Optional max connections for the Postgres connection pool. Defaults to 10.*/
65
+ maxConnections?: number;
66
+ /** Optional min connections for the Postgres connection pool. Defaults to 1.*/
67
+ minConnections?: number;
68
+ /** Optional idle timeout for Postgres connections in milliseconds. Defaults to 30000 (30 seconds). */
69
+ idleTimeoutMillis?: number;
70
+ /** Optional connection timeout for acquiring Postgres connections in milliseconds. Defaults to 7000 (7 seconds). */
71
+ connectionTimeoutMillis?: number;
72
+ }
73
+ /** Database configuration for MySQL */
74
+ interface MySQLConfig {
75
+ type: "mysql";
76
+ connectionString: string;
77
+ /** Optional max connections for the MySQL connection pool. Defaults to 20.*/
78
+ maxConnections?: number;
79
+ /** Optional min connections for the MySQL connection pool. Defaults to 1.*/
80
+ minConnections?: number;
81
+ /** Optional idle timeout for MySQL connections in milliseconds. Defaults to 30000 (30 seconds). */
82
+ idleTimeoutMillis?: number;
83
+ /** Optional connection timeout for acquiring MySQL connections in milliseconds. Defaults to 7000 (7 seconds). */
84
+ connectionTimeoutMillis?: number;
85
+ /** Optional flag to queue connection requests when pool is exhausted. Defaults to true (queue requests). */
86
+ queueLimit?: number;
87
+ }
88
+ type DatabaseConfig = PostgresConfig | MySQLConfig;
89
+ /**
90
+ * Configuration for the Supalive WebSocket server.
91
+ */
92
+ interface SupaliveServerConfig<TContext = Record<string, unknown>> {
93
+ /** Server port (default: 3000) */
94
+ port?: number;
95
+ /** Server host (default: "0.0.0.0") */
96
+ host?: string;
97
+ cacheLayer: CacheLayer;
98
+ redisSubClient: Redis;
99
+ /**
100
+ * Subscription Manager WebSocket URL for RPC communication.
101
+ * A single sub-manager process owns all subscription state for this
102
+ * deployment. Internally it spawns N logical workers (configured on the
103
+ * sub-manager side) and routes by hash(subId) to spread CPU across them.
104
+ */
105
+ subManagerUrl: string;
106
+ /** Database instance */
107
+ database: SupaliveDb;
108
+ /**
109
+ * Optional authentication callback.
110
+ * Called when client sends auth message.
111
+ * Return null to reject authentication.
112
+ */
113
+ verifyAuth?: (data: Record<string, unknown>, sessionId: string) => Promise<TContext | null>;
114
+ /**
115
+ * Server context name for procedure routing.
116
+ * Must match the router's contextName.
117
+ */
118
+ contextName?: string;
119
+ /**
120
+ * Session TTL in seconds (default: 3600 = 1 hour).
121
+ * Sessions are kept alive while connected and expire after disconnect.
122
+ */
123
+ sessionTtlSeconds?: number;
124
+ /**
125
+ * Enable detailed logging.
126
+ */
127
+ logLevel?: Level;
128
+ /**
129
+ * Extract user ID from context for cache key generation.
130
+ * If not provided, caching is disabled (each sub recomputes independently).
131
+ */
132
+ getUserId?: (ctx: TContext | undefined) => string | null;
133
+ /**
134
+ * Cache TTL in seconds (default: 3600).
135
+ * How long query results are cached in Redis.
136
+ */
137
+ cacheTtlSeconds?: number;
138
+ /**
139
+ * Scheduler backing the job system. When provided, the server exposes an
140
+ * HTTP endpoint (`{jobPath}/<jobName>`) that the scheduler POSTs to, and
141
+ * syncs every registered recurring (cron) job at startup. Omit to disable
142
+ * jobs entirely. Use `DevScheduler` locally and `QStashScheduler` in prod.
143
+ */
144
+ scheduler: JobScheduler;
145
+ /**
146
+ * Builds the system server context handed to a job handler's `serverCtx`.
147
+ * Jobs run without a client, so this is where a deployment injects its
148
+ * "system"/service identity. Called per job invocation.
149
+ */
150
+ jobContext?: () => TContext | Promise<TContext>;
151
+ /**
152
+ * Absolute, externally-reachable base URL of this server (no trailing
153
+ * slash), e.g. `https://api.example.com` in prod or `http://127.0.0.1:3000`
154
+ * in dev. Used to build the job endpoint the scheduler calls.
155
+ */
156
+ publicUrl: string;
157
+ /**
158
+ * URL path prefix for the job webhook endpoint. Default `/_jobs`. The full
159
+ * endpoint for a job is `{publicUrl}{jobPath}/<jobName>`.
160
+ */
161
+ jobPath?: string;
162
+ /**
163
+ * Enable the one-shot HTTP RPC transport (query/mutation/action over a
164
+ * single `POST {rpc.path}` endpoint, with `{ name, input }` in the body).
165
+ * Uses the same `verifyAuth` as the WebSocket path. Omit to disable. See
166
+ * {@link RpcConfig}.
167
+ */
168
+ rpc?: RpcConfig<TContext>;
169
+ /**
170
+ * Object storage, exposed to every procedure as `ctx.storage`. When set,
171
+ * query/mutation/action/job handlers can presign uploads/downloads and
172
+ * resolve public URLs without reaching for a module-level singleton. Omit
173
+ * to leave `ctx.storage` undefined (handlers should treat uploads as
174
+ * unconfigured). Build one with `S3CompatibleStorage` from
175
+ * `@supalive/core/storage`.
176
+ */
177
+ storage: ObjectStorage;
178
+ /**
179
+ * Optional application-level Redis pub/sub for cross-instance app messages
180
+ * that are NOT part of the subscription/cache machinery — e.g. auth-token
181
+ * revocations, feature-flag flips, targeted cache busts.
182
+ *
183
+ * The server subscribes to `channels` on its EXISTING Redis subscribe
184
+ * connection (no extra connection) and hands each received message to
185
+ * `onMessage`. Publish from anywhere with
186
+ * `server.publishAppMessage(channel, message)`, which rides the shared
187
+ * command connection. Messages are opaque strings — the app owns encoding.
188
+ */
189
+ appPubSub?: AppPubSubConfig;
190
+ }
191
+ /**
192
+ * App-level pub/sub wiring (see {@link SupaliveServerConfig.appPubSub}). A thin,
193
+ * generic cross-instance message bus layered on the server's Redis connections.
194
+ */
195
+ interface AppPubSubConfig {
196
+ /** Channels this instance subscribes to. */
197
+ channels: string[];
198
+ /**
199
+ * Handler for a message received on one of `channels`. Errors are caught and
200
+ * logged by the server, so a throwing handler can't crash the subscriber.
201
+ */
202
+ onMessage: (channel: string, message: string) => void | Promise<void>;
203
+ }
204
+ interface SubscriptionManagerConfig {
205
+ port: number;
206
+ upstash: {
207
+ url: string;
208
+ token: string;
209
+ redisUrl: string;
210
+ };
211
+ database: DatabaseConfig;
212
+ cacheTTLSeconds: number;
213
+ /**
214
+ * Number of logical workers inside the sub-manager process.
215
+ *
216
+ * Subscriptions are routed by FNV-1a(subId) % workers so that all operations
217
+ * for a given subId always land on the same worker (preserving the existing
218
+ * `instances: Set<string>` dedup). Each worker owns an independent
219
+ * subscriptions Map; on invalidate, all workers scan their own slice in
220
+ * parallel (logically — JS still runs one at a time inside one event loop,
221
+ * but per-worker scans are smaller so total work is split N ways).
222
+ *
223
+ * Defaults to `SUPALIVE_SUB_MANAGER_WORKERS` env var if set, else 1.
224
+ */
225
+ workers?: number;
226
+ /**
227
+ * Connection pool size *per worker*. If omitted, falls back to
228
+ * `floor(database.maxConnections / workers)` (min 1) so the total pool
229
+ * size stays close to the legacy single-worker configuration.
230
+ */
231
+ maxConnectionsPerWorker?: number;
232
+ }
233
+ //#endregion
234
+ //#region src/server/types_server.d.ts
235
+ type InstanceId = string;
236
+ type SubId = string;
237
+ /** Local tracking of an active subscription (per-session) */
238
+ interface SubscriptionEntry {
239
+ subId: SubId;
240
+ cacheKey: string;
241
+ subscribedTimes: number;
242
+ }
243
+ /**
244
+ * A mutation that has been validated and parked on the per-session FIFO
245
+ * queue, waiting for the in-flight mutation on this socket to finish. Each
246
+ * `handleCall` for a mutation owns one of these and awaits its own
247
+ * resolve/reject so it can send the response.
248
+ */
249
+ interface PendingMutation<TContext = Record<string, unknown>> {
250
+ procedure: RegisteredProcedure<TContext>;
251
+ validatedInput: unknown;
252
+ resolve: (result: MutationResult<unknown>) => void;
253
+ reject: (err: unknown) => void;
254
+ }
255
+ /** WebSocket session (runtime, with WebSocket) */
256
+ interface Session<TContext = Record<string, unknown>> {
257
+ id: string;
258
+ ws: WebSocket;
259
+ /** Auth context from verifyAuth callback */
260
+ serverCtx?: TContext;
261
+ subIds: Set<string>;
262
+ /**
263
+ * Per-socket FIFO mutation queue. at most one mutation
264
+ * drains at a time so a single client cannot saturate the OCC retry
265
+ * loop or fan out concurrent commits that race the same rows.
266
+ */
267
+ mutationQueue: PendingMutation<TContext>[];
268
+ mutationInFlight: boolean;
269
+ /** Per-socket count of currently executing actions. */
270
+ actionInFlight: number;
271
+ /**
272
+ * Wall-clock of the last inbound frame (text message, ws-ping, or ws-pong).
273
+ * Used by the per-session heartbeat to terminate sockets that have gone
274
+ * silent past `CLIENT_TIMEOUT_MS`.
275
+ */
276
+ lastReceivedAt: number;
277
+ /**
278
+ * Wall-clock of the last outbound frame. Gates the idle-only app-level
279
+ * ping so a busy session (frequent sub:updates etc.) doesn't emit a
280
+ * redundant `{type:"ping"}` on every heartbeat tick.
281
+ */
282
+ lastSentAt: number;
283
+ /**
284
+ * Per-session combined heartbeat. Single `setInterval` that handles
285
+ * both dead-TCP detection (ws-ping or terminate) and client-watchdog
286
+ * refresh (idle-only app-level ping) on each tick.
287
+ */
288
+ heartbeatTimer: ReturnType<typeof setInterval> | null;
289
+ }
290
+ declare const RemoteSubscriptionUpdateSchema: z.ZodObject<{
291
+ type: z.ZodLiteral<"update">;
292
+ subId: z.ZodString;
293
+ data: z.ZodUnknown;
294
+ dataHash: z.ZodString;
295
+ originInstance: z.ZodString;
296
+ }, z.core.$strip>;
297
+ type RemoteSubscriptionUpdate = z.infer<typeof RemoteSubscriptionUpdateSchema>;
298
+ declare const RemoteRecomputeRaceSchema: z.ZodObject<{
299
+ type: z.ZodLiteral<"recompute-race">;
300
+ subId: z.ZodString;
301
+ cacheKey: z.ZodString;
302
+ queryName: z.ZodString;
303
+ args: z.ZodUnknown;
304
+ notifyInstances: z.ZodArray<z.ZodString>;
305
+ commitTs: z.ZodString;
306
+ originInstance: z.ZodString;
307
+ }, z.core.$strip>;
308
+ type RemoteRecomputeRace = z.infer<typeof RemoteRecomputeRaceSchema>;
309
+ declare const RemoteSubscriptionMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
310
+ type: z.ZodLiteral<"update">;
311
+ subId: z.ZodString;
312
+ data: z.ZodUnknown;
313
+ dataHash: z.ZodString;
314
+ originInstance: z.ZodString;
315
+ }, z.core.$strip>, z.ZodObject<{
316
+ type: z.ZodLiteral<"recompute-race">;
317
+ subId: z.ZodString;
318
+ cacheKey: z.ZodString;
319
+ queryName: z.ZodString;
320
+ args: z.ZodUnknown;
321
+ notifyInstances: z.ZodArray<z.ZodString>;
322
+ commitTs: z.ZodString;
323
+ originInstance: z.ZodString;
324
+ }, z.core.$strip>], "type">;
325
+ type RemoteSubscriptionMessage = z.infer<typeof RemoteSubscriptionMessageSchema>;
326
+ //#endregion
327
+ export { RpcCorsConfig as _, RemoteSubscriptionMessage as a, SupaliveServerConfig as b, RemoteSubscriptionUpdateSchema as c, SubscriptionEntry as d, AppPubSubConfig as f, RpcConfig as g, PostgresConfig as h, RemoteRecomputeRaceSchema as i, Session as l, MySQLConfig as m, PendingMutation as n, RemoteSubscriptionMessageSchema as o, DatabaseConfig as p, RemoteRecomputeRace as r, RemoteSubscriptionUpdate as s, InstanceId as t, SubId as u, RpcRateLimitConfig as v, UpstashConfig as x, SubscriptionManagerConfig as y };
328
+ //# sourceMappingURL=types_server-CN02ApQ_.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types_server-CN02ApQ_.d.ts","names":[],"sources":["../src/config.ts","../src/server/types_server.ts"],"mappings":"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"}
@@ -0,0 +1,328 @@
1
+ import { Bt as SupaliveDb, Ft as JobScheduler, Tr as MutationResult, Xn as CacheLayer, nt as RegisteredProcedure } from "./index-Ctw7txMT.js";
2
+ import { r as ObjectStorage } from "./object-storage-354KU6Mj.js";
3
+ import z from "zod";
4
+ import { IncomingMessage } from "http";
5
+ import { WebSocket } from "ws";
6
+ import { Level } from "pino";
7
+ import { Redis } from "ioredis";
8
+
9
+ //#region src/config.d.ts
10
+ /** CORS policy for the HTTP RPC endpoint. */
11
+ interface RpcCorsConfig {
12
+ /**
13
+ * Allowed origins. `"*"` sends `Access-Control-Allow-Origin: *`; a list
14
+ * echoes back a request's `Origin` only when it matches (and sets `Vary`).
15
+ * Omit `cors` entirely to send no CORS headers (same-origin only).
16
+ */
17
+ origins: string[] | "*";
18
+ }
19
+ /** Rate-limit policy for the HTTP RPC endpoint (fixed window, per instance). */
20
+ interface RpcRateLimitConfig {
21
+ /** Window length in ms. Default 60000. */
22
+ windowMs?: number;
23
+ /** Max requests per window per key. Default 120. */
24
+ max?: number;
25
+ /**
26
+ * Derive the limiter key from the request. Default: client IP
27
+ * (`X-Forwarded-For` first hop, else socket address). Return a stable string.
28
+ */
29
+ keyBy?: (req: IncomingMessage) => string;
30
+ }
31
+ /**
32
+ * Enables a one-shot HTTP RPC transport for `query`/`mutation`/`action`
33
+ * (no subscriptions — those stay WebSocket-only). Lets clients that don't need
34
+ * live queries call procedures without holding a socket open. Omit to disable
35
+ * the endpoint entirely.
36
+ */
37
+ interface RpcConfig<TContext = unknown> {
38
+ /**
39
+ * The single endpoint path. Default `/_rpc`. Every procedure is called as
40
+ * `POST {path}` with `{ name, input }` in the body — the name is never in the
41
+ * URL. Keep this distinct from `jobPath`.
42
+ */
43
+ path?: string;
44
+ /**
45
+ * Map an HTTP request to the auth `data` handed to `verifyAuth` (the same
46
+ * callback the WebSocket path uses). Default: `Authorization: Bearer <token>`
47
+ * → `{ token }`. Return `undefined` for an anonymous request.
48
+ */
49
+ auth?: (req: IncomingMessage) => Record<string, unknown> | undefined;
50
+ /** CORS policy. Omit for same-origin only (no CORS headers). */
51
+ cors?: RpcCorsConfig;
52
+ /** Rate limiting. Omit for defaults (120/min per IP); set `false` to disable. */
53
+ rateLimit?: RpcRateLimitConfig | false;
54
+ }
55
+ interface UpstashConfig {
56
+ url: string;
57
+ token: string;
58
+ redisUrl: string;
59
+ }
60
+ /** Database configuration for PostgreSQL */
61
+ interface PostgresConfig {
62
+ type: "postgres";
63
+ connectionString: string;
64
+ /** Optional max connections for the Postgres connection pool. Defaults to 10.*/
65
+ maxConnections?: number;
66
+ /** Optional min connections for the Postgres connection pool. Defaults to 1.*/
67
+ minConnections?: number;
68
+ /** Optional idle timeout for Postgres connections in milliseconds. Defaults to 30000 (30 seconds). */
69
+ idleTimeoutMillis?: number;
70
+ /** Optional connection timeout for acquiring Postgres connections in milliseconds. Defaults to 7000 (7 seconds). */
71
+ connectionTimeoutMillis?: number;
72
+ }
73
+ /** Database configuration for MySQL */
74
+ interface MySQLConfig {
75
+ type: "mysql";
76
+ connectionString: string;
77
+ /** Optional max connections for the MySQL connection pool. Defaults to 20.*/
78
+ maxConnections?: number;
79
+ /** Optional min connections for the MySQL connection pool. Defaults to 1.*/
80
+ minConnections?: number;
81
+ /** Optional idle timeout for MySQL connections in milliseconds. Defaults to 30000 (30 seconds). */
82
+ idleTimeoutMillis?: number;
83
+ /** Optional connection timeout for acquiring MySQL connections in milliseconds. Defaults to 7000 (7 seconds). */
84
+ connectionTimeoutMillis?: number;
85
+ /** Optional flag to queue connection requests when pool is exhausted. Defaults to true (queue requests). */
86
+ queueLimit?: number;
87
+ }
88
+ type DatabaseConfig = PostgresConfig | MySQLConfig;
89
+ /**
90
+ * Configuration for the Supalive WebSocket server.
91
+ */
92
+ interface SupaliveServerConfig<TContext = Record<string, unknown>> {
93
+ /** Server port (default: 3000) */
94
+ port?: number;
95
+ /** Server host (default: "0.0.0.0") */
96
+ host?: string;
97
+ cacheLayer: CacheLayer;
98
+ redisSubClient: Redis;
99
+ /**
100
+ * Subscription Manager WebSocket URL for RPC communication.
101
+ * A single sub-manager process owns all subscription state for this
102
+ * deployment. Internally it spawns N logical workers (configured on the
103
+ * sub-manager side) and routes by hash(subId) to spread CPU across them.
104
+ */
105
+ subManagerUrl: string;
106
+ /** Database instance */
107
+ database: SupaliveDb;
108
+ /**
109
+ * Optional authentication callback.
110
+ * Called when client sends auth message.
111
+ * Return null to reject authentication.
112
+ */
113
+ verifyAuth?: (data: Record<string, unknown>, sessionId: string) => Promise<TContext | null>;
114
+ /**
115
+ * Server context name for procedure routing.
116
+ * Must match the router's contextName.
117
+ */
118
+ contextName?: string;
119
+ /**
120
+ * Session TTL in seconds (default: 3600 = 1 hour).
121
+ * Sessions are kept alive while connected and expire after disconnect.
122
+ */
123
+ sessionTtlSeconds?: number;
124
+ /**
125
+ * Enable detailed logging.
126
+ */
127
+ logLevel?: Level;
128
+ /**
129
+ * Extract user ID from context for cache key generation.
130
+ * If not provided, caching is disabled (each sub recomputes independently).
131
+ */
132
+ getUserId?: (ctx: TContext | undefined) => string | null;
133
+ /**
134
+ * Cache TTL in seconds (default: 3600).
135
+ * How long query results are cached in Redis.
136
+ */
137
+ cacheTtlSeconds?: number;
138
+ /**
139
+ * Scheduler backing the job system. When provided, the server exposes an
140
+ * HTTP endpoint (`{jobPath}/<jobName>`) that the scheduler POSTs to, and
141
+ * syncs every registered recurring (cron) job at startup. Omit to disable
142
+ * jobs entirely. Use `DevScheduler` locally and `QStashScheduler` in prod.
143
+ */
144
+ scheduler: JobScheduler;
145
+ /**
146
+ * Builds the system server context handed to a job handler's `serverCtx`.
147
+ * Jobs run without a client, so this is where a deployment injects its
148
+ * "system"/service identity. Called per job invocation.
149
+ */
150
+ jobContext?: () => TContext | Promise<TContext>;
151
+ /**
152
+ * Absolute, externally-reachable base URL of this server (no trailing
153
+ * slash), e.g. `https://api.example.com` in prod or `http://127.0.0.1:3000`
154
+ * in dev. Used to build the job endpoint the scheduler calls.
155
+ */
156
+ publicUrl: string;
157
+ /**
158
+ * URL path prefix for the job webhook endpoint. Default `/_jobs`. The full
159
+ * endpoint for a job is `{publicUrl}{jobPath}/<jobName>`.
160
+ */
161
+ jobPath?: string;
162
+ /**
163
+ * Enable the one-shot HTTP RPC transport (query/mutation/action over a
164
+ * single `POST {rpc.path}` endpoint, with `{ name, input }` in the body).
165
+ * Uses the same `verifyAuth` as the WebSocket path. Omit to disable. See
166
+ * {@link RpcConfig}.
167
+ */
168
+ rpc?: RpcConfig<TContext>;
169
+ /**
170
+ * Object storage, exposed to every procedure as `ctx.storage`. When set,
171
+ * query/mutation/action/job handlers can presign uploads/downloads and
172
+ * resolve public URLs without reaching for a module-level singleton. Omit
173
+ * to leave `ctx.storage` undefined (handlers should treat uploads as
174
+ * unconfigured). Build one with `S3CompatibleStorage` from
175
+ * `@supalive/core/storage`.
176
+ */
177
+ storage: ObjectStorage;
178
+ /**
179
+ * Optional application-level Redis pub/sub for cross-instance app messages
180
+ * that are NOT part of the subscription/cache machinery — e.g. auth-token
181
+ * revocations, feature-flag flips, targeted cache busts.
182
+ *
183
+ * The server subscribes to `channels` on its EXISTING Redis subscribe
184
+ * connection (no extra connection) and hands each received message to
185
+ * `onMessage`. Publish from anywhere with
186
+ * `server.publishAppMessage(channel, message)`, which rides the shared
187
+ * command connection. Messages are opaque strings — the app owns encoding.
188
+ */
189
+ appPubSub?: AppPubSubConfig;
190
+ }
191
+ /**
192
+ * App-level pub/sub wiring (see {@link SupaliveServerConfig.appPubSub}). A thin,
193
+ * generic cross-instance message bus layered on the server's Redis connections.
194
+ */
195
+ interface AppPubSubConfig {
196
+ /** Channels this instance subscribes to. */
197
+ channels: string[];
198
+ /**
199
+ * Handler for a message received on one of `channels`. Errors are caught and
200
+ * logged by the server, so a throwing handler can't crash the subscriber.
201
+ */
202
+ onMessage: (channel: string, message: string) => void | Promise<void>;
203
+ }
204
+ interface SubscriptionManagerConfig {
205
+ port: number;
206
+ upstash: {
207
+ url: string;
208
+ token: string;
209
+ redisUrl: string;
210
+ };
211
+ database: DatabaseConfig;
212
+ cacheTTLSeconds: number;
213
+ /**
214
+ * Number of logical workers inside the sub-manager process.
215
+ *
216
+ * Subscriptions are routed by FNV-1a(subId) % workers so that all operations
217
+ * for a given subId always land on the same worker (preserving the existing
218
+ * `instances: Set<string>` dedup). Each worker owns an independent
219
+ * subscriptions Map; on invalidate, all workers scan their own slice in
220
+ * parallel (logically — JS still runs one at a time inside one event loop,
221
+ * but per-worker scans are smaller so total work is split N ways).
222
+ *
223
+ * Defaults to `SUPALIVE_SUB_MANAGER_WORKERS` env var if set, else 1.
224
+ */
225
+ workers?: number;
226
+ /**
227
+ * Connection pool size *per worker*. If omitted, falls back to
228
+ * `floor(database.maxConnections / workers)` (min 1) so the total pool
229
+ * size stays close to the legacy single-worker configuration.
230
+ */
231
+ maxConnectionsPerWorker?: number;
232
+ }
233
+ //#endregion
234
+ //#region src/server/types_server.d.ts
235
+ type InstanceId = string;
236
+ type SubId = string;
237
+ /** Local tracking of an active subscription (per-session) */
238
+ interface SubscriptionEntry {
239
+ subId: SubId;
240
+ cacheKey: string;
241
+ subscribedTimes: number;
242
+ }
243
+ /**
244
+ * A mutation that has been validated and parked on the per-session FIFO
245
+ * queue, waiting for the in-flight mutation on this socket to finish. Each
246
+ * `handleCall` for a mutation owns one of these and awaits its own
247
+ * resolve/reject so it can send the response.
248
+ */
249
+ interface PendingMutation<TContext = Record<string, unknown>> {
250
+ procedure: RegisteredProcedure<TContext>;
251
+ validatedInput: unknown;
252
+ resolve: (result: MutationResult<unknown>) => void;
253
+ reject: (err: unknown) => void;
254
+ }
255
+ /** WebSocket session (runtime, with WebSocket) */
256
+ interface Session<TContext = Record<string, unknown>> {
257
+ id: string;
258
+ ws: WebSocket;
259
+ /** Auth context from verifyAuth callback */
260
+ serverCtx?: TContext;
261
+ subIds: Set<string>;
262
+ /**
263
+ * Per-socket FIFO mutation queue. at most one mutation
264
+ * drains at a time so a single client cannot saturate the OCC retry
265
+ * loop or fan out concurrent commits that race the same rows.
266
+ */
267
+ mutationQueue: PendingMutation<TContext>[];
268
+ mutationInFlight: boolean;
269
+ /** Per-socket count of currently executing actions. */
270
+ actionInFlight: number;
271
+ /**
272
+ * Wall-clock of the last inbound frame (text message, ws-ping, or ws-pong).
273
+ * Used by the per-session heartbeat to terminate sockets that have gone
274
+ * silent past `CLIENT_TIMEOUT_MS`.
275
+ */
276
+ lastReceivedAt: number;
277
+ /**
278
+ * Wall-clock of the last outbound frame. Gates the idle-only app-level
279
+ * ping so a busy session (frequent sub:updates etc.) doesn't emit a
280
+ * redundant `{type:"ping"}` on every heartbeat tick.
281
+ */
282
+ lastSentAt: number;
283
+ /**
284
+ * Per-session combined heartbeat. Single `setInterval` that handles
285
+ * both dead-TCP detection (ws-ping or terminate) and client-watchdog
286
+ * refresh (idle-only app-level ping) on each tick.
287
+ */
288
+ heartbeatTimer: ReturnType<typeof setInterval> | null;
289
+ }
290
+ declare const RemoteSubscriptionUpdateSchema: z.ZodObject<{
291
+ type: z.ZodLiteral<"update">;
292
+ subId: z.ZodString;
293
+ data: z.ZodUnknown;
294
+ dataHash: z.ZodString;
295
+ originInstance: z.ZodString;
296
+ }, z.core.$strip>;
297
+ type RemoteSubscriptionUpdate = z.infer<typeof RemoteSubscriptionUpdateSchema>;
298
+ declare const RemoteRecomputeRaceSchema: z.ZodObject<{
299
+ type: z.ZodLiteral<"recompute-race">;
300
+ subId: z.ZodString;
301
+ cacheKey: z.ZodString;
302
+ queryName: z.ZodString;
303
+ args: z.ZodUnknown;
304
+ notifyInstances: z.ZodArray<z.ZodString>;
305
+ commitTs: z.ZodString;
306
+ originInstance: z.ZodString;
307
+ }, z.core.$strip>;
308
+ type RemoteRecomputeRace = z.infer<typeof RemoteRecomputeRaceSchema>;
309
+ declare const RemoteSubscriptionMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
310
+ type: z.ZodLiteral<"update">;
311
+ subId: z.ZodString;
312
+ data: z.ZodUnknown;
313
+ dataHash: z.ZodString;
314
+ originInstance: z.ZodString;
315
+ }, z.core.$strip>, z.ZodObject<{
316
+ type: z.ZodLiteral<"recompute-race">;
317
+ subId: z.ZodString;
318
+ cacheKey: z.ZodString;
319
+ queryName: z.ZodString;
320
+ args: z.ZodUnknown;
321
+ notifyInstances: z.ZodArray<z.ZodString>;
322
+ commitTs: z.ZodString;
323
+ originInstance: z.ZodString;
324
+ }, z.core.$strip>], "type">;
325
+ type RemoteSubscriptionMessage = z.infer<typeof RemoteSubscriptionMessageSchema>;
326
+ //#endregion
327
+ export { RpcCorsConfig as _, RemoteSubscriptionMessage as a, SupaliveServerConfig as b, RemoteSubscriptionUpdateSchema as c, SubscriptionEntry as d, AppPubSubConfig as f, RpcConfig as g, PostgresConfig as h, RemoteRecomputeRaceSchema as i, Session as l, MySQLConfig as m, PendingMutation as n, RemoteSubscriptionMessageSchema as o, DatabaseConfig as p, RemoteRecomputeRace as r, RemoteSubscriptionUpdate as s, InstanceId as t, SubId as u, RpcRateLimitConfig as v, UpstashConfig as x, SubscriptionManagerConfig as y };
328
+ //# sourceMappingURL=types_server-CPd_Fuhq.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types_server-CPd_Fuhq.d.ts","names":[],"sources":["../src/config.ts","../src/server/types_server.ts"],"mappings":"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"}