@archipelagolab/lobi 1.0.5 → 1.0.6

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 (567) hide show
  1. package/dist/APEv2Parser-FYYGMFPI.js +15 -0
  2. package/dist/APEv2Parser-FYYGMFPI.js.map +7 -0
  3. package/dist/AiffParser-JHSDQA7T.js +194 -0
  4. package/dist/AiffParser-JHSDQA7T.js.map +7 -0
  5. package/dist/AsfParser-TPCQDEJB.js +620 -0
  6. package/dist/AsfParser-TPCQDEJB.js.map +7 -0
  7. package/dist/DsdiffParser-CGD3C3TL.js +192 -0
  8. package/dist/DsdiffParser-CGD3C3TL.js.map +7 -0
  9. package/dist/DsfParser-3UTIJVNF.js +114 -0
  10. package/dist/DsfParser-3UTIJVNF.js.map +7 -0
  11. package/dist/FlacParser-HLLYPJ76.js +16 -0
  12. package/dist/FlacParser-HLLYPJ76.js.map +7 -0
  13. package/dist/MP4Parser-SM7HYL3Z.js +1145 -0
  14. package/dist/MP4Parser-SM7HYL3Z.js.map +7 -0
  15. package/dist/MatroskaParser-X7WRZ6D4.js +662 -0
  16. package/dist/MatroskaParser-X7WRZ6D4.js.map +7 -0
  17. package/dist/MpegParser-KXQEC6KD.js +652 -0
  18. package/dist/MpegParser-KXQEC6KD.js.map +7 -0
  19. package/dist/MusepackParser-NURI46TG.js +331 -0
  20. package/dist/MusepackParser-NURI46TG.js.map +7 -0
  21. package/dist/OggParser-5IYVBXPS.js +448 -0
  22. package/dist/OggParser-5IYVBXPS.js.map +7 -0
  23. package/dist/WavPackParser-RTEHKSJH.js +209 -0
  24. package/dist/WavPackParser-RTEHKSJH.js.map +7 -0
  25. package/dist/WaveParser-3R2NLXGP.js +300 -0
  26. package/dist/WaveParser-3R2NLXGP.js.map +7 -0
  27. package/dist/auth-presence.js +2 -2
  28. package/dist/channel-plugin-api.js +68 -68
  29. package/dist/chunk-2GFROLI2.js +261 -0
  30. package/dist/chunk-2GFROLI2.js.map +7 -0
  31. package/dist/chunk-2IQWKATM.js +127 -0
  32. package/dist/chunk-2IQWKATM.js.map +7 -0
  33. package/dist/chunk-2V6Y4CAN.js +25 -0
  34. package/dist/chunk-2V6Y4CAN.js.map +7 -0
  35. package/dist/chunk-2WHRUMOM.js +321 -0
  36. package/dist/chunk-2WHRUMOM.js.map +7 -0
  37. package/dist/chunk-3GIK7SAA.js +109 -0
  38. package/dist/chunk-3GIK7SAA.js.map +7 -0
  39. package/dist/chunk-3OXOEMBS.js +123 -0
  40. package/dist/chunk-3OXOEMBS.js.map +7 -0
  41. package/dist/chunk-3R4ATE4Q.js +176 -0
  42. package/dist/chunk-3R4ATE4Q.js.map +7 -0
  43. package/dist/chunk-4CFQNJ7F.js +7 -0
  44. package/dist/chunk-4CFQNJ7F.js.map +7 -0
  45. package/dist/chunk-4COI4L2Y.js +31 -0
  46. package/dist/chunk-4COI4L2Y.js.map +7 -0
  47. package/dist/chunk-4EKKDVG3.js +1662 -0
  48. package/dist/chunk-4EKKDVG3.js.map +7 -0
  49. package/dist/chunk-4L2QI6AY.js +71 -0
  50. package/dist/chunk-4L2QI6AY.js.map +7 -0
  51. package/dist/chunk-4OXPPDV6.js +676 -0
  52. package/dist/chunk-4OXPPDV6.js.map +7 -0
  53. package/dist/chunk-4QTZHELX.js +51 -0
  54. package/dist/chunk-4QTZHELX.js.map +7 -0
  55. package/dist/chunk-4U42OJMK.js +217 -0
  56. package/dist/chunk-4U42OJMK.js.map +7 -0
  57. package/dist/chunk-4WCKVGQ5.js +193 -0
  58. package/dist/chunk-4WCKVGQ5.js.map +7 -0
  59. package/dist/chunk-4XXERLFH.js +95 -0
  60. package/dist/chunk-4XXERLFH.js.map +7 -0
  61. package/dist/chunk-4ZY2BOQ4.js +123 -0
  62. package/dist/chunk-4ZY2BOQ4.js.map +7 -0
  63. package/dist/chunk-57ROEOHB.js +183 -0
  64. package/dist/chunk-57ROEOHB.js.map +7 -0
  65. package/dist/chunk-5BQ6LLNU.js +39 -0
  66. package/dist/chunk-5BQ6LLNU.js.map +7 -0
  67. package/dist/chunk-63QTHDJL.js +52 -0
  68. package/dist/chunk-63QTHDJL.js.map +7 -0
  69. package/dist/chunk-65UUVZ6B.js +151 -0
  70. package/dist/chunk-65UUVZ6B.js.map +7 -0
  71. package/dist/chunk-6COVTMAO.js +3586 -0
  72. package/dist/chunk-6COVTMAO.js.map +7 -0
  73. package/dist/chunk-6EYPDJUD.js +34 -0
  74. package/dist/chunk-6EYPDJUD.js.map +7 -0
  75. package/dist/chunk-6HDYPVA4.js +15 -0
  76. package/dist/chunk-6HDYPVA4.js.map +7 -0
  77. package/dist/chunk-6OP3FK5F.js +266 -0
  78. package/dist/chunk-6OP3FK5F.js.map +7 -0
  79. package/dist/chunk-6RBDFNSX.js +88 -0
  80. package/dist/chunk-6RBDFNSX.js.map +7 -0
  81. package/dist/chunk-6TWWCETB.js +70 -0
  82. package/dist/chunk-6TWWCETB.js.map +7 -0
  83. package/dist/chunk-6WFHPMUF.js +17 -0
  84. package/dist/chunk-6WFHPMUF.js.map +7 -0
  85. package/dist/chunk-77BEEAPD.js +86 -0
  86. package/dist/chunk-77BEEAPD.js.map +7 -0
  87. package/dist/chunk-77JJ6QJK.js +50 -0
  88. package/dist/chunk-77JJ6QJK.js.map +7 -0
  89. package/dist/chunk-7BIUNV33.js +62 -0
  90. package/dist/chunk-7BIUNV33.js.map +7 -0
  91. package/dist/chunk-7L37R42D.js +52 -0
  92. package/dist/chunk-7L37R42D.js.map +7 -0
  93. package/dist/chunk-7ZP3KYVO.js +104 -0
  94. package/dist/chunk-7ZP3KYVO.js.map +7 -0
  95. package/dist/chunk-ARGF232V.js +32 -0
  96. package/dist/chunk-ARGF232V.js.map +7 -0
  97. package/dist/chunk-ATCJOK3K.js +24 -0
  98. package/dist/chunk-ATCJOK3K.js.map +7 -0
  99. package/dist/chunk-AUUABFHL.js +124 -0
  100. package/dist/chunk-AUUABFHL.js.map +7 -0
  101. package/dist/chunk-B3NTODO7.js +57 -0
  102. package/dist/chunk-B3NTODO7.js.map +7 -0
  103. package/dist/chunk-BM7J2W36.js +86 -0
  104. package/dist/chunk-BM7J2W36.js.map +7 -0
  105. package/dist/chunk-CEB5S2Z5.js +127 -0
  106. package/dist/chunk-CEB5S2Z5.js.map +7 -0
  107. package/dist/chunk-CEKNTCJD.js +177 -0
  108. package/dist/chunk-CEKNTCJD.js.map +7 -0
  109. package/dist/chunk-CGFDIH77.js +94 -0
  110. package/dist/chunk-CGFDIH77.js.map +7 -0
  111. package/dist/chunk-CPLEC5LJ.js +26 -0
  112. package/dist/chunk-CPLEC5LJ.js.map +7 -0
  113. package/dist/chunk-D4GYYYMW.js +155 -0
  114. package/dist/chunk-D4GYYYMW.js.map +7 -0
  115. package/dist/chunk-D64CZG54.js +78 -0
  116. package/dist/chunk-D64CZG54.js.map +7 -0
  117. package/dist/chunk-DSGPDHF2.js +737 -0
  118. package/dist/chunk-DSGPDHF2.js.map +7 -0
  119. package/dist/chunk-EBXHW7ZO.js +108 -0
  120. package/dist/chunk-EBXHW7ZO.js.map +7 -0
  121. package/dist/chunk-EO35SCFP.js +7 -0
  122. package/dist/chunk-EO35SCFP.js.map +7 -0
  123. package/dist/chunk-ER2XTD2S.js +271 -0
  124. package/dist/chunk-ER2XTD2S.js.map +7 -0
  125. package/dist/chunk-ERXO3674.js +54 -0
  126. package/dist/chunk-ERXO3674.js.map +7 -0
  127. package/dist/chunk-F43CC2X2.js +49 -0
  128. package/dist/chunk-F43CC2X2.js.map +7 -0
  129. package/dist/chunk-F64TXVJJ.js +158 -0
  130. package/dist/chunk-F64TXVJJ.js.map +7 -0
  131. package/dist/chunk-F6APWSAA.js +51 -0
  132. package/dist/chunk-F6APWSAA.js.map +7 -0
  133. package/dist/chunk-F7LNS7G3.js +235 -0
  134. package/dist/chunk-F7LNS7G3.js.map +7 -0
  135. package/dist/chunk-FCNWR7ZX.js +16352 -0
  136. package/dist/chunk-FCNWR7ZX.js.map +7 -0
  137. package/dist/chunk-FFCG5NRU.js +87 -0
  138. package/dist/chunk-FFCG5NRU.js.map +7 -0
  139. package/dist/chunk-FJFC6CRR.js +446 -0
  140. package/dist/chunk-FJFC6CRR.js.map +7 -0
  141. package/dist/chunk-FK6RGYBB.js +46 -0
  142. package/dist/chunk-FK6RGYBB.js.map +7 -0
  143. package/dist/chunk-FMY6KXK6.js +251 -0
  144. package/dist/chunk-FMY6KXK6.js.map +7 -0
  145. package/dist/chunk-FPH56SCM.js +21 -0
  146. package/dist/chunk-FPH56SCM.js.map +7 -0
  147. package/dist/chunk-FVSH4Z6T.js +173 -0
  148. package/dist/chunk-FVSH4Z6T.js.map +7 -0
  149. package/dist/chunk-FVWBLEAD.js +44 -0
  150. package/dist/chunk-FVWBLEAD.js.map +7 -0
  151. package/dist/chunk-FYSARMGS.js +93 -0
  152. package/dist/chunk-FYSARMGS.js.map +7 -0
  153. package/dist/chunk-FZJOJ6P4.js +28 -0
  154. package/dist/chunk-FZJOJ6P4.js.map +7 -0
  155. package/dist/chunk-G46GHNDU.js +4890 -0
  156. package/dist/chunk-G46GHNDU.js.map +7 -0
  157. package/dist/chunk-G4TIS2SC.js +56 -0
  158. package/dist/chunk-G4TIS2SC.js.map +7 -0
  159. package/dist/chunk-GGWS7NQP.js +247 -0
  160. package/dist/chunk-GGWS7NQP.js.map +7 -0
  161. package/dist/chunk-GRBJYAYF.js +129 -0
  162. package/dist/chunk-GRBJYAYF.js.map +7 -0
  163. package/dist/chunk-GXDQGBA2.js +106 -0
  164. package/dist/chunk-GXDQGBA2.js.map +7 -0
  165. package/dist/chunk-H2HY73I6.js +122 -0
  166. package/dist/chunk-H2HY73I6.js.map +7 -0
  167. package/dist/chunk-H5MLA6PA.js +29 -0
  168. package/dist/chunk-H5MLA6PA.js.map +7 -0
  169. package/dist/chunk-H7KAUMBC.js +635 -0
  170. package/dist/chunk-H7KAUMBC.js.map +7 -0
  171. package/dist/chunk-HGHU3TVL.js +174 -0
  172. package/dist/chunk-HGHU3TVL.js.map +7 -0
  173. package/dist/chunk-HJ5E2JRL.js +88 -0
  174. package/dist/chunk-HJ5E2JRL.js.map +7 -0
  175. package/dist/chunk-HJW3CKZL.js +94 -0
  176. package/dist/chunk-HJW3CKZL.js.map +7 -0
  177. package/dist/chunk-HKF5EBER.js +418 -0
  178. package/dist/chunk-HKF5EBER.js.map +7 -0
  179. package/dist/chunk-HLUR35G5.js +30 -0
  180. package/dist/chunk-HLUR35G5.js.map +7 -0
  181. package/dist/chunk-HNIW2NZU.js +120 -0
  182. package/dist/chunk-HNIW2NZU.js.map +7 -0
  183. package/dist/chunk-HSXRCP25.js +171 -0
  184. package/dist/chunk-HSXRCP25.js.map +7 -0
  185. package/dist/chunk-I26OPZLO.js +28 -0
  186. package/dist/chunk-I26OPZLO.js.map +7 -0
  187. package/dist/chunk-I7JJQ4BQ.js +30 -0
  188. package/dist/chunk-I7JJQ4BQ.js.map +7 -0
  189. package/dist/chunk-IJ6Y4W7F.js +392 -0
  190. package/dist/chunk-IJ6Y4W7F.js.map +7 -0
  191. package/dist/chunk-IJH4NOQ4.js +18 -0
  192. package/dist/chunk-IJH4NOQ4.js.map +7 -0
  193. package/dist/chunk-IMHRZQRH.js +76 -0
  194. package/dist/chunk-IMHRZQRH.js.map +7 -0
  195. package/dist/chunk-JB6ZQEVR.js +465 -0
  196. package/dist/chunk-JB6ZQEVR.js.map +7 -0
  197. package/dist/chunk-JCWNMWNY.js +102 -0
  198. package/dist/chunk-JCWNMWNY.js.map +7 -0
  199. package/dist/chunk-JGIZPU2Y.js +39 -0
  200. package/dist/chunk-JGIZPU2Y.js.map +7 -0
  201. package/dist/chunk-JIU4FXA7.js +485 -0
  202. package/dist/chunk-JIU4FXA7.js.map +7 -0
  203. package/dist/chunk-JU2Y33DB.js +60 -0
  204. package/dist/chunk-JU2Y33DB.js.map +7 -0
  205. package/dist/chunk-JVLRI4RU.js +62 -0
  206. package/dist/chunk-JVLRI4RU.js.map +7 -0
  207. package/dist/chunk-JZ3AVNZC.js +44117 -0
  208. package/dist/chunk-JZ3AVNZC.js.map +7 -0
  209. package/dist/chunk-K3HEWOHN.js +30 -0
  210. package/dist/chunk-K3HEWOHN.js.map +7 -0
  211. package/dist/chunk-K5EK4WZV.js +7 -0
  212. package/dist/chunk-K5EK4WZV.js.map +7 -0
  213. package/dist/chunk-KAWXMSYC.js +58 -0
  214. package/dist/chunk-KAWXMSYC.js.map +7 -0
  215. package/dist/chunk-KEGPHS4C.js +80 -0
  216. package/dist/chunk-KEGPHS4C.js.map +7 -0
  217. package/dist/chunk-KXXVR3DC.js +244 -0
  218. package/dist/chunk-KXXVR3DC.js.map +7 -0
  219. package/dist/chunk-L5T6XUDP.js +412 -0
  220. package/dist/chunk-L5T6XUDP.js.map +7 -0
  221. package/dist/chunk-LIFXTQ4U.js +7287 -0
  222. package/dist/chunk-LIFXTQ4U.js.map +7 -0
  223. package/dist/chunk-LMD5UTKM.js +169 -0
  224. package/dist/chunk-LMD5UTKM.js.map +7 -0
  225. package/dist/chunk-LTXNC6JX.js +27 -0
  226. package/dist/chunk-LTXNC6JX.js.map +7 -0
  227. package/dist/chunk-LUGTGPT6.js +138 -0
  228. package/dist/chunk-LUGTGPT6.js.map +7 -0
  229. package/dist/chunk-LZQFDJNW.js +300 -0
  230. package/dist/chunk-LZQFDJNW.js.map +7 -0
  231. package/dist/chunk-M4VQPIF4.js +5853 -0
  232. package/dist/chunk-M4VQPIF4.js.map +7 -0
  233. package/dist/chunk-M64QE4QC.js +64 -0
  234. package/dist/chunk-M64QE4QC.js.map +7 -0
  235. package/dist/chunk-MJ2GW6SU.js +163 -0
  236. package/dist/chunk-MJ2GW6SU.js.map +7 -0
  237. package/dist/chunk-MYSK3SIM.js +55 -0
  238. package/dist/chunk-MYSK3SIM.js.map +7 -0
  239. package/dist/chunk-N46MIZXB.js +154 -0
  240. package/dist/chunk-N46MIZXB.js.map +7 -0
  241. package/dist/chunk-N53537P6.js +31 -0
  242. package/dist/chunk-N53537P6.js.map +7 -0
  243. package/dist/chunk-N5CTFOLX.js +40 -0
  244. package/dist/chunk-N5CTFOLX.js.map +7 -0
  245. package/dist/chunk-NIFG55CE.js +52 -0
  246. package/dist/chunk-NIFG55CE.js.map +7 -0
  247. package/dist/chunk-NJ63ALPX.js +7 -0
  248. package/dist/chunk-NJ63ALPX.js.map +7 -0
  249. package/dist/chunk-NZVHE4IT.js +3101 -0
  250. package/dist/chunk-NZVHE4IT.js.map +7 -0
  251. package/dist/chunk-O7ORICEC.js +82 -0
  252. package/dist/chunk-O7ORICEC.js.map +7 -0
  253. package/dist/chunk-OBMBAM3N.js +73 -0
  254. package/dist/chunk-OBMBAM3N.js.map +7 -0
  255. package/dist/chunk-OJJBD5K3.js +45 -0
  256. package/dist/chunk-OJJBD5K3.js.map +7 -0
  257. package/dist/chunk-OKDOVX4B.js +699 -0
  258. package/dist/chunk-OKDOVX4B.js.map +7 -0
  259. package/dist/chunk-OVMDMCZ5.js +241 -0
  260. package/dist/chunk-OVMDMCZ5.js.map +7 -0
  261. package/dist/chunk-OVU43GJK.js +63 -0
  262. package/dist/chunk-OVU43GJK.js.map +7 -0
  263. package/dist/chunk-P3TMARA6.js +18 -0
  264. package/dist/chunk-P3TMARA6.js.map +7 -0
  265. package/dist/chunk-PLMOTQ42.js +335 -0
  266. package/dist/chunk-PLMOTQ42.js.map +7 -0
  267. package/dist/chunk-Q6H5OV2R.js +180 -0
  268. package/dist/chunk-Q6H5OV2R.js.map +7 -0
  269. package/dist/chunk-QAR5POXD.js +472 -0
  270. package/dist/chunk-QAR5POXD.js.map +7 -0
  271. package/dist/chunk-R5S76YR5.js +12 -0
  272. package/dist/chunk-R5S76YR5.js.map +7 -0
  273. package/dist/chunk-R7ZBOXPS.js +163 -0
  274. package/dist/chunk-R7ZBOXPS.js.map +7 -0
  275. package/dist/chunk-RAL3KX76.js +239 -0
  276. package/dist/chunk-RAL3KX76.js.map +7 -0
  277. package/dist/chunk-RHITG64O.js +50 -0
  278. package/dist/chunk-RHITG64O.js.map +7 -0
  279. package/dist/chunk-RK5HZFP6.js +111 -0
  280. package/dist/chunk-RK5HZFP6.js.map +7 -0
  281. package/dist/chunk-RQ26XXFS.js +45 -0
  282. package/dist/chunk-RQ26XXFS.js.map +7 -0
  283. package/dist/chunk-RSA7PKZH.js +187 -0
  284. package/dist/chunk-RSA7PKZH.js.map +7 -0
  285. package/dist/chunk-RTSINQ4T.js +78 -0
  286. package/dist/chunk-RTSINQ4T.js.map +7 -0
  287. package/dist/chunk-SH6Y4CGQ.js +175 -0
  288. package/dist/chunk-SH6Y4CGQ.js.map +7 -0
  289. package/dist/chunk-SHBAAFFH.js +74 -0
  290. package/dist/chunk-SHBAAFFH.js.map +7 -0
  291. package/dist/chunk-SPNSM6SB.js +36 -0
  292. package/dist/chunk-SPNSM6SB.js.map +7 -0
  293. package/dist/chunk-SQUHLLK5.js +125 -0
  294. package/dist/chunk-SQUHLLK5.js.map +7 -0
  295. package/dist/chunk-SWWK35VQ.js +84 -0
  296. package/dist/chunk-SWWK35VQ.js.map +7 -0
  297. package/dist/chunk-TC5ZVFV6.js +292 -0
  298. package/dist/chunk-TC5ZVFV6.js.map +7 -0
  299. package/dist/chunk-TFD7ZIYD.js +105 -0
  300. package/dist/chunk-TFD7ZIYD.js.map +7 -0
  301. package/dist/chunk-TH6ONRWT.js +516 -0
  302. package/dist/chunk-TH6ONRWT.js.map +7 -0
  303. package/dist/chunk-TMQMQ67T.js +81 -0
  304. package/dist/chunk-TMQMQ67T.js.map +7 -0
  305. package/dist/chunk-TPYWUZOR.js +178 -0
  306. package/dist/chunk-TPYWUZOR.js.map +7 -0
  307. package/dist/chunk-U2O4LE6S.js +22 -0
  308. package/dist/chunk-U2O4LE6S.js.map +7 -0
  309. package/dist/chunk-U44IVNP2.js +91 -0
  310. package/dist/chunk-U44IVNP2.js.map +7 -0
  311. package/dist/chunk-UDDWLWKZ.js +82 -0
  312. package/dist/chunk-UDDWLWKZ.js.map +7 -0
  313. package/dist/chunk-UMMPB6FL.js +506 -0
  314. package/dist/chunk-UMMPB6FL.js.map +7 -0
  315. package/dist/chunk-UP42ACP7.js +27 -0
  316. package/dist/chunk-UP42ACP7.js.map +7 -0
  317. package/dist/chunk-UPEF7ETP.js +92 -0
  318. package/dist/chunk-UPEF7ETP.js.map +7 -0
  319. package/dist/chunk-VBDLTKI2.js +130 -0
  320. package/dist/chunk-VBDLTKI2.js.map +7 -0
  321. package/dist/chunk-VCWIKEJ7.js +7 -0
  322. package/dist/chunk-VCWIKEJ7.js.map +7 -0
  323. package/dist/chunk-VPQICZQR.js +93 -0
  324. package/dist/chunk-VPQICZQR.js.map +7 -0
  325. package/dist/chunk-VRBJNFPL.js +114 -0
  326. package/dist/chunk-VRBJNFPL.js.map +7 -0
  327. package/dist/chunk-VUU5KFH3.js +38 -0
  328. package/dist/chunk-VUU5KFH3.js.map +7 -0
  329. package/dist/chunk-VVBL5CFF.js +7 -0
  330. package/dist/chunk-VVBL5CFF.js.map +7 -0
  331. package/dist/chunk-VYZEQ6KY.js +22 -0
  332. package/dist/chunk-VYZEQ6KY.js.map +7 -0
  333. package/dist/chunk-WBPQVWSU.js +198 -0
  334. package/dist/chunk-WBPQVWSU.js.map +7 -0
  335. package/dist/chunk-WS6HWBKT.js +30 -0
  336. package/dist/chunk-WS6HWBKT.js.map +7 -0
  337. package/dist/chunk-XOZPOHLG.js +233 -0
  338. package/dist/chunk-XOZPOHLG.js.map +7 -0
  339. package/dist/chunk-XR7DPSNX.js +195 -0
  340. package/dist/chunk-XR7DPSNX.js.map +7 -0
  341. package/dist/chunk-XYH4JC3U.js +7 -0
  342. package/dist/chunk-XYH4JC3U.js.map +7 -0
  343. package/dist/chunk-YB5UCHLN.js +314 -0
  344. package/dist/chunk-YB5UCHLN.js.map +7 -0
  345. package/dist/chunk-YF5DYD3X.js +97 -0
  346. package/dist/chunk-YF5DYD3X.js.map +7 -0
  347. package/dist/chunk-YGVQZCE7.js +30 -0
  348. package/dist/chunk-YGVQZCE7.js.map +7 -0
  349. package/dist/chunk-YNHADHHS.js +138 -0
  350. package/dist/chunk-YNHADHHS.js.map +7 -0
  351. package/dist/chunk-YOAMBAM2.js +70 -0
  352. package/dist/chunk-YOAMBAM2.js.map +7 -0
  353. package/dist/chunk-YWE5AQPZ.js +258 -0
  354. package/dist/chunk-YWE5AQPZ.js.map +7 -0
  355. package/dist/chunk-YWHH3MB6.js +1405 -0
  356. package/dist/chunk-YWHH3MB6.js.map +7 -0
  357. package/dist/chunk-YZ6F5N7R.js +455 -0
  358. package/dist/chunk-YZ6F5N7R.js.map +7 -0
  359. package/dist/chunk-ZFGRQIB6.js +38 -0
  360. package/dist/chunk-ZFGRQIB6.js.map +7 -0
  361. package/dist/chunk-ZGAUVPAB.js +14 -0
  362. package/dist/chunk-ZGAUVPAB.js.map +7 -0
  363. package/dist/chunk-ZGCATLM5.js +18 -0
  364. package/dist/chunk-ZGCATLM5.js.map +7 -0
  365. package/dist/chunk-ZSOPE7DO.js +92 -0
  366. package/dist/chunk-ZSOPE7DO.js.map +7 -0
  367. package/dist/chunk-ZY247PXY.js +135 -0
  368. package/dist/chunk-ZY247PXY.js.map +7 -0
  369. package/dist/cli-metadata.js +3 -3
  370. package/dist/contract-api.js +64 -64
  371. package/dist/dist-DVBXHDB4.js +549 -0
  372. package/dist/dist-DVBXHDB4.js.map +7 -0
  373. package/dist/helper-api.js +6 -6
  374. package/dist/index.js +8 -9
  375. package/dist/index.js.map +1 -1
  376. package/dist/magic-string.es-ITIPPYGW.js +1315 -0
  377. package/dist/magic-string.es-ITIPPYGW.js.map +7 -0
  378. package/dist/package.json +1 -1
  379. package/dist/plugin-entry.handlers.runtime-JLRK5XTV.js +20 -0
  380. package/dist/plugin-entry.handlers.runtime-JLRK5XTV.js.map +7 -0
  381. package/dist/runtime-api.js +9 -9
  382. package/dist/rust-crypto-7KS7OJ3F.js +5323 -0
  383. package/dist/rust-crypto-7KS7OJ3F.js.map +7 -0
  384. package/dist/secret-contract-api.js +3 -3
  385. package/dist/setup-entry.js +2 -3
  386. package/dist/setup-entry.js.map +1 -1
  387. package/dist/src/account-selection.js +5 -5
  388. package/dist/src/actions.js +18 -18
  389. package/dist/src/approval-auth.js +19 -19
  390. package/dist/src/approval-handler.runtime.js +55 -55
  391. package/dist/src/approval-ids.js +3 -3
  392. package/dist/src/approval-native.js +22 -22
  393. package/dist/src/approval-reactions.js +2 -2
  394. package/dist/src/auth-precedence.js +2 -2
  395. package/dist/src/channel-account-paths.js +3 -3
  396. package/dist/src/channel.js +68 -68
  397. package/dist/src/channel.runtime.js +51 -51
  398. package/dist/src/cli-metadata.js +2 -2
  399. package/dist/src/cli.js +63 -63
  400. package/dist/src/config-adapter.js +18 -18
  401. package/dist/src/config-schema.js +2 -2
  402. package/dist/src/directory-live.js +27 -27
  403. package/dist/src/doctor-contract.js +3 -3
  404. package/dist/src/doctor.js +24 -24
  405. package/dist/src/env-vars.js +2 -2
  406. package/dist/src/exec-approval-resolver.js +2 -2
  407. package/dist/src/exec-approvals.js +20 -20
  408. package/dist/src/group-mentions.js +20 -20
  409. package/dist/src/legacy-crypto-inspector-availability.js +2 -2
  410. package/dist/src/legacy-crypto.js +18 -18
  411. package/dist/src/legacy-state.js +16 -16
  412. package/dist/src/matrix/account-config.js +2 -2
  413. package/dist/src/matrix/accounts.js +16 -16
  414. package/dist/src/matrix/actions/client.js +30 -30
  415. package/dist/src/matrix/actions/devices.js +32 -32
  416. package/dist/src/matrix/actions/limits.js +2 -2
  417. package/dist/src/matrix/actions/messages.js +37 -37
  418. package/dist/src/matrix/actions/pins.js +36 -36
  419. package/dist/src/matrix/actions/polls.js +31 -31
  420. package/dist/src/matrix/actions/profile.js +32 -32
  421. package/dist/src/matrix/actions/reactions.js +32 -32
  422. package/dist/src/matrix/actions/room.js +32 -32
  423. package/dist/src/matrix/actions/summary.js +9 -9
  424. package/dist/src/matrix/actions/types.js +3 -3
  425. package/dist/src/matrix/actions/verification.js +37 -37
  426. package/dist/src/matrix/actions.js +51 -51
  427. package/dist/src/matrix/active-client.js +2 -2
  428. package/dist/src/matrix/async-lock.js +2 -2
  429. package/dist/src/matrix/backup-health.js +2 -2
  430. package/dist/src/matrix/client/config-runtime-api.js +3 -3
  431. package/dist/src/matrix/client/config-secret-input.runtime.js +1 -1
  432. package/dist/src/matrix/client/config.js +13 -13
  433. package/dist/src/matrix/client/create-client.js +14 -14
  434. package/dist/src/matrix/client/env-auth.js +14 -14
  435. package/dist/src/matrix/client/file-sync-store.js +17 -17
  436. package/dist/src/matrix/client/logging.js +5 -5
  437. package/dist/src/matrix/client/migration-snapshot.runtime.js +2 -2
  438. package/dist/src/matrix/client/private-network-host.js +2 -2
  439. package/dist/src/matrix/client/runtime.js +2 -2
  440. package/dist/src/matrix/client/shared.js +16 -16
  441. package/dist/src/matrix/client/storage.js +8 -8
  442. package/dist/src/matrix/client/types.js +1 -1
  443. package/dist/src/matrix/client-bootstrap.js +5 -5
  444. package/dist/src/matrix/client-resolver.test-helpers.js +2 -2
  445. package/dist/src/matrix/client.js +19 -19
  446. package/dist/src/matrix/config-paths.js +2 -2
  447. package/dist/src/matrix/config-update.js +4 -4
  448. package/dist/src/matrix/credentials-read.js +8 -8
  449. package/dist/src/matrix/credentials-write.runtime.js +1 -1
  450. package/dist/src/matrix/credentials.js +10 -10
  451. package/dist/src/matrix/deps.js +2 -2
  452. package/dist/src/matrix/device-health.js +2 -2
  453. package/dist/src/matrix/direct-management.js +6 -6
  454. package/dist/src/matrix/direct-room.js +2 -2
  455. package/dist/src/matrix/draft-stream.js +27 -27
  456. package/dist/src/matrix/encryption-guidance.js +7 -7
  457. package/dist/src/matrix/errors.js +2 -2
  458. package/dist/src/matrix/format.js +3 -3
  459. package/dist/src/matrix/legacy-crypto-inspector.js +3 -4
  460. package/dist/src/matrix/legacy-crypto-inspector.js.map +1 -1
  461. package/dist/src/matrix/media-errors.js +2 -2
  462. package/dist/src/matrix/media-text.js +2 -2
  463. package/dist/src/matrix/monitor/access-state.js +3 -3
  464. package/dist/src/matrix/monitor/ack-config.js +4 -4
  465. package/dist/src/matrix/monitor/allowlist.js +2 -2
  466. package/dist/src/matrix/monitor/auto-join.js +3 -3
  467. package/dist/src/matrix/monitor/config.js +31 -31
  468. package/dist/src/matrix/monitor/context-summary.js +5 -5
  469. package/dist/src/matrix/monitor/direct.js +7 -7
  470. package/dist/src/matrix/monitor/events.js +14 -14
  471. package/dist/src/matrix/monitor/handler.js +70 -70
  472. package/dist/src/matrix/monitor/handler.test-helpers.js +71 -71
  473. package/dist/src/matrix/monitor/inbound-dedupe.js +11 -11
  474. package/dist/src/matrix/monitor/index.js +100 -100
  475. package/dist/src/matrix/monitor/legacy-crypto-restore.js +8 -8
  476. package/dist/src/matrix/monitor/location.js +5 -5
  477. package/dist/src/matrix/monitor/media.js +4 -4
  478. package/dist/src/matrix/monitor/mentions.js +3 -3
  479. package/dist/src/matrix/monitor/reaction-events.js +30 -30
  480. package/dist/src/matrix/monitor/recent-invite.js +4 -4
  481. package/dist/src/matrix/monitor/replies.js +27 -27
  482. package/dist/src/matrix/monitor/reply-context.js +6 -6
  483. package/dist/src/matrix/monitor/room-history.js +2 -2
  484. package/dist/src/matrix/monitor/room-info.js +3 -3
  485. package/dist/src/matrix/monitor/rooms.js +3 -3
  486. package/dist/src/matrix/monitor/route.js +6 -6
  487. package/dist/src/matrix/monitor/runtime-api.js +2 -2
  488. package/dist/src/matrix/monitor/startup-verification.js +9 -9
  489. package/dist/src/matrix/monitor/startup.js +3 -3
  490. package/dist/src/matrix/monitor/status.js +4 -4
  491. package/dist/src/matrix/monitor/sync-lifecycle.js +3 -3
  492. package/dist/src/matrix/monitor/task-runner.js +2 -2
  493. package/dist/src/matrix/monitor/thread-context.js +6 -6
  494. package/dist/src/matrix/monitor/threads.js +4 -4
  495. package/dist/src/matrix/monitor/types.js +3 -3
  496. package/dist/src/matrix/monitor/verification-events.js +7 -7
  497. package/dist/src/matrix/monitor/verification-utils.js +2 -2
  498. package/dist/src/matrix/outbound-media-runtime.js +3 -3
  499. package/dist/src/matrix/poll-summary.js +4 -4
  500. package/dist/src/matrix/poll-types.js +3 -3
  501. package/dist/src/matrix/probe.js +3 -3
  502. package/dist/src/matrix/probe.runtime.js +19 -19
  503. package/dist/src/matrix/profile.js +2 -2
  504. package/dist/src/matrix/reaction-common.js +2 -2
  505. package/dist/src/matrix/sdk/crypto-bootstrap.js +9 -9
  506. package/dist/src/matrix/sdk/crypto-facade.js +2 -2
  507. package/dist/src/matrix/sdk/crypto-node.runtime.js +2 -3
  508. package/dist/src/matrix/sdk/crypto-node.runtime.js.map +1 -1
  509. package/dist/src/matrix/sdk/crypto-runtime.js +16 -16
  510. package/dist/src/matrix/sdk/decrypt-bridge.js +5 -5
  511. package/dist/src/matrix/sdk/event-helpers.js +2 -2
  512. package/dist/src/matrix/sdk/http-client.js +7 -7
  513. package/dist/src/matrix/sdk/idb-persistence-lock.js +2 -2
  514. package/dist/src/matrix/sdk/idb-persistence.js +5 -5
  515. package/dist/src/matrix/sdk/idb-persistence.test-helpers.js +1 -1
  516. package/dist/src/matrix/sdk/logger.js +3 -3
  517. package/dist/src/matrix/sdk/read-response-with-limit.js +2 -2
  518. package/dist/src/matrix/sdk/recovery-key-store.js +6 -6
  519. package/dist/src/matrix/sdk/transport.js +5 -5
  520. package/dist/src/matrix/sdk/types.js +1 -1
  521. package/dist/src/matrix/sdk/verification-manager.js +5 -5
  522. package/dist/src/matrix/sdk/verification-status.js +2 -2
  523. package/dist/src/matrix/sdk.js +31 -31
  524. package/dist/src/matrix/send/client.js +4 -4
  525. package/dist/src/matrix/send/formatting.js +7 -7
  526. package/dist/src/matrix/send/media.js +12 -12
  527. package/dist/src/matrix/send/targets.js +7 -7
  528. package/dist/src/matrix/send/types.js +3 -3
  529. package/dist/src/matrix/send.js +26 -26
  530. package/dist/src/matrix/session-store-metadata.js +3 -3
  531. package/dist/src/matrix/startup-abort.js +2 -2
  532. package/dist/src/matrix/sync-state.js +2 -2
  533. package/dist/src/matrix/target-ids.js +2 -2
  534. package/dist/src/matrix/thread-bindings-shared.js +2 -2
  535. package/dist/src/matrix/thread-bindings.js +34 -34
  536. package/dist/src/matrix-migration.runtime.js +22 -22
  537. package/dist/src/migration-config.js +15 -15
  538. package/dist/src/migration-snapshot-backup.js +2 -2
  539. package/dist/src/migration-snapshot.js +21 -21
  540. package/dist/src/onboarding.js +37 -37
  541. package/dist/src/onboarding.test-harness.js +2 -2
  542. package/dist/src/outbound.js +27 -27
  543. package/dist/src/plugin-entry.runtime.js +3 -3
  544. package/dist/src/profile-update.js +35 -35
  545. package/dist/src/record-shared.js +2 -2
  546. package/dist/src/resolve-targets.js +28 -28
  547. package/dist/src/resolver.js +2 -2
  548. package/dist/src/runtime-api.js +2 -2
  549. package/dist/src/runtime.js +2 -2
  550. package/dist/src/secret-contract.js +3 -3
  551. package/dist/src/session-route.js +19 -19
  552. package/dist/src/setup-bootstrap.js +46 -46
  553. package/dist/src/setup-config.js +18 -18
  554. package/dist/src/setup-contract.js +2 -2
  555. package/dist/src/setup-core.js +19 -19
  556. package/dist/src/setup-surface.js +38 -38
  557. package/dist/src/startup-maintenance.js +23 -23
  558. package/dist/src/storage-paths.js +2 -2
  559. package/dist/src/test-helpers.js +1 -1
  560. package/dist/src/test-mocks.js +2 -2
  561. package/dist/src/test-runtime.js +3 -3
  562. package/dist/src/tool-actions.js +62 -62
  563. package/dist/src/tool-actions.runtime.js +62 -62
  564. package/dist/src/types.js +1 -1
  565. package/dist/test-api.js +68 -68
  566. package/dist/thread-bindings-runtime.js +2 -2
  567. package/package.json +1 -1
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/matrix/client/config.ts"],
4
+ "sourcesContent": ["import { formatErrorMessage, type PinnedDispatcherPolicy } from \"openclaw/plugin-sdk/infra-runtime\";\nimport { coerceSecretRef } from \"openclaw/plugin-sdk/provider-auth\";\nimport { retryAsync } from \"openclaw/plugin-sdk/retry-runtime\";\nimport { normalizeResolvedSecretInputString } from \"openclaw/plugin-sdk/secret-input\";\nimport {\n requiresExplicitMatrixDefaultAccount,\n resolveMatrixDefaultOrOnlyAccountId,\n} from \"../../account-selection.js\";\nimport { resolveMatrixAccountStringValues } from \"../../auth-precedence.js\";\nimport { getLobiScopedEnvVarNames as getMatrixScopedEnvVarNames } from \"../../env-vars.js\";\nimport { getMatrixRuntime } from \"../../runtime.js\";\nimport type { CoreConfig } from \"../../types.js\";\nimport {\n findMatrixAccountConfig,\n resolveMatrixBaseConfig,\n listNormalizedMatrixAccountIds,\n} from \"../account-config.js\";\nimport { resolveMatrixConfigFieldPath } from \"../config-paths.js\";\nimport type { MatrixStoredCredentials } from \"../credentials-read.js\";\nimport {\n DEFAULT_ACCOUNT_ID,\n assertHttpUrlTargetsPrivateNetwork,\n isPrivateOrLoopbackHost,\n isPrivateNetworkOptInEnabled,\n type LookupFn,\n normalizeAccountId,\n normalizeOptionalAccountId,\n ssrfPolicyFromDangerouslyAllowPrivateNetwork,\n} from \"./config-runtime-api.js\";\nimport { repairCurrentTokenStorageMetaDeviceId } from \"./storage.js\";\nimport type { MatrixAuth, MatrixResolvedConfig } from \"./types.js\";\n\ntype MatrixAuthClientDeps = {\n MatrixClient: typeof import(\"../sdk.js\").MatrixClient;\n ensureMatrixSdkLoggingConfigured: typeof import(\"./logging.js\").ensureMatrixSdkLoggingConfigured;\n};\n\ntype MatrixCredentialsReadDeps = {\n loadMatrixCredentials: typeof import(\"../credentials-read.js\").loadMatrixCredentials;\n credentialsMatchConfig: typeof import(\"../credentials-read.js\").credentialsMatchConfig;\n};\n\ntype MatrixSecretInputDeps = {\n resolveConfiguredSecretInputString: typeof import(\"./config-secret-input.runtime.js\").resolveConfiguredSecretInputString;\n};\n\nlet matrixAuthClientDepsPromise: Promise<MatrixAuthClientDeps> | undefined;\nlet matrixCredentialsReadDepsPromise: Promise<MatrixCredentialsReadDeps> | undefined;\nlet matrixSecretInputDepsPromise: Promise<MatrixSecretInputDeps> | undefined;\nlet matrixAuthClientDepsForTest: MatrixAuthClientDeps | undefined;\n\nconst MATRIX_AUTH_REQUEST_RETRY_RE =\n /\\b(fetch failed|econnreset|econnrefused|enotfound|etimedout|ehostunreach|enetunreach|eai_again|und_err_|socket hang up|network|headers timeout|body timeout|connect timeout)\\b/i;\n\nexport function setMatrixAuthClientDepsForTest(deps?: {\n MatrixClient: typeof import(\"../sdk.js\").MatrixClient;\n ensureMatrixSdkLoggingConfigured: typeof import(\"./logging.js\").ensureMatrixSdkLoggingConfigured;\n}): void {\n matrixAuthClientDepsForTest = deps;\n}\n\nasync function loadMatrixAuthClientDeps(): Promise<MatrixAuthClientDeps> {\n if (matrixAuthClientDepsForTest) {\n return matrixAuthClientDepsForTest;\n }\n matrixAuthClientDepsPromise ??= Promise.all([import(\"../sdk.js\"), import(\"./logging.js\")]).then(\n ([sdkModule, loggingModule]) => ({\n MatrixClient: sdkModule.MatrixClient,\n ensureMatrixSdkLoggingConfigured: loggingModule.ensureMatrixSdkLoggingConfigured,\n }),\n );\n return await matrixAuthClientDepsPromise;\n}\n\nasync function loadMatrixCredentialsReadDeps(): Promise<MatrixCredentialsReadDeps> {\n matrixCredentialsReadDepsPromise ??= import(\"../credentials-read.js\").then(\n (credentialsReadModule) => ({\n loadMatrixCredentials: credentialsReadModule.loadMatrixCredentials,\n credentialsMatchConfig: credentialsReadModule.credentialsMatchConfig,\n }),\n );\n return await matrixCredentialsReadDepsPromise;\n}\n\nasync function loadMatrixSecretInputDeps(): Promise<MatrixSecretInputDeps> {\n matrixSecretInputDepsPromise ??= import(\"./config-secret-input.runtime.js\").then((runtime) => ({\n resolveConfiguredSecretInputString: runtime.resolveConfiguredSecretInputString,\n }));\n return await matrixSecretInputDepsPromise;\n}\n\nfunction shouldRetryMatrixAuthRequest(err: unknown): boolean {\n return MATRIX_AUTH_REQUEST_RETRY_RE.test(formatErrorMessage(err));\n}\n\nfunction isAbortSignalTriggered(signal?: AbortSignal): boolean {\n return signal?.aborted === true;\n}\n\nfunction credentialsMatchBackfillAuthLineage(params: {\n stored: MatrixStoredCredentials | null;\n auth: Pick<MatrixAuth, \"homeserver\" | \"userId\" | \"accessToken\">;\n}): boolean {\n if (!params.stored) {\n return true;\n }\n return (\n params.stored.homeserver === params.auth.homeserver &&\n params.stored.userId === params.auth.userId &&\n params.stored.accessToken === params.auth.accessToken\n );\n}\n\nasync function retryMatrixAuthRequest<T>(label: string, run: () => Promise<T>): Promise<T> {\n return await retryAsync(run, {\n attempts: 3,\n minDelayMs: 250,\n maxDelayMs: 1_500,\n jitter: 0.1,\n label,\n shouldRetry: (err) => shouldRetryMatrixAuthRequest(err),\n });\n}\n\nasync function fetchMatrixWhoamiIdentity(params: {\n homeserver: string;\n accessToken: string;\n userId?: string;\n ssrfPolicy?: MatrixResolvedConfig[\"ssrfPolicy\"];\n dispatcherPolicy?: PinnedDispatcherPolicy;\n}): Promise<{\n user_id?: string;\n device_id?: string;\n}> {\n const { MatrixClient, ensureMatrixSdkLoggingConfigured } = await loadMatrixAuthClientDeps();\n ensureMatrixSdkLoggingConfigured();\n const tempClient = new MatrixClient(params.homeserver, params.accessToken, {\n userId: params.userId,\n ssrfPolicy: params.ssrfPolicy,\n dispatcherPolicy: params.dispatcherPolicy,\n });\n return (await retryMatrixAuthRequest(\"matrix auth whoami\", async () => {\n return (await tempClient.doRequest(\"GET\", \"/_matrix/client/v3/account/whoami\")) as {\n user_id?: string;\n device_id?: string;\n };\n })) as {\n user_id?: string;\n device_id?: string;\n };\n}\n\nfunction readEnvSecretRefFallback(params: {\n value: unknown;\n env?: NodeJS.ProcessEnv;\n config?: Pick<CoreConfig, \"secrets\">;\n}): string | undefined {\n const ref = coerceSecretRef(params.value, params.config?.secrets?.defaults);\n if (!ref || ref.source !== \"env\" || !params.env) {\n return undefined;\n }\n\n const providerConfig = params.config?.secrets?.providers?.[ref.provider];\n if (providerConfig) {\n if (providerConfig.source !== \"env\") {\n throw new Error(\n `Secret provider \"${ref.provider}\" has source \"${providerConfig.source}\" but ref requests \"env\".`,\n );\n }\n if (providerConfig.allowlist && !providerConfig.allowlist.includes(ref.id)) {\n throw new Error(\n `Environment variable \"${ref.id}\" is not allowlisted in secrets.providers.${ref.provider}.allowlist.`,\n );\n }\n } else if (ref.provider !== (params.config?.secrets?.defaults?.env?.trim() || \"default\")) {\n throw new Error(\n `Secret provider \"${ref.provider}\" is not configured (ref: ${ref.source}:${ref.provider}:${ref.id}).`,\n );\n }\n\n const resolved = params.env[ref.id];\n if (typeof resolved !== \"string\") {\n return undefined;\n }\n\n const trimmed = resolved.trim();\n return trimmed.length > 0 ? trimmed : undefined;\n}\n\nfunction clean(\n value: unknown,\n path: string,\n opts?: {\n env?: NodeJS.ProcessEnv;\n config?: Pick<CoreConfig, \"secrets\">;\n allowEnvSecretRefFallback?: boolean;\n suppressSecretRef?: boolean;\n },\n): string {\n const ref = coerceSecretRef(value, opts?.config?.secrets?.defaults);\n if (opts?.suppressSecretRef && ref) {\n return \"\";\n }\n const normalizedValue = opts?.allowEnvSecretRefFallback\n ? ref?.source === \"env\"\n ? (readEnvSecretRefFallback({\n value,\n env: opts.env,\n config: opts.config,\n }) ?? value)\n : ref\n ? \"\"\n : value\n : value;\n return (\n normalizeResolvedSecretInputString({\n value: normalizedValue,\n path,\n defaults: opts?.config?.secrets?.defaults,\n }) ?? \"\"\n );\n}\n\ntype MatrixEnvConfig = {\n homeserver: string;\n userId: string;\n accessToken?: string;\n password?: string;\n deviceId?: string;\n deviceName?: string;\n};\n\ntype MatrixConfigStringField =\n | \"homeserver\"\n | \"userId\"\n | \"accessToken\"\n | \"password\"\n | \"deviceId\"\n | \"deviceName\";\n\nfunction resolveMatrixBaseConfigFieldPath(field: MatrixConfigStringField): string {\n return `channels.lobi.${field}`;\n}\n\nfunction shouldAllowEnvSecretRefFallback(field: MatrixConfigStringField): boolean {\n return field === \"accessToken\" || field === \"password\";\n}\n\ntype MatrixAuthSecretField = \"accessToken\" | \"password\";\n\ntype MatrixConfiguredAuthInput = {\n value: unknown;\n path: string;\n};\n\nfunction hasConfiguredSecretInputValue(value: unknown, cfg: Pick<CoreConfig, \"secrets\">): boolean {\n return (\n (typeof value === \"string\" && value.trim().length > 0) ||\n Boolean(coerceSecretRef(value, cfg.secrets?.defaults))\n );\n}\n\nfunction hasConfiguredMatrixAccessTokenSource(params: {\n cfg: CoreConfig;\n env: NodeJS.ProcessEnv;\n accountId: string;\n}): boolean {\n const normalizedAccountId = normalizeAccountId(params.accountId);\n const account = findMatrixAccountConfig(params.cfg, normalizedAccountId) ?? {};\n const scopedAccessTokenVar = getMatrixScopedEnvVarNames(normalizedAccountId).accessToken;\n if (\n hasConfiguredSecretInputValue(account.accessToken, params.cfg) ||\n clean(params.env[scopedAccessTokenVar], scopedAccessTokenVar).length > 0\n ) {\n return true;\n }\n if (normalizedAccountId !== DEFAULT_ACCOUNT_ID) {\n return false;\n }\n const matrix = resolveMatrixBaseConfig(params.cfg);\n return (\n hasConfiguredSecretInputValue(matrix.accessToken, params.cfg) ||\n clean(params.env.LOBI_ACCESS_TOKEN, \"LOBI_ACCESS_TOKEN\").length > 0\n );\n}\n\nfunction resolveConfiguredMatrixAuthInput(params: {\n cfg: CoreConfig;\n env: NodeJS.ProcessEnv;\n accountId: string;\n field: MatrixAuthSecretField;\n}): MatrixConfiguredAuthInput | undefined {\n const normalizedAccountId = normalizeAccountId(params.accountId);\n const account = findMatrixAccountConfig(params.cfg, normalizedAccountId) ?? {};\n const accountValue = account[params.field];\n if (accountValue !== undefined) {\n return {\n value: accountValue,\n path: resolveMatrixConfigFieldPath(params.cfg, normalizedAccountId, params.field),\n };\n }\n\n const scopedKeys = getMatrixScopedEnvVarNames(normalizedAccountId);\n const scopedEnv = resolveScopedMatrixEnvConfig(normalizedAccountId, params.env);\n const scopedValue = scopedEnv[params.field];\n if (scopedValue !== undefined) {\n return {\n value: scopedValue,\n path: params.field === \"accessToken\" ? scopedKeys.accessToken : scopedKeys.password,\n };\n }\n\n if (normalizedAccountId !== DEFAULT_ACCOUNT_ID) {\n return undefined;\n }\n\n const matrix = resolveMatrixBaseConfig(params.cfg);\n const baseValue = matrix[params.field];\n if (baseValue !== undefined) {\n return {\n value: baseValue,\n path: resolveMatrixBaseConfigFieldPath(params.field),\n };\n }\n\n const globalValue =\n params.field === \"accessToken\" ? params.env.LOBI_ACCESS_TOKEN : params.env.LOBI_PASSWORD;\n if (globalValue !== undefined) {\n return {\n value: globalValue,\n path: params.field === \"accessToken\" ? \"LOBI_ACCESS_TOKEN\" : \"LOBI_PASSWORD\",\n };\n }\n\n return undefined;\n}\n\nasync function resolveConfiguredMatrixAuthSecretInput(params: {\n cfg: CoreConfig;\n env: NodeJS.ProcessEnv;\n accountId: string;\n field: MatrixAuthSecretField;\n}): Promise<string | undefined> {\n const configured = resolveConfiguredMatrixAuthInput(params);\n if (!configured) {\n return undefined;\n }\n\n const { resolveConfiguredSecretInputString } = await loadMatrixSecretInputDeps();\n const resolved = await resolveConfiguredSecretInputString({\n config: params.cfg,\n env: params.env,\n value: configured.value,\n path: configured.path,\n unresolvedReasonStyle: \"detailed\",\n });\n if (resolved.value !== undefined) {\n return resolved.value;\n }\n\n if (coerceSecretRef(configured.value, params.cfg.secrets?.defaults)) {\n throw new Error(\n resolved.unresolvedRefReason ?? `${configured.path} SecretRef could not be resolved.`,\n );\n }\n\n return undefined;\n}\n\nfunction readMatrixBaseConfigField(\n matrix: ReturnType<typeof resolveMatrixBaseConfig>,\n field: MatrixConfigStringField,\n opts?: {\n env?: NodeJS.ProcessEnv;\n config?: Pick<CoreConfig, \"secrets\">;\n suppressSecretRef?: boolean;\n },\n): string {\n return clean(matrix[field], resolveMatrixBaseConfigFieldPath(field), {\n env: opts?.env,\n config: opts?.config,\n allowEnvSecretRefFallback: shouldAllowEnvSecretRefFallback(field),\n suppressSecretRef: opts?.suppressSecretRef,\n });\n}\n\nfunction readMatrixAccountConfigField(\n cfg: CoreConfig,\n accountId: string,\n account: Partial<Record<MatrixConfigStringField, unknown>>,\n field: MatrixConfigStringField,\n opts?: {\n env?: NodeJS.ProcessEnv;\n config?: Pick<CoreConfig, \"secrets\">;\n suppressSecretRef?: boolean;\n },\n): string {\n return clean(account[field], resolveMatrixConfigFieldPath(cfg, accountId, field), {\n env: opts?.env,\n config: opts?.config,\n allowEnvSecretRefFallback: shouldAllowEnvSecretRefFallback(field),\n suppressSecretRef: opts?.suppressSecretRef,\n });\n}\n\nfunction clampMatrixInitialSyncLimit(value: unknown): number | undefined {\n return typeof value === \"number\" ? Math.max(0, Math.floor(value)) : undefined;\n}\n\nconst MATRIX_HTTP_HOMESERVER_ERROR =\n \"Matrix homeserver must use https:// unless it targets a private or loopback host\";\n\nfunction buildMatrixNetworkFields(params: {\n allowPrivateNetwork: boolean | undefined;\n proxy?: string;\n dispatcherPolicy?: PinnedDispatcherPolicy;\n}): Pick<MatrixResolvedConfig, \"allowPrivateNetwork\" | \"ssrfPolicy\" | \"dispatcherPolicy\"> {\n const dispatcherPolicy: PinnedDispatcherPolicy | undefined =\n params.dispatcherPolicy ??\n (params.proxy ? { mode: \"explicit-proxy\", proxyUrl: params.proxy } : undefined);\n if (!params.allowPrivateNetwork && !dispatcherPolicy) {\n return {};\n }\n return {\n ...(params.allowPrivateNetwork\n ? {\n allowPrivateNetwork: true,\n ssrfPolicy: ssrfPolicyFromDangerouslyAllowPrivateNetwork(true),\n }\n : {}),\n ...(dispatcherPolicy ? { dispatcherPolicy } : {}),\n };\n}\n\nconst DEFAULT_LOBI_HOMESERVER = \"https://lobi.lobisland.com/\";\n\nexport function resolveGlobalMatrixEnvConfig(env: NodeJS.ProcessEnv): MatrixEnvConfig {\n const homeserver = clean(env.LOBI_HOMESERVER, \"LOBI_HOMESERVER\");\n return {\n homeserver: homeserver || DEFAULT_LOBI_HOMESERVER,\n userId: clean(env.LOBI_USER_ID, \"LOBI_USER_ID\"),\n accessToken: clean(env.LOBI_ACCESS_TOKEN, \"LOBI_ACCESS_TOKEN\") || undefined,\n password: clean(env.LOBI_PASSWORD, \"LOBI_PASSWORD\") || undefined,\n deviceId: clean(env.LOBI_DEVICE_ID, \"LOBI_DEVICE_ID\") || undefined,\n deviceName: clean(env.LOBI_DEVICE_NAME, \"LOBI_DEVICE_NAME\") || undefined,\n };\n}\n\nexport { getLobiScopedEnvVarNames as getMatrixScopedEnvVarNames } from \"../../env-vars.js\";\n\nexport function resolveMatrixEnvAuthReadiness(\n accountId: string,\n env: NodeJS.ProcessEnv = process.env,\n): {\n ready: boolean;\n homeserver?: string;\n userId?: string;\n sourceHint: string;\n missingMessage: string;\n} {\n const normalizedAccountId = normalizeAccountId(accountId);\n const scoped = resolveScopedMatrixEnvConfig(normalizedAccountId, env);\n const scopedReady = hasReadyMatrixEnvAuth(scoped);\n if (normalizedAccountId !== DEFAULT_ACCOUNT_ID) {\n const keys = getMatrixScopedEnvVarNames(normalizedAccountId);\n return {\n ready: scopedReady,\n homeserver: scoped.homeserver || undefined,\n userId: scoped.userId || undefined,\n sourceHint: `${keys.homeserver} (+ auth vars)`,\n missingMessage: `Set per-account env vars for \"${normalizedAccountId}\" (for example ${keys.homeserver} + ${keys.accessToken} or ${keys.userId} + ${keys.password}).`,\n };\n }\n\n const defaultScoped = resolveScopedMatrixEnvConfig(DEFAULT_ACCOUNT_ID, env);\n const global = resolveGlobalMatrixEnvConfig(env);\n const defaultScopedReady = hasReadyMatrixEnvAuth(defaultScoped);\n const globalReady = hasReadyMatrixEnvAuth(global);\n const defaultKeys = getMatrixScopedEnvVarNames(DEFAULT_ACCOUNT_ID);\n return {\n ready: defaultScopedReady || globalReady,\n homeserver: defaultScoped.homeserver || global.homeserver || undefined,\n userId: defaultScoped.userId || global.userId || undefined,\n sourceHint: \"LOBI_* or LOBI_DEFAULT_*\",\n missingMessage:\n `Set Lobi env vars for the default account ` +\n `(for example LOBI_HOMESERVER + LOBI_ACCESS_TOKEN, LOBI_USER_ID + LOBI_PASSWORD, ` +\n `or ${defaultKeys.homeserver} + ${defaultKeys.accessToken}).`,\n };\n}\n\nexport function resolveScopedMatrixEnvConfig(\n accountId: string,\n env: NodeJS.ProcessEnv = process.env,\n): MatrixEnvConfig {\n const keys = getMatrixScopedEnvVarNames(accountId);\n return {\n homeserver: clean(env[keys.homeserver], keys.homeserver),\n userId: clean(env[keys.userId], keys.userId),\n accessToken: clean(env[keys.accessToken], keys.accessToken) || undefined,\n password: clean(env[keys.password], keys.password) || undefined,\n deviceId: clean(env[keys.deviceId], keys.deviceId) || undefined,\n deviceName: clean(env[keys.deviceName], keys.deviceName) || undefined,\n };\n}\n\nfunction hasScopedMatrixEnvConfig(accountId: string, env: NodeJS.ProcessEnv): boolean {\n const scoped = resolveScopedMatrixEnvConfig(accountId, env);\n return Boolean(\n scoped.homeserver ||\n scoped.userId ||\n scoped.accessToken ||\n scoped.password ||\n scoped.deviceId ||\n scoped.deviceName,\n );\n}\n\nexport function hasReadyMatrixEnvAuth(config: {\n homeserver?: string;\n userId?: string;\n accessToken?: string;\n password?: string;\n}): boolean {\n const homeserver = clean(config.homeserver, \"matrix.env.homeserver\");\n const userId = clean(config.userId, \"matrix.env.userId\");\n const accessToken = clean(config.accessToken, \"matrix.env.accessToken\");\n const password = clean(config.password, \"matrix.env.password\");\n return Boolean(homeserver && (accessToken || (userId && password)));\n}\n\nexport function validateMatrixHomeserverUrl(\n homeserver: string,\n opts?: { allowPrivateNetwork?: boolean },\n): string {\n const trimmed = clean(homeserver, \"matrix.homeserver\");\n if (!trimmed) {\n throw new Error(\"Matrix homeserver is required (matrix.homeserver)\");\n }\n\n let parsed: URL;\n try {\n parsed = new URL(trimmed);\n } catch {\n throw new Error(\"Matrix homeserver must be a valid http(s) URL\");\n }\n\n if (parsed.protocol !== \"https:\" && parsed.protocol !== \"http:\") {\n throw new Error(\"Matrix homeserver must use http:// or https://\");\n }\n if (!parsed.hostname) {\n throw new Error(\"Matrix homeserver must include a hostname\");\n }\n if (parsed.username || parsed.password) {\n throw new Error(\"Matrix homeserver URL must not include embedded credentials\");\n }\n if (parsed.search || parsed.hash) {\n throw new Error(\"Matrix homeserver URL must not include query strings or fragments\");\n }\n if (\n parsed.protocol === \"http:\" &&\n opts?.allowPrivateNetwork !== true &&\n !isPrivateOrLoopbackHost(parsed.hostname)\n ) {\n throw new Error(MATRIX_HTTP_HOMESERVER_ERROR);\n }\n\n return trimmed;\n}\n\nexport async function resolveValidatedMatrixHomeserverUrl(\n homeserver: string,\n opts?: {\n dangerouslyAllowPrivateNetwork?: boolean;\n allowPrivateNetwork?: boolean;\n lookupFn?: LookupFn;\n },\n): Promise<string> {\n const allowPrivateNetwork =\n typeof opts?.dangerouslyAllowPrivateNetwork === \"boolean\"\n ? opts.dangerouslyAllowPrivateNetwork\n : opts?.allowPrivateNetwork;\n const normalized = validateMatrixHomeserverUrl(homeserver, {\n allowPrivateNetwork,\n });\n await assertHttpUrlTargetsPrivateNetwork(normalized, {\n dangerouslyAllowPrivateNetwork: opts?.dangerouslyAllowPrivateNetwork,\n allowPrivateNetwork,\n lookupFn: opts?.lookupFn,\n errorMessage: MATRIX_HTTP_HOMESERVER_ERROR,\n });\n return normalized;\n}\n\nexport function resolveMatrixConfigForAccount(\n cfg: CoreConfig,\n accountId: string,\n env: NodeJS.ProcessEnv = process.env,\n): MatrixResolvedConfig {\n const matrix = resolveMatrixBaseConfig(cfg);\n const account = findMatrixAccountConfig(cfg, accountId) ?? {};\n const normalizedAccountId = normalizeAccountId(accountId);\n const suppressInactivePasswordSecretRef = hasConfiguredMatrixAccessTokenSource({\n cfg,\n env,\n accountId: normalizedAccountId,\n });\n const fieldReadOptions = {\n env,\n config: cfg,\n };\n const scopedEnv = resolveScopedMatrixEnvConfig(normalizedAccountId, env);\n const globalEnv = resolveGlobalMatrixEnvConfig(env);\n const accountField = (field: MatrixConfigStringField) =>\n readMatrixAccountConfigField(cfg, normalizedAccountId, account, field, {\n ...fieldReadOptions,\n suppressSecretRef: field === \"password\" ? suppressInactivePasswordSecretRef : undefined,\n });\n const resolvedStrings = resolveMatrixAccountStringValues({\n accountId: normalizedAccountId,\n account: {\n homeserver: accountField(\"homeserver\"),\n userId: accountField(\"userId\"),\n accessToken: accountField(\"accessToken\"),\n password: accountField(\"password\"),\n deviceId: accountField(\"deviceId\"),\n deviceName: accountField(\"deviceName\"),\n },\n scopedEnv,\n channel: {\n homeserver: readMatrixBaseConfigField(matrix, \"homeserver\", fieldReadOptions),\n userId: readMatrixBaseConfigField(matrix, \"userId\", fieldReadOptions),\n accessToken: readMatrixBaseConfigField(matrix, \"accessToken\", fieldReadOptions),\n password: readMatrixBaseConfigField(matrix, \"password\", {\n ...fieldReadOptions,\n suppressSecretRef: suppressInactivePasswordSecretRef,\n }),\n deviceId: readMatrixBaseConfigField(matrix, \"deviceId\", fieldReadOptions),\n deviceName: readMatrixBaseConfigField(matrix, \"deviceName\", fieldReadOptions),\n },\n globalEnv,\n });\n\n const accountInitialSyncLimit = clampMatrixInitialSyncLimit(account.initialSyncLimit);\n const initialSyncLimit =\n accountInitialSyncLimit ?? clampMatrixInitialSyncLimit(matrix.initialSyncLimit);\n const encryption =\n typeof account.encryption === \"boolean\" ? account.encryption : (matrix.encryption ?? false);\n const allowPrivateNetwork =\n isPrivateNetworkOptInEnabled(account) || isPrivateNetworkOptInEnabled(matrix)\n ? true\n : undefined;\n\n return {\n homeserver: resolvedStrings.homeserver,\n userId: resolvedStrings.userId,\n accessToken: resolvedStrings.accessToken || undefined,\n password: resolvedStrings.password || undefined,\n deviceId: resolvedStrings.deviceId || undefined,\n deviceName: resolvedStrings.deviceName || undefined,\n initialSyncLimit,\n encryption,\n ...buildMatrixNetworkFields({\n allowPrivateNetwork,\n proxy: account.proxy ?? matrix.proxy,\n }),\n };\n}\n\nfunction resolveImplicitMatrixAccountId(\n cfg: CoreConfig,\n env: NodeJS.ProcessEnv = process.env,\n): string | null {\n if (requiresExplicitMatrixDefaultAccount(cfg, env)) {\n return null;\n }\n return normalizeAccountId(resolveMatrixDefaultOrOnlyAccountId(cfg, env));\n}\n\nexport function resolveMatrixAuthContext(params?: {\n cfg?: CoreConfig;\n env?: NodeJS.ProcessEnv;\n accountId?: string | null;\n}): {\n cfg: CoreConfig;\n env: NodeJS.ProcessEnv;\n accountId: string;\n resolved: MatrixResolvedConfig;\n} {\n const cfg = params?.cfg ?? (getMatrixRuntime().config.loadConfig() as CoreConfig);\n const env = params?.env ?? process.env;\n const explicitAccountId = normalizeOptionalAccountId(params?.accountId);\n const effectiveAccountId = explicitAccountId ?? resolveImplicitMatrixAccountId(cfg, env);\n if (!effectiveAccountId) {\n throw new Error(\n 'Multiple Lobi accounts are configured and channels.lobi.defaultAccount is not set. Set \"channels.lobi.defaultAccount\" to the intended account or pass --account <id>.',\n );\n }\n if (\n explicitAccountId &&\n explicitAccountId !== DEFAULT_ACCOUNT_ID &&\n !listNormalizedMatrixAccountIds(cfg).includes(explicitAccountId) &&\n !hasScopedMatrixEnvConfig(explicitAccountId, env)\n ) {\n throw new Error(\n `Lobi account \"${explicitAccountId}\" is not configured. Add channels.lobi.accounts.${explicitAccountId} or define scoped ${getMatrixScopedEnvVarNames(explicitAccountId).accessToken.replace(/_ACCESS_TOKEN$/, \"\")}_* variables.`,\n );\n }\n const resolved = resolveMatrixConfigForAccount(cfg, effectiveAccountId, env);\n\n return {\n cfg,\n env,\n accountId: effectiveAccountId,\n resolved,\n };\n}\n\nexport async function resolveMatrixAuth(params?: {\n cfg?: CoreConfig;\n env?: NodeJS.ProcessEnv;\n accountId?: string | null;\n}): Promise<MatrixAuth> {\n const { cfg, env, accountId, resolved } = resolveMatrixAuthContext(params);\n const accessToken =\n (await resolveConfiguredMatrixAuthSecretInput({\n cfg,\n env,\n accountId,\n field: \"accessToken\",\n })) ?? resolved.accessToken;\n const tokenAuthPassword = resolved.password;\n const homeserver = await resolveValidatedMatrixHomeserverUrl(resolved.homeserver, {\n dangerouslyAllowPrivateNetwork: resolved.allowPrivateNetwork,\n });\n let credentialsWriter: typeof import(\"../credentials-write.runtime.js\") | undefined;\n const loadCredentialsWriter = async () => {\n credentialsWriter ??= await import(\"../credentials-write.runtime.js\");\n return credentialsWriter;\n };\n\n const { loadMatrixCredentials, credentialsMatchConfig } = await loadMatrixCredentialsReadDeps();\n const cached = loadMatrixCredentials(env, accountId);\n const cachedCredentials =\n cached &&\n credentialsMatchConfig(cached, {\n homeserver,\n userId: resolved.userId || \"\",\n accessToken,\n })\n ? cached\n : null;\n\n // If we have an access token, we can fetch userId via whoami if not provided\n if (accessToken) {\n let userId = resolved.userId;\n const hasMatchingCachedToken = cachedCredentials?.accessToken === accessToken;\n let knownDeviceId = hasMatchingCachedToken\n ? cachedCredentials?.deviceId || resolved.deviceId\n : resolved.deviceId;\n\n if (!userId) {\n // Only block startup on whoami when token auth still needs the user ID.\n // A missing device ID alone is optional and should not force a network round-trip.\n const whoami = await fetchMatrixWhoamiIdentity({\n homeserver,\n accessToken,\n userId,\n ssrfPolicy: resolved.ssrfPolicy,\n dispatcherPolicy: resolved.dispatcherPolicy,\n });\n const fetchedUserId = whoami.user_id?.trim();\n if (!fetchedUserId) {\n throw new Error(\"Matrix whoami did not return user_id\");\n }\n userId = fetchedUserId;\n knownDeviceId = knownDeviceId || whoami.device_id?.trim() || resolved.deviceId;\n }\n\n const shouldRefreshCachedCredentials =\n !cachedCredentials ||\n !hasMatchingCachedToken ||\n cachedCredentials.userId !== userId ||\n (cachedCredentials.deviceId || undefined) !== knownDeviceId;\n if (shouldRefreshCachedCredentials) {\n const { saveMatrixCredentials } = await loadCredentialsWriter();\n await saveMatrixCredentials(\n {\n homeserver,\n userId,\n accessToken,\n deviceId: knownDeviceId,\n },\n env,\n accountId,\n );\n } else if (hasMatchingCachedToken) {\n const { touchMatrixCredentials } = await loadCredentialsWriter();\n await touchMatrixCredentials(env, accountId);\n }\n return {\n accountId,\n homeserver,\n userId,\n accessToken,\n password: tokenAuthPassword,\n deviceId: knownDeviceId,\n deviceName: resolved.deviceName,\n initialSyncLimit: resolved.initialSyncLimit,\n encryption: resolved.encryption,\n ...buildMatrixNetworkFields({\n allowPrivateNetwork: resolved.allowPrivateNetwork,\n dispatcherPolicy: resolved.dispatcherPolicy,\n }),\n };\n }\n\n if (cachedCredentials) {\n const { touchMatrixCredentials } = await loadCredentialsWriter();\n await touchMatrixCredentials(env, accountId);\n return {\n accountId,\n homeserver: cachedCredentials.homeserver,\n userId: cachedCredentials.userId,\n accessToken: cachedCredentials.accessToken,\n password: tokenAuthPassword,\n deviceId: cachedCredentials.deviceId || resolved.deviceId,\n deviceName: resolved.deviceName,\n initialSyncLimit: resolved.initialSyncLimit,\n encryption: resolved.encryption,\n ...buildMatrixNetworkFields({\n allowPrivateNetwork: resolved.allowPrivateNetwork,\n dispatcherPolicy: resolved.dispatcherPolicy,\n }),\n };\n }\n\n if (!resolved.userId) {\n throw new Error(\"Matrix userId is required when no access token is configured (matrix.userId)\");\n }\n\n const password =\n (await resolveConfiguredMatrixAuthSecretInput({\n cfg,\n env,\n accountId,\n field: \"password\",\n })) ?? resolved.password;\n if (!password) {\n throw new Error(\n \"Matrix password is required when no access token is configured (matrix.password)\",\n );\n }\n\n // Login with password using the same hardened request path as other Matrix HTTP calls.\n const { MatrixClient, ensureMatrixSdkLoggingConfigured } = await loadMatrixAuthClientDeps();\n ensureMatrixSdkLoggingConfigured();\n const loginClient = new MatrixClient(homeserver, \"\", {\n ssrfPolicy: resolved.ssrfPolicy,\n dispatcherPolicy: resolved.dispatcherPolicy,\n });\n const login = (await retryMatrixAuthRequest(\"matrix auth login\", async () => {\n return (await loginClient.doRequest(\"POST\", \"/_matrix/client/v3/login\", undefined, {\n type: \"m.login.password\",\n identifier: { type: \"m.id.user\", user: resolved.userId },\n password,\n device_id: resolved.deviceId,\n initial_device_display_name: resolved.deviceName ?? \"OpenClaw Gateway\",\n })) as {\n access_token?: string;\n user_id?: string;\n device_id?: string;\n };\n })) as {\n access_token?: string;\n user_id?: string;\n device_id?: string;\n };\n\n const loginAccessToken = login.access_token?.trim();\n if (!loginAccessToken) {\n throw new Error(\"Matrix login did not return an access token\");\n }\n\n const auth: MatrixAuth = {\n accountId,\n homeserver,\n userId: login.user_id ?? resolved.userId,\n accessToken: loginAccessToken,\n password,\n deviceId: login.device_id ?? resolved.deviceId,\n deviceName: resolved.deviceName,\n initialSyncLimit: resolved.initialSyncLimit,\n encryption: resolved.encryption,\n ...buildMatrixNetworkFields({\n allowPrivateNetwork: resolved.allowPrivateNetwork,\n dispatcherPolicy: resolved.dispatcherPolicy,\n }),\n };\n\n const { saveMatrixCredentials } = await loadCredentialsWriter();\n await saveMatrixCredentials(\n {\n homeserver: auth.homeserver,\n userId: auth.userId,\n accessToken: auth.accessToken,\n deviceId: auth.deviceId,\n },\n env,\n accountId,\n );\n\n return auth;\n}\n\nexport async function backfillMatrixAuthDeviceIdAfterStartup(params: {\n auth: MatrixAuth;\n env?: NodeJS.ProcessEnv;\n abortSignal?: AbortSignal;\n}): Promise<string | undefined> {\n const knownDeviceId = params.auth.deviceId?.trim();\n if (knownDeviceId) {\n return knownDeviceId;\n }\n if (isAbortSignalTriggered(params.abortSignal)) {\n return undefined;\n }\n\n const whoami = await fetchMatrixWhoamiIdentity({\n homeserver: params.auth.homeserver,\n accessToken: params.auth.accessToken,\n userId: params.auth.userId,\n ssrfPolicy: params.auth.ssrfPolicy,\n dispatcherPolicy: params.auth.dispatcherPolicy,\n });\n const deviceId = whoami.device_id?.trim();\n if (!deviceId) {\n return undefined;\n }\n if (isAbortSignalTriggered(params.abortSignal)) {\n return undefined;\n }\n\n const env = params.env ?? process.env;\n const { loadMatrixCredentials } = await loadMatrixCredentialsReadDeps();\n if (\n !credentialsMatchBackfillAuthLineage({\n stored: loadMatrixCredentials(env, params.auth.accountId),\n auth: params.auth,\n })\n ) {\n return undefined;\n }\n\n const repairedStorageMeta = repairCurrentTokenStorageMetaDeviceId({\n homeserver: params.auth.homeserver,\n userId: params.auth.userId,\n accessToken: params.auth.accessToken,\n accountId: params.auth.accountId,\n deviceId,\n env: params.env,\n });\n if (!repairedStorageMeta) {\n throw new Error(\"Matrix deviceId backfill failed to repair current-token storage metadata\");\n }\n if (isAbortSignalTriggered(params.abortSignal)) {\n return undefined;\n }\n\n const credentialsWriter = await import(\"../credentials-write.runtime.js\");\n const saved = await credentialsWriter.saveBackfilledMatrixDeviceId(\n {\n homeserver: params.auth.homeserver,\n userId: params.auth.userId,\n accessToken: params.auth.accessToken,\n deviceId,\n },\n env,\n params.auth.accountId,\n );\n return saved === \"saved\" ? deviceId : undefined;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["saveMatrixCredentials"]
7
+ }
@@ -0,0 +1,241 @@
1
+ import {
2
+ awaitMatrixStartupWithAbort
3
+ } from "./chunk-NIFG55CE.js";
4
+ import {
5
+ LogService
6
+ } from "./chunk-YF5DYD3X.js";
7
+ import {
8
+ resolveMatrixAuth,
9
+ resolveMatrixAuthContext
10
+ } from "./chunk-OKDOVX4B.js";
11
+ import {
12
+ init_shims
13
+ } from "./chunk-G4TIS2SC.js";
14
+
15
+ // src/matrix/client/shared.ts
16
+ init_shims();
17
+ import { normalizeOptionalAccountId } from "openclaw/plugin-sdk/account-id";
18
+ var matrixCreateClientDepsPromise;
19
+ async function loadMatrixCreateClientDeps() {
20
+ matrixCreateClientDepsPromise ??= import("./src/matrix/client/create-client.js").then((runtime) => ({
21
+ createMatrixClient: runtime.createMatrixClient
22
+ }));
23
+ return await matrixCreateClientDepsPromise;
24
+ }
25
+ var sharedClientStates = /* @__PURE__ */ new Map();
26
+ var sharedClientPromises = /* @__PURE__ */ new Map();
27
+ function serializeDispatcherPolicyKey(auth) {
28
+ return JSON.stringify(auth.dispatcherPolicy ?? null);
29
+ }
30
+ function buildSharedClientKey(auth) {
31
+ return [
32
+ auth.homeserver,
33
+ auth.userId,
34
+ auth.accessToken,
35
+ auth.encryption ? "e2ee" : "plain",
36
+ auth.allowPrivateNetwork ? "private-net" : "strict-net",
37
+ serializeDispatcherPolicyKey(auth),
38
+ auth.accountId
39
+ ].join("|");
40
+ }
41
+ async function createSharedMatrixClient(params) {
42
+ const { createMatrixClient } = await loadMatrixCreateClientDeps();
43
+ const client = await createMatrixClient({
44
+ homeserver: params.auth.homeserver,
45
+ userId: params.auth.userId,
46
+ accessToken: params.auth.accessToken,
47
+ password: params.auth.password,
48
+ deviceId: params.auth.deviceId,
49
+ encryption: params.auth.encryption,
50
+ localTimeoutMs: params.timeoutMs,
51
+ initialSyncLimit: params.auth.initialSyncLimit,
52
+ accountId: params.auth.accountId,
53
+ allowPrivateNetwork: params.auth.allowPrivateNetwork,
54
+ ssrfPolicy: params.auth.ssrfPolicy,
55
+ dispatcherPolicy: params.auth.dispatcherPolicy
56
+ });
57
+ return {
58
+ client,
59
+ key: buildSharedClientKey(params.auth),
60
+ started: false,
61
+ cryptoReady: false,
62
+ startPromise: null,
63
+ leases: 0
64
+ };
65
+ }
66
+ function findSharedClientStateByInstance(client) {
67
+ for (const state of sharedClientStates.values()) {
68
+ if (state.client === client) {
69
+ return state;
70
+ }
71
+ }
72
+ return null;
73
+ }
74
+ function deleteSharedClientState(state) {
75
+ sharedClientStates.delete(state.key);
76
+ sharedClientPromises.delete(state.key);
77
+ }
78
+ async function ensureSharedClientStarted(params) {
79
+ const waitForStart = async (startPromise2) => {
80
+ await awaitMatrixStartupWithAbort(startPromise2, params.abortSignal);
81
+ };
82
+ if (params.state.started) {
83
+ return;
84
+ }
85
+ if (params.state.startPromise) {
86
+ await waitForStart(params.state.startPromise);
87
+ return;
88
+ }
89
+ const startPromise = (async () => {
90
+ const client = params.state.client;
91
+ if (params.encryption && !params.state.cryptoReady) {
92
+ try {
93
+ const joinedRooms = await client.getJoinedRooms();
94
+ if (client.crypto) {
95
+ await client.crypto.prepare(joinedRooms);
96
+ params.state.cryptoReady = true;
97
+ }
98
+ } catch (err) {
99
+ LogService.warn("MatrixClientLite", "Failed to prepare crypto:", err);
100
+ }
101
+ }
102
+ await client.start({ abortSignal: params.abortSignal });
103
+ params.state.started = true;
104
+ })();
105
+ const guardedStart = startPromise.finally(() => {
106
+ if (params.state.startPromise === guardedStart) {
107
+ params.state.startPromise = null;
108
+ }
109
+ });
110
+ params.state.startPromise = guardedStart;
111
+ await waitForStart(guardedStart);
112
+ }
113
+ async function resolveSharedMatrixClientState(params = {}) {
114
+ const requestedAccountId = normalizeOptionalAccountId(params.accountId);
115
+ if (params.auth && requestedAccountId && requestedAccountId !== params.auth.accountId) {
116
+ throw new Error(
117
+ `Matrix shared client account mismatch: requested ${requestedAccountId}, auth resolved ${params.auth.accountId}`
118
+ );
119
+ }
120
+ const authContext = params.auth ? null : resolveMatrixAuthContext({
121
+ cfg: params.cfg,
122
+ env: params.env,
123
+ accountId: params.accountId
124
+ });
125
+ const auth = params.auth ?? await resolveMatrixAuth({
126
+ cfg: authContext?.cfg ?? params.cfg,
127
+ env: authContext?.env ?? params.env,
128
+ accountId: authContext?.accountId
129
+ });
130
+ const key = buildSharedClientKey(auth);
131
+ const shouldStart = params.startClient !== false;
132
+ const existingState = sharedClientStates.get(key);
133
+ if (existingState) {
134
+ if (shouldStart) {
135
+ await ensureSharedClientStarted({
136
+ state: existingState,
137
+ encryption: auth.encryption,
138
+ abortSignal: params.abortSignal
139
+ });
140
+ }
141
+ return existingState;
142
+ }
143
+ const existingPromise = sharedClientPromises.get(key);
144
+ if (existingPromise) {
145
+ const pending = await existingPromise;
146
+ if (shouldStart) {
147
+ await ensureSharedClientStarted({
148
+ state: pending,
149
+ encryption: auth.encryption,
150
+ abortSignal: params.abortSignal
151
+ });
152
+ }
153
+ return pending;
154
+ }
155
+ const creationPromise = createSharedMatrixClient({
156
+ auth,
157
+ timeoutMs: params.timeoutMs
158
+ });
159
+ sharedClientPromises.set(key, creationPromise);
160
+ try {
161
+ const created = await creationPromise;
162
+ sharedClientStates.set(key, created);
163
+ if (shouldStart) {
164
+ await ensureSharedClientStarted({
165
+ state: created,
166
+ encryption: auth.encryption,
167
+ abortSignal: params.abortSignal
168
+ });
169
+ }
170
+ return created;
171
+ } finally {
172
+ sharedClientPromises.delete(key);
173
+ }
174
+ }
175
+ async function resolveSharedMatrixClient(params = {}) {
176
+ const state = await resolveSharedMatrixClientState(params);
177
+ return state.client;
178
+ }
179
+ async function acquireSharedMatrixClient(params = {}) {
180
+ const state = await resolveSharedMatrixClientState(params);
181
+ state.leases += 1;
182
+ return state.client;
183
+ }
184
+ function stopSharedClient() {
185
+ for (const state of sharedClientStates.values()) {
186
+ state.client.stop();
187
+ }
188
+ sharedClientStates.clear();
189
+ sharedClientPromises.clear();
190
+ }
191
+ function stopSharedClientForAccount(auth) {
192
+ const key = buildSharedClientKey(auth);
193
+ const state = sharedClientStates.get(key);
194
+ if (!state) {
195
+ return;
196
+ }
197
+ state.client.stop();
198
+ deleteSharedClientState(state);
199
+ }
200
+ function removeSharedClientInstance(client) {
201
+ const state = findSharedClientStateByInstance(client);
202
+ if (!state) {
203
+ return false;
204
+ }
205
+ deleteSharedClientState(state);
206
+ return true;
207
+ }
208
+ function stopSharedClientInstance(client) {
209
+ if (!removeSharedClientInstance(client)) {
210
+ return;
211
+ }
212
+ client.stop();
213
+ }
214
+ async function releaseSharedClientInstance(client, mode = "stop") {
215
+ const state = findSharedClientStateByInstance(client);
216
+ if (!state) {
217
+ return false;
218
+ }
219
+ state.leases = Math.max(0, state.leases - 1);
220
+ if (state.leases > 0) {
221
+ return false;
222
+ }
223
+ deleteSharedClientState(state);
224
+ if (mode === "persist") {
225
+ await client.stopAndPersist();
226
+ } else {
227
+ client.stop();
228
+ }
229
+ return true;
230
+ }
231
+
232
+ export {
233
+ resolveSharedMatrixClient,
234
+ acquireSharedMatrixClient,
235
+ stopSharedClient,
236
+ stopSharedClientForAccount,
237
+ removeSharedClientInstance,
238
+ stopSharedClientInstance,
239
+ releaseSharedClientInstance
240
+ };
241
+ //# sourceMappingURL=chunk-OVMDMCZ5.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/matrix/client/shared.ts"],
4
+ "sourcesContent": ["import { normalizeOptionalAccountId } from \"openclaw/plugin-sdk/account-id\";\nimport type { CoreConfig } from \"../../types.js\";\nimport type { MatrixClient } from \"../sdk.js\";\nimport { LogService } from \"../sdk/logger.js\";\nimport { awaitMatrixStartupWithAbort } from \"../startup-abort.js\";\nimport { resolveMatrixAuth, resolveMatrixAuthContext } from \"./config.js\";\nimport type { MatrixAuth } from \"./types.js\";\n\ntype MatrixCreateClientDeps = {\n createMatrixClient: typeof import(\"./create-client.js\").createMatrixClient;\n};\n\nlet matrixCreateClientDepsPromise: Promise<MatrixCreateClientDeps> | undefined;\n\nasync function loadMatrixCreateClientDeps(): Promise<MatrixCreateClientDeps> {\n matrixCreateClientDepsPromise ??= import(\"./create-client.js\").then((runtime) => ({\n createMatrixClient: runtime.createMatrixClient,\n }));\n return await matrixCreateClientDepsPromise;\n}\n\ntype SharedMatrixClientState = {\n client: MatrixClient;\n key: string;\n started: boolean;\n cryptoReady: boolean;\n startPromise: Promise<void> | null;\n leases: number;\n};\n\nconst sharedClientStates = new Map<string, SharedMatrixClientState>();\nconst sharedClientPromises = new Map<string, Promise<SharedMatrixClientState>>();\n\nfunction serializeDispatcherPolicyKey(auth: MatrixAuth): string {\n return JSON.stringify(auth.dispatcherPolicy ?? null);\n}\n\nfunction buildSharedClientKey(auth: MatrixAuth): string {\n return [\n auth.homeserver,\n auth.userId,\n auth.accessToken,\n auth.encryption ? \"e2ee\" : \"plain\",\n auth.allowPrivateNetwork ? \"private-net\" : \"strict-net\",\n serializeDispatcherPolicyKey(auth),\n auth.accountId,\n ].join(\"|\");\n}\n\nasync function createSharedMatrixClient(params: {\n auth: MatrixAuth;\n timeoutMs?: number;\n}): Promise<SharedMatrixClientState> {\n const { createMatrixClient } = await loadMatrixCreateClientDeps();\n const client = await createMatrixClient({\n homeserver: params.auth.homeserver,\n userId: params.auth.userId,\n accessToken: params.auth.accessToken,\n password: params.auth.password,\n deviceId: params.auth.deviceId,\n encryption: params.auth.encryption,\n localTimeoutMs: params.timeoutMs,\n initialSyncLimit: params.auth.initialSyncLimit,\n accountId: params.auth.accountId,\n allowPrivateNetwork: params.auth.allowPrivateNetwork,\n ssrfPolicy: params.auth.ssrfPolicy,\n dispatcherPolicy: params.auth.dispatcherPolicy,\n });\n return {\n client,\n key: buildSharedClientKey(params.auth),\n started: false,\n cryptoReady: false,\n startPromise: null,\n leases: 0,\n };\n}\n\nfunction findSharedClientStateByInstance(client: MatrixClient): SharedMatrixClientState | null {\n for (const state of sharedClientStates.values()) {\n if (state.client === client) {\n return state;\n }\n }\n return null;\n}\n\nfunction deleteSharedClientState(state: SharedMatrixClientState): void {\n sharedClientStates.delete(state.key);\n sharedClientPromises.delete(state.key);\n}\n\nasync function ensureSharedClientStarted(params: {\n state: SharedMatrixClientState;\n encryption?: boolean;\n abortSignal?: AbortSignal;\n}): Promise<void> {\n const waitForStart = async (startPromise: Promise<void>) => {\n await awaitMatrixStartupWithAbort(startPromise, params.abortSignal);\n };\n\n if (params.state.started) {\n return;\n }\n if (params.state.startPromise) {\n await waitForStart(params.state.startPromise);\n return;\n }\n\n const startPromise = (async () => {\n const client = params.state.client;\n\n // Initialize crypto if enabled\n if (params.encryption && !params.state.cryptoReady) {\n try {\n const joinedRooms = await client.getJoinedRooms();\n if (client.crypto) {\n await client.crypto.prepare(joinedRooms);\n params.state.cryptoReady = true;\n }\n } catch (err) {\n LogService.warn(\"MatrixClientLite\", \"Failed to prepare crypto:\", err);\n }\n }\n\n await client.start({ abortSignal: params.abortSignal });\n params.state.started = true;\n })();\n // Keep the shared startup lock until the underlying start fully settles, even\n // if one waiter aborts early while another caller still owns the startup.\n const guardedStart = startPromise.finally(() => {\n if (params.state.startPromise === guardedStart) {\n params.state.startPromise = null;\n }\n });\n params.state.startPromise = guardedStart;\n\n await waitForStart(guardedStart);\n}\n\nasync function resolveSharedMatrixClientState(\n params: {\n cfg?: CoreConfig;\n env?: NodeJS.ProcessEnv;\n timeoutMs?: number;\n auth?: MatrixAuth;\n startClient?: boolean;\n accountId?: string | null;\n abortSignal?: AbortSignal;\n } = {},\n): Promise<SharedMatrixClientState> {\n const requestedAccountId = normalizeOptionalAccountId(params.accountId);\n if (params.auth && requestedAccountId && requestedAccountId !== params.auth.accountId) {\n throw new Error(\n `Matrix shared client account mismatch: requested ${requestedAccountId}, auth resolved ${params.auth.accountId}`,\n );\n }\n const authContext = params.auth\n ? null\n : resolveMatrixAuthContext({\n cfg: params.cfg,\n env: params.env,\n accountId: params.accountId,\n });\n const auth =\n params.auth ??\n (await resolveMatrixAuth({\n cfg: authContext?.cfg ?? params.cfg,\n env: authContext?.env ?? params.env,\n accountId: authContext?.accountId,\n }));\n const key = buildSharedClientKey(auth);\n const shouldStart = params.startClient !== false;\n\n const existingState = sharedClientStates.get(key);\n if (existingState) {\n if (shouldStart) {\n await ensureSharedClientStarted({\n state: existingState,\n encryption: auth.encryption,\n abortSignal: params.abortSignal,\n });\n }\n return existingState;\n }\n\n const existingPromise = sharedClientPromises.get(key);\n if (existingPromise) {\n const pending = await existingPromise;\n if (shouldStart) {\n await ensureSharedClientStarted({\n state: pending,\n encryption: auth.encryption,\n abortSignal: params.abortSignal,\n });\n }\n return pending;\n }\n\n const creationPromise = createSharedMatrixClient({\n auth,\n timeoutMs: params.timeoutMs,\n });\n sharedClientPromises.set(key, creationPromise);\n\n try {\n const created = await creationPromise;\n sharedClientStates.set(key, created);\n if (shouldStart) {\n await ensureSharedClientStarted({\n state: created,\n encryption: auth.encryption,\n abortSignal: params.abortSignal,\n });\n }\n return created;\n } finally {\n sharedClientPromises.delete(key);\n }\n}\n\nexport async function resolveSharedMatrixClient(\n params: {\n cfg?: CoreConfig;\n env?: NodeJS.ProcessEnv;\n timeoutMs?: number;\n auth?: MatrixAuth;\n startClient?: boolean;\n accountId?: string | null;\n abortSignal?: AbortSignal;\n } = {},\n): Promise<MatrixClient> {\n const state = await resolveSharedMatrixClientState(params);\n return state.client;\n}\n\nexport async function acquireSharedMatrixClient(\n params: {\n cfg?: CoreConfig;\n env?: NodeJS.ProcessEnv;\n timeoutMs?: number;\n auth?: MatrixAuth;\n startClient?: boolean;\n accountId?: string | null;\n abortSignal?: AbortSignal;\n } = {},\n): Promise<MatrixClient> {\n const state = await resolveSharedMatrixClientState(params);\n state.leases += 1;\n return state.client;\n}\n\nexport function stopSharedClient(): void {\n for (const state of sharedClientStates.values()) {\n state.client.stop();\n }\n sharedClientStates.clear();\n sharedClientPromises.clear();\n}\n\nexport function stopSharedClientForAccount(auth: MatrixAuth): void {\n const key = buildSharedClientKey(auth);\n const state = sharedClientStates.get(key);\n if (!state) {\n return;\n }\n state.client.stop();\n deleteSharedClientState(state);\n}\n\nexport function removeSharedClientInstance(client: MatrixClient): boolean {\n const state = findSharedClientStateByInstance(client);\n if (!state) {\n return false;\n }\n deleteSharedClientState(state);\n return true;\n}\n\nexport function stopSharedClientInstance(client: MatrixClient): void {\n if (!removeSharedClientInstance(client)) {\n return;\n }\n client.stop();\n}\n\nexport async function releaseSharedClientInstance(\n client: MatrixClient,\n mode: \"stop\" | \"persist\" = \"stop\",\n): Promise<boolean> {\n const state = findSharedClientStateByInstance(client);\n if (!state) {\n return false;\n }\n state.leases = Math.max(0, state.leases - 1);\n if (state.leases > 0) {\n return false;\n }\n deleteSharedClientState(state);\n if (mode === \"persist\") {\n await client.stopAndPersist();\n } else {\n client.stop();\n }\n return true;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["startPromise"]
7
+ }
@@ -0,0 +1,63 @@
1
+ import {
2
+ fetchEventSummary,
3
+ readPinnedEvents
4
+ } from "./chunk-UPEF7ETP.js";
5
+ import {
6
+ EventType
7
+ } from "./chunk-YGVQZCE7.js";
8
+ import {
9
+ withResolvedRoomAction
10
+ } from "./chunk-4COI4L2Y.js";
11
+ import {
12
+ init_shims
13
+ } from "./chunk-G4TIS2SC.js";
14
+
15
+ // src/matrix/actions/pins.ts
16
+ init_shims();
17
+ async function updateMatrixPins(roomId, messageId, opts, update) {
18
+ return await withResolvedRoomAction(roomId, opts, async (client, resolvedRoom) => {
19
+ const current = await readPinnedEvents(client, resolvedRoom);
20
+ const next = update(current);
21
+ const payload = { pinned: next };
22
+ await client.sendStateEvent(resolvedRoom, EventType.RoomPinnedEvents, "", payload);
23
+ return { pinned: next };
24
+ });
25
+ }
26
+ async function pinMatrixMessage(roomId, messageId, opts = {}) {
27
+ return await updateMatrixPins(
28
+ roomId,
29
+ messageId,
30
+ opts,
31
+ (current) => current.includes(messageId) ? current : [...current, messageId]
32
+ );
33
+ }
34
+ async function unpinMatrixMessage(roomId, messageId, opts = {}) {
35
+ return await updateMatrixPins(
36
+ roomId,
37
+ messageId,
38
+ opts,
39
+ (current) => current.filter((id) => id !== messageId)
40
+ );
41
+ }
42
+ async function listMatrixPins(roomId, opts = {}) {
43
+ return await withResolvedRoomAction(roomId, opts, async (client, resolvedRoom) => {
44
+ const pinned = await readPinnedEvents(client, resolvedRoom);
45
+ const events = (await Promise.all(
46
+ pinned.map(async (eventId) => {
47
+ try {
48
+ return await fetchEventSummary(client, resolvedRoom, eventId);
49
+ } catch {
50
+ return null;
51
+ }
52
+ })
53
+ )).filter((event) => Boolean(event));
54
+ return { pinned, events };
55
+ });
56
+ }
57
+
58
+ export {
59
+ pinMatrixMessage,
60
+ unpinMatrixMessage,
61
+ listMatrixPins
62
+ };
63
+ //# sourceMappingURL=chunk-OVU43GJK.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/matrix/actions/pins.ts"],
4
+ "sourcesContent": ["import { withResolvedRoomAction } from \"./client.js\";\nimport { fetchEventSummary, readPinnedEvents } from \"./summary.js\";\nimport {\n EventType,\n type MatrixActionClientOpts,\n type MatrixMessageSummary,\n type RoomPinnedEventsEventContent,\n} from \"./types.js\";\n\nasync function updateMatrixPins(\n roomId: string,\n messageId: string,\n opts: MatrixActionClientOpts,\n update: (current: string[]) => string[],\n): Promise<{ pinned: string[] }> {\n return await withResolvedRoomAction(roomId, opts, async (client, resolvedRoom) => {\n const current = await readPinnedEvents(client, resolvedRoom);\n const next = update(current);\n const payload: RoomPinnedEventsEventContent = { pinned: next };\n await client.sendStateEvent(resolvedRoom, EventType.RoomPinnedEvents, \"\", payload);\n return { pinned: next };\n });\n}\n\nexport async function pinMatrixMessage(\n roomId: string,\n messageId: string,\n opts: MatrixActionClientOpts = {},\n): Promise<{ pinned: string[] }> {\n return await updateMatrixPins(roomId, messageId, opts, (current) =>\n current.includes(messageId) ? current : [...current, messageId],\n );\n}\n\nexport async function unpinMatrixMessage(\n roomId: string,\n messageId: string,\n opts: MatrixActionClientOpts = {},\n): Promise<{ pinned: string[] }> {\n return await updateMatrixPins(roomId, messageId, opts, (current) =>\n current.filter((id) => id !== messageId),\n );\n}\n\nexport async function listMatrixPins(\n roomId: string,\n opts: MatrixActionClientOpts = {},\n): Promise<{ pinned: string[]; events: MatrixMessageSummary[] }> {\n return await withResolvedRoomAction(roomId, opts, async (client, resolvedRoom) => {\n const pinned = await readPinnedEvents(client, resolvedRoom);\n const events = (\n await Promise.all(\n pinned.map(async (eventId) => {\n try {\n return await fetchEventSummary(client, resolvedRoom, eventId);\n } catch {\n return null;\n }\n }),\n )\n ).filter((event): event is MatrixMessageSummary => Boolean(event));\n return { pinned, events };\n });\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AASA,eAAe,iBACb,QACA,WACA,MACA,QAC+B;AAC/B,SAAO,MAAM,uBAAuB,QAAQ,MAAM,OAAO,QAAQ,iBAAiB;AAChF,UAAM,UAAU,MAAM,iBAAiB,QAAQ,YAAY;AAC3D,UAAM,OAAO,OAAO,OAAO;AAC3B,UAAM,UAAwC,EAAE,QAAQ,KAAK;AAC7D,UAAM,OAAO,eAAe,cAAc,UAAU,kBAAkB,IAAI,OAAO;AACjF,WAAO,EAAE,QAAQ,KAAK;AAAA,EACxB,CAAC;AACH;AAEA,eAAsB,iBACpB,QACA,WACA,OAA+B,CAAC,GACD;AAC/B,SAAO,MAAM;AAAA,IAAiB;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAM,CAAC,YACtD,QAAQ,SAAS,SAAS,IAAI,UAAU,CAAC,GAAG,SAAS,SAAS;AAAA,EAChE;AACF;AAEA,eAAsB,mBACpB,QACA,WACA,OAA+B,CAAC,GACD;AAC/B,SAAO,MAAM;AAAA,IAAiB;AAAA,IAAQ;AAAA,IAAW;AAAA,IAAM,CAAC,YACtD,QAAQ,OAAO,CAAC,OAAO,OAAO,SAAS;AAAA,EACzC;AACF;AAEA,eAAsB,eACpB,QACA,OAA+B,CAAC,GAC+B;AAC/D,SAAO,MAAM,uBAAuB,QAAQ,MAAM,OAAO,QAAQ,iBAAiB;AAChF,UAAM,SAAS,MAAM,iBAAiB,QAAQ,YAAY;AAC1D,UAAM,UACJ,MAAM,QAAQ;AAAA,MACZ,OAAO,IAAI,OAAO,YAAY;AAC5B,YAAI;AACF,iBAAO,MAAM,kBAAkB,QAAQ,cAAc,OAAO;AAAA,QAC9D,QAAQ;AACN,iBAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACH,GACA,OAAO,CAAC,UAAyC,QAAQ,KAAK,CAAC;AACjE,WAAO,EAAE,QAAQ,OAAO;AAAA,EAC1B,CAAC;AACH;",
6
+ "names": []
7
+ }
@@ -0,0 +1,18 @@
1
+ import {
2
+ init_shims
3
+ } from "./chunk-G4TIS2SC.js";
4
+
5
+ // ../../node_modules/@archipelagolab/lobi-js-sdk/lib/types.js
6
+ init_shims();
7
+ var VerificationMethod = /* @__PURE__ */ (function(VerificationMethod2) {
8
+ VerificationMethod2["Sas"] = "m.sas.v1";
9
+ VerificationMethod2["ShowQrCode"] = "m.qr_code.show.v1";
10
+ VerificationMethod2["ScanQrCode"] = "m.qr_code.scan.v1";
11
+ VerificationMethod2["Reciprocate"] = "m.reciprocate.v1";
12
+ return VerificationMethod2;
13
+ })({});
14
+
15
+ export {
16
+ VerificationMethod
17
+ };
18
+ //# sourceMappingURL=chunk-P3TMARA6.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../node_modules/@archipelagolab/lobi-js-sdk/src/types.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2024 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n/*\n * This file is a secondary entrypoint for the js-sdk library, for use by Typescript projects.\n * It exposes low-level types and interfaces reflecting structures defined in the Matrix specification.\n *\n * Remember to only export *public* types from this file.\n */\n\nexport type * from \"./@types/media.ts\";\nexport * from \"./@types/membership.ts\";\nexport type * from \"./@types/event.ts\";\nexport type * from \"./@types/events.ts\";\nexport type * from \"./@types/state_events.ts\";\nexport type * from \"./@types/AESEncryptedSecretStoragePayload.ts\";\n\n/** The different methods for device and user verification */\nexport enum VerificationMethod {\n /** Short authentication string (emoji or decimals).\n *\n * @see https://spec.matrix.org/v1.9/client-server-api/#short-authentication-string-sas-verification\n */\n Sas = \"m.sas.v1\",\n\n /**\n * Verification by showing a QR code which is scanned by the other device.\n *\n * @see https://spec.matrix.org/v1.9/client-server-api/#qr-codes\n */\n ShowQrCode = \"m.qr_code.show.v1\",\n\n /**\n * Verification by scanning a QR code that is shown by the other device.\n *\n * @see https://spec.matrix.org/v1.9/client-server-api/#qr-codes\n */\n ScanQrCode = \"m.qr_code.scan.v1\",\n\n /**\n * Verification by confirming that we have scanned a QR code.\n *\n * @see https://spec.matrix.org/v1.9/client-server-api/#qr-codes\n */\n Reciprocate = \"m.reciprocate.v1\",\n}\n"],
5
+ "mappings": ";;;;;AAAA;AA+BA,IAAYA,qBAAkB,0BAAlBA,qBAAkB;AAAlBA,EAAAA,oBAAkB,KAAA,IAAA;AAAlBA,EAAAA,oBAAkB,YAAA,IAAA;AAAlBA,EAAAA,oBAAkB,YAAA,IAAA;AAAlBA,EAAAA,oBAAkB,aAAA,IAAA;AAAA,SAAlBA;AAAkB,GAAA,CAAA,CAAA;",
6
+ "names": ["VerificationMethod"]
7
+ }