zeed 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (575) hide show
  1. package/AGENTS.md +50 -211
  2. package/README.md +16 -0
  3. package/dist/_experiments/bitcask.cjs +243 -1
  4. package/dist/_experiments/bitcask.cjs.map +1 -1
  5. package/dist/_experiments/bitcask.mjs +230 -1
  6. package/dist/_experiments/bitcask.mjs.map +1 -1
  7. package/dist/bin-BAoS4qtm.mjs +593 -0
  8. package/dist/{bin-SPdenYkw.mjs.map → bin-BAoS4qtm.mjs.map} +1 -1
  9. package/dist/bin-Ddaz2lxM.cjs +862 -0
  10. package/dist/{bin-Ce3i6ABn.cjs.map → bin-Ddaz2lxM.cjs.map} +1 -1
  11. package/dist/browser/base64.cjs +14 -1
  12. package/dist/browser/base64.cjs.map +1 -1
  13. package/dist/browser/base64.mjs +12 -1
  14. package/dist/browser/base64.mjs.map +1 -1
  15. package/dist/browser/gravatar.cjs +186 -1
  16. package/dist/browser/gravatar.cjs.map +1 -1
  17. package/dist/browser/gravatar.mjs +184 -1
  18. package/dist/browser/gravatar.mjs.map +1 -1
  19. package/dist/browser/index.cjs +14 -1
  20. package/dist/browser/index.mjs +8 -1
  21. package/dist/browser/localstorage.cjs +46 -1
  22. package/dist/browser/localstorage.cjs.map +1 -1
  23. package/dist/browser/localstorage.mjs +45 -1
  24. package/dist/browser/localstorage.mjs.map +1 -1
  25. package/dist/browser/log/index.cjs +8 -1
  26. package/dist/browser/log/index.mjs +5 -1
  27. package/dist/browser/log/log-browser-factory.cjs +65 -1
  28. package/dist/browser/log/log-browser-factory.cjs.map +1 -1
  29. package/dist/browser/log/log-browser-factory.mjs +64 -1
  30. package/dist/browser/log/log-browser-factory.mjs.map +1 -1
  31. package/dist/browser/log/log-browser.cjs +72 -1
  32. package/dist/browser/log/log-browser.cjs.map +1 -1
  33. package/dist/browser/log/log-browser.mjs +71 -1
  34. package/dist/browser/log/log-browser.mjs.map +1 -1
  35. package/dist/browser/log/log-colors.cjs +11 -1
  36. package/dist/browser/log/log-colors.cjs.map +1 -1
  37. package/dist/browser/log/log-colors.mjs +9 -1
  38. package/dist/browser/log/log-colors.mjs.map +1 -1
  39. package/dist/browser/log/log-context-browser.cjs +25 -1
  40. package/dist/browser/log/log-context-browser.cjs.map +1 -1
  41. package/dist/browser/log/log-context-browser.mjs +23 -1
  42. package/dist/browser/log/log-context-browser.mjs.map +1 -1
  43. package/dist/chunk-DQk6qfdC.mjs +18 -0
  44. package/dist/chunk-uaV2rQ02.cjs +53 -0
  45. package/dist/common/assert.cjs +22 -1
  46. package/dist/common/assert.cjs.map +1 -1
  47. package/dist/common/assert.mjs +19 -1
  48. package/dist/common/assert.mjs.map +1 -1
  49. package/dist/common/bin/index.cjs +106 -1
  50. package/dist/common/bin/index.cjs.map +1 -1
  51. package/dist/common/bin/index.mjs +98 -1
  52. package/dist/common/bin/index.mjs.map +1 -1
  53. package/dist/common/bin/lib0/binary.cjs +146 -1
  54. package/dist/common/bin/lib0/binary.cjs.map +1 -1
  55. package/dist/common/bin/lib0/binary.mjs +80 -1
  56. package/dist/common/bin/lib0/binary.mjs.map +1 -1
  57. package/dist/common/bin/lib0/buffer.cjs +42 -1
  58. package/dist/common/bin/lib0/buffer.cjs.map +1 -1
  59. package/dist/common/bin/lib0/buffer.mjs +38 -1
  60. package/dist/common/bin/lib0/buffer.mjs.map +1 -1
  61. package/dist/common/bin/lib0/create.cjs +24 -1
  62. package/dist/common/bin/lib0/create.cjs.map +1 -1
  63. package/dist/common/bin/lib0/create.mjs +21 -1
  64. package/dist/common/bin/lib0/create.mjs.map +1 -1
  65. package/dist/common/bin/lib0/decoding.cjs +325 -1
  66. package/dist/common/bin/lib0/decoding.cjs.map +1 -1
  67. package/dist/common/bin/lib0/decoding.mjs +298 -1
  68. package/dist/common/bin/lib0/decoding.mjs.map +1 -1
  69. package/dist/common/bin/lib0/encoding.cjs +404 -1
  70. package/dist/common/bin/lib0/encoding.cjs.map +1 -1
  71. package/dist/common/bin/lib0/encoding.mjs +377 -1
  72. package/dist/common/bin/lib0/encoding.mjs.map +1 -1
  73. package/dist/common/bin/lib0/string.cjs +81 -1
  74. package/dist/common/bin/lib0/string.cjs.map +1 -1
  75. package/dist/common/bin/lib0/string.mjs +71 -1
  76. package/dist/common/bin/lib0/string.mjs.map +1 -1
  77. package/dist/common/crypto/aes-sealed.cjs +34 -1
  78. package/dist/common/crypto/aes-sealed.cjs.map +1 -1
  79. package/dist/common/crypto/aes-sealed.mjs +32 -1
  80. package/dist/common/crypto/aes-sealed.mjs.map +1 -1
  81. package/dist/common/crypto/crypto.cjs +91 -1
  82. package/dist/common/crypto/crypto.cjs.map +1 -1
  83. package/dist/common/crypto/crypto.mjs +80 -1
  84. package/dist/common/crypto/crypto.mjs.map +1 -1
  85. package/dist/common/crypto/index.cjs +23 -1
  86. package/dist/common/crypto/index.mjs +5 -1
  87. package/dist/common/crypto/xaes.cjs +128 -1
  88. package/dist/common/crypto/xaes.cjs.map +1 -1
  89. package/dist/common/crypto/xaes.mjs +123 -1
  90. package/dist/common/crypto/xaes.mjs.map +1 -1
  91. package/dist/common/csv.cjs +49 -4
  92. package/dist/common/csv.cjs.map +1 -1
  93. package/dist/common/csv.mjs +46 -4
  94. package/dist/common/csv.mjs.map +1 -1
  95. package/dist/common/data/array.cjs +299 -1
  96. package/dist/common/data/array.cjs.map +1 -1
  97. package/dist/common/data/array.mjs +274 -1
  98. package/dist/common/data/array.mjs.map +1 -1
  99. package/dist/common/data/basex-secure.cjs +30 -1
  100. package/dist/common/data/basex-secure.mjs +3 -1
  101. package/dist/common/data/basex.cjs +163 -1
  102. package/dist/common/data/basex.cjs.map +1 -1
  103. package/dist/common/data/basex.mjs +152 -1
  104. package/dist/common/data/basex.mjs.map +1 -1
  105. package/dist/common/data/bin-types.mjs +1 -1
  106. package/dist/common/data/bin.cjs +21 -1
  107. package/dist/common/data/bin.mjs +3 -1
  108. package/dist/common/data/camelcase.cjs +27 -1
  109. package/dist/common/data/camelcase.cjs.map +1 -1
  110. package/dist/common/data/camelcase.mjs +22 -1
  111. package/dist/common/data/camelcase.mjs.map +1 -1
  112. package/dist/common/data/convert.cjs +104 -1
  113. package/dist/common/data/convert.cjs.map +1 -1
  114. package/dist/common/data/convert.mjs +88 -1
  115. package/dist/common/data/convert.mjs.map +1 -1
  116. package/dist/common/data/datauri.cjs +32 -1
  117. package/dist/common/data/datauri.cjs.map +1 -1
  118. package/dist/common/data/datauri.mjs +27 -1
  119. package/dist/common/data/datauri.mjs.map +1 -1
  120. package/dist/common/data/day-legacy.cjs +148 -1
  121. package/dist/common/data/day-legacy.cjs.map +1 -1
  122. package/dist/common/data/day-legacy.mjs +143 -1
  123. package/dist/common/data/day-legacy.mjs.map +1 -1
  124. package/dist/common/data/day.cjs +335 -1
  125. package/dist/common/data/day.cjs.map +1 -1
  126. package/dist/common/data/day.mjs +305 -1
  127. package/dist/common/data/day.mjs.map +1 -1
  128. package/dist/common/data/decimal.cjs +28 -1
  129. package/dist/common/data/decimal.cjs.map +1 -1
  130. package/dist/common/data/decimal.mjs +23 -1
  131. package/dist/common/data/decimal.mjs.map +1 -1
  132. package/dist/common/data/deep.cjs +57 -1
  133. package/dist/common/data/deep.cjs.map +1 -1
  134. package/dist/common/data/deep.mjs +54 -1
  135. package/dist/common/data/deep.mjs.map +1 -1
  136. package/dist/common/data/diff.cjs +62 -1
  137. package/dist/common/data/diff.cjs.map +1 -1
  138. package/dist/common/data/diff.mjs +60 -1
  139. package/dist/common/data/diff.mjs.map +1 -1
  140. package/dist/common/data/distributed.cjs +24 -1
  141. package/dist/common/data/distributed.cjs.map +1 -1
  142. package/dist/common/data/distributed.mjs +22 -1
  143. package/dist/common/data/distributed.mjs.map +1 -1
  144. package/dist/common/data/format.cjs +63 -1
  145. package/dist/common/data/format.cjs.map +1 -1
  146. package/dist/common/data/format.mjs +59 -1
  147. package/dist/common/data/format.mjs.map +1 -1
  148. package/dist/common/data/html.cjs +13 -1
  149. package/dist/common/data/html.cjs.map +1 -1
  150. package/dist/common/data/html.mjs +10 -1
  151. package/dist/common/data/html.mjs.map +1 -1
  152. package/dist/common/data/index.cjs +296 -1
  153. package/dist/common/data/index.mjs +37 -1
  154. package/dist/common/data/is.cjs +106 -1
  155. package/dist/common/data/is.cjs.map +1 -1
  156. package/dist/common/data/is.mjs +85 -1
  157. package/dist/common/data/is.mjs.map +1 -1
  158. package/dist/common/data/json.cjs +70 -1
  159. package/dist/common/data/json.cjs.map +1 -1
  160. package/dist/common/data/json.mjs +65 -1
  161. package/dist/common/data/json.mjs.map +1 -1
  162. package/dist/common/data/list.cjs +32 -1
  163. package/dist/common/data/list.cjs.map +1 -1
  164. package/dist/common/data/list.mjs +27 -1
  165. package/dist/common/data/list.mjs.map +1 -1
  166. package/dist/common/data/lru.mjs +1 -1
  167. package/dist/common/data/math.cjs +79 -1
  168. package/dist/common/data/math.cjs.map +1 -1
  169. package/dist/common/data/math.mjs +65 -1
  170. package/dist/common/data/math.mjs.map +1 -1
  171. package/dist/common/data/message.cjs +30 -1
  172. package/dist/common/data/message.cjs.map +1 -1
  173. package/dist/common/data/message.mjs +28 -1
  174. package/dist/common/data/message.mjs.map +1 -1
  175. package/dist/common/data/object-changes.cjs +66 -1
  176. package/dist/common/data/object-changes.cjs.map +1 -1
  177. package/dist/common/data/object-changes.mjs +63 -1
  178. package/dist/common/data/object-changes.mjs.map +1 -1
  179. package/dist/common/data/object.cjs +112 -1
  180. package/dist/common/data/object.cjs.map +1 -1
  181. package/dist/common/data/object.mjs +104 -1
  182. package/dist/common/data/object.mjs.map +1 -1
  183. package/dist/common/data/orderby.cjs +42 -1
  184. package/dist/common/data/orderby.cjs.map +1 -1
  185. package/dist/common/data/orderby.mjs +37 -1
  186. package/dist/common/data/orderby.mjs.map +1 -1
  187. package/dist/common/data/path.cjs +26 -1
  188. package/dist/common/data/path.cjs.map +1 -1
  189. package/dist/common/data/path.mjs +25 -1
  190. package/dist/common/data/path.mjs.map +1 -1
  191. package/dist/common/data/regexp.cjs +12 -1
  192. package/dist/common/data/regexp.cjs.map +1 -1
  193. package/dist/common/data/regexp.mjs +10 -1
  194. package/dist/common/data/regexp.mjs.map +1 -1
  195. package/dist/common/data/rounding.cjs +107 -1
  196. package/dist/common/data/rounding.cjs.map +1 -1
  197. package/dist/common/data/rounding.mjs +95 -1
  198. package/dist/common/data/rounding.mjs.map +1 -1
  199. package/dist/common/data/signal.cjs +39 -1
  200. package/dist/common/data/signal.cjs.map +1 -1
  201. package/dist/common/data/signal.mjs +38 -1
  202. package/dist/common/data/signal.mjs.map +1 -1
  203. package/dist/common/data/sortable.cjs +35 -1
  204. package/dist/common/data/sortable.cjs.map +1 -1
  205. package/dist/common/data/sortable.mjs +31 -1
  206. package/dist/common/data/sortable.mjs.map +1 -1
  207. package/dist/common/data/sorted.cjs +54 -1
  208. package/dist/common/data/sorted.cjs.map +1 -1
  209. package/dist/common/data/sorted.mjs +53 -1
  210. package/dist/common/data/sorted.mjs.map +1 -1
  211. package/dist/common/data/string-deburr.cjs +240 -1
  212. package/dist/common/data/string-deburr.cjs.map +1 -1
  213. package/dist/common/data/string-deburr.mjs +238 -1
  214. package/dist/common/data/string-deburr.mjs.map +1 -1
  215. package/dist/common/data/string-hash-fnv.cjs +69 -1
  216. package/dist/common/data/string-hash-fnv.cjs.map +1 -1
  217. package/dist/common/data/string-hash-fnv.mjs +67 -1
  218. package/dist/common/data/string-hash-fnv.mjs.map +1 -1
  219. package/dist/common/data/string-hash-pool.cjs +28 -1
  220. package/dist/common/data/string-hash-pool.cjs.map +1 -1
  221. package/dist/common/data/string-hash-pool.mjs +27 -1
  222. package/dist/common/data/string-hash-pool.mjs.map +1 -1
  223. package/dist/common/data/url.cjs +98 -2
  224. package/dist/common/data/url.cjs.map +1 -1
  225. package/dist/common/data/url.mjs +91 -2
  226. package/dist/common/data/url.mjs.map +1 -1
  227. package/dist/common/data/utils.cjs +118 -1
  228. package/dist/common/data/utils.cjs.map +1 -1
  229. package/dist/common/data/utils.mjs +107 -1
  230. package/dist/common/data/utils.mjs.map +1 -1
  231. package/dist/common/data/wordlist.cjs +531 -1
  232. package/dist/common/data/wordlist.cjs.map +1 -1
  233. package/dist/common/data/wordlist.mjs +529 -1
  234. package/dist/common/data/wordlist.mjs.map +1 -1
  235. package/dist/common/data/xrx.cjs +96 -1
  236. package/dist/common/data/xrx.cjs.map +1 -1
  237. package/dist/common/data/xrx.mjs +92 -1
  238. package/dist/common/data/xrx.mjs.map +1 -1
  239. package/dist/common/dispose-defer.cjs +133 -1
  240. package/dist/common/dispose-defer.cjs.map +1 -1
  241. package/dist/common/dispose-defer.mjs +130 -1
  242. package/dist/common/dispose-defer.mjs.map +1 -1
  243. package/dist/common/dispose-types.mjs +1 -1
  244. package/dist/common/dispose-utils.cjs +113 -1
  245. package/dist/common/dispose-utils.cjs.map +1 -1
  246. package/dist/common/dispose-utils.mjs +106 -1
  247. package/dist/common/dispose-utils.mjs.map +1 -1
  248. package/dist/common/exec/index.cjs +24 -1
  249. package/dist/common/exec/index.d.cts +1 -1
  250. package/dist/common/exec/index.d.mts +1 -1
  251. package/dist/common/exec/index.mjs +8 -1
  252. package/dist/common/exec/mutex.cjs +44 -1
  253. package/dist/common/exec/mutex.cjs.map +1 -1
  254. package/dist/common/exec/mutex.mjs +42 -1
  255. package/dist/common/exec/mutex.mjs.map +1 -1
  256. package/dist/common/exec/pool.cjs +181 -1
  257. package/dist/common/exec/pool.cjs.map +1 -1
  258. package/dist/common/exec/pool.d.cts +1 -1
  259. package/dist/common/exec/pool.d.mts +1 -1
  260. package/dist/common/exec/pool.mjs +180 -1
  261. package/dist/common/exec/pool.mjs.map +1 -1
  262. package/dist/common/exec/progress.cjs +149 -1
  263. package/dist/common/exec/progress.cjs.map +1 -1
  264. package/dist/common/exec/progress.d.cts +1 -1
  265. package/dist/common/exec/progress.d.mts +1 -1
  266. package/dist/common/exec/progress.mjs +148 -1
  267. package/dist/common/exec/progress.mjs.map +1 -1
  268. package/dist/common/exec/promise.cjs +113 -1
  269. package/dist/common/exec/promise.cjs.map +1 -1
  270. package/dist/common/exec/promise.mjs +103 -1
  271. package/dist/common/exec/promise.mjs.map +1 -1
  272. package/dist/common/exec/queue.cjs +125 -1
  273. package/dist/common/exec/queue.cjs.map +1 -1
  274. package/dist/common/exec/queue.d.cts +1 -1
  275. package/dist/common/exec/queue.d.mts +1 -1
  276. package/dist/common/exec/queue.mjs +124 -1
  277. package/dist/common/exec/queue.mjs.map +1 -1
  278. package/dist/common/exec/throttle-debounce.cjs +114 -1
  279. package/dist/common/exec/throttle-debounce.cjs.map +1 -1
  280. package/dist/common/exec/throttle-debounce.mjs +112 -1
  281. package/dist/common/exec/throttle-debounce.mjs.map +1 -1
  282. package/dist/common/global.cjs +22 -1
  283. package/dist/common/global.cjs.map +1 -1
  284. package/dist/common/global.mjs +19 -1
  285. package/dist/common/global.mjs.map +1 -1
  286. package/dist/common/index.cjs +559 -1
  287. package/dist/common/index.d.cts +1 -1
  288. package/dist/common/index.d.mts +1 -1
  289. package/dist/common/index.mjs +89 -1
  290. package/dist/common/localhost.cjs +16 -1
  291. package/dist/common/localhost.cjs.map +1 -1
  292. package/dist/common/localhost.mjs +14 -1
  293. package/dist/common/localhost.mjs.map +1 -1
  294. package/dist/common/log/index.cjs +34 -1
  295. package/dist/common/log/index.mjs +11 -1
  296. package/dist/common/log/log-base.cjs +40 -1
  297. package/dist/common/log/log-base.cjs.map +1 -1
  298. package/dist/common/log/log-base.mjs +31 -1
  299. package/dist/common/log/log-base.mjs.map +1 -1
  300. package/dist/common/log/log-colors.cjs +92 -1
  301. package/dist/common/log/log-colors.cjs.map +1 -1
  302. package/dist/common/log/log-colors.mjs +90 -1
  303. package/dist/common/log/log-colors.mjs.map +1 -1
  304. package/dist/common/log/log-config.cjs +15 -1
  305. package/dist/common/log/log-config.cjs.map +1 -1
  306. package/dist/common/log/log-config.mjs +14 -1
  307. package/dist/common/log/log-config.mjs.map +1 -1
  308. package/dist/common/log/log-console-capture.cjs +33 -1
  309. package/dist/common/log/log-console-capture.cjs.map +1 -1
  310. package/dist/common/log/log-console-capture.mjs +32 -1
  311. package/dist/common/log/log-console-capture.mjs.map +1 -1
  312. package/dist/common/log/log-console-original.cjs +27 -1
  313. package/dist/common/log/log-console-original.cjs.map +1 -1
  314. package/dist/common/log/log-console-original.mjs +26 -1
  315. package/dist/common/log/log-console-original.mjs.map +1 -1
  316. package/dist/common/log/log-console.cjs +39 -1
  317. package/dist/common/log/log-console.cjs.map +1 -1
  318. package/dist/common/log/log-console.mjs +38 -1
  319. package/dist/common/log/log-console.mjs.map +1 -1
  320. package/dist/common/log/log-context.cjs +109 -1
  321. package/dist/common/log/log-context.cjs.map +1 -1
  322. package/dist/common/log/log-context.mjs +108 -1
  323. package/dist/common/log/log-context.mjs.map +1 -1
  324. package/dist/common/log/log-filter.cjs +80 -1
  325. package/dist/common/log/log-filter.cjs.map +1 -1
  326. package/dist/common/log/log-filter.mjs +75 -1
  327. package/dist/common/log/log-filter.mjs.map +1 -1
  328. package/dist/common/log/log-memory.cjs +45 -1
  329. package/dist/common/log/log-memory.cjs.map +1 -1
  330. package/dist/common/log/log-memory.mjs +43 -1
  331. package/dist/common/log/log-memory.mjs.map +1 -1
  332. package/dist/common/log/log-noop.cjs +17 -1
  333. package/dist/common/log/log-noop.cjs.map +1 -1
  334. package/dist/common/log/log-noop.mjs +15 -1
  335. package/dist/common/log/log-noop.mjs.map +1 -1
  336. package/dist/common/log/log.cjs +46 -1
  337. package/dist/common/log/log.cjs.map +1 -1
  338. package/dist/common/log/log.mjs +43 -1
  339. package/dist/common/log/log.mjs.map +1 -1
  340. package/dist/common/msg/channel-debug.cjs +17 -1
  341. package/dist/common/msg/channel-debug.cjs.map +1 -1
  342. package/dist/common/msg/channel-debug.d.cts +1 -1
  343. package/dist/common/msg/channel-debug.d.mts +1 -1
  344. package/dist/common/msg/channel-debug.mjs +16 -1
  345. package/dist/common/msg/channel-debug.mjs.map +1 -1
  346. package/dist/common/msg/channel-local.cjs +28 -1
  347. package/dist/common/msg/channel-local.cjs.map +1 -1
  348. package/dist/common/msg/channel-local.d.cts +1 -1
  349. package/dist/common/msg/channel-local.d.mts +1 -1
  350. package/dist/common/msg/channel-local.mjs +26 -1
  351. package/dist/common/msg/channel-local.mjs.map +1 -1
  352. package/dist/common/msg/channel-resilient.cjs +63 -1
  353. package/dist/common/msg/channel-resilient.cjs.map +1 -1
  354. package/dist/common/msg/channel-resilient.d.cts +1 -1
  355. package/dist/common/msg/channel-resilient.d.mts +1 -1
  356. package/dist/common/msg/channel-resilient.mjs +62 -1
  357. package/dist/common/msg/channel-resilient.mjs.map +1 -1
  358. package/dist/common/msg/channel-wkwebview.cjs +35 -1
  359. package/dist/common/msg/channel-wkwebview.cjs.map +1 -1
  360. package/dist/common/msg/channel-wkwebview.d.cts +2 -1
  361. package/dist/common/msg/channel-wkwebview.d.mts +2 -1
  362. package/dist/common/msg/channel-wkwebview.mjs +34 -1
  363. package/dist/common/msg/channel-wkwebview.mjs.map +1 -1
  364. package/dist/common/msg/channel.cjs +23 -1
  365. package/dist/common/msg/channel.cjs.map +1 -1
  366. package/dist/common/msg/channel.d.cts +1 -1
  367. package/dist/common/msg/channel.d.mts +1 -1
  368. package/dist/common/msg/channel.mjs +22 -1
  369. package/dist/common/msg/channel.mjs.map +1 -1
  370. package/dist/common/msg/emitter.cjs +141 -1
  371. package/dist/common/msg/emitter.cjs.map +1 -1
  372. package/dist/common/msg/emitter.d.cts +1 -1
  373. package/dist/common/msg/emitter.d.mts +1 -1
  374. package/dist/common/msg/emitter.mjs +139 -1
  375. package/dist/common/msg/emitter.mjs.map +1 -1
  376. package/dist/common/msg/encoder.cjs +38 -1
  377. package/dist/common/msg/encoder.cjs.map +1 -1
  378. package/dist/common/msg/encoder.mjs +35 -1
  379. package/dist/common/msg/encoder.mjs.map +1 -1
  380. package/dist/common/msg/index.cjs +28 -1
  381. package/dist/common/msg/index.d.cts +1 -1
  382. package/dist/common/msg/index.d.mts +1 -1
  383. package/dist/common/msg/index.mjs +11 -1
  384. package/dist/common/msg/messages.cjs +135 -1
  385. package/dist/common/msg/messages.cjs.map +1 -1
  386. package/dist/common/msg/messages.d.cts +1 -1
  387. package/dist/common/msg/messages.d.mts +1 -1
  388. package/dist/common/msg/messages.mjs +133 -1
  389. package/dist/common/msg/messages.mjs.map +1 -1
  390. package/dist/common/msg/pipe.mjs +1 -1
  391. package/dist/common/msg/pubsub.cjs +78 -1
  392. package/dist/common/msg/pubsub.cjs.map +1 -1
  393. package/dist/common/msg/pubsub.d.cts +1 -1
  394. package/dist/common/msg/pubsub.d.mts +1 -1
  395. package/dist/common/msg/pubsub.mjs +76 -1
  396. package/dist/common/msg/pubsub.mjs.map +1 -1
  397. package/dist/common/msg/rpc.cjs +142 -1
  398. package/dist/common/msg/rpc.cjs.map +1 -1
  399. package/dist/common/msg/rpc.mjs +139 -1
  400. package/dist/common/msg/rpc.mjs.map +1 -1
  401. package/dist/common/network.cjs +129 -1
  402. package/dist/common/network.cjs.map +1 -1
  403. package/dist/common/network.mjs +122 -1
  404. package/dist/common/network.mjs.map +1 -1
  405. package/dist/common/platform.cjs +92 -1
  406. package/dist/common/platform.cjs.map +1 -1
  407. package/dist/common/platform.mjs +84 -1
  408. package/dist/common/platform.mjs.map +1 -1
  409. package/dist/common/schema/_sandbox/sandbox-inherit.mjs +1 -1
  410. package/dist/common/schema/_sandbox/sandbox.mjs +1 -1
  411. package/dist/common/schema/_sandbox/sandbox.xspec.mjs +1 -1
  412. package/dist/common/schema/export-json-schema.cjs +54 -1
  413. package/dist/common/schema/export-json-schema.cjs.map +1 -1
  414. package/dist/common/schema/export-json-schema.mjs +52 -1
  415. package/dist/common/schema/export-json-schema.mjs.map +1 -1
  416. package/dist/common/schema/export-swift.cjs +30 -2
  417. package/dist/common/schema/export-swift.cjs.map +1 -1
  418. package/dist/common/schema/export-swift.mjs +29 -2
  419. package/dist/common/schema/export-swift.mjs.map +1 -1
  420. package/dist/common/schema/export-typescript.cjs +20 -2
  421. package/dist/common/schema/export-typescript.cjs.map +1 -1
  422. package/dist/common/schema/export-typescript.mjs +19 -2
  423. package/dist/common/schema/export-typescript.mjs.map +1 -1
  424. package/dist/common/schema/index.cjs +55 -1
  425. package/dist/common/schema/index.mjs +12 -1
  426. package/dist/common/schema/parse-args.cjs +62 -2
  427. package/dist/common/schema/parse-args.cjs.map +1 -1
  428. package/dist/common/schema/parse-args.mjs +60 -2
  429. package/dist/common/schema/parse-args.mjs.map +1 -1
  430. package/dist/common/schema/parse-env.cjs +48 -3
  431. package/dist/common/schema/parse-env.cjs.map +1 -1
  432. package/dist/common/schema/parse-env.mjs +46 -3
  433. package/dist/common/schema/parse-env.mjs.map +1 -1
  434. package/dist/common/schema/parse-object.cjs +122 -1
  435. package/dist/common/schema/parse-object.cjs.map +1 -1
  436. package/dist/common/schema/parse-object.mjs +119 -1
  437. package/dist/common/schema/parse-object.mjs.map +1 -1
  438. package/dist/common/schema/schema-standard.mjs +1 -1
  439. package/dist/common/schema/schema.cjs +423 -1
  440. package/dist/common/schema/schema.cjs.map +1 -1
  441. package/dist/common/schema/schema.mjs +404 -1
  442. package/dist/common/schema/schema.mjs.map +1 -1
  443. package/dist/common/schema/serialize.cjs +109 -1
  444. package/dist/common/schema/serialize.cjs.map +1 -1
  445. package/dist/common/schema/serialize.mjs +107 -1
  446. package/dist/common/schema/serialize.mjs.map +1 -1
  447. package/dist/common/schema/type-test.mjs +1 -1
  448. package/dist/common/schema/utils.cjs +25 -1
  449. package/dist/common/schema/utils.cjs.map +1 -1
  450. package/dist/common/schema/utils.mjs +19 -1
  451. package/dist/common/schema/utils.mjs.map +1 -1
  452. package/dist/common/schema/z-collection.cjs +51 -1
  453. package/dist/common/schema/z-collection.mjs +27 -1
  454. package/dist/common/schema/z.cjs +9 -1
  455. package/dist/common/schema/z.mjs +3 -1
  456. package/dist/common/storage/index.cjs +4 -1
  457. package/dist/common/storage/index.mjs +3 -1
  458. package/dist/common/storage/memstorage.cjs +26 -1
  459. package/dist/common/storage/memstorage.cjs.map +1 -1
  460. package/dist/common/storage/memstorage.mjs +25 -1
  461. package/dist/common/storage/memstorage.mjs.map +1 -1
  462. package/dist/common/test.cjs +14 -1
  463. package/dist/common/test.cjs.map +1 -1
  464. package/dist/common/test.mjs +13 -1
  465. package/dist/common/test.mjs.map +1 -1
  466. package/dist/common/time.cjs +220 -1
  467. package/dist/common/time.cjs.map +1 -1
  468. package/dist/common/time.mjs +194 -1
  469. package/dist/common/time.mjs.map +1 -1
  470. package/dist/common/timeout.cjs +27 -1
  471. package/dist/common/timeout.cjs.map +1 -1
  472. package/dist/common/timeout.mjs +25 -1
  473. package/dist/common/timeout.mjs.map +1 -1
  474. package/dist/common/types.mjs +1 -1
  475. package/dist/common/utils.cjs +7 -1
  476. package/dist/common/utils.cjs.map +1 -1
  477. package/dist/common/utils.mjs +5 -1
  478. package/dist/common/utils.mjs.map +1 -1
  479. package/dist/common/uuid.cjs +307 -1
  480. package/dist/common/uuid.cjs.map +1 -1
  481. package/dist/common/uuid.mjs +284 -1
  482. package/dist/common/uuid.mjs.map +1 -1
  483. package/dist/{index-DHXVOH8h.d.cts → index-CFkMqHvX.d.cts} +1 -2
  484. package/dist/{index-DMaPyx9O.d.mts → index-C_3Y_s6f.d.mts} +1 -2
  485. package/dist/index.all.cjs +641 -1
  486. package/dist/index.all.d.cts +1 -1
  487. package/dist/index.all.d.mts +1 -1
  488. package/dist/index.all.mjs +113 -1
  489. package/dist/index.browser.cjs +576 -1
  490. package/dist/index.browser.d.cts +1 -1
  491. package/dist/index.browser.d.mts +1 -1
  492. package/dist/index.browser.mjs +98 -1
  493. package/dist/index.jsr.cjs +57 -1
  494. package/dist/index.jsr.mjs +6 -1
  495. package/dist/index.node.cjs +628 -1
  496. package/dist/index.node.d.cts +1 -1
  497. package/dist/index.node.d.mts +1 -1
  498. package/dist/index.node.mjs +106 -1
  499. package/dist/node/args.cjs +56 -1
  500. package/dist/node/args.cjs.map +1 -1
  501. package/dist/node/args.mjs +53 -1
  502. package/dist/node/args.mjs.map +1 -1
  503. package/dist/node/clipboard.cjs +18 -1
  504. package/dist/node/clipboard.cjs.map +1 -1
  505. package/dist/node/clipboard.mjs +16 -1
  506. package/dist/node/clipboard.mjs.map +1 -1
  507. package/dist/node/crypto.cjs +28 -1
  508. package/dist/node/crypto.cjs.map +1 -1
  509. package/dist/node/crypto.mjs +24 -1
  510. package/dist/node/crypto.mjs.map +1 -1
  511. package/dist/node/env.cjs +100 -4
  512. package/dist/node/env.cjs.map +1 -1
  513. package/dist/node/env.mjs +90 -4
  514. package/dist/node/env.mjs.map +1 -1
  515. package/dist/node/files-async.cjs +66 -1
  516. package/dist/node/files-async.cjs.map +1 -1
  517. package/dist/node/files-async.mjs +60 -1
  518. package/dist/node/files-async.mjs.map +1 -1
  519. package/dist/node/files.cjs +52 -1
  520. package/dist/node/files.cjs.map +1 -1
  521. package/dist/node/files.mjs +46 -1
  522. package/dist/node/files.mjs.map +1 -1
  523. package/dist/node/filestorage.cjs +100 -1
  524. package/dist/node/filestorage.cjs.map +1 -1
  525. package/dist/node/filestorage.mjs +97 -1
  526. package/dist/node/filestorage.mjs.map +1 -1
  527. package/dist/node/fs.cjs +119 -1
  528. package/dist/node/fs.cjs.map +1 -1
  529. package/dist/node/fs.mjs +101 -1
  530. package/dist/node/fs.mjs.map +1 -1
  531. package/dist/node/glob.cjs +75 -1
  532. package/dist/node/glob.cjs.map +1 -1
  533. package/dist/node/glob.mjs +73 -1
  534. package/dist/node/glob.mjs.map +1 -1
  535. package/dist/node/index.cjs +66 -1
  536. package/dist/node/index.mjs +16 -1
  537. package/dist/node/log/index.cjs +20 -1
  538. package/dist/node/log/index.mjs +7 -1
  539. package/dist/node/log/log-context-node.cjs +39 -1
  540. package/dist/node/log/log-context-node.cjs.map +1 -1
  541. package/dist/node/log/log-context-node.mjs +35 -1
  542. package/dist/node/log/log-context-node.mjs.map +1 -1
  543. package/dist/node/log/log-file-rotation.cjs +71 -1
  544. package/dist/node/log/log-file-rotation.cjs.map +1 -1
  545. package/dist/node/log/log-file-rotation.mjs +68 -1
  546. package/dist/node/log/log-file-rotation.mjs.map +1 -1
  547. package/dist/node/log/log-file.cjs +57 -1
  548. package/dist/node/log/log-file.cjs.map +1 -1
  549. package/dist/node/log/log-file.mjs +54 -1
  550. package/dist/node/log/log-file.mjs.map +1 -1
  551. package/dist/node/log/log-node.cjs +162 -1
  552. package/dist/node/log/log-node.cjs.map +1 -1
  553. package/dist/node/log/log-node.mjs +155 -1
  554. package/dist/node/log/log-node.mjs.map +1 -1
  555. package/dist/node/log/log-rotation.cjs +543 -3
  556. package/dist/node/log/log-rotation.cjs.map +1 -1
  557. package/dist/node/log/log-rotation.mjs +538 -3
  558. package/dist/node/log/log-rotation.mjs.map +1 -1
  559. package/dist/node/log/log-util.cjs +69 -3
  560. package/dist/node/log/log-util.cjs.map +1 -1
  561. package/dist/node/log/log-util.mjs +63 -3
  562. package/dist/node/log/log-util.mjs.map +1 -1
  563. package/dist/node/open-browser.cjs +20 -1
  564. package/dist/node/open-browser.cjs.map +1 -1
  565. package/dist/node/open-browser.mjs +18 -1
  566. package/dist/node/open-browser.mjs.map +1 -1
  567. package/package.json +15 -15
  568. package/src/common/schema/README.md +247 -66
  569. package/src/eslint-defaults.js +4 -0
  570. package/src/index.spec.ts +6 -6
  571. package/dist/bin-Ce3i6ABn.cjs +0 -3
  572. package/dist/bin-SPdenYkw.mjs +0 -3
  573. package/dist/chunk-0Lt9GpW0.mjs +0 -1
  574. package/dist/chunk-D-qHiVGv.cjs +0 -1
  575. package/src/common/schema/README-SCHEMA.md +0 -0
