zeed 1.0.8 → 1.0.9

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 (367) hide show
  1. package/dist/browser/index.cjs +1 -1
  2. package/dist/browser/index.cjs.map +1 -1
  3. package/dist/browser/index.js +1 -1
  4. package/dist/browser/log/index.cjs +1 -1
  5. package/dist/browser/log/index.cjs.map +1 -1
  6. package/dist/browser/log/index.js +1 -1
  7. package/dist/browser/log/log-browser.cjs +1 -1
  8. package/dist/browser/log/log-browser.cjs.map +1 -1
  9. package/dist/browser/log/log-browser.js +1 -1
  10. package/dist/browser/log/log-context-browser.cjs +1 -1
  11. package/dist/browser/log/log-context-browser.cjs.map +1 -1
  12. package/dist/browser/log/log-context-browser.js +1 -1
  13. package/dist/{chunk-GEIUAN3F.js → chunk-2LBY3SIX.js} +2 -2
  14. package/dist/{chunk-R343YQLJ.cjs → chunk-2MBT4EWM.cjs} +2 -2
  15. package/dist/{chunk-R343YQLJ.cjs.map → chunk-2MBT4EWM.cjs.map} +1 -1
  16. package/dist/{chunk-B5DTIAQJ.js → chunk-2ORDWVXB.js} +2 -2
  17. package/dist/{chunk-223IVU47.js → chunk-3IGQW4J4.js} +2 -2
  18. package/dist/{chunk-PI7WHMCM.cjs → chunk-3UNBXQBQ.cjs} +2 -2
  19. package/dist/{chunk-PI7WHMCM.cjs.map → chunk-3UNBXQBQ.cjs.map} +1 -1
  20. package/dist/{chunk-OZ56TU4L.cjs → chunk-42DAB7DI.cjs} +2 -2
  21. package/dist/{chunk-OZ56TU4L.cjs.map → chunk-42DAB7DI.cjs.map} +1 -1
  22. package/dist/{chunk-DAHVFM6W.cjs → chunk-5OFMIHKZ.cjs} +2 -2
  23. package/dist/{chunk-DAHVFM6W.cjs.map → chunk-5OFMIHKZ.cjs.map} +1 -1
  24. package/dist/{chunk-AU4UHJWD.js → chunk-64TQ2QFV.js} +2 -2
  25. package/dist/{chunk-VHN6NMKI.cjs → chunk-6VWYU3DA.cjs} +2 -2
  26. package/dist/{chunk-VHN6NMKI.cjs.map → chunk-6VWYU3DA.cjs.map} +1 -1
  27. package/dist/chunk-73A2QE6J.js +2 -0
  28. package/dist/{chunk-EN6IMU3D.js.map → chunk-73A2QE6J.js.map} +1 -1
  29. package/dist/{chunk-V4SVIQPH.js → chunk-7E3NXFJW.js} +2 -2
  30. package/dist/{chunk-GEU6RNVE.js → chunk-7G5UU2PZ.js} +2 -2
  31. package/dist/{chunk-TRFNFCHU.cjs → chunk-7HXAZLZN.cjs} +2 -2
  32. package/dist/{chunk-TRFNFCHU.cjs.map → chunk-7HXAZLZN.cjs.map} +1 -1
  33. package/dist/{chunk-DY2UU7KS.js → chunk-7KCYQMJX.js} +2 -2
  34. package/dist/{chunk-JZOWTKX3.js → chunk-ADBNYVG6.js} +2 -2
  35. package/dist/{chunk-KIBCXH3E.cjs → chunk-AERHWWDH.cjs} +2 -2
  36. package/dist/{chunk-KIBCXH3E.cjs.map → chunk-AERHWWDH.cjs.map} +1 -1
  37. package/dist/{chunk-2DZR3Q6A.cjs → chunk-ANL3U5W6.cjs} +2 -2
  38. package/dist/{chunk-2DZR3Q6A.cjs.map → chunk-ANL3U5W6.cjs.map} +1 -1
  39. package/dist/{chunk-MNKXKXAL.cjs → chunk-AP6AJG7M.cjs} +2 -2
  40. package/dist/{chunk-MNKXKXAL.cjs.map → chunk-AP6AJG7M.cjs.map} +1 -1
  41. package/dist/chunk-B3FN5ADY.js +2 -0
  42. package/dist/{chunk-323G4IQO.js → chunk-BBLGMFL4.js} +2 -2
  43. package/dist/chunk-BJVADKXM.cjs +2 -0
  44. package/dist/{chunk-7K66QBCK.cjs.map → chunk-BJVADKXM.cjs.map} +1 -1
  45. package/dist/{chunk-3WNYVS2L.cjs → chunk-BTOZJX47.cjs} +2 -2
  46. package/dist/{chunk-3WNYVS2L.cjs.map → chunk-BTOZJX47.cjs.map} +1 -1
  47. package/dist/{chunk-6YOH5J2L.cjs → chunk-C3WUDLBK.cjs} +1 -1
  48. package/dist/chunk-C3WUDLBK.cjs.map +1 -0
  49. package/dist/{chunk-VMPH6U7R.cjs → chunk-C3Y4SBDL.cjs} +2 -2
  50. package/dist/{chunk-VMPH6U7R.cjs.map → chunk-C3Y4SBDL.cjs.map} +1 -1
  51. package/dist/{chunk-3VVHI55F.js → chunk-CB7624ZT.js} +2 -2
  52. package/dist/{chunk-ZVCUHLRN.cjs → chunk-CF5DPFPQ.cjs} +2 -2
  53. package/dist/{chunk-ZVCUHLRN.cjs.map → chunk-CF5DPFPQ.cjs.map} +1 -1
  54. package/dist/{chunk-FS34EYGN.cjs → chunk-CHR4BOAA.cjs} +2 -2
  55. package/dist/{chunk-FS34EYGN.cjs.map → chunk-CHR4BOAA.cjs.map} +1 -1
  56. package/dist/{chunk-ZTADP73D.js → chunk-CKJVZGKB.js} +2 -2
  57. package/dist/{chunk-SJ2T57HC.cjs → chunk-CXSYU4X7.cjs} +2 -2
  58. package/dist/{chunk-SJ2T57HC.cjs.map → chunk-CXSYU4X7.cjs.map} +1 -1
  59. package/dist/{chunk-NPYZYXQT.cjs → chunk-DEL5JCKC.cjs} +2 -2
  60. package/dist/{chunk-NPYZYXQT.cjs.map → chunk-DEL5JCKC.cjs.map} +1 -1
  61. package/dist/{chunk-TJTAAHDB.cjs → chunk-DOR23DPD.cjs} +1 -1
  62. package/dist/chunk-DOR23DPD.cjs.map +1 -0
  63. package/dist/{chunk-M2SGUTDH.cjs → chunk-E3I23GWR.cjs} +3 -3
  64. package/dist/{chunk-M2SGUTDH.cjs.map → chunk-E3I23GWR.cjs.map} +1 -1
  65. package/dist/{chunk-QVJREANA.cjs → chunk-EGPOVTV2.cjs} +2 -2
  66. package/dist/{chunk-QVJREANA.cjs.map → chunk-EGPOVTV2.cjs.map} +1 -1
  67. package/dist/{chunk-NS4GA3CG.js → chunk-EWE6NUEH.js} +2 -2
  68. package/dist/{chunk-347XCKQ3.cjs → chunk-EYKYNIO4.cjs} +2 -2
  69. package/dist/{chunk-347XCKQ3.cjs.map → chunk-EYKYNIO4.cjs.map} +1 -1
  70. package/dist/{chunk-VVHOQAG4.js → chunk-FVYPLV2N.js} +2 -2
  71. package/dist/{chunk-MMOV5NX5.js → chunk-G3DXK6KA.js} +2 -2
  72. package/dist/{chunk-UYPNLZQD.cjs → chunk-GE6SLQGZ.cjs} +2 -2
  73. package/dist/{chunk-UYPNLZQD.cjs.map → chunk-GE6SLQGZ.cjs.map} +1 -1
  74. package/dist/{chunk-LV6PHQ7A.js → chunk-GFELJXCW.js} +2 -2
  75. package/dist/{chunk-VC5WLH64.js → chunk-GIM3UHCU.js} +2 -2
  76. package/dist/{chunk-YEJA2S2R.js → chunk-GXEJL62J.js} +2 -2
  77. package/dist/{chunk-QLOTKJPJ.cjs → chunk-HE7YDDBP.cjs} +2 -2
  78. package/dist/{chunk-QLOTKJPJ.cjs.map → chunk-HE7YDDBP.cjs.map} +1 -1
  79. package/dist/{chunk-2DROU3L2.js → chunk-HUKVWV6Z.js} +2 -2
  80. package/dist/{chunk-MI62AGNO.cjs → chunk-IV354B63.cjs} +3 -3
  81. package/dist/{chunk-MI62AGNO.cjs.map → chunk-IV354B63.cjs.map} +1 -1
  82. package/dist/{chunk-RRD5M7EG.cjs → chunk-IXXCZ5JE.cjs} +2 -2
  83. package/dist/{chunk-RRD5M7EG.cjs.map → chunk-IXXCZ5JE.cjs.map} +1 -1
  84. package/dist/{chunk-II65ITGA.js → chunk-JDZXUP7J.js} +2 -2
  85. package/dist/{chunk-QHQKEO57.cjs → chunk-JHOA6LMH.cjs} +2 -2
  86. package/dist/{chunk-QHQKEO57.cjs.map → chunk-JHOA6LMH.cjs.map} +1 -1
  87. package/dist/{chunk-Z622IHAO.js → chunk-JJ4XR2Q3.js} +2 -2
  88. package/dist/{chunk-JTCZHJCF.cjs → chunk-KCKF5XYD.cjs} +2 -2
  89. package/dist/{chunk-JTCZHJCF.cjs.map → chunk-KCKF5XYD.cjs.map} +1 -1
  90. package/dist/{chunk-J365UNXA.cjs → chunk-KHK37DTS.cjs} +2 -2
  91. package/dist/{chunk-J365UNXA.cjs.map → chunk-KHK37DTS.cjs.map} +1 -1
  92. package/dist/{chunk-AMMLBSNC.js → chunk-KP2G2V2F.js} +2 -2
  93. package/dist/{chunk-KBMOKH3T.cjs → chunk-KYDHX5HW.cjs} +2 -2
  94. package/dist/{chunk-KBMOKH3T.cjs.map → chunk-KYDHX5HW.cjs.map} +1 -1
  95. package/dist/{chunk-TKMOYLYA.cjs → chunk-KZ4SDL5G.cjs} +2 -2
  96. package/dist/{chunk-TKMOYLYA.cjs.map → chunk-KZ4SDL5G.cjs.map} +1 -1
  97. package/dist/{chunk-KLTZERO2.cjs → chunk-LTEPA3HT.cjs} +2 -2
  98. package/dist/{chunk-KLTZERO2.cjs.map → chunk-LTEPA3HT.cjs.map} +1 -1
  99. package/dist/{chunk-DPMQU4EK.cjs → chunk-LZXEWOF5.cjs} +2 -2
  100. package/dist/{chunk-DPMQU4EK.cjs.map → chunk-LZXEWOF5.cjs.map} +1 -1
  101. package/dist/{chunk-PDYLHAQH.js → chunk-MQSBNNXA.js} +1 -1
  102. package/dist/chunk-MQSBNNXA.js.map +1 -0
  103. package/dist/{chunk-5ANAWLCJ.cjs → chunk-N4TDBJ7M.cjs} +2 -2
  104. package/dist/{chunk-5ANAWLCJ.cjs.map → chunk-N4TDBJ7M.cjs.map} +1 -1
  105. package/dist/{chunk-BNJSUPNA.js → chunk-NGPSQHUI.js} +2 -2
  106. package/dist/{chunk-HTDW2DTX.js → chunk-NTEUFYYI.js} +2 -2
  107. package/dist/{chunk-VPBDNWFN.js → chunk-NXPP37OL.js} +2 -2
  108. package/dist/{chunk-PKTW5XZA.js → chunk-O44VADBM.js} +1 -1
  109. package/dist/chunk-O44VADBM.js.map +1 -0
  110. package/dist/{chunk-LQL7H2M6.cjs → chunk-OHY7AJ4H.cjs} +2 -2
  111. package/dist/{chunk-LQL7H2M6.cjs.map → chunk-OHY7AJ4H.cjs.map} +1 -1
  112. package/dist/{chunk-7FZWUO5Y.js → chunk-PH6VHAG4.js} +2 -2
  113. package/dist/{chunk-5GKJ7XS3.js → chunk-PJY2K5GW.js} +2 -2
  114. package/dist/{chunk-EPY7WQBD.js → chunk-Q7RWPL4P.js} +2 -2
  115. package/dist/chunk-QS7TUM3Q.cjs +2 -0
  116. package/dist/{chunk-YE42OFHM.cjs.map → chunk-QS7TUM3Q.cjs.map} +1 -1
  117. package/dist/{chunk-KIHD6XW4.cjs → chunk-QT4PZADB.cjs} +2 -2
  118. package/dist/{chunk-KIHD6XW4.cjs.map → chunk-QT4PZADB.cjs.map} +1 -1
  119. package/dist/{chunk-Z33SQXH7.js → chunk-RPTXQCPX.js} +2 -2
  120. package/dist/{chunk-NQ2ZLEJM.cjs → chunk-RVA6RAAV.cjs} +2 -2
  121. package/dist/{chunk-NQ2ZLEJM.cjs.map → chunk-RVA6RAAV.cjs.map} +1 -1
  122. package/dist/{chunk-A54PA2EG.cjs → chunk-S746YM5E.cjs} +2 -2
  123. package/dist/{chunk-A54PA2EG.cjs.map → chunk-S746YM5E.cjs.map} +1 -1
  124. package/dist/{chunk-PTZY5QT2.js → chunk-SG7UWQNO.js} +2 -2
  125. package/dist/{chunk-65X6A6KQ.js → chunk-T47S2WSQ.js} +2 -2
  126. package/dist/{chunk-BYGALRDB.js → chunk-T6YERNOX.js} +2 -2
  127. package/dist/{chunk-G4WCJ4KY.js → chunk-THEOATNP.js} +2 -2
  128. package/dist/{chunk-3KT3LOJ7.js → chunk-TSNDVQHW.js} +2 -2
  129. package/dist/{chunk-HCPQ2GZG.js → chunk-UJZVPMF5.js} +2 -2
  130. package/dist/{chunk-Y3M5QUS5.js → chunk-UVIAVPXS.js} +2 -2
  131. package/dist/chunk-UXW3L3L6.cjs +2 -0
  132. package/dist/chunk-UXW3L3L6.cjs.map +1 -0
  133. package/dist/{chunk-FKYB743A.js → chunk-V2KFUL72.js} +2 -2
  134. package/dist/{chunk-YHH5F6YQ.cjs → chunk-WC3CTTBT.cjs} +2 -2
  135. package/dist/{chunk-YHH5F6YQ.cjs.map → chunk-WC3CTTBT.cjs.map} +1 -1
  136. package/dist/{chunk-M5DUNORE.cjs → chunk-WGFZKESC.cjs} +2 -2
  137. package/dist/{chunk-M5DUNORE.cjs.map → chunk-WGFZKESC.cjs.map} +1 -1
  138. package/dist/{chunk-VPCHJGQD.cjs → chunk-XBTPHOG2.cjs} +2 -2
  139. package/dist/{chunk-VPCHJGQD.cjs.map → chunk-XBTPHOG2.cjs.map} +1 -1
  140. package/dist/{chunk-GWQSOH7E.js → chunk-Y73PX63U.js} +2 -2
  141. package/dist/chunk-YAGYM2VT.js +2 -0
  142. package/dist/chunk-YAGYM2VT.js.map +1 -0
  143. package/dist/{chunk-O5I5EOTQ.cjs → chunk-YOEDMOCB.cjs} +2 -2
  144. package/dist/{chunk-O5I5EOTQ.cjs.map → chunk-YOEDMOCB.cjs.map} +1 -1
  145. package/dist/{chunk-Z6V6UPDQ.js → chunk-ZDHJNZHM.js} +2 -2
  146. package/dist/{chunk-GA25YW67.js → chunk-ZDQVDIAV.js} +2 -2
  147. package/dist/chunk-ZEDMMWJI.cjs +2 -0
  148. package/dist/chunk-ZEDMMWJI.cjs.map +1 -0
  149. package/dist/{chunk-EHBO2JJX.js → chunk-ZGFQN2L7.js} +2 -2
  150. package/dist/{chunk-2T5HIPYL.cjs → chunk-ZMDQ7HQF.cjs} +2 -2
  151. package/dist/{chunk-2T5HIPYL.cjs.map → chunk-ZMDQ7HQF.cjs.map} +1 -1
  152. package/dist/common/bin/index.cjs +1 -1
  153. package/dist/common/bin/index.js +1 -1
  154. package/dist/common/crypto/crypto.cjs +1 -1
  155. package/dist/common/crypto/crypto.js +1 -1
  156. package/dist/common/crypto/index.cjs +1 -1
  157. package/dist/common/crypto/index.js +1 -1
  158. package/dist/common/data/array.cjs +1 -1
  159. package/dist/common/data/array.js +1 -1
  160. package/dist/common/data/basex-secure.cjs +1 -1
  161. package/dist/common/data/basex-secure.js +1 -1
  162. package/dist/common/data/basex.cjs +1 -1
  163. package/dist/common/data/basex.js +1 -1
  164. package/dist/common/data/bin.cjs +1 -1
  165. package/dist/common/data/bin.js +1 -1
  166. package/dist/common/data/datauri.cjs +1 -1
  167. package/dist/common/data/datauri.js +1 -1
  168. package/dist/common/data/day-legacy.cjs +1 -1
  169. package/dist/common/data/day-legacy.cjs.map +1 -1
  170. package/dist/common/data/day-legacy.js +1 -1
  171. package/dist/common/data/day.cjs +1 -1
  172. package/dist/common/data/day.cjs.map +1 -1
  173. package/dist/common/data/day.js +1 -1
  174. package/dist/common/data/index.cjs +1 -1
  175. package/dist/common/data/index.cjs.map +1 -1
  176. package/dist/common/data/index.d.cts +1 -1
  177. package/dist/common/data/index.d.ts +1 -1
  178. package/dist/common/data/index.js +1 -1
  179. package/dist/common/data/math.cjs +1 -1
  180. package/dist/common/data/math.cjs.map +1 -1
  181. package/dist/common/data/math.d.cts +3 -1
  182. package/dist/common/data/math.d.ts +3 -1
  183. package/dist/common/data/math.js +1 -1
  184. package/dist/common/data/message.cjs +1 -1
  185. package/dist/common/data/message.js +1 -1
  186. package/dist/common/data/object-changes.cjs +1 -1
  187. package/dist/common/data/object-changes.js +1 -1
  188. package/dist/common/data/rounding.cjs +1 -1
  189. package/dist/common/data/rounding.js +1 -1
  190. package/dist/common/data/signal.cjs +1 -1
  191. package/dist/common/data/signal.js +1 -1
  192. package/dist/common/data/sortable.cjs +1 -1
  193. package/dist/common/data/sortable.js +1 -1
  194. package/dist/common/data/sorted.cjs +1 -1
  195. package/dist/common/data/sorted.js +1 -1
  196. package/dist/common/data/wordlist.cjs +1 -1
  197. package/dist/common/data/wordlist.js +1 -1
  198. package/dist/common/dispose-defer.cjs +1 -1
  199. package/dist/common/dispose-defer.js +1 -1
  200. package/dist/common/dispose-utils.cjs +1 -1
  201. package/dist/common/dispose-utils.js +1 -1
  202. package/dist/common/exec/index.cjs +1 -1
  203. package/dist/common/exec/index.js +1 -1
  204. package/dist/common/exec/pool.cjs +1 -1
  205. package/dist/common/exec/pool.js +1 -1
  206. package/dist/common/exec/progress.cjs +1 -1
  207. package/dist/common/exec/progress.js +1 -1
  208. package/dist/common/exec/queue.cjs +1 -1
  209. package/dist/common/exec/queue.cjs.map +1 -1
  210. package/dist/common/exec/queue.js +1 -1
  211. package/dist/common/index.cjs +1 -1
  212. package/dist/common/index.cjs.map +1 -1
  213. package/dist/common/index.d.cts +2 -2
  214. package/dist/common/index.d.ts +2 -2
  215. package/dist/common/index.js +1 -1
  216. package/dist/common/log/index.cjs +1 -1
  217. package/dist/common/log/index.cjs.map +1 -1
  218. package/dist/common/log/index.js +1 -1
  219. package/dist/common/log/log-memory.cjs +1 -1
  220. package/dist/common/log/log-memory.cjs.map +1 -1
  221. package/dist/common/log/log-memory.js +1 -1
  222. package/dist/common/msg/channel-debug.cjs +1 -1
  223. package/dist/common/msg/channel-debug.js +1 -1
  224. package/dist/common/msg/channel-local.cjs +1 -1
  225. package/dist/common/msg/channel-local.js +1 -1
  226. package/dist/common/msg/channel-resilient.cjs +1 -1
  227. package/dist/common/msg/channel-resilient.js +1 -1
  228. package/dist/common/msg/channel.cjs +1 -1
  229. package/dist/common/msg/channel.js +1 -1
  230. package/dist/common/msg/encoder.cjs +1 -1
  231. package/dist/common/msg/encoder.js +1 -1
  232. package/dist/common/msg/index.cjs +1 -1
  233. package/dist/common/msg/index.js +1 -1
  234. package/dist/common/msg/messages.cjs +1 -1
  235. package/dist/common/msg/messages.cjs.map +1 -1
  236. package/dist/common/msg/messages.js +1 -1
  237. package/dist/common/msg/pubsub.cjs +1 -1
  238. package/dist/common/msg/pubsub.cjs.map +1 -1
  239. package/dist/common/msg/pubsub.js +1 -1
  240. package/dist/common/network.cjs +1 -1
  241. package/dist/common/network.js +1 -1
  242. package/dist/common/schema/export-swift.cjs +1 -1
  243. package/dist/common/schema/export-swift.js +1 -1
  244. package/dist/common/schema/index.cjs +1 -1
  245. package/dist/common/schema/index.cjs.map +1 -1
  246. package/dist/common/schema/index.js +1 -1
  247. package/dist/common/schema/parse-args.cjs +1 -1
  248. package/dist/common/schema/parse-args.js +1 -1
  249. package/dist/common/schema/parse-env.cjs +1 -1
  250. package/dist/common/schema/parse-env.js +1 -1
  251. package/dist/common/schema/parse-object.cjs +1 -1
  252. package/dist/common/schema/parse-object.js +1 -1
  253. package/dist/common/test.cjs +1 -1
  254. package/dist/common/test.js +1 -1
  255. package/dist/common/time.cjs +1 -1
  256. package/dist/common/time.cjs.map +1 -1
  257. package/dist/common/time.d.cts +4 -1
  258. package/dist/common/time.d.ts +4 -1
  259. package/dist/common/time.js +1 -1
  260. package/dist/common/utils.cjs +1 -1
  261. package/dist/common/utils.js +1 -1
  262. package/dist/common/uuid.cjs +1 -1
  263. package/dist/common/uuid.cjs.map +1 -1
  264. package/dist/common/uuid.js +1 -1
  265. package/dist/index.all.cjs +1 -1
  266. package/dist/index.all.cjs.map +1 -1
  267. package/dist/index.all.d.cts +2 -2
  268. package/dist/index.all.d.ts +2 -2
  269. package/dist/index.all.js +1 -1
  270. package/dist/index.browser.cjs +1 -1
  271. package/dist/index.browser.cjs.map +1 -1
  272. package/dist/index.browser.d.cts +2 -2
  273. package/dist/index.browser.d.ts +2 -2
  274. package/dist/index.browser.js +1 -1
  275. package/dist/index.jsr.cjs +1 -1
  276. package/dist/index.jsr.cjs.map +1 -1
  277. package/dist/index.jsr.d.cts +1 -1
  278. package/dist/index.jsr.d.ts +1 -1
  279. package/dist/index.jsr.js +1 -1
  280. package/dist/index.node.cjs +1 -1
  281. package/dist/index.node.cjs.map +1 -1
  282. package/dist/index.node.d.cts +2 -2
  283. package/dist/index.node.d.ts +2 -2
  284. package/dist/index.node.js +1 -1
  285. package/dist/node/files-async.cjs +1 -1
  286. package/dist/node/files-async.js +1 -1
  287. package/dist/node/files.cjs +1 -1
  288. package/dist/node/files.js +1 -1
  289. package/dist/node/fs.cjs +1 -1
  290. package/dist/node/fs.js +1 -1
  291. package/dist/node/index.cjs +1 -1
  292. package/dist/node/index.cjs.map +1 -1
  293. package/dist/node/index.js +1 -1
  294. package/dist/node/log/index.cjs +1 -1
  295. package/dist/node/log/index.cjs.map +1 -1
  296. package/dist/node/log/index.js +1 -1
  297. package/dist/node/log/log-context-node.cjs +1 -1
  298. package/dist/node/log/log-context-node.cjs.map +1 -1
  299. package/dist/node/log/log-context-node.js +1 -1
  300. package/dist/node/log/log-file.cjs +1 -1
  301. package/dist/node/log/log-file.js +1 -1
  302. package/dist/node/log/log-node.cjs +1 -1
  303. package/dist/node/log/log-node.cjs.map +1 -1
  304. package/dist/node/log/log-node.js +1 -1
  305. package/package.json +1 -1
  306. package/src/common/data/basex-secure.ts +252 -252
  307. package/src/common/data/bin.ts +3 -3
  308. package/src/common/data/math.spec.ts +25 -1
  309. package/src/common/data/math.ts +27 -0
  310. package/src/common/time.spec.ts +18 -1
  311. package/src/common/time.ts +18 -0
  312. package/src/common/utils.ts +1 -1
  313. package/dist/chunk-4YZUZA6T.js +0 -2
  314. package/dist/chunk-6YOH5J2L.cjs.map +0 -1
  315. package/dist/chunk-7K66QBCK.cjs +0 -2
  316. package/dist/chunk-DKRJCI55.js +0 -2
  317. package/dist/chunk-DKRJCI55.js.map +0 -1
  318. package/dist/chunk-EN6IMU3D.js +0 -2
  319. package/dist/chunk-FEFDFQGF.cjs +0 -2
  320. package/dist/chunk-FEFDFQGF.cjs.map +0 -1
  321. package/dist/chunk-JN5FOZ4A.cjs +0 -2
  322. package/dist/chunk-JN5FOZ4A.cjs.map +0 -1
  323. package/dist/chunk-PDYLHAQH.js.map +0 -1
  324. package/dist/chunk-PKTW5XZA.js.map +0 -1
  325. package/dist/chunk-TJTAAHDB.cjs.map +0 -1
  326. package/dist/chunk-YE42OFHM.cjs +0 -2
  327. /package/dist/{chunk-GEIUAN3F.js.map → chunk-2LBY3SIX.js.map} +0 -0
  328. /package/dist/{chunk-B5DTIAQJ.js.map → chunk-2ORDWVXB.js.map} +0 -0
  329. /package/dist/{chunk-223IVU47.js.map → chunk-3IGQW4J4.js.map} +0 -0
  330. /package/dist/{chunk-AU4UHJWD.js.map → chunk-64TQ2QFV.js.map} +0 -0
  331. /package/dist/{chunk-V4SVIQPH.js.map → chunk-7E3NXFJW.js.map} +0 -0
  332. /package/dist/{chunk-GEU6RNVE.js.map → chunk-7G5UU2PZ.js.map} +0 -0
  333. /package/dist/{chunk-DY2UU7KS.js.map → chunk-7KCYQMJX.js.map} +0 -0
  334. /package/dist/{chunk-JZOWTKX3.js.map → chunk-ADBNYVG6.js.map} +0 -0
  335. /package/dist/{chunk-4YZUZA6T.js.map → chunk-B3FN5ADY.js.map} +0 -0
  336. /package/dist/{chunk-323G4IQO.js.map → chunk-BBLGMFL4.js.map} +0 -0
  337. /package/dist/{chunk-3VVHI55F.js.map → chunk-CB7624ZT.js.map} +0 -0
  338. /package/dist/{chunk-ZTADP73D.js.map → chunk-CKJVZGKB.js.map} +0 -0
  339. /package/dist/{chunk-NS4GA3CG.js.map → chunk-EWE6NUEH.js.map} +0 -0
  340. /package/dist/{chunk-VVHOQAG4.js.map → chunk-FVYPLV2N.js.map} +0 -0
  341. /package/dist/{chunk-MMOV5NX5.js.map → chunk-G3DXK6KA.js.map} +0 -0
  342. /package/dist/{chunk-LV6PHQ7A.js.map → chunk-GFELJXCW.js.map} +0 -0
  343. /package/dist/{chunk-VC5WLH64.js.map → chunk-GIM3UHCU.js.map} +0 -0
  344. /package/dist/{chunk-YEJA2S2R.js.map → chunk-GXEJL62J.js.map} +0 -0
  345. /package/dist/{chunk-2DROU3L2.js.map → chunk-HUKVWV6Z.js.map} +0 -0
  346. /package/dist/{chunk-II65ITGA.js.map → chunk-JDZXUP7J.js.map} +0 -0
  347. /package/dist/{chunk-Z622IHAO.js.map → chunk-JJ4XR2Q3.js.map} +0 -0
  348. /package/dist/{chunk-AMMLBSNC.js.map → chunk-KP2G2V2F.js.map} +0 -0
  349. /package/dist/{chunk-BNJSUPNA.js.map → chunk-NGPSQHUI.js.map} +0 -0
  350. /package/dist/{chunk-HTDW2DTX.js.map → chunk-NTEUFYYI.js.map} +0 -0
  351. /package/dist/{chunk-VPBDNWFN.js.map → chunk-NXPP37OL.js.map} +0 -0
  352. /package/dist/{chunk-7FZWUO5Y.js.map → chunk-PH6VHAG4.js.map} +0 -0
  353. /package/dist/{chunk-5GKJ7XS3.js.map → chunk-PJY2K5GW.js.map} +0 -0
  354. /package/dist/{chunk-EPY7WQBD.js.map → chunk-Q7RWPL4P.js.map} +0 -0
  355. /package/dist/{chunk-Z33SQXH7.js.map → chunk-RPTXQCPX.js.map} +0 -0
  356. /package/dist/{chunk-PTZY5QT2.js.map → chunk-SG7UWQNO.js.map} +0 -0
  357. /package/dist/{chunk-65X6A6KQ.js.map → chunk-T47S2WSQ.js.map} +0 -0
  358. /package/dist/{chunk-BYGALRDB.js.map → chunk-T6YERNOX.js.map} +0 -0
  359. /package/dist/{chunk-G4WCJ4KY.js.map → chunk-THEOATNP.js.map} +0 -0
  360. /package/dist/{chunk-3KT3LOJ7.js.map → chunk-TSNDVQHW.js.map} +0 -0
  361. /package/dist/{chunk-HCPQ2GZG.js.map → chunk-UJZVPMF5.js.map} +0 -0
  362. /package/dist/{chunk-Y3M5QUS5.js.map → chunk-UVIAVPXS.js.map} +0 -0
  363. /package/dist/{chunk-FKYB743A.js.map → chunk-V2KFUL72.js.map} +0 -0
  364. /package/dist/{chunk-GWQSOH7E.js.map → chunk-Y73PX63U.js.map} +0 -0
  365. /package/dist/{chunk-Z6V6UPDQ.js.map → chunk-ZDHJNZHM.js.map} +0 -0
  366. /package/dist/{chunk-GA25YW67.js.map → chunk-ZDQVDIAV.js.map} +0 -0
  367. /package/dist/{chunk-EHBO2JJX.js.map → chunk-ZGFQN2L7.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-KPU7ZOUH.cjs');require('../chunk-ULLUQLTA.cjs');var _chunkCS2HEB37cjs = require('../chunk-CS2HEB37.cjs');require('../chunk-75LG3YTX.cjs');var _chunkNQ2ZLEJMcjs = require('../chunk-NQ2ZLEJM.cjs');var _chunkAH7ZMSSEcjs = require('../chunk-AH7ZMSSE.cjs');var _chunk6WDKWB3Icjs = require('../chunk-6WDKWB3I.cjs');require('../chunk-N7XCSNC7.cjs');require('../chunk-CWGNDC2T.cjs');require('../chunk-DV7JJRFV.cjs');require('../chunk-SEQAFKIV.cjs');require('../chunk-FBNN5DJJ.cjs');require('../chunk-YPL72ZRS.cjs');require('../chunk-DRKHTT76.cjs');require('../chunk-JN5FOZ4A.cjs');require('../chunk-Q5TVGJYN.cjs');var _chunkR74LEJVEcjs = require('../chunk-R74LEJVE.cjs');var _chunkC7CD7VGTcjs = require('../chunk-C7CD7VGT.cjs');require('../chunk-P7XCQ7WV.cjs');exports.LocalStorage = _chunk6WDKWB3Icjs.a; exports.LoggerBrowserHandler = _chunkNQ2ZLEJMcjs.a; exports.LoggerBrowserSetupDebugFactory = _chunkCS2HEB37cjs.a; exports.browserSupportsColors = _chunkAH7ZMSSEcjs.a; exports.gravatarURLByEmail = _chunkC7CD7VGTcjs.a; exports.urlBase64ToUint8Array = _chunkR74LEJVEcjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-KPU7ZOUH.cjs');require('../chunk-ULLUQLTA.cjs');var _chunkCS2HEB37cjs = require('../chunk-CS2HEB37.cjs');require('../chunk-75LG3YTX.cjs');var _chunkRVA6RAAVcjs = require('../chunk-RVA6RAAV.cjs');var _chunkAH7ZMSSEcjs = require('../chunk-AH7ZMSSE.cjs');var _chunk6WDKWB3Icjs = require('../chunk-6WDKWB3I.cjs');require('../chunk-N7XCSNC7.cjs');require('../chunk-CWGNDC2T.cjs');require('../chunk-DV7JJRFV.cjs');require('../chunk-SEQAFKIV.cjs');require('../chunk-FBNN5DJJ.cjs');require('../chunk-YPL72ZRS.cjs');require('../chunk-DRKHTT76.cjs');require('../chunk-ZEDMMWJI.cjs');require('../chunk-UXW3L3L6.cjs');require('../chunk-Q5TVGJYN.cjs');var _chunkR74LEJVEcjs = require('../chunk-R74LEJVE.cjs');var _chunkC7CD7VGTcjs = require('../chunk-C7CD7VGT.cjs');require('../chunk-P7XCQ7WV.cjs');exports.LocalStorage = _chunk6WDKWB3Icjs.a; exports.LoggerBrowserHandler = _chunkRVA6RAAVcjs.a; exports.LoggerBrowserSetupDebugFactory = _chunkCS2HEB37cjs.a; exports.browserSupportsColors = _chunkAH7ZMSSEcjs.a; exports.gravatarURLByEmail = _chunkC7CD7VGTcjs.a; exports.urlBase64ToUint8Array = _chunkR74LEJVEcjs.a;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/browser/index.cjs"],"names":[],"mappings":"AAAA,0GAA6B,iCAA8B,yDAA0C,iCAA8B,yDAA0C,yDAA0C,yDAA0C,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,yDAAqC,yDAA0C,iCAA8B,yTAAsK","file":"/home/runner/work/zeed/zeed/dist/browser/index.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/browser/index.cjs"],"names":[],"mappings":"AAAA,0GAA6B,iCAA8B,yDAA0C,iCAA8B,yDAA0C,yDAA0C,yDAA0C,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,yDAAqC,yDAA0C,iCAA8B,yTAAsK","file":"/home/runner/work/zeed/zeed/dist/browser/index.cjs"}
