zeed 0.28.9 → 0.28.10

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 (439) hide show
  1. package/dist/browser/base64.cjs.map +1 -1
  2. package/dist/browser/gravatar.cjs.map +1 -1
  3. package/dist/browser/index.cjs.map +1 -1
  4. package/dist/browser/localstorage.cjs.map +1 -1
  5. package/dist/browser/log/index.cjs.map +1 -1
  6. package/dist/browser/log/log-browser-factory.cjs.map +1 -1
  7. package/dist/browser/log/log-browser.cjs.map +1 -1
  8. package/dist/browser/log/log-colors.cjs.map +1 -1
  9. package/dist/browser/log/log-context-browser.cjs.map +1 -1
  10. package/dist/{chunk-C3QCEKO3.js → chunk-25WKPUPK.js} +2 -2
  11. package/dist/chunk-26J4SA3M.cjs.map +1 -1
  12. package/dist/chunk-2FUSCDBB.cjs.map +1 -1
  13. package/dist/chunk-2RBU7QFL.cjs.map +1 -1
  14. package/dist/chunk-2YTY5X3S.cjs.map +1 -1
  15. package/dist/{chunk-E3TYSVBQ.js → chunk-37WX4OII.js} +2 -2
  16. package/dist/{chunk-PIL7UROH.js → chunk-3DMNIQDX.js} +2 -2
  17. package/dist/chunk-3DMNIQDX.js.map +1 -0
  18. package/dist/chunk-3FLO2VXX.cjs.map +1 -1
  19. package/dist/chunk-3O7Y3U7Y.cjs.map +1 -1
  20. package/dist/chunk-3TNVJY4F.cjs.map +1 -1
  21. package/dist/chunk-3VEGCRLF.cjs.map +1 -1
  22. package/dist/chunk-4B2XCWGL.cjs.map +1 -1
  23. package/dist/chunk-4SKL5XXG.cjs.map +1 -1
  24. package/dist/{chunk-DJINTZFD.cjs → chunk-5BBJL6OC.cjs} +2 -2
  25. package/dist/chunk-5BBJL6OC.cjs.map +1 -0
  26. package/dist/chunk-5CHPHDA5.cjs.map +1 -1
  27. package/dist/chunk-5P4XZHKJ.cjs.map +1 -1
  28. package/dist/{chunk-JSFCIROJ.js → chunk-5TJTQRWT.js} +2 -2
  29. package/dist/chunk-5VHLMAKU.cjs.map +1 -1
  30. package/dist/chunk-5W7DNVOJ.cjs.map +1 -1
  31. package/dist/chunk-6HCJ6MJQ.cjs.map +1 -1
  32. package/dist/chunk-6U6Q5CBH.cjs.map +1 -1
  33. package/dist/chunk-6XH2AGIH.cjs.map +1 -1
  34. package/dist/chunk-6ZLJSWLM.cjs.map +1 -1
  35. package/dist/chunk-724WHMXL.cjs.map +1 -1
  36. package/dist/chunk-76UOP7N2.cjs.map +1 -1
  37. package/dist/chunk-7ADMZQFX.cjs.map +1 -1
  38. package/dist/chunk-7N5S4JIQ.cjs.map +1 -1
  39. package/dist/{chunk-E2ATUVME.cjs → chunk-7SVWAR6H.cjs} +1 -1
  40. package/dist/chunk-7SVWAR6H.cjs.map +1 -0
  41. package/dist/chunk-7WEQTYF3.cjs.map +1 -1
  42. package/dist/chunk-AT5AILNI.cjs.map +1 -1
  43. package/dist/chunk-BBLSC52Q.cjs.map +1 -1
  44. package/dist/chunk-BL6UEZLA.cjs.map +1 -1
  45. package/dist/chunk-BNMSTFVY.cjs.map +1 -1
  46. package/dist/chunk-BNWABQDO.cjs.map +1 -1
  47. package/dist/{chunk-R7USC6WF.cjs → chunk-BOM3HKWA.cjs} +2 -2
  48. package/dist/chunk-BOM3HKWA.cjs.map +1 -0
  49. package/dist/chunk-BP5KZK4I.cjs.map +1 -1
  50. package/dist/{chunk-5GO3AK4J.cjs → chunk-BPESVGQQ.cjs} +2 -2
  51. package/dist/chunk-BPESVGQQ.cjs.map +1 -0
  52. package/dist/chunk-BYFGE7MW.cjs.map +1 -1
  53. package/dist/chunk-C3NS435H.cjs.map +1 -1
  54. package/dist/chunk-CDRKVTXH.cjs.map +1 -1
  55. package/dist/chunk-CFF4Z5HZ.cjs.map +1 -1
  56. package/dist/chunk-CR2WSRFB.cjs.map +1 -1
  57. package/dist/chunk-CW7OVU6D.cjs.map +1 -1
  58. package/dist/chunk-D3MBR5LJ.cjs.map +1 -1
  59. package/dist/chunk-D5MT7SAA.cjs.map +1 -1
  60. package/dist/{chunk-SA5MSIRV.cjs → chunk-DIIKUZU5.cjs} +2 -2
  61. package/dist/chunk-DIIKUZU5.cjs.map +1 -0
  62. package/dist/chunk-DUTK2D77.cjs.map +1 -1
  63. package/dist/chunk-DVSS4UAR.cjs.map +1 -1
  64. package/dist/{chunk-N7JQO6FG.cjs → chunk-DY6RMJJK.cjs} +2 -2
  65. package/dist/chunk-DY6RMJJK.cjs.map +1 -0
  66. package/dist/chunk-ECVG4NHM.cjs.map +1 -1
  67. package/dist/chunk-ERHUQJ6A.cjs.map +1 -1
  68. package/dist/chunk-FQ2HVUI7.cjs.map +1 -1
  69. package/dist/chunk-FWJ2ABR5.cjs.map +1 -1
  70. package/dist/chunk-G3QVU7BW.cjs.map +1 -1
  71. package/dist/{chunk-QV4LM6ZT.cjs → chunk-GEMIICZ3.cjs} +2 -2
  72. package/dist/chunk-GEMIICZ3.cjs.map +1 -0
  73. package/dist/{chunk-M3BNDEQI.js → chunk-GLXW4DRV.js} +2 -2
  74. package/dist/{chunk-3U2QR5SP.js → chunk-GMJXOP7Z.js} +2 -2
  75. package/dist/{chunk-FPI3N3JC.js → chunk-GO7IQI3W.js} +1 -1
  76. package/dist/chunk-GO7IQI3W.js.map +1 -0
  77. package/dist/{chunk-HT2VGSOC.cjs → chunk-GP2HHSPI.cjs} +2 -2
  78. package/dist/chunk-GP2HHSPI.cjs.map +1 -0
  79. package/dist/chunk-HBZHLYXW.cjs.map +1 -1
  80. package/dist/chunk-HEYAOG5D.cjs.map +1 -1
  81. package/dist/chunk-IGZA77TR.cjs.map +1 -1
  82. package/dist/{chunk-6Y7WTQVG.js → chunk-J2KIRUQO.js} +2 -2
  83. package/dist/chunk-JVWHUOOY.cjs.map +1 -1
  84. package/dist/{chunk-WVAB6E4Q.js → chunk-KBV6B6VE.js} +2 -2
  85. package/dist/{chunk-T2E5T2ZQ.js → chunk-KGZLR63U.js} +2 -2
  86. package/dist/{chunk-KPSXJ3IJ.js → chunk-KITREJ2W.js} +2 -2
  87. package/dist/chunk-KPU7ZOUH.cjs.map +1 -1
  88. package/dist/{chunk-ZQYZWX6Y.cjs → chunk-KQGJRV27.cjs} +1 -1
  89. package/dist/chunk-KQGJRV27.cjs.map +1 -0
  90. package/dist/chunk-KWBPYDJC.cjs.map +1 -1
  91. package/dist/chunk-KZUVW6PP.cjs.map +1 -1
  92. package/dist/chunk-L5JQFMTK.cjs.map +1 -1
  93. package/dist/chunk-L5XYQBG4.cjs.map +1 -1
  94. package/dist/chunk-L6SDCMB4.cjs.map +1 -1
  95. package/dist/{chunk-AAHTORMI.js → chunk-LG6Q6ZYH.js} +2 -2
  96. package/dist/chunk-LKCAGRU7.cjs.map +1 -1
  97. package/dist/{chunk-PUVQJAUJ.cjs → chunk-LQA56AWJ.cjs} +2 -2
  98. package/dist/chunk-LQA56AWJ.cjs.map +1 -0
  99. package/dist/chunk-MJLJAWQU.cjs.map +1 -1
  100. package/dist/chunk-MPPDQFG7.js +3 -0
  101. package/dist/{chunk-JBJQF5IR.js.map → chunk-MPPDQFG7.js.map} +1 -1
  102. package/dist/chunk-MVTKILPI.cjs.map +1 -1
  103. package/dist/chunk-MZOAQKNJ.cjs.map +1 -1
  104. package/dist/chunk-N7XQZD7O.cjs.map +1 -1
  105. package/dist/{chunk-C4UETAZW.cjs → chunk-NIOT5ALA.cjs} +2 -2
  106. package/dist/chunk-NIOT5ALA.cjs.map +1 -0
  107. package/dist/chunk-NU2LARFE.cjs.map +1 -1
  108. package/dist/chunk-NV7ABJAH.cjs.map +1 -1
  109. package/dist/chunk-OGNEGHHJ.cjs.map +1 -1
  110. package/dist/chunk-OR7Q7U5S.cjs.map +1 -1
  111. package/dist/chunk-ORA3J2SQ.cjs.map +1 -1
  112. package/dist/chunk-OSJGUOU2.cjs.map +1 -1
  113. package/dist/chunk-OYAZQOT3.cjs.map +1 -1
  114. package/dist/{chunk-GSJ54UTH.cjs → chunk-P67NJXJB.cjs} +2 -2
  115. package/dist/chunk-P67NJXJB.cjs.map +1 -0
  116. package/dist/chunk-P75EIP44.cjs.map +1 -1
  117. package/dist/{chunk-GEV3TRDQ.js → chunk-PBG65NPI.js} +2 -2
  118. package/dist/chunk-PBHNRC5D.cjs.map +1 -1
  119. package/dist/chunk-PQCBHUC4.cjs.map +1 -1
  120. package/dist/chunk-PVD4WJLP.cjs.map +1 -1
  121. package/dist/chunk-PWWR4H26.cjs.map +1 -1
  122. package/dist/chunk-Q2SNIYQS.cjs.map +1 -1
  123. package/dist/chunk-QQLWSF3G.cjs.map +1 -1
  124. package/dist/chunk-QSTP2ZQT.cjs.map +1 -1
  125. package/dist/{chunk-YFV2QQVE.cjs → chunk-QZD36HZL.cjs} +2 -2
  126. package/dist/chunk-QZD36HZL.cjs.map +1 -0
  127. package/dist/chunk-RCH2BZO5.cjs.map +1 -1
  128. package/dist/{chunk-RYOPEKWG.cjs → chunk-RCT2GXKQ.cjs} +2 -2
  129. package/dist/chunk-RCT2GXKQ.cjs.map +1 -0
  130. package/dist/chunk-RWZACGJO.js +4 -0
  131. package/dist/chunk-RWZACGJO.js.map +1 -0
  132. package/dist/{chunk-TGIYHPPX.js → chunk-S2TSPHHP.js} +2 -2
  133. package/dist/chunk-S43EDRFK.cjs.map +1 -1
  134. package/dist/chunk-SAYZWFMV.cjs.map +1 -1
  135. package/dist/chunk-SDCEAQZX.cjs.map +1 -1
  136. package/dist/chunk-SEQAFKIV.cjs.map +1 -1
  137. package/dist/chunk-STAFIEKA.cjs.map +1 -1
  138. package/dist/{chunk-KTKS43F6.js → chunk-SUPJG4Y2.js} +2 -2
  139. package/dist/chunk-T6G6S6LA.cjs.map +1 -1
  140. package/dist/chunk-TAUWRIFY.cjs.map +1 -1
  141. package/dist/chunk-TRLTZEHW.cjs.map +1 -1
  142. package/dist/chunk-TS2ABSYW.cjs.map +1 -1
  143. package/dist/chunk-TXKYNYVG.cjs.map +1 -1
  144. package/dist/chunk-U3RSWYDX.cjs.map +1 -1
  145. package/dist/chunk-ULLUQLTA.cjs.map +1 -1
  146. package/dist/chunk-UWCE23Z7.cjs +2 -0
  147. package/dist/chunk-UWCE23Z7.cjs.map +1 -0
  148. package/dist/{chunk-VWGZLMDY.cjs → chunk-V7KEBZAU.cjs} +2 -2
  149. package/dist/chunk-V7KEBZAU.cjs.map +1 -0
  150. package/dist/chunk-VFR5TEQE.cjs.map +1 -1
  151. package/dist/chunk-VHPUN6W2.cjs.map +1 -1
  152. package/dist/chunk-VMGJFJIM.cjs.map +1 -1
  153. package/dist/chunk-VSXOJYNZ.cjs.map +1 -1
  154. package/dist/chunk-W4EPLFUE.cjs.map +1 -1
  155. package/dist/{chunk-Z6XHALPL.js → chunk-WF2FLXJD.js} +2 -2
  156. package/dist/chunk-WGYEX7AJ.cjs.map +1 -1
  157. package/dist/chunk-WIUZ5ACA.cjs.map +1 -1
  158. package/dist/chunk-WPWV7ZEM.cjs.map +1 -1
  159. package/dist/chunk-WR5SBVCT.cjs.map +1 -1
  160. package/dist/chunk-WR6QCC7M.cjs.map +1 -1
  161. package/dist/{chunk-5FLXL7Q3.cjs → chunk-X375623D.cjs} +2 -2
  162. package/dist/chunk-X375623D.cjs.map +1 -0
  163. package/dist/chunk-X4RCMSVN.cjs.map +1 -1
  164. package/dist/chunk-X75HL5HY.cjs.map +1 -1
  165. package/dist/chunk-XHBPFXWQ.cjs.map +1 -1
  166. package/dist/chunk-XRSSOHB3.cjs.map +1 -1
  167. package/dist/chunk-XT67IKLC.cjs.map +1 -1
  168. package/dist/chunk-Y4CZHSBV.cjs.map +1 -1
  169. package/dist/chunk-YKQSST44.cjs.map +1 -1
  170. package/dist/chunk-YTBSAWWU.cjs.map +1 -1
  171. package/dist/chunk-ZCZ6PN5V.cjs.map +1 -1
  172. package/dist/chunk-ZZWW5TC5.cjs +4 -0
  173. package/dist/chunk-ZZWW5TC5.cjs.map +1 -0
  174. package/dist/common/assert.cjs.map +1 -1
  175. package/dist/common/bin/index.cjs +1 -1
  176. package/dist/common/bin/index.cjs.map +1 -1
  177. package/dist/common/bin/index.js +1 -1
  178. package/dist/common/bin/lib0/binary.cjs.map +1 -1
  179. package/dist/common/bin/lib0/buffer.cjs +1 -1
  180. package/dist/common/bin/lib0/buffer.cjs.map +1 -1
  181. package/dist/common/bin/lib0/buffer.js +1 -1
  182. package/dist/common/bin/lib0/create.cjs.map +1 -1
  183. package/dist/common/bin/lib0/decoding.cjs +1 -1
  184. package/dist/common/bin/lib0/decoding.cjs.map +1 -1
  185. package/dist/common/bin/lib0/decoding.js +1 -1
  186. package/dist/common/bin/lib0/encoding.cjs +1 -1
  187. package/dist/common/bin/lib0/encoding.cjs.map +1 -1
  188. package/dist/common/bin/lib0/encoding.js +1 -1
  189. package/dist/common/bin/lib0/string.cjs.map +1 -1
  190. package/dist/common/crypto/aes-sealed.cjs.map +1 -1
  191. package/dist/common/crypto/crypto.cjs.map +1 -1
  192. package/dist/common/crypto/index.cjs.map +1 -1
  193. package/dist/common/crypto/xaes.cjs.map +1 -1
  194. package/dist/common/csv.cjs.map +1 -1
  195. package/dist/common/data/array.cjs.map +1 -1
  196. package/dist/common/data/basex-secure.cjs.map +1 -1
  197. package/dist/common/data/basex.cjs.map +1 -1
  198. package/dist/common/data/bin.cjs.map +1 -1
  199. package/dist/common/data/camelcase.cjs.map +1 -1
  200. package/dist/common/data/convert.cjs.map +1 -1
  201. package/dist/common/data/datauri.cjs +1 -1
  202. package/dist/common/data/datauri.cjs.map +1 -1
  203. package/dist/common/data/datauri.js +1 -1
  204. package/dist/common/data/day-legacy.cjs.map +1 -1
  205. package/dist/common/data/day.cjs.map +1 -1
  206. package/dist/common/data/decimal.cjs.map +1 -1
  207. package/dist/common/data/deep.cjs.map +1 -1
  208. package/dist/common/data/diff.cjs.map +1 -1
  209. package/dist/common/data/distributed.cjs.map +1 -1
  210. package/dist/common/data/format.cjs.map +1 -1
  211. package/dist/common/data/html.cjs.map +1 -1
  212. package/dist/common/data/index.cjs +1 -1
  213. package/dist/common/data/index.cjs.map +1 -1
  214. package/dist/common/data/index.js +1 -1
  215. package/dist/common/data/is.cjs.map +1 -1
  216. package/dist/common/data/json.cjs.map +1 -1
  217. package/dist/common/data/list.cjs.map +1 -1
  218. package/dist/common/data/lru.cjs.map +1 -1
  219. package/dist/common/data/math.cjs.map +1 -1
  220. package/dist/common/data/message.cjs.map +1 -1
  221. package/dist/common/data/object-changes.cjs.map +1 -1
  222. package/dist/common/data/object.cjs.map +1 -1
  223. package/dist/common/data/orderby.cjs.map +1 -1
  224. package/dist/common/data/path.cjs.map +1 -1
  225. package/dist/common/data/regexp.cjs.map +1 -1
  226. package/dist/common/data/rounding.cjs.map +1 -1
  227. package/dist/common/data/signal.cjs.map +1 -1
  228. package/dist/common/data/sortable.cjs.map +1 -1
  229. package/dist/common/data/sorted.cjs.map +1 -1
  230. package/dist/common/data/string-deburr.cjs.map +1 -1
  231. package/dist/common/data/string-hash-fnv.cjs.map +1 -1
  232. package/dist/common/data/string-hash-pool.cjs.map +1 -1
  233. package/dist/common/data/url.cjs.map +1 -1
  234. package/dist/common/data/utils.cjs.map +1 -1
  235. package/dist/common/data/wordlist.cjs.map +1 -1
  236. package/dist/common/data/xrx.cjs.map +1 -1
  237. package/dist/common/dispose-defer.cjs.map +1 -1
  238. package/dist/common/dispose-types.cjs.map +1 -1
  239. package/dist/common/dispose-utils.cjs.map +1 -1
  240. package/dist/common/exec/index.cjs +1 -1
  241. package/dist/common/exec/index.cjs.map +1 -1
  242. package/dist/common/exec/index.d.cts +1 -0
  243. package/dist/common/exec/index.d.ts +1 -0
  244. package/dist/common/exec/index.js +1 -1
  245. package/dist/common/exec/mutex.cjs.map +1 -1
  246. package/dist/common/exec/pool.cjs +1 -1
  247. package/dist/common/exec/pool.cjs.map +1 -1
  248. package/dist/common/exec/pool.d.cts +1 -0
  249. package/dist/common/exec/pool.d.ts +1 -0
  250. package/dist/common/exec/pool.js +1 -1
  251. package/dist/common/exec/progress.cjs +1 -1
  252. package/dist/common/exec/progress.cjs.map +1 -1
  253. package/dist/common/exec/progress.d.cts +1 -0
  254. package/dist/common/exec/progress.d.ts +1 -0
  255. package/dist/common/exec/progress.js +1 -1
  256. package/dist/common/exec/promise.cjs.map +1 -1
  257. package/dist/common/exec/queue.cjs +1 -1
  258. package/dist/common/exec/queue.cjs.map +1 -1
  259. package/dist/common/exec/queue.d.cts +1 -0
  260. package/dist/common/exec/queue.d.ts +1 -0
  261. package/dist/common/exec/queue.js +1 -1
  262. package/dist/common/exec/throttle-debounce.cjs.map +1 -1
  263. package/dist/common/global.cjs.map +1 -1
  264. package/dist/common/index.cjs +1 -1
  265. package/dist/common/index.cjs.map +1 -1
  266. package/dist/common/index.js +1 -1
  267. package/dist/common/localhost.cjs.map +1 -1
  268. package/dist/common/log/index.cjs.map +1 -1
  269. package/dist/common/log/log-base.cjs.map +1 -1
  270. package/dist/common/log/log-colors.cjs.map +1 -1
  271. package/dist/common/log/log-config.cjs.map +1 -1
  272. package/dist/common/log/log-console-capture.cjs.map +1 -1
  273. package/dist/common/log/log-console-original.cjs.map +1 -1
  274. package/dist/common/log/log-console.cjs.map +1 -1
  275. package/dist/common/log/log-context.cjs.map +1 -1
  276. package/dist/common/log/log-filter.cjs.map +1 -1
  277. package/dist/common/log/log-memory.cjs.map +1 -1
  278. package/dist/common/log/log-noop.cjs.map +1 -1
  279. package/dist/common/log/log.cjs.map +1 -1
  280. package/dist/common/msg/channel-debug.cjs +1 -1
  281. package/dist/common/msg/channel-debug.cjs.map +1 -1
  282. package/dist/common/msg/channel-debug.d.cts +1 -0
  283. package/dist/common/msg/channel-debug.d.ts +1 -0
  284. package/dist/common/msg/channel-debug.js +1 -1
  285. package/dist/common/msg/channel-local.cjs +1 -1
  286. package/dist/common/msg/channel-local.cjs.map +1 -1
  287. package/dist/common/msg/channel-local.d.cts +1 -0
  288. package/dist/common/msg/channel-local.d.ts +1 -0
  289. package/dist/common/msg/channel-local.js +1 -1
  290. package/dist/common/msg/channel-resilient.cjs +1 -1
  291. package/dist/common/msg/channel-resilient.cjs.map +1 -1
  292. package/dist/common/msg/channel-resilient.d.cts +1 -0
  293. package/dist/common/msg/channel-resilient.d.ts +1 -0
  294. package/dist/common/msg/channel-resilient.js +1 -1
  295. package/dist/common/msg/channel.cjs +1 -1
  296. package/dist/common/msg/channel.cjs.map +1 -1
  297. package/dist/common/msg/channel.d.cts +1 -0
  298. package/dist/common/msg/channel.d.ts +1 -0
  299. package/dist/common/msg/channel.js +1 -1
  300. package/dist/common/msg/emitter.cjs.map +1 -1
  301. package/dist/common/msg/emitter.d.cts +1 -0
  302. package/dist/common/msg/emitter.d.ts +1 -0
  303. package/dist/common/msg/encoder.cjs.map +1 -1
  304. package/dist/common/msg/index.cjs +1 -1
  305. package/dist/common/msg/index.cjs.map +1 -1
  306. package/dist/common/msg/index.d.cts +1 -0
  307. package/dist/common/msg/index.d.ts +1 -0
  308. package/dist/common/msg/index.js +1 -1
  309. package/dist/common/msg/messages.cjs +1 -1
  310. package/dist/common/msg/messages.cjs.map +1 -1
  311. package/dist/common/msg/messages.d.cts +1 -0
  312. package/dist/common/msg/messages.d.ts +1 -0
  313. package/dist/common/msg/messages.js +1 -1
  314. package/dist/common/msg/pipe.cjs.map +1 -1
  315. package/dist/common/msg/pubsub.cjs +1 -1
  316. package/dist/common/msg/pubsub.cjs.map +1 -1
  317. package/dist/common/msg/pubsub.d.cts +1 -0
  318. package/dist/common/msg/pubsub.d.ts +1 -0
  319. package/dist/common/msg/pubsub.js +1 -1
  320. package/dist/common/msg/rpc.cjs.map +1 -1
  321. package/dist/common/network.cjs.map +1 -1
  322. package/dist/common/platform.cjs.map +1 -1
  323. package/dist/common/schema/export-swift.cjs +1 -1
  324. package/dist/common/schema/export-swift.cjs.map +1 -1
  325. package/dist/common/schema/export-swift.d.cts +1 -0
  326. package/dist/common/schema/export-swift.d.ts +1 -0
  327. package/dist/common/schema/export-swift.js +1 -1
  328. package/dist/common/schema/export-typescript.cjs.map +1 -1
  329. package/dist/common/schema/index.cjs +1 -1
  330. package/dist/common/schema/index.cjs.map +1 -1
  331. package/dist/common/schema/index.js +1 -1
  332. package/dist/common/schema/parse-args.cjs +1 -1
  333. package/dist/common/schema/parse-args.cjs.map +1 -1
  334. package/dist/common/schema/parse-args.js +1 -1
  335. package/dist/common/schema/parse-env.cjs +1 -1
  336. package/dist/common/schema/parse-env.cjs.map +1 -1
  337. package/dist/common/schema/parse-env.d.cts +5 -0
  338. package/dist/common/schema/parse-env.d.ts +5 -0
  339. package/dist/common/schema/parse-env.js +1 -1
  340. package/dist/common/schema/schema.cjs +1 -1
  341. package/dist/common/schema/schema.cjs.map +1 -1
  342. package/dist/common/schema/schema.d.cts +1 -0
  343. package/dist/common/schema/schema.d.ts +1 -0
  344. package/dist/common/schema/schema.js +1 -1
  345. package/dist/common/schema/type-test.cjs.map +1 -1
  346. package/dist/common/schema/utils.cjs.map +1 -1
  347. package/dist/common/storage/index.cjs.map +1 -1
  348. package/dist/common/storage/memstorage.cjs.map +1 -1
  349. package/dist/common/time.cjs.map +1 -1
  350. package/dist/common/timeout.cjs.map +1 -1
  351. package/dist/common/types.cjs.map +1 -1
  352. package/dist/common/utils.cjs.map +1 -1
  353. package/dist/common/uuid.cjs +1 -1
  354. package/dist/common/uuid.cjs.map +1 -1
  355. package/dist/common/uuid.js +1 -1
  356. package/dist/index.all.cjs +1 -1
  357. package/dist/index.all.cjs.map +1 -1
  358. package/dist/index.all.js +1 -1
  359. package/dist/index.browser.cjs +1 -1
  360. package/dist/index.browser.cjs.map +1 -1
  361. package/dist/index.browser.js +1 -1
  362. package/dist/index.node.cjs +1 -1
  363. package/dist/index.node.cjs.map +1 -1
  364. package/dist/index.node.js +1 -1
  365. package/dist/node/args.cjs.map +1 -1
  366. package/dist/node/clipboard.cjs.map +1 -1
  367. package/dist/node/crypto.cjs.map +1 -1
  368. package/dist/node/env.cjs.map +1 -1
  369. package/dist/node/files-async.cjs.map +1 -1
  370. package/dist/node/files.cjs.map +1 -1
  371. package/dist/node/filestorage.cjs.map +1 -1
  372. package/dist/node/fs.cjs.map +1 -1
  373. package/dist/node/glob.cjs.map +1 -1
  374. package/dist/node/index.cjs.map +1 -1
  375. package/dist/node/log/index.cjs.map +1 -1
  376. package/dist/node/log/log-context-node.cjs.map +1 -1
  377. package/dist/node/log/log-file.cjs.map +1 -1
  378. package/dist/node/log/log-node.cjs.map +1 -1
  379. package/dist/node/log/log-util.cjs.map +1 -1
  380. package/dist/node/open-browser.cjs.map +1 -1
  381. package/dist/shim-window.d.cjs.map +1 -1
  382. package/package.json +20 -18
  383. package/dist/chunk-5FLXL7Q3.cjs.map +0 -1
  384. package/dist/chunk-5GO3AK4J.cjs.map +0 -1
  385. package/dist/chunk-C4UETAZW.cjs.map +0 -1
  386. package/dist/chunk-DJINTZFD.cjs.map +0 -1
  387. package/dist/chunk-E2ATUVME.cjs.map +0 -1
  388. package/dist/chunk-FPI3N3JC.js.map +0 -1
  389. package/dist/chunk-GSJ54UTH.cjs.map +0 -1
  390. package/dist/chunk-HT2VGSOC.cjs.map +0 -1
  391. package/dist/chunk-I5YVETCQ.cjs +0 -2
  392. package/dist/chunk-I5YVETCQ.cjs.map +0 -1
  393. package/dist/chunk-JBJQF5IR.js +0 -3
  394. package/dist/chunk-JZXEVNFX.cjs +0 -3
  395. package/dist/chunk-JZXEVNFX.cjs.map +0 -1
  396. package/dist/chunk-N7JQO6FG.cjs.map +0 -1
  397. package/dist/chunk-PIL7UROH.js.map +0 -1
  398. package/dist/chunk-PUVQJAUJ.cjs.map +0 -1
  399. package/dist/chunk-QV4LM6ZT.cjs.map +0 -1
  400. package/dist/chunk-R7USC6WF.cjs.map +0 -1
  401. package/dist/chunk-RYOPEKWG.cjs.map +0 -1
  402. package/dist/chunk-SA5MSIRV.cjs.map +0 -1
  403. package/dist/chunk-VPNMRZML.js +0 -3
  404. package/dist/chunk-VPNMRZML.js.map +0 -1
  405. package/dist/chunk-VWGZLMDY.cjs.map +0 -1
  406. package/dist/chunk-YFV2QQVE.cjs.map +0 -1
  407. package/dist/chunk-ZQYZWX6Y.cjs.map +0 -1
  408. package/dist/common/msg/channel-wkwebview.cjs +0 -2
  409. package/dist/common/msg/channel-wkwebview.cjs.map +0 -1
  410. package/dist/common/msg/channel-wkwebview.d.cts +0 -21
  411. package/dist/common/msg/channel-wkwebview.d.ts +0 -21
  412. package/dist/common/msg/channel-wkwebview.js +0 -2
  413. package/dist/common/msg/channel-wkwebview.js.map +0 -1
  414. package/dist/common/schema/_sandbox/sandbox-inherit.cjs +0 -2
  415. package/dist/common/schema/_sandbox/sandbox-inherit.cjs.map +0 -1
  416. package/dist/common/schema/_sandbox/sandbox-inherit.d.cts +0 -2
  417. package/dist/common/schema/_sandbox/sandbox-inherit.d.ts +0 -2
  418. package/dist/common/schema/_sandbox/sandbox-inherit.js +0 -2
  419. package/dist/common/schema/_sandbox/sandbox-inherit.js.map +0 -1
  420. package/dist/common/schema/_sandbox/sandbox.cjs +0 -2
  421. package/dist/common/schema/_sandbox/sandbox.cjs.map +0 -1
  422. package/dist/common/schema/_sandbox/sandbox.d.cts +0 -2
  423. package/dist/common/schema/_sandbox/sandbox.d.ts +0 -2
  424. package/dist/common/schema/_sandbox/sandbox.js +0 -2
  425. package/dist/common/schema/_sandbox/sandbox.js.map +0 -1
  426. /package/dist/{chunk-C3QCEKO3.js.map → chunk-25WKPUPK.js.map} +0 -0
  427. /package/dist/{chunk-E3TYSVBQ.js.map → chunk-37WX4OII.js.map} +0 -0
  428. /package/dist/{chunk-JSFCIROJ.js.map → chunk-5TJTQRWT.js.map} +0 -0
  429. /package/dist/{chunk-M3BNDEQI.js.map → chunk-GLXW4DRV.js.map} +0 -0
  430. /package/dist/{chunk-3U2QR5SP.js.map → chunk-GMJXOP7Z.js.map} +0 -0
  431. /package/dist/{chunk-6Y7WTQVG.js.map → chunk-J2KIRUQO.js.map} +0 -0
  432. /package/dist/{chunk-WVAB6E4Q.js.map → chunk-KBV6B6VE.js.map} +0 -0
  433. /package/dist/{chunk-T2E5T2ZQ.js.map → chunk-KGZLR63U.js.map} +0 -0
  434. /package/dist/{chunk-KPSXJ3IJ.js.map → chunk-KITREJ2W.js.map} +0 -0
  435. /package/dist/{chunk-AAHTORMI.js.map → chunk-LG6Q6ZYH.js.map} +0 -0
  436. /package/dist/{chunk-GEV3TRDQ.js.map → chunk-PBG65NPI.js.map} +0 -0
  437. /package/dist/{chunk-TGIYHPPX.js.map → chunk-S2TSPHHP.js.map} +0 -0
  438. /package/dist/{chunk-KTKS43F6.js.map → chunk-SUPJG4Y2.js.map} +0 -0
  439. /package/dist/{chunk-Z6XHALPL.js.map → chunk-WF2FLXJD.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/dirk/work/github-zeed/dist/browser/base64.cjs"],"names":[],"mappings":"AAAA,kIAAoC,oDAAmC","file":"/Users/dirk/work/github-zeed/dist/browser/base64.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/browser/base64.cjs"],"names":[],"mappings":"AAAA,kIAAoC,oDAAmC","file":"/home/runner/work/zeed/zeed/dist/browser/base64.cjs"}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/dirk/work/github-zeed/dist/browser/gravatar.cjs"],"names":[],"mappings":"AAAA,kIAAoC,iDAAgC","file":"/Users/dirk/work/github-zeed/dist/browser/gravatar.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/browser/gravatar.cjs"],"names":[],"mappings":"AAAA,kIAAoC,iDAAgC","file":"/home/runner/work/zeed/zeed/dist/browser/gravatar.cjs"}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/dirk/work/github-zeed/dist/browser/index.cjs"],"names":[],"mappings":"AAAA,0GAA6B,iCAA8B,yDAA0C,iCAA8B,yDAA0C,yDAA0C,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,yDAAqC,yDAA0C,yDAA0C,iCAA8B,yTAAsK","file":"/Users/dirk/work/github-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,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,iCAA8B,yDAAqC,yDAA0C,yDAA0C,iCAA8B,yTAAsK","file":"/home/runner/work/zeed/zeed/dist/browser/index.cjs"}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/dirk/work/github-zeed/dist/browser/localstorage.cjs"],"names":[],"mappings":"AAAA,kIAAoC,iCAA8B,2CAA0B","file":"/Users/dirk/work/github-zeed/dist/browser/localstorage.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/browser/localstorage.cjs"],"names":[],"mappings":"AAAA,kIAAoC,iCAA8B,2CAA0B","file":"/home/runner/work/zeed/zeed/dist/browser/localstorage.cjs"}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/dirk/work/github-zeed/dist/browser/log/index.cjs"],"names":[],"mappings":"AAAA,6GAAgC,4DAA6C,oCAAiC,4DAA6C,4DAAwC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,sKAAiG","file":"/Users/dirk/work/github-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,sKAAiG","file":"/home/runner/work/zeed/zeed/dist/browser/log/index.cjs"}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/dirk/work/github-zeed/dist/browser/log/log-browser-factory.cjs"],"names":[],"mappings":"AAAA,qIAAuC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,6DAA4C","file":"/Users/dirk/work/github-zeed/dist/browser/log/log-browser-factory.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/browser/log/log-browser-factory.cjs"],"names":[],"mappings":"AAAA,qIAAuC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,6DAA4C","file":"/home/runner/work/zeed/zeed/dist/browser/log/log-browser-factory.cjs"}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/dirk/work/github-zeed/dist/browser/log/log-browser.cjs"],"names":[],"mappings":"AAAA,qIAAuC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,oCAAiC,mDAAkC","file":"/Users/dirk/work/github-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,mDAAkC","file":"/home/runner/work/zeed/zeed/dist/browser/log/log-browser.cjs"}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/dirk/work/github-zeed/dist/browser/log/log-colors.cjs"],"names":[],"mappings":"AAAA,qIAAuC,oDAAmC","file":"/Users/dirk/work/github-zeed/dist/browser/log/log-colors.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/browser/log/log-colors.cjs"],"names":[],"mappings":"AAAA,qIAAuC,oDAAmC","file":"/home/runner/work/zeed/zeed/dist/browser/log/log-colors.cjs"}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/dirk/work/github-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,qFAA0C","file":"/Users/dirk/work/github-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,qFAA0C","file":"/home/runner/work/zeed/zeed/dist/browser/log/log-context-browser.cjs"}