@@ -1,4 +1,544 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../chunk-D-qHiVGv.cjs`);let t=require(`node:process`);t=e.n(t);let n=require(`node:fs`),r=require(`node:path`),i=require(`node:fs/promises`),a=require(`node:child_process`),o=require(`node:stream`),s=require(`node:timers`),c=require(`node:util`),l=require(`node:zlib`);async function u(e){return new Promise(t=>(0,n.access)(e,n.constants.F_OK,e=>t(!e)))}var d=class extends Error{code=`RFS-TOO-MANY`;constructor(){super(`Too many destination file attempts`)}},f=class extends o.Writable{createGzip;exec;file;filename;finished;fsCreateReadStream;fsCreateWriteStream;fsOpen;fsReadFile;fsStat;fsUnlink;generator;last;maxTimeout;next;options;size;stdout;prev;rotation;initPromise;timeout;timeoutPromise;constructor(e,r){let{encoding:o,history:s,maxFiles:c,maxSize:u,path:d}=r;super({decodeStrings:!0,defaultEncoding:o}),this.createGzip=l.createGzip,this.exec=a.exec,this.filename=(d||``)+e(null),this.fsCreateReadStream=n.createReadStream,this.fsCreateWriteStream=n.createWriteStream,this.fsOpen=i.open,this.fsReadFile=i.readFile,this.fsStat=i.stat,this.fsUnlink=i.unlink,this.generator=e,this.maxTimeout=2147483640,this.options=r,this.stdout=t.default.stdout,this.file=null,this.initPromise=null,this.timeout=null,this.timeoutPromise=null,this.prev=null,this.next=null,this.rotation=null,this.last=``,this.finished=!1,this.size=0,(c||u)&&(r.history=(d||``)+(s||`${this.generator(null)}.txt`)),this.on(`close`,()=>this.finished?null:this.emit(`finish`)),this.on(`finish`,()=>this.finished=this.clear()),(async()=>{try{this.initPromise=this.init(),await this.initPromise,this.initPromise=null}catch{}})()}_destroy(e,t){this.refinal(e,t)}_final(e){this.refinal(void 0,e)}_write(e,t,n){this.rewrite([{chunk:e,encoding:t}],0,n)}_writev(e,t){this.rewrite(e,0,t)}async refinal(e,t){try{this.clear(),this.initPromise&&await this.initPromise,this.timeoutPromise&&await this.timeoutPromise,await this.reclose()}catch(n){return t(e||n)}t(e)}async rewrite(e,t,n){let{size:r,teeToStdout:i}=this.options;try{this.initPromise&&await this.initPromise;for(let t=0;t<e.length;++t){let{chunk:n}=e[t];this.size+=n.length,this.timeoutPromise&&await this.timeoutPromise,await this.file.write(n),i&&!this.stdout.destroyed&&this.stdout.write(n),r&&this.size>=r&&await this.rotate()}}catch(e){return n(e)}n()}async init(){let{immutable:e,initialRotation:n,interval:r,size:a}=this.options;if(e)return new Promise((e,n)=>t.default.nextTick(()=>this.immutate(!0).then(e).catch(e=>n(e))));let o;try{o=await(0,i.stat)(this.filename)}catch(e){if(e.code!==`ENOENT`)throw e;return this.reopen(0)}if(!o.isFile())throw Error(`Can't write on: ${this.filename} (it is not a file)`);if(n){this.intervalBounds(this.now());let e=this.prev;if(this.intervalBounds(new Date(o.mtime.getTime())),e!==this.prev)return this.rotate()}return this.size=o.size,!a||o.size<a?this.reopen(o.size):(r&&this.intervalBounds(this.now()),this.rotate())}async makePath(e){return await(0,i.mkdir)(e.split(r.sep).slice(0,-1).join(r.sep),{recursive:!0}),e}async reopen(e){let t;try{t=await(0,i.open)(this.filename,`a`,this.options.mode)}catch(e){if(e.code!==`ENOENT`)throw e;await this.makePath(this.filename),t=await(0,i.open)(this.filename,`a`,this.options.mode)}this.file=t,this.size=e,this.interval(),this.emit(`open`,this.filename)}async reclose(){let{file:e}=this;if(e)return this.file=null,e.close()}now(){return new Date}async rotate(){let{immutable:e,rotate:t}=this.options;return this.size=0,this.rotation=this.now(),this.clear(),this.emit(`rotation`),await this.reclose(),t?this.classical():e?this.immutate(!1):this.move()}async findName(){let{interval:e,path:t,intervalBoundary:n}=this.options;for(let r=1;r<1e3;++r){let i=(t||``)+this.generator(e&&n?new Date(this.prev):this.rotation,r);if(!await u(i))return i}throw new d}async move(){let{compress:e}=this.options,t=await this.findName();return await this.touch(t),e?await this.compress(t):await(0,i.rename)(this.filename,t),this.rotated(t)}async touch(e){let t;try{t=await this.fsOpen(e,`a`)}catch(n){if(n.code!==`ENOENT`)throw n;await this.makePath(e),t=await(0,i.open)(e,`a`)}return await t.close(),this.unlink(e)}async classical(){let{compress:e,path:t,rotate:n=0}=this.options,r=``;for(let a=n;a>0;--a){let n=t+this.generator(a),o=a===1?this.filename:t+this.generator(a-1);if(await u(o))if(r||=n,a===1&&e)await this.compress(n);else try{await(0,i.rename)(o,n)}catch(e){if(e.code!==`ENOENT`)throw e;await this.makePath(n),await(0,i.rename)(o,n)}}return this.rotated(r)}clear(){return this.timeout&&=(clearTimeout(this.timeout),null),!0}intervalBoundsBig(e){let t=this.options.intervalUTC?e.getUTCFullYear():e.getFullYear(),n=this.options.intervalUTC?e.getUTCMonth():e.getMonth(),r=this.options.intervalUTC?e.getUTCDate():e.getDate(),i=this.options.intervalUTC?e.getUTCHours():e.getHours(),{num:a,unit:o}=this.options.interval;o===`M`?(r=1,i=0):i=o===`d`?0:Number.parseInt(i/a,10)*a,this.prev=new Date(t,n,r,i,0,0,0).getTime(),o===`M`?n+=a:o===`d`?r+=a:i+=a,this.next=new Date(t,n,r,i,0,0,0).getTime()}intervalBounds(e){let t=this.options.interval.unit;if(t===`M`||t===`d`||t===`h`)this.intervalBoundsBig(e);else{let n=1e3*this.options.interval.num;t===`m`&&(n*=60),this.prev=Number.parseInt(String(e.getTime()/n),10)*n,this.next=this.prev+n}return new Date(this.prev)}interval(){if(!this.options.interval)return;this.intervalBounds(this.now());let e=async()=>{let t=this.next-this.now().getTime();if(t<=0)try{this.timeoutPromise=this.rotate(),await this.timeoutPromise,this.timeoutPromise=null}catch{}else this.timeout=(0,s.setTimeout)(e,t>this.maxTimeout?this.maxTimeout:t),this.timeout&&typeof this.timeout.unref==`function`&&this.timeout.unref()};e()}async compress(e){let{compress:t}=this.options;return typeof t==`function`?await new Promise((n,r)=>{this.exec(t(this.filename,e),(e,t,i)=>{this.emit(`external`,t,i),e?r(e):n()})}):await this.gzip(e),this.unlink(this.filename)}async gzip(e){let{mode:t}=this.options,n=t?{mode:t}:{},r=this.fsCreateReadStream(this.filename,{}),i=this.fsCreateWriteStream(e,n),a=this.createGzip();return new Promise((e,t)=>{r.once(`error`,t),i.once(`error`,t),a.once(`error`,t),i.once(`finish`,e),r.pipe(a).pipe(i)})}async rotated(e){let{maxFiles:t,maxSize:n}=this.options;return(t||n)&&await this.history(e),this.emit(`rotated`,e),this.reopen(0)}async history(e){let{history:t,maxFiles:n,maxSize:r}=this.options,a=[],o=[e];try{t&&(o=[...(await this.fsReadFile(t,`utf8`)).toString().split(`
2
- `),e])}catch(e){if(e.code!==`ENOENT`)throw e}for(let e of o)if(e)try{let t=await this.fsStat(e);t.isFile()?a.push({name:e,size:t.size,time:t.mtime.getTime()}):this.emit(`warning`,Error(`File '${e}' contained in history is not a regular file`))}catch(e){if(e.code!==`ENOENT`)throw e}if(a.sort((e,t)=>e.time-t.time),n)for(;a.length>n;){let e=a.shift();e&&await this.unlink(e.name),e&&this.emit(`removed`,e.name,!0)}if(r)for(;a.reduce((e,t)=>e+t.size,0)>r;){let e=a.shift();e&&await this.unlink(e.name),e&&this.emit(`removed`,e.name,!1)}t&&await(0,i.writeFile)(t,`${a.map(e=>e.name).join(`
3
- `)}\n`,`utf-8`),this.emit(`history`)}async immutate(e){let{size:t}=this.options,n=this.now();for(let r=1;r<1e3;++r){let i=0,a;this.filename=this.options.path+this.generator(n,r);try{a=await this.fsStat(this.filename)}catch(e){if(e.code!==`ENOENT`)throw e}if(a){if(i=a.size,!a.isFile())throw Error(`Can't write on: '${this.filename}' (it is not a file)`);if(t&&i>=t)continue}if(e)return this.last=this.filename,this.reopen(i);await this.rotated(this.last),this.last=this.filename;return}throw new d}async unlink(e){try{await this.fsUnlink(e)}catch(e){if(e.code!==`ENOENT`)throw e;this.emit(`warning`,e)}}};function p(e){return(t,n,r)=>{let i=Number.parseInt(String(r),10);if(t!==`number`||Number.isNaN(i)||i<=0)throw Error(`'${e}' option must be a positive integer number`)}}function m(e,t){return(n,r,i)=>{if(n!==`string`)throw Error(`Don't know how to handle 'options.${String(e)}' type: ${n}`);r[e]=t(i)}}function h(e,t,n){let r={};if(r.num=Number.parseInt(e,10),Number.isNaN(r.num))throw Error(`Unknown 'options.${t}' format: ${e}`);if(r.num<=0)throw Error(`A positive integer number is expected for 'options.${t}'`);if(r.unit=e.replace(/^[ 0]*/g,``).substr(`${r.num}`.length,1),r.unit.length===0)throw Error(`Missing unit for 'options.${t}'`);if(!n[r.unit])throw Error(`Unknown 'options.${t}' unit: ${r.unit}`);return r}const g={M:!0,d:!0,h:!0,m:!0,s:!0};function _(e,t,n){if(Number.parseInt(n/e.num,10)*e.num!==n)throw Error(`An integer divider of ${n} is expected as ${t} for 'options.interval'`)}function v(e){let t=h(e,`interval`,g);switch(t.unit){case`h`:_(t,`hours`,24);break;case`m`:_(t,`minutes`,60);break;case`s`:_(t,`seconds`,60);break}return t}const y={B:!0,G:!0,K:!0,M:!0};function b(e){let t=h(e,`size`,y);return t.unit===`K`?t.num*1024:t.unit===`M`?t.num*1048576:t.unit===`G`?t.num*1073741824:t.num}const x={encoding:(e,t,n)=>new c.TextDecoder(n),immutable:()=>{},initialRotation:()=>{},interval:m(`interval`,v),intervalBoundary:()=>{},intervalUTC:()=>{},maxFiles:p(`maxFiles`),maxSize:m(`maxSize`,b),mode:()=>{},omitExtension:()=>{},rotate:p(`rotate`),size:m(`size`,b),teeToStdout:()=>{},compress:(e,t,n)=>{if(n!==!1){if(!n)throw Error(`A value for 'options.compress' must be specified`);if(e===`boolean`)return t.compress=(e,t)=>`cat ${e} | gzip -c9 > ${t}`;if(e!==`function`){if(e!==`string`)throw Error(`Don't know how to handle 'options.compress' type: ${e}`);if(n!==`gzip`)throw Error(`Don't know how to handle compression method: ${n}`)}}},history:e=>{if(e!==`string`)throw Error(`Don't know how to handle 'options.history' type: ${e}`)},path:(e,t,n)=>{if(e!==`string`)throw Error(`Don't know how to handle 'options.path' type: ${e}`);n.at(-1)!==r.sep&&(t.path=n+r.sep)}};function S(e){let t={};for(let n of Object.keys(e)){let r=n,i=e[r],a=typeof i;if(t[r]=i,!(r in x))throw Error(`Unknown option: ${r}`);x[r](a,t,i)}return t.path||=``,t.interval||(delete t.immutable,delete t.initialRotation,delete t.intervalBoundary,delete t.intervalUTC),t.rotate&&(delete t.history,delete t.immutable,delete t.maxFiles,delete t.maxSize,delete t.intervalBoundary,delete t.intervalUTC),t.immutable&&delete t.compress,t.intervalBoundary||delete t.initialRotation,t}function C(e,t,n){return(r,i)=>{let a=i||0;return a?`${e}.${a}${t&&!n?`.gz`:``}`:e}}function w(e,t,n){let r=e=>(e>9?``:`0`)+e;return(i,a)=>{if(!i)return e;let o=typeof i==`number`?new Date(i):i,s=`${o.getFullYear()}${r(o.getMonth()+1)}`,c=r(o.getDate()),l=r(o.getHours()),u=r(o.getMinutes());return`${s+c}-${l}${u}-${r(a||0)}-${e}${t&&!n?`.gz`:``}`}}function T(e,t){if(t===void 0)t={};else if(typeof t!=`object`)throw Error(`The "options" argument must be of type object. Received type ${typeof t}`);let n=S(t),{compress:r,omitExtension:i}=n,a;if(typeof e==`string`)a=n.rotate?C(e,!!r,!!i):w(e,!!r,!!i);else if(typeof e==`function`)a=e;else throw Error(`The "filename" argument must be one of type string or function. Received type ${typeof e}`);return new f(a,n)}exports.RotatingFileStream=f,exports.RotatingFileStreamError=d,exports.createRotationStream=T;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_chunk = require('../../chunk-uaV2rQ02.cjs');
3
+ let node_process = require("node:process");
4
+ node_process = require_chunk.__toESM(node_process, 1);
5
+ let node_fs = require("node:fs");
6
+ let node_path = require("node:path");
7
+ let node_fs_promises = require("node:fs/promises");
8
+ let node_child_process = require("node:child_process");
9
+ let node_stream = require("node:stream");
10
+ let node_timers = require("node:timers");
11
+ let node_util = require("node:util");
12
+ let node_zlib = require("node:zlib");
13
+
14
+ //#region src/node/log/log-rotation.ts
15
+ async function exists(filename) {
16
+ return new Promise((resolve) => (0, node_fs.access)(filename, node_fs.constants.F_OK, (error) => resolve(!error)));
17
+ }
18
+ var RotatingFileStreamError = class extends Error {
19
+ code = "RFS-TOO-MANY";
20
+ constructor() {
21
+ super("Too many destination file attempts");
22
+ }
23
+ };
24
+ var RotatingFileStream = class extends node_stream.Writable {
25
+ createGzip;
26
+ exec;
27
+ file;
28
+ filename;
29
+ finished;
30
+ fsCreateReadStream;
31
+ fsCreateWriteStream;
32
+ fsOpen;
33
+ fsReadFile;
34
+ fsStat;
35
+ fsUnlink;
36
+ generator;
37
+ last;
38
+ maxTimeout;
39
+ next;
40
+ options;
41
+ size;
42
+ stdout;
43
+ prev;
44
+ rotation;
45
+ initPromise;
46
+ timeout;
47
+ timeoutPromise;
48
+ constructor(generator, options) {
49
+ const { encoding, history, maxFiles, maxSize, path } = options;
50
+ super({
51
+ decodeStrings: true,
52
+ defaultEncoding: encoding
53
+ });
54
+ this.createGzip = node_zlib.createGzip;
55
+ this.exec = node_child_process.exec;
56
+ this.filename = (path || "") + generator(null);
57
+ this.fsCreateReadStream = node_fs.createReadStream;
58
+ this.fsCreateWriteStream = node_fs.createWriteStream;
59
+ this.fsOpen = node_fs_promises.open;
60
+ this.fsReadFile = node_fs_promises.readFile;
61
+ this.fsStat = node_fs_promises.stat;
62
+ this.fsUnlink = node_fs_promises.unlink;
63
+ this.generator = generator;
64
+ this.maxTimeout = 2147483640;
65
+ this.options = options;
66
+ this.stdout = node_process.default.stdout;
67
+ this.file = null;
68
+ this.initPromise = null;
69
+ this.timeout = null;
70
+ this.timeoutPromise = null;
71
+ this.prev = null;
72
+ this.next = null;
73
+ this.rotation = null;
74
+ this.last = "";
75
+ this.finished = false;
76
+ this.size = 0;
77
+ if (maxFiles || maxSize) options.history = (path || "") + (history || `${this.generator(null)}.txt`);
78
+ this.on("close", () => this.finished ? null : this.emit("finish"));
79
+ this.on("finish", () => this.finished = this.clear());
80
+ (async () => {
81
+ try {
82
+ this.initPromise = this.init();
83
+ await this.initPromise;
84
+ this.initPromise = null;
85
+ } catch (e) {}
86
+ })();
87
+ }
88
+ _destroy(error, callback) {
89
+ this.refinal(error, callback);
90
+ }
91
+ _final(callback) {
92
+ this.refinal(void 0, callback);
93
+ }
94
+ _write(chunk, encoding, callback) {
95
+ this.rewrite([{
96
+ chunk,
97
+ encoding
98
+ }], 0, callback);
99
+ }
100
+ _writev(chunks, callback) {
101
+ this.rewrite(chunks, 0, callback);
102
+ }
103
+ async refinal(error, callback) {
104
+ try {
105
+ this.clear();
106
+ if (this.initPromise) await this.initPromise;
107
+ if (this.timeoutPromise) await this.timeoutPromise;
108
+ await this.reclose();
109
+ } catch (e) {
110
+ return callback(error || e);
111
+ }
112
+ callback(error);
113
+ }
114
+ async rewrite(chunks, index, callback) {
115
+ const { size, teeToStdout } = this.options;
116
+ try {
117
+ if (this.initPromise) await this.initPromise;
118
+ for (let i = 0; i < chunks.length; ++i) {
119
+ const { chunk } = chunks[i];
120
+ this.size += chunk.length;
121
+ if (this.timeoutPromise) await this.timeoutPromise;
122
+ await this.file.write(chunk);
123
+ if (teeToStdout && !this.stdout.destroyed) this.stdout.write(chunk);
124
+ if (size && this.size >= size) await this.rotate();
125
+ }
126
+ } catch (e) {
127
+ return callback(e);
128
+ }
129
+ callback();
130
+ }
131
+ async init() {
132
+ const { immutable, initialRotation, interval, size } = this.options;
133
+ if (immutable) return new Promise((resolve, reject) => node_process.default.nextTick(() => this.immutate(true).then(resolve).catch((err) => reject(err))));
134
+ let stats;
135
+ try {
136
+ stats = await (0, node_fs_promises.stat)(this.filename);
137
+ } catch (e) {
138
+ if (e.code !== "ENOENT") throw e;
139
+ return this.reopen(0);
140
+ }
141
+ if (!stats.isFile()) throw new Error(`Can't write on: ${this.filename} (it is not a file)`);
142
+ if (initialRotation) {
143
+ this.intervalBounds(this.now());
144
+ const prev = this.prev;
145
+ this.intervalBounds(new Date(stats.mtime.getTime()));
146
+ if (prev !== this.prev) return this.rotate();
147
+ }
148
+ this.size = stats.size;
149
+ if (!size || stats.size < size) return this.reopen(stats.size);
150
+ if (interval) this.intervalBounds(this.now());
151
+ return this.rotate();
152
+ }
153
+ async makePath(name) {
154
+ await (0, node_fs_promises.mkdir)(name.split(node_path.sep).slice(0, -1).join(node_path.sep), { recursive: true });
155
+ return name;
156
+ }
157
+ async reopen(size) {
158
+ let file;
159
+ try {
160
+ file = await (0, node_fs_promises.open)(this.filename, "a", this.options.mode);
161
+ } catch (e) {
162
+ if (e.code !== "ENOENT") throw e;
163
+ await this.makePath(this.filename);
164
+ file = await (0, node_fs_promises.open)(this.filename, "a", this.options.mode);
165
+ }
166
+ this.file = file;
167
+ this.size = size;
168
+ this.interval();
169
+ this.emit("open", this.filename);
170
+ }
171
+ async reclose() {
172
+ const { file } = this;
173
+ if (!file) return;
174
+ this.file = null;
175
+ return file.close();
176
+ }
177
+ now() {
178
+ return /* @__PURE__ */ new Date();
179
+ }
180
+ async rotate() {
181
+ const { immutable, rotate } = this.options;
182
+ this.size = 0;
183
+ this.rotation = this.now();
184
+ this.clear();
185
+ this.emit("rotation");
186
+ await this.reclose();
187
+ if (rotate) return this.classical();
188
+ if (immutable) return this.immutate(false);
189
+ return this.move();
190
+ }
191
+ async findName() {
192
+ const { interval, path, intervalBoundary } = this.options;
193
+ for (let index = 1; index < 1e3; ++index) {
194
+ const filename = (path || "") + this.generator(interval && intervalBoundary ? new Date(this.prev) : this.rotation, index);
195
+ if (!await exists(filename)) return filename;
196
+ }
197
+ throw new RotatingFileStreamError();
198
+ }
199
+ async move() {
200
+ const { compress } = this.options;
201
+ const filename = await this.findName();
202
+ await this.touch(filename);
203
+ if (compress) await this.compress(filename);
204
+ else await (0, node_fs_promises.rename)(this.filename, filename);
205
+ return this.rotated(filename);
206
+ }
207
+ async touch(filename) {
208
+ let file;
209
+ try {
210
+ file = await this.fsOpen(filename, "a");
211
+ } catch (e) {
212
+ if (e.code !== "ENOENT") throw e;
213
+ await this.makePath(filename);
214
+ file = await (0, node_fs_promises.open)(filename, "a");
215
+ }
216
+ await file.close();
217
+ return this.unlink(filename);
218
+ }
219
+ async classical() {
220
+ const { compress, path, rotate = 0 } = this.options;
221
+ let rotatedName = "";
222
+ for (let count = rotate; count > 0; --count) {
223
+ const currName = path + this.generator(count);
224
+ const prevName = count === 1 ? this.filename : path + this.generator(count - 1);
225
+ if (!await exists(prevName)) continue;
226
+ if (!rotatedName) rotatedName = currName;
227
+ if (count === 1 && compress) await this.compress(currName);
228
+ else try {
229
+ await (0, node_fs_promises.rename)(prevName, currName);
230
+ } catch (e) {
231
+ if (e.code !== "ENOENT") throw e;
232
+ await this.makePath(currName);
233
+ await (0, node_fs_promises.rename)(prevName, currName);
234
+ }
235
+ }
236
+ return this.rotated(rotatedName);
237
+ }
238
+ clear() {
239
+ if (this.timeout) {
240
+ clearTimeout(this.timeout);
241
+ this.timeout = null;
242
+ }
243
+ return true;
244
+ }
245
+ intervalBoundsBig(now) {
246
+ const year = this.options.intervalUTC ? now.getUTCFullYear() : now.getFullYear();
247
+ let month = this.options.intervalUTC ? now.getUTCMonth() : now.getMonth();
248
+ let day = this.options.intervalUTC ? now.getUTCDate() : now.getDate();
249
+ let hours = this.options.intervalUTC ? now.getUTCHours() : now.getHours();
250
+ const { num, unit } = this.options.interval;
251
+ if (unit === "M") {
252
+ day = 1;
253
+ hours = 0;
254
+ } else if (unit === "d") hours = 0;
255
+ else hours = Number.parseInt(hours / num, 10) * num;
256
+ this.prev = new Date(year, month, day, hours, 0, 0, 0).getTime();
257
+ if (unit === "M") month += num;
258
+ else if (unit === "d") day += num;
259
+ else hours += num;
260
+ this.next = new Date(year, month, day, hours, 0, 0, 0).getTime();
261
+ }
262
+ intervalBounds(now) {
263
+ const unit = this.options.interval.unit;
264
+ if (unit === "M" || unit === "d" || unit === "h") this.intervalBoundsBig(now);
265
+ else {
266
+ let period = 1e3 * this.options.interval.num;
267
+ if (unit === "m") period *= 60;
268
+ this.prev = Number.parseInt(String(now.getTime() / period), 10) * period;
269
+ this.next = this.prev + period;
270
+ }
271
+ return new Date(this.prev);
272
+ }
273
+ interval() {
274
+ if (!this.options.interval) return;
275
+ this.intervalBounds(this.now());
276
+ const set = async () => {
277
+ const time = this.next - this.now().getTime();
278
+ if (time <= 0) try {
279
+ this.timeoutPromise = this.rotate();
280
+ await this.timeoutPromise;
281
+ this.timeoutPromise = null;
282
+ } catch (e) {}
283
+ else {
284
+ this.timeout = (0, node_timers.setTimeout)(set, time > this.maxTimeout ? this.maxTimeout : time);
285
+ if (this.timeout && typeof this.timeout.unref === "function") this.timeout.unref();
286
+ }
287
+ };
288
+ set();
289
+ }
290
+ async compress(filename) {
291
+ const { compress } = this.options;
292
+ if (typeof compress === "function") await new Promise((resolve, reject) => {
293
+ this.exec(compress(this.filename, filename), (error, stdout, stderr) => {
294
+ this.emit("external", stdout, stderr);
295
+ error ? reject(error) : resolve();
296
+ });
297
+ });
298
+ else await this.gzip(filename);
299
+ return this.unlink(this.filename);
300
+ }
301
+ async gzip(filename) {
302
+ const { mode } = this.options;
303
+ const options = mode ? { mode } : {};
304
+ const inp = this.fsCreateReadStream(this.filename, {});
305
+ const out = this.fsCreateWriteStream(filename, options);
306
+ const zip = this.createGzip();
307
+ return new Promise((resolve, reject) => {
308
+ inp.once("error", reject);
309
+ out.once("error", reject);
310
+ zip.once("error", reject);
311
+ out.once("finish", resolve);
312
+ inp.pipe(zip).pipe(out);
313
+ });
314
+ }
315
+ async rotated(filename) {
316
+ const { maxFiles, maxSize } = this.options;
317
+ if (maxFiles || maxSize) await this.history(filename);
318
+ this.emit("rotated", filename);
319
+ return this.reopen(0);
320
+ }
321
+ async history(filename) {
322
+ const { history, maxFiles, maxSize } = this.options;
323
+ const res = [];
324
+ let files = [filename];
325
+ try {
326
+ if (history) files = [...(await this.fsReadFile(history, "utf8")).toString().split("\n"), filename];
327
+ } catch (e) {
328
+ if (e.code !== "ENOENT") throw e;
329
+ }
330
+ for (const file of files) if (file) try {
331
+ const stats = await this.fsStat(file);
332
+ if (stats.isFile()) res.push({
333
+ name: file,
334
+ size: stats.size,
335
+ time: stats.mtime.getTime()
336
+ });
337
+ else this.emit("warning", /* @__PURE__ */ new Error(`File '${file}' contained in history is not a regular file`));
338
+ } catch (e) {
339
+ if (e.code !== "ENOENT") throw e;
340
+ }
341
+ res.sort((a, b) => a.time - b.time);
342
+ if (maxFiles) while (res.length > maxFiles) {
343
+ const file = res.shift();
344
+ if (file) await this.unlink(file.name);
345
+ if (file) this.emit("removed", file.name, true);
346
+ }
347
+ if (maxSize) while (res.reduce((size, file) => size + file.size, 0) > maxSize) {
348
+ const file = res.shift();
349
+ if (file) await this.unlink(file.name);
350
+ if (file) this.emit("removed", file.name, false);
351
+ }
352
+ if (history) await (0, node_fs_promises.writeFile)(history, `${res.map((e) => e.name).join("\n")}\n`, "utf-8");
353
+ this.emit("history");
354
+ }
355
+ async immutate(first) {
356
+ const { size } = this.options;
357
+ const now = this.now();
358
+ for (let index = 1; index < 1e3; ++index) {
359
+ let fileSize = 0;
360
+ let stats;
361
+ this.filename = this.options.path + this.generator(now, index);
362
+ try {
363
+ stats = await this.fsStat(this.filename);
364
+ } catch (e) {
365
+ if (e.code !== "ENOENT") throw e;
366
+ }
367
+ if (stats) {
368
+ fileSize = stats.size;
369
+ if (!stats.isFile()) throw new Error(`Can't write on: '${this.filename}' (it is not a file)`);
370
+ if (size && fileSize >= size) continue;
371
+ }
372
+ if (first) {
373
+ this.last = this.filename;
374
+ return this.reopen(fileSize);
375
+ }
376
+ await this.rotated(this.last);
377
+ this.last = this.filename;
378
+ return;
379
+ }
380
+ throw new RotatingFileStreamError();
381
+ }
382
+ async unlink(filename) {
383
+ try {
384
+ await this.fsUnlink(filename);
385
+ } catch (e) {
386
+ if (e.code !== "ENOENT") throw e;
387
+ this.emit("warning", e);
388
+ }
389
+ }
390
+ };
391
+ function buildNumberCheck(field) {
392
+ return (type, options, value) => {
393
+ const converted = Number.parseInt(String(value), 10);
394
+ if (type !== "number" || Number.isNaN(converted) || converted <= 0) throw new Error(`'${field}' option must be a positive integer number`);
395
+ };
396
+ }
397
+ function buildStringCheck(field, check) {
398
+ return (type, options, value) => {
399
+ if (type !== "string") throw new Error(`Don't know how to handle 'options.${String(field)}' type: ${type}`);
400
+ options[field] = check(value);
401
+ };
402
+ }
403
+ function checkMeasure(value, what, units) {
404
+ const ret = {};
405
+ ret.num = Number.parseInt(value, 10);
406
+ if (Number.isNaN(ret.num)) throw new Error(`Unknown 'options.${what}' format: ${value}`);
407
+ if (ret.num <= 0) throw new Error(`A positive integer number is expected for 'options.${what}'`);
408
+ ret.unit = value.replace(/^[ 0]*/g, "").substr(`${ret.num}`.length, 1);
409
+ if (ret.unit.length === 0) throw new Error(`Missing unit for 'options.${what}'`);
410
+ if (!units[ret.unit]) throw new Error(`Unknown 'options.${what}' unit: ${ret.unit}`);
411
+ return ret;
412
+ }
413
+ const intervalUnits = {
414
+ M: true,
415
+ d: true,
416
+ h: true,
417
+ m: true,
418
+ s: true
419
+ };
420
+ function checkIntervalUnit(ret, unit, amount) {
421
+ if (Number.parseInt(amount / ret.num, 10) * ret.num !== amount) throw new Error(`An integer divider of ${amount} is expected as ${unit} for 'options.interval'`);
422
+ }
423
+ function checkInterval(value) {
424
+ const ret = checkMeasure(value, "interval", intervalUnits);
425
+ switch (ret.unit) {
426
+ case "h":
427
+ checkIntervalUnit(ret, "hours", 24);
428
+ break;
429
+ case "m":
430
+ checkIntervalUnit(ret, "minutes", 60);
431
+ break;
432
+ case "s":
433
+ checkIntervalUnit(ret, "seconds", 60);
434
+ break;
435
+ }
436
+ return ret;
437
+ }
438
+ const sizeUnits = {
439
+ B: true,
440
+ G: true,
441
+ K: true,
442
+ M: true
443
+ };
444
+ function checkSize(value) {
445
+ const ret = checkMeasure(value, "size", sizeUnits);
446
+ if (ret.unit === "K") return ret.num * 1024;
447
+ if (ret.unit === "M") return ret.num * 1048576;
448
+ if (ret.unit === "G") return ret.num * 1073741824;
449
+ return ret.num;
450
+ }
451
+ const checks = {
452
+ encoding: (type, options, value) => new node_util.TextDecoder(value),
453
+ immutable: () => {},
454
+ initialRotation: () => {},
455
+ interval: buildStringCheck("interval", checkInterval),
456
+ intervalBoundary: () => {},
457
+ intervalUTC: () => {},
458
+ maxFiles: buildNumberCheck("maxFiles"),
459
+ maxSize: buildStringCheck("maxSize", checkSize),
460
+ mode: () => {},
461
+ omitExtension: () => {},
462
+ rotate: buildNumberCheck("rotate"),
463
+ size: buildStringCheck("size", checkSize),
464
+ teeToStdout: () => {},
465
+ compress: (type, options, value) => {
466
+ if (value === false) return;
467
+ if (!value) throw new Error("A value for 'options.compress' must be specified");
468
+ if (type === "boolean") return options.compress = (source, dest) => `cat ${source} | gzip -c9 > ${dest}`;
469
+ if (type === "function") return;
470
+ if (type !== "string") throw new Error(`Don't know how to handle 'options.compress' type: ${type}`);
471
+ if (value !== "gzip") throw new Error(`Don't know how to handle compression method: ${value}`);
472
+ },
473
+ history: (type) => {
474
+ if (type !== "string") throw new Error(`Don't know how to handle 'options.history' type: ${type}`);
475
+ },
476
+ path: (type, options, value) => {
477
+ if (type !== "string") throw new Error(`Don't know how to handle 'options.path' type: ${type}`);
478
+ if (value.at(-1) !== node_path.sep) options.path = value + node_path.sep;
479
+ }
480
+ };
481
+ function checkOpts(options) {
482
+ const ret = {};
483
+ for (const k of Object.keys(options)) {
484
+ const opt = k;
485
+ const value = options[opt];
486
+ const type = typeof value;
487
+ ret[opt] = value;
488
+ if (!(opt in checks)) throw new Error(`Unknown option: ${opt}`);
489
+ checks[opt](type, ret, value);
490
+ }
491
+ if (!ret.path) ret.path = "";
492
+ if (!ret.interval) {
493
+ delete ret.immutable;
494
+ delete ret.initialRotation;
495
+ delete ret.intervalBoundary;
496
+ delete ret.intervalUTC;
497
+ }
498
+ if (ret.rotate) {
499
+ delete ret.history;
500
+ delete ret.immutable;
501
+ delete ret.maxFiles;
502
+ delete ret.maxSize;
503
+ delete ret.intervalBoundary;
504
+ delete ret.intervalUTC;
505
+ }
506
+ if (ret.immutable) delete ret.compress;
507
+ if (!ret.intervalBoundary) delete ret.initialRotation;
508
+ return ret;
509
+ }
510
+ function createClassical(filename, compress, omitExtension) {
511
+ return (time, index) => {
512
+ const idx = index || 0;
513
+ return idx ? `${filename}.${idx}${compress && !omitExtension ? ".gz" : ""}` : filename;
514
+ };
515
+ }
516
+ function createGenerator(filename, compress, omitExtension) {
517
+ const pad = (num) => (num > 9 ? "" : "0") + num;
518
+ return (time, index) => {
519
+ if (!time) return filename;
520
+ const t = typeof time === "number" ? new Date(time) : time;
521
+ const month = `${t.getFullYear()}${pad(t.getMonth() + 1)}`;
522
+ const day = pad(t.getDate());
523
+ const hour = pad(t.getHours());
524
+ const minute = pad(t.getMinutes());
525
+ return `${month + day}-${hour}${minute}-${pad(index || 0)}-${filename}${compress && !omitExtension ? ".gz" : ""}`;
526
+ };
527
+ }
528
+ function createRotationStream(filename, options) {
529
+ if (typeof options === "undefined") options = {};
530
+ else if (typeof options !== "object") throw new Error(`The "options" argument must be of type object. Received type ${typeof options}`);
531
+ const opts = checkOpts(options);
532
+ const { compress, omitExtension } = opts;
533
+ let generator;
534
+ if (typeof filename === "string") generator = opts.rotate ? createClassical(filename, !!compress, !!omitExtension) : createGenerator(filename, !!compress, !!omitExtension);
535
+ else if (typeof filename === "function") generator = filename;
536
+ else throw new Error(`The "filename" argument must be one of type string or function. Received type ${typeof filename}`);
537
+ return new RotatingFileStream(generator, opts);
538
+ }
539
+
540
+ //#endregion
541
+ exports.RotatingFileStream = RotatingFileStream;
542
+ exports.RotatingFileStreamError = RotatingFileStreamError;
543
+ exports.createRotationStream = createRotationStream;
4
544
  //# sourceMappingURL=log-rotation.cjs.map