@@ -1,2 +1,2 @@
1
- import"../chunk-WAROIE2O.js";import"../chunk-OR7Z43J5.js";import{a as f}from"../chunk-LVOXJNQE.js";import"../chunk-LS7Y63IY.js";import{a as e}from"../chunk-GEU6RNVE.js";import{a as d}from"../chunk-F2B4OXR3.js";import{a as c}from"../chunk-3DWVSH3P.js";import"../chunk-FG7OTMAN.js";import"../chunk-YW3IERPU.js";import"../chunk-6RPT24RD.js";import"../chunk-RZR3ECDT.js";import"../chunk-OGOFXDLA.js";import"../chunk-BQ6TZ7P3.js";import"../chunk-GMRDD36O.js";import"../chunk-EN6IMU3D.js";import"../chunk-6PWTMRKI.js";import{a}from"../chunk-LJ47LTYI.js";import{a as b}from"../chunk-7QVUB3F6.js";import"../chunk-5NKC2EQJ.js";export{c as LocalStorage,e as LoggerBrowserHandler,f as LoggerBrowserSetupDebugFactory,d as browserSupportsColors,b as gravatarURLByEmail,a as urlBase64ToUint8Array};
1
+ import"../chunk-WAROIE2O.js";import"../chunk-OR7Z43J5.js";import{a as f}from"../chunk-LVOXJNQE.js";import"../chunk-LS7Y63IY.js";import{a as e}from"../chunk-7G5UU2PZ.js";import{a as d}from"../chunk-F2B4OXR3.js";import{a as c}from"../chunk-3DWVSH3P.js";import"../chunk-FG7OTMAN.js";import"../chunk-YW3IERPU.js";import"../chunk-6RPT24RD.js";import"../chunk-RZR3ECDT.js";import"../chunk-OGOFXDLA.js";import"../chunk-BQ6TZ7P3.js";import"../chunk-GMRDD36O.js";import"../chunk-73A2QE6J.js";import"../chunk-YAGYM2VT.js";import"../chunk-6PWTMRKI.js";import{a}from"../chunk-LJ47LTYI.js";import{a as b}from"../chunk-7QVUB3F6.js";import"../chunk-5NKC2EQJ.js";export{c as LocalStorage,e as LoggerBrowserHandler,f as LoggerBrowserSetupDebugFactory,d as browserSupportsColors,b as gravatarURLByEmail,a as urlBase64ToUint8Array};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../../chunk-ULLUQLTA.cjs');var _chunkCS2HEB37cjs = require('../../chunk-CS2HEB37.cjs');require('../../chunk-75LG3YTX.cjs');var _chunkNQ2ZLEJMcjs = require('../../chunk-NQ2ZLEJM.cjs');var _chunkAH7ZMSSEcjs = require('../../chunk-AH7ZMSSE.cjs');require('../../chunk-N7XCSNC7.cjs');require('../../chunk-CWGNDC2T.cjs');require('../../chunk-DV7JJRFV.cjs');require('../../chunk-SEQAFKIV.cjs');require('../../chunk-FBNN5DJJ.cjs');require('../../chunk-YPL72ZRS.cjs');require('../../chunk-DRKHTT76.cjs');require('../../chunk-JN5FOZ4A.cjs');require('../../chunk-Q5TVGJYN.cjs');require('../../chunk-P7XCQ7WV.cjs');exports.LoggerBrowserHandler = _chunkNQ2ZLEJMcjs.a; exports.LoggerBrowserSetupDebugFactory = _chunkCS2HEB37cjs.a; exports.browserSupportsColors = _chunkAH7ZMSSEcjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../../chunk-ULLUQLTA.cjs');var _chunkCS2HEB37cjs = require('../../chunk-CS2HEB37.cjs');require('../../chunk-75LG3YTX.cjs');var _chunkRVA6RAAVcjs = require('../../chunk-RVA6RAAV.cjs');var _chunkAH7ZMSSEcjs = require('../../chunk-AH7ZMSSE.cjs');require('../../chunk-N7XCSNC7.cjs');require('../../chunk-CWGNDC2T.cjs');require('../../chunk-DV7JJRFV.cjs');require('../../chunk-SEQAFKIV.cjs');require('../../chunk-FBNN5DJJ.cjs');require('../../chunk-YPL72ZRS.cjs');require('../../chunk-DRKHTT76.cjs');require('../../chunk-ZEDMMWJI.cjs');require('../../chunk-UXW3L3L6.cjs');require('../../chunk-Q5TVGJYN.cjs');require('../../chunk-P7XCQ7WV.cjs');exports.LoggerBrowserHandler = _chunkRVA6RAAVcjs.a; exports.LoggerBrowserSetupDebugFactory = _chunkCS2HEB37cjs.a; exports.browserSupportsColors = _chunkAH7ZMSSEcjs.a;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/browser/log/index.cjs"],"names":[],"mappings":"AAAA,6GAAgC,4DAA6C,oCAAiC,4DAA6C,4DAAwC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,sKAAiG","file":"/home/runner/work/zeed/zeed/dist/browser/log/index.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/browser/log/index.cjs"],"names":[],"mappings":"AAAA,6GAAgC,4DAA6C,oCAAiC,4DAA6C,4DAAwC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,sKAAiG","file":"/home/runner/work/zeed/zeed/dist/browser/log/index.cjs"}
@@ -1,2 +1,2 @@
1
- import"../../chunk-OR7Z43J5.js";import{a as c}from"../../chunk-LVOXJNQE.js";import"../../chunk-LS7Y63IY.js";import{a as b}from"../../chunk-GEU6RNVE.js";import{a}from"../../chunk-F2B4OXR3.js";import"../../chunk-FG7OTMAN.js";import"../../chunk-YW3IERPU.js";import"../../chunk-6RPT24RD.js";import"../../chunk-RZR3ECDT.js";import"../../chunk-OGOFXDLA.js";import"../../chunk-BQ6TZ7P3.js";import"../../chunk-GMRDD36O.js";import"../../chunk-EN6IMU3D.js";import"../../chunk-6PWTMRKI.js";import"../../chunk-5NKC2EQJ.js";export{b as LoggerBrowserHandler,c as LoggerBrowserSetupDebugFactory,a as browserSupportsColors};
1
+ import"../../chunk-OR7Z43J5.js";import{a as c}from"../../chunk-LVOXJNQE.js";import"../../chunk-LS7Y63IY.js";import{a as b}from"../../chunk-7G5UU2PZ.js";import{a}from"../../chunk-F2B4OXR3.js";import"../../chunk-FG7OTMAN.js";import"../../chunk-YW3IERPU.js";import"../../chunk-6RPT24RD.js";import"../../chunk-RZR3ECDT.js";import"../../chunk-OGOFXDLA.js";import"../../chunk-BQ6TZ7P3.js";import"../../chunk-GMRDD36O.js";import"../../chunk-73A2QE6J.js";import"../../chunk-YAGYM2VT.js";import"../../chunk-6PWTMRKI.js";import"../../chunk-5NKC2EQJ.js";export{b as LoggerBrowserHandler,c as LoggerBrowserSetupDebugFactory,a as browserSupportsColors};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkNQ2ZLEJMcjs = require('../../chunk-NQ2ZLEJM.cjs');require('../../chunk-AH7ZMSSE.cjs');require('../../chunk-N7XCSNC7.cjs');require('../../chunk-CWGNDC2T.cjs');require('../../chunk-DV7JJRFV.cjs');require('../../chunk-SEQAFKIV.cjs');require('../../chunk-FBNN5DJJ.cjs');require('../../chunk-YPL72ZRS.cjs');require('../../chunk-DRKHTT76.cjs');require('../../chunk-JN5FOZ4A.cjs');require('../../chunk-Q5TVGJYN.cjs');require('../../chunk-P7XCQ7WV.cjs');exports.LoggerBrowserHandler = _chunkNQ2ZLEJMcjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkRVA6RAAVcjs = require('../../chunk-RVA6RAAV.cjs');require('../../chunk-AH7ZMSSE.cjs');require('../../chunk-N7XCSNC7.cjs');require('../../chunk-CWGNDC2T.cjs');require('../../chunk-DV7JJRFV.cjs');require('../../chunk-SEQAFKIV.cjs');require('../../chunk-FBNN5DJJ.cjs');require('../../chunk-YPL72ZRS.cjs');require('../../chunk-DRKHTT76.cjs');require('../../chunk-ZEDMMWJI.cjs');require('../../chunk-UXW3L3L6.cjs');require('../../chunk-Q5TVGJYN.cjs');require('../../chunk-P7XCQ7WV.cjs');exports.LoggerBrowserHandler = _chunkRVA6RAAVcjs.a;
2
2
  //# sourceMappingURL=log-browser.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/browser/log/log-browser.cjs"],"names":[],"mappings":"AAAA,qIAAuC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,mDAAkC","file":"/home/runner/work/zeed/zeed/dist/browser/log/log-browser.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/browser/log/log-browser.cjs"],"names":[],"mappings":"AAAA,qIAAuC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,mDAAkC","file":"/home/runner/work/zeed/zeed/dist/browser/log/log-browser.cjs"}
@@ -1,2 +1,2 @@
1
- import{a}from"../../chunk-GEU6RNVE.js";import"../../chunk-F2B4OXR3.js";import"../../chunk-FG7OTMAN.js";import"../../chunk-YW3IERPU.js";import"../../chunk-6RPT24RD.js";import"../../chunk-RZR3ECDT.js";import"../../chunk-OGOFXDLA.js";import"../../chunk-BQ6TZ7P3.js";import"../../chunk-GMRDD36O.js";import"../../chunk-EN6IMU3D.js";import"../../chunk-6PWTMRKI.js";import"../../chunk-5NKC2EQJ.js";export{a as LoggerBrowserHandler};
1
+ import{a}from"../../chunk-7G5UU2PZ.js";import"../../chunk-F2B4OXR3.js";import"../../chunk-FG7OTMAN.js";import"../../chunk-YW3IERPU.js";import"../../chunk-6RPT24RD.js";import"../../chunk-RZR3ECDT.js";import"../../chunk-OGOFXDLA.js";import"../../chunk-BQ6TZ7P3.js";import"../../chunk-GMRDD36O.js";import"../../chunk-73A2QE6J.js";import"../../chunk-YAGYM2VT.js";import"../../chunk-6PWTMRKI.js";import"../../chunk-5NKC2EQJ.js";export{a as LoggerBrowserHandler};
2
2
  //# sourceMappingURL=log-browser.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkTKMOYLYAcjs = require('../../chunk-TKMOYLYA.cjs');require('../../chunk-CS2HEB37.cjs');require('../../chunk-75LG3YTX.cjs');require('../../chunk-NQ2ZLEJM.cjs');require('../../chunk-AH7ZMSSE.cjs');require('../../chunk-IBQVKUC7.cjs');require('../../chunk-L5C7BHMX.cjs');require('../../chunk-N7XCSNC7.cjs');require('../../chunk-YBK6FIAJ.cjs');require('../../chunk-MFLDYBF7.cjs');require('../../chunk-KHDOFYEQ.cjs');require('../../chunk-CWGNDC2T.cjs');require('../../chunk-DV7JJRFV.cjs');require('../../chunk-SEQAFKIV.cjs');require('../../chunk-FBNN5DJJ.cjs');require('../../chunk-YPL72ZRS.cjs');require('../../chunk-DRKHTT76.cjs');require('../../chunk-JN5FOZ4A.cjs');require('../../chunk-Q5TVGJYN.cjs');require('../../chunk-P7XCQ7WV.cjs');exports.Logger = _chunkTKMOYLYAcjs.a; exports.LoggerFromConfig = _chunkTKMOYLYAcjs.b;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkKZ4SDL5Gcjs = require('../../chunk-KZ4SDL5G.cjs');require('../../chunk-CS2HEB37.cjs');require('../../chunk-75LG3YTX.cjs');require('../../chunk-RVA6RAAV.cjs');require('../../chunk-AH7ZMSSE.cjs');require('../../chunk-IBQVKUC7.cjs');require('../../chunk-L5C7BHMX.cjs');require('../../chunk-N7XCSNC7.cjs');require('../../chunk-YBK6FIAJ.cjs');require('../../chunk-MFLDYBF7.cjs');require('../../chunk-KHDOFYEQ.cjs');require('../../chunk-CWGNDC2T.cjs');require('../../chunk-DV7JJRFV.cjs');require('../../chunk-SEQAFKIV.cjs');require('../../chunk-FBNN5DJJ.cjs');require('../../chunk-YPL72ZRS.cjs');require('../../chunk-DRKHTT76.cjs');require('../../chunk-ZEDMMWJI.cjs');require('../../chunk-UXW3L3L6.cjs');require('../../chunk-Q5TVGJYN.cjs');require('../../chunk-P7XCQ7WV.cjs');exports.Logger = _chunkKZ4SDL5Gcjs.a; exports.LoggerFromConfig = _chunkKZ4SDL5Gcjs.b;
2
2
  //# sourceMappingURL=log-context-browser.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/browser/log/log-context-browser.cjs"],"names":[],"mappings":"AAAA,qIAAyC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,qFAA0C","file":"/home/runner/work/zeed/zeed/dist/browser/log/log-context-browser.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/browser/log/log-context-browser.cjs"],"names":[],"mappings":"AAAA,qIAAyC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,qFAA0C","file":"/home/runner/work/zeed/zeed/dist/browser/log/log-context-browser.cjs"}