@@ -1,2 +1,2 @@
1
- import{a as u}from"./chunk-L32SZCS2.js";import{u as a}from"./chunk-WVAB6E4Q.js";import{c as o}from"./chunk-OTNXCBEK.js";import{g as r}from"./chunk-RZR3ECDT.js";var h=class extends u{constructor(e={}){super();this.queue=[];this.waitToFinish=[];this.countMax=0;this.countResolved=0;this.paused=!1;let{name:t=a("queue"),logLevel:i}=e;this.name=t,this.log=o(`zeed:queue:${t}`,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 => ${e?.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(l){this.log.warn("Error performing task",l)}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=a(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}};export{h as a};
2
- //# sourceMappingURL=chunk-C3QCEKO3.js.map
1
+ import{a as u}from"./chunk-L32SZCS2.js";import{u as a}from"./chunk-KBV6B6VE.js";import{c as o}from"./chunk-OTNXCBEK.js";import{g as r}from"./chunk-RZR3ECDT.js";var h=class extends u{constructor(e={}){super();this.queue=[];this.waitToFinish=[];this.countMax=0;this.countResolved=0;this.paused=!1;let{name:t=a("queue"),logLevel:i}=e;this.name=t,this.log=o(`zeed:queue:${t}`,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 => ${e?.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(l){this.log.warn("Error performing task",l)}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=a(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}};export{h as a};
2
+ //# sourceMappingURL=chunk-25WKPUPK.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/dirk/work/github-zeed/dist/chunk-26J4SA3M.cjs","../src/common/storage/memstorage.ts"],"names":["MemStorage","_opt","key","value","cloneObject"],"mappings":"AAAA,iIAAwC,ICU3BA,CAAAA,CAAN,KAAuD,CAM5D,WAAA,CAAYC,CAAAA,CAA0B,CAAC,CAAA,CAAG,CAL1C,IAAA,CAAQ,KAAA,CAA2B,CAAC,CAsBpC,CAEA,OAAA,CAAQC,CAAAA,CAAaC,CAAAA,CAAgB,CAEnC,IAAA,CAAK,KAAA,CAAMD,CAAG,CAAA,CAAIE,iCAAAA,CAAiB,CACrC,CAEA,OAAA,CAAQF,CAAAA,CAA4B,CAClC,OAAOE,iCAAAA,IAAY,CAAK,KAAA,CAAMF,CAAG,CAAC,CACpC,CAEA,UAAA,CAAWA,CAAAA,CAAmB,CAC5B,OAAO,IAAA,CAAK,KAAA,CAAMA,CAAG,CACvB,CAEA,KAAA,CAAA,CAAc,CACZ,IAAA,CAAK,KAAA,CAAQ,CAAC,CAChB,CAEA,OAAA,CAAA,CAAoB,CAClB,OAAO,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,KAAK,CAC/B,CACF,CAAA,CAAA,cAAA","file":"/Users/dirk/work/github-zeed/dist/chunk-26J4SA3M.cjs","sourcesContent":[null,"import type { Json, ObjectStorage } from '../types'\nimport { cloneObject } from '../data/utils'\n\n// const log = Logger('zeed:memstorage', 'error')\n\nexport interface MemStorageOptions {\n objectFromString?: (data: string) => any\n objectToString?: (data: any) => string\n}\n\nexport class MemStorage<T = Json> implements ObjectStorage<T> {\n private store: Record<string, T> = {}\n // private pretty: boolean = false\n // private objectFromString: (data: string) => any\n // private objectToString: (data: any) => string\n\n constructor(_opt: MemStorageOptions = {}) {\n // this.objectToString =\n // opt.objectToString ??\n // ((data: any): string => {\n // return this.pretty\n // ? JSON.stringify(data, null, 2)\n // : JSON.stringify(data)\n // })\n // this.objectFromString =\n // opt.objectFromString ??\n // ((data: string) => {\n // try {\n // return JSON.parse(data)\n // } catch (err) {\n // log.warn(`MemStorage parse error '${err}' in`, data)\n // }\n // })\n }\n\n setItem(key: string, value: T): void {\n // const data = this.objectToString(value)\n this.store[key] = cloneObject(value)\n }\n\n getItem(key: string): T | undefined {\n return cloneObject(this.store[key])\n }\n\n removeItem(key: string): void {\n delete this.store[key]\n }\n\n clear(): void {\n this.store = {}\n }\n\n allKeys(): string[] {\n return Object.keys(this.store)\n }\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-26J4SA3M.cjs","../src/common/storage/memstorage.ts"],"names":["MemStorage","_opt","key","value","cloneObject"],"mappings":"AAAA,iIAAwC,ICU3BA,CAAAA,CAAN,KAAuD,CAM5D,WAAA,CAAYC,CAAAA,CAA0B,CAAC,CAAA,CAAG,CAL1C,IAAA,CAAQ,KAAA,CAA2B,CAAC,CAsBpC,CAEA,OAAA,CAAQC,CAAAA,CAAaC,CAAAA,CAAgB,CAEnC,IAAA,CAAK,KAAA,CAAMD,CAAG,CAAA,CAAIE,iCAAAA,CAAiB,CACrC,CAEA,OAAA,CAAQF,CAAAA,CAA4B,CAClC,OAAOE,iCAAAA,IAAY,CAAK,KAAA,CAAMF,CAAG,CAAC,CACpC,CAEA,UAAA,CAAWA,CAAAA,CAAmB,CAC5B,OAAO,IAAA,CAAK,KAAA,CAAMA,CAAG,CACvB,CAEA,KAAA,CAAA,CAAc,CACZ,IAAA,CAAK,KAAA,CAAQ,CAAC,CAChB,CAEA,OAAA,CAAA,CAAoB,CAClB,OAAO,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,KAAK,CAC/B,CACF,CAAA,CAAA,cAAA","file":"/home/runner/work/zeed/zeed/dist/chunk-26J4SA3M.cjs","sourcesContent":[null,"import type { Json, ObjectStorage } from '../types'\nimport { cloneObject } from '../data/utils'\n\n// const log = Logger('zeed:memstorage', 'error')\n\nexport interface MemStorageOptions {\n objectFromString?: (data: string) => any\n objectToString?: (data: any) => string\n}\n\nexport class MemStorage<T = Json> implements ObjectStorage<T> {\n private store: Record<string, T> = {}\n // private pretty: boolean = false\n // private objectFromString: (data: string) => any\n // private objectToString: (data: any) => string\n\n constructor(_opt: MemStorageOptions = {}) {\n // this.objectToString =\n // opt.objectToString ??\n // ((data: any): string => {\n // return this.pretty\n // ? JSON.stringify(data, null, 2)\n // : JSON.stringify(data)\n // })\n // this.objectFromString =\n // opt.objectFromString ??\n // ((data: string) => {\n // try {\n // return JSON.parse(data)\n // } catch (err) {\n // log.warn(`MemStorage parse error '${err}' in`, data)\n // }\n // })\n }\n\n setItem(key: string, value: T): void {\n // const data = this.objectToString(value)\n this.store[key] = cloneObject(value)\n }\n\n getItem(key: string): T | undefined {\n return cloneObject(this.store[key])\n }\n\n removeItem(key: string): void {\n delete this.store[key]\n }\n\n clear(): void {\n this.store = {}\n }\n\n allKeys(): string[] {\n return Object.keys(this.store)\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/time.ts"],"names":["getTimestamp","getTimestampInSeconds","dateFromSeconds","ts","formatMilliseconds","ms"],"mappings":"AAGO,kFAASA,CAAAA,CAAAA,CAAuB,CACrC,OAAO,IAAA,CAAK,GAAA,CAAI,CAClB,CAKO,SAASC,CAAAA,CAAAA,CAAgC,CAC9C,OAAO,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,CAAA,CAAI,GAAI,CACrC,CAKO,SAASC,CAAAA,CAAgBC,CAAAA,CAAkB,CAChD,OAAO,IAAI,IAAA,CAAKA,CAAAA,CAAK,GAAI,CAC3B,CAIO,SAASC,CAAAA,CAAmBC,CAAAA,CAAoB,CACrD,OAAOA,CAAAA,CAAK,GAAA,CAAM,CAAA,EAAA","file":"/Users/dirk/work/github-zeed/dist/chunk-2FUSCDBB.cjs","sourcesContent":["/**\n * @returns Timestamp in miliseconds\n */\nexport function getTimestamp(): number {\n return Date.now()\n}\n\n/**\n * @returns Timestamp in seconds\n */\nexport function getTimestampInSeconds(): number {\n return Math.floor(Date.now() / 1000)\n}\n\n/**\n * @returns Timestamp in 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\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 * @returns Timestamp in miliseconds\n */\nexport function getPerformanceTimestamp(): number {\n return typeof performance !== 'undefined' ? performance.now() : Date.now()\n}\n\nexport function duration() {\n const t0 = getPerformanceTimestamp()\n\n return function () {\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/** If you parsed a date without time zone, you may need to shift it to local time */\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/** If you parsed a date without time zone, you may need to shift it to UTC time */\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/** ms -> s with simple check. Assume low values are already ms */\nexport function timestampMillisecondsToSeconds(ts: number, smart = true) {\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/** s -> ms with simple check. Assume high values are already ms */\nexport function timestampSecondsToMilliseconds(ts: number, smart = true) {\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\nexport const TIME_YEAR_MS = 31536000000 // 365 * 24 * 60 * 60 * 1000\nexport const TIME_YEAR_S = 31536000 // 365 * 24 * 60 * 60\nexport const TIME_MONTH_MS = 2592000000 // 30 * 24 * 60 * 60 * 1000\nexport const TIME_MONTH_S = 2592000 // 30 * 24 * 60 * 60\nexport const TIME_WEEK_MS = 604800000 // 7 * 24 * 60 * 60 * 1000\nexport const TIME_WEEK_S = 604800 // 7 * 24 * 60 * 60\nexport const TIME_DAY_MS = 86400000 // 24 * 60 * 60 * 1000\nexport const TIME_DAY_S = 86400 // 24 * 60 * 60\nexport const TIME_HOUR_MS = 3600000 // 60 * 60 * 1000\nexport const TIME_HOUR_S = 3600 // 60 * 60\nexport const TIME_MINUTE_MS = 60000 // 60 * 1000\nexport const TIME_MINUTE_S = 60 // 60\n"]}
1
+ {"version":3,"sources":["../src/common/time.ts"],"names":["getTimestamp","getTimestampInSeconds","dateFromSeconds","ts","formatMilliseconds","ms"],"mappings":"AAGO,kFAASA,CAAAA,CAAAA,CAAuB,CACrC,OAAO,IAAA,CAAK,GAAA,CAAI,CAClB,CAKO,SAASC,CAAAA,CAAAA,CAAgC,CAC9C,OAAO,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,CAAA,CAAI,GAAI,CACrC,CAKO,SAASC,CAAAA,CAAgBC,CAAAA,CAAkB,CAChD,OAAO,IAAI,IAAA,CAAKA,CAAAA,CAAK,GAAI,CAC3B,CAIO,SAASC,CAAAA,CAAmBC,CAAAA,CAAoB,CACrD,OAAOA,CAAAA,CAAK,GAAA,CAAM,CAAA,EAAA","file":"/home/runner/work/zeed/zeed/dist/chunk-2FUSCDBB.cjs","sourcesContent":["/**\n * @returns Timestamp in miliseconds\n */\nexport function getTimestamp(): number {\n return Date.now()\n}\n\n/**\n * @returns Timestamp in seconds\n */\nexport function getTimestampInSeconds(): number {\n return Math.floor(Date.now() / 1000)\n}\n\n/**\n * @returns Timestamp in 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\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 * @returns Timestamp in miliseconds\n */\nexport function getPerformanceTimestamp(): number {\n return typeof performance !== 'undefined' ? performance.now() : Date.now()\n}\n\nexport function duration() {\n const t0 = getPerformanceTimestamp()\n\n return function () {\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/** If you parsed a date without time zone, you may need to shift it to local time */\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/** If you parsed a date without time zone, you may need to shift it to UTC time */\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/** ms -> s with simple check. Assume low values are already ms */\nexport function timestampMillisecondsToSeconds(ts: number, smart = true) {\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/** s -> ms with simple check. Assume high values are already ms */\nexport function timestampSecondsToMilliseconds(ts: number, smart = true) {\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\nexport const TIME_YEAR_MS = 31536000000 // 365 * 24 * 60 * 60 * 1000\nexport const TIME_YEAR_S = 31536000 // 365 * 24 * 60 * 60\nexport const TIME_MONTH_MS = 2592000000 // 30 * 24 * 60 * 60 * 1000\nexport const TIME_MONTH_S = 2592000 // 30 * 24 * 60 * 60\nexport const TIME_WEEK_MS = 604800000 // 7 * 24 * 60 * 60 * 1000\nexport const TIME_WEEK_S = 604800 // 7 * 24 * 60 * 60\nexport const TIME_DAY_MS = 86400000 // 24 * 60 * 60 * 1000\nexport const TIME_DAY_S = 86400 // 24 * 60 * 60\nexport const TIME_HOUR_MS = 3600000 // 60 * 60 * 1000\nexport const TIME_HOUR_S = 3600 // 60 * 60\nexport const TIME_MINUTE_MS = 60000 // 60 * 1000\nexport const TIME_MINUTE_S = 60 // 60\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/data/day.ts"],"names":["DAY_MS","dayYear","day","dayMonth","dayDay","dayToParts","dayToDate","utc"],"mappings":"AAEO,6EAAMA,CAAAA,CAAS,KAAA,CAWf,SAASC,CAAAA,CAAQC,CAAAA,CAAyB,CAC/C,OAAO,IAAA,CAAK,KAAA,CAAMA,CAAAA,CAAM,GAAK,CAC/B,CAEO,SAASC,CAAAA,CAASD,CAAAA,CAAyB,CAChD,OAAO,IAAA,CAAK,KAAA,CAAOA,CAAAA,CAAM,GAAA,CAAO,GAAG,CACrC,CAEO,SAASE,CAAAA,CAAOF,CAAAA,CAAyB,CAC9C,OAAO,IAAA,CAAK,KAAA,CAAMA,CAAAA,CAAM,GAAG,CAC7B,CAEO,SAASG,CAAAA,CAAWH,CAAAA,CAAyC,CAClE,MAAO,CAACD,CAAAA,CAAQC,CAAG,CAAA,CAAGC,CAAAA,CAASD,CAAG,CAAA,CAAGE,CAAAA,CAAOF,CAAG,CAAC,CAClD,CAEO,SAASI,CAAAA,CAAUJ,CAAAA,CAAeK,CAAAA,CAAM,CAAA,CAAA,CAAa,CAC1D,OAAOA,CAAAA,CACH,IAAI,IAAA,CAAK,CAAA,EAAA","file":"/Users/dirk/work/github-zeed/dist/chunk-2RBU7QFL.cjs","sourcesContent":["// Functional Variant\n\nexport const DAY_MS = 86400000 // 1000 * 60 * 60 * 24\n\nexport type DayValue = number\n\nexport type DayInput =\n | DayValue\n | number\n | string\n | Date\n | [number, number?, number?]\n\nexport function dayYear(day: DayValue): DayValue {\n return Math.floor(day / 10000)\n}\n\nexport function dayMonth(day: DayValue): DayValue {\n return Math.floor((day / 100) % 100)\n}\n\nexport function dayDay(day: DayValue): DayValue {\n return Math.floor(day % 100)\n}\n\nexport function dayToParts(day: DayValue): [number, number, number] {\n return [dayYear(day), dayMonth(day), dayDay(day)]\n}\n\nexport function dayToDate(day: DayValue, utc = false): Date {\n return utc\n ? new Date(`${dayToString(day)}T00:00:00.000Z`)\n : new Date(\n day / 10000, // year\n Math.max(0, ((day / 100) % 100) - 1), // month\n Math.max(1, day % 100), // day\n )\n}\n\nexport function dayFromToday(): DayValue {\n return dayFromDate(new Date())\n}\n\nexport function dayFromAny(\n value: DayInput,\n utc = false,\n): DayValue | undefined {\n if (typeof value === 'number') {\n if (value < 100)\n return\n return value\n }\n else if (typeof value === 'string') {\n return dayFromString(value)\n }\n else if (Array.isArray(value) && value.length >= 1) {\n return dayFromParts(...value)\n }\n else if (value instanceof Date) {\n return dayFromDate(value, utc)\n // } else if (value instanceof Day) {\n // return value.days\n }\n}\n\nexport function dayToDateUTC(day: DayValue): Date {\n return dayToDate(day, true)\n}\n\n/** @deprecated use dayToDateUTC */\nexport function dayToDateGMT(day: DayValue): Date {\n return dayToDate(day, true)\n}\n\nexport function dayFromDate(date: Date, utc = false): DayValue {\n return (\n utc\n ? dayFromString(date.toISOString())\n : date.getFullYear() * 10000\n + (date.getMonth() + 1) * 100\n + date.getDate()\n )!\n}\n\nexport function dayFromDateUTC(date: Date): DayValue {\n return dayFromDate(date, true)\n}\n\n/** @deprecated use dayFromDateUTC */\nexport function dayFromDateGMT(date: Date): DayValue {\n return dayFromDate(date, true)\n}\n\n\nexport function dayToTimestampSeconds(day: DayValue, utc = true): number {\n return Math.floor(dayToDate(day, utc).getTime() / 1000)\n}\n\n/// Timestamp in miliseconds\nexport function dayToTimestamp(day: DayValue, utc = true): number {\n return dayToDate(day, utc).getTime()\n}\n\n/// Timestamp in miliseconds\nexport function dayFromTimestamp(ms: number, utc = true): DayValue {\n return dayFromDate(new Date(ms), utc)\n}\n\nexport function dayFromTimestampSeconds(ms: number, utc = true): DayValue {\n return dayFromDate(new Date(Math.floor(ms * 1000)), utc) \n}\n\nexport function dayToString(day: DayValue, sep = '-') {\n const baseString = String(day)\n return (\n baseString.slice(0, 4) + sep\n + baseString.slice(4, 6) + sep\n + baseString.slice(6, 8)\n )\n}\n\n/// Day value from parts, returns undefined if invalid\nexport function dayFromParts(\n year: number,\n month = 1,\n day = 1,\n): DayValue | undefined {\n if (month < 1 || month > 12 || day < 1 || day > 31)\n return\n return year * 10000 + month * 100 + day\n}\n\n/// Day value from string, returns undefined if invalid\nexport function dayFromString(value: string): DayValue | undefined {\n const string = String(value)\n .replace(/\\D/g, '')\n .slice(0, 8)\n if (string.length === 8)\n return +string\n}\n\nexport function dayMonthStart(day: DayValue, offset = 0): DayValue {\n let year = dayYear(day)\n let month = dayMonth(day)\n if (offset !== 0) {\n month += offset\n year += Math.floor((month - 1) / 12)\n month = Math.floor((month - 1) % 12) + 1\n if (month === 0)\n month = 12\n }\n return dayFromParts(year, month, 1)!\n}\n\nexport function dayYearStart(day: DayValue, offset = 0): DayValue {\n const year = dayYear(day)\n return dayFromParts(year + offset, 1, 1)!\n}\n\nexport function dayOffset(day: DayValue, offset: number): DayValue {\n // Important! Don't use local time here due to summer/winter time days can\n // be longer or shorter!\n return dayFromTimestamp(dayToTimestamp(day) + offset * DAY_MS)\n}\n\nexport function dayDiff(left: DayValue, right: DayValue): number {\n return Math.round((dayToTimestamp(right) - dayToTimestamp(left)) / DAY_MS)\n}\n\n/** List of dates for loops */\nexport function dayRange(left: DayValue, right?: DayValue): number[] {\n const list: number[] = []\n\n if (right == null)\n right = dayFromToday()\n\n if (left < 0)\n left = dayOffset(right, left + 1)\n\n while (left <= right) {\n list.push(left)\n left = dayOffset(left, +1)\n }\n return list\n}\n\n/** Iterator, see dayRange */\nexport function* dayIterator(left: DayValue, right?: DayValue) {\n const list: number[] = []\n\n if (right == null)\n right = dayFromToday()\n\n if (left < 0)\n left = dayOffset(right, left + 1)\n\n while (left <= right) {\n yield left\n left = dayOffset(left, +1)\n }\n return list\n}\n"]}
1
+ {"version":3,"sources":["../src/common/data/day.ts"],"names":["DAY_MS","dayYear","day","dayMonth","dayDay","dayToParts","dayToDate","utc"],"mappings":"AAEO,6EAAMA,CAAAA,CAAS,KAAA,CAWf,SAASC,CAAAA,CAAQC,CAAAA,CAAyB,CAC/C,OAAO,IAAA,CAAK,KAAA,CAAMA,CAAAA,CAAM,GAAK,CAC/B,CAEO,SAASC,CAAAA,CAASD,CAAAA,CAAyB,CAChD,OAAO,IAAA,CAAK,KAAA,CAAOA,CAAAA,CAAM,GAAA,CAAO,GAAG,CACrC,CAEO,SAASE,CAAAA,CAAOF,CAAAA,CAAyB,CAC9C,OAAO,IAAA,CAAK,KAAA,CAAMA,CAAAA,CAAM,GAAG,CAC7B,CAEO,SAASG,CAAAA,CAAWH,CAAAA,CAAyC,CAClE,MAAO,CAACD,CAAAA,CAAQC,CAAG,CAAA,CAAGC,CAAAA,CAASD,CAAG,CAAA,CAAGE,CAAAA,CAAOF,CAAG,CAAC,CAClD,CAEO,SAASI,CAAAA,CAAUJ,CAAAA,CAAeK,CAAAA,CAAM,CAAA,CAAA,CAAa,CAC1D,OAAOA,CAAAA,CACH,IAAI,IAAA,CAAK,CAAA,EAAA","file":"/home/runner/work/zeed/zeed/dist/chunk-2RBU7QFL.cjs","sourcesContent":["// Functional Variant\n\nexport const DAY_MS = 86400000 // 1000 * 60 * 60 * 24\n\nexport type DayValue = number\n\nexport type DayInput =\n | DayValue\n | number\n | string\n | Date\n | [number, number?, number?]\n\nexport function dayYear(day: DayValue): DayValue {\n return Math.floor(day / 10000)\n}\n\nexport function dayMonth(day: DayValue): DayValue {\n return Math.floor((day / 100) % 100)\n}\n\nexport function dayDay(day: DayValue): DayValue {\n return Math.floor(day % 100)\n}\n\nexport function dayToParts(day: DayValue): [number, number, number] {\n return [dayYear(day), dayMonth(day), dayDay(day)]\n}\n\nexport function dayToDate(day: DayValue, utc = false): Date {\n return utc\n ? new Date(`${dayToString(day)}T00:00:00.000Z`)\n : new Date(\n day / 10000, // year\n Math.max(0, ((day / 100) % 100) - 1), // month\n Math.max(1, day % 100), // day\n )\n}\n\nexport function dayFromToday(): DayValue {\n return dayFromDate(new Date())\n}\n\nexport function dayFromAny(\n value: DayInput,\n utc = false,\n): DayValue | undefined {\n if (typeof value === 'number') {\n if (value < 100)\n return\n return value\n }\n else if (typeof value === 'string') {\n return dayFromString(value)\n }\n else if (Array.isArray(value) && value.length >= 1) {\n return dayFromParts(...value)\n }\n else if (value instanceof Date) {\n return dayFromDate(value, utc)\n // } else if (value instanceof Day) {\n // return value.days\n }\n}\n\nexport function dayToDateUTC(day: DayValue): Date {\n return dayToDate(day, true)\n}\n\n/** @deprecated use dayToDateUTC */\nexport function dayToDateGMT(day: DayValue): Date {\n return dayToDate(day, true)\n}\n\nexport function dayFromDate(date: Date, utc = false): DayValue {\n return (\n utc\n ? dayFromString(date.toISOString())\n : date.getFullYear() * 10000\n + (date.getMonth() + 1) * 100\n + date.getDate()\n )!\n}\n\nexport function dayFromDateUTC(date: Date): DayValue {\n return dayFromDate(date, true)\n}\n\n/** @deprecated use dayFromDateUTC */\nexport function dayFromDateGMT(date: Date): DayValue {\n return dayFromDate(date, true)\n}\n\n\nexport function dayToTimestampSeconds(day: DayValue, utc = true): number {\n return Math.floor(dayToDate(day, utc).getTime() / 1000)\n}\n\n/// Timestamp in miliseconds\nexport function dayToTimestamp(day: DayValue, utc = true): number {\n return dayToDate(day, utc).getTime()\n}\n\n/// Timestamp in miliseconds\nexport function dayFromTimestamp(ms: number, utc = true): DayValue {\n return dayFromDate(new Date(ms), utc)\n}\n\nexport function dayFromTimestampSeconds(ms: number, utc = true): DayValue {\n return dayFromDate(new Date(Math.floor(ms * 1000)), utc) \n}\n\nexport function dayToString(day: DayValue, sep = '-') {\n const baseString = String(day)\n return (\n baseString.slice(0, 4) + sep\n + baseString.slice(4, 6) + sep\n + baseString.slice(6, 8)\n )\n}\n\n/// Day value from parts, returns undefined if invalid\nexport function dayFromParts(\n year: number,\n month = 1,\n day = 1,\n): DayValue | undefined {\n if (month < 1 || month > 12 || day < 1 || day > 31)\n return\n return year * 10000 + month * 100 + day\n}\n\n/// Day value from string, returns undefined if invalid\nexport function dayFromString(value: string): DayValue | undefined {\n const string = String(value)\n .replace(/\\D/g, '')\n .slice(0, 8)\n if (string.length === 8)\n return +string\n}\n\nexport function dayMonthStart(day: DayValue, offset = 0): DayValue {\n let year = dayYear(day)\n let month = dayMonth(day)\n if (offset !== 0) {\n month += offset\n year += Math.floor((month - 1) / 12)\n month = Math.floor((month - 1) % 12) + 1\n if (month === 0)\n month = 12\n }\n return dayFromParts(year, month, 1)!\n}\n\nexport function dayYearStart(day: DayValue, offset = 0): DayValue {\n const year = dayYear(day)\n return dayFromParts(year + offset, 1, 1)!\n}\n\nexport function dayOffset(day: DayValue, offset: number): DayValue {\n // Important! Don't use local time here due to summer/winter time days can\n // be longer or shorter!\n return dayFromTimestamp(dayToTimestamp(day) + offset * DAY_MS)\n}\n\nexport function dayDiff(left: DayValue, right: DayValue): number {\n return Math.round((dayToTimestamp(right) - dayToTimestamp(left)) / DAY_MS)\n}\n\n/** List of dates for loops */\nexport function dayRange(left: DayValue, right?: DayValue): number[] {\n const list: number[] = []\n\n if (right == null)\n right = dayFromToday()\n\n if (left < 0)\n left = dayOffset(right, left + 1)\n\n while (left <= right) {\n list.push(left)\n left = dayOffset(left, +1)\n }\n return list\n}\n\n/** Iterator, see dayRange */\nexport function* dayIterator(left: DayValue, right?: DayValue) {\n const list: number[] = []\n\n if (right == null)\n right = dayFromToday()\n\n if (left < 0)\n left = dayOffset(right, left + 1)\n\n while (left <= right) {\n yield left\n left = dayOffset(left, +1)\n }\n return list\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/node/env.ts"],"names":["NEWLINE","RE_INI_KEY_VAL","RE_NEWLINES","NEWLINES_MATCH","parse","src","_options","obj","line","idx","keyValueArr","key","val","end","isDoubleQuoted","stringToPath","value","defaultValue","resolve","process","valueToPath","toPath","getEnvVariableRelaxed","name","env","k","v","setupEnv","options","dotenvPath","encoding","debug","envOf","fs","parsed"],"mappings":"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","file":"/Users/dirk/work/github-zeed/dist/chunk-2YTY5X3S.cjs","sourcesContent":["// Adopted from https://github.com/motdotla/dotenv BSD-2\n\nimport fs from 'node:fs'\nimport { resolve } from 'node:path'\nimport process from 'node:process'\n\nconst NEWLINE = '\\n'\n// eslint-disable-next-line regexp/no-super-linear-backtracking\nconst RE_INI_KEY_VAL = /^\\s*([\\w.-]+)\\s*=\\s*(.*)\\s*$/\nconst RE_NEWLINES = /\\\\n/g\nconst NEWLINES_MATCH = /\\r\\n|\\n|\\r/\n\ninterface EnvOptions {\n /** @deprecated will probably be replaced by logLevel */\n debug?: boolean\n path?: string\n filename?: string\n encoding?: BufferEncoding\n prefix?: string\n env?: Record<string, string>\n mode?: string\n}\n\n// Parses src into an Object\nfunction parse(src: string, _options: EnvOptions = {}) {\n const obj: Record<string, string> = {}\n\n // convert Buffers before splitting into lines and processing\n String(src)\n .split(NEWLINES_MATCH)\n\n .forEach((line, idx) => {\n // matching \"KEY' and 'VAL' in 'KEY=VAL'\n const keyValueArr = line.match(RE_INI_KEY_VAL)\n // matched?\n\n // log.debug(\"keyValueArr\", keyValueArr)\n\n if (keyValueArr != null) {\n const key = keyValueArr[1]\n // default undefined or missing values to empty string\n let val = keyValueArr[2] || ''\n const end = val.length - 1\n const isDoubleQuoted = val[0] === '\"' && val[end] === '\"'\n const isSingleQuoted = val[0] === '\\'' && val[end] === '\\''\n\n // if single or double quoted, remove quotes\n if (isSingleQuoted || isDoubleQuoted) {\n val = val.substring(1, end)\n\n // if double quoted, expand newlines\n if (isDoubleQuoted)\n val = val.replace(RE_NEWLINES, NEWLINE)\n }\n else {\n // remove surrounding whitespace\n val = val.trim()\n }\n obj[key] = val\n }\n // else {\n // log.debug(`did not match key and value when parsing line ${idx + 1}: ${line}`)\n // }\n })\n\n // log.debug(\"obj\", obj)\n return obj\n}\n\n/**\n * Return a path relative to the current working directory\n */\nexport function stringToPath(\n value?: string,\n defaultValue = '.',\n): string {\n return resolve(process.cwd(), value ?? defaultValue)\n}\n\nexport function valueToPath(value?: any, defaultValue = ''): string {\n if (value == null)\n value = defaultValue\n return stringToPath(String(value).trim(), defaultValue)\n}\n\nexport const toPath = valueToPath\n\nexport function getEnvVariableRelaxed(\n name: string,\n env = process.env,\n): string | undefined {\n if (env[name] != null)\n return env[name]\n name = name.toLowerCase()\n for (const [k, v] of Object.entries(env)) {\n if (k.toLowerCase() === name)\n return v\n }\n}\n\n/** Populates process.env from .env file. */\nexport function setupEnv(options: EnvOptions = {}) {\n const dotenvPath: string = options?.path ?? toPath(options?.filename ?? '.env')\n const encoding: BufferEncoding = options?.encoding ?? 'utf8'\n const debug = options?.debug || false\n\n try {\n const parsed: Record<string, string> = {}\n\n function envOf(name: string) {\n return fs.existsSync(name)\n ? parse(fs.readFileSync(name, { encoding }), { debug })\n : {}\n }\n\n Object.assign(\n parsed,\n envOf(dotenvPath),\n envOf(`${dotenvPath}.local`),\n )\n\n if (options.mode) {\n Object.assign(\n parsed,\n envOf(`${dotenvPath}.${options.mode}`),\n envOf(`${dotenvPath}.${options.mode}.local`),\n )\n }\n\n const env = options?.env ?? process.env\n\n Object.entries(parsed).forEach(([key, value]) => {\n if (typeof options?.prefix === 'string')\n key = options?.prefix + key\n\n if (!Object.prototype.hasOwnProperty.call(env, key)) {\n if (value != null)\n env[key] = value\n }\n // else {\n // log.debug(`\"${key}\" is already defined and will not be overwritten`)\n // }\n })\n return { parsed }\n }\n catch (e) {\n return { error: e }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/node/env.ts"],"names":["NEWLINE","RE_INI_KEY_VAL","RE_NEWLINES","NEWLINES_MATCH","parse","src","_options","obj","line","idx","keyValueArr","key","val","end","isDoubleQuoted","stringToPath","value","defaultValue","resolve","process","valueToPath","toPath","getEnvVariableRelaxed","name","env","k","v","setupEnv","options","dotenvPath","encoding","debug","envOf","fs","parsed"],"mappings":"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","file":"/home/runner/work/zeed/zeed/dist/chunk-2YTY5X3S.cjs","sourcesContent":["// Adopted from https://github.com/motdotla/dotenv BSD-2\n\nimport fs from 'node:fs'\nimport { resolve } from 'node:path'\nimport process from 'node:process'\n\nconst NEWLINE = '\\n'\n// eslint-disable-next-line regexp/no-super-linear-backtracking\nconst RE_INI_KEY_VAL = /^\\s*([\\w.-]+)\\s*=\\s*(.*)\\s*$/\nconst RE_NEWLINES = /\\\\n/g\nconst NEWLINES_MATCH = /\\r\\n|\\n|\\r/\n\ninterface EnvOptions {\n /** @deprecated will probably be replaced by logLevel */\n debug?: boolean\n path?: string\n filename?: string\n encoding?: BufferEncoding\n prefix?: string\n env?: Record<string, string>\n mode?: string\n}\n\n// Parses src into an Object\nfunction parse(src: string, _options: EnvOptions = {}) {\n const obj: Record<string, string> = {}\n\n // convert Buffers before splitting into lines and processing\n String(src)\n .split(NEWLINES_MATCH)\n\n .forEach((line, idx) => {\n // matching \"KEY' and 'VAL' in 'KEY=VAL'\n const keyValueArr = line.match(RE_INI_KEY_VAL)\n // matched?\n\n // log.debug(\"keyValueArr\", keyValueArr)\n\n if (keyValueArr != null) {\n const key = keyValueArr[1]\n // default undefined or missing values to empty string\n let val = keyValueArr[2] || ''\n const end = val.length - 1\n const isDoubleQuoted = val[0] === '\"' && val[end] === '\"'\n const isSingleQuoted = val[0] === '\\'' && val[end] === '\\''\n\n // if single or double quoted, remove quotes\n if (isSingleQuoted || isDoubleQuoted) {\n val = val.substring(1, end)\n\n // if double quoted, expand newlines\n if (isDoubleQuoted)\n val = val.replace(RE_NEWLINES, NEWLINE)\n }\n else {\n // remove surrounding whitespace\n val = val.trim()\n }\n obj[key] = val\n }\n // else {\n // log.debug(`did not match key and value when parsing line ${idx + 1}: ${line}`)\n // }\n })\n\n // log.debug(\"obj\", obj)\n return obj\n}\n\n/**\n * Return a path relative to the current working directory\n */\nexport function stringToPath(\n value?: string,\n defaultValue = '.',\n): string {\n return resolve(process.cwd(), value ?? defaultValue)\n}\n\nexport function valueToPath(value?: any, defaultValue = ''): string {\n if (value == null)\n value = defaultValue\n return stringToPath(String(value).trim(), defaultValue)\n}\n\nexport const toPath = valueToPath\n\nexport function getEnvVariableRelaxed(\n name: string,\n env = process.env,\n): string | undefined {\n if (env[name] != null)\n return env[name]\n name = name.toLowerCase()\n for (const [k, v] of Object.entries(env)) {\n if (k.toLowerCase() === name)\n return v\n }\n}\n\n/** Populates process.env from .env file. */\nexport function setupEnv(options: EnvOptions = {}) {\n const dotenvPath: string = options?.path ?? toPath(options?.filename ?? '.env')\n const encoding: BufferEncoding = options?.encoding ?? 'utf8'\n const debug = options?.debug || false\n\n try {\n const parsed: Record<string, string> = {}\n\n function envOf(name: string) {\n return fs.existsSync(name)\n ? parse(fs.readFileSync(name, { encoding }), { debug })\n : {}\n }\n\n Object.assign(\n parsed,\n envOf(dotenvPath),\n envOf(`${dotenvPath}.local`),\n )\n\n if (options.mode) {\n Object.assign(\n parsed,\n envOf(`${dotenvPath}.${options.mode}`),\n envOf(`${dotenvPath}.${options.mode}.local`),\n )\n }\n\n const env = options?.env ?? process.env\n\n Object.entries(parsed).forEach(([key, value]) => {\n if (typeof options?.prefix === 'string')\n key = options?.prefix + key\n\n if (!Object.prototype.hasOwnProperty.call(env, key)) {\n if (value != null)\n env[key] = value\n }\n // else {\n // log.debug(`\"${key}\" is already defined and will not be overwritten`)\n // }\n })\n return { parsed }\n }\n catch (e) {\n return { error: e }\n }\n}\n"]}
@@ -1,2 +1,2 @@
1
- import{a as t}from"./chunk-L32SZCS2.js";import{q as s}from"./chunk-WVAB6E4Q.js";import{b as e}from"./chunk-M7TCBWAB.js";var o=class extends t{constructor(){super(...arguments);this.id=s();this.context={};this.dispose=e()}close(){this.dispose()}};export{o as a};
2
- //# sourceMappingURL=chunk-E3TYSVBQ.js.map
1
+ import{a as t}from"./chunk-L32SZCS2.js";import{q as s}from"./chunk-KBV6B6VE.js";import{b as e}from"./chunk-M7TCBWAB.js";var o=class extends t{constructor(){super(...arguments);this.id=s();this.context={};this.dispose=e()}close(){this.dispose()}};export{o as a};
2
+ //# sourceMappingURL=chunk-37WX4OII.js.map
@@ -1,3 +1,3 @@
1
- import{e as s}from"./chunk-Z65G5XK5.js";import{a as n}from"./chunk-PM3JFDEY.js";import{b as p}from"./chunk-7PS6F2XX.js";var a={string:"String",number:"Double",int:"Int",boolean:"Bool"};function y(t,l="Example"){p(s(t),"schema should be a flat object");let i="";t._props?.swiftProtocol&&(i=`: ${t._props.swiftProtocol}`);let r=[`struct ${t._props?.swiftName??l}${i} {`];return n(t._object,(f,o)=>{let e=` var ${f}: ${a[o.type]??o.type}`;o._optional===!0&&(e+="?"),o._default!=null&&(e+=` = ${o._default}`),r.push(e)}),r.push("}"),r.join(`
1
+ import{e as n}from"./chunk-Z65G5XK5.js";import{a as s}from"./chunk-PM3JFDEY.js";import{b as p}from"./chunk-7PS6F2XX.js";var a={string:"String",number:"Double",int:"Int",boolean:"Bool"};function y(t,l="Example"){p(n(t),"schema should be a flat object");let i="";t._props?.swiftProtocol&&(i=`: ${t._props.swiftProtocol}`);let r=[`struct ${t._props?.swiftName??l}${i} {`];return s(t._object,(f,o)=>{let e=` var ${f}: ${a[o.type]??o.type}`;o._optional===!0&&(e+="?"),o._default!=null&&(e+=` = ${o._default}`),r.push(e)}),r.push("}"),r.join(`
2
2
  `)}export{y as a};
3
- //# sourceMappingURL=chunk-PIL7UROH.js.map
3
+ //# sourceMappingURL=chunk-3DMNIQDX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/schema/export-swift.ts"],"sourcesContent":["import type { Type } from './schema'\nimport { assert } from '../assert'\nimport { objectMap } from '../data/object'\nimport { isSchemaObjectFlat } from './utils'\n\ndeclare module './schema' {\n interface TypeProps {\n swiftName?: string\n swiftProtocol?: string\n swiftDesc?: string\n }\n}\n\nconst mapSwiftType = {\n string: 'String',\n number: 'Double',\n int: 'Int',\n boolean: 'Bool',\n} as any\n\nexport function schemaExportSwiftStruct<T>(schema: Type<T>, name: string = 'Example'): string {\n assert(isSchemaObjectFlat(schema), 'schema should be a flat object')\n\n let protocol = ''\n if (schema._props?.swiftProtocol) {\n protocol = `: ${schema._props.swiftProtocol}`\n }\n\n const lines: string[] = [\n `struct ${schema._props?.swiftName ?? name}${protocol} {`,\n ]\n\n objectMap(schema._object!, (key, schema: Type<any>) => {\n let s = ` var ${key}: ${mapSwiftType[schema.type] ?? schema.type}`\n if (schema._optional === true)\n s += '?'\n if (schema._default != null)\n s += ` = ${schema._default}`\n lines.push(s)\n })\n\n lines.push('}')\n\n return lines.join('\\n')\n}\n"],"mappings":"wHAaA,IAAMA,EAAe,CACnB,OAAQ,SACR,OAAQ,SACR,IAAK,MACL,QAAS,MACX,EAEO,SAASC,EAA2BC,EAAiBC,EAAe,UAAmB,CAC5FC,EAAOC,EAAmBH,CAAM,EAAG,gCAAgC,EAEnE,IAAII,EAAW,GACXJ,EAAO,QAAQ,gBACjBI,EAAW,KAAKJ,EAAO,OAAO,aAAa,IAG7C,IAAMK,EAAkB,CACtB,UAAUL,EAAO,QAAQ,WAAaC,CAAI,GAAGG,CAAQ,IACvD,EAEA,OAAAE,EAAUN,EAAO,QAAU,CAACO,EAAKP,IAAsB,CACrD,IAAIQ,EAAI,SAASD,CAAG,KAAKT,EAAaE,EAAO,IAAI,GAAKA,EAAO,IAAI,GAC7DA,EAAO,YAAc,KACvBQ,GAAK,KACHR,EAAO,UAAY,OACrBQ,GAAK,MAAMR,EAAO,QAAQ,IAC5BK,EAAM,KAAKG,CAAC,CACd,CAAC,EAEDH,EAAM,KAAK,GAAG,EAEPA,EAAM,KAAK;AAAA,CAAI,CACxB","names":["mapSwiftType","schemaExportSwiftStruct","schema","name","assert","isSchemaObjectFlat","protocol","lines","objectMap","key","s"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/dirk/work/github-zeed/dist/chunk-3FLO2VXX.cjs","../src/common/data/message.ts"],"names":["formatMessages","messages","opt","trace","pretty","obj","Uint8ArrayToHexDump"],"mappings":"AAAA,iIAAwC,wDAAyC,wDAAyC,SCS1GA,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CAA6B,CAAC,CAAA,CACvB,CACP,GAAM,CAAE,KAAA,CAAAC,CAAAA,CAAQ,CAAA,CAAA,CAAM,MAAA,CAAAC,CAAAA,CAAS,CAAA,CAAK,CAAA,CAAIF,CAAAA,CACxC,OAAOD,CAAAA,CAAS,GAAA,CAAKI,CAAAA,EAAQ,CAC3B,EAAA,CAAIA,CAAAA,EAAO,OAAOA,CAAAA,EAAQ,QAAA,CAAU,CAClC,EAAA,CAAID,CAAAA,EAAAA,CAAWC,EAAAA,WAAe,UAAA,EAAcA,EAAAA,WAAe,WAAA,CAAA,CACzD,MAAO,CAAA;AAAA,EAAKC,iCAAAA,CAAuB,CAAC,CAAA;AAAA,CAAA,CAEtC,EAAA,CAAID,EAAAA,WAAe,KAAA,CACjB,MAAO,CAAA,EAAA;AAEE;AAGP;AAGcA;AAKEA","file":"/Users/dirk/work/github-zeed/dist/chunk-3FLO2VXX.cjs","sourcesContent":[null,"import { Uint8ArrayToHexDump } from \"./bin\"\nimport { isArray } from \"./is\"\nimport { objectPlain } from \"./object\"\n\nexport interface RenderMessagesOptions {\n trace?: boolean // = true\n pretty?: boolean // = true\n}\n\nexport function formatMessages(\n messages: any[],\n opt: RenderMessagesOptions = {},\n): any[] {\n const { trace = true, pretty = true } = opt\n return messages.map((obj) => {\n if (obj && typeof obj === 'object') {\n if (pretty && (obj instanceof Uint8Array || obj instanceof ArrayBuffer))\n return `\\n${Uint8ArrayToHexDump(obj)}\\n`\n \n if (obj instanceof Error) {\n return `${obj.name}: ${obj.message}` + (trace ? `\\n${obj.stack}` : '')\n }\n if (typeof ErrorEvent !== 'undefined' && obj instanceof ErrorEvent) {\n return `${obj.error.name || 'ErrorEvent'}: ${obj.error.message}` + (trace ? `\\n${obj.error.stack}` : '')\n }\n if (typeof DOMException !== 'undefined' && obj instanceof DOMException) {\n return `${obj.name || 'DOMException'}: ${obj.message}` + (trace ? `\\n${obj.stack}` : '')\n }\n if (obj && typeof obj === 'object' && 'reason' in obj) {\n return `PromiseRejection ${obj.type}: ${obj.reason}` + (trace ? `\\n${obj.stack}` : '')\n }\n \n try {\n obj = objectPlain(obj)\n return pretty ? JSON.stringify(obj, null, 2) : JSON.stringify(obj)\n }\n catch (err) {}\n }\n return String(obj)\n })\n}\n\nexport function renderMessages(\n messages: any | any[],\n opt: RenderMessagesOptions = {},\n): string {\n return formatMessages(isArray(messages) ? messages : [messages], opt).join(' ')\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-3FLO2VXX.cjs","../src/common/data/message.ts"],"names":["formatMessages","messages","opt","trace","pretty","obj","Uint8ArrayToHexDump"],"mappings":"AAAA,iIAAwC,wDAAyC,wDAAyC,SCS1GA,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CAA6B,CAAC,CAAA,CACvB,CACP,GAAM,CAAE,KAAA,CAAAC,CAAAA,CAAQ,CAAA,CAAA,CAAM,MAAA,CAAAC,CAAAA,CAAS,CAAA,CAAK,CAAA,CAAIF,CAAAA,CACxC,OAAOD,CAAAA,CAAS,GAAA,CAAKI,CAAAA,EAAQ,CAC3B,EAAA,CAAIA,CAAAA,EAAO,OAAOA,CAAAA,EAAQ,QAAA,CAAU,CAClC,EAAA,CAAID,CAAAA,EAAAA,CAAWC,EAAAA,WAAe,UAAA,EAAcA,EAAAA,WAAe,WAAA,CAAA,CACzD,MAAO,CAAA;AAAA,EAAKC,iCAAAA,CAAuB,CAAC,CAAA;AAAA,CAAA,CAEtC,EAAA,CAAID,EAAAA,WAAe,KAAA,CACjB,MAAO,CAAA,EAAA;AAEE;AAGP;AAGcA;AAKEA","file":"/home/runner/work/zeed/zeed/dist/chunk-3FLO2VXX.cjs","sourcesContent":[null,"import { Uint8ArrayToHexDump } from \"./bin\"\nimport { isArray } from \"./is\"\nimport { objectPlain } from \"./object\"\n\nexport interface RenderMessagesOptions {\n trace?: boolean // = true\n pretty?: boolean // = true\n}\n\nexport function formatMessages(\n messages: any[],\n opt: RenderMessagesOptions = {},\n): any[] {\n const { trace = true, pretty = true } = opt\n return messages.map((obj) => {\n if (obj && typeof obj === 'object') {\n if (pretty && (obj instanceof Uint8Array || obj instanceof ArrayBuffer))\n return `\\n${Uint8ArrayToHexDump(obj)}\\n`\n \n if (obj instanceof Error) {\n return `${obj.name}: ${obj.message}` + (trace ? `\\n${obj.stack}` : '')\n }\n if (typeof ErrorEvent !== 'undefined' && obj instanceof ErrorEvent) {\n return `${obj.error.name || 'ErrorEvent'}: ${obj.error.message}` + (trace ? `\\n${obj.error.stack}` : '')\n }\n if (typeof DOMException !== 'undefined' && obj instanceof DOMException) {\n return `${obj.name || 'DOMException'}: ${obj.message}` + (trace ? `\\n${obj.stack}` : '')\n }\n if (obj && typeof obj === 'object' && 'reason' in obj) {\n return `PromiseRejection ${obj.type}: ${obj.reason}` + (trace ? `\\n${obj.stack}` : '')\n }\n \n try {\n obj = objectPlain(obj)\n return pretty ? JSON.stringify(obj, null, 2) : JSON.stringify(obj)\n }\n catch (err) {}\n }\n return String(obj)\n })\n}\n\nexport function renderMessages(\n messages: any | any[],\n opt: RenderMessagesOptions = {},\n): string {\n return formatMessages(isArray(messages) ? messages : [messages], opt).join(' ')\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/dirk/work/github-zeed/dist/chunk-3O7Y3U7Y.cjs","../src/common/assert.ts"],"names":["fatal","messages","getGlobalLoggerIfExists"],"mappings":"AAAA,qoBAAwC,SCGxBA,CAAAA,CAAAA,GAASC,CAAAA,CAAwB,CAC/C,sBAAAC,iCAAAA,CAAwB,wBAAA,CAAI,QAAQ,CAAA,6BAAG,KAAA,mBAAM,GAAGD,CAAQ,GAAA,CAClD,IAAI,KAAA,CAAM,CAAA,EAAA","file":"/Users/dirk/work/github-zeed/dist/chunk-3O7Y3U7Y.cjs","sourcesContent":[null,"import { getGlobalLoggerIfExists } from './log/log'\n\n/** Always throws. */\nexport function fatal(...messages: any[]): never {\n getGlobalLoggerIfExists()?.('assert')?.fatal(...messages)\n throw new Error(`${messages.map(String).join(' ')}`)\n}\n\n/** Throws if condition is not truthy. */\nexport function assert(condition: unknown, ...messages: any[]): asserts condition {\n if (condition == null || (typeof condition === 'number' && Number.isNaN(condition)) || !condition)\n fatal(...messages)\n}\n\n/** Alias for `assert` for better differentiation to unit test's assert function. */\nexport function assertCondition(condition: unknown, ...messages: any[]): asserts condition {\n assert(condition, ...messages)\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-3O7Y3U7Y.cjs","../src/common/assert.ts"],"names":["fatal","messages","getGlobalLoggerIfExists"],"mappings":"AAAA,qoBAAwC,SCGxBA,CAAAA,CAAAA,GAASC,CAAAA,CAAwB,CAC/C,sBAAAC,iCAAAA,CAAwB,wBAAA,CAAI,QAAQ,CAAA,6BAAG,KAAA,mBAAM,GAAGD,CAAQ,GAAA,CAClD,IAAI,KAAA,CAAM,CAAA,EAAA","file":"/home/runner/work/zeed/zeed/dist/chunk-3O7Y3U7Y.cjs","sourcesContent":[null,"import { getGlobalLoggerIfExists } from './log/log'\n\n/** Always throws. */\nexport function fatal(...messages: any[]): never {\n getGlobalLoggerIfExists()?.('assert')?.fatal(...messages)\n throw new Error(`${messages.map(String).join(' ')}`)\n}\n\n/** Throws if condition is not truthy. */\nexport function assert(condition: unknown, ...messages: any[]): asserts condition {\n if (condition == null || (typeof condition === 'number' && Number.isNaN(condition)) || !condition)\n fatal(...messages)\n}\n\n/** Alias for `assert` for better differentiation to unit test's assert function. */\nexport function assertCondition(condition: unknown, ...messages: any[]): asserts condition {\n assert(condition, ...messages)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/dirk/work/github-zeed/dist/chunk-3TNVJY4F.cjs"],"names":[],"mappings":"AAAA","file":"/Users/dirk/work/github-zeed/dist/chunk-3TNVJY4F.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-3TNVJY4F.cjs"],"names":[],"mappings":"AAAA","file":"/home/runner/work/zeed/zeed/dist/chunk-3TNVJY4F.cjs"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/data/format.ts"],"names":["formatBytesToHumanBase1024","bytes","decimals","units","c","i","h"],"mappings":"AACO,kFAASA,CAAAA,CAA2BC,CAAAA,CAAeC,CAAAA,CAAW,CAAA,CAAG,CAEtE,IAAMC,CAAAA,CAAQ,CAAC,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,KAAA,CAAO,KAAA,CAAO,KAAA,CAAO,KAAK,CAAA,CAC1DC,CAAAA,CAAI,oBAAA,CACNC,CAAAA,CAAI,CAAA,CACJC,CAAAA,CAAI,CAAA,CAGR,GAAA,CAFIL,CAAAA,CAAQ,CAAA,EAAA,CACVA,CAAAA,CAAQ,CAAA,CAAA,CACHK,CAAAA,CAAIF,CAAAA,EAAKC,CAAAA,CAAIF,CAAAA,CAAM,MAAA,EAAA,CACxBG,CAAAA,CAAI,IAAA,EAAQD,CAAAA,CAAIJ,CAAAA,CACZ,CAAA,CAAAK,CAAAA,EAAKF,CAAAA,CAAAA,CAAAA,CAFuBC,CAAAA,EAAAA,CAEhC,CAGF,MAAQ,CAAA,EAAA","file":"/Users/dirk/work/github-zeed/dist/chunk-3VEGCRLF.cjs","sourcesContent":["/** Just a simple yet fast helper. Alternatively you may use Intl formatters http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat */\nexport function formatBytesToHumanBase1024(bytes: number, decimals = 2) {\n // https://en.wikipedia.org/wiki/Orders_of_magnitude_(data)\n const units = ['bytes', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB'] // etc\n const c = 1 / 1023 // change it to 1024 and see the diff\n let i = 0\n let h = 0\n if (bytes < 0)\n bytes = 0\n for (; h < c && i < units.length; i++) {\n h = 1024 ** i / bytes\n if (h >= c)\n break\n }\n return (`${(1 / h).toFixed(i > 0 ? decimals : 0).toLocaleString()} ${units[i]}`)\n}\n\n/** Just a simple yet fast helper. Alternatively you may use Intl formatters http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat */\nexport function formatBytesToHumanBase1000(bytes: number, decimals = 2) {\n // https://en.wikipedia.org/wiki/Orders_of_magnitude_(data)\n const units = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB'] // etc\n const c = 1 / 999\n let i = 0\n let h = 0\n if (bytes < 0)\n bytes = 0\n for (; h < c && i < units.length; i++) {\n h = 1000 ** i / bytes\n if (h >= c)\n break\n }\n return (`${(1 / h).toFixed(i > 0 ? decimals : 0).toLocaleString()} ${units[i]}`)\n}\n\n/** Just a simple yet fast helper. Alternatively you may use Intl formatters http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat */\nexport function formatSecondsToTime(seconds: number, separator = ':') {\n const prefix = seconds < 0 ? '-' : ''\n if (seconds < 0)\n seconds = -1 * seconds\n const h = Math.floor(seconds / 3600)\n const m = Math.floor((seconds % 3600) / 60)\n const s = Math.round(seconds % 60)\n return prefix + [h, m > 9 ? m : h ? `0${m}` : m || '0', s > 9 ? s : `0${s}`].filter(Boolean).join(separator)\n}\n"]}
1
+ {"version":3,"sources":["../src/common/data/format.ts"],"names":["formatBytesToHumanBase1024","bytes","decimals","units","c","i","h"],"mappings":"AACO,kFAASA,CAAAA,CAA2BC,CAAAA,CAAeC,CAAAA,CAAW,CAAA,CAAG,CAEtE,IAAMC,CAAAA,CAAQ,CAAC,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,KAAA,CAAO,KAAA,CAAO,KAAA,CAAO,KAAK,CAAA,CAC1DC,CAAAA,CAAI,oBAAA,CACNC,CAAAA,CAAI,CAAA,CACJC,CAAAA,CAAI,CAAA,CAGR,GAAA,CAFIL,CAAAA,CAAQ,CAAA,EAAA,CACVA,CAAAA,CAAQ,CAAA,CAAA,CACHK,CAAAA,CAAIF,CAAAA,EAAKC,CAAAA,CAAIF,CAAAA,CAAM,MAAA,EAAA,CACxBG,CAAAA,CAAI,IAAA,EAAQD,CAAAA,CAAIJ,CAAAA,CACZ,CAAA,CAAAK,CAAAA,EAAKF,CAAAA,CAAAA,CAAAA,CAFuBC,CAAAA,EAAAA,CAEhC,CAGF,MAAQ,CAAA,EAAA","file":"/home/runner/work/zeed/zeed/dist/chunk-3VEGCRLF.cjs","sourcesContent":["/** Just a simple yet fast helper. Alternatively you may use Intl formatters http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat */\nexport function formatBytesToHumanBase1024(bytes: number, decimals = 2) {\n // https://en.wikipedia.org/wiki/Orders_of_magnitude_(data)\n const units = ['bytes', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB'] // etc\n const c = 1 / 1023 // change it to 1024 and see the diff\n let i = 0\n let h = 0\n if (bytes < 0)\n bytes = 0\n for (; h < c && i < units.length; i++) {\n h = 1024 ** i / bytes\n if (h >= c)\n break\n }\n return (`${(1 / h).toFixed(i > 0 ? decimals : 0).toLocaleString()} ${units[i]}`)\n}\n\n/** Just a simple yet fast helper. Alternatively you may use Intl formatters http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat */\nexport function formatBytesToHumanBase1000(bytes: number, decimals = 2) {\n // https://en.wikipedia.org/wiki/Orders_of_magnitude_(data)\n const units = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB'] // etc\n const c = 1 / 999\n let i = 0\n let h = 0\n if (bytes < 0)\n bytes = 0\n for (; h < c && i < units.length; i++) {\n h = 1000 ** i / bytes\n if (h >= c)\n break\n }\n return (`${(1 / h).toFixed(i > 0 ? decimals : 0).toLocaleString()} ${units[i]}`)\n}\n\n/** Just a simple yet fast helper. Alternatively you may use Intl formatters http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat */\nexport function formatSecondsToTime(seconds: number, separator = ':') {\n const prefix = seconds < 0 ? '-' : ''\n if (seconds < 0)\n seconds = -1 * seconds\n const h = Math.floor(seconds / 3600)\n const m = Math.floor((seconds % 3600) / 60)\n const s = Math.round(seconds % 60)\n return prefix + [h, m > 9 ? m : h ? `0${m}` : m || '0', s > 9 ? s : `0${s}`].filter(Boolean).join(separator)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/dirk/work/github-zeed/dist/chunk-4B2XCWGL.cjs"],"names":[],"mappings":"AAAA","file":"/Users/dirk/work/github-zeed/dist/chunk-4B2XCWGL.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-4B2XCWGL.cjs"],"names":[],"mappings":"AAAA","file":"/home/runner/work/zeed/zeed/dist/chunk-4B2XCWGL.cjs"}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/dirk/work/github-zeed/dist/chunk-4SKL5XXG.cjs","../src/common/data/deep.ts"],"names":["deepEqual","a","b","hash","isPrimitive","p","aa","bb","deepStripUndefinedInPlace","isRecord","isArray","i","deepMerge","target","sources","source","isObject","key","targetValue","sourceValue"],"mappings":"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","file":"/Users/dirk/work/github-zeed/dist/chunk-4SKL5XXG.cjs","sourcesContent":[null,"/* eslint-disable no-prototype-builtins */\n\nimport { isArray, isObject, isPrimitive, isRecord } from './is'\n\nexport function deepEqual(a: any, b: any, hash = new WeakSet()) {\n // if both x and y are null or undefined and exactly the same\n if (a === b)\n return true\n\n // Cyclic\n if (hash.has(b)) {\n // console.log('cyclic')\n return false\n }\n\n if (!isPrimitive(b))\n hash.add(b)\n\n // if they are not strictly equal, they both need to be Objects\n if (!(a instanceof Object) || !(b instanceof Object))\n return false\n\n // they must have the exact same prototype chain, the closest we can do is\n // test there constructor.\n if (a.constructor !== b.constructor)\n return false\n\n // Shortcut to avoid to many loops\n if (a.length !== b.length)\n return false\n\n for (const p in a) {\n // other properties were tested using x.constructor === y.constructor\n if (!a.hasOwnProperty(p))\n continue\n\n // allows to compare x[ p ] and y[ p ] when set to undefined\n if (!b.hasOwnProperty(p))\n return false\n\n const aa = a[p]\n const bb = b[p]\n\n // if they have the same strict value or identity then they are equal\n // if (aa === bb) {\n // console.log('eq', typeof bb)\n // if (bb != null) hash.set(bb, true)\n // continue\n // }\n //\n // // Numbers, Strings, Functions, Booleans must be strictly equal\n // if (typeof (aa) !== 'object') {\n // return false\n // }\n\n // Objects and Arrays must be tested recursively\n if (!deepEqual(aa, bb, hash))\n return false\n }\n\n // allows x[ p ] to be set to undefined\n for (const p in b) {\n if (b.hasOwnProperty(p) && !a.hasOwnProperty(p))\n return false\n }\n\n return true\n}\n\n/** Strip properties with value `undefined` in place */\nexport function deepStripUndefinedInPlace(a: any, hash = new WeakSet()) {\n // Cyclic\n if (hash.has(a))\n return '[Circular ~]'\n if (!isPrimitive(a))\n hash.add(a)\n\n if (isRecord(a)) {\n for (const p in a) {\n if (!a.hasOwnProperty(p))\n continue\n if (a[p] === undefined) {\n delete a[p]\n continue\n }\n deepStripUndefinedInPlace(a[p], hash)\n }\n }\n else if (isArray(a)) {\n for (let i = a.length - 1; i >= 0; i--) {\n if (a[i] === undefined)\n a.splice(i, 1)\n }\n }\n // else ignore\n\n return a\n}\n\nexport function deepMerge(target: any, ...sources: any[]) {\n // todo cyclic protection\n for (const source of sources) {\n if (!isObject(target))\n target = {}\n\n if (source == null || !isObject(source))\n continue\n\n Object.keys(source).forEach((key) => {\n const targetValue = target[key]\n const sourceValue = (source as any)[key]\n\n if (Array.isArray(targetValue) && Array.isArray(sourceValue))\n target[key] = targetValue.concat(sourceValue)\n else if (isObject(targetValue) && isObject(sourceValue))\n target[key] = deepMerge(Object.assign({}, targetValue), sourceValue)\n else\n target[key] = sourceValue\n })\n }\n\n return target\n}\n\n// // https://stackoverflow.com/a/40294058/140927\n// // Handles cyclic references\n// export function deepClonePrimitives(obj, hash = new WeakMap()) {\n//\n// // primitives\n// if (Object(obj) !== obj) {\n// // log('Primitive', obj)\n// return obj\n// }\n//\n// // cyclic reference\n// if (hash.has(obj)) {\n// return hash.get(obj)\n// }\n//\n// let result\n//\n// // primitives as objects like new String(), new Number()\n// if (\n// obj instanceof String ||\n// obj instanceof Number ||\n// obj instanceof BigInt ||\n// obj instanceof Boolean ||\n// obj instanceof Symbol\n// ) {\n// result = new obj.constructor(obj.valueOf())\n// // hash.set(obj, result)\n// return result\n// }\n//\n// // log('Obj', obj)\n//\n// if (obj instanceof Set) {\n// result = new Set(obj)\n// } else if (obj instanceof Map) {\n// result = new Map(Array.from(obj, ([key, val]) => [key, deepClonePrimitives(val, hash)]))\n// } else if (obj instanceof Date) {\n// result = new Date(obj)\n// } else if (obj instanceof RegExp) {\n// result = new RegExp(obj.source, obj.flags)\n// } else if (Array.isArray(obj)) {\n// result = Array.from(obj, val => deepClonePrimitives(val, hash))\n// } else if (obj.constructor) {\n// result = new obj.constructor()\n// log('bj object', result)\n// } else if (obj instanceof Function || typeof obj === 'function') {\n// log('Keep object', obj, Object.getPrototypeOf(obj))\n// result = obj\n// } else {\n// result = Object.create(null)\n// }\n//\n// hash.set(obj, result)\n//\n// return Object.assign(result, ...Object.keys(obj).map(key => ({\n// [key]: deepClonePrimitives(obj[key], hash),\n// })))\n// }\n"]}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-4SKL5XXG.cjs","../src/common/data/deep.ts"],"names":["deepEqual","a","b","hash","isPrimitive","p","aa","bb","deepStripUndefinedInPlace","isRecord","isArray","i","deepMerge","target","sources","source","isObject","key","targetValue","sourceValue"],"mappings":"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","file":"/home/runner/work/zeed/zeed/dist/chunk-4SKL5XXG.cjs","sourcesContent":[null,"/* eslint-disable no-prototype-builtins */\n\nimport { isArray, isObject, isPrimitive, isRecord } from './is'\n\nexport function deepEqual(a: any, b: any, hash = new WeakSet()) {\n // if both x and y are null or undefined and exactly the same\n if (a === b)\n return true\n\n // Cyclic\n if (hash.has(b)) {\n // console.log('cyclic')\n return false\n }\n\n if (!isPrimitive(b))\n hash.add(b)\n\n // if they are not strictly equal, they both need to be Objects\n if (!(a instanceof Object) || !(b instanceof Object))\n return false\n\n // they must have the exact same prototype chain, the closest we can do is\n // test there constructor.\n if (a.constructor !== b.constructor)\n return false\n\n // Shortcut to avoid to many loops\n if (a.length !== b.length)\n return false\n\n for (const p in a) {\n // other properties were tested using x.constructor === y.constructor\n if (!a.hasOwnProperty(p))\n continue\n\n // allows to compare x[ p ] and y[ p ] when set to undefined\n if (!b.hasOwnProperty(p))\n return false\n\n const aa = a[p]\n const bb = b[p]\n\n // if they have the same strict value or identity then they are equal\n // if (aa === bb) {\n // console.log('eq', typeof bb)\n // if (bb != null) hash.set(bb, true)\n // continue\n // }\n //\n // // Numbers, Strings, Functions, Booleans must be strictly equal\n // if (typeof (aa) !== 'object') {\n // return false\n // }\n\n // Objects and Arrays must be tested recursively\n if (!deepEqual(aa, bb, hash))\n return false\n }\n\n // allows x[ p ] to be set to undefined\n for (const p in b) {\n if (b.hasOwnProperty(p) && !a.hasOwnProperty(p))\n return false\n }\n\n return true\n}\n\n/** Strip properties with value `undefined` in place */\nexport function deepStripUndefinedInPlace(a: any, hash = new WeakSet()) {\n // Cyclic\n if (hash.has(a))\n return '[Circular ~]'\n if (!isPrimitive(a))\n hash.add(a)\n\n if (isRecord(a)) {\n for (const p in a) {\n if (!a.hasOwnProperty(p))\n continue\n if (a[p] === undefined) {\n delete a[p]\n continue\n }\n deepStripUndefinedInPlace(a[p], hash)\n }\n }\n else if (isArray(a)) {\n for (let i = a.length - 1; i >= 0; i--) {\n if (a[i] === undefined)\n a.splice(i, 1)\n }\n }\n // else ignore\n\n return a\n}\n\nexport function deepMerge(target: any, ...sources: any[]) {\n // todo cyclic protection\n for (const source of sources) {\n if (!isObject(target))\n target = {}\n\n if (source == null || !isObject(source))\n continue\n\n Object.keys(source).forEach((key) => {\n const targetValue = target[key]\n const sourceValue = (source as any)[key]\n\n if (Array.isArray(targetValue) && Array.isArray(sourceValue))\n target[key] = targetValue.concat(sourceValue)\n else if (isObject(targetValue) && isObject(sourceValue))\n target[key] = deepMerge(Object.assign({}, targetValue), sourceValue)\n else\n target[key] = sourceValue\n })\n }\n\n return target\n}\n\n// // https://stackoverflow.com/a/40294058/140927\n// // Handles cyclic references\n// export function deepClonePrimitives(obj, hash = new WeakMap()) {\n//\n// // primitives\n// if (Object(obj) !== obj) {\n// // log('Primitive', obj)\n// return obj\n// }\n//\n// // cyclic reference\n// if (hash.has(obj)) {\n// return hash.get(obj)\n// }\n//\n// let result\n//\n// // primitives as objects like new String(), new Number()\n// if (\n// obj instanceof String ||\n// obj instanceof Number ||\n// obj instanceof BigInt ||\n// obj instanceof Boolean ||\n// obj instanceof Symbol\n// ) {\n// result = new obj.constructor(obj.valueOf())\n// // hash.set(obj, result)\n// return result\n// }\n//\n// // log('Obj', obj)\n//\n// if (obj instanceof Set) {\n// result = new Set(obj)\n// } else if (obj instanceof Map) {\n// result = new Map(Array.from(obj, ([key, val]) => [key, deepClonePrimitives(val, hash)]))\n// } else if (obj instanceof Date) {\n// result = new Date(obj)\n// } else if (obj instanceof RegExp) {\n// result = new RegExp(obj.source, obj.flags)\n// } else if (Array.isArray(obj)) {\n// result = Array.from(obj, val => deepClonePrimitives(val, hash))\n// } else if (obj.constructor) {\n// result = new obj.constructor()\n// log('bj object', result)\n// } else if (obj instanceof Function || typeof obj === 'function') {\n// log('Keep object', obj, Object.getPrototypeOf(obj))\n// result = obj\n// } else {\n// result = Object.create(null)\n// }\n//\n// hash.set(obj, result)\n//\n// return Object.assign(result, ...Object.keys(obj).map(key => ({\n// [key]: deepClonePrimitives(obj[key], hash),\n// })))\n// }\n"]}
@@ -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 _chunk5FLXL7Q3cjs = require('./chunk-5FLXL7Q3.cjs');var _chunkCR2WSRFBcjs = require('./chunk-CR2WSRFB.cjs');var r=class extends _chunk5FLXL7Q3cjs.a{constructor(){super(...arguments);this.buffer=[];this.dispose=_chunkCR2WSRFBcjs.g.call(void 0, )}postMessageRaw(e){try{if(_optionalChain([this, 'access', _ => _.channel, 'optionalAccess', _2 => _2.isConnected]))return this.channel.postMessage(e),!0}catch (e2){}return!1}flushBuffer(){for(;this.buffer.length;){let e=this.buffer.shift();if(e&&!this.postMessageRaw(e)){this.buffer.unshift(e);break}}}emptyBuffer(){this.buffer=[]}setChannel(e){this.dispose(),this.channel=e,e&&(this.dispose.add(e.on("message",s=>this.emit("message",s))),e.isConnected?this.flushBuffer():this.dispose.add(e.on("connect",()=>this.flushBuffer())))}deleteChannel(){this.setChannel()}postMessage(e){this.flushBuffer(),this.postMessageRaw(e)||this.buffer.push(e)}get isConnected(){return _optionalChain([this, 'access', _3 => _3.channel, 'optionalAccess', _4 => _4.isConnected])===!0}};exports.a = r;
2
- //# sourceMappingURL=chunk-DJINTZFD.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 _chunkX375623Dcjs = require('./chunk-X375623D.cjs');var _chunkCR2WSRFBcjs = require('./chunk-CR2WSRFB.cjs');var r=class extends _chunkX375623Dcjs.a{constructor(){super(...arguments);this.buffer=[];this.dispose=_chunkCR2WSRFBcjs.g.call(void 0, )}postMessageRaw(e){try{if(_optionalChain([this, 'access', _ => _.channel, 'optionalAccess', _2 => _2.isConnected]))return this.channel.postMessage(e),!0}catch (e2){}return!1}flushBuffer(){for(;this.buffer.length;){let e=this.buffer.shift();if(e&&!this.postMessageRaw(e)){this.buffer.unshift(e);break}}}emptyBuffer(){this.buffer=[]}setChannel(e){this.dispose(),this.channel=e,e&&(this.dispose.add(e.on("message",s=>this.emit("message",s))),e.isConnected?this.flushBuffer():this.dispose.add(e.on("connect",()=>this.flushBuffer())))}deleteChannel(){this.setChannel()}postMessage(e){this.flushBuffer(),this.postMessageRaw(e)||this.buffer.push(e)}get isConnected(){return _optionalChain([this, 'access', _3 => _3.channel, 'optionalAccess', _4 => _4.isConnected])===!0}};exports.a = r;
2
+ //# sourceMappingURL=chunk-5BBJL6OC.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-5BBJL6OC.cjs","../src/common/msg/channel-resilient.ts"],"names":["ResillientChannel","Channel","useDisposeWithUtils","data","channel","msg"],"mappings":"AAAA,qoBAAwC,wDAAyC,ICOpEA,CAAAA,CAAN,MAAA,QAAgCC,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,CAAA,cAAA","file":"/home/runner/work/zeed/zeed/dist/chunk-5BBJL6OC.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 +1 @@
1
- {"version":3,"sources":["../src/common/crypto/aes-sealed.ts"],"names":["encryptAesGcm","data","key","authenticating","iv","encrypted","encryptedArray","combined","decryptAesGcm","decrypted"],"mappings":"AAEA,+EAAA,SAAsBA,CAAAA,CAAcC,CAAAA,CAAkBC,CAAAA,CAAgBC,CAAAA,CAA6B,IAAI,UAAA,CAAmC,CACxI,IAAMC,CAAAA,CAAK,MAAA,CAAO,eAAA,CAAgB,IAAI,UAAA,CAAW,EAAE,CAAC,CAAA,CAC9CC,CAAAA,CAAY,MAAM,MAAA,CAAO,MAAA,CAAO,OAAA,CACpC,CACE,IAAA,CAAM,SAAA,CACN,EAAA,CAAAD,CAAAA,CACA,SAAA,CAAW,GAAA,CACX,cAAA,CAAgBD,CAClB,CAAA,CACAD,CAAAA,CACAD,CACF,CAAA,CAEMK,CAAAA,CAAiB,IAAI,UAAA,CAAWD,CAAS,CAAA,CACzCE,CAAAA,CAAW,IAAI,UAAA,CAAWH,CAAAA,CAAG,MAAA,CAASE,CAAAA,CAAe,MAAM,CAAA,CACjE,OAAAC,CAAAA,CAAS,GAAA,CAAIH,CAAE,CAAA,CACfG,CAAAA,CAAS,GAAA,CAAID,CAAAA,CAAgBF,CAAAA,CAAG,MAAM,CAAA,CAC/BG,CACT,CAEA,MAAA,SAAsBC,CAAAA,CAAcP,CAAAA,CAAkBC,CAAAA,CAAgBC,CAAAA,CAA6B,IAAI,UAAA,CAAmC,CACxI,IAAMC,CAAAA,CAAKH,CAAAA,CAAK,KAAA,CAAM,CAAA,CAAG,EAAE,CAAA,CACrBI,CAAAA,CAAYJ,CAAAA,CAAK,KAAA,CAAM,EAAE,CAAA,CACzBQ,CAAAA,CAAY,MAAM,MAAA,CAAO,MAAA,CAAO,OAAA,CAAQ,CAC5C,IAAA,CAAM,SAAA,CACN,EAAA,CAAAL,CAAAA,CACA,SAAA,CAAW,GAAA,CACX,cAAA,CAAgBD,CAClB,CAAA,CAAGD,CAAAA,CAAKG,CAAS,CAAA,CACjB,OAAO,IAAI,UAAA,CAAWI,CAAS,CACjC,CAAA,6BAAA","file":"/Users/dirk/work/github-zeed/dist/chunk-5CHPHDA5.cjs","sourcesContent":["const AES_GCM_TAG_LENGTH_BITS = 128\n\nexport async function encryptAesGcm(data: Uint8Array, key: CryptoKey, authenticating: Uint8Array = new Uint8Array()): Promise<Uint8Array> {\n const iv = crypto.getRandomValues(new Uint8Array(12)) // AES-GCM requires a 12-byte IV\n const encrypted = await crypto.subtle.encrypt(\n {\n name: 'AES-GCM',\n iv,\n tagLength: AES_GCM_TAG_LENGTH_BITS,\n additionalData: authenticating,\n },\n key,\n data,\n )\n\n const encryptedArray = new Uint8Array(encrypted)\n const combined = new Uint8Array(iv.length + encryptedArray.length)\n combined.set(iv)\n combined.set(encryptedArray, iv.length)\n return combined\n}\n\nexport async function decryptAesGcm(data: Uint8Array, key: CryptoKey, authenticating: Uint8Array = new Uint8Array()): Promise<Uint8Array> {\n const iv = data.slice(0, 12) // nonce is the first 12 bytes\n const encrypted = data.slice(12) // ciphertext and tag of 128 bits\n const decrypted = await crypto.subtle.decrypt({\n name: 'AES-GCM',\n iv,\n tagLength: AES_GCM_TAG_LENGTH_BITS,\n additionalData: authenticating,\n }, key, encrypted)\n return new Uint8Array(decrypted)\n}\n"]}
1
+ {"version":3,"sources":["../src/common/crypto/aes-sealed.ts"],"names":["encryptAesGcm","data","key","authenticating","iv","encrypted","encryptedArray","combined","decryptAesGcm","decrypted"],"mappings":"AAEA,+EAAA,SAAsBA,CAAAA,CAAcC,CAAAA,CAAkBC,CAAAA,CAAgBC,CAAAA,CAA6B,IAAI,UAAA,CAAmC,CACxI,IAAMC,CAAAA,CAAK,MAAA,CAAO,eAAA,CAAgB,IAAI,UAAA,CAAW,EAAE,CAAC,CAAA,CAC9CC,CAAAA,CAAY,MAAM,MAAA,CAAO,MAAA,CAAO,OAAA,CACpC,CACE,IAAA,CAAM,SAAA,CACN,EAAA,CAAAD,CAAAA,CACA,SAAA,CAAW,GAAA,CACX,cAAA,CAAgBD,CAClB,CAAA,CACAD,CAAAA,CACAD,CACF,CAAA,CAEMK,CAAAA,CAAiB,IAAI,UAAA,CAAWD,CAAS,CAAA,CACzCE,CAAAA,CAAW,IAAI,UAAA,CAAWH,CAAAA,CAAG,MAAA,CAASE,CAAAA,CAAe,MAAM,CAAA,CACjE,OAAAC,CAAAA,CAAS,GAAA,CAAIH,CAAE,CAAA,CACfG,CAAAA,CAAS,GAAA,CAAID,CAAAA,CAAgBF,CAAAA,CAAG,MAAM,CAAA,CAC/BG,CACT,CAEA,MAAA,SAAsBC,CAAAA,CAAcP,CAAAA,CAAkBC,CAAAA,CAAgBC,CAAAA,CAA6B,IAAI,UAAA,CAAmC,CACxI,IAAMC,CAAAA,CAAKH,CAAAA,CAAK,KAAA,CAAM,CAAA,CAAG,EAAE,CAAA,CACrBI,CAAAA,CAAYJ,CAAAA,CAAK,KAAA,CAAM,EAAE,CAAA,CACzBQ,CAAAA,CAAY,MAAM,MAAA,CAAO,MAAA,CAAO,OAAA,CAAQ,CAC5C,IAAA,CAAM,SAAA,CACN,EAAA,CAAAL,CAAAA,CACA,SAAA,CAAW,GAAA,CACX,cAAA,CAAgBD,CAClB,CAAA,CAAGD,CAAAA,CAAKG,CAAS,CAAA,CACjB,OAAO,IAAI,UAAA,CAAWI,CAAS,CACjC,CAAA,6BAAA","file":"/home/runner/work/zeed/zeed/dist/chunk-5CHPHDA5.cjs","sourcesContent":["const AES_GCM_TAG_LENGTH_BITS = 128\n\nexport async function encryptAesGcm(data: Uint8Array, key: CryptoKey, authenticating: Uint8Array = new Uint8Array()): Promise<Uint8Array> {\n const iv = crypto.getRandomValues(new Uint8Array(12)) // AES-GCM requires a 12-byte IV\n const encrypted = await crypto.subtle.encrypt(\n {\n name: 'AES-GCM',\n iv,\n tagLength: AES_GCM_TAG_LENGTH_BITS,\n additionalData: authenticating,\n },\n key,\n data,\n )\n\n const encryptedArray = new Uint8Array(encrypted)\n const combined = new Uint8Array(iv.length + encryptedArray.length)\n combined.set(iv)\n combined.set(encryptedArray, iv.length)\n return combined\n}\n\nexport async function decryptAesGcm(data: Uint8Array, key: CryptoKey, authenticating: Uint8Array = new Uint8Array()): Promise<Uint8Array> {\n const iv = data.slice(0, 12) // nonce is the first 12 bytes\n const encrypted = data.slice(12) // ciphertext and tag of 128 bits\n const decrypted = await crypto.subtle.decrypt({\n name: 'AES-GCM',\n iv,\n tagLength: AES_GCM_TAG_LENGTH_BITS,\n additionalData: authenticating,\n }, key, encrypted)\n return new Uint8Array(decrypted)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/crypto/xaes.ts"],"names":["aesBlock","key","data","xor","block","halfKey","index","iv","k1","m","deriveKeyNonce","ivBytes","msb","i","kxBytes","encryptXAES","params","derived","decryptXAES","generateKeyXAES","extractable","importKeyXAES","format","keyData","exportKeyXAES"],"mappings":"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","file":"/Users/dirk/work/github-zeed/dist/chunk-5P4XZHKJ.cjs","sourcesContent":["// Original at https://github.com/dchest/xaes MIT License as of 2024-07-02\n// More at https://words.filippo.io/dispatches/xaes-256-gcm/\n\n/**\n * Implementation of XAES-256-GCM as defined in https://c2sp.org/XAES-256-GCM\n * based on the Web Cryptography API (https://www.w3.org/TR/WebCryptoAPI/).\n *\n * It uses a 256-bit AES-CBC CryptoKey and a 192-bit nonce to derive\n * a 256-bit key and a 96-bit nonce for AES-GCM.\n *\n * Due to the use of the standard CryptoKey and Web Cryptography API operations,\n * this implementation is fully compatible with other parts of the Web Cryptography API.\n * For example, keys can be stored in IndexedDB and be non-extractable. The only\n * additional requirement is that the key must have 'encrypt' usage even for decryption,\n * however, there's no real distinction between encryption and decryption operations\n * for AES-GCM anyway (you can simulate decryption by encrypting the ciphertext).\n */\n\n/**\n * Generates an AES block using the given key and data xored with the given xor.\n */\nasync function aesBlock(key: CryptoKey, data: BufferSource, xor: BufferSource): Promise<Uint8Array> {\n const block = await crypto.subtle.encrypt(\n { name: 'AES-CBC', iv: xor },\n key,\n data,\n )\n return new Uint8Array(block, 0, 16)\n}\n\n/**\n * Derives a half key.\n */\nasync function halfKey(index: number, key: CryptoKey, iv: Uint8Array, k1: Uint8Array): Promise<Uint8Array> {\n const m = new Uint8Array(16)\n m[1] = index\n m[2] = 0x58 // 'X'\n m.set(iv.subarray(0, 12), 4)\n return await aesBlock(key, m, k1)\n}\n\n/**\n * Derives a 256-bit key and 96-bit nonce from the given 256-bit key and a 192-bit nonce.\n */\nasync function deriveKeyNonce(key: CryptoKey, iv: BufferSource): Promise<{ key: CryptoKey, iv: Uint8Array }> {\n if (key.algorithm.name !== 'AES-CBC') {\n throw new Error('key must be for AES-CBC')\n }\n if (!key.usages.includes('encrypt')) {\n throw new Error('key must have \\'encrypt\\' usage')\n }\n // @ts-expect-error todo\n if (key.algorithm.length !== 256) {\n throw new Error('key must be 256 bits')\n }\n if (iv == null || iv.byteLength !== 24) {\n throw new Error('iv must be 24 bytes')\n }\n const ivBytes = ArrayBuffer.isView(iv)\n ? new Uint8Array(iv.buffer, iv.byteOffset, iv.byteLength)\n : new Uint8Array(iv)\n const k1 = await aesBlock(key, new Uint8Array(16), new Uint8Array(16))\n\n let msb = 0\n for (let i = k1.length - 1; i >= 0; i--) {\n [msb, k1[i]] = [(k1[i] >>> 7) & 0xFF, ((k1[i] << 1) | msb) & 0xFF]\n }\n k1[k1.length - 1] ^= (msb * 0b10000111) & 0xFF\n\n const kxBytes = new Uint8Array(32)\n kxBytes.set(await halfKey(0x01, key, ivBytes, k1), 0)\n kxBytes.set(await halfKey(0x02, key, ivBytes, k1), 16)\n\n const kx = await crypto.subtle.importKey(\n 'raw',\n kxBytes,\n { name: 'AES-GCM', length: 256 },\n false,\n [...key.usages],\n )\n return {\n key: kx,\n iv: ivBytes.subarray(12),\n }\n}\n/**\n * Encrypts data using XAES-256-GCM with the given key and iv.\n * Key must be a 256-bit AES-CBC CryptoKey with 'encrypt' usage.\n */\nexport async function encryptXAES(params: {\n iv: BufferSource\n additionalData?: BufferSource\n}, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer> {\n const derived = await deriveKeyNonce(key, params.iv)\n return await crypto.subtle.encrypt(\n {\n name: 'AES-GCM',\n iv: derived.iv,\n tagLength: 128,\n additionalData: params.additionalData ?? new Uint8Array(),\n },\n derived.key,\n data,\n )\n}\n\n/**\n * Decrypts data using XAES-256-GCM with the given key and iv.\n * Key must be a 256-bit AES-CBC CryptoKey with 'encrypt' and 'decrypt' usages.\n */\nexport async function decryptXAES(params: {\n iv: BufferSource\n additionalData?: BufferSource\n}, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer> {\n const derived = await deriveKeyNonce(key, params.iv)\n return await crypto.subtle.decrypt(\n {\n name: 'AES-GCM',\n iv: derived.iv,\n tagLength: 128,\n additionalData: params.additionalData ?? new Uint8Array(),\n },\n derived.key,\n data,\n )\n}\n\n/**\n * Generate a random key suitable for XAES-256-GCM.\n * The actual key is an AES-CBC CryptoKey with 256-bit length.\n *\n * This function is not necessary, as you can use crypto.subtle.generateKey with AES-CBC directly.\n */\nexport async function generateKeyXAES(extractable?: boolean): Promise<CryptoKey> {\n return await crypto.subtle.generateKey(\n {\n name: 'AES-CBC',\n // @ts-expect-error todo\n length: 256,\n },\n extractable,\n ['encrypt', 'decrypt'],\n )\n}\n\n/**\n * Import a key suitable for XAES-256-GCM.\n * The actual key must be an AES-CBC CryptoKey with 256-bit length.\n *\n * This function is not necessary, as you can use crypto.subtle.importKey with AES-CBC directly.\n */\nexport async function importKeyXAES(format: 'jwk' | 'raw' | 'pkcs8' | 'spki', keyData: BufferSource | JsonWebKey, extractable?: boolean): Promise<CryptoKey> {\n return await crypto.subtle.importKey( // @ts-expect-error-next-line\n format,\n keyData,\n { name: 'AES-CBC', length: 256 },\n extractable,\n ['encrypt', 'decrypt'],\n )\n}\n\n/**\n * Export a key.\n * The resulting export will have AES-CBC algorithm specified.\n *\n * This function is not necessary, as you can use crypto.subtle.exportKey directly.\n */\nexport async function exportKeyXAES(format: 'jwk' | 'pkcs8' | 'raw' | 'spki', key: CryptoKey): Promise<ArrayBuffer | JsonWebKey> {\n return await crypto.subtle.exportKey(format, key)\n}\n"]}
1
+ {"version":3,"sources":["../src/common/crypto/xaes.ts"],"names":["aesBlock","key","data","xor","block","halfKey","index","iv","k1","m","deriveKeyNonce","ivBytes","msb","i","kxBytes","encryptXAES","params","derived","decryptXAES","generateKeyXAES","extractable","importKeyXAES","format","keyData","exportKeyXAES"],"mappings":"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","file":"/home/runner/work/zeed/zeed/dist/chunk-5P4XZHKJ.cjs","sourcesContent":["// Original at https://github.com/dchest/xaes MIT License as of 2024-07-02\n// More at https://words.filippo.io/dispatches/xaes-256-gcm/\n\n/**\n * Implementation of XAES-256-GCM as defined in https://c2sp.org/XAES-256-GCM\n * based on the Web Cryptography API (https://www.w3.org/TR/WebCryptoAPI/).\n *\n * It uses a 256-bit AES-CBC CryptoKey and a 192-bit nonce to derive\n * a 256-bit key and a 96-bit nonce for AES-GCM.\n *\n * Due to the use of the standard CryptoKey and Web Cryptography API operations,\n * this implementation is fully compatible with other parts of the Web Cryptography API.\n * For example, keys can be stored in IndexedDB and be non-extractable. The only\n * additional requirement is that the key must have 'encrypt' usage even for decryption,\n * however, there's no real distinction between encryption and decryption operations\n * for AES-GCM anyway (you can simulate decryption by encrypting the ciphertext).\n */\n\n/**\n * Generates an AES block using the given key and data xored with the given xor.\n */\nasync function aesBlock(key: CryptoKey, data: BufferSource, xor: BufferSource): Promise<Uint8Array> {\n const block = await crypto.subtle.encrypt(\n { name: 'AES-CBC', iv: xor },\n key,\n data,\n )\n return new Uint8Array(block, 0, 16)\n}\n\n/**\n * Derives a half key.\n */\nasync function halfKey(index: number, key: CryptoKey, iv: Uint8Array, k1: Uint8Array): Promise<Uint8Array> {\n const m = new Uint8Array(16)\n m[1] = index\n m[2] = 0x58 // 'X'\n m.set(iv.subarray(0, 12), 4)\n return await aesBlock(key, m, k1)\n}\n\n/**\n * Derives a 256-bit key and 96-bit nonce from the given 256-bit key and a 192-bit nonce.\n */\nasync function deriveKeyNonce(key: CryptoKey, iv: BufferSource): Promise<{ key: CryptoKey, iv: Uint8Array }> {\n if (key.algorithm.name !== 'AES-CBC') {\n throw new Error('key must be for AES-CBC')\n }\n if (!key.usages.includes('encrypt')) {\n throw new Error('key must have \\'encrypt\\' usage')\n }\n // @ts-expect-error todo\n if (key.algorithm.length !== 256) {\n throw new Error('key must be 256 bits')\n }\n if (iv == null || iv.byteLength !== 24) {\n throw new Error('iv must be 24 bytes')\n }\n const ivBytes = ArrayBuffer.isView(iv)\n ? new Uint8Array(iv.buffer, iv.byteOffset, iv.byteLength)\n : new Uint8Array(iv)\n const k1 = await aesBlock(key, new Uint8Array(16), new Uint8Array(16))\n\n let msb = 0\n for (let i = k1.length - 1; i >= 0; i--) {\n [msb, k1[i]] = [(k1[i] >>> 7) & 0xFF, ((k1[i] << 1) | msb) & 0xFF]\n }\n k1[k1.length - 1] ^= (msb * 0b10000111) & 0xFF\n\n const kxBytes = new Uint8Array(32)\n kxBytes.set(await halfKey(0x01, key, ivBytes, k1), 0)\n kxBytes.set(await halfKey(0x02, key, ivBytes, k1), 16)\n\n const kx = await crypto.subtle.importKey(\n 'raw',\n kxBytes,\n { name: 'AES-GCM', length: 256 },\n false,\n [...key.usages],\n )\n return {\n key: kx,\n iv: ivBytes.subarray(12),\n }\n}\n/**\n * Encrypts data using XAES-256-GCM with the given key and iv.\n * Key must be a 256-bit AES-CBC CryptoKey with 'encrypt' usage.\n */\nexport async function encryptXAES(params: {\n iv: BufferSource\n additionalData?: BufferSource\n}, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer> {\n const derived = await deriveKeyNonce(key, params.iv)\n return await crypto.subtle.encrypt(\n {\n name: 'AES-GCM',\n iv: derived.iv,\n tagLength: 128,\n additionalData: params.additionalData ?? new Uint8Array(),\n },\n derived.key,\n data,\n )\n}\n\n/**\n * Decrypts data using XAES-256-GCM with the given key and iv.\n * Key must be a 256-bit AES-CBC CryptoKey with 'encrypt' and 'decrypt' usages.\n */\nexport async function decryptXAES(params: {\n iv: BufferSource\n additionalData?: BufferSource\n}, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer> {\n const derived = await deriveKeyNonce(key, params.iv)\n return await crypto.subtle.decrypt(\n {\n name: 'AES-GCM',\n iv: derived.iv,\n tagLength: 128,\n additionalData: params.additionalData ?? new Uint8Array(),\n },\n derived.key,\n data,\n )\n}\n\n/**\n * Generate a random key suitable for XAES-256-GCM.\n * The actual key is an AES-CBC CryptoKey with 256-bit length.\n *\n * This function is not necessary, as you can use crypto.subtle.generateKey with AES-CBC directly.\n */\nexport async function generateKeyXAES(extractable?: boolean): Promise<CryptoKey> {\n return await crypto.subtle.generateKey(\n {\n name: 'AES-CBC',\n // @ts-expect-error todo\n length: 256,\n },\n extractable,\n ['encrypt', 'decrypt'],\n )\n}\n\n/**\n * Import a key suitable for XAES-256-GCM.\n * The actual key must be an AES-CBC CryptoKey with 256-bit length.\n *\n * This function is not necessary, as you can use crypto.subtle.importKey with AES-CBC directly.\n */\nexport async function importKeyXAES(format: 'jwk' | 'raw' | 'pkcs8' | 'spki', keyData: BufferSource | JsonWebKey, extractable?: boolean): Promise<CryptoKey> {\n return await crypto.subtle.importKey( // @ts-expect-error-next-line\n format,\n keyData,\n { name: 'AES-CBC', length: 256 },\n extractable,\n ['encrypt', 'decrypt'],\n )\n}\n\n/**\n * Export a key.\n * The resulting export will have AES-CBC algorithm specified.\n *\n * This function is not necessary, as you can use crypto.subtle.exportKey directly.\n */\nexport async function exportKeyXAES(format: 'jwk' | 'pkcs8' | 'raw' | 'spki', key: CryptoKey): Promise<ArrayBuffer | JsonWebKey> {\n return await crypto.subtle.exportKey(format, key)\n}\n"]}
@@ -1,2 +1,2 @@
1
- import{M as B,N as u,O as o,g as x,h as c,ja as U}from"./chunk-6GMDX4A4.js";import{a as w}from"./chunk-ZMKLRLPE.js";import{e as h,f as E}from"./chunk-2TGLRPFV.js";var y=class{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}};function R(){return new y}function T(t){let n=t.cpos;for(let i=0;i<t.bufs.length;i++)n+=t.bufs[i].length;return n}function k(t){let n=new Uint8Array(T(t)),i=0;for(let r=0;r<t.bufs.length;r++){let f=t.bufs[r];n.set(f,i),i+=f.length}return n.set(w(t.cbuf.buffer,0,t.cpos),i),n}function F(t,n){let i=t.cbuf.length;i-t.cpos<n&&(t.bufs.push(w(t.cbuf.buffer,0,t.cpos)),t.cbuf=new Uint8Array(Math.max(i,n)*2),t.cpos=0)}function e(t,n){let i=t.cbuf.length;t.cpos===i&&(t.bufs.push(t.cbuf),t.cbuf=new Uint8Array(i*2),t.cpos=0),t.cbuf[t.cpos++]=n}function p(t,n,i){let r=null;for(let f=0;f<t.bufs.length&&r===null;f++){let s=t.bufs[f];n<s.length?r=s:n-=s.length}r===null&&(r=t.cbuf),r[n]=i}var Z=e,q=p;function G(t,n){e(t,n&255),e(t,n>>>8&255)}function H(t,n,i){p(t,n,i&255),p(t,n+1,i>>>8&255)}function J(t,n){for(let i=0;i<4;i++)e(t,n&255),n>>>=8}function K(t,n){for(let i=3;i>=0;i--)e(t,n>>>8*i&255)}function Q(t,n,i){for(let r=0;r<4;r++)p(t,n+r,i&255),i>>>=8}function b(t,n){for(;n>127;)e(t,128|127&n),n=Math.floor(n/128);e(t,127&n)}function L(t){return t!==0?t<0:1/t<0}function M(t,n){let i=L(n);for(i&&(n=-n),e(t,(n>63?128:0)|(i?64:0)|63&n),n=Math.floor(n/64);n>0;)e(t,(n>127?128:0)|127&n),n=Math.floor(n/128)}function V(t,n){let i=t.cbuf.length,r=t.cpos,f=Math.min(i-r,n.length),s=n.length-f;t.cbuf.set(n.subarray(0,f),r),t.cpos+=f,s>0&&(t.bufs.push(t.cbuf),t.cbuf=new Uint8Array(Math.max(i*2,s)),t.cbuf.set(n.subarray(f)),t.cpos=s)}function S(t,n){b(t,n.byteLength),V(t,n)}var l,A;function v(t,n){if(l==null&&(l=new Uint8Array(3e4),A=l.length/3),n.length<A){let i=h().encodeInto(n,l).written||0;b(t,i);for(let r=0;r<i;r++)e(t,l[r])}else S(t,E(n))}function D(t,n){let i=unescape(encodeURIComponent(n)),r=i.length;b(t,r);for(let f=0;f<r;f++)e(t,i.codePointAt(f))}function m(t,n){return h()?.encodeInto?v(t,n):D(t,n)}function W(t,n){return V(t,k(n))}function g(t,n){F(t,n);let i=new DataView(t.cbuf.buffer,t.cpos,n);return t.cpos+=n,i}function N(t,n){return g(t,4).setFloat32(0,n,!1)}function _(t,n){return g(t,8).setFloat64(0,n,!1)}function C(t,n){return g(t,8).setBigInt64(0,n,!1)}function X(t,n){return g(t,8).setBigUint64(0,n,!1)}var a;function P(t){return a==null&&(a=new DataView(new ArrayBuffer(4))),a.setFloat32(0,t),a.getFloat32(0)===t}function I(t,n){switch(typeof n){case"string":e(t,119),m(t,n);break;case"number":Number.isInteger(n)&&Math.abs(n)<=2147483647?(e(t,125),M(t,n)):P(n)?(e(t,124),N(t,n)):(e(t,123),_(t,n));break;case"bigint":e(t,122),C(t,n);break;case"object":if(n===null)e(t,126);else if(Array.isArray(n)){e(t,117),b(t,n.length);for(let i=0;i<n.length;i++)I(t,n[i])}else if(n instanceof Uint8Array)e(t,116),S(t,n);else{e(t,118);let i=Object.keys(n);i.sort(),b(t,i.length);for(let r=0;r<i.length;r++){let f=i[r];m(t,f),I(t,n[f])}}break;case"boolean":e(t,n?120:121);break;default:e(t,127)}}export{y as a,R as b,T as c,k as d,F as e,e as f,p as g,Z as h,q as i,G as j,H as k,J as l,K as m,Q as n,b as o,L as p,M as q,V as r,S as s,m as t,W as u,g as v,N as w,_ as x,C as y,X as z,I as A};
2
- //# sourceMappingURL=chunk-JSFCIROJ.js.map
1
+ import{a as w}from"./chunk-ZMKLRLPE.js";import{e as h,f as E}from"./chunk-2TGLRPFV.js";import{M as B,N as u,O as o,g as x,h as c,ja as U}from"./chunk-6GMDX4A4.js";var y=class{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}};function R(){return new y}function T(t){let n=t.cpos;for(let i=0;i<t.bufs.length;i++)n+=t.bufs[i].length;return n}function k(t){let n=new Uint8Array(T(t)),i=0;for(let r=0;r<t.bufs.length;r++){let f=t.bufs[r];n.set(f,i),i+=f.length}return n.set(w(t.cbuf.buffer,0,t.cpos),i),n}function F(t,n){let i=t.cbuf.length;i-t.cpos<n&&(t.bufs.push(w(t.cbuf.buffer,0,t.cpos)),t.cbuf=new Uint8Array(Math.max(i,n)*2),t.cpos=0)}function e(t,n){let i=t.cbuf.length;t.cpos===i&&(t.bufs.push(t.cbuf),t.cbuf=new Uint8Array(i*2),t.cpos=0),t.cbuf[t.cpos++]=n}function p(t,n,i){let r=null;for(let f=0;f<t.bufs.length&&r===null;f++){let s=t.bufs[f];n<s.length?r=s:n-=s.length}r===null&&(r=t.cbuf),r[n]=i}var Z=e,q=p;function G(t,n){e(t,n&255),e(t,n>>>8&255)}function H(t,n,i){p(t,n,i&255),p(t,n+1,i>>>8&255)}function J(t,n){for(let i=0;i<4;i++)e(t,n&255),n>>>=8}function K(t,n){for(let i=3;i>=0;i--)e(t,n>>>8*i&255)}function Q(t,n,i){for(let r=0;r<4;r++)p(t,n+r,i&255),i>>>=8}function b(t,n){for(;n>127;)e(t,128|127&n),n=Math.floor(n/128);e(t,127&n)}function L(t){return t!==0?t<0:1/t<0}function M(t,n){let i=L(n);for(i&&(n=-n),e(t,(n>63?128:0)|(i?64:0)|63&n),n=Math.floor(n/64);n>0;)e(t,(n>127?128:0)|127&n),n=Math.floor(n/128)}function V(t,n){let i=t.cbuf.length,r=t.cpos,f=Math.min(i-r,n.length),s=n.length-f;t.cbuf.set(n.subarray(0,f),r),t.cpos+=f,s>0&&(t.bufs.push(t.cbuf),t.cbuf=new Uint8Array(Math.max(i*2,s)),t.cbuf.set(n.subarray(f)),t.cpos=s)}function S(t,n){b(t,n.byteLength),V(t,n)}var l,A;function v(t,n){if(l==null&&(l=new Uint8Array(3e4),A=l.length/3),n.length<A){let i=h().encodeInto(n,l).written||0;b(t,i);for(let r=0;r<i;r++)e(t,l[r])}else S(t,E(n))}function D(t,n){let i=unescape(encodeURIComponent(n)),r=i.length;b(t,r);for(let f=0;f<r;f++)e(t,i.codePointAt(f))}function m(t,n){return h()?.encodeInto?v(t,n):D(t,n)}function W(t,n){return V(t,k(n))}function g(t,n){F(t,n);let i=new DataView(t.cbuf.buffer,t.cpos,n);return t.cpos+=n,i}function N(t,n){return g(t,4).setFloat32(0,n,!1)}function _(t,n){return g(t,8).setFloat64(0,n,!1)}function C(t,n){return g(t,8).setBigInt64(0,n,!1)}function X(t,n){return g(t,8).setBigUint64(0,n,!1)}var a;function P(t){return a==null&&(a=new DataView(new ArrayBuffer(4))),a.setFloat32(0,t),a.getFloat32(0)===t}function I(t,n){switch(typeof n){case"string":e(t,119),m(t,n);break;case"number":Number.isInteger(n)&&Math.abs(n)<=2147483647?(e(t,125),M(t,n)):P(n)?(e(t,124),N(t,n)):(e(t,123),_(t,n));break;case"bigint":e(t,122),C(t,n);break;case"object":if(n===null)e(t,126);else if(Array.isArray(n)){e(t,117),b(t,n.length);for(let i=0;i<n.length;i++)I(t,n[i])}else if(n instanceof Uint8Array)e(t,116),S(t,n);else{e(t,118);let i=Object.keys(n);i.sort(),b(t,i.length);for(let r=0;r<i.length;r++){let f=i[r];m(t,f),I(t,n[f])}}break;case"boolean":e(t,n?120:121);break;default:e(t,127)}}export{y as a,R as b,T as c,k as d,F as e,e as f,p as g,Z as h,q as i,G as j,H as k,J as l,K as m,Q as n,b as o,L as p,M as q,V as r,S as s,m as t,W as u,g as v,N as w,_ as x,C as y,X as z,I as A};
2
+ //# sourceMappingURL=chunk-5TJTQRWT.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/dirk/work/github-zeed/dist/chunk-5VHLMAKU.cjs"],"names":[],"mappings":"AAAA","file":"/Users/dirk/work/github-zeed/dist/chunk-5VHLMAKU.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-5VHLMAKU.cjs"],"names":[],"mappings":"AAAA","file":"/home/runner/work/zeed/zeed/dist/chunk-5VHLMAKU.cjs"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/browser/log/log-colors.ts"],"names":["browserSupportsColors"],"mappings":"AAIO,kFAASA,CAAAA,CAAAA,CAAiC,CAI/C,OACE,OAAO,MAAA,CAAW,GAAA,EACf,MAAA,CAAO,OAAA,EAAA,CAEN,MAAA,CAAO,OAAA,CAAQ,IAAA,GAAS,UAAA,EAAc,MAAA,CAAO,OAAA,CAAQ,MAAA,CAAA,CAElD,CAAA,CAAA,CAKP,OAAO,SAAA,CAAc,GAAA,EAClB,SAAA,CAAU,SAAA,EACV,SAAA,CAAU,SAAA,CAAU,WAAA,CAAY,CAAA,CAAE,KAAA,CAAM,uBAAuB,CAAA,CAE3D,CAAA,CAAA,CAMN,OAAO,QAAA,CAAa,GAAA,EAChB,QAAA,CAAS,eAAA,EACT,QAAA,CAAS,eAAA,CAAgB,KAAA,EAEzB,QAAA,CAAS,eAAA,CAAgB,KAAA,CAAM,gBAAA,EAEhC,OAAO,MAAA,CAAW,GAAA,EACjB,MAAA,CAAO,OAAA,EAAA,CAEN,MAAA,CAAO,OAAA,CAAQ,OAAA,EAGb,MAAA,CAAO,OAAA,CAAQ,SAAA,EAAa,MAAA,CAAO,OAAA,CAAQ,KAAA,CAAA,EAG7C,OAAO,SAAA,CAAc,GAAA,EACpB,SAAA,CAAU,SAAA,EACV,SAAA,CAAU,SAAA,CAAU,WAAA,CAAY,CAAA,CAAE,KAAA,CAAM,gBAAgB,CAAA,EAExD,MAAA,CAAO,QAAA,CAAS,MAAA,CAAO,EAAA,CAAI,EAAE,CAAA,EAAK,EAAA,EAEnC,OAAO,SAAA,CAAc,GAAA,EACpB,SAAA,CAAU,SAAA,EACV,SAAA,CAAU,SAAA,CAAU,WAAA,CAAY,CAAA,CAAE,KAAA,CAAM,oBAAoB,CAEvE,CAAA,cAAA","file":"/Users/dirk/work/github-zeed/dist/chunk-5W7DNVOJ.cjs","sourcesContent":["/* eslint-disable node/prefer-global/process */\n\n// Taken from https://github.com/visionmedia/debug/blob/master/src/browser.js#L27\n\nexport function browserSupportsColors(): boolean {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (\n typeof window !== 'undefined'\n && window.process\n // @ts-expect-error xxx\n && (window.process.type === 'renderer' || window.process.__nwjs)\n ) {\n return true\n }\n\n // Internet Explorer and Edge do not support colors.\n if (\n typeof navigator !== 'undefined'\n && navigator.userAgent\n && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)\n ) {\n return false\n }\n\n // Is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (\n (typeof document !== 'undefined'\n && document.documentElement\n && document.documentElement.style\n // @ts-expect-error xxx\n && document.documentElement.style.WebkitAppearance)\n // Is firebug? http://stackoverflow.com/a/398120/376773\n || (typeof window !== 'undefined'\n && window.console\n // @ts-expect-error xxx\n && (window.console.firebug\n // @ts-expect-error xxx\n\n || (window.console.exception && window.console.table)))\n // Is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n || (typeof navigator !== 'undefined'\n && navigator.userAgent\n && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)\n // eslint-disable-next-line regexp/no-legacy-features\n && Number.parseInt(RegExp.$1, 10) >= 31)\n // Double check webkit in userAgent just in case we are in a worker\n || (typeof navigator !== 'undefined'\n && navigator.userAgent\n && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/))\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/browser/log/log-colors.ts"],"names":["browserSupportsColors"],"mappings":"AAIO,kFAASA,CAAAA,CAAAA,CAAiC,CAI/C,OACE,OAAO,MAAA,CAAW,GAAA,EACf,MAAA,CAAO,OAAA,EAAA,CAEN,MAAA,CAAO,OAAA,CAAQ,IAAA,GAAS,UAAA,EAAc,MAAA,CAAO,OAAA,CAAQ,MAAA,CAAA,CAElD,CAAA,CAAA,CAKP,OAAO,SAAA,CAAc,GAAA,EAClB,SAAA,CAAU,SAAA,EACV,SAAA,CAAU,SAAA,CAAU,WAAA,CAAY,CAAA,CAAE,KAAA,CAAM,uBAAuB,CAAA,CAE3D,CAAA,CAAA,CAMN,OAAO,QAAA,CAAa,GAAA,EAChB,QAAA,CAAS,eAAA,EACT,QAAA,CAAS,eAAA,CAAgB,KAAA,EAEzB,QAAA,CAAS,eAAA,CAAgB,KAAA,CAAM,gBAAA,EAEhC,OAAO,MAAA,CAAW,GAAA,EACjB,MAAA,CAAO,OAAA,EAAA,CAEN,MAAA,CAAO,OAAA,CAAQ,OAAA,EAGb,MAAA,CAAO,OAAA,CAAQ,SAAA,EAAa,MAAA,CAAO,OAAA,CAAQ,KAAA,CAAA,EAG7C,OAAO,SAAA,CAAc,GAAA,EACpB,SAAA,CAAU,SAAA,EACV,SAAA,CAAU,SAAA,CAAU,WAAA,CAAY,CAAA,CAAE,KAAA,CAAM,gBAAgB,CAAA,EAExD,MAAA,CAAO,QAAA,CAAS,MAAA,CAAO,EAAA,CAAI,EAAE,CAAA,EAAK,EAAA,EAEnC,OAAO,SAAA,CAAc,GAAA,EACpB,SAAA,CAAU,SAAA,EACV,SAAA,CAAU,SAAA,CAAU,WAAA,CAAY,CAAA,CAAE,KAAA,CAAM,oBAAoB,CAEvE,CAAA,cAAA","file":"/home/runner/work/zeed/zeed/dist/chunk-5W7DNVOJ.cjs","sourcesContent":["/* eslint-disable node/prefer-global/process */\n\n// Taken from https://github.com/visionmedia/debug/blob/master/src/browser.js#L27\n\nexport function browserSupportsColors(): boolean {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (\n typeof window !== 'undefined'\n && window.process\n // @ts-expect-error xxx\n && (window.process.type === 'renderer' || window.process.__nwjs)\n ) {\n return true\n }\n\n // Internet Explorer and Edge do not support colors.\n if (\n typeof navigator !== 'undefined'\n && navigator.userAgent\n && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)\n ) {\n return false\n }\n\n // Is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (\n (typeof document !== 'undefined'\n && document.documentElement\n && document.documentElement.style\n // @ts-expect-error xxx\n && document.documentElement.style.WebkitAppearance)\n // Is firebug? http://stackoverflow.com/a/398120/376773\n || (typeof window !== 'undefined'\n && window.console\n // @ts-expect-error xxx\n && (window.console.firebug\n // @ts-expect-error xxx\n\n || (window.console.exception && window.console.table)))\n // Is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n || (typeof navigator !== 'undefined'\n && navigator.userAgent\n && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)\n // eslint-disable-next-line regexp/no-legacy-features\n && Number.parseInt(RegExp.$1, 10) >= 31)\n // Double check webkit in userAgent just in case we are in a worker\n || (typeof navigator !== 'undefined'\n && navigator.userAgent\n && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/))\n )\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/dirk/work/github-zeed/dist/chunk-6HCJ6MJQ.cjs","../src/common/data/day-legacy.ts"],"names":["Day","_Day","days","date","n","dateString","utc","value","year","month","day","sep","baseString"],"mappings":"AAAA,qoBAAwC,wDAAyC,ICepEA,CAAAA,CAAN,MAAMC,CAAI,CAGf,IAAI,KAAA,CAAA,CAAQ,CACV,OAAO,IAAA,CAAK,IACd,CAEA,WAAA,CAAYC,CAAAA,CAAuB,CACjC,EAAA,CAAI,OAAOA,CAAAA,EAAS,QAAA,CAAU,CAC5B,IAAA,CAAK,IAAA,CAAOA,CAAAA,CACZ,MACF,CAKA,EAAA,CAHIA,CAAAA,EAAQ,IAAA,EAAA,CACVA,CAAAA,iBAAOD,CAAAA,mBAAI,IAAA,mBAAKC,CAAI,CAAA,6BAAG,MAAA,CAAA,CAErBA,CAAAA,EAAQ,IAAA,CAAM,CAChB,IAAMC,CAAAA,CAAO,IAAI,IAAA,CACjB,IAAA,CAAK,IAAA,CACDA,CAAAA,CAAK,WAAA,CAAY,CAAA,CAAI,GAAA,CAAA,CACpBA,CAAAA,CAAK,QAAA,CAAS,CAAA,CAAI,CAAA,CAAA,CAAK,GAAA,CACxBA,CAAAA,CAAK,OAAA,CAAQ,CACnB,CAAA,KAEE,IAAA,CAAK,IAAA,CAAOD,CAEhB,CAEA,OAAO,UAAA,CAAWE,CAAAA,CAAgB,CAChC,OAAO,IAAIH,CAAAA,CAAIG,CAAC,CAClB,CAEA,OAAO,UAAA,CAAWC,CAAAA,CAAqC,CACrD,OAAOJ,CAAAA,CAAI,IAAA,CAAK,CAACI,CAAAA,CAAW,OAAA,CAAQ,KAAA,CAAO,EAAE,CAAA,CAAE,KAAA,CAAM,CAAA,CAAG,CAAC,CAAC,CAC5D,CAEA,OAAO,QAAA,CAASF,CAAAA,CAAYG,CAAAA,CAAM,CAAA,CAAA,CAAY,CAC5C,OACEA,CAAAA,CACIL,CAAAA,CAAI,UAAA,CAAWE,CAAAA,CAAK,WAAA,CAAY,CAAA,CAAE,MAAA,CAAO,CAAA,CAAG,EAAE,CAAC,CAAA,CAC/CF,CAAAA,CAAI,IAAA,CACJE,CAAAA,CAAK,WAAA,CAAY,CAAA,CAAI,GAAA,CAAA,CAClBA,CAAAA,CAAK,QAAA,CAAS,CAAA,CAAI,CAAA,CAAA,CAAK,GAAA,CACxBA,CAAAA,CAAK,OAAA,CAAQ,CACjB,CAEN,CAEA,OAAO,WAAA,CAAYA,CAAAA,CAAiB,CAClC,OAAOF,CAAAA,CAAI,QAAA,CAASE,CAAAA,CAAM,CAAA,CAAI,CAChC,CAGA,OAAO,WAAA,CAAYA,CAAAA,CAAiB,CAClC,OAAOF,CAAAA,CAAI,QAAA,CAASE,CAAAA,CAAM,CAAA,CAAI,CAChC,CAEA,OAAO,IAAA,CAAKI,CAAAA,CAAuBD,CAAAA,CAAM,CAAA,CAAA,CAAwB,CAC/D,EAAA,CAAI,OAAOC,CAAAA,EAAU,QAAA,CACnB,OAAIA,CAAAA,CAAQ,GAAA,CACV,KAAA,CAAA,CACK,IAAIN,CAAAA,CAAIM,CAAK,CAAA,CAEjB,EAAA,CAAI,OAAOA,CAAAA,EAAU,QAAA,CACxB,OAAON,CAAAA,CAAI,UAAA,CAAWM,CAAK,CAAA,CAExB,EAAA,CAAI,KAAA,CAAM,OAAA,CAAQA,CAAK,CAAA,EAAKA,CAAAA,CAAM,MAAA,GAAW,CAAA,CAAG,CACnD,GAAM,CAACC,CAAAA,CAAMC,CAAAA,CAAQ,CAAA,CAAGC,CAAAA,CAAM,CAAC,CAAA,CAAIH,CAAAA,CACnC,OAAIE,CAAAA,CAAQ,CAAA,EAAKA,CAAAA,CAAQ,EAAA,EAAMC,CAAAA,CAAM,CAAA,EAAKA,CAAAA,CAAM,EAAA,CAC9C,KAAA,CAAA,CACK,IAAIT,CAAAA,CAAIO,CAAAA,CAAO,GAAA,CAAQC,CAAAA,CAAQ,GAAA,CAAMC,CAAG,CACjD,CAAA,IACK,CAAA,EAAA,CAAIH,EAAAA,WAAiB,IAAA,CACxB,OAAON,CAAAA,CAAI,QAAA,CAASM,CAAAA,CAAOD,CAAG,CAAA,CAE3B,EAAA,CAAIC,EAAAA,WAAiBN,CAAAA,CACxB,OAAOM,CAAAA,CAEX,CAEA,QAAA,CAAA,CAAmB,CACjB,OAAO,IAAA,CAAK,IACd,CAKA,MAAA,CAAA,CAAS,CACP,OAAO,IAAA,CAAK,IACd,CAEA,QAAA,CAASI,CAAAA,CAAM,GAAA,CAAK,CAClB,IAAMC,CAAAA,CAAa,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA,CACnC,OACEA,CAAAA,CAAW,KAAA,CAAM,CAAA,CAAG,CAAC,CAAA,CACnBD,CAAAA,CACAC,CAAAA,CAAW,KAAA,CAAM,CAAA,CAAG,CAAC,CAAA,CACrBD,CAAAA,CACAC,CAAAA,CAAW,KAAA,CAAM,CAAA,CAAG,CAAC,CAE3B,CAEA,MAAA,CAAON,CAAAA,CAAM,CAAA,CAAA,CAAa,CACxB,OAAOA,CAAAA,CACH,IAAI,IAAA,CAAK,CAAA,EAAA","file":"/Users/dirk/work/github-zeed/dist/chunk-6HCJ6MJQ.cjs","sourcesContent":[null,"import { isPromise } from '../exec/promise'\nimport type { DayInput, DayValue } from './day'\nimport { DAY_MS } from './day'\n\n// See also and alternatives:\n// https://blog.openreplay.com/is-it-time-for-the-javascript-temporal-api\n// https://github.com/iamkun/dayjs\n// https://github.com/date-fns/date-fns\n\nexport type DayInputLegacy = DayInput | Day\n\n/**\n * Date represented as positive integer value. Years smaller 0 are not supported.\n * @deprecated\n */\nexport class Day {\n days: DayValue\n\n get value() {\n return this.days\n }\n\n constructor(days?: DayInputLegacy) {\n if (typeof days === 'number') {\n this.days = days\n return\n }\n\n if (days != null)\n days = Day.from(days)?.days\n\n if (days == null) {\n const date = new Date()\n this.days\n = date.getFullYear() * 10000\n + (date.getMonth() + 1) * 100\n + date.getDate()\n }\n else {\n this.days = days\n }\n }\n\n static fromNumber(n: number): Day {\n return new Day(n)\n }\n\n static fromString(dateString: string): Day | undefined {\n return Day.from(+dateString.replace(/\\D/g, '').slice(0, 8))\n }\n\n static fromDate(date: Date, utc = false): Day {\n return (\n utc\n ? Day.fromString(date.toISOString().substr(0, 10))\n : Day.from(\n date.getFullYear() * 10000\n + (date.getMonth() + 1) * 100\n + date.getDate(),\n )\n ) as Day\n }\n\n static fromDateUTC(date: Date): Day {\n return Day.fromDate(date, true)\n }\n\n /** @deprecated use fromDateUTC */\n static fromDateGMT(date: Date): Day {\n return Day.fromDate(date, true)\n }\n\n static from(value: DayInputLegacy, utc = false): Day | undefined {\n if (typeof value === 'number') {\n if (value < 100)\n return\n return new Day(value)\n }\n else if (typeof value === 'string') {\n return Day.fromString(value)\n }\n else if (Array.isArray(value) && value.length === 3) {\n const [year, month = 1, day = 1] = value\n if (month < 1 || month > 12 || day < 1 || day > 31)\n return\n return new Day(year * 10000 + month * 100 + day)\n }\n else if (value instanceof Date) {\n return Day.fromDate(value, utc)\n }\n else if (value instanceof Day) {\n return value\n }\n }\n\n toNumber(): number {\n return this.days\n }\n\n // Transformer\n\n /** Just for future extensions */\n toJson() {\n return this.days\n }\n\n toString(sep = '-') {\n const baseString = String(this.days)\n return (\n baseString.slice(0, 4)\n + sep\n + baseString.slice(4, 6)\n + sep\n + baseString.slice(6, 8)\n )\n }\n\n toDate(utc = false): Date {\n return utc\n ? new Date(`${this.toString()}T00:00:00.000Z`)\n : new Date(\n this.days / 10000, // year\n ((this.days / 100) % 100) - 1, // month\n this.days % 100, // day\n )\n }\n\n toDateUTC() {\n return this.toDate(true)\n }\n\n /** @deprecated use toDateUTC */\n toDateGMT() {\n return this.toDate(true)\n }\n\n get year() {\n return Math.floor(this.days / 10000)\n }\n\n get month() {\n return Math.floor((this.days / 100) % 100)\n }\n\n get day() {\n return Math.floor(this.days % 100)\n }\n\n // Calculations\n\n dayOffset(offset: number): Day {\n // Important! Don't use local time here due to summer/winter time days can\n // be longer or shorter!\n return Day.fromDateUTC(\n new Date(this.toDateUTC().getTime() + offset * DAY_MS),\n )\n }\n\n monthStart(): Day {\n return Day.from([this.year, this.month, 1])!\n }\n\n yearStart(): Day {\n return Day.from([this.year, 1, 1])!\n }\n\n /** Very stupid approach, only works for days <= 28 */\n monthOffset(offset: number): Day {\n const m = this.month + offset\n let mm = Math.floor((m - 1) % 12) + 1\n if (mm === 0)\n mm = 12\n const yy = Math.floor((m - 1) / 12)\n // log(\"calc\", m, mm, yy, [this.year + yy, mm, this.day])\n return Day.from([this.year + yy, mm, this.day])!\n }\n\n daysUntil(otherDay: DayInputLegacy): number {\n return Math.round(\n (new Day(otherDay)?.toDateUTC().getTime() - this.toDateUTC().getTime())\n / DAY_MS,\n )\n }\n\n // Shortcuts\n\n yesterday() {\n return this.dayOffset(-1)\n }\n\n tomorrow() {\n return this.dayOffset(+1)\n }\n}\n\nexport async function forEachDay(\n from: DayInputLegacy,\n to: DayInputLegacy,\n handler: (date: Day) => Promise<void> | void,\n) {\n let start = Day.from(from)\n const end = Day.from(to)\n // eslint-disable-next-line no-unmodified-loop-condition\n while (start && end && start?.days <= end?.days) {\n const result = handler(start)\n if (isPromise(result))\n await result\n start = start.dayOffset(+1)\n }\n}\n\nexport function today(): Day {\n return new Day()\n}\n\n/** @deprecated */\nexport function day(days?: DayInputLegacy): Day {\n return new Day(days)\n}\n\nexport function dateStringToDays(dateString: string): number {\n return Day.fromDate(new Date(dateString)).days\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-6HCJ6MJQ.cjs","../src/common/data/day-legacy.ts"],"names":["Day","_Day","days","date","n","dateString","utc","value","year","month","day","sep","baseString"],"mappings":"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","file":"/home/runner/work/zeed/zeed/dist/chunk-6HCJ6MJQ.cjs","sourcesContent":[null,"import { isPromise } from '../exec/promise'\nimport type { DayInput, DayValue } from './day'\nimport { DAY_MS } from './day'\n\n// See also and alternatives:\n// https://blog.openreplay.com/is-it-time-for-the-javascript-temporal-api\n// https://github.com/iamkun/dayjs\n// https://github.com/date-fns/date-fns\n\nexport type DayInputLegacy = DayInput | Day\n\n/**\n * Date represented as positive integer value. Years smaller 0 are not supported.\n * @deprecated\n */\nexport class Day {\n days: DayValue\n\n get value() {\n return this.days\n }\n\n constructor(days?: DayInputLegacy) {\n if (typeof days === 'number') {\n this.days = days\n return\n }\n\n if (days != null)\n days = Day.from(days)?.days\n\n if (days == null) {\n const date = new Date()\n this.days\n = date.getFullYear() * 10000\n + (date.getMonth() + 1) * 100\n + date.getDate()\n }\n else {\n this.days = days\n }\n }\n\n static fromNumber(n: number): Day {\n return new Day(n)\n }\n\n static fromString(dateString: string): Day | undefined {\n return Day.from(+dateString.replace(/\\D/g, '').slice(0, 8))\n }\n\n static fromDate(date: Date, utc = false): Day {\n return (\n utc\n ? Day.fromString(date.toISOString().substr(0, 10))\n : Day.from(\n date.getFullYear() * 10000\n + (date.getMonth() + 1) * 100\n + date.getDate(),\n )\n ) as Day\n }\n\n static fromDateUTC(date: Date): Day {\n return Day.fromDate(date, true)\n }\n\n /** @deprecated use fromDateUTC */\n static fromDateGMT(date: Date): Day {\n return Day.fromDate(date, true)\n }\n\n static from(value: DayInputLegacy, utc = false): Day | undefined {\n if (typeof value === 'number') {\n if (value < 100)\n return\n return new Day(value)\n }\n else if (typeof value === 'string') {\n return Day.fromString(value)\n }\n else if (Array.isArray(value) && value.length === 3) {\n const [year, month = 1, day = 1] = value\n if (month < 1 || month > 12 || day < 1 || day > 31)\n return\n return new Day(year * 10000 + month * 100 + day)\n }\n else if (value instanceof Date) {\n return Day.fromDate(value, utc)\n }\n else if (value instanceof Day) {\n return value\n }\n }\n\n toNumber(): number {\n return this.days\n }\n\n // Transformer\n\n /** Just for future extensions */\n toJson() {\n return this.days\n }\n\n toString(sep = '-') {\n const baseString = String(this.days)\n return (\n baseString.slice(0, 4)\n + sep\n + baseString.slice(4, 6)\n + sep\n + baseString.slice(6, 8)\n )\n }\n\n toDate(utc = false): Date {\n return utc\n ? new Date(`${this.toString()}T00:00:00.000Z`)\n : new Date(\n this.days / 10000, // year\n ((this.days / 100) % 100) - 1, // month\n this.days % 100, // day\n )\n }\n\n toDateUTC() {\n return this.toDate(true)\n }\n\n /** @deprecated use toDateUTC */\n toDateGMT() {\n return this.toDate(true)\n }\n\n get year() {\n return Math.floor(this.days / 10000)\n }\n\n get month() {\n return Math.floor((this.days / 100) % 100)\n }\n\n get day() {\n return Math.floor(this.days % 100)\n }\n\n // Calculations\n\n dayOffset(offset: number): Day {\n // Important! Don't use local time here due to summer/winter time days can\n // be longer or shorter!\n return Day.fromDateUTC(\n new Date(this.toDateUTC().getTime() + offset * DAY_MS),\n )\n }\n\n monthStart(): Day {\n return Day.from([this.year, this.month, 1])!\n }\n\n yearStart(): Day {\n return Day.from([this.year, 1, 1])!\n }\n\n /** Very stupid approach, only works for days <= 28 */\n monthOffset(offset: number): Day {\n const m = this.month + offset\n let mm = Math.floor((m - 1) % 12) + 1\n if (mm === 0)\n mm = 12\n const yy = Math.floor((m - 1) / 12)\n // log(\"calc\", m, mm, yy, [this.year + yy, mm, this.day])\n return Day.from([this.year + yy, mm, this.day])!\n }\n\n daysUntil(otherDay: DayInputLegacy): number {\n return Math.round(\n (new Day(otherDay)?.toDateUTC().getTime() - this.toDateUTC().getTime())\n / DAY_MS,\n )\n }\n\n // Shortcuts\n\n yesterday() {\n return this.dayOffset(-1)\n }\n\n tomorrow() {\n return this.dayOffset(+1)\n }\n}\n\nexport async function forEachDay(\n from: DayInputLegacy,\n to: DayInputLegacy,\n handler: (date: Day) => Promise<void> | void,\n) {\n let start = Day.from(from)\n const end = Day.from(to)\n // eslint-disable-next-line no-unmodified-loop-condition\n while (start && end && start?.days <= end?.days) {\n const result = handler(start)\n if (isPromise(result))\n await result\n start = start.dayOffset(+1)\n }\n}\n\nexport function today(): Day {\n return new Day()\n}\n\n/** @deprecated */\nexport function day(days?: DayInputLegacy): Day {\n return new Day(days)\n}\n\nexport function dateStringToDays(dateString: string): number {\n return Day.fromDate(new Date(dateString)).days\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/dirk/work/github-zeed/dist/chunk-6U6Q5CBH.cjs","../src/common/data/path.ts"],"names":["MAX_FILENAME_LENGTH","reRelativePath","reTrailingPeriods","reFilenameIllegal","filenameReservedRegex","windowsReservedNameRegex","toValidFilename","string","replacement","reReplacement","escapeRegExp"],"mappings":"AAAA,iIAAwC,ICKlCA,CAAAA,CAAsB,GAAA,CAGtBC,CAAAA,CAAiB,MAAA,CACjBC,CAAAA,CAAoB,MAAA,CACpBC,CAAAA,CAAoB,0CAAA,CAE1B,SAASC,CAAAA,CAAAA,CAAwB,CAC/B,OAAOD,CACT,CAEA,SAASE,CAAAA,CAAAA,CAA2B,CAClC,MAAO,kCACT,CAGO,SAASC,CAAAA,CAAgBC,CAAAA,CAAgBC,CAAAA,CAAc,GAAA,CAAqB,CACjF,EAAA,CAAI,OAAOD,CAAAA,EAAW,QAAA,CACpB,MAAM,IAAI,SAAA,CAAU,mBAAmB,CAAA,CAEzC,EAAA,CAAIH,CAAAA,CAAsB,CAAA,CAAE,IAAA,CAAKI,CAAW,CAAA,CAC1C,MAAM,IAAI,KAAA,CAAM,gEAAgE,CAAA,CAElF,IAAMC,CAAAA,CAAgB,CAAA,CAAA,EAAIC,iCAAAA,CAAwB,CAAC,CAAA,EAAA,CAAA,CAEnD,OAAAH,CAAAA,CAASA,CAAAA,CACN,OAAA,CAAQH,CAAAA,CAAsB,CAAA,CAAGI,CAAW,CAAA,CAC5C,OAAA,CAAQP,CAAAA,CAAgBO,CAAW,CAAA,CACnC,OAAA,CAAQN,CAAAA,CAAmB,EAAE,CAAA,CAC7B,OAAA,CAAQ,IAAI,MAAA,CAAOO,CAAAA,CAAe,IAAI,CAAA,CAAGD,CAAW,CAAA,CACpD,IAAA,CAAK,CAAA,CAERD,CAAAA,CAASF,CAAAA,CAAyB,CAAA,CAAE,IAAA,CAAKE,CAAM,CAAA,CAAIA,CAAAA,CAASC,CAAAA,CAAcD,CAAAA,CAEnEA,CAAAA,CAAO,KAAA,CAAM,CAAA,CAAGP,CAAmB,CAC5C,CAAA,cAAA","file":"/Users/dirk/work/github-zeed/dist/chunk-6U6Q5CBH.cjs","sourcesContent":[null,"// https://github.com/sindresorhus/filenamify/blob/main/filenamify.js\n/* eslint-disable no-control-regex */\n\nimport { escapeRegExp } from './regexp'\n\nconst MAX_FILENAME_LENGTH = 100\n\n// const reControlChars = /[\\u0000-\\u001F\\u0080-\\u009F]/g\nconst reRelativePath = /^\\.+/\nconst reTrailingPeriods = /\\.+$/\nconst reFilenameIllegal = /[<>:\"/\\\\|?*\\u0000-\\u001F\\u0080-\\u009F]+/g // https://superuser.com/questions/358855/what-characters-are-safe-in-cross-platform-file-names-for-linux-windows-and-os/358861#358861\n\nfunction filenameReservedRegex() {\n return reFilenameIllegal // /[<>:\"/\\\\|?*\\u0000-\\u001F]/g\n}\n\nfunction windowsReservedNameRegex() {\n return /^(con|prn|aux|nul|com\\d|lpt\\d)$/i\n}\n\n/** Ensure a valid file name. Unsupported characters get a `replacement`, default: `_` */\nexport function toValidFilename(string: string, replacement = '_'): string | never {\n if (typeof string !== 'string')\n throw new TypeError('Expected a string')\n\n if (filenameReservedRegex().test(replacement))\n throw new Error('Replacement string cannot contain reserved filename characters')\n\n const reReplacement = `(${escapeRegExp(replacement)})+`\n\n string = string\n .replace(filenameReservedRegex(), replacement)\n .replace(reRelativePath, replacement)\n .replace(reTrailingPeriods, '')\n .replace(new RegExp(reReplacement, 'gm'), replacement) // collapse\n .trim()\n\n string = windowsReservedNameRegex().test(string) ? string + replacement : string\n\n return string.slice(0, MAX_FILENAME_LENGTH)\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/zeed/zeed/dist/chunk-6U6Q5CBH.cjs","../src/common/data/path.ts"],"names":["MAX_FILENAME_LENGTH","reRelativePath","reTrailingPeriods","reFilenameIllegal","filenameReservedRegex","windowsReservedNameRegex","toValidFilename","string","replacement","reReplacement","escapeRegExp"],"mappings":"AAAA,iIAAwC,ICKlCA,CAAAA,CAAsB,GAAA,CAGtBC,CAAAA,CAAiB,MAAA,CACjBC,CAAAA,CAAoB,MAAA,CACpBC,CAAAA,CAAoB,0CAAA,CAE1B,SAASC,CAAAA,CAAAA,CAAwB,CAC/B,OAAOD,CACT,CAEA,SAASE,CAAAA,CAAAA,CAA2B,CAClC,MAAO,kCACT,CAGO,SAASC,CAAAA,CAAgBC,CAAAA,CAAgBC,CAAAA,CAAc,GAAA,CAAqB,CACjF,EAAA,CAAI,OAAOD,CAAAA,EAAW,QAAA,CACpB,MAAM,IAAI,SAAA,CAAU,mBAAmB,CAAA,CAEzC,EAAA,CAAIH,CAAAA,CAAsB,CAAA,CAAE,IAAA,CAAKI,CAAW,CAAA,CAC1C,MAAM,IAAI,KAAA,CAAM,gEAAgE,CAAA,CAElF,IAAMC,CAAAA,CAAgB,CAAA,CAAA,EAAIC,iCAAAA,CAAwB,CAAC,CAAA,EAAA,CAAA,CAEnD,OAAAH,CAAAA,CAASA,CAAAA,CACN,OAAA,CAAQH,CAAAA,CAAsB,CAAA,CAAGI,CAAW,CAAA,CAC5C,OAAA,CAAQP,CAAAA,CAAgBO,CAAW,CAAA,CACnC,OAAA,CAAQN,CAAAA,CAAmB,EAAE,CAAA,CAC7B,OAAA,CAAQ,IAAI,MAAA,CAAOO,CAAAA,CAAe,IAAI,CAAA,CAAGD,CAAW,CAAA,CACpD,IAAA,CAAK,CAAA,CAERD,CAAAA,CAASF,CAAAA,CAAyB,CAAA,CAAE,IAAA,CAAKE,CAAM,CAAA,CAAIA,CAAAA,CAASC,CAAAA,CAAcD,CAAAA,CAEnEA,CAAAA,CAAO,KAAA,CAAM,CAAA,CAAGP,CAAmB,CAC5C,CAAA,cAAA","file":"/home/runner/work/zeed/zeed/dist/chunk-6U6Q5CBH.cjs","sourcesContent":[null,"// https://github.com/sindresorhus/filenamify/blob/main/filenamify.js\n/* eslint-disable no-control-regex */\n\nimport { escapeRegExp } from './regexp'\n\nconst MAX_FILENAME_LENGTH = 100\n\n// const reControlChars = /[\\u0000-\\u001F\\u0080-\\u009F]/g\nconst reRelativePath = /^\\.+/\nconst reTrailingPeriods = /\\.+$/\nconst reFilenameIllegal = /[<>:\"/\\\\|?*\\u0000-\\u001F\\u0080-\\u009F]+/g // https://superuser.com/questions/358855/what-characters-are-safe-in-cross-platform-file-names-for-linux-windows-and-os/358861#358861\n\nfunction filenameReservedRegex() {\n return reFilenameIllegal // /[<>:\"/\\\\|?*\\u0000-\\u001F]/g\n}\n\nfunction windowsReservedNameRegex() {\n return /^(con|prn|aux|nul|com\\d|lpt\\d)$/i\n}\n\n/** Ensure a valid file name. Unsupported characters get a `replacement`, default: `_` */\nexport function toValidFilename(string: string, replacement = '_'): string | never {\n if (typeof string !== 'string')\n throw new TypeError('Expected a string')\n\n if (filenameReservedRegex().test(replacement))\n throw new Error('Replacement string cannot contain reserved filename characters')\n\n const reReplacement = `(${escapeRegExp(replacement)})+`\n\n string = string\n .replace(filenameReservedRegex(), replacement)\n .replace(reRelativePath, replacement)\n .replace(reTrailingPeriods, '')\n .replace(new RegExp(reReplacement, 'gm'), replacement) // collapse\n .trim()\n\n string = windowsReservedNameRegex().test(string) ? string + replacement : string\n\n return string.slice(0, MAX_FILENAME_LENGTH)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/dirk/work/github-zeed/dist/chunk-6XH2AGIH.cjs","../src/node/fs.ts"],"names":["toHumanReadableFilePath","path","p","normalize","h","process"],"mappings":"AAAA,iOAAwC,wDAAyC,wDAAyC,uCCArE,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":"/Users/dirk/work/github-zeed/dist/chunk-6XH2AGIH.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-6XH2AGIH.cjs","../src/node/fs.ts"],"names":["toHumanReadableFilePath","path","p","normalize","h","process"],"mappings":"AAAA,iOAAwC,wDAAyC,wDAAyC,uCCArE,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-6XH2AGIH.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"]}