@@ -1,2 +1,2 @@
1
- import{a,b}from"../../chunk-NS4GA3CG.js";import"../../chunk-LVOXJNQE.js";import"../../chunk-LS7Y63IY.js";import"../../chunk-GEU6RNVE.js";import"../../chunk-F2B4OXR3.js";import"../../chunk-X7KQEPRA.js";import"../../chunk-CHUK5BAO.js";import"../../chunk-FG7OTMAN.js";import"../../chunk-AGJVRVCV.js";import"../../chunk-OGZTHIWZ.js";import"../../chunk-RXIRDKCE.js";import"../../chunk-YW3IERPU.js";import"../../chunk-6RPT24RD.js";import"../../chunk-RZR3ECDT.js";import"../../chunk-OGOFXDLA.js";import"../../chunk-BQ6TZ7P3.js";import"../../chunk-GMRDD36O.js";import"../../chunk-EN6IMU3D.js";import"../../chunk-6PWTMRKI.js";import"../../chunk-5NKC2EQJ.js";export{a as Logger,b as LoggerFromConfig};
1
+ import{a,b}from"../../chunk-EWE6NUEH.js";import"../../chunk-LVOXJNQE.js";import"../../chunk-LS7Y63IY.js";import"../../chunk-7G5UU2PZ.js";import"../../chunk-F2B4OXR3.js";import"../../chunk-X7KQEPRA.js";import"../../chunk-CHUK5BAO.js";import"../../chunk-FG7OTMAN.js";import"../../chunk-AGJVRVCV.js";import"../../chunk-OGZTHIWZ.js";import"../../chunk-RXIRDKCE.js";import"../../chunk-YW3IERPU.js";import"../../chunk-6RPT24RD.js";import"../../chunk-RZR3ECDT.js";import"../../chunk-OGOFXDLA.js";import"../../chunk-BQ6TZ7P3.js";import"../../chunk-GMRDD36O.js";import"../../chunk-73A2QE6J.js";import"../../chunk-YAGYM2VT.js";import"../../chunk-6PWTMRKI.js";import"../../chunk-5NKC2EQJ.js";export{a as Logger,b as LoggerFromConfig};
2
2
  //# sourceMappingURL=log-context-browser.js.map
@@ -1,2 +1,2 @@
1
- import{a as y}from"./chunk-VVHOQAG4.js";import{a as b}from"./chunk-EIGLPIZZ.js";import{b as R}from"./chunk-VC5WLH64.js";import{a as h}from"./chunk-6EQDC7VW.js";import{q as C,u as w}from"./chunk-Z33SQXH7.js";import{a as s}from"./chunk-5NKC2EQJ.js";function $(F={}){let{maxParallel:U=3,name:j=w("pool"),idConflictResolution:I="memoize"}=F,l=new b,k=R();k.add(g);let f=new y({name:j});f.on("progressCancelled",g);let c=0,p=0,v=0,P=0,i={};async function z(){if(c>0){let[t,e]=h();return l.once("didFinish",e),t}}s(z,"waitFinishAll");async function M(){for(let t of Object.keys(i))i[t].state==="finished"&&(await i[t].progress.dispose(),delete i[t])}s(M,"cleanupFinished");function E(){l.emit("didFinish"),c=0,p=0,M(),f.reset()}s(E,"didFinish");function m(){let t=0,e=0;for(let{max:n,resolved:d,state:o}of Object.values(i))t+=n,e+=o==="finished"?n:Math.min(n,d);l.emit("didUpdate",c,p,t,e)}s(m,"didUpdate");function T(){if(m(),c>0&&c===p&&E(),v>=U)return;let t=Object.values(i).filter(e=>e.state==="waiting");if(t.length>0){let e;for(let n of t)n.group!=null&&Object.values(i).some(d=>d.state==="running"&&d.id!==n.id&&d.group===n.group)||(e==null||n.priority<e.priority)&&(e=n);if(e!=null){let n=e.id,d=e.done;e.state="running",++v,l.emit("didStart",n);let o=s(a=>{e&&(e.result=a,e.state="finished",e.resolved=e.max,e.progress?.setCompleted()),--v,++p,T()},"taskFinished");e.task(e).then(a=>{d(a),l.emit("didResolve",n,a),o(a)}).catch(a=>{d(),l.emit("didReject",n,a),o()})}}}s(T,"performNext");function u(t){let e=i[t];e&&e.state==="waiting"&&(i[t].state="finished",++p,l.emit("didCancel",t),i[t].progress.dispose(),m())}s(u,"cancel");function g(){Object.keys(i).forEach(u)}s(g,"cancelAll");function O(t){return i[t]!=null}s(O,"hasById");function S(t,e={}){let n,d=new Promise(r=>n=r),o=e.id??C();if(i[o]!=null){let r=e.idConflictResolution??I;if(r==="replace")u(o);else if(r==="memoize"||r==="prioritize"){let x=i[o];return r==="prioritize"&&(x.priority=++P),{id:o,promise:(async()=>{if(x.state==="finished")return i[o].result})(),dispose:s(()=>u(o),"dispose"),cancel:s(()=>u(o),"cancel")}}else throw new Error(`Pool task with id=${o} already exists!`)}let a=new y({name:o,totalUnits:e.max??1,completeUnits:e.resolved??0});return f.addChild(a),i[o]={id:o,task:t,priority:++P,group:e.group,state:"waiting",max:e.max??1,resolved:e.resolved??0,done:n,payload:e.payload,progress:a,setMax(r){a.setTotalUnits(r),i[o].max=r,m()},setResolved(r){a.setCompletetedUnits(r),i[o].resolved=r,m()},incResolved(r=1){a.incCompletedUnits(r),i[o].resolved+=r,m()}},++c,T(),{id:o,promise:d,dispose:s(()=>u(o),"dispose"),cancel:s(()=>u(o),"cancel")}}return s(S,"enqueue"),{events:l,cancel:u,cancelAll:g,hasById:O,progress:f,enqueue:S,dispose:k,waitFinishAll:z}}s($,"usePool");export{$ as a};
2
- //# sourceMappingURL=chunk-GEIUAN3F.js.map
1
+ import{a as y}from"./chunk-FVYPLV2N.js";import{a as b}from"./chunk-EIGLPIZZ.js";import{b as R}from"./chunk-GIM3UHCU.js";import{a as h}from"./chunk-6EQDC7VW.js";import{q as C,u as w}from"./chunk-RPTXQCPX.js";import{a as s}from"./chunk-5NKC2EQJ.js";function $(F={}){let{maxParallel:U=3,name:j=w("pool"),idConflictResolution:I="memoize"}=F,l=new b,k=R();k.add(g);let f=new y({name:j});f.on("progressCancelled",g);let c=0,p=0,v=0,P=0,i={};async function z(){if(c>0){let[t,e]=h();return l.once("didFinish",e),t}}s(z,"waitFinishAll");async function M(){for(let t of Object.keys(i))i[t].state==="finished"&&(await i[t].progress.dispose(),delete i[t])}s(M,"cleanupFinished");function E(){l.emit("didFinish"),c=0,p=0,M(),f.reset()}s(E,"didFinish");function m(){let t=0,e=0;for(let{max:n,resolved:d,state:o}of Object.values(i))t+=n,e+=o==="finished"?n:Math.min(n,d);l.emit("didUpdate",c,p,t,e)}s(m,"didUpdate");function T(){if(m(),c>0&&c===p&&E(),v>=U)return;let t=Object.values(i).filter(e=>e.state==="waiting");if(t.length>0){let e;for(let n of t)n.group!=null&&Object.values(i).some(d=>d.state==="running"&&d.id!==n.id&&d.group===n.group)||(e==null||n.priority<e.priority)&&(e=n);if(e!=null){let n=e.id,d=e.done;e.state="running",++v,l.emit("didStart",n);let o=s(a=>{e&&(e.result=a,e.state="finished",e.resolved=e.max,e.progress?.setCompleted()),--v,++p,T()},"taskFinished");e.task(e).then(a=>{d(a),l.emit("didResolve",n,a),o(a)}).catch(a=>{d(),l.emit("didReject",n,a),o()})}}}s(T,"performNext");function u(t){let e=i[t];e&&e.state==="waiting"&&(i[t].state="finished",++p,l.emit("didCancel",t),i[t].progress.dispose(),m())}s(u,"cancel");function g(){Object.keys(i).forEach(u)}s(g,"cancelAll");function O(t){return i[t]!=null}s(O,"hasById");function S(t,e={}){let n,d=new Promise(r=>n=r),o=e.id??C();if(i[o]!=null){let r=e.idConflictResolution??I;if(r==="replace")u(o);else if(r==="memoize"||r==="prioritize"){let x=i[o];return r==="prioritize"&&(x.priority=++P),{id:o,promise:(async()=>{if(x.state==="finished")return i[o].result})(),dispose:s(()=>u(o),"dispose"),cancel:s(()=>u(o),"cancel")}}else throw new Error(`Pool task with id=${o} already exists!`)}let a=new y({name:o,totalUnits:e.max??1,completeUnits:e.resolved??0});return f.addChild(a),i[o]={id:o,task:t,priority:++P,group:e.group,state:"waiting",max:e.max??1,resolved:e.resolved??0,done:n,payload:e.payload,progress:a,setMax(r){a.setTotalUnits(r),i[o].max=r,m()},setResolved(r){a.setCompletetedUnits(r),i[o].resolved=r,m()},incResolved(r=1){a.incCompletedUnits(r),i[o].resolved+=r,m()}},++c,T(),{id:o,promise:d,dispose:s(()=>u(o),"dispose"),cancel:s(()=>u(o),"cancel")}}return s(S,"enqueue"),{events:l,cancel:u,cancelAll:g,hasById:O,progress:f,enqueue:S,dispose:k,waitFinishAll:z}}s($,"usePool");export{$ as a};
2
+ //# sourceMappingURL=chunk-2LBY3SIX.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkKIHD6XW4cjs = require('./chunk-KIHD6XW4.cjs');var _chunk2DZR3Q6Acjs = require('./chunk-2DZR3Q6A.cjs');var _chunkP7XCQ7WVcjs = require('./chunk-P7XCQ7WV.cjs');var e=class e extends _chunkKIHD6XW4cjs.a{constructor(){super(...arguments);this.buffer=[];this.dispose=_chunk2DZR3Q6Acjs.g.call(void 0, )}postMessageRaw(s){try{if(_optionalChain([this, 'access', _ => _.channel, 'optionalAccess', _2 => _2.isConnected]))return this.channel.postMessage(s),!0}catch (e2){}return!1}flushBuffer(){for(;this.buffer.length;){let s=this.buffer.shift();if(s&&!this.postMessageRaw(s)){this.buffer.unshift(s);break}}}emptyBuffer(){this.buffer=[]}setChannel(s){this.dispose(),this.channel=s,s&&(this.dispose.add(s.on("message",t=>this.emit("message",t))),s.isConnected?this.flushBuffer():this.dispose.add(s.on("connect",()=>this.flushBuffer())))}deleteChannel(){this.setChannel()}postMessage(s){this.flushBuffer(),this.postMessageRaw(s)||this.buffer.push(s)}get isConnected(){return _optionalChain([this, 'access', _3 => _3.channel, 'optionalAccess', _4 => _4.isConnected])===!0}};_chunkP7XCQ7WVcjs.a.call(void 0, e,"ResillientChannel");var h=e;exports.a = h;
2
- //# sourceMappingURL=chunk-R343YQLJ.cjs.map
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkQT4PZADBcjs = require('./chunk-QT4PZADB.cjs');var _chunkANL3U5W6cjs = require('./chunk-ANL3U5W6.cjs');var _chunkP7XCQ7WVcjs = require('./chunk-P7XCQ7WV.cjs');var e=class e extends _chunkQT4PZADBcjs.a{constructor(){super(...arguments);this.buffer=[];this.dispose=_chunkANL3U5W6cjs.g.call(void 0, )}postMessageRaw(s){try{if(_optionalChain([this, 'access', _ => _.channel, 'optionalAccess', _2 => _2.isConnected]))return this.channel.postMessage(s),!0}catch (e2){}return!1}flushBuffer(){for(;this.buffer.length;){let s=this.buffer.shift();if(s&&!this.postMessageRaw(s)){this.buffer.unshift(s);break}}}emptyBuffer(){this.buffer=[]}setChannel(s){this.dispose(),this.channel=s,s&&(this.dispose.add(s.on("message",t=>this.emit("message",t))),s.isConnected?this.flushBuffer():this.dispose.add(s.on("connect",()=>this.flushBuffer())))}deleteChannel(){this.setChannel()}postMessage(s){this.flushBuffer(),this.postMessageRaw(s)||this.buffer.push(s)}get isConnected(){return _optionalChain([this, 'access', _3 => _3.channel, 'optionalAccess', _4 => _4.isConnected])===!0}};_chunkP7XCQ7WVcjs.a.call(void 0, e,"ResillientChannel");var h=e;exports.a = h;
2
+ //# sourceMappingURL=chunk-2MBT4EWM.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-R343YQLJ.cjs","../src/common/msg/channel-resilient.ts"],"names":["_ResillientChannel","Channel","useDisposeWithUtils","data","channel","msg","__name","ResillientChannel"],"mappings":"AAAA,qoBAAwC,wDAAyC,wDAAyC,ICO7GA,CAAAA,CAAN,MAAMA,EAAAA,QAA0BC,mBAAQ,CAAxC,WAAA,CAAA,CAAA,CAAA,KAAA,CAAA,GAAA,SAAA,CAAA,CAEL,IAAA,CAAQ,MAAA,CAAkC,CAAC,CAAA,CAE3C,IAAA,CAAA,OAAA,CAAUC,iCAAAA,CAAoB,CAEtB,cAAA,CAAeC,CAAAA,CAAoC,CACzD,GAAI,CACF,EAAA,iBAAI,IAAA,mBAAK,OAAA,6BAAS,aAAA,CAChB,OAAA,IAAA,CAAK,OAAA,CAAQ,WAAA,CAAYA,CAAI,CAAA,CACtB,CAAA,CAEX,CAAA,UACY,CAEZ,CACA,MAAO,CAAA,CACT,CAGA,WAAA,CAAA,CAAc,CACZ,GAAA,CAAA,CAAO,IAAA,CAAK,MAAA,CAAO,MAAA,CAAA,CAAQ,CACzB,IAAMA,CAAAA,CAAO,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,CAAA,CAC/B,EAAA,CAAIA,CAAAA,EAAQ,CAAC,IAAA,CAAK,cAAA,CAAeA,CAAI,CAAA,CAAG,CACtC,IAAA,CAAK,MAAA,CAAO,OAAA,CAAQA,CAAI,CAAA,CACxB,KACF,CACF,CACF,CAGA,WAAA,CAAA,CAAc,CACZ,IAAA,CAAK,MAAA,CAAS,CAAC,CACjB,CAKA,UAAA,CAAWC,CAAAA,CAAmB,CACvB,IAAA,CAAK,OAAA,CAAQ,CAAA,CAClB,IAAA,CAAK,OAAA,CAAUA,CAAAA,CACXA,CAAAA,EAAAA,CACF,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAIA,CAAAA,CAAQ,EAAA,CAAG,SAAA,CAAWC,CAAAA,EAAO,IAAA,CAAK,IAAA,CAAK,SAAA,CAAWA,CAAG,CAAC,CAAC,CAAA,CACpED,CAAAA,CAAQ,WAAA,CACV,IAAA,CAAK,WAAA,CAAY,CAAA,CAEjB,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAIA,CAAAA,CAAQ,EAAA,CAAG,SAAA,CAAW,CAAA,CAAA,EAAM,IAAA,CAAK,WAAA,CAAY,CAAC,CAAC,CAAA,CAGtE,CAGA,aAAA,CAAA,CAAgB,CACd,IAAA,CAAK,UAAA,CAAW,CAClB,CAEA,WAAA,CAAYD,CAAAA,CAAiC,CAC3C,IAAA,CAAK,WAAA,CAAY,CAAA,CACZ,IAAA,CAAK,cAAA,CAAeA,CAAI,CAAA,EAC3B,IAAA,CAAK,MAAA,CAAO,IAAA,CAAKA,CAAI,CACzB,CAEA,IAAI,WAAA,CAAA,CAAc,CAChB,uBAAO,IAAA,qBAAK,OAAA,6BAAS,aAAA,GAAgB,CAAA,CACvC,CACF,CAAA,CAjE+CG,iCAAAA,CAAAN,CAAA,mBAAA,CAAA,CAAxC,IAAMO,CAAAA,CAANP,CAAAA,CAAAA,cAAAA","file":"/home/runner/work/zeed/zeed/dist/chunk-R343YQLJ.cjs","sourcesContent":[null,"import { useDisposeWithUtils } from '../dispose-utils'\nimport { Channel } from './channel'\n\n/**\n * Channel that buffers if not connected.\n * The actual channel can be removed and replaced.\n */\nexport class ResillientChannel extends Channel {\n private channel?: Channel\n private buffer: (Uint8Array | string)[] = []\n\n dispose = useDisposeWithUtils()\n\n private postMessageRaw(data: Uint8Array | string): boolean {\n try {\n if (this.channel?.isConnected) {\n this.channel.postMessage(data)\n return true\n }\n }\n catch (err) {\n // log.warn('send failed', err)\n }\n return false\n }\n\n /** Post all buffered messages */\n flushBuffer() {\n while (this.buffer.length) {\n const data = this.buffer.shift()\n if (data && !this.postMessageRaw(data)) {\n this.buffer.unshift(data)\n break\n }\n }\n }\n\n /** Reset buffer without force sending */\n emptyBuffer() {\n this.buffer = []\n }\n\n /**\n * Set a new channel and flush buffer\n */\n setChannel(channel?: Channel) {\n void this.dispose()\n this.channel = channel\n if (channel) {\n this.dispose.add(channel.on('message', msg => this.emit('message', msg)))\n if (channel.isConnected)\n this.flushBuffer()\n else\n this.dispose.add(channel.on('connect', () => this.flushBuffer()))\n // channel.on('close', () => this.channels.delete(channel))\n }\n }\n\n /** @deprecated use `setChannel(undefined)` */\n deleteChannel() {\n this.setChannel()\n }\n\n postMessage(data: Uint8Array | string): void {\n this.flushBuffer()\n if (!this.postMessageRaw(data))\n this.buffer.push(data)\n }\n\n get isConnected() {\n return this.channel?.isConnected === true\n }\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-2MBT4EWM.cjs","../src/common/msg/channel-resilient.ts"],"names":["_ResillientChannel","Channel","useDisposeWithUtils","data","channel","msg","__name","ResillientChannel"],"mappings":"AAAA,qoBAAwC,wDAAyC,wDAAyC,ICO7GA,CAAAA,CAAN,MAAMA,EAAAA,QAA0BC,mBAAQ,CAAxC,WAAA,CAAA,CAAA,CAAA,KAAA,CAAA,GAAA,SAAA,CAAA,CAEL,IAAA,CAAQ,MAAA,CAAkC,CAAC,CAAA,CAE3C,IAAA,CAAA,OAAA,CAAUC,iCAAAA,CAAoB,CAEtB,cAAA,CAAeC,CAAAA,CAAoC,CACzD,GAAI,CACF,EAAA,iBAAI,IAAA,mBAAK,OAAA,6BAAS,aAAA,CAChB,OAAA,IAAA,CAAK,OAAA,CAAQ,WAAA,CAAYA,CAAI,CAAA,CACtB,CAAA,CAEX,CAAA,UACY,CAEZ,CACA,MAAO,CAAA,CACT,CAGA,WAAA,CAAA,CAAc,CACZ,GAAA,CAAA,CAAO,IAAA,CAAK,MAAA,CAAO,MAAA,CAAA,CAAQ,CACzB,IAAMA,CAAAA,CAAO,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,CAAA,CAC/B,EAAA,CAAIA,CAAAA,EAAQ,CAAC,IAAA,CAAK,cAAA,CAAeA,CAAI,CAAA,CAAG,CACtC,IAAA,CAAK,MAAA,CAAO,OAAA,CAAQA,CAAI,CAAA,CACxB,KACF,CACF,CACF,CAGA,WAAA,CAAA,CAAc,CACZ,IAAA,CAAK,MAAA,CAAS,CAAC,CACjB,CAKA,UAAA,CAAWC,CAAAA,CAAmB,CACvB,IAAA,CAAK,OAAA,CAAQ,CAAA,CAClB,IAAA,CAAK,OAAA,CAAUA,CAAAA,CACXA,CAAAA,EAAAA,CACF,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAIA,CAAAA,CAAQ,EAAA,CAAG,SAAA,CAAWC,CAAAA,EAAO,IAAA,CAAK,IAAA,CAAK,SAAA,CAAWA,CAAG,CAAC,CAAC,CAAA,CACpED,CAAAA,CAAQ,WAAA,CACV,IAAA,CAAK,WAAA,CAAY,CAAA,CAEjB,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAIA,CAAAA,CAAQ,EAAA,CAAG,SAAA,CAAW,CAAA,CAAA,EAAM,IAAA,CAAK,WAAA,CAAY,CAAC,CAAC,CAAA,CAGtE,CAGA,aAAA,CAAA,CAAgB,CACd,IAAA,CAAK,UAAA,CAAW,CAClB,CAEA,WAAA,CAAYD,CAAAA,CAAiC,CAC3C,IAAA,CAAK,WAAA,CAAY,CAAA,CACZ,IAAA,CAAK,cAAA,CAAeA,CAAI,CAAA,EAC3B,IAAA,CAAK,MAAA,CAAO,IAAA,CAAKA,CAAI,CACzB,CAEA,IAAI,WAAA,CAAA,CAAc,CAChB,uBAAO,IAAA,qBAAK,OAAA,6BAAS,aAAA,GAAgB,CAAA,CACvC,CACF,CAAA,CAjE+CG,iCAAAA,CAAAN,CAAA,mBAAA,CAAA,CAAxC,IAAMO,CAAAA,CAANP,CAAAA,CAAAA,cAAAA","file":"/home/runner/work/zeed/zeed/dist/chunk-2MBT4EWM.cjs","sourcesContent":[null,"import { useDisposeWithUtils } from '../dispose-utils'\nimport { Channel } from './channel'\n\n/**\n * Channel that buffers if not connected.\n * The actual channel can be removed and replaced.\n */\nexport class ResillientChannel extends Channel {\n private channel?: Channel\n private buffer: (Uint8Array | string)[] = []\n\n dispose = useDisposeWithUtils()\n\n private postMessageRaw(data: Uint8Array | string): boolean {\n try {\n if (this.channel?.isConnected) {\n this.channel.postMessage(data)\n return true\n }\n }\n catch (err) {\n // log.warn('send failed', err)\n }\n return false\n }\n\n /** Post all buffered messages */\n flushBuffer() {\n while (this.buffer.length) {\n const data = this.buffer.shift()\n if (data && !this.postMessageRaw(data)) {\n this.buffer.unshift(data)\n break\n }\n }\n }\n\n /** Reset buffer without force sending */\n emptyBuffer() {\n this.buffer = []\n }\n\n /**\n * Set a new channel and flush buffer\n */\n setChannel(channel?: Channel) {\n void this.dispose()\n this.channel = channel\n if (channel) {\n this.dispose.add(channel.on('message', msg => this.emit('message', msg)))\n if (channel.isConnected)\n this.flushBuffer()\n else\n this.dispose.add(channel.on('connect', () => this.flushBuffer()))\n // channel.on('close', () => this.channels.delete(channel))\n }\n }\n\n /** @deprecated use `setChannel(undefined)` */\n deleteChannel() {\n this.setChannel()\n }\n\n postMessage(data: Uint8Array | string): void {\n this.flushBuffer()\n if (!this.postMessageRaw(data))\n this.buffer.push(data)\n }\n\n get isConnected() {\n return this.channel?.isConnected === true\n }\n}\n"]}
@@ -1,2 +1,2 @@
1
- import{F as a,N as f}from"./chunk-PDYLHAQH.js";import{a as i}from"./chunk-5NKC2EQJ.js";function b(e=16){let r=new Uint8Array(e);if(typeof crypto<"u"&&crypto.getRandomValues)crypto.getRandomValues(r);else for(let t=0;t<e;t++)r[t]=Math.floor(Math.random()*256);return r}i(b,"randomUint8Array");var A="SHA-256",m="AES-GCM",c="PBKDF2",l=1e5,u=12;async function w(e,r=A){let t=Uint8Array.from(a(e));return a(await crypto.subtle.digest(r,t))}i(w,"digest");async function g(e,r={}){let t=Uint8Array.from(a(e)),n=await crypto.subtle.importKey("raw",t,c,!1,["deriveKey"]);return await crypto.subtle.deriveKey({name:c,salt:r.salt?Uint8Array.from(a(r.salt)):new Uint8Array(0),iterations:r.iterations??l,hash:A},n,{name:m,length:256},!0,["encrypt","decrypt"])}i(g,"deriveKeyPbkdf2");async function C(e,r={}){let t=Uint8Array.from(a(e)),n=await crypto.subtle.importKey("raw",t,c,!1,["deriveKey"]);return await crypto.subtle.deriveKey({name:c,salt:r.salt?Uint8Array.from(a(r.salt)):new Uint8Array(0),iterations:r.iterations??l,hash:A},n,{name:"AES-CBC",length:256},!0,["encrypt","decrypt"])}i(C,"deriveKeyPbkdf2CBC");function U(){return new Uint8Array([1,1])}i(U,"getMagicId");async function I(e,r){let t=U(),n=b(u),p=await crypto.subtle.encrypt({name:m,iv:Uint8Array.from(n)},r,Uint8Array.from(e)),y=new Uint8Array(p),d=t.length+n.length+y.length,s=new Uint8Array(d),o=0;return s.set(t,o),o+=t.length,s.set(n,o),o+=n.length,s.set(y,o),s}i(I,"encrypt");async function _(e,r){let t=e.subarray(0,2);if(!f(t,U()))return Promise.reject(new Error(`Unknown magic ${t}`));let n=e.subarray(2,2+u),p=e.subarray(2+u,e.length),y=await crypto.subtle.decrypt({name:m,iv:Uint8Array.from(n)},r,Uint8Array.from(p));return new Uint8Array(y)}i(_,"decrypt");export{b as a,A as b,m as c,c as d,l as e,u as f,w as g,g as h,C as i,I as j,_ as k};
2
- //# sourceMappingURL=chunk-B5DTIAQJ.js.map
1
+ import{F as a,N as f}from"./chunk-MQSBNNXA.js";import{a as i}from"./chunk-5NKC2EQJ.js";function b(e=16){let r=new Uint8Array(e);if(typeof crypto<"u"&&crypto.getRandomValues)crypto.getRandomValues(r);else for(let t=0;t<e;t++)r[t]=Math.floor(Math.random()*256);return r}i(b,"randomUint8Array");var A="SHA-256",m="AES-GCM",c="PBKDF2",l=1e5,u=12;async function w(e,r=A){let t=Uint8Array.from(a(e));return a(await crypto.subtle.digest(r,t))}i(w,"digest");async function g(e,r={}){let t=Uint8Array.from(a(e)),n=await crypto.subtle.importKey("raw",t,c,!1,["deriveKey"]);return await crypto.subtle.deriveKey({name:c,salt:r.salt?Uint8Array.from(a(r.salt)):new Uint8Array(0),iterations:r.iterations??l,hash:A},n,{name:m,length:256},!0,["encrypt","decrypt"])}i(g,"deriveKeyPbkdf2");async function C(e,r={}){let t=Uint8Array.from(a(e)),n=await crypto.subtle.importKey("raw",t,c,!1,["deriveKey"]);return await crypto.subtle.deriveKey({name:c,salt:r.salt?Uint8Array.from(a(r.salt)):new Uint8Array(0),iterations:r.iterations??l,hash:A},n,{name:"AES-CBC",length:256},!0,["encrypt","decrypt"])}i(C,"deriveKeyPbkdf2CBC");function U(){return new Uint8Array([1,1])}i(U,"getMagicId");async function I(e,r){let t=U(),n=b(u),p=await crypto.subtle.encrypt({name:m,iv:Uint8Array.from(n)},r,Uint8Array.from(e)),y=new Uint8Array(p),d=t.length+n.length+y.length,s=new Uint8Array(d),o=0;return s.set(t,o),o+=t.length,s.set(n,o),o+=n.length,s.set(y,o),s}i(I,"encrypt");async function _(e,r){let t=e.subarray(0,2);if(!f(t,U()))return Promise.reject(new Error(`Unknown magic ${t}`));let n=e.subarray(2,2+u),p=e.subarray(2+u,e.length),y=await crypto.subtle.decrypt({name:m,iv:Uint8Array.from(n)},r,Uint8Array.from(p));return new Uint8Array(y)}i(_,"decrypt");export{b as a,A as b,m as c,c as d,l as e,u as f,w as g,g as h,C as i,I as j,_ as k};
2
+ //# sourceMappingURL=chunk-2ORDWVXB.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"./chunk-DUSOBJ3E.js";import{b as u}from"./chunk-EHBO2JJX.js";import{f as l}from"./chunk-OGOFXDLA.js";import{g as y}from"./chunk-BQ6TZ7P3.js";import{a as r}from"./chunk-5NKC2EQJ.js";function t(s,f){if(l(s)&&l(f)){let i=Object.keys(f);for(let e of u(Object.keys(s),i))delete s[e];for(let e of i){let n=f[e],o=s[e];l(n)?l(o)?t(o,n):s[e]=y(n):n!==o&&(s[e]=n)}}return s}r(t,"objectAssignDeepInPlace");function k(s,f){let i={};for(let e of u(Object.keys(s),Object.keys(f)))i[e]=null;for(let[e,n]of Object.entries(f)){let o=s[e];if(l(n)){let c=k(o??{},n);c!=null&&(i[e]=c)}else n==null&&o==null||a(n,o)||(i[e]=n??null)}return Object.keys(i).length>0?i:void 0}r(k,"objectDescribeChange");function p(s,f){if(l(s)&&l(f)){let i=Object.keys(f);for(let e of i){let n=f[e],o=s[e];n===null?o!=null&&delete s[e]:l(n)?l(o)?p(o,n):s[e]=y(n):n!==o&&(s[e]=n)}}return s}r(p,"objectAssignDescriptionInPlace");export{t as a,k as b,p as c};
2
- //# sourceMappingURL=chunk-223IVU47.js.map
1
+ import{a}from"./chunk-DUSOBJ3E.js";import{b as u}from"./chunk-ZGFQN2L7.js";import{f as l}from"./chunk-OGOFXDLA.js";import{g as y}from"./chunk-BQ6TZ7P3.js";import{a as r}from"./chunk-5NKC2EQJ.js";function t(s,f){if(l(s)&&l(f)){let i=Object.keys(f);for(let e of u(Object.keys(s),i))delete s[e];for(let e of i){let n=f[e],o=s[e];l(n)?l(o)?t(o,n):s[e]=y(n):n!==o&&(s[e]=n)}}return s}r(t,"objectAssignDeepInPlace");function k(s,f){let i={};for(let e of u(Object.keys(s),Object.keys(f)))i[e]=null;for(let[e,n]of Object.entries(f)){let o=s[e];if(l(n)){let c=k(o??{},n);c!=null&&(i[e]=c)}else n==null&&o==null||a(n,o)||(i[e]=n??null)}return Object.keys(i).length>0?i:void 0}r(k,"objectDescribeChange");function p(s,f){if(l(s)&&l(f)){let i=Object.keys(f);for(let e of i){let n=f[e],o=s[e];n===null?o!=null&&delete s[e]:l(n)?l(o)?p(o,n):s[e]=y(n):n!==o&&(s[e]=n)}}return s}r(p,"objectAssignDescriptionInPlace");export{t as a,k as b,p as c};
2
+ //# sourceMappingURL=chunk-3IGQW4J4.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunk7UA33BQWcjs = require('./chunk-7UA33BQW.cjs');var _chunkKBMOKH3Tcjs = require('./chunk-KBMOKH3T.cjs');var _chunkYBK6FIAJcjs = require('./chunk-YBK6FIAJ.cjs');var _chunkFBNN5DJJcjs = require('./chunk-FBNN5DJJ.cjs');var _chunkP7XCQ7WVcjs = require('./chunk-P7XCQ7WV.cjs');function h(){try{_nullishCoalesce(Symbol.dispose, () => ((Symbol.dispose=Symbol("Symbol.dispose")))),_nullishCoalesce(Symbol.asyncDispose, () => ((Symbol.asyncDispose=Symbol("Symbol.asyncDispose"))))}catch (e2){}}_chunkP7XCQ7WVcjs.a.call(void 0, h,"polyfillUsing");function w(e){let s;if(typeof e=="function"?s=e():_chunk7UA33BQWcjs.h.call(void 0, e)?s=e:typeof e.dispose=="function"?s=e.dispose():_chunk7UA33BQWcjs.h.call(void 0, e.dispose)&&(s=e.dispose),_chunk7UA33BQWcjs.h.call(void 0, s))return s}_chunkP7XCQ7WVcjs.a.call(void 0, w,"callDisposer");function b(e){e!=null&&(_chunkFBNN5DJJcjs.h.call(void 0, e)?e={name:e}:"debug"in e&&"label"in e&&(e={name:e.label,log:e})),h();let s=_optionalChain([e, 'optionalAccess', _ => _.name]),l=_nullishCoalesce(_optionalChain([e, 'optionalAccess', _2 => _2.log]), () => (_chunkYBK6FIAJcjs.c.call(void 0, "zeed:dispose"))),p=0,f=[];function r(t){if(t!=null&&f.includes(t)){_chunkKBMOKH3Tcjs.i.call(void 0, f,y=>y!==t);let u=w(t);if(_chunk7UA33BQWcjs.h.call(void 0, u))return u}}_chunkP7XCQ7WVcjs.a.call(void 0, r,"untrack");function n(t){if(t!=null)return f.unshift(t),()=>r(t)}_chunkP7XCQ7WVcjs.a.call(void 0, n,"track");function o(t=!1){s&&l.debug(`dispose "${s}": ${f.length} entries`),p+=1;let u=[];for(;f.length>0;){let y=f[0],a=r(y);if(_chunk7UA33BQWcjs.h.call(void 0, a)){if(t)throw new Error(`Async disposable found: ${y} -> ${a}`);u.push(a)}}if(u.length>0)return Promise.all(u)}_chunkP7XCQ7WVcjs.a.call(void 0, o,"dispose");function m(){o(!0)}return _chunkP7XCQ7WVcjs.a.call(void 0, m,"disposeSync"),Object.assign(o,{disposed:p,add:n,remove:r,track:n,untrack:r,dispose:o,disposeSync:m,sync:m,exec:o,getSize(){return f.length},isDisposed(){return f.length<=0},[Symbol.dispose](){return o()},async[Symbol.asyncDispose](){return await o()}})}_chunkP7XCQ7WVcjs.a.call(void 0, b,"useDispose");function E(e={}){let{mode:s="fifo"}=e,l=[];h();let p=_chunkP7XCQ7WVcjs.a.call(void 0, async(r=!1)=>{for(;l.length>0;){let n=l[0];if(_chunkKBMOKH3Tcjs.i.call(void 0, l,o=>o!==n),typeof n=="function"){let o=n();if(_chunk7UA33BQWcjs.h.call(void 0, o)){if(r)throw new Error(`Expected sync only function, but found async: ${n}`);await o}}else if(_chunk7UA33BQWcjs.h.call(void 0, n)){if(r)throw new Error(`Expected sync only function, but found async: ${n}`);await n}else throw new Error(`Unhandled disposable: ${n}`)}},"exec");return Object.assign(p,{add:_chunkP7XCQ7WVcjs.a.call(void 0, r=>{s==="lifo"?l.unshift(r):l.push(r)},"add"),exec:p,getSize(){return l.length}})}_chunkP7XCQ7WVcjs.a.call(void 0, E,"useDefer");exports.a = h; exports.b = b; exports.c = E;
2
- //# sourceMappingURL=chunk-PI7WHMCM.cjs.map
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunk7UA33BQWcjs = require('./chunk-7UA33BQW.cjs');var _chunkKYDHX5HWcjs = require('./chunk-KYDHX5HW.cjs');var _chunkYBK6FIAJcjs = require('./chunk-YBK6FIAJ.cjs');var _chunkFBNN5DJJcjs = require('./chunk-FBNN5DJJ.cjs');var _chunkP7XCQ7WVcjs = require('./chunk-P7XCQ7WV.cjs');function h(){try{_nullishCoalesce(Symbol.dispose, () => ((Symbol.dispose=Symbol("Symbol.dispose")))),_nullishCoalesce(Symbol.asyncDispose, () => ((Symbol.asyncDispose=Symbol("Symbol.asyncDispose"))))}catch (e2){}}_chunkP7XCQ7WVcjs.a.call(void 0, h,"polyfillUsing");function w(e){let s;if(typeof e=="function"?s=e():_chunk7UA33BQWcjs.h.call(void 0, e)?s=e:typeof e.dispose=="function"?s=e.dispose():_chunk7UA33BQWcjs.h.call(void 0, e.dispose)&&(s=e.dispose),_chunk7UA33BQWcjs.h.call(void 0, s))return s}_chunkP7XCQ7WVcjs.a.call(void 0, w,"callDisposer");function b(e){e!=null&&(_chunkFBNN5DJJcjs.h.call(void 0, e)?e={name:e}:"debug"in e&&"label"in e&&(e={name:e.label,log:e})),h();let s=_optionalChain([e, 'optionalAccess', _ => _.name]),l=_nullishCoalesce(_optionalChain([e, 'optionalAccess', _2 => _2.log]), () => (_chunkYBK6FIAJcjs.c.call(void 0, "zeed:dispose"))),p=0,f=[];function r(t){if(t!=null&&f.includes(t)){_chunkKYDHX5HWcjs.i.call(void 0, f,y=>y!==t);let u=w(t);if(_chunk7UA33BQWcjs.h.call(void 0, u))return u}}_chunkP7XCQ7WVcjs.a.call(void 0, r,"untrack");function n(t){if(t!=null)return f.unshift(t),()=>r(t)}_chunkP7XCQ7WVcjs.a.call(void 0, n,"track");function o(t=!1){s&&l.debug(`dispose "${s}": ${f.length} entries`),p+=1;let u=[];for(;f.length>0;){let y=f[0],a=r(y);if(_chunk7UA33BQWcjs.h.call(void 0, a)){if(t)throw new Error(`Async disposable found: ${y} -> ${a}`);u.push(a)}}if(u.length>0)return Promise.all(u)}_chunkP7XCQ7WVcjs.a.call(void 0, o,"dispose");function m(){o(!0)}return _chunkP7XCQ7WVcjs.a.call(void 0, m,"disposeSync"),Object.assign(o,{disposed:p,add:n,remove:r,track:n,untrack:r,dispose:o,disposeSync:m,sync:m,exec:o,getSize(){return f.length},isDisposed(){return f.length<=0},[Symbol.dispose](){return o()},async[Symbol.asyncDispose](){return await o()}})}_chunkP7XCQ7WVcjs.a.call(void 0, b,"useDispose");function E(e={}){let{mode:s="fifo"}=e,l=[];h();let p=_chunkP7XCQ7WVcjs.a.call(void 0, async(r=!1)=>{for(;l.length>0;){let n=l[0];if(_chunkKYDHX5HWcjs.i.call(void 0, l,o=>o!==n),typeof n=="function"){let o=n();if(_chunk7UA33BQWcjs.h.call(void 0, o)){if(r)throw new Error(`Expected sync only function, but found async: ${n}`);await o}}else if(_chunk7UA33BQWcjs.h.call(void 0, n)){if(r)throw new Error(`Expected sync only function, but found async: ${n}`);await n}else throw new Error(`Unhandled disposable: ${n}`)}},"exec");return Object.assign(p,{add:_chunkP7XCQ7WVcjs.a.call(void 0, r=>{s==="lifo"?l.unshift(r):l.push(r)},"add"),exec:p,getSize(){return l.length}})}_chunkP7XCQ7WVcjs.a.call(void 0, E,"useDefer");exports.a = h; exports.b = b; exports.c = E;
2
+ //# sourceMappingURL=chunk-3UNBXQBQ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-PI7WHMCM.cjs","../src/common/dispose-defer.ts"],"names":["polyfillUsing","__name","callDisposer","disposable","result","isPromise","useDispose","opt","isString","name","log","DefaultLogger","disposed","tracked","untrack","arrayFilterInPlace","el","track","obj","dispose","strictSync","promises","fn"],"mappings":"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","file":"/home/runner/work/zeed/zeed/dist/chunk-PI7WHMCM.cjs","sourcesContent":[null,"import type { Disposer, DisposerFunction } from './dispose-types'\nimport type { LoggerInterface } from './log/log-base'\nimport { arrayFilterInPlace } from './data/array'\nimport { isString } from './data/is'\nimport { isPromise } from './exec/promise'\nimport { DefaultLogger } from './log/log'\n\nexport function polyfillUsing() {\n try {\n // @ts-expect-error just a polyfill\n Symbol.dispose ??= Symbol('Symbol.dispose')\n // @ts-expect-error just a polyfill\n Symbol.asyncDispose ??= Symbol('Symbol.asyncDispose')\n }\n catch (err) { }\n}\n\n// Symbol.dispose ??= Symbol('Symbol.dispose')\n// Symbol.asyncDispose ??= Symbol('Symbol.asyncDispose')\n\n/** Different kinds of implementations have grown, this should unify them */\nfunction callDisposer(disposable: Disposer): Promise<void> | void {\n let result\n\n if (typeof disposable === 'function')\n result = disposable()\n else if (isPromise(disposable))\n result = disposable\n else if (typeof disposable.dispose === 'function')\n result = disposable.dispose()\n else if (isPromise(disposable.dispose))\n result = disposable.dispose\n\n if (isPromise(result))\n return result\n}\n\nexport interface UseDisposeConfig {\n name?: string\n log?: LoggerInterface\n}\n\nexport function useDispose(opt?: string | UseDisposeConfig | LoggerInterface) {\n if (opt != null) {\n if (isString(opt))\n opt = { name: opt }\n else if ('debug' in opt && 'label' in opt)\n opt = { name: opt.label, log: opt }\n }\n\n polyfillUsing()\n\n const name = opt?.name\n const log = opt?.log ?? DefaultLogger('zeed:dispose')\n\n let disposed = 0\n\n const tracked: Disposer[] = []\n\n function untrack(disposable: Disposer): Promise<void> | void {\n if (disposable != null && tracked.includes(disposable)) {\n arrayFilterInPlace(tracked, el => el !== disposable)\n const result = callDisposer(disposable)\n if (isPromise(result))\n return result\n }\n }\n\n function track(obj?: Disposer): DisposerFunction | undefined {\n if (obj == null)\n return\n tracked.unshift(obj) // LIFO\n return () => untrack(obj)\n }\n\n /** Dispose all tracked entries */\n function dispose(strictSync = false): Promise<any> | void {\n if (name)\n log.debug(`dispose \"${name}\": ${tracked.length} entries`)\n\n disposed += 1\n\n const promises: any[] = []\n while (tracked.length > 0) {\n const fn = tracked[0]\n const result = untrack(fn) // LIFO\n if (isPromise(result)) {\n if (strictSync)\n throw new Error(`Async disposable found: ${fn} -> ${result}`)\n else\n promises.push(result)\n }\n }\n\n if (promises.length > 0)\n return Promise.all(promises)\n }\n\n /** Dispose all tracked entries in synchronous way. */\n function disposeSync(): void {\n void dispose(true)\n }\n\n return Object.assign(dispose, {\n /** Counter that incremends, each time dispose has been called */\n disposed,\n\n add: track,\n remove: untrack,\n\n /** @deprecated use add */\n track,\n\n /** @deprecated use remove */\n untrack,\n\n dispose,\n disposeSync,\n sync: disposeSync,\n\n /** @deprecated use dispose */\n exec: dispose,\n getSize() {\n return tracked.length\n },\n isDisposed() {\n return tracked.length <= 0\n },\n\n [Symbol.dispose]() {\n return dispose()\n },\n\n async [Symbol.asyncDispose]() {\n return await dispose()\n },\n\n })\n}\n\nexport type UseDispose = ReturnType<typeof useDispose>\n\nexport function useDefer(\n config: {\n mode?: 'lifo' | 'fifo'\n } = {},\n) {\n const { mode = 'fifo' } = config\n const steps: Disposer[] = []\n\n polyfillUsing()\n\n /**\n * Excutes all steps. If all steps are not Promises, they are executed immediately,\n * otherwise a Promise is returned\n */\n const exec = async (expectSync = false) => {\n while (steps.length > 0) {\n const step = steps[0]\n arrayFilterInPlace(steps, el => el !== step)\n if (typeof step === 'function') {\n const result = step()\n if (isPromise(result)) {\n if (expectSync) {\n throw new Error(\n `Expected sync only function, but found async: ${step}`,\n )\n }\n await result\n }\n }\n else if (isPromise(step)) {\n if (expectSync) {\n throw new Error(\n `Expected sync only function, but found async: ${step}`,\n )\n }\n await step\n }\n else {\n throw new Error(`Unhandled disposable: ${step}`)\n }\n }\n }\n\n const add = (obj: Disposer) => {\n if (mode === 'lifo')\n steps.unshift(obj)\n else\n steps.push(obj)\n }\n\n return Object.assign(exec, {\n add,\n exec,\n getSize() {\n return steps.length\n },\n })\n}\n\nexport type UseDefer = ReturnType<typeof useDefer>\n"]}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-3UNBXQBQ.cjs","../src/common/dispose-defer.ts"],"names":["polyfillUsing","__name","callDisposer","disposable","result","isPromise","useDispose","opt","isString","name","log","DefaultLogger","disposed","tracked","untrack","arrayFilterInPlace","el","track","obj","dispose","strictSync","promises","fn"],"mappings":"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","file":"/home/runner/work/zeed/zeed/dist/chunk-3UNBXQBQ.cjs","sourcesContent":[null,"import type { Disposer, DisposerFunction } from './dispose-types'\nimport type { LoggerInterface } from './log/log-base'\nimport { arrayFilterInPlace } from './data/array'\nimport { isString } from './data/is'\nimport { isPromise } from './exec/promise'\nimport { DefaultLogger } from './log/log'\n\nexport function polyfillUsing() {\n try {\n // @ts-expect-error just a polyfill\n Symbol.dispose ??= Symbol('Symbol.dispose')\n // @ts-expect-error just a polyfill\n Symbol.asyncDispose ??= Symbol('Symbol.asyncDispose')\n }\n catch (err) { }\n}\n\n// Symbol.dispose ??= Symbol('Symbol.dispose')\n// Symbol.asyncDispose ??= Symbol('Symbol.asyncDispose')\n\n/** Different kinds of implementations have grown, this should unify them */\nfunction callDisposer(disposable: Disposer): Promise<void> | void {\n let result\n\n if (typeof disposable === 'function')\n result = disposable()\n else if (isPromise(disposable))\n result = disposable\n else if (typeof disposable.dispose === 'function')\n result = disposable.dispose()\n else if (isPromise(disposable.dispose))\n result = disposable.dispose\n\n if (isPromise(result))\n return result\n}\n\nexport interface UseDisposeConfig {\n name?: string\n log?: LoggerInterface\n}\n\nexport function useDispose(opt?: string | UseDisposeConfig | LoggerInterface) {\n if (opt != null) {\n if (isString(opt))\n opt = { name: opt }\n else if ('debug' in opt && 'label' in opt)\n opt = { name: opt.label, log: opt }\n }\n\n polyfillUsing()\n\n const name = opt?.name\n const log = opt?.log ?? DefaultLogger('zeed:dispose')\n\n let disposed = 0\n\n const tracked: Disposer[] = []\n\n function untrack(disposable: Disposer): Promise<void> | void {\n if (disposable != null && tracked.includes(disposable)) {\n arrayFilterInPlace(tracked, el => el !== disposable)\n const result = callDisposer(disposable)\n if (isPromise(result))\n return result\n }\n }\n\n function track(obj?: Disposer): DisposerFunction | undefined {\n if (obj == null)\n return\n tracked.unshift(obj) // LIFO\n return () => untrack(obj)\n }\n\n /** Dispose all tracked entries */\n function dispose(strictSync = false): Promise<any> | void {\n if (name)\n log.debug(`dispose \"${name}\": ${tracked.length} entries`)\n\n disposed += 1\n\n const promises: any[] = []\n while (tracked.length > 0) {\n const fn = tracked[0]\n const result = untrack(fn) // LIFO\n if (isPromise(result)) {\n if (strictSync)\n throw new Error(`Async disposable found: ${fn} -> ${result}`)\n else\n promises.push(result)\n }\n }\n\n if (promises.length > 0)\n return Promise.all(promises)\n }\n\n /** Dispose all tracked entries in synchronous way. */\n function disposeSync(): void {\n void dispose(true)\n }\n\n return Object.assign(dispose, {\n /** Counter that incremends, each time dispose has been called */\n disposed,\n\n add: track,\n remove: untrack,\n\n /** @deprecated use add */\n track,\n\n /** @deprecated use remove */\n untrack,\n\n dispose,\n disposeSync,\n sync: disposeSync,\n\n /** @deprecated use dispose */\n exec: dispose,\n getSize() {\n return tracked.length\n },\n isDisposed() {\n return tracked.length <= 0\n },\n\n [Symbol.dispose]() {\n return dispose()\n },\n\n async [Symbol.asyncDispose]() {\n return await dispose()\n },\n\n })\n}\n\nexport type UseDispose = ReturnType<typeof useDispose>\n\nexport function useDefer(\n config: {\n mode?: 'lifo' | 'fifo'\n } = {},\n) {\n const { mode = 'fifo' } = config\n const steps: Disposer[] = []\n\n polyfillUsing()\n\n /**\n * Excutes all steps. If all steps are not Promises, they are executed immediately,\n * otherwise a Promise is returned\n */\n const exec = async (expectSync = false) => {\n while (steps.length > 0) {\n const step = steps[0]\n arrayFilterInPlace(steps, el => el !== step)\n if (typeof step === 'function') {\n const result = step()\n if (isPromise(result)) {\n if (expectSync) {\n throw new Error(\n `Expected sync only function, but found async: ${step}`,\n )\n }\n await result\n }\n }\n else if (isPromise(step)) {\n if (expectSync) {\n throw new Error(\n `Expected sync only function, but found async: ${step}`,\n )\n }\n await step\n }\n else {\n throw new Error(`Unhandled disposable: ${step}`)\n }\n }\n }\n\n const add = (obj: Disposer) => {\n if (mode === 'lifo')\n steps.unshift(obj)\n else\n steps.push(obj)\n }\n\n return Object.assign(exec, {\n add,\n exec,\n getSize() {\n return steps.length\n },\n })\n}\n\nexport type UseDefer = ReturnType<typeof useDefer>\n"]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkABBXLXT4cjs = require('./chunk-ABBXLXT4.cjs');var _chunkYBK6FIAJcjs = require('./chunk-YBK6FIAJ.cjs');var _chunkSEQAFKIVcjs = require('./chunk-SEQAFKIV.cjs');var _chunk5ANAWLCJcjs = require('./chunk-5ANAWLCJ.cjs');var _chunkP7XCQ7WVcjs = require('./chunk-P7XCQ7WV.cjs');var r=class r extends _chunkABBXLXT4cjs.a{constructor(e={}){super();this.queue=[];this.waitToFinish=[];this.countMax=0;this.countResolved=0;this.paused=!1;let{name:t=_chunk5ANAWLCJcjs.u.call(void 0, "queue"),logLevel:i}=e;this.name=t,this.log=_chunkYBK6FIAJcjs.c.call(void 0, `zeed:queue:${t}`,_nullishCoalesce(i, () => (9007199254740991)))}async performNext(){if(this.log("performNext, queue.length =",this.queue.length),this.currentTask!=null){this.log("performNext => skip while another task is running");return}if(this.paused){this.log("performNext => skip while is paused");return}for(;this.currentTask==null&&!this.paused;){let e=this.queue.shift();if(this.log(`performNext => ${_optionalChain([e, 'optionalAccess', _ => _.name])}`),e==null)break;this.countResolved===0&&this.emit("didStart",this.countMax);let{name:t,task:i,resolve:s}=e;this.currentTask=i();let n;try{this.log.info(`start task ${t}`),n=await this.currentTask,this.log(`finished task ${t} with result =`,n)}catch(d){this.log.warn("Error performing task",d)}s(n),this.currentTask=void 0,this.countResolved+=1,this.emit("didUpdate",this.countMax,this.countResolved)}for(this.queue.length===0&&(this.emit("didFinish"),this.countMax=0,this.countResolved=0);this.waitToFinish.length>0;)this.waitToFinish.shift()()}async enqueue(e,t={}){let{immediate:i=!1,name:s=_chunk5ANAWLCJcjs.u.call(void 0, this.name)}=t;return i?(this.log.info(`immediate execution ${s}`),await e()):(this.log(`enqueue ${s}`),new Promise(n=>{this.queue.push({name:s,task:e,resolve:n}),this.countMax+=1,this.emit("didUpdate",this.countMax,this.countResolved),this.performNext()}))}async enqueueReentrant(e,t={}){return this.enqueue(e,{immediate:this.currentTask!=null,name:t.name})}async cancelAll(e=!0){this.log("cancelAll"),this.emit("didCancel");let t=this.queue.map(i=>i.resolve);this.queue=[],t.forEach(i=>i(void 0)),await this.wait()}async pause(){this.log("pause"),this.paused=!0,await this.wait()}resume(){this.log("resume"),this.paused=!1,this.performNext()}async wait(){if(this.log("wait"),!(this.currentTask==null&&(this.queue.length===0||this.paused)))return new Promise(e=>{this.waitToFinish.push(e)})}get isPaused(){return this.paused}get hasTasks(){return this.queue.length!==0}};_chunkP7XCQ7WVcjs.a.call(void 0, r,"SerialQueue");var m=r;exports.a = m;
2
- //# sourceMappingURL=chunk-OZ56TU4L.cjs.map
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkABBXLXT4cjs = require('./chunk-ABBXLXT4.cjs');var _chunkYBK6FIAJcjs = require('./chunk-YBK6FIAJ.cjs');var _chunkSEQAFKIVcjs = require('./chunk-SEQAFKIV.cjs');var _chunkN4TDBJ7Mcjs = require('./chunk-N4TDBJ7M.cjs');var _chunkP7XCQ7WVcjs = require('./chunk-P7XCQ7WV.cjs');var r=class r extends _chunkABBXLXT4cjs.a{constructor(e={}){super();this.queue=[];this.waitToFinish=[];this.countMax=0;this.countResolved=0;this.paused=!1;let{name:t=_chunkN4TDBJ7Mcjs.u.call(void 0, "queue"),logLevel:i}=e;this.name=t,this.log=_chunkYBK6FIAJcjs.c.call(void 0, `zeed:queue:${t}`,_nullishCoalesce(i, () => (9007199254740991)))}async performNext(){if(this.log("performNext, queue.length =",this.queue.length),this.currentTask!=null){this.log("performNext => skip while another task is running");return}if(this.paused){this.log("performNext => skip while is paused");return}for(;this.currentTask==null&&!this.paused;){let e=this.queue.shift();if(this.log(`performNext => ${_optionalChain([e, 'optionalAccess', _ => _.name])}`),e==null)break;this.countResolved===0&&this.emit("didStart",this.countMax);let{name:t,task:i,resolve:s}=e;this.currentTask=i();let n;try{this.log.info(`start task ${t}`),n=await this.currentTask,this.log(`finished task ${t} with result =`,n)}catch(d){this.log.warn("Error performing task",d)}s(n),this.currentTask=void 0,this.countResolved+=1,this.emit("didUpdate",this.countMax,this.countResolved)}for(this.queue.length===0&&(this.emit("didFinish"),this.countMax=0,this.countResolved=0);this.waitToFinish.length>0;)this.waitToFinish.shift()()}async enqueue(e,t={}){let{immediate:i=!1,name:s=_chunkN4TDBJ7Mcjs.u.call(void 0, this.name)}=t;return i?(this.log.info(`immediate execution ${s}`),await e()):(this.log(`enqueue ${s}`),new Promise(n=>{this.queue.push({name:s,task:e,resolve:n}),this.countMax+=1,this.emit("didUpdate",this.countMax,this.countResolved),this.performNext()}))}async enqueueReentrant(e,t={}){return this.enqueue(e,{immediate:this.currentTask!=null,name:t.name})}async cancelAll(e=!0){this.log("cancelAll"),this.emit("didCancel");let t=this.queue.map(i=>i.resolve);this.queue=[],t.forEach(i=>i(void 0)),await this.wait()}async pause(){this.log("pause"),this.paused=!0,await this.wait()}resume(){this.log("resume"),this.paused=!1,this.performNext()}async wait(){if(this.log("wait"),!(this.currentTask==null&&(this.queue.length===0||this.paused)))return new Promise(e=>{this.waitToFinish.push(e)})}get isPaused(){return this.paused}get hasTasks(){return this.queue.length!==0}};_chunkP7XCQ7WVcjs.a.call(void 0, r,"SerialQueue");var m=r;exports.a = m;
2
+ //# sourceMappingURL=chunk-42DAB7DI.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-OZ56TU4L.cjs","../src/common/exec/queue.ts"],"names":["_SerialQueue","Emitter","opt","name","uname","logLevel","DefaultLogger"],"mappings":"AAAA,yuBAAwC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,IC6B/LA,CAAAA,CAAN,MAAMA,EAAAA,QAAoBC,mBAAoB,CAYnD,WAAA,CAAYC,CAAAA,CAA8C,CAAC,CAAA,CAAG,CAC5D,KAAA,CAAM,CAAA,CAZR,IAAA,CAAQ,KAAA,CAAoB,CAAC,CAAA,CAC7B,IAAA,CAAQ,YAAA,CAA+B,CAAC,CAAA,CAGxC,IAAA,CAAQ,QAAA,CAAW,CAAA,CACnB,IAAA,CAAQ,aAAA,CAAgB,CAAA,CAExB,IAAA,CAAQ,MAAA,CAAS,CAAA,CAAA,CAMf,GAAM,CAAE,IAAA,CAAAC,CAAAA,CAAOC,iCAAAA,OAAa,CAAA,CAAG,QAAA,CAAAC,CAAS,CAAA,CAAIH,CAAAA,CAC5C,IAAA,CAAK,IAAA,CAAOC,CAAAA,CACZ,IAAA,CAAK,GAAA,CAAMG,iCAAAA,CAAc,WAAA,EAAcH,CAAI,CAAA,CAAA","file":"/home/runner/work/zeed/zeed/dist/chunk-OZ56TU4L.cjs","sourcesContent":[null,"// Can learn from here https://github.com/sindresorhus/p-queue\n\nimport type { LoggerInterface, LogLevel } from '../log/log-base'\nimport { DefaultLogger } from '../log/log'\nimport { LogLevelOff } from '../log/log-base'\nimport { Emitter } from '../msg/emitter'\nimport { uname } from '../uuid'\n\ntype TaskResolver = any\n\nexport type TaskFn<T = any> = () => Promise<T>\n\ninterface TaskInfo {\n name: string\n task: TaskFn\n resolve: TaskResolver\n}\n\nexport interface TaskEvents {\n didUpdate: (max: number, resolved: number) => void\n didStart: (max: number) => void\n didCancel: () => void\n didFinish: () => void\n // didResolve(value: any): void\n // didReject(error: any): void\n // didPause(max: number): void\n}\n\n/** Guarentee serial execution of tasks. Able to wait, pause, resume and cancel all. */\nexport class SerialQueue extends Emitter<TaskEvents> {\n private queue: TaskInfo[] = []\n private waitToFinish: TaskResolver[] = []\n private currentTask?: Promise<any>\n private log: LoggerInterface\n private countMax = 0\n private countResolved = 0\n\n private paused = false\n\n name: string\n\n constructor(opt: { name?: string, logLevel?: LogLevel } = {}) {\n super()\n const { name = uname('queue'), logLevel } = opt\n this.name = name\n this.log = DefaultLogger(`zeed:queue:${name}`, logLevel ?? LogLevelOff)\n }\n\n private async performNext() {\n this.log('performNext, queue.length =', this.queue.length)\n\n if (this.currentTask != null) {\n this.log('performNext => skip while another task is running')\n return\n }\n\n if (this.paused) {\n this.log('performNext => skip while is paused')\n return\n }\n\n while (this.currentTask == null && !this.paused) {\n const info = this.queue.shift()\n this.log(`performNext => ${info?.name}`)\n\n if (info == null)\n break\n\n if (this.countResolved === 0)\n void this.emit('didStart', this.countMax)\n\n const { name, task, resolve } = info\n this.currentTask = task()\n let result\n try {\n this.log.info(`start task ${name}`)\n result = await this.currentTask\n this.log(`finished task ${name} with result =`, result)\n }\n catch (err) {\n this.log.warn('Error performing task', err)\n }\n\n resolve(result)\n this.currentTask = undefined\n\n this.countResolved += 1\n void this.emit('didUpdate', this.countMax, this.countResolved)\n }\n\n if (this.queue.length === 0) {\n void this.emit('didFinish')\n this.countMax = 0\n this.countResolved = 0\n }\n\n while (this.waitToFinish.length > 0)\n this.waitToFinish.shift()()\n }\n\n /** Enqueue task to be executed when all other tasks are done. Except `immediate = true`. */\n async enqueue<T>(\n task: TaskFn<T>,\n opt: { immediate?: boolean, name?: string } = {},\n ): Promise<T> {\n const { immediate = false, name = uname(this.name) } = opt\n if (immediate) {\n this.log.info(`immediate execution ${name}`)\n return await task()\n }\n\n this.log(`enqueue ${name}`)\n return new Promise((resolve) => {\n this.queue.push({\n name,\n task,\n resolve,\n })\n\n this.countMax += 1\n void this.emit('didUpdate', this.countMax, this.countResolved)\n\n void this.performNext()\n })\n }\n\n /** If a task is already performing, execute immediately. Otherwise enqueue as usual. */\n async enqueueReentrant<T>(\n task: TaskFn<T>,\n opt: { name?: string } = {},\n ): Promise<T> {\n return this.enqueue(task, {\n immediate: this.currentTask != null,\n name: opt.name,\n })\n }\n\n /** Remove all tasks from queue that are not yet executing. */\n async cancelAll(_unblock = true) {\n this.log('cancelAll')\n void this.emit('didCancel')\n const resolver = this.queue.map(task => task.resolve)\n this.queue = []\n resolver.forEach(r => r(undefined))\n await this.wait()\n }\n\n /** Pause execution after current task is finished. */\n async pause() {\n this.log('pause')\n this.paused = true\n await this.wait()\n }\n\n /** Resume paused queue. */\n resume() {\n this.log('resume')\n this.paused = false\n void this.performNext()\n }\n\n /** Wait for all tasks to finish */\n async wait() {\n this.log('wait')\n if (this.currentTask == null && (this.queue.length === 0 || this.paused))\n return\n\n return new Promise((resolve) => {\n this.waitToFinish.push(resolve)\n })\n }\n\n public get isPaused(): boolean {\n return this.paused\n }\n\n public get hasTasks(): boolean {\n return this.queue.length !== 0\n }\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-42DAB7DI.cjs","../src/common/exec/queue.ts"],"names":["_SerialQueue","Emitter","opt","name","uname","logLevel","DefaultLogger"],"mappings":"AAAA,yuBAAwC,wDAAyC,wDAAyC,wDAAyC,wDAAyC,IC6B/LA,CAAAA,CAAN,MAAMA,EAAAA,QAAoBC,mBAAoB,CAYnD,WAAA,CAAYC,CAAAA,CAA8C,CAAC,CAAA,CAAG,CAC5D,KAAA,CAAM,CAAA,CAZR,IAAA,CAAQ,KAAA,CAAoB,CAAC,CAAA,CAC7B,IAAA,CAAQ,YAAA,CAA+B,CAAC,CAAA,CAGxC,IAAA,CAAQ,QAAA,CAAW,CAAA,CACnB,IAAA,CAAQ,aAAA,CAAgB,CAAA,CAExB,IAAA,CAAQ,MAAA,CAAS,CAAA,CAAA,CAMf,GAAM,CAAE,IAAA,CAAAC,CAAAA,CAAOC,iCAAAA,OAAa,CAAA,CAAG,QAAA,CAAAC,CAAS,CAAA,CAAIH,CAAAA,CAC5C,IAAA,CAAK,IAAA,CAAOC,CAAAA,CACZ,IAAA,CAAK,GAAA,CAAMG,iCAAAA,CAAc,WAAA,EAAcH,CAAI,CAAA,CAAA","file":"/home/runner/work/zeed/zeed/dist/chunk-42DAB7DI.cjs","sourcesContent":[null,"// Can learn from here https://github.com/sindresorhus/p-queue\n\nimport type { LoggerInterface, LogLevel } from '../log/log-base'\nimport { DefaultLogger } from '../log/log'\nimport { LogLevelOff } from '../log/log-base'\nimport { Emitter } from '../msg/emitter'\nimport { uname } from '../uuid'\n\ntype TaskResolver = any\n\nexport type TaskFn<T = any> = () => Promise<T>\n\ninterface TaskInfo {\n name: string\n task: TaskFn\n resolve: TaskResolver\n}\n\nexport interface TaskEvents {\n didUpdate: (max: number, resolved: number) => void\n didStart: (max: number) => void\n didCancel: () => void\n didFinish: () => void\n // didResolve(value: any): void\n // didReject(error: any): void\n // didPause(max: number): void\n}\n\n/** Guarentee serial execution of tasks. Able to wait, pause, resume and cancel all. */\nexport class SerialQueue extends Emitter<TaskEvents> {\n private queue: TaskInfo[] = []\n private waitToFinish: TaskResolver[] = []\n private currentTask?: Promise<any>\n private log: LoggerInterface\n private countMax = 0\n private countResolved = 0\n\n private paused = false\n\n name: string\n\n constructor(opt: { name?: string, logLevel?: LogLevel } = {}) {\n super()\n const { name = uname('queue'), logLevel } = opt\n this.name = name\n this.log = DefaultLogger(`zeed:queue:${name}`, logLevel ?? LogLevelOff)\n }\n\n private async performNext() {\n this.log('performNext, queue.length =', this.queue.length)\n\n if (this.currentTask != null) {\n this.log('performNext => skip while another task is running')\n return\n }\n\n if (this.paused) {\n this.log('performNext => skip while is paused')\n return\n }\n\n while (this.currentTask == null && !this.paused) {\n const info = this.queue.shift()\n this.log(`performNext => ${info?.name}`)\n\n if (info == null)\n break\n\n if (this.countResolved === 0)\n void this.emit('didStart', this.countMax)\n\n const { name, task, resolve } = info\n this.currentTask = task()\n let result\n try {\n this.log.info(`start task ${name}`)\n result = await this.currentTask\n this.log(`finished task ${name} with result =`, result)\n }\n catch (err) {\n this.log.warn('Error performing task', err)\n }\n\n resolve(result)\n this.currentTask = undefined\n\n this.countResolved += 1\n void this.emit('didUpdate', this.countMax, this.countResolved)\n }\n\n if (this.queue.length === 0) {\n void this.emit('didFinish')\n this.countMax = 0\n this.countResolved = 0\n }\n\n while (this.waitToFinish.length > 0)\n this.waitToFinish.shift()()\n }\n\n /** Enqueue task to be executed when all other tasks are done. Except `immediate = true`. */\n async enqueue<T>(\n task: TaskFn<T>,\n opt: { immediate?: boolean, name?: string } = {},\n ): Promise<T> {\n const { immediate = false, name = uname(this.name) } = opt\n if (immediate) {\n this.log.info(`immediate execution ${name}`)\n return await task()\n }\n\n this.log(`enqueue ${name}`)\n return new Promise((resolve) => {\n this.queue.push({\n name,\n task,\n resolve,\n })\n\n this.countMax += 1\n void this.emit('didUpdate', this.countMax, this.countResolved)\n\n void this.performNext()\n })\n }\n\n /** If a task is already performing, execute immediately. Otherwise enqueue as usual. */\n async enqueueReentrant<T>(\n task: TaskFn<T>,\n opt: { name?: string } = {},\n ): Promise<T> {\n return this.enqueue(task, {\n immediate: this.currentTask != null,\n name: opt.name,\n })\n }\n\n /** Remove all tasks from queue that are not yet executing. */\n async cancelAll(_unblock = true) {\n this.log('cancelAll')\n void this.emit('didCancel')\n const resolver = this.queue.map(task => task.resolve)\n this.queue = []\n resolver.forEach(r => r(undefined))\n await this.wait()\n }\n\n /** Pause execution after current task is finished. */\n async pause() {\n this.log('pause')\n this.paused = true\n await this.wait()\n }\n\n /** Resume paused queue. */\n resume() {\n this.log('resume')\n this.paused = false\n void this.performNext()\n }\n\n /** Wait for all tasks to finish */\n async wait() {\n this.log('wait')\n if (this.currentTask == null && (this.queue.length === 0 || this.paused))\n return\n\n return new Promise((resolve) => {\n this.waitToFinish.push(resolve)\n })\n }\n\n public get isPaused(): boolean {\n return this.paused\n }\n\n public get hasTasks(): boolean {\n return this.queue.length !== 0\n }\n}\n"]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunkFBNN5DJJcjs = require('./chunk-FBNN5DJJ.cjs');var _chunkTJTAAHDBcjs = require('./chunk-TJTAAHDB.cjs');var _chunkQ5TVGJYNcjs = require('./chunk-Q5TVGJYN.cjs');var _chunkP7XCQ7WVcjs = require('./chunk-P7XCQ7WV.cjs');var _promises = require('fs/promises');var _path = require('path');var _process = require('process'); var _process2 = _interopRequireDefault(_process);function J(r){let t=_path.normalize.call(void 0, r),e=_process2.default.env.HOME;return e&&t.startsWith(e)?`~${t.slice(e.length)}`:t}_chunkP7XCQ7WVcjs.a.call(void 0, J,"toHumanReadableFilePath");async function a(r){try{await _promises.stat.call(void 0, r)}catch (e2){return!1}return!0}_chunkP7XCQ7WVcjs.a.call(void 0, a,"exists");function S(r){return r.startsWith(".")||r.includes("/.")}_chunkP7XCQ7WVcjs.a.call(void 0, S,"isHiddenPath");async function H(...r){let t=_path.join.call(void 0, ...r);return await a(t)||await _promises.mkdir.call(void 0, t,{recursive:!0}),t}_chunkP7XCQ7WVcjs.a.call(void 0, H,"ensureFolder");async function f(...r){let t=_path.dirname.call(void 0, _path.join.call(void 0, ...r));return await a(t)||await _promises.mkdir.call(void 0, t,{recursive:!0}),t}_chunkP7XCQ7WVcjs.a.call(void 0, f,"ensureFolderForFile");async function O(...r){let t=_path.join.call(void 0, ...r);return await a(t)&&await _promises.rm.call(void 0, t,{recursive:!0}),t}_chunkP7XCQ7WVcjs.a.call(void 0, O,"removeFolder");async function F(...r){let t=_path.join.call(void 0, ...r);if(await a(t))return await _promises.readFile.call(void 0, t,"utf-8")}_chunkP7XCQ7WVcjs.a.call(void 0, F,"readText");async function B(...r){let t=await F(...r);if(t!=null)try{return JSON.parse(t)}catch (e3){}}_chunkP7XCQ7WVcjs.a.call(void 0, B,"readJson");async function D(...r){let t=_path.join.call(void 0, ...r);if(await a(t))return _chunkTJTAAHDBcjs.F.call(void 0, await _promises.readFile.call(void 0, t))}_chunkP7XCQ7WVcjs.a.call(void 0, D,"readBin");async function N(...r){let t=_path.join.call(void 0, ...r);if(await a(t))return await _promises.readFile.call(void 0, t)}_chunkP7XCQ7WVcjs.a.call(void 0, N,"readData");async function h(r,t,e=!1){e&&await f(r),await _promises.writeFile.call(void 0, r,t,"utf-8")}_chunkP7XCQ7WVcjs.a.call(void 0, h,"writeText");async function W(r,t,e=!1){e&&await f(r);let o=_chunkFBNN5DJJcjs.p.call(void 0, t)?t:JSON.stringify(t);await _promises.writeFile.call(void 0, r,o)}_chunkP7XCQ7WVcjs.a.call(void 0, W,"writeData");async function k(r,t,e={}){let{createFolders:o=!1}=e;o&&await f(r),await _promises.writeFile.call(void 0, r,t)}_chunkP7XCQ7WVcjs.a.call(void 0, k,"writeBin");async function z(r,t,e={}){let{createFolders:o=!1,pretty:p=!1}=e;await h(r,_chunkQ5TVGJYNcjs.a.call(void 0, t,p?2:void 0),o)}_chunkP7XCQ7WVcjs.a.call(void 0, z,"writeJson");exports.a = J; exports.b = a; exports.c = S; exports.d = H; exports.e = f; exports.f = O; exports.g = F; exports.h = B; exports.i = D; exports.j = N; exports.k = h; exports.l = W; exports.m = k; exports.n = z;
2
- //# sourceMappingURL=chunk-DAHVFM6W.cjs.map
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunkFBNN5DJJcjs = require('./chunk-FBNN5DJJ.cjs');var _chunkDOR23DPDcjs = require('./chunk-DOR23DPD.cjs');var _chunkQ5TVGJYNcjs = require('./chunk-Q5TVGJYN.cjs');var _chunkP7XCQ7WVcjs = require('./chunk-P7XCQ7WV.cjs');var _promises = require('fs/promises');var _path = require('path');var _process = require('process'); var _process2 = _interopRequireDefault(_process);function J(r){let t=_path.normalize.call(void 0, r),e=_process2.default.env.HOME;return e&&t.startsWith(e)?`~${t.slice(e.length)}`:t}_chunkP7XCQ7WVcjs.a.call(void 0, J,"toHumanReadableFilePath");async function a(r){try{await _promises.stat.call(void 0, r)}catch (e2){return!1}return!0}_chunkP7XCQ7WVcjs.a.call(void 0, a,"exists");function S(r){return r.startsWith(".")||r.includes("/.")}_chunkP7XCQ7WVcjs.a.call(void 0, S,"isHiddenPath");async function H(...r){let t=_path.join.call(void 0, ...r);return await a(t)||await _promises.mkdir.call(void 0, t,{recursive:!0}),t}_chunkP7XCQ7WVcjs.a.call(void 0, H,"ensureFolder");async function f(...r){let t=_path.dirname.call(void 0, _path.join.call(void 0, ...r));return await a(t)||await _promises.mkdir.call(void 0, t,{recursive:!0}),t}_chunkP7XCQ7WVcjs.a.call(void 0, f,"ensureFolderForFile");async function O(...r){let t=_path.join.call(void 0, ...r);return await a(t)&&await _promises.rm.call(void 0, t,{recursive:!0}),t}_chunkP7XCQ7WVcjs.a.call(void 0, O,"removeFolder");async function F(...r){let t=_path.join.call(void 0, ...r);if(await a(t))return await _promises.readFile.call(void 0, t,"utf-8")}_chunkP7XCQ7WVcjs.a.call(void 0, F,"readText");async function B(...r){let t=await F(...r);if(t!=null)try{return JSON.parse(t)}catch (e3){}}_chunkP7XCQ7WVcjs.a.call(void 0, B,"readJson");async function D(...r){let t=_path.join.call(void 0, ...r);if(await a(t))return _chunkDOR23DPDcjs.F.call(void 0, await _promises.readFile.call(void 0, t))}_chunkP7XCQ7WVcjs.a.call(void 0, D,"readBin");async function N(...r){let t=_path.join.call(void 0, ...r);if(await a(t))return await _promises.readFile.call(void 0, t)}_chunkP7XCQ7WVcjs.a.call(void 0, N,"readData");async function h(r,t,e=!1){e&&await f(r),await _promises.writeFile.call(void 0, r,t,"utf-8")}_chunkP7XCQ7WVcjs.a.call(void 0, h,"writeText");async function W(r,t,e=!1){e&&await f(r);let o=_chunkFBNN5DJJcjs.p.call(void 0, t)?t:JSON.stringify(t);await _promises.writeFile.call(void 0, r,o)}_chunkP7XCQ7WVcjs.a.call(void 0, W,"writeData");async function k(r,t,e={}){let{createFolders:o=!1}=e;o&&await f(r),await _promises.writeFile.call(void 0, r,t)}_chunkP7XCQ7WVcjs.a.call(void 0, k,"writeBin");async function z(r,t,e={}){let{createFolders:o=!1,pretty:p=!1}=e;await h(r,_chunkQ5TVGJYNcjs.a.call(void 0, t,p?2:void 0),o)}_chunkP7XCQ7WVcjs.a.call(void 0, z,"writeJson");exports.a = J; exports.b = a; exports.c = S; exports.d = H; exports.e = f; exports.f = O; exports.g = F; exports.h = B; exports.i = D; exports.j = N; exports.k = h; exports.l = W; exports.m = k; exports.n = z;
2
+ //# sourceMappingURL=chunk-5OFMIHKZ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-DAHVFM6W.cjs","../src/node/fs.ts"],"names":["toHumanReadableFilePath","path","p","normalize","h","process"],"mappings":"AAAA,iOAAwC,wDAAyC,wDAAyC,wDAAyC,uCCA9G,4BACA,oFACjC,SAMJA,CAAAA,CAAwBC,CAAAA,CAAc,CACpD,IAAMC,CAAAA,CAAIC,6BAAAA,CAAc,CAAA,CAClBC,CAAAA,CAAIC,iBAAAA,CAAQ,GAAA,CAAI,IAAA,CACtB,OAAID,CAAAA,EAAKF,CAAAA,CAAE,UAAA,CAAWE,CAAC,CAAA,CACd,CAAA,CAAA,EAAIF,CAAAA,CAAE,KAAA,CAAME,CAAAA,CAAE,MAAM,CAAC,CAAA,CAAA","file":"/home/runner/work/zeed/zeed/dist/chunk-DAHVFM6W.cjs","sourcesContent":[null,"import { mkdir, readFile, rm, stat, writeFile } from 'node:fs/promises'\nimport { dirname, join as joinPath, normalize } from 'node:path'\nimport process from 'node:process'\nimport { toUint8Array } from '../common/data/bin'\nimport { isUint8Array } from '../common/data/is'\nimport { jsonStringifySorted } from '../common/data/json'\n\n/** Try to use `~` for HOME folder if possible */\nexport function toHumanReadableFilePath(path: string) {\n const p = normalize(path)\n const h = process.env.HOME\n if (h && p.startsWith(h))\n return `~${p.slice(h.length)}`\n\n return p\n}\n\nexport async function exists(path: string): Promise<boolean> {\n try {\n await stat(path)\n }\n catch (err) {\n return false\n }\n return true\n}\n\nexport function isHiddenPath(path: string): boolean {\n return path.startsWith('.') || path.includes('/.')\n}\n\n/** Create missing folders e.g. `/a/b/c` will create folders `/a/b/c` */\nexport async function ensureFolder(...parts: string[]): Promise<string> {\n const path = joinPath(...parts)\n if (!(await exists(path)))\n await mkdir(path, { recursive: true })\n return path\n}\n\n/** Create missing folder to file location e.g. `/a/b/c/s.txt` will create folders `/a/b/c` */\nexport async function ensureFolderForFile(...parts: string[]): Promise<string> {\n const path = dirname(joinPath(...parts))\n if (!(await exists(path)))\n await mkdir(path, { recursive: true })\n return path\n}\n\nexport async function removeFolder(...parts: string[]): Promise<string> {\n const path = joinPath(...parts)\n if (await exists(path))\n await rm(path, { recursive: true })\n return path\n}\n\nexport async function readText(...parts: string[]): Promise<string | undefined> {\n const path = joinPath(...parts)\n if (await exists(path))\n return await readFile(path, 'utf-8')\n}\n\nexport async function readJson<T = object>(...parts: string[]): Promise<T | undefined> {\n const content = await readText(...parts)\n if (content != null) {\n try {\n return JSON.parse(content)\n }\n catch (err) {}\n }\n}\n\nexport async function readBin(...parts: string[]): Promise<Uint8Array | undefined> {\n const path = joinPath(...parts)\n if (await exists(path))\n return toUint8Array(await readFile(path))\n}\n\n/** @deprecated use readJson or readBin */\nexport async function readData(...parts: string[]): Promise<Uint8Array | undefined> {\n const path = joinPath(...parts)\n if (await exists(path))\n return await readFile(path)\n}\n\nexport async function writeText(path: string, content: string, createFolders = false): Promise<void> {\n if (createFolders)\n await ensureFolderForFile(path)\n await writeFile(path, content, 'utf-8')\n}\n\n/** @deprecated use writeBin or writeJson */\nexport async function writeData(path: string, content: object | Uint8Array, createFolders = false): Promise<void> {\n if (createFolders)\n await ensureFolderForFile(path)\n const data = isUint8Array(content) ? content : JSON.stringify(content)\n await writeFile(path, data)\n}\n\nexport async function writeBin(path: string, content: Uint8Array, info: {\n createFolders?: boolean\n} = {}): Promise<void> {\n const { createFolders = false } = info\n if (createFolders)\n await ensureFolderForFile(path)\n await writeFile(path, content)\n}\n\nexport async function writeJson<T = object>(path: string, content: T, info: {\n createFolders?: boolean\n pretty?: boolean\n} = {}): Promise<void> {\n const { createFolders = false, pretty = false } = info\n await writeText(path, jsonStringifySorted(content, pretty ? 2 : undefined), createFolders)\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-5OFMIHKZ.cjs","../src/node/fs.ts"],"names":["toHumanReadableFilePath","path","p","normalize","h","process"],"mappings":"AAAA,iOAAwC,wDAAyC,wDAAyC,wDAAyC,uCCA9G,4BACA,oFACjC,SAMJA,CAAAA,CAAwBC,CAAAA,CAAc,CACpD,IAAMC,CAAAA,CAAIC,6BAAAA,CAAc,CAAA,CAClBC,CAAAA,CAAIC,iBAAAA,CAAQ,GAAA,CAAI,IAAA,CACtB,OAAID,CAAAA,EAAKF,CAAAA,CAAE,UAAA,CAAWE,CAAC,CAAA,CACd,CAAA,CAAA,EAAIF,CAAAA,CAAE,KAAA,CAAME,CAAAA,CAAE,MAAM,CAAC,CAAA,CAAA","file":"/home/runner/work/zeed/zeed/dist/chunk-5OFMIHKZ.cjs","sourcesContent":[null,"import { mkdir, readFile, rm, stat, writeFile } from 'node:fs/promises'\nimport { dirname, join as joinPath, normalize } from 'node:path'\nimport process from 'node:process'\nimport { toUint8Array } from '../common/data/bin'\nimport { isUint8Array } from '../common/data/is'\nimport { jsonStringifySorted } from '../common/data/json'\n\n/** Try to use `~` for HOME folder if possible */\nexport function toHumanReadableFilePath(path: string) {\n const p = normalize(path)\n const h = process.env.HOME\n if (h && p.startsWith(h))\n return `~${p.slice(h.length)}`\n\n return p\n}\n\nexport async function exists(path: string): Promise<boolean> {\n try {\n await stat(path)\n }\n catch (err) {\n return false\n }\n return true\n}\n\nexport function isHiddenPath(path: string): boolean {\n return path.startsWith('.') || path.includes('/.')\n}\n\n/** Create missing folders e.g. `/a/b/c` will create folders `/a/b/c` */\nexport async function ensureFolder(...parts: string[]): Promise<string> {\n const path = joinPath(...parts)\n if (!(await exists(path)))\n await mkdir(path, { recursive: true })\n return path\n}\n\n/** Create missing folder to file location e.g. `/a/b/c/s.txt` will create folders `/a/b/c` */\nexport async function ensureFolderForFile(...parts: string[]): Promise<string> {\n const path = dirname(joinPath(...parts))\n if (!(await exists(path)))\n await mkdir(path, { recursive: true })\n return path\n}\n\nexport async function removeFolder(...parts: string[]): Promise<string> {\n const path = joinPath(...parts)\n if (await exists(path))\n await rm(path, { recursive: true })\n return path\n}\n\nexport async function readText(...parts: string[]): Promise<string | undefined> {\n const path = joinPath(...parts)\n if (await exists(path))\n return await readFile(path, 'utf-8')\n}\n\nexport async function readJson<T = object>(...parts: string[]): Promise<T | undefined> {\n const content = await readText(...parts)\n if (content != null) {\n try {\n return JSON.parse(content)\n }\n catch (err) {}\n }\n}\n\nexport async function readBin(...parts: string[]): Promise<Uint8Array | undefined> {\n const path = joinPath(...parts)\n if (await exists(path))\n return toUint8Array(await readFile(path))\n}\n\n/** @deprecated use readJson or readBin */\nexport async function readData(...parts: string[]): Promise<Uint8Array | undefined> {\n const path = joinPath(...parts)\n if (await exists(path))\n return await readFile(path)\n}\n\nexport async function writeText(path: string, content: string, createFolders = false): Promise<void> {\n if (createFolders)\n await ensureFolderForFile(path)\n await writeFile(path, content, 'utf-8')\n}\n\n/** @deprecated use writeBin or writeJson */\nexport async function writeData(path: string, content: object | Uint8Array, createFolders = false): Promise<void> {\n if (createFolders)\n await ensureFolderForFile(path)\n const data = isUint8Array(content) ? content : JSON.stringify(content)\n await writeFile(path, data)\n}\n\nexport async function writeBin(path: string, content: Uint8Array, info: {\n createFolders?: boolean\n} = {}): Promise<void> {\n const { createFolders = false } = info\n if (createFolders)\n await ensureFolderForFile(path)\n await writeFile(path, content)\n}\n\nexport async function writeJson<T = object>(path: string, content: T, info: {\n createFolders?: boolean\n pretty?: boolean\n} = {}): Promise<void> {\n const { createFolders = false, pretty = false } = info\n await writeText(path, jsonStringifySorted(content, pretty ? 2 : undefined), createFolders)\n}\n"]}
@@ -1,2 +1,2 @@
1
- import{a as o}from"./chunk-EIGLPIZZ.js";import{b as s}from"./chunk-VC5WLH64.js";import{q as n}from"./chunk-Z33SQXH7.js";import{a as t}from"./chunk-5NKC2EQJ.js";var e=class e extends o{constructor(){super(...arguments);this.id=n();this.context={};this.dispose=s()}close(){this.dispose()}};t(e,"Channel");var i=e;export{i as a};
2
- //# sourceMappingURL=chunk-AU4UHJWD.js.map
1
+ import{a as o}from"./chunk-EIGLPIZZ.js";import{b as s}from"./chunk-GIM3UHCU.js";import{q as n}from"./chunk-RPTXQCPX.js";import{a as t}from"./chunk-5NKC2EQJ.js";var e=class e extends o{constructor(){super(...arguments);this.id=n();this.context={};this.dispose=s()}close(){this.dispose()}};t(e,"Channel");var i=e;export{i as a};
2
+ //# sourceMappingURL=chunk-64TQ2QFV.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkYHH5F6YQcjs = require('./chunk-YHH5F6YQ.cjs');var _chunkABBXLXT4cjs = require('./chunk-ABBXLXT4.cjs');var _chunkPI7WHMCMcjs = require('./chunk-PI7WHMCM.cjs');var _chunk7UA33BQWcjs = require('./chunk-7UA33BQW.cjs');var _chunk5ANAWLCJcjs = require('./chunk-5ANAWLCJ.cjs');var _chunkP7XCQ7WVcjs = require('./chunk-P7XCQ7WV.cjs');function $(F={}){let{maxParallel:U=3,name:j=_chunk5ANAWLCJcjs.u.call(void 0, "pool"),idConflictResolution:I="memoize"}=F,l=new _chunkABBXLXT4cjs.a,k=_chunkPI7WHMCMcjs.b.call(void 0, );k.add(g);let f=new (0, _chunkYHH5F6YQcjs.a)({name:j});f.on("progressCancelled",g);let c=0,p=0,v=0,P=0,i={};async function z(){if(c>0){let[t,e]=_chunk7UA33BQWcjs.a.call(void 0, );return l.once("didFinish",e),t}}_chunkP7XCQ7WVcjs.a.call(void 0, z,"waitFinishAll");async function M(){for(let t of Object.keys(i))i[t].state==="finished"&&(await i[t].progress.dispose(),delete i[t])}_chunkP7XCQ7WVcjs.a.call(void 0, M,"cleanupFinished");function E(){l.emit("didFinish"),c=0,p=0,M(),f.reset()}_chunkP7XCQ7WVcjs.a.call(void 0, E,"didFinish");function m(){let t=0,e=0;for(let{max:n,resolved:d,state:o}of Object.values(i))t+=n,e+=o==="finished"?n:Math.min(n,d);l.emit("didUpdate",c,p,t,e)}_chunkP7XCQ7WVcjs.a.call(void 0, m,"didUpdate");function T(){if(m(),c>0&&c===p&&E(),v>=U)return;let t=Object.values(i).filter(e=>e.state==="waiting");if(t.length>0){let e;for(let n of t)n.group!=null&&Object.values(i).some(d=>d.state==="running"&&d.id!==n.id&&d.group===n.group)||(e==null||n.priority<e.priority)&&(e=n);if(e!=null){let n=e.id,d=e.done;e.state="running",++v,l.emit("didStart",n);let o=_chunkP7XCQ7WVcjs.a.call(void 0, a=>{e&&(e.result=a,e.state="finished",e.resolved=e.max,_optionalChain([e, 'access', _ => _.progress, 'optionalAccess', _2 => _2.setCompleted, 'call', _3 => _3()])),--v,++p,T()},"taskFinished");e.task(e).then(a=>{d(a),l.emit("didResolve",n,a),o(a)}).catch(a=>{d(),l.emit("didReject",n,a),o()})}}}_chunkP7XCQ7WVcjs.a.call(void 0, T,"performNext");function u(t){let e=i[t];e&&e.state==="waiting"&&(i[t].state="finished",++p,l.emit("didCancel",t),i[t].progress.dispose(),m())}_chunkP7XCQ7WVcjs.a.call(void 0, u,"cancel");function g(){Object.keys(i).forEach(u)}_chunkP7XCQ7WVcjs.a.call(void 0, g,"cancelAll");function O(t){return i[t]!=null}_chunkP7XCQ7WVcjs.a.call(void 0, O,"hasById");function S(t,e={}){let n,d=new Promise(r=>n=r),o=_nullishCoalesce(e.id, () => (_chunk5ANAWLCJcjs.q.call(void 0, )));if(i[o]!=null){let r=_nullishCoalesce(e.idConflictResolution, () => (I));if(r==="replace")u(o);else if(r==="memoize"||r==="prioritize"){let x=i[o];return r==="prioritize"&&(x.priority=++P),{id:o,promise:(async()=>{if(x.state==="finished")return i[o].result})(),dispose:_chunkP7XCQ7WVcjs.a.call(void 0, ()=>u(o),"dispose"),cancel:_chunkP7XCQ7WVcjs.a.call(void 0, ()=>u(o),"cancel")}}else throw new Error(`Pool task with id=${o} already exists!`)}let a=new (0, _chunkYHH5F6YQcjs.a)({name:o,totalUnits:_nullishCoalesce(e.max, () => (1)),completeUnits:_nullishCoalesce(e.resolved, () => (0))});return f.addChild(a),i[o]={id:o,task:t,priority:++P,group:e.group,state:"waiting",max:_nullishCoalesce(e.max, () => (1)),resolved:_nullishCoalesce(e.resolved, () => (0)),done:n,payload:e.payload,progress:a,setMax(r){a.setTotalUnits(r),i[o].max=r,m()},setResolved(r){a.setCompletetedUnits(r),i[o].resolved=r,m()},incResolved(r=1){a.incCompletedUnits(r),i[o].resolved+=r,m()}},++c,T(),{id:o,promise:d,dispose:_chunkP7XCQ7WVcjs.a.call(void 0, ()=>u(o),"dispose"),cancel:_chunkP7XCQ7WVcjs.a.call(void 0, ()=>u(o),"cancel")}}return _chunkP7XCQ7WVcjs.a.call(void 0, S,"enqueue"),{events:l,cancel:u,cancelAll:g,hasById:O,progress:f,enqueue:S,dispose:k,waitFinishAll:z}}_chunkP7XCQ7WVcjs.a.call(void 0, $,"usePool");exports.a = $;
2
- //# sourceMappingURL=chunk-VHN6NMKI.cjs.map
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkWC3CTTBTcjs = require('./chunk-WC3CTTBT.cjs');var _chunkABBXLXT4cjs = require('./chunk-ABBXLXT4.cjs');var _chunk3UNBXQBQcjs = require('./chunk-3UNBXQBQ.cjs');var _chunk7UA33BQWcjs = require('./chunk-7UA33BQW.cjs');var _chunkN4TDBJ7Mcjs = require('./chunk-N4TDBJ7M.cjs');var _chunkP7XCQ7WVcjs = require('./chunk-P7XCQ7WV.cjs');function $(F={}){let{maxParallel:U=3,name:j=_chunkN4TDBJ7Mcjs.u.call(void 0, "pool"),idConflictResolution:I="memoize"}=F,l=new _chunkABBXLXT4cjs.a,k=_chunk3UNBXQBQcjs.b.call(void 0, );k.add(g);let f=new (0, _chunkWC3CTTBTcjs.a)({name:j});f.on("progressCancelled",g);let c=0,p=0,v=0,P=0,i={};async function z(){if(c>0){let[t,e]=_chunk7UA33BQWcjs.a.call(void 0, );return l.once("didFinish",e),t}}_chunkP7XCQ7WVcjs.a.call(void 0, z,"waitFinishAll");async function M(){for(let t of Object.keys(i))i[t].state==="finished"&&(await i[t].progress.dispose(),delete i[t])}_chunkP7XCQ7WVcjs.a.call(void 0, M,"cleanupFinished");function E(){l.emit("didFinish"),c=0,p=0,M(),f.reset()}_chunkP7XCQ7WVcjs.a.call(void 0, E,"didFinish");function m(){let t=0,e=0;for(let{max:n,resolved:d,state:o}of Object.values(i))t+=n,e+=o==="finished"?n:Math.min(n,d);l.emit("didUpdate",c,p,t,e)}_chunkP7XCQ7WVcjs.a.call(void 0, m,"didUpdate");function T(){if(m(),c>0&&c===p&&E(),v>=U)return;let t=Object.values(i).filter(e=>e.state==="waiting");if(t.length>0){let e;for(let n of t)n.group!=null&&Object.values(i).some(d=>d.state==="running"&&d.id!==n.id&&d.group===n.group)||(e==null||n.priority<e.priority)&&(e=n);if(e!=null){let n=e.id,d=e.done;e.state="running",++v,l.emit("didStart",n);let o=_chunkP7XCQ7WVcjs.a.call(void 0, a=>{e&&(e.result=a,e.state="finished",e.resolved=e.max,_optionalChain([e, 'access', _ => _.progress, 'optionalAccess', _2 => _2.setCompleted, 'call', _3 => _3()])),--v,++p,T()},"taskFinished");e.task(e).then(a=>{d(a),l.emit("didResolve",n,a),o(a)}).catch(a=>{d(),l.emit("didReject",n,a),o()})}}}_chunkP7XCQ7WVcjs.a.call(void 0, T,"performNext");function u(t){let e=i[t];e&&e.state==="waiting"&&(i[t].state="finished",++p,l.emit("didCancel",t),i[t].progress.dispose(),m())}_chunkP7XCQ7WVcjs.a.call(void 0, u,"cancel");function g(){Object.keys(i).forEach(u)}_chunkP7XCQ7WVcjs.a.call(void 0, g,"cancelAll");function O(t){return i[t]!=null}_chunkP7XCQ7WVcjs.a.call(void 0, O,"hasById");function S(t,e={}){let n,d=new Promise(r=>n=r),o=_nullishCoalesce(e.id, () => (_chunkN4TDBJ7Mcjs.q.call(void 0, )));if(i[o]!=null){let r=_nullishCoalesce(e.idConflictResolution, () => (I));if(r==="replace")u(o);else if(r==="memoize"||r==="prioritize"){let x=i[o];return r==="prioritize"&&(x.priority=++P),{id:o,promise:(async()=>{if(x.state==="finished")return i[o].result})(),dispose:_chunkP7XCQ7WVcjs.a.call(void 0, ()=>u(o),"dispose"),cancel:_chunkP7XCQ7WVcjs.a.call(void 0, ()=>u(o),"cancel")}}else throw new Error(`Pool task with id=${o} already exists!`)}let a=new (0, _chunkWC3CTTBTcjs.a)({name:o,totalUnits:_nullishCoalesce(e.max, () => (1)),completeUnits:_nullishCoalesce(e.resolved, () => (0))});return f.addChild(a),i[o]={id:o,task:t,priority:++P,group:e.group,state:"waiting",max:_nullishCoalesce(e.max, () => (1)),resolved:_nullishCoalesce(e.resolved, () => (0)),done:n,payload:e.payload,progress:a,setMax(r){a.setTotalUnits(r),i[o].max=r,m()},setResolved(r){a.setCompletetedUnits(r),i[o].resolved=r,m()},incResolved(r=1){a.incCompletedUnits(r),i[o].resolved+=r,m()}},++c,T(),{id:o,promise:d,dispose:_chunkP7XCQ7WVcjs.a.call(void 0, ()=>u(o),"dispose"),cancel:_chunkP7XCQ7WVcjs.a.call(void 0, ()=>u(o),"cancel")}}return _chunkP7XCQ7WVcjs.a.call(void 0, S,"enqueue"),{events:l,cancel:u,cancelAll:g,hasById:O,progress:f,enqueue:S,dispose:k,waitFinishAll:z}}_chunkP7XCQ7WVcjs.a.call(void 0, $,"usePool");exports.a = $;
2
+ //# sourceMappingURL=chunk-6VWYU3DA.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-VHN6NMKI.cjs","../src/common/exec/pool.ts"],"names":["usePool","config","maxParallel","name","uname","idConflictResolution","events","Emitter","dispose","useDispose","cancelAll","progress","Progress","countMax","countResolved","currentParallel","priority","tasks","waitFinishAll","promise","resolve","createPromise","__name","cleanupFinished","id","didFinish","didUpdate","presentMax","presentResolved","max","resolved","state","performNext","waitingTasks","t","taskInfo","tt","done","taskFinished","result","r","err","cancel","hasById","enqueue","task","uuid","resolution","runningTask","taskProgress","units","inc"],"mappings":"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","file":"/home/runner/work/zeed/zeed/dist/chunk-VHN6NMKI.cjs","sourcesContent":[null,"import { useDispose } from '../dispose-defer'\nimport { Emitter } from '../msg/emitter'\nimport { uname, uuid } from '../uuid'\nimport { Progress } from './progress'\nimport { createPromise } from './promise'\n\nexport type PoolTaskIdConflictResolution = 'replace' | 'memoize' | 'prioritize' | 'error'\n\n// export enum PoolTaskIdConflictResolution {\n// /**\n// * Tasks with same `id` are replaced. Newest wins.\n// */\n// replace = 0,\n\n// /**\n// * Task with same `id` will continue to run. Reference is returned with option to cancel.\n// * Named \"memoize\" because the result of the task should always be the same for the same `id`,\n// * like e.g. a download.\n// */\n// memoize = 1,\n\n// /** Like memoize, but try to put on top of the list */\n// prioritize = 2,\n\n// /**\n// * Tasks with same `id` throw error\n// */\n// error = 3,\n\n// }\n\nexport interface PoolConfig {\n name?: string\n maxParallel?: number\n idConflictResolution?: PoolTaskIdConflictResolution\n}\n\nexport type PoolTaskFn<T = any> = (taskInfo: PoolTask<T>) => Promise<T>\n\nexport type PoolTaskState = 'waiting' | 'running' | 'finished'\n\n/** Task */\nexport interface PoolTask<T> {\n readonly id: string\n readonly task: PoolTaskFn<T>\n readonly done: (result?: any) => void\n readonly setMax: (max: number) => void\n readonly setResolved: (resolved: number) => void\n readonly incResolved: (inc?: number) => void\n state: PoolTaskState\n priority: number\n /** Same groups are executed only one at a time */\n group?: string\n\n progress: Progress\n max: number\n resolved: number\n\n result?: T\n payload?: unknown\n}\n\nexport interface PoolTaskEvents {\n didUpdate: (\n max: number,\n resolved: number,\n presentMax: number,\n presentResolved: number\n ) => void\n didStart: (id: string) => void\n didCancel: (id: string) => void\n didFinish: () => void\n didResolve: (id: string, value: any) => void\n didReject: (id: string, error: any) => void\n}\n\n// todo: barrier\n// todo: dependents\n\nexport function usePool<T = any>(config: PoolConfig = {}) {\n const {\n maxParallel = 3,\n name = uname('pool'),\n idConflictResolution = 'memoize',\n } = config\n\n const events = new Emitter<PoolTaskEvents>()\n\n const dispose = useDispose()\n dispose.add(cancelAll)\n\n const progress = new Progress({ name })\n\n progress.on('progressCancelled', cancelAll)\n\n let countMax = 0\n let countResolved = 0\n let currentParallel = 0\n let priority = 0\n const tasks: Record<string, PoolTask<T>> = {}\n\n // const [allFinishedPromise, allFinishedResolve] = createPromise()\n\n async function waitFinishAll() {\n if (countMax > 0) {\n const [promise, resolve] = createPromise()\n events.once('didFinish', resolve)\n return promise\n }\n }\n\n async function cleanupFinished() {\n for (const id of Object.keys(tasks)) {\n const task = tasks[id]\n if (task.state === 'finished') {\n await tasks[id].progress.dispose()\n delete tasks[id]\n }\n }\n }\n\n function didFinish() {\n void events.emit('didFinish')\n // allFinishedResolve(countMax)\n countMax = 0\n countResolved = 0\n void cleanupFinished()\n progress.reset()\n }\n\n function didUpdate() {\n let presentMax = 0\n let presentResolved = 0\n for (const { max, resolved, state } of Object.values(tasks)) {\n presentMax += max\n presentResolved += state === 'finished' ? max : Math.min(max, resolved)\n }\n void events.emit(\n 'didUpdate',\n countMax,\n countResolved,\n presentMax,\n presentResolved,\n )\n }\n\n function performNext() {\n didUpdate()\n if (countMax > 0 && countMax === countResolved)\n didFinish()\n if (currentParallel >= maxParallel)\n return\n const waitingTasks = Object.values(tasks).filter(\n t => t.state === 'waiting',\n )\n if (waitingTasks.length > 0) {\n let taskInfo: PoolTask<T> | undefined\n for (const t of waitingTasks) {\n // Skip task if one of same group is running.\n // Forces serialized execution for subgroup of tasks.\n if (\n t.group != null\n && Object.values(tasks).some(\n tt =>\n tt.state === 'running'\n && tt.id !== t.id\n && tt.group === t.group,\n )\n ) {\n continue\n }\n\n // fifo\n if (taskInfo == null || t.priority < taskInfo.priority)\n taskInfo = t\n }\n if (taskInfo != null) {\n const id = taskInfo.id\n const done = taskInfo.done\n taskInfo.state = 'running'\n ++currentParallel\n void events.emit('didStart', id)\n\n const taskFinished = (result?: T) => {\n if (taskInfo) {\n taskInfo.result = result\n taskInfo.state = 'finished'\n taskInfo.resolved = taskInfo.max\n taskInfo.progress?.setCompleted()\n // void taskInfo.progress.dispose()\n }\n --currentParallel\n ++countResolved\n performNext()\n }\n\n taskInfo\n .task(taskInfo)\n .then((r) => {\n done(r)\n void events.emit('didResolve', id, r)\n taskFinished(r)\n })\n .catch((err) => {\n done()\n void events.emit('didReject', id, err)\n taskFinished()\n })\n }\n }\n }\n\n function cancel(id: string) {\n const taskInfo = tasks[id]\n if (taskInfo && taskInfo.state === 'waiting') {\n tasks[id].state = 'finished'\n ++countResolved\n void events.emit('didCancel', id)\n void tasks[id].progress.dispose()\n didUpdate()\n }\n }\n\n function cancelAll() {\n Object.keys(tasks).forEach(cancel)\n // progress.dispose()\n }\n\n function hasById(id: string) {\n return tasks[id] != null\n }\n\n function enqueue<P>(\n task: PoolTaskFn<T>,\n config: {\n id?: string\n max?: number\n resolved?: number\n group?: string\n idConflictResolution?: PoolTaskIdConflictResolution\n payload?: P\n } = {},\n ) {\n let done: any\n const promise: Promise<any> = new Promise(resolve => (done = resolve))\n const id = config.id ?? uuid()\n\n if (tasks[id] != null) {\n const resolution = config.idConflictResolution ?? idConflictResolution\n\n if (resolution === 'replace') {\n cancel(id)\n }\n else if (resolution === 'memoize' || resolution === 'prioritize') {\n const runningTask = tasks[id]\n\n if (resolution === 'prioritize')\n runningTask.priority = ++priority\n\n return {\n id,\n promise: (async () => {\n if (runningTask.state === 'finished')\n return tasks[id].result\n\n // todo: wait for task to finish\n })(),\n dispose: () => cancel(id),\n cancel: () => cancel(id),\n }\n }\n else {\n throw new Error(`Pool task with id=${id} already exists!`)\n }\n }\n\n const taskProgress = new Progress({\n name: id,\n totalUnits: config.max ?? 1,\n completeUnits: config.resolved ?? 0,\n })\n\n progress.addChild(taskProgress)\n\n tasks[id] = {\n id,\n task,\n priority: ++priority,\n group: config.group,\n state: 'waiting',\n max: config.max ?? 1,\n resolved: config.resolved ?? 0,\n done,\n payload: config.payload,\n progress: taskProgress,\n\n /** @deprecated should use `.progress` */\n setMax(units) {\n taskProgress.setTotalUnits(units)\n tasks[id].max = units\n didUpdate()\n },\n\n /** @deprecated should use `.progress` */\n setResolved(units) {\n taskProgress.setCompletetedUnits(units)\n tasks[id].resolved = units\n didUpdate()\n },\n\n /** @deprecated should use `.progress` */\n incResolved(inc = 1) {\n taskProgress.incCompletedUnits(inc)\n tasks[id].resolved += inc\n didUpdate()\n },\n }\n ++countMax\n performNext()\n\n return {\n id,\n promise,\n dispose: () => cancel(id),\n cancel: () => cancel(id),\n }\n }\n\n return {\n events,\n cancel,\n cancelAll,\n hasById,\n progress,\n enqueue,\n dispose,\n waitFinishAll,\n }\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-6VWYU3DA.cjs","../src/common/exec/pool.ts"],"names":["usePool","config","maxParallel","name","uname","idConflictResolution","events","Emitter","dispose","useDispose","cancelAll","progress","Progress","countMax","countResolved","currentParallel","priority","tasks","waitFinishAll","promise","resolve","createPromise","__name","cleanupFinished","id","didFinish","didUpdate","presentMax","presentResolved","max","resolved","state","performNext","waitingTasks","t","taskInfo","tt","done","taskFinished","result","r","err","cancel","hasById","enqueue","task","uuid","resolution","runningTask","taskProgress","units","inc"],"mappings":"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","file":"/home/runner/work/zeed/zeed/dist/chunk-6VWYU3DA.cjs","sourcesContent":[null,"import { useDispose } from '../dispose-defer'\nimport { Emitter } from '../msg/emitter'\nimport { uname, uuid } from '../uuid'\nimport { Progress } from './progress'\nimport { createPromise } from './promise'\n\nexport type PoolTaskIdConflictResolution = 'replace' | 'memoize' | 'prioritize' | 'error'\n\n// export enum PoolTaskIdConflictResolution {\n// /**\n// * Tasks with same `id` are replaced. Newest wins.\n// */\n// replace = 0,\n\n// /**\n// * Task with same `id` will continue to run. Reference is returned with option to cancel.\n// * Named \"memoize\" because the result of the task should always be the same for the same `id`,\n// * like e.g. a download.\n// */\n// memoize = 1,\n\n// /** Like memoize, but try to put on top of the list */\n// prioritize = 2,\n\n// /**\n// * Tasks with same `id` throw error\n// */\n// error = 3,\n\n// }\n\nexport interface PoolConfig {\n name?: string\n maxParallel?: number\n idConflictResolution?: PoolTaskIdConflictResolution\n}\n\nexport type PoolTaskFn<T = any> = (taskInfo: PoolTask<T>) => Promise<T>\n\nexport type PoolTaskState = 'waiting' | 'running' | 'finished'\n\n/** Task */\nexport interface PoolTask<T> {\n readonly id: string\n readonly task: PoolTaskFn<T>\n readonly done: (result?: any) => void\n readonly setMax: (max: number) => void\n readonly setResolved: (resolved: number) => void\n readonly incResolved: (inc?: number) => void\n state: PoolTaskState\n priority: number\n /** Same groups are executed only one at a time */\n group?: string\n\n progress: Progress\n max: number\n resolved: number\n\n result?: T\n payload?: unknown\n}\n\nexport interface PoolTaskEvents {\n didUpdate: (\n max: number,\n resolved: number,\n presentMax: number,\n presentResolved: number\n ) => void\n didStart: (id: string) => void\n didCancel: (id: string) => void\n didFinish: () => void\n didResolve: (id: string, value: any) => void\n didReject: (id: string, error: any) => void\n}\n\n// todo: barrier\n// todo: dependents\n\nexport function usePool<T = any>(config: PoolConfig = {}) {\n const {\n maxParallel = 3,\n name = uname('pool'),\n idConflictResolution = 'memoize',\n } = config\n\n const events = new Emitter<PoolTaskEvents>()\n\n const dispose = useDispose()\n dispose.add(cancelAll)\n\n const progress = new Progress({ name })\n\n progress.on('progressCancelled', cancelAll)\n\n let countMax = 0\n let countResolved = 0\n let currentParallel = 0\n let priority = 0\n const tasks: Record<string, PoolTask<T>> = {}\n\n // const [allFinishedPromise, allFinishedResolve] = createPromise()\n\n async function waitFinishAll() {\n if (countMax > 0) {\n const [promise, resolve] = createPromise()\n events.once('didFinish', resolve)\n return promise\n }\n }\n\n async function cleanupFinished() {\n for (const id of Object.keys(tasks)) {\n const task = tasks[id]\n if (task.state === 'finished') {\n await tasks[id].progress.dispose()\n delete tasks[id]\n }\n }\n }\n\n function didFinish() {\n void events.emit('didFinish')\n // allFinishedResolve(countMax)\n countMax = 0\n countResolved = 0\n void cleanupFinished()\n progress.reset()\n }\n\n function didUpdate() {\n let presentMax = 0\n let presentResolved = 0\n for (const { max, resolved, state } of Object.values(tasks)) {\n presentMax += max\n presentResolved += state === 'finished' ? max : Math.min(max, resolved)\n }\n void events.emit(\n 'didUpdate',\n countMax,\n countResolved,\n presentMax,\n presentResolved,\n )\n }\n\n function performNext() {\n didUpdate()\n if (countMax > 0 && countMax === countResolved)\n didFinish()\n if (currentParallel >= maxParallel)\n return\n const waitingTasks = Object.values(tasks).filter(\n t => t.state === 'waiting',\n )\n if (waitingTasks.length > 0) {\n let taskInfo: PoolTask<T> | undefined\n for (const t of waitingTasks) {\n // Skip task if one of same group is running.\n // Forces serialized execution for subgroup of tasks.\n if (\n t.group != null\n && Object.values(tasks).some(\n tt =>\n tt.state === 'running'\n && tt.id !== t.id\n && tt.group === t.group,\n )\n ) {\n continue\n }\n\n // fifo\n if (taskInfo == null || t.priority < taskInfo.priority)\n taskInfo = t\n }\n if (taskInfo != null) {\n const id = taskInfo.id\n const done = taskInfo.done\n taskInfo.state = 'running'\n ++currentParallel\n void events.emit('didStart', id)\n\n const taskFinished = (result?: T) => {\n if (taskInfo) {\n taskInfo.result = result\n taskInfo.state = 'finished'\n taskInfo.resolved = taskInfo.max\n taskInfo.progress?.setCompleted()\n // void taskInfo.progress.dispose()\n }\n --currentParallel\n ++countResolved\n performNext()\n }\n\n taskInfo\n .task(taskInfo)\n .then((r) => {\n done(r)\n void events.emit('didResolve', id, r)\n taskFinished(r)\n })\n .catch((err) => {\n done()\n void events.emit('didReject', id, err)\n taskFinished()\n })\n }\n }\n }\n\n function cancel(id: string) {\n const taskInfo = tasks[id]\n if (taskInfo && taskInfo.state === 'waiting') {\n tasks[id].state = 'finished'\n ++countResolved\n void events.emit('didCancel', id)\n void tasks[id].progress.dispose()\n didUpdate()\n }\n }\n\n function cancelAll() {\n Object.keys(tasks).forEach(cancel)\n // progress.dispose()\n }\n\n function hasById(id: string) {\n return tasks[id] != null\n }\n\n function enqueue<P>(\n task: PoolTaskFn<T>,\n config: {\n id?: string\n max?: number\n resolved?: number\n group?: string\n idConflictResolution?: PoolTaskIdConflictResolution\n payload?: P\n } = {},\n ) {\n let done: any\n const promise: Promise<any> = new Promise(resolve => (done = resolve))\n const id = config.id ?? uuid()\n\n if (tasks[id] != null) {\n const resolution = config.idConflictResolution ?? idConflictResolution\n\n if (resolution === 'replace') {\n cancel(id)\n }\n else if (resolution === 'memoize' || resolution === 'prioritize') {\n const runningTask = tasks[id]\n\n if (resolution === 'prioritize')\n runningTask.priority = ++priority\n\n return {\n id,\n promise: (async () => {\n if (runningTask.state === 'finished')\n return tasks[id].result\n\n // todo: wait for task to finish\n })(),\n dispose: () => cancel(id),\n cancel: () => cancel(id),\n }\n }\n else {\n throw new Error(`Pool task with id=${id} already exists!`)\n }\n }\n\n const taskProgress = new Progress({\n name: id,\n totalUnits: config.max ?? 1,\n completeUnits: config.resolved ?? 0,\n })\n\n progress.addChild(taskProgress)\n\n tasks[id] = {\n id,\n task,\n priority: ++priority,\n group: config.group,\n state: 'waiting',\n max: config.max ?? 1,\n resolved: config.resolved ?? 0,\n done,\n payload: config.payload,\n progress: taskProgress,\n\n /** @deprecated should use `.progress` */\n setMax(units) {\n taskProgress.setTotalUnits(units)\n tasks[id].max = units\n didUpdate()\n },\n\n /** @deprecated should use `.progress` */\n setResolved(units) {\n taskProgress.setCompletetedUnits(units)\n tasks[id].resolved = units\n didUpdate()\n },\n\n /** @deprecated should use `.progress` */\n incResolved(inc = 1) {\n taskProgress.incCompletedUnits(inc)\n tasks[id].resolved += inc\n didUpdate()\n },\n }\n ++countMax\n performNext()\n\n return {\n id,\n promise,\n dispose: () => cancel(id),\n cancel: () => cancel(id),\n }\n }\n\n return {\n events,\n cancel,\n cancelAll,\n hasById,\n progress,\n enqueue,\n dispose,\n waitFinishAll,\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import{l as i,m as u}from"./chunk-YAGYM2VT.js";import{a as t}from"./chunk-5NKC2EQJ.js";var s;function m(e=Date.UTC(2e3,0,1,0,0,0,0)){s=e}t(m,"setTimestampTest");function p(){return s??Date.now()}t(p,"getTimestamp");function T(){return Math.floor(p()/1e3)}t(T,"getTimestampInSeconds");function x(e){return new Date(e*1e3)}t(x,"dateFromSeconds");function M(e){return e>999?`${(e/1e3).toFixed(1)} s`:`${e.toFixed(2)} ms`}t(M,"formatMilliseconds");function g(...e){for(let n of e){if(n instanceof Date)return n;if(typeof n=="string"){let r=null;if(n.includes(":"))try{r=new Date(n)}catch{}if(!(r instanceof Date)){let o=/(\d\d\d\d)-(\d\d)-(\d\d)/.exec(n);o&&(r=new Date(+o[1],+o[2]-1,+o[3],12,0))}if(r instanceof Date)return r}}}t(g,"parseDate");function c(){return typeof performance<"u"?performance.now():Date.now()}t(c,"getPerformanceTimestamp");function _(){let e=c();return function(){let n=c()-e;return M(n)}}t(_,"duration");function b(e){return new Date(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds())}t(b,"datetimeToLocal");function S(e){return new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()))}t(S,"datetimeToUTC");function E(e,n=!0){return e<=0?0:n&&e<1e12?e:Math.floor(e/1e3)}t(E,"timestampMillisecondsToSeconds");function I(e,n=!0){return e<=0?0:n&&e>1e12?e:Math.floor(e*1e3)}t(I,"timestampSecondsToMilliseconds");var U=31536e6,D=31536e3,C=2592e6,N=2592e3,w=6048e5,h=604800,F=864e5,H=86400,Y=36e5,A=3600,O=6e4,R=60,d=5,f=6,a=1735686e3;function y(){let e=Math.floor((T()-a)/d);return i(e,f)}t(y,"getBuildNumber");function B(e){return a+u(e)*d}t(B,"getSecondsFromBuildNumber");export{m as a,p as b,T as c,x as d,M as e,g as f,c as g,_ as h,b as i,S as j,E as k,I as l,U as m,D as n,C as o,N as p,w as q,h as r,F as s,H as t,Y as u,A as v,O as w,R as x,y,B as z};
2
+ //# sourceMappingURL=chunk-73A2QE6J.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/time.ts"],"sourcesContent":["let testModeTime: number | undefined\n\n/**\n * Set a fixed timestamp (ms since epoch) used by `getTimestamp` for tests.\n *\n * Pass a millisecond timestamp (for example created with Date.UTC) to force\n * time-based helpers to return deterministic values during tests.\n *\n * @param ts - timestamp in milliseconds (defaults to 2000-01-01T00:00:00.000Z)\n */\nexport function setTimestampTest(ts = Date.UTC(2000, 0, 1, 0, 0, 0, 0)) {\n testModeTime = ts\n}\n\n/**\n * Return the current timestamp in milliseconds.\n *\n * In test mode (when `setTimestampTest` was called) the forced value is\n * returned instead of the real current time.\n *\n * @returns timestamp in milliseconds\n */\nexport function getTimestamp(): number {\n return testModeTime ?? Date.now()\n}\n\n/**\n * Return the current timestamp in seconds.\n *\n * Uses `getTimestamp()` which can be overridden for tests with\n * `setTimestampTest`.\n *\n * @returns timestamp in whole seconds (integer)\n */\nexport function getTimestampInSeconds(): number {\n return Math.floor(getTimestamp() / 1000)\n}\n\n/**\n * Convert a UNIX timestamp in seconds to a JavaScript Date.\n *\n * @param ts - seconds since epoch\n * @returns Date instance corresponding to the provided seconds\n */\nexport function dateFromSeconds(ts: number): Date {\n return new Date(ts * 1000)\n}\n\n// typeof performance !== \"undefined\" ? performance.now() : new Date().getTime()\n\n/**\n * Format a millisecond duration into a human readable string.\n *\n * - Values >= 1000ms are shown in seconds with one decimal (e.g. \"1.2 s\").\n * - Smaller values are shown in milliseconds with two decimals (e.g. \"123.45 ms\").\n *\n * @param ms - duration in milliseconds\n * @returns formatted duration string\n */\nexport function formatMilliseconds(ms: number): string {\n return ms > 999 ? `${(ms / 1000).toFixed(1)} s` : `${ms.toFixed(2)} ms`\n}\n\n/**\n * Parses the given date candidates and returns the first valid Date object found.\n *\n * @param dateCandidates - The date candidates to parse, which can be either strings or Date objects.\n * @returns The parsed Date object, or undefined if no valid date is found.\n */\nexport function parseDate(\n ...dateCandidates: (string | Date)[]\n): Date | undefined {\n for (const dateCandidate of dateCandidates) {\n if (dateCandidate instanceof Date)\n return dateCandidate\n\n if (typeof dateCandidate === 'string') {\n let date = null\n if (dateCandidate.includes(':')) {\n try {\n date = new Date(dateCandidate)\n }\n catch (err) {}\n }\n if (!(date instanceof Date)) {\n const m = /(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)/.exec(dateCandidate)\n if (m)\n date = new Date(+m[1], +m[2] - 1, +m[3], 12, 0)\n }\n if (date instanceof Date)\n return date\n }\n }\n}\n\n/**\n * Return a high-resolution timestamp in milliseconds.\n *\n * Uses the `performance.now()` clock when available (monotonic, high\n * resolution), otherwise falls back to `Date.now()`.\n *\n * @returns timestamp in milliseconds (relative for performance.now, epoch for Date.now)\n */\nexport function getPerformanceTimestamp(): number {\n return typeof performance !== 'undefined' ? performance.now() : Date.now()\n}\n\n/**\n * Create a simple duration reporter.\n *\n * Returns a function that, when called, reports the elapsed time since\n * `duration()` was called. The returned string is formatted via\n * `formatMilliseconds`.\n *\n * Example: const t = duration(); // do work...; console.log(t());\n *\n * @returns a zero-argument function that returns the elapsed time string\n */\nexport function duration(): () => string {\n const t0 = getPerformanceTimestamp()\n\n return function (): string {\n const duration = getPerformanceTimestamp() - t0\n return formatMilliseconds(duration)\n\n // if (duration > 500)\n // return `${(duration / 1000).toFixed(4)}s`\n\n // // https://elijahmanor.com/format-js-numbers\n // // https://tc39.es/proposal-unified-intl-numberformat/section6/locales-currencies-tz_proposed_out.html#sec-issanctionedsimpleunitidentifier\n // return duration.toLocaleString('en-US', {\n // style: 'unit',\n // unit: 'millisecond',\n // notation: 'compact',\n // compactDisplay: 'long',\n // })\n }\n}\n\n/**\n * If you parsed a date string that didn't include a time zone, adjust the\n * naive UTC components into a local Date with the same Y/M/D/H/M/S values.\n *\n * This effectively treats the input as if it already represented local time\n * and builds a corresponding Date using the local timezone.\n */\nexport function datetimeToLocal(fromDate: Date): Date {\n return new Date(\n fromDate.getUTCFullYear(),\n fromDate.getUTCMonth(),\n fromDate.getUTCDate(),\n fromDate.getUTCHours(),\n fromDate.getUTCMinutes(),\n fromDate.getUTCSeconds(),\n fromDate.getUTCMilliseconds(),\n )\n}\n\n/**\n * If you parsed a date string that didn't include a time zone, adjust the\n * local date components into a UTC Date with the same Y/M/D/H/M/S values.\n */\nexport function datetimeToUTC(fromDate: Date): Date {\n return new Date(Date.UTC(\n fromDate.getFullYear(),\n fromDate.getMonth(),\n fromDate.getDate(),\n fromDate.getHours(),\n fromDate.getMinutes(),\n fromDate.getSeconds(),\n fromDate.getMilliseconds(),\n ))\n}\n\n// const tsMs2000 = 946684800000 // same as Jan 11 1970 in ms\n// const tsMs2500 = 16725225600000 // same as Jul 13 1970 in ms\n// 1000000000000\n\n/**\n * Convert a timestamp in milliseconds to seconds.\n *\n * When `smart` is true the function will try to detect already-second\n * timestamps and return them unchanged (heuristic threshold). For example,\n * small numbers (< 1e12) are likely seconds and are returned as-is.\n *\n * @param ts - timestamp in milliseconds or seconds\n * @param smart - enable heuristic detection (default: true)\n * @returns timestamp in seconds\n */\nexport function timestampMillisecondsToSeconds(ts: number, smart = true): number {\n if (ts <= 0)\n return 0\n if (smart && ts < 1000000000000) { // TODO find a better threshold and add tests\n return ts\n // log.warn('Timestamp might already be in seconds?', ts)\n }\n return Math.floor(ts / 1000)\n}\n\n/**\n * Convert a timestamp in seconds to milliseconds.\n *\n * When `smart` is true the function tries to detect already-millisecond\n * values and returns them unchanged (heuristic threshold). Very large\n * numbers (> 1e12) are assumed to already be milliseconds.\n *\n * @param ts - timestamp in seconds or milliseconds\n * @param smart - enable heuristic detection (default: true)\n * @returns timestamp in milliseconds\n */\nexport function timestampSecondsToMilliseconds(ts: number, smart = true): number {\n if (ts <= 0)\n return 0\n if (smart && ts > 1000000000000) { // TODO find a better threshold and add tests\n return ts\n // log.warn('Timestamp might already be in milliseconds?', ts)\n }\n return Math.floor(ts * 1000)\n}\n\n/** Number of milliseconds in (approx.) one year (365 days). */\nexport const TIME_YEAR_MS = 31536000000 // 365 * 24 * 60 * 60 * 1000\n/** Number of seconds in (approx.) one year (365 days). */\nexport const TIME_YEAR_S = 31536000 // 365 * 24 * 60 * 60\n/** Number of milliseconds in (approx.) one month (30 days). */\nexport const TIME_MONTH_MS = 2592000000 // 30 * 24 * 60 * 60 * 1000\n/** Number of seconds in (approx.) one month (30 days). */\nexport const TIME_MONTH_S = 2592000 // 30 * 24 * 60 * 60\n/** Number of milliseconds in one week (7 days). */\nexport const TIME_WEEK_MS = 604800000 // 7 * 24 * 60 * 60 * 1000\n/** Number of seconds in one week (7 days). */\nexport const TIME_WEEK_S = 604800 // 7 * 24 * 60 * 60\n/** Number of milliseconds in one day (24 hours). */\nexport const TIME_DAY_MS = 86400000 // 24 * 60 * 60 * 1000\n/** Number of seconds in one day (24 hours). */\nexport const TIME_DAY_S = 86400 // 24 * 60 * 60\n/** Number of milliseconds in one hour (60 minutes). */\nexport const TIME_HOUR_MS = 3600000 // 60 * 60 * 1000\n/** Number of seconds in one hour (60 minutes). */\nexport const TIME_HOUR_S = 3600 // 60 * 60\n/** Number of milliseconds in one minute (60 seconds). */\nexport const TIME_MINUTE_MS = 60000 // 60 * 1000\n/** Number of seconds in one minute (60 seconds). */\nexport const TIME_MINUTE_S = 60 // 60\n"],"mappings":"wCAAA,IAAIA,EAUG,SAASC,EAAiBC,EAAK,KAAK,IAAI,IAAM,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAAG,CACtEF,EAAeE,CACjB,CAFgBC,EAAAF,EAAA,oBAYT,SAASG,GAAuB,CACrC,OAAOJ,GAAgB,KAAK,IAAI,CAClC,CAFgBG,EAAAC,EAAA,gBAYT,SAASC,GAAgC,CAC9C,OAAO,KAAK,MAAMD,EAAa,EAAI,GAAI,CACzC,CAFgBD,EAAAE,EAAA,yBAUT,SAASC,EAAgBJ,EAAkB,CAChD,OAAO,IAAI,KAAKA,EAAK,GAAI,CAC3B,CAFgBC,EAAAG,EAAA,mBAeT,SAASC,EAAmBC,EAAoB,CACrD,OAAOA,EAAK,IAAM,IAAIA,EAAK,KAAM,QAAQ,CAAC,CAAC,KAAO,GAAGA,EAAG,QAAQ,CAAC,CAAC,KACpE,CAFgBL,EAAAI,EAAA,sBAUT,SAASE,KACXC,EACe,CAClB,QAAWC,KAAiBD,EAAgB,CAC1C,GAAIC,aAAyB,KAC3B,OAAOA,EAET,GAAI,OAAOA,GAAkB,SAAU,CACrC,IAAIC,EAAO,KACX,GAAID,EAAc,SAAS,GAAG,EAC5B,GAAI,CACFC,EAAO,IAAI,KAAKD,CAAa,CAC/B,MACY,CAAC,CAEf,GAAI,EAAEC,aAAgB,MAAO,CAC3B,IAAMC,EAAI,2BAA2B,KAAKF,CAAa,EACnDE,IACFD,EAAO,IAAI,KAAK,CAACC,EAAE,CAAC,EAAG,CAACA,EAAE,CAAC,EAAI,EAAG,CAACA,EAAE,CAAC,EAAG,GAAI,CAAC,EAClD,CACA,GAAID,aAAgB,KAClB,OAAOA,CACX,CACF,CACF,CAxBgBT,EAAAM,EAAA,aAkCT,SAASK,GAAkC,CAChD,OAAO,OAAO,YAAgB,IAAc,YAAY,IAAI,EAAI,KAAK,IAAI,CAC3E,CAFgBX,EAAAW,EAAA,2BAeT,SAASC,GAAyB,CACvC,IAAMC,EAAKF,EAAwB,EAEnC,OAAO,UAAoB,CACzB,IAAMC,EAAWD,EAAwB,EAAIE,EAC7C,OAAOT,EAAmBQ,CAAQ,CAapC,CACF,CAnBgBZ,EAAAY,EAAA,YA4BT,SAASE,EAAgBC,EAAsB,CACpD,OAAO,IAAI,KACTA,EAAS,eAAe,EACxBA,EAAS,YAAY,EACrBA,EAAS,WAAW,EACpBA,EAAS,YAAY,EACrBA,EAAS,cAAc,EACvBA,EAAS,cAAc,EACvBA,EAAS,mBAAmB,CAC9B,CACF,CAVgBf,EAAAc,EAAA,mBAgBT,SAASE,EAAcD,EAAsB,CAClD,OAAO,IAAI,KAAK,KAAK,IACnBA,EAAS,YAAY,EACrBA,EAAS,SAAS,EAClBA,EAAS,QAAQ,EACjBA,EAAS,SAAS,EAClBA,EAAS,WAAW,EACpBA,EAAS,WAAW,EACpBA,EAAS,gBAAgB,CAC3B,CAAC,CACH,CAVgBf,EAAAgB,EAAA,iBA2BT,SAASC,EAA+BlB,EAAYmB,EAAQ,GAAc,CAC/E,OAAInB,GAAM,EACD,EACLmB,GAASnB,EAAK,KACTA,EAGF,KAAK,MAAMA,EAAK,GAAI,CAC7B,CARgBC,EAAAiB,EAAA,kCAqBT,SAASE,EAA+BpB,EAAYmB,EAAQ,GAAc,CAC/E,OAAInB,GAAM,EACD,EACLmB,GAASnB,EAAK,KACTA,EAGF,KAAK,MAAMA,EAAK,GAAI,CAC7B,CARgBC,EAAAmB,EAAA,kCAWT,IAAMC,EAAe,QAEfC,EAAc,QAEdC,EAAgB,OAEhBC,EAAe,OAEfC,EAAe,OAEfC,EAAc,OAEdC,EAAc,MAEdC,EAAa,MAEbC,EAAe,KAEfC,EAAc,KAEdC,EAAiB,IAEjBC,EAAgB","names":["testModeTime","setTimestampTest","ts","__name","getTimestamp","getTimestampInSeconds","dateFromSeconds","formatMilliseconds","ms","parseDate","dateCandidates","dateCandidate","date","m","getPerformanceTimestamp","duration","t0","datetimeToLocal","fromDate","datetimeToUTC","timestampMillisecondsToSeconds","smart","timestampSecondsToMilliseconds","TIME_YEAR_MS","TIME_YEAR_S","TIME_MONTH_MS","TIME_MONTH_S","TIME_WEEK_MS","TIME_WEEK_S","TIME_DAY_MS","TIME_DAY_S","TIME_HOUR_MS","TIME_HOUR_S","TIME_MINUTE_MS","TIME_MINUTE_S"]}
1
+ {"version":3,"sources":["../src/common/time.ts"],"sourcesContent":["import { base32ToNumber, numberToBase32 } from './data/math'\n\nlet testModeTime: number | undefined\n\n/**\n * Set a fixed timestamp (ms since epoch) used by `getTimestamp` for tests.\n *\n * Pass a millisecond timestamp (for example created with Date.UTC) to force\n * time-based helpers to return deterministic values during tests.\n *\n * @param ts - timestamp in milliseconds (defaults to 2000-01-01T00:00:00.000Z)\n */\nexport function setTimestampTest(ts = Date.UTC(2000, 0, 1, 0, 0, 0, 0)) {\n testModeTime = ts\n}\n\n/**\n * Return the current timestamp in milliseconds.\n *\n * In test mode (when `setTimestampTest` was called) the forced value is\n * returned instead of the real current time.\n *\n * @returns timestamp in milliseconds\n */\nexport function getTimestamp(): number {\n return testModeTime ?? Date.now()\n}\n\n/**\n * Return the current timestamp in seconds.\n *\n * Uses `getTimestamp()` which can be overridden for tests with\n * `setTimestampTest`.\n *\n * @returns timestamp in whole seconds (integer)\n */\nexport function getTimestampInSeconds(): number {\n return Math.floor(getTimestamp() / 1000)\n}\n\n/**\n * Convert a UNIX timestamp in seconds to a JavaScript Date.\n *\n * @param ts - seconds since epoch\n * @returns Date instance corresponding to the provided seconds\n */\nexport function dateFromSeconds(ts: number): Date {\n return new Date(ts * 1000)\n}\n\n// typeof performance !== \"undefined\" ? performance.now() : new Date().getTime()\n\n/**\n * Format a millisecond duration into a human readable string.\n *\n * - Values >= 1000ms are shown in seconds with one decimal (e.g. \"1.2 s\").\n * - Smaller values are shown in milliseconds with two decimals (e.g. \"123.45 ms\").\n *\n * @param ms - duration in milliseconds\n * @returns formatted duration string\n */\nexport function formatMilliseconds(ms: number): string {\n return ms > 999 ? `${(ms / 1000).toFixed(1)} s` : `${ms.toFixed(2)} ms`\n}\n\n/**\n * Parses the given date candidates and returns the first valid Date object found.\n *\n * @param dateCandidates - The date candidates to parse, which can be either strings or Date objects.\n * @returns The parsed Date object, or undefined if no valid date is found.\n */\nexport function parseDate(\n ...dateCandidates: (string | Date)[]\n): Date | undefined {\n for (const dateCandidate of dateCandidates) {\n if (dateCandidate instanceof Date)\n return dateCandidate\n\n if (typeof dateCandidate === 'string') {\n let date = null\n if (dateCandidate.includes(':')) {\n try {\n date = new Date(dateCandidate)\n }\n catch (err) {}\n }\n if (!(date instanceof Date)) {\n const m = /(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)/.exec(dateCandidate)\n if (m)\n date = new Date(+m[1], +m[2] - 1, +m[3], 12, 0)\n }\n if (date instanceof Date)\n return date\n }\n }\n}\n\n/**\n * Return a high-resolution timestamp in milliseconds.\n *\n * Uses the `performance.now()` clock when available (monotonic, high\n * resolution), otherwise falls back to `Date.now()`.\n *\n * @returns timestamp in milliseconds (relative for performance.now, epoch for Date.now)\n */\nexport function getPerformanceTimestamp(): number {\n return typeof performance !== 'undefined' ? performance.now() : Date.now()\n}\n\n/**\n * Create a simple duration reporter.\n *\n * Returns a function that, when called, reports the elapsed time since\n * `duration()` was called. The returned string is formatted via\n * `formatMilliseconds`.\n *\n * Example: const t = duration(); // do work...; console.log(t());\n *\n * @returns a zero-argument function that returns the elapsed time string\n */\nexport function duration(): () => string {\n const t0 = getPerformanceTimestamp()\n\n return function (): string {\n const duration = getPerformanceTimestamp() - t0\n return formatMilliseconds(duration)\n\n // if (duration > 500)\n // return `${(duration / 1000).toFixed(4)}s`\n\n // // https://elijahmanor.com/format-js-numbers\n // // https://tc39.es/proposal-unified-intl-numberformat/section6/locales-currencies-tz_proposed_out.html#sec-issanctionedsimpleunitidentifier\n // return duration.toLocaleString('en-US', {\n // style: 'unit',\n // unit: 'millisecond',\n // notation: 'compact',\n // compactDisplay: 'long',\n // })\n }\n}\n\n/**\n * If you parsed a date string that didn't include a time zone, adjust the\n * naive UTC components into a local Date with the same Y/M/D/H/M/S values.\n *\n * This effectively treats the input as if it already represented local time\n * and builds a corresponding Date using the local timezone.\n */\nexport function datetimeToLocal(fromDate: Date): Date {\n return new Date(\n fromDate.getUTCFullYear(),\n fromDate.getUTCMonth(),\n fromDate.getUTCDate(),\n fromDate.getUTCHours(),\n fromDate.getUTCMinutes(),\n fromDate.getUTCSeconds(),\n fromDate.getUTCMilliseconds(),\n )\n}\n\n/**\n * If you parsed a date string that didn't include a time zone, adjust the\n * local date components into a UTC Date with the same Y/M/D/H/M/S values.\n */\nexport function datetimeToUTC(fromDate: Date): Date {\n return new Date(Date.UTC(\n fromDate.getFullYear(),\n fromDate.getMonth(),\n fromDate.getDate(),\n fromDate.getHours(),\n fromDate.getMinutes(),\n fromDate.getSeconds(),\n fromDate.getMilliseconds(),\n ))\n}\n\n// const tsMs2000 = 946684800000 // same as Jan 11 1970 in ms\n// const tsMs2500 = 16725225600000 // same as Jul 13 1970 in ms\n// 1000000000000\n\n/**\n * Convert a timestamp in milliseconds to seconds.\n *\n * When `smart` is true the function will try to detect already-second\n * timestamps and return them unchanged (heuristic threshold). For example,\n * small numbers (< 1e12) are likely seconds and are returned as-is.\n *\n * @param ts - timestamp in milliseconds or seconds\n * @param smart - enable heuristic detection (default: true)\n * @returns timestamp in seconds\n */\nexport function timestampMillisecondsToSeconds(ts: number, smart = true): number {\n if (ts <= 0)\n return 0\n if (smart && ts < 1000000000000) { // TODO find a better threshold and add tests\n return ts\n // log.warn('Timestamp might already be in seconds?', ts)\n }\n return Math.floor(ts / 1000)\n}\n\n/**\n * Convert a timestamp in seconds to milliseconds.\n *\n * When `smart` is true the function tries to detect already-millisecond\n * values and returns them unchanged (heuristic threshold). Very large\n * numbers (> 1e12) are assumed to already be milliseconds.\n *\n * @param ts - timestamp in seconds or milliseconds\n * @param smart - enable heuristic detection (default: true)\n * @returns timestamp in milliseconds\n */\nexport function timestampSecondsToMilliseconds(ts: number, smart = true): number {\n if (ts <= 0)\n return 0\n if (smart && ts > 1000000000000) { // TODO find a better threshold and add tests\n return ts\n // log.warn('Timestamp might already be in milliseconds?', ts)\n }\n return Math.floor(ts * 1000)\n}\n\n/** Number of milliseconds in (approx.) one year (365 days). */\nexport const TIME_YEAR_MS = 31536000000 // 365 * 24 * 60 * 60 * 1000\n/** Number of seconds in (approx.) one year (365 days). */\nexport const TIME_YEAR_S = 31536000 // 365 * 24 * 60 * 60\n/** Number of milliseconds in (approx.) one month (30 days). */\nexport const TIME_MONTH_MS = 2592000000 // 30 * 24 * 60 * 60 * 1000\n/** Number of seconds in (approx.) one month (30 days). */\nexport const TIME_MONTH_S = 2592000 // 30 * 24 * 60 * 60\n/** Number of milliseconds in one week (7 days). */\nexport const TIME_WEEK_MS = 604800000 // 7 * 24 * 60 * 60 * 1000\n/** Number of seconds in one week (7 days). */\nexport const TIME_WEEK_S = 604800 // 7 * 24 * 60 * 60\n/** Number of milliseconds in one day (24 hours). */\nexport const TIME_DAY_MS = 86400000 // 24 * 60 * 60 * 1000\n/** Number of seconds in one day (24 hours). */\nexport const TIME_DAY_S = 86400 // 24 * 60 * 60\n/** Number of milliseconds in one hour (60 minutes). */\nexport const TIME_HOUR_MS = 3600000 // 60 * 60 * 1000\n/** Number of seconds in one hour (60 minutes). */\nexport const TIME_HOUR_S = 3600 // 60 * 60\n/** Number of milliseconds in one minute (60 seconds). */\nexport const TIME_MINUTE_MS = 60000 // 60 * 1000\n/** Number of seconds in one minute (60 seconds). */\nexport const TIME_MINUTE_S = 60 // 60\n\n// BUILD NUMBER\n\nconst buildNumberSeconds = 5\nconst buildNumberPadding = 6\nconst buildStartSeconds = 1735686000 // 2025-01-01\n\n/** Build number is minutes since 2025-01-01 in base32 \"agnoster\" encoded format */\nexport function getBuildNumber(): string {\n const buildNumber = Math.floor((getTimestampInSeconds() - buildStartSeconds) / buildNumberSeconds)\n return numberToBase32(buildNumber, buildNumberPadding)\n}\n\nexport function getSecondsFromBuildNumber(buildNumber: string): number {\n return buildStartSeconds + (base32ToNumber(buildNumber) * buildNumberSeconds)\n}\n"],"mappings":"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","names":["testModeTime","setTimestampTest","ts","__name","getTimestamp","getTimestampInSeconds","dateFromSeconds","formatMilliseconds","ms","parseDate","dateCandidates","dateCandidate","date","m","getPerformanceTimestamp","duration","t0","datetimeToLocal","fromDate","datetimeToUTC","timestampMillisecondsToSeconds","smart","timestampSecondsToMilliseconds","TIME_YEAR_MS","TIME_YEAR_S","TIME_MONTH_MS","TIME_MONTH_S","TIME_WEEK_MS","TIME_WEEK_S","TIME_DAY_MS","TIME_DAY_S","TIME_HOUR_MS","TIME_HOUR_S","TIME_MINUTE_MS","TIME_MINUTE_S","buildNumberSeconds","buildNumberPadding","buildStartSeconds","getBuildNumber","buildNumber","numberToBase32","getSecondsFromBuildNumber","base32ToNumber"]}
@@ -1,2 +1,2 @@
1
- import{g as o}from"./chunk-GA25YW67.js";import{J as n,L as e}from"./chunk-PDYLHAQH.js";import{a as i}from"./chunk-5NKC2EQJ.js";function p(t){if(t.startsWith("data:"))return e(t.split(",",2)[1])}i(p,"dataUriToUint8Array");function d(t){if(t.startsWith("data:"))return t.slice(5).split(",",2)[0]}i(d,"dataUriToMimeType");function l(t){if(t.startsWith("data:")){let[r,a]=t.slice(5).split(",",2),s=e(a).slice().buffer;return new Blob([s],{type:r})}}i(l,"dataUriToBlob");async function b(t){let r=await o(t);if(r)return`data:${t.type},${n(r)}`}i(b,"blobToDataUri");function m(t,r="application/octet-stream"){return`data:${r},${n(t)}`}i(m,"Uint8ArrayToDataUri");export{p as a,d as b,l as c,b as d,m as e};
2
- //# sourceMappingURL=chunk-V4SVIQPH.js.map
1
+ import{g as o}from"./chunk-ZDQVDIAV.js";import{J as n,L as e}from"./chunk-MQSBNNXA.js";import{a as i}from"./chunk-5NKC2EQJ.js";function p(t){if(t.startsWith("data:"))return e(t.split(",",2)[1])}i(p,"dataUriToUint8Array");function d(t){if(t.startsWith("data:"))return t.slice(5).split(",",2)[0]}i(d,"dataUriToMimeType");function l(t){if(t.startsWith("data:")){let[r,a]=t.slice(5).split(",",2),s=e(a).slice().buffer;return new Blob([s],{type:r})}}i(l,"dataUriToBlob");async function b(t){let r=await o(t);if(r)return`data:${t.type},${n(r)}`}i(b,"blobToDataUri");function m(t,r="application/octet-stream"){return`data:${r},${n(t)}`}i(m,"Uint8ArrayToDataUri");export{p as a,d as b,l as c,b as d,m as e};
2
+ //# sourceMappingURL=chunk-7E3NXFJW.js.map
@@ -1,2 +1,2 @@
1
- import{a as y}from"./chunk-F2B4OXR3.js";import{a as d}from"./chunk-FG7OTMAN.js";import{a as L}from"./chunk-YW3IERPU.js";import{b as $,d as v}from"./chunk-6RPT24RD.js";import{c as p,d as u,e as g}from"./chunk-RZR3ECDT.js";import{b as i,e as h}from"./chunk-EN6IMU3D.js";import{a as m}from"./chunk-5NKC2EQJ.js";function T(n={}){let a='font-family: "JetBrains Mono", Menlo; font-size: 11px;',b=`${a}`,H=`font-weight: 600; ${a}`,w=y(),c={},k=i(),{filter:C=void 0,level:M=void 0,colors:B=!0,padding:D=16,time:E=!0}=n,F=$(C),N=v(M),l=L();return l?o=>{if(!N(o.level)||!F(o.name))return;let f=E?`+${h(i()-k)}`:"",r=o.name||"",s=c[r||""];s==null&&(s={color:d(r)},c[r]=s);let e;switch(D>0&&(r=r.padEnd(16," ")),B&&w?(e=[`%c${r}%c %s %c${f}`],e.push(`color:${s.color}; ${H}`),e.push(b),e.push(o.messages?.[0]??""),e.push(`color:${s.color};`),e.push(...o.messages.slice(1))):e=[r,...o.messages,`+${f}`],e=e.map(t=>t instanceof Uint8Array?`<Uint8Array size=${t.length}>`:t),o.level){case 1:n.levelHelper&&(e[0]=`I|* ${e[0]}`),l.info(...e);break;case 2:n.levelHelper&&(e[0]=`W|** ${e[0]}`),l.warn(...e);break;case 3:n.levelHelper&&(e[0]=`E|*** ${e[0]}`),l.error(...e);break;default:n.levelHelper&&(e[0]=`D| ${e[0]}`),l.debug(...e);break}}:()=>{}}m(T,"LoggerBrowserHandler");export{T as a};
2
- //# sourceMappingURL=chunk-GEU6RNVE.js.map
1
+ import{a as y}from"./chunk-F2B4OXR3.js";import{a as d}from"./chunk-FG7OTMAN.js";import{a as L}from"./chunk-YW3IERPU.js";import{b as $,d as v}from"./chunk-6RPT24RD.js";import{c as p,d as u,e as g}from"./chunk-RZR3ECDT.js";import{b as i,e as h}from"./chunk-73A2QE6J.js";import{a as m}from"./chunk-5NKC2EQJ.js";function T(n={}){let a='font-family: "JetBrains Mono", Menlo; font-size: 11px;',b=`${a}`,H=`font-weight: 600; ${a}`,w=y(),c={},k=i(),{filter:C=void 0,level:M=void 0,colors:B=!0,padding:D=16,time:E=!0}=n,F=$(C),N=v(M),l=L();return l?o=>{if(!N(o.level)||!F(o.name))return;let f=E?`+${h(i()-k)}`:"",r=o.name||"",s=c[r||""];s==null&&(s={color:d(r)},c[r]=s);let e;switch(D>0&&(r=r.padEnd(16," ")),B&&w?(e=[`%c${r}%c %s %c${f}`],e.push(`color:${s.color}; ${H}`),e.push(b),e.push(o.messages?.[0]??""),e.push(`color:${s.color};`),e.push(...o.messages.slice(1))):e=[r,...o.messages,`+${f}`],e=e.map(t=>t instanceof Uint8Array?`<Uint8Array size=${t.length}>`:t),o.level){case 1:n.levelHelper&&(e[0]=`I|* ${e[0]}`),l.info(...e);break;case 2:n.levelHelper&&(e[0]=`W|** ${e[0]}`),l.warn(...e);break;case 3:n.levelHelper&&(e[0]=`E|*** ${e[0]}`),l.error(...e);break;default:n.levelHelper&&(e[0]=`D| ${e[0]}`),l.debug(...e);break}}:()=>{}}m(T,"LoggerBrowserHandler");export{T as a};
2
+ //# sourceMappingURL=chunk-7G5UU2PZ.js.map