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 +1 @@
1
- {"version":3,"file":"log-file-rotation.cjs","names":["valueToBoolean"],"sources":["../../../src/node/log/log-file-rotation.ts"],"sourcesContent":["import type { Type } from '../../common/schema'\nimport type { RotationOptions } from './log-rotation'\nimport { valueToBoolean } from '../../common/data/convert'\nimport { z } from '../../common/schema'\n\nexport type LogRotationOptions = boolean | RotationOptions | 'daily' | 'weekly' | 'monthly' | 'size'\n\nexport function parseLogRotationConfigEnv(v?: string | null): LogRotationOptions {\n if (['daily', 'weekly', 'monthly', 'size'].includes(String(v).trim().toLowerCase())) {\n return v as 'daily' | 'weekly' | 'monthly' | 'size'\n }\n\n return valueToBoolean(v, false)\n}\n\nexport function getLogRotationConfig(rotation: LogRotationOptions | undefined): RotationOptions | undefined {\n if (!rotation)\n return undefined\n\n // default for true and explicit 'size' is size-based rotation\n if (rotation === true || rotation === 'size') {\n return { size: '10M', maxFiles: 5, compress: 'gzip' }\n }\n\n // time-based shortcuts -> map to interval + maxFiles\n if (rotation === 'daily')\n return { interval: '1d', maxFiles: 30, compress: 'gzip' }\n if (rotation === 'weekly')\n return { interval: '7d', maxFiles: 30, compress: 'gzip' }\n if (rotation === 'monthly')\n return { interval: '1M', maxFiles: 90, compress: 'gzip' }\n\n // assume it's a full RotationOptions object\n return rotation as RotationOptions\n}\n\nexport function getLogFileRotationConfigSchemaOptions(simple = false): Type[] {\n const options: Type[] = [\n z.boolean(),\n z.literal('daily'),\n z.literal('weekly'),\n z.literal('monthly'),\n z.literal('size'),\n ]\n\n if (!simple) {\n options.push(z.object({\n compress: z.union([z.boolean(), z.literal('gzip')]).optional(),\n encoding: z.string().optional(),\n history: z.string().optional(),\n immutable: z.boolean().optional(),\n initialRotation: z.boolean().optional(),\n interval: z.string().optional(),\n intervalBoundary: z.boolean().optional(),\n intervalUTC: z.boolean().optional(),\n maxFiles: z.number().optional(),\n maxSize: z.string().optional(),\n mode: z.number().optional(),\n omitExtension: z.boolean().optional(),\n path: z.string().optional(),\n rotate: z.number().optional(),\n size: z.string().optional(),\n teeToStdout: z.boolean().optional(),\n }))\n }\n\n return options\n}\n"],"mappings":"gKAOA,SAAgB,EAA0B,EAAuC,CAK/E,MAJI,CAAC,QAAS,SAAU,UAAW,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAC1E,EAGFA,EAAAA,eAAe,EAAG,GAAM,CAGjC,SAAgB,EAAqB,EAAuE,CACrG,KAiBL,OAbI,IAAa,IAAQ,IAAa,OAC7B,CAAE,KAAM,MAAO,SAAU,EAAG,SAAU,OAAQ,CAInD,IAAa,QACR,CAAE,SAAU,KAAM,SAAU,GAAI,SAAU,OAAQ,CACvD,IAAa,SACR,CAAE,SAAU,KAAM,SAAU,GAAI,SAAU,OAAQ,CACvD,IAAa,UACR,CAAE,SAAU,KAAM,SAAU,GAAI,SAAU,OAAQ,CAGpD,EAGT,SAAgB,EAAsC,EAAS,GAAe,CAC5E,IAAM,EAAkB,YACX,WACD,QAAQ,WACR,SAAS,WACT,UAAU,WACV,OAAO,CAClB,CAuBD,OArBK,GACH,EAAQ,KAAA,EAAA,OAAc,CACpB,SAAA,EAAA,MAAkB,CAAA,EAAA,SAAY,CAAA,EAAA,QAAY,OAAO,CAAC,CAAC,CAAC,UAAU,CAC9D,SAAA,EAAA,QAAoB,CAAC,UAAU,CAC/B,QAAA,EAAA,QAAmB,CAAC,UAAU,CAC9B,UAAA,EAAA,SAAsB,CAAC,UAAU,CACjC,gBAAA,EAAA,SAA4B,CAAC,UAAU,CACvC,SAAA,EAAA,QAAoB,CAAC,UAAU,CAC/B,iBAAA,EAAA,SAA6B,CAAC,UAAU,CACxC,YAAA,EAAA,SAAwB,CAAC,UAAU,CACnC,SAAA,EAAA,QAAoB,CAAC,UAAU,CAC/B,QAAA,EAAA,QAAmB,CAAC,UAAU,CAC9B,KAAA,EAAA,QAAgB,CAAC,UAAU,CAC3B,cAAA,EAAA,SAA0B,CAAC,UAAU,CACrC,KAAA,EAAA,QAAgB,CAAC,UAAU,CAC3B,OAAA,EAAA,QAAkB,CAAC,UAAU,CAC7B,KAAA,EAAA,QAAgB,CAAC,UAAU,CAC3B,YAAA,EAAA,SAAwB,CAAC,UAAU,CACpC,CAAC,CAAC,CAGE"}
1
+ {"version":3,"file":"log-file-rotation.cjs","names":["valueToBoolean"],"sources":["../../../src/node/log/log-file-rotation.ts"],"sourcesContent":["import type { Type } from '../../common/schema'\nimport type { RotationOptions } from './log-rotation'\nimport { valueToBoolean } from '../../common/data/convert'\nimport { z } from '../../common/schema'\n\nexport type LogRotationOptions = boolean | RotationOptions | 'daily' | 'weekly' | 'monthly' | 'size'\n\nexport function parseLogRotationConfigEnv(v?: string | null): LogRotationOptions {\n if (['daily', 'weekly', 'monthly', 'size'].includes(String(v).trim().toLowerCase())) {\n return v as 'daily' | 'weekly' | 'monthly' | 'size'\n }\n\n return valueToBoolean(v, false)\n}\n\nexport function getLogRotationConfig(rotation: LogRotationOptions | undefined): RotationOptions | undefined {\n if (!rotation)\n return undefined\n\n // default for true and explicit 'size' is size-based rotation\n if (rotation === true || rotation === 'size') {\n return { size: '10M', maxFiles: 5, compress: 'gzip' }\n }\n\n // time-based shortcuts -> map to interval + maxFiles\n if (rotation === 'daily')\n return { interval: '1d', maxFiles: 30, compress: 'gzip' }\n if (rotation === 'weekly')\n return { interval: '7d', maxFiles: 30, compress: 'gzip' }\n if (rotation === 'monthly')\n return { interval: '1M', maxFiles: 90, compress: 'gzip' }\n\n // assume it's a full RotationOptions object\n return rotation as RotationOptions\n}\n\nexport function getLogFileRotationConfigSchemaOptions(simple = false): Type[] {\n const options: Type[] = [\n z.boolean(),\n z.literal('daily'),\n z.literal('weekly'),\n z.literal('monthly'),\n z.literal('size'),\n ]\n\n if (!simple) {\n options.push(z.object({\n compress: z.union([z.boolean(), z.literal('gzip')]).optional(),\n encoding: z.string().optional(),\n history: z.string().optional(),\n immutable: z.boolean().optional(),\n initialRotation: z.boolean().optional(),\n interval: z.string().optional(),\n intervalBoundary: z.boolean().optional(),\n intervalUTC: z.boolean().optional(),\n maxFiles: z.number().optional(),\n maxSize: z.string().optional(),\n mode: z.number().optional(),\n omitExtension: z.boolean().optional(),\n path: z.string().optional(),\n rotate: z.number().optional(),\n size: z.string().optional(),\n teeToStdout: z.boolean().optional(),\n }))\n }\n\n return options\n}\n"],"mappings":";;;;;AAOA,SAAgB,0BAA0B,GAAuC;AAC/E,KAAI;EAAC;EAAS;EAAU;EAAW;EAAO,CAAC,SAAS,OAAO,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CACjF,QAAO;AAGT,QAAOA,2CAAe,GAAG,MAAM;;AAGjC,SAAgB,qBAAqB,UAAuE;AAC1G,KAAI,CAAC,SACH,QAAO;AAGT,KAAI,aAAa,QAAQ,aAAa,OACpC,QAAO;EAAE,MAAM;EAAO,UAAU;EAAG,UAAU;EAAQ;AAIvD,KAAI,aAAa,QACf,QAAO;EAAE,UAAU;EAAM,UAAU;EAAI,UAAU;EAAQ;AAC3D,KAAI,aAAa,SACf,QAAO;EAAE,UAAU;EAAM,UAAU;EAAI,UAAU;EAAQ;AAC3D,KAAI,aAAa,UACf,QAAO;EAAE,UAAU;EAAM,UAAU;EAAI,UAAU;EAAQ;AAG3D,QAAO;;AAGT,SAAgB,sCAAsC,SAAS,OAAe;CAC5E,MAAM,UAAkB;wCACX;uCACD,QAAQ;uCACR,SAAS;uCACT,UAAU;uCACV,OAAO;EAClB;AAED,KAAI,CAAC,OACH,SAAQ,yCAAc;EACpB,6CAAkB,uCAAY,uCAAY,OAAO,CAAC,CAAC,CAAC,UAAU;EAC9D,+CAAoB,CAAC,UAAU;EAC/B,8CAAmB,CAAC,UAAU;EAC9B,iDAAsB,CAAC,UAAU;EACjC,uDAA4B,CAAC,UAAU;EACvC,+CAAoB,CAAC,UAAU;EAC/B,wDAA6B,CAAC,UAAU;EACxC,mDAAwB,CAAC,UAAU;EACnC,+CAAoB,CAAC,UAAU;EAC/B,8CAAmB,CAAC,UAAU;EAC9B,2CAAgB,CAAC,UAAU;EAC3B,qDAA0B,CAAC,UAAU;EACrC,2CAAgB,CAAC,UAAU;EAC3B,6CAAkB,CAAC,UAAU;EAC7B,2CAAgB,CAAC,UAAU;EAC3B,mDAAwB,CAAC,UAAU;EACpC,CAAC,CAAC;AAGL,QAAO"}
@@ -1,2 +1,69 @@
1
- import{valueToBoolean as e}from"../../common/data/convert.mjs";import{boolean as t,literal as n,number as r,object as i,string as a,union as o}from"../../common/schema/schema.mjs";function s(t){return[`daily`,`weekly`,`monthly`,`size`].includes(String(t).trim().toLowerCase())?t:e(t,!1)}function c(e){if(e)return e===!0||e===`size`?{size:`10M`,maxFiles:5,compress:`gzip`}:e===`daily`?{interval:`1d`,maxFiles:30,compress:`gzip`}:e===`weekly`?{interval:`7d`,maxFiles:30,compress:`gzip`}:e===`monthly`?{interval:`1M`,maxFiles:90,compress:`gzip`}:e}function l(e=!1){let s=[t(),n(`daily`),n(`weekly`),n(`monthly`),n(`size`)];return e||s.push(i({compress:o([t(),n(`gzip`)]).optional(),encoding:a().optional(),history:a().optional(),immutable:t().optional(),initialRotation:t().optional(),interval:a().optional(),intervalBoundary:t().optional(),intervalUTC:t().optional(),maxFiles:r().optional(),maxSize:a().optional(),mode:r().optional(),omitExtension:t().optional(),path:a().optional(),rotate:r().optional(),size:a().optional(),teeToStdout:t().optional()})),s}export{l as getLogFileRotationConfigSchemaOptions,c as getLogRotationConfig,s as parseLogRotationConfigEnv};
1
+ import { valueToBoolean } from "../../common/data/convert.mjs";
2
+ import { boolean, literal, number, object, string, union } from "../../common/schema/schema.mjs";
3
+
4
+ //#region src/node/log/log-file-rotation.ts
5
+ function parseLogRotationConfigEnv(v) {
6
+ if ([
7
+ "daily",
8
+ "weekly",
9
+ "monthly",
10
+ "size"
11
+ ].includes(String(v).trim().toLowerCase())) return v;
12
+ return valueToBoolean(v, false);
13
+ }
14
+ function getLogRotationConfig(rotation) {
15
+ if (!rotation) return void 0;
16
+ if (rotation === true || rotation === "size") return {
17
+ size: "10M",
18
+ maxFiles: 5,
19
+ compress: "gzip"
20
+ };
21
+ if (rotation === "daily") return {
22
+ interval: "1d",
23
+ maxFiles: 30,
24
+ compress: "gzip"
25
+ };
26
+ if (rotation === "weekly") return {
27
+ interval: "7d",
28
+ maxFiles: 30,
29
+ compress: "gzip"
30
+ };
31
+ if (rotation === "monthly") return {
32
+ interval: "1M",
33
+ maxFiles: 90,
34
+ compress: "gzip"
35
+ };
36
+ return rotation;
37
+ }
38
+ function getLogFileRotationConfigSchemaOptions(simple = false) {
39
+ const options = [
40
+ boolean(),
41
+ literal("daily"),
42
+ literal("weekly"),
43
+ literal("monthly"),
44
+ literal("size")
45
+ ];
46
+ if (!simple) options.push(object({
47
+ compress: union([boolean(), literal("gzip")]).optional(),
48
+ encoding: string().optional(),
49
+ history: string().optional(),
50
+ immutable: boolean().optional(),
51
+ initialRotation: boolean().optional(),
52
+ interval: string().optional(),
53
+ intervalBoundary: boolean().optional(),
54
+ intervalUTC: boolean().optional(),
55
+ maxFiles: number().optional(),
56
+ maxSize: string().optional(),
57
+ mode: number().optional(),
58
+ omitExtension: boolean().optional(),
59
+ path: string().optional(),
60
+ rotate: number().optional(),
61
+ size: string().optional(),
62
+ teeToStdout: boolean().optional()
63
+ }));
64
+ return options;
65
+ }
66
+
67
+ //#endregion
68
+ export { getLogFileRotationConfigSchemaOptions, getLogRotationConfig, parseLogRotationConfigEnv };
2
69
  //# sourceMappingURL=log-file-rotation.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"log-file-rotation.mjs","names":["z.boolean","z.literal","z.object","z.union","z.string","z.number"],"sources":["../../../src/node/log/log-file-rotation.ts"],"sourcesContent":["import type { Type } from '../../common/schema'\nimport type { RotationOptions } from './log-rotation'\nimport { valueToBoolean } from '../../common/data/convert'\nimport { z } from '../../common/schema'\n\nexport type LogRotationOptions = boolean | RotationOptions | 'daily' | 'weekly' | 'monthly' | 'size'\n\nexport function parseLogRotationConfigEnv(v?: string | null): LogRotationOptions {\n if (['daily', 'weekly', 'monthly', 'size'].includes(String(v).trim().toLowerCase())) {\n return v as 'daily' | 'weekly' | 'monthly' | 'size'\n }\n\n return valueToBoolean(v, false)\n}\n\nexport function getLogRotationConfig(rotation: LogRotationOptions | undefined): RotationOptions | undefined {\n if (!rotation)\n return undefined\n\n // default for true and explicit 'size' is size-based rotation\n if (rotation === true || rotation === 'size') {\n return { size: '10M', maxFiles: 5, compress: 'gzip' }\n }\n\n // time-based shortcuts -> map to interval + maxFiles\n if (rotation === 'daily')\n return { interval: '1d', maxFiles: 30, compress: 'gzip' }\n if (rotation === 'weekly')\n return { interval: '7d', maxFiles: 30, compress: 'gzip' }\n if (rotation === 'monthly')\n return { interval: '1M', maxFiles: 90, compress: 'gzip' }\n\n // assume it's a full RotationOptions object\n return rotation as RotationOptions\n}\n\nexport function getLogFileRotationConfigSchemaOptions(simple = false): Type[] {\n const options: Type[] = [\n z.boolean(),\n z.literal('daily'),\n z.literal('weekly'),\n z.literal('monthly'),\n z.literal('size'),\n ]\n\n if (!simple) {\n options.push(z.object({\n compress: z.union([z.boolean(), z.literal('gzip')]).optional(),\n encoding: z.string().optional(),\n history: z.string().optional(),\n immutable: z.boolean().optional(),\n initialRotation: z.boolean().optional(),\n interval: z.string().optional(),\n intervalBoundary: z.boolean().optional(),\n intervalUTC: z.boolean().optional(),\n maxFiles: z.number().optional(),\n maxSize: z.string().optional(),\n mode: z.number().optional(),\n omitExtension: z.boolean().optional(),\n path: z.string().optional(),\n rotate: z.number().optional(),\n size: z.string().optional(),\n teeToStdout: z.boolean().optional(),\n }))\n }\n\n return options\n}\n"],"mappings":"oLAOA,SAAgB,EAA0B,EAAuC,CAK/E,MAJI,CAAC,QAAS,SAAU,UAAW,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAC1E,EAGF,EAAe,EAAG,GAAM,CAGjC,SAAgB,EAAqB,EAAuE,CACrG,KAiBL,OAbI,IAAa,IAAQ,IAAa,OAC7B,CAAE,KAAM,MAAO,SAAU,EAAG,SAAU,OAAQ,CAInD,IAAa,QACR,CAAE,SAAU,KAAM,SAAU,GAAI,SAAU,OAAQ,CACvD,IAAa,SACR,CAAE,SAAU,KAAM,SAAU,GAAI,SAAU,OAAQ,CACvD,IAAa,UACR,CAAE,SAAU,KAAM,SAAU,GAAI,SAAU,OAAQ,CAGpD,EAGT,SAAgB,EAAsC,EAAS,GAAe,CAC5E,IAAM,EAAkB,CACtBA,GAAW,CACXC,EAAU,QAAQ,CAClBA,EAAU,SAAS,CACnBA,EAAU,UAAU,CACpBA,EAAU,OAAO,CAClB,CAuBD,OArBK,GACH,EAAQ,KAAKC,EAAS,CACpB,SAAUC,EAAQ,CAACH,GAAW,CAAEC,EAAU,OAAO,CAAC,CAAC,CAAC,UAAU,CAC9D,SAAUG,GAAU,CAAC,UAAU,CAC/B,QAASA,GAAU,CAAC,UAAU,CAC9B,UAAWJ,GAAW,CAAC,UAAU,CACjC,gBAAiBA,GAAW,CAAC,UAAU,CACvC,SAAUI,GAAU,CAAC,UAAU,CAC/B,iBAAkBJ,GAAW,CAAC,UAAU,CACxC,YAAaA,GAAW,CAAC,UAAU,CACnC,SAAUK,GAAU,CAAC,UAAU,CAC/B,QAASD,GAAU,CAAC,UAAU,CAC9B,KAAMC,GAAU,CAAC,UAAU,CAC3B,cAAeL,GAAW,CAAC,UAAU,CACrC,KAAMI,GAAU,CAAC,UAAU,CAC3B,OAAQC,GAAU,CAAC,UAAU,CAC7B,KAAMD,GAAU,CAAC,UAAU,CAC3B,YAAaJ,GAAW,CAAC,UAAU,CACpC,CAAC,CAAC,CAGE"}
1
+ {"version":3,"file":"log-file-rotation.mjs","names":["z.boolean","z.literal","z.object","z.union","z.string","z.number"],"sources":["../../../src/node/log/log-file-rotation.ts"],"sourcesContent":["import type { Type } from '../../common/schema'\nimport type { RotationOptions } from './log-rotation'\nimport { valueToBoolean } from '../../common/data/convert'\nimport { z } from '../../common/schema'\n\nexport type LogRotationOptions = boolean | RotationOptions | 'daily' | 'weekly' | 'monthly' | 'size'\n\nexport function parseLogRotationConfigEnv(v?: string | null): LogRotationOptions {\n if (['daily', 'weekly', 'monthly', 'size'].includes(String(v).trim().toLowerCase())) {\n return v as 'daily' | 'weekly' | 'monthly' | 'size'\n }\n\n return valueToBoolean(v, false)\n}\n\nexport function getLogRotationConfig(rotation: LogRotationOptions | undefined): RotationOptions | undefined {\n if (!rotation)\n return undefined\n\n // default for true and explicit 'size' is size-based rotation\n if (rotation === true || rotation === 'size') {\n return { size: '10M', maxFiles: 5, compress: 'gzip' }\n }\n\n // time-based shortcuts -> map to interval + maxFiles\n if (rotation === 'daily')\n return { interval: '1d', maxFiles: 30, compress: 'gzip' }\n if (rotation === 'weekly')\n return { interval: '7d', maxFiles: 30, compress: 'gzip' }\n if (rotation === 'monthly')\n return { interval: '1M', maxFiles: 90, compress: 'gzip' }\n\n // assume it's a full RotationOptions object\n return rotation as RotationOptions\n}\n\nexport function getLogFileRotationConfigSchemaOptions(simple = false): Type[] {\n const options: Type[] = [\n z.boolean(),\n z.literal('daily'),\n z.literal('weekly'),\n z.literal('monthly'),\n z.literal('size'),\n ]\n\n if (!simple) {\n options.push(z.object({\n compress: z.union([z.boolean(), z.literal('gzip')]).optional(),\n encoding: z.string().optional(),\n history: z.string().optional(),\n immutable: z.boolean().optional(),\n initialRotation: z.boolean().optional(),\n interval: z.string().optional(),\n intervalBoundary: z.boolean().optional(),\n intervalUTC: z.boolean().optional(),\n maxFiles: z.number().optional(),\n maxSize: z.string().optional(),\n mode: z.number().optional(),\n omitExtension: z.boolean().optional(),\n path: z.string().optional(),\n rotate: z.number().optional(),\n size: z.string().optional(),\n teeToStdout: z.boolean().optional(),\n }))\n }\n\n return options\n}\n"],"mappings":";;;;AAOA,SAAgB,0BAA0B,GAAuC;AAC/E,KAAI;EAAC;EAAS;EAAU;EAAW;EAAO,CAAC,SAAS,OAAO,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CACjF,QAAO;AAGT,QAAO,eAAe,GAAG,MAAM;;AAGjC,SAAgB,qBAAqB,UAAuE;AAC1G,KAAI,CAAC,SACH,QAAO;AAGT,KAAI,aAAa,QAAQ,aAAa,OACpC,QAAO;EAAE,MAAM;EAAO,UAAU;EAAG,UAAU;EAAQ;AAIvD,KAAI,aAAa,QACf,QAAO;EAAE,UAAU;EAAM,UAAU;EAAI,UAAU;EAAQ;AAC3D,KAAI,aAAa,SACf,QAAO;EAAE,UAAU;EAAM,UAAU;EAAI,UAAU;EAAQ;AAC3D,KAAI,aAAa,UACf,QAAO;EAAE,UAAU;EAAM,UAAU;EAAI,UAAU;EAAQ;AAG3D,QAAO;;AAGT,SAAgB,sCAAsC,SAAS,OAAe;CAC5E,MAAM,UAAkB;EACtBA,SAAW;EACXC,QAAU,QAAQ;EAClBA,QAAU,SAAS;EACnBA,QAAU,UAAU;EACpBA,QAAU,OAAO;EAClB;AAED,KAAI,CAAC,OACH,SAAQ,KAAKC,OAAS;EACpB,UAAUC,MAAQ,CAACH,SAAW,EAAEC,QAAU,OAAO,CAAC,CAAC,CAAC,UAAU;EAC9D,UAAUG,QAAU,CAAC,UAAU;EAC/B,SAASA,QAAU,CAAC,UAAU;EAC9B,WAAWJ,SAAW,CAAC,UAAU;EACjC,iBAAiBA,SAAW,CAAC,UAAU;EACvC,UAAUI,QAAU,CAAC,UAAU;EAC/B,kBAAkBJ,SAAW,CAAC,UAAU;EACxC,aAAaA,SAAW,CAAC,UAAU;EACnC,UAAUK,QAAU,CAAC,UAAU;EAC/B,SAASD,QAAU,CAAC,UAAU;EAC9B,MAAMC,QAAU,CAAC,UAAU;EAC3B,eAAeL,SAAW,CAAC,UAAU;EACrC,MAAMI,QAAU,CAAC,UAAU;EAC3B,QAAQC,QAAU,CAAC,UAAU;EAC7B,MAAMD,QAAU,CAAC,UAAU;EAC3B,aAAaJ,SAAW,CAAC,UAAU;EACpC,CAAC,CAAC;AAGL,QAAO"}
@@ -1,2 +1,58 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../chunk-D-qHiVGv.cjs`);require(`../../common/log/log-base.cjs`);const t=require(`../../common/log/log-filter.cjs`),n=require(`../../common/data/message.cjs`),r=require(`./log-file-rotation.cjs`),i=require(`./log-rotation.cjs`);let a=require(`node:process`);a=e.n(a);let o=require(`node:fs`),s=require(`node:path`);const c={};function l(e,l={}){let{level:u=void 0,filter:d=void 0,time:f=!0,pretty:p=!1,rotation:m}=l;e=(0,s.resolve)(a.default.cwd(),e);let h=(0,s.dirname)(e);(0,o.mkdirSync)(h,{recursive:!0});let g=r.getLogRotationConfig(m),_;g?(g.path=h,_=i.createRotationStream((0,s.basename)(e),g)):_=(0,o.createWriteStream)(e,{flags:`a`});let v=t.useNamespaceFilter(d),y=t.useLevelFilter(u);return e=>{if(!y(e.level)||!v(e.name))return;let t=f?`${new Date().toISOString()} `:``,r=e.name||``,i=c[r||``];i??(c[r]=i);let a=[`[${r||`*`}]`,n.renderMessages(e.messages,{pretty:p})];function o(...e){_.write(`${e.join(` `)}\n`)}switch(e.level){case 1:o(`${t}I|* `,...a);break;case 2:o(`${t}W|** `,...a);break;case 3:o(`${t}E|***`,...a);break;default:o(`${t}D| `,...a);break}}}exports.LoggerFileHandler=l;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_chunk = require('../../chunk-uaV2rQ02.cjs');
3
+ const require_common_log_log_base = require('../../common/log/log-base.cjs');
4
+ const require_common_log_log_filter = require('../../common/log/log-filter.cjs');
5
+ const require_common_data_message = require('../../common/data/message.cjs');
6
+ const require_node_log_log_file_rotation = require('./log-file-rotation.cjs');
7
+ const require_node_log_log_rotation = require('./log-rotation.cjs');
8
+ let node_process = require("node:process");
9
+ node_process = require_chunk.__toESM(node_process, 1);
10
+ let node_fs = require("node:fs");
11
+ let node_path = require("node:path");
12
+
13
+ //#region src/node/log/log-file.ts
14
+ const namespaces = {};
15
+ function LoggerFileHandler(path, opt = {}) {
16
+ const { level = void 0, filter = void 0, time = true, pretty = false, rotation } = opt;
17
+ path = (0, node_path.resolve)(node_process.default.cwd(), path);
18
+ const pathFolder = (0, node_path.dirname)(path);
19
+ (0, node_fs.mkdirSync)(pathFolder, { recursive: true });
20
+ const rotationOpts = require_node_log_log_file_rotation.getLogRotationConfig(rotation);
21
+ let stream;
22
+ if (rotationOpts) {
23
+ rotationOpts.path = pathFolder;
24
+ stream = require_node_log_log_rotation.createRotationStream((0, node_path.basename)(path), rotationOpts);
25
+ } else stream = (0, node_fs.createWriteStream)(path, { flags: "a" });
26
+ const matchesNamespace = require_common_log_log_filter.useNamespaceFilter(filter);
27
+ const matchesLevel = require_common_log_log_filter.useLevelFilter(level);
28
+ return (msg) => {
29
+ if (!matchesLevel(msg.level)) return;
30
+ if (!matchesNamespace(msg.name)) return;
31
+ const timeNow = time ? `${(/* @__PURE__ */ new Date()).toISOString()} ` : "";
32
+ const name = msg.name || "";
33
+ const ninfo = namespaces[name || ""];
34
+ if (ninfo == null) namespaces[name] = ninfo;
35
+ const args = [`[${name || "*"}]`, require_common_data_message.renderMessages(msg.messages, { pretty })];
36
+ function write(...args) {
37
+ stream.write(`${args.join(" ")}\n`);
38
+ }
39
+ switch (msg.level) {
40
+ case 1:
41
+ write(`${timeNow}I|* `, ...args);
42
+ break;
43
+ case 2:
44
+ write(`${timeNow}W|** `, ...args);
45
+ break;
46
+ case 3:
47
+ write(`${timeNow}E|***`, ...args);
48
+ break;
49
+ default:
50
+ write(`${timeNow}D| `, ...args);
51
+ break;
52
+ }
53
+ };
54
+ }
55
+
56
+ //#endregion
57
+ exports.LoggerFileHandler = LoggerFileHandler;
2
58
  //# sourceMappingURL=log-file.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"log-file.cjs","names":["process","getLogRotationConfig","createRotationStream","useNamespaceFilter","useLevelFilter","renderMessages"],"sources":["../../../src/node/log/log-file.ts"],"sourcesContent":["import type { LogHandlerOptions, LogMessage } from '../../common/log/log-base'\nimport type { LogRotationOptions } from './log-file-rotation'\nimport { createWriteStream, mkdirSync } from 'node:fs'\nimport { basename, dirname, resolve } from 'node:path'\nimport process from 'node:process'\nimport { renderMessages } from '../../common/data/message'\nimport { LogLevelError, LogLevelInfo, LogLevelWarn } from '../../common/log/log-base'\nimport { useLevelFilter, useNamespaceFilter } from '../../common/log/log-filter'\nimport { getLogRotationConfig } from './log-file-rotation'\nimport { createRotationStream } from './log-rotation'\n\nconst namespaces: Record<string, any> = {}\n\nexport interface LogFileHandlerOptions extends LogHandlerOptions {\n /**\n * Optional rotation options for log files. When provided, enables automatic log rotation.\n * Can be:\n * - `true`: Use default rotation settings (10MB size, 5 files, gzip compression)\n * - Rotation options object: Customize rotation behavior\n * - Shortcut strings: 'daily' | 'weekly' | 'monthly' | 'size'\n *\n * Examples:\n * - Enable with defaults: { rotation: true }\n * - Rotate daily: { rotation: { interval: '1d' } }\n * - Rotate when file reaches 10MB: { rotation: { size: '10M' } }\n * - Keep max 5 files: { rotation: { maxFiles: 5 } }\n * - Compress rotated files: { rotation: { compress: 'gzip' } }\n */\n rotation?: LogRotationOptions\n}\n\nexport function LoggerFileHandler(path: string, opt: LogFileHandlerOptions = {}) {\n const {\n level = undefined,\n filter = undefined,\n time = true,\n pretty = false,\n rotation,\n } = opt\n\n path = resolve(process.cwd(), path)\n const pathFolder = dirname(path)\n mkdirSync(pathFolder, { recursive: true })\n\n // Use rotating stream if rotation options are provided\n const rotationOpts = getLogRotationConfig(rotation)\n\n let stream: ReturnType<typeof createWriteStream> | ReturnType<typeof createRotationStream>\n if (rotationOpts) {\n // ensure rotation writes into the same folder\n rotationOpts.path = pathFolder\n stream = createRotationStream(basename(path), rotationOpts)\n }\n else {\n stream = createWriteStream(path, { flags: 'a' })\n }\n\n const matchesNamespace = useNamespaceFilter(filter)\n const matchesLevel = useLevelFilter(level)\n return (msg: LogMessage) => {\n if (!matchesLevel(msg.level))\n return\n if (!matchesNamespace(msg.name))\n return\n\n const timeNow = time ? `${new Date().toISOString()} ` : ''\n const name = msg.name || ''\n const ninfo = namespaces[name || '']\n if (ninfo == null)\n namespaces[name] = ninfo\n\n const args: string[] = [\n `[${name || '*'}]`,\n renderMessages(msg.messages, { pretty }),\n ]\n\n function write(...args: string[]): void {\n stream.write(`${args.join('\\t')}\\n`)\n }\n\n switch (msg.level) {\n case LogLevelInfo:\n write(`${timeNow}I|* `, ...args)\n break\n case LogLevelWarn:\n write(`${timeNow}W|** `, ...args)\n break\n case LogLevelError:\n write(`${timeNow}E|***`, ...args)\n break\n default:\n write(`${timeNow}D| `, ...args)\n break\n }\n }\n}\n"],"mappings":"kZAWA,MAAM,EAAkC,EAAE,CAoB1C,SAAgB,EAAkB,EAAc,EAA6B,EAAE,CAAE,CAC/E,GAAM,CACJ,QAAQ,IAAA,GACR,SAAS,IAAA,GACT,OAAO,GACP,SAAS,GACT,YACE,EAEJ,GAAA,EAAA,EAAA,SAAeA,EAAAA,QAAQ,KAAK,CAAE,EAAK,CACnC,IAAM,GAAA,EAAA,EAAA,SAAqB,EAAK,EAChC,EAAA,EAAA,WAAU,EAAY,CAAE,UAAW,GAAM,CAAC,CAG1C,IAAM,EAAeC,EAAAA,qBAAqB,EAAS,CAE/C,EACA,GAEF,EAAa,KAAO,EACpB,EAASC,EAAAA,sBAAAA,EAAAA,EAAAA,UAA8B,EAAK,CAAE,EAAa,EAG3D,GAAA,EAAA,EAAA,mBAA2B,EAAM,CAAE,MAAO,IAAK,CAAC,CAGlD,IAAM,EAAmBC,EAAAA,mBAAmB,EAAO,CAC7C,EAAeC,EAAAA,eAAe,EAAM,CAC1C,MAAQ,IAAoB,CAG1B,GAFI,CAAC,EAAa,EAAI,MAAM,EAExB,CAAC,EAAiB,EAAI,KAAK,CAC7B,OAEF,IAAM,EAAU,EAAO,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,GAAK,GAClD,EAAO,EAAI,MAAQ,GACnB,EAAQ,EAAW,GAAQ,IAC7B,IACF,EAAW,GAAQ,GAErB,IAAM,EAAiB,CACrB,IAAI,GAAQ,IAAI,GAChBC,EAAAA,eAAe,EAAI,SAAU,CAAE,SAAQ,CAAC,CACzC,CAED,SAAS,EAAM,GAAG,EAAsB,CACtC,EAAO,MAAM,GAAG,EAAK,KAAK,IAAK,CAAC,IAAI,CAGtC,OAAQ,EAAI,MAAZ,CACE,IAAA,GACE,EAAM,GAAG,EAAQ,OAAQ,GAAG,EAAK,CACjC,MACF,IAAA,GACE,EAAM,GAAG,EAAQ,OAAQ,GAAG,EAAK,CACjC,MACF,IAAA,GACE,EAAM,GAAG,EAAQ,OAAQ,GAAG,EAAK,CACjC,MACF,QACE,EAAM,GAAG,EAAQ,OAAQ,GAAG,EAAK,CACjC"}
1
+ {"version":3,"file":"log-file.cjs","names":["process","getLogRotationConfig","createRotationStream","useNamespaceFilter","useLevelFilter","renderMessages"],"sources":["../../../src/node/log/log-file.ts"],"sourcesContent":["import type { LogHandlerOptions, LogMessage } from '../../common/log/log-base'\nimport type { LogRotationOptions } from './log-file-rotation'\nimport { createWriteStream, mkdirSync } from 'node:fs'\nimport { basename, dirname, resolve } from 'node:path'\nimport process from 'node:process'\nimport { renderMessages } from '../../common/data/message'\nimport { LogLevelError, LogLevelInfo, LogLevelWarn } from '../../common/log/log-base'\nimport { useLevelFilter, useNamespaceFilter } from '../../common/log/log-filter'\nimport { getLogRotationConfig } from './log-file-rotation'\nimport { createRotationStream } from './log-rotation'\n\nconst namespaces: Record<string, any> = {}\n\nexport interface LogFileHandlerOptions extends LogHandlerOptions {\n /**\n * Optional rotation options for log files. When provided, enables automatic log rotation.\n * Can be:\n * - `true`: Use default rotation settings (10MB size, 5 files, gzip compression)\n * - Rotation options object: Customize rotation behavior\n * - Shortcut strings: 'daily' | 'weekly' | 'monthly' | 'size'\n *\n * Examples:\n * - Enable with defaults: { rotation: true }\n * - Rotate daily: { rotation: { interval: '1d' } }\n * - Rotate when file reaches 10MB: { rotation: { size: '10M' } }\n * - Keep max 5 files: { rotation: { maxFiles: 5 } }\n * - Compress rotated files: { rotation: { compress: 'gzip' } }\n */\n rotation?: LogRotationOptions\n}\n\nexport function LoggerFileHandler(path: string, opt: LogFileHandlerOptions = {}) {\n const {\n level = undefined,\n filter = undefined,\n time = true,\n pretty = false,\n rotation,\n } = opt\n\n path = resolve(process.cwd(), path)\n const pathFolder = dirname(path)\n mkdirSync(pathFolder, { recursive: true })\n\n // Use rotating stream if rotation options are provided\n const rotationOpts = getLogRotationConfig(rotation)\n\n let stream: ReturnType<typeof createWriteStream> | ReturnType<typeof createRotationStream>\n if (rotationOpts) {\n // ensure rotation writes into the same folder\n rotationOpts.path = pathFolder\n stream = createRotationStream(basename(path), rotationOpts)\n }\n else {\n stream = createWriteStream(path, { flags: 'a' })\n }\n\n const matchesNamespace = useNamespaceFilter(filter)\n const matchesLevel = useLevelFilter(level)\n return (msg: LogMessage) => {\n if (!matchesLevel(msg.level))\n return\n if (!matchesNamespace(msg.name))\n return\n\n const timeNow = time ? `${new Date().toISOString()} ` : ''\n const name = msg.name || ''\n const ninfo = namespaces[name || '']\n if (ninfo == null)\n namespaces[name] = ninfo\n\n const args: string[] = [\n `[${name || '*'}]`,\n renderMessages(msg.messages, { pretty }),\n ]\n\n function write(...args: string[]): void {\n stream.write(`${args.join('\\t')}\\n`)\n }\n\n switch (msg.level) {\n case LogLevelInfo:\n write(`${timeNow}I|* `, ...args)\n break\n case LogLevelWarn:\n write(`${timeNow}W|** `, ...args)\n break\n case LogLevelError:\n write(`${timeNow}E|***`, ...args)\n break\n default:\n write(`${timeNow}D| `, ...args)\n break\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAWA,MAAM,aAAkC,EAAE;AAoB1C,SAAgB,kBAAkB,MAAc,MAA6B,EAAE,EAAE;CAC/E,MAAM,EACJ,QAAQ,QACR,SAAS,QACT,OAAO,MACP,SAAS,OACT,aACE;AAEJ,+BAAeA,qBAAQ,KAAK,EAAE,KAAK;CACnC,MAAM,oCAAqB,KAAK;AAChC,wBAAU,YAAY,EAAE,WAAW,MAAM,CAAC;CAG1C,MAAM,eAAeC,wDAAqB,SAAS;CAEnD,IAAI;AACJ,KAAI,cAAc;AAEhB,eAAa,OAAO;AACpB,WAASC,2EAA8B,KAAK,EAAE,aAAa;OAG3D,yCAA2B,MAAM,EAAE,OAAO,KAAK,CAAC;CAGlD,MAAM,mBAAmBC,iDAAmB,OAAO;CACnD,MAAM,eAAeC,6CAAe,MAAM;AAC1C,SAAQ,QAAoB;AAC1B,MAAI,CAAC,aAAa,IAAI,MAAM,CAC1B;AACF,MAAI,CAAC,iBAAiB,IAAI,KAAK,CAC7B;EAEF,MAAM,UAAU,OAAO,oBAAG,IAAI,MAAM,EAAC,aAAa,CAAC,KAAK;EACxD,MAAM,OAAO,IAAI,QAAQ;EACzB,MAAM,QAAQ,WAAW,QAAQ;AACjC,MAAI,SAAS,KACX,YAAW,QAAQ;EAErB,MAAM,OAAiB,CACrB,IAAI,QAAQ,IAAI,IAChBC,2CAAe,IAAI,UAAU,EAAE,QAAQ,CAAC,CACzC;EAED,SAAS,MAAM,GAAG,MAAsB;AACtC,UAAO,MAAM,GAAG,KAAK,KAAK,IAAK,CAAC,IAAI;;AAGtC,UAAQ,IAAI,OAAZ;GACE;AACE,UAAM,GAAG,QAAQ,QAAQ,GAAG,KAAK;AACjC;GACF;AACE,UAAM,GAAG,QAAQ,QAAQ,GAAG,KAAK;AACjC;GACF;AACE,UAAM,GAAG,QAAQ,QAAQ,GAAG,KAAK;AACjC;GACF;AACE,UAAM,GAAG,QAAQ,QAAQ,GAAG,KAAK;AACjC"}
@@ -1,2 +1,55 @@
1
- import"../../common/log/log-base.mjs";import{useLevelFilter as e,useNamespaceFilter as t}from"../../common/log/log-filter.mjs";import{renderMessages as n}from"../../common/data/message.mjs";import{getLogRotationConfig as r}from"./log-file-rotation.mjs";import{createRotationStream as i}from"./log-rotation.mjs";import a from"node:process";import{createWriteStream as o,mkdirSync as s}from"node:fs";import{basename as c,dirname as l,resolve as u}from"node:path";const d={};function f(f,p={}){let{level:m=void 0,filter:h=void 0,time:g=!0,pretty:_=!1,rotation:v}=p;f=u(a.cwd(),f);let y=l(f);s(y,{recursive:!0});let b=r(v),x;b?(b.path=y,x=i(c(f),b)):x=o(f,{flags:`a`});let S=t(h),C=e(m);return e=>{if(!C(e.level)||!S(e.name))return;let t=g?`${new Date().toISOString()} `:``,r=e.name||``,i=d[r||``];i??(d[r]=i);let a=[`[${r||`*`}]`,n(e.messages,{pretty:_})];function o(...e){x.write(`${e.join(` `)}\n`)}switch(e.level){case 1:o(`${t}I|* `,...a);break;case 2:o(`${t}W|** `,...a);break;case 3:o(`${t}E|***`,...a);break;default:o(`${t}D| `,...a);break}}}export{f as LoggerFileHandler};
1
+ import { LogLevelError, LogLevelInfo, LogLevelWarn } from "../../common/log/log-base.mjs";
2
+ import { useLevelFilter, useNamespaceFilter } from "../../common/log/log-filter.mjs";
3
+ import { renderMessages } from "../../common/data/message.mjs";
4
+ import { getLogRotationConfig } from "./log-file-rotation.mjs";
5
+ import { createRotationStream } from "./log-rotation.mjs";
6
+ import process from "node:process";
7
+ import { createWriteStream, mkdirSync } from "node:fs";
8
+ import { basename, dirname, resolve } from "node:path";
9
+
10
+ //#region src/node/log/log-file.ts
11
+ const namespaces = {};
12
+ function LoggerFileHandler(path, opt = {}) {
13
+ const { level = void 0, filter = void 0, time = true, pretty = false, rotation } = opt;
14
+ path = resolve(process.cwd(), path);
15
+ const pathFolder = dirname(path);
16
+ mkdirSync(pathFolder, { recursive: true });
17
+ const rotationOpts = getLogRotationConfig(rotation);
18
+ let stream;
19
+ if (rotationOpts) {
20
+ rotationOpts.path = pathFolder;
21
+ stream = createRotationStream(basename(path), rotationOpts);
22
+ } else stream = createWriteStream(path, { flags: "a" });
23
+ const matchesNamespace = useNamespaceFilter(filter);
24
+ const matchesLevel = useLevelFilter(level);
25
+ return (msg) => {
26
+ if (!matchesLevel(msg.level)) return;
27
+ if (!matchesNamespace(msg.name)) return;
28
+ const timeNow = time ? `${(/* @__PURE__ */ new Date()).toISOString()} ` : "";
29
+ const name = msg.name || "";
30
+ const ninfo = namespaces[name || ""];
31
+ if (ninfo == null) namespaces[name] = ninfo;
32
+ const args = [`[${name || "*"}]`, renderMessages(msg.messages, { pretty })];
33
+ function write(...args) {
34
+ stream.write(`${args.join(" ")}\n`);
35
+ }
36
+ switch (msg.level) {
37
+ case 1:
38
+ write(`${timeNow}I|* `, ...args);
39
+ break;
40
+ case 2:
41
+ write(`${timeNow}W|** `, ...args);
42
+ break;
43
+ case 3:
44
+ write(`${timeNow}E|***`, ...args);
45
+ break;
46
+ default:
47
+ write(`${timeNow}D| `, ...args);
48
+ break;
49
+ }
50
+ };
51
+ }
52
+
53
+ //#endregion
54
+ export { LoggerFileHandler };
2
55
  //# sourceMappingURL=log-file.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"log-file.mjs","names":[],"sources":["../../../src/node/log/log-file.ts"],"sourcesContent":["import type { LogHandlerOptions, LogMessage } from '../../common/log/log-base'\nimport type { LogRotationOptions } from './log-file-rotation'\nimport { createWriteStream, mkdirSync } from 'node:fs'\nimport { basename, dirname, resolve } from 'node:path'\nimport process from 'node:process'\nimport { renderMessages } from '../../common/data/message'\nimport { LogLevelError, LogLevelInfo, LogLevelWarn } from '../../common/log/log-base'\nimport { useLevelFilter, useNamespaceFilter } from '../../common/log/log-filter'\nimport { getLogRotationConfig } from './log-file-rotation'\nimport { createRotationStream } from './log-rotation'\n\nconst namespaces: Record<string, any> = {}\n\nexport interface LogFileHandlerOptions extends LogHandlerOptions {\n /**\n * Optional rotation options for log files. When provided, enables automatic log rotation.\n * Can be:\n * - `true`: Use default rotation settings (10MB size, 5 files, gzip compression)\n * - Rotation options object: Customize rotation behavior\n * - Shortcut strings: 'daily' | 'weekly' | 'monthly' | 'size'\n *\n * Examples:\n * - Enable with defaults: { rotation: true }\n * - Rotate daily: { rotation: { interval: '1d' } }\n * - Rotate when file reaches 10MB: { rotation: { size: '10M' } }\n * - Keep max 5 files: { rotation: { maxFiles: 5 } }\n * - Compress rotated files: { rotation: { compress: 'gzip' } }\n */\n rotation?: LogRotationOptions\n}\n\nexport function LoggerFileHandler(path: string, opt: LogFileHandlerOptions = {}) {\n const {\n level = undefined,\n filter = undefined,\n time = true,\n pretty = false,\n rotation,\n } = opt\n\n path = resolve(process.cwd(), path)\n const pathFolder = dirname(path)\n mkdirSync(pathFolder, { recursive: true })\n\n // Use rotating stream if rotation options are provided\n const rotationOpts = getLogRotationConfig(rotation)\n\n let stream: ReturnType<typeof createWriteStream> | ReturnType<typeof createRotationStream>\n if (rotationOpts) {\n // ensure rotation writes into the same folder\n rotationOpts.path = pathFolder\n stream = createRotationStream(basename(path), rotationOpts)\n }\n else {\n stream = createWriteStream(path, { flags: 'a' })\n }\n\n const matchesNamespace = useNamespaceFilter(filter)\n const matchesLevel = useLevelFilter(level)\n return (msg: LogMessage) => {\n if (!matchesLevel(msg.level))\n return\n if (!matchesNamespace(msg.name))\n return\n\n const timeNow = time ? `${new Date().toISOString()} ` : ''\n const name = msg.name || ''\n const ninfo = namespaces[name || '']\n if (ninfo == null)\n namespaces[name] = ninfo\n\n const args: string[] = [\n `[${name || '*'}]`,\n renderMessages(msg.messages, { pretty }),\n ]\n\n function write(...args: string[]): void {\n stream.write(`${args.join('\\t')}\\n`)\n }\n\n switch (msg.level) {\n case LogLevelInfo:\n write(`${timeNow}I|* `, ...args)\n break\n case LogLevelWarn:\n write(`${timeNow}W|** `, ...args)\n break\n case LogLevelError:\n write(`${timeNow}E|***`, ...args)\n break\n default:\n write(`${timeNow}D| `, ...args)\n break\n }\n }\n}\n"],"mappings":"6cAWA,MAAM,EAAkC,EAAE,CAoB1C,SAAgB,EAAkB,EAAc,EAA6B,EAAE,CAAE,CAC/E,GAAM,CACJ,QAAQ,IAAA,GACR,SAAS,IAAA,GACT,OAAO,GACP,SAAS,GACT,YACE,EAEJ,EAAO,EAAQ,EAAQ,KAAK,CAAE,EAAK,CACnC,IAAM,EAAa,EAAQ,EAAK,CAChC,EAAU,EAAY,CAAE,UAAW,GAAM,CAAC,CAG1C,IAAM,EAAe,EAAqB,EAAS,CAE/C,EACA,GAEF,EAAa,KAAO,EACpB,EAAS,EAAqB,EAAS,EAAK,CAAE,EAAa,EAG3D,EAAS,EAAkB,EAAM,CAAE,MAAO,IAAK,CAAC,CAGlD,IAAM,EAAmB,EAAmB,EAAO,CAC7C,EAAe,EAAe,EAAM,CAC1C,MAAQ,IAAoB,CAG1B,GAFI,CAAC,EAAa,EAAI,MAAM,EAExB,CAAC,EAAiB,EAAI,KAAK,CAC7B,OAEF,IAAM,EAAU,EAAO,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,GAAK,GAClD,EAAO,EAAI,MAAQ,GACnB,EAAQ,EAAW,GAAQ,IAC7B,IACF,EAAW,GAAQ,GAErB,IAAM,EAAiB,CACrB,IAAI,GAAQ,IAAI,GAChB,EAAe,EAAI,SAAU,CAAE,SAAQ,CAAC,CACzC,CAED,SAAS,EAAM,GAAG,EAAsB,CACtC,EAAO,MAAM,GAAG,EAAK,KAAK,IAAK,CAAC,IAAI,CAGtC,OAAQ,EAAI,MAAZ,CACE,IAAA,GACE,EAAM,GAAG,EAAQ,OAAQ,GAAG,EAAK,CACjC,MACF,IAAA,GACE,EAAM,GAAG,EAAQ,OAAQ,GAAG,EAAK,CACjC,MACF,IAAA,GACE,EAAM,GAAG,EAAQ,OAAQ,GAAG,EAAK,CACjC,MACF,QACE,EAAM,GAAG,EAAQ,OAAQ,GAAG,EAAK,CACjC"}
1
+ {"version":3,"file":"log-file.mjs","names":[],"sources":["../../../src/node/log/log-file.ts"],"sourcesContent":["import type { LogHandlerOptions, LogMessage } from '../../common/log/log-base'\nimport type { LogRotationOptions } from './log-file-rotation'\nimport { createWriteStream, mkdirSync } from 'node:fs'\nimport { basename, dirname, resolve } from 'node:path'\nimport process from 'node:process'\nimport { renderMessages } from '../../common/data/message'\nimport { LogLevelError, LogLevelInfo, LogLevelWarn } from '../../common/log/log-base'\nimport { useLevelFilter, useNamespaceFilter } from '../../common/log/log-filter'\nimport { getLogRotationConfig } from './log-file-rotation'\nimport { createRotationStream } from './log-rotation'\n\nconst namespaces: Record<string, any> = {}\n\nexport interface LogFileHandlerOptions extends LogHandlerOptions {\n /**\n * Optional rotation options for log files. When provided, enables automatic log rotation.\n * Can be:\n * - `true`: Use default rotation settings (10MB size, 5 files, gzip compression)\n * - Rotation options object: Customize rotation behavior\n * - Shortcut strings: 'daily' | 'weekly' | 'monthly' | 'size'\n *\n * Examples:\n * - Enable with defaults: { rotation: true }\n * - Rotate daily: { rotation: { interval: '1d' } }\n * - Rotate when file reaches 10MB: { rotation: { size: '10M' } }\n * - Keep max 5 files: { rotation: { maxFiles: 5 } }\n * - Compress rotated files: { rotation: { compress: 'gzip' } }\n */\n rotation?: LogRotationOptions\n}\n\nexport function LoggerFileHandler(path: string, opt: LogFileHandlerOptions = {}) {\n const {\n level = undefined,\n filter = undefined,\n time = true,\n pretty = false,\n rotation,\n } = opt\n\n path = resolve(process.cwd(), path)\n const pathFolder = dirname(path)\n mkdirSync(pathFolder, { recursive: true })\n\n // Use rotating stream if rotation options are provided\n const rotationOpts = getLogRotationConfig(rotation)\n\n let stream: ReturnType<typeof createWriteStream> | ReturnType<typeof createRotationStream>\n if (rotationOpts) {\n // ensure rotation writes into the same folder\n rotationOpts.path = pathFolder\n stream = createRotationStream(basename(path), rotationOpts)\n }\n else {\n stream = createWriteStream(path, { flags: 'a' })\n }\n\n const matchesNamespace = useNamespaceFilter(filter)\n const matchesLevel = useLevelFilter(level)\n return (msg: LogMessage) => {\n if (!matchesLevel(msg.level))\n return\n if (!matchesNamespace(msg.name))\n return\n\n const timeNow = time ? `${new Date().toISOString()} ` : ''\n const name = msg.name || ''\n const ninfo = namespaces[name || '']\n if (ninfo == null)\n namespaces[name] = ninfo\n\n const args: string[] = [\n `[${name || '*'}]`,\n renderMessages(msg.messages, { pretty }),\n ]\n\n function write(...args: string[]): void {\n stream.write(`${args.join('\\t')}\\n`)\n }\n\n switch (msg.level) {\n case LogLevelInfo:\n write(`${timeNow}I|* `, ...args)\n break\n case LogLevelWarn:\n write(`${timeNow}W|** `, ...args)\n break\n case LogLevelError:\n write(`${timeNow}E|***`, ...args)\n break\n default:\n write(`${timeNow}D| `, ...args)\n break\n }\n }\n}\n"],"mappings":";;;;;;;;;;AAWA,MAAM,aAAkC,EAAE;AAoB1C,SAAgB,kBAAkB,MAAc,MAA6B,EAAE,EAAE;CAC/E,MAAM,EACJ,QAAQ,QACR,SAAS,QACT,OAAO,MACP,SAAS,OACT,aACE;AAEJ,QAAO,QAAQ,QAAQ,KAAK,EAAE,KAAK;CACnC,MAAM,aAAa,QAAQ,KAAK;AAChC,WAAU,YAAY,EAAE,WAAW,MAAM,CAAC;CAG1C,MAAM,eAAe,qBAAqB,SAAS;CAEnD,IAAI;AACJ,KAAI,cAAc;AAEhB,eAAa,OAAO;AACpB,WAAS,qBAAqB,SAAS,KAAK,EAAE,aAAa;OAG3D,UAAS,kBAAkB,MAAM,EAAE,OAAO,KAAK,CAAC;CAGlD,MAAM,mBAAmB,mBAAmB,OAAO;CACnD,MAAM,eAAe,eAAe,MAAM;AAC1C,SAAQ,QAAoB;AAC1B,MAAI,CAAC,aAAa,IAAI,MAAM,CAC1B;AACF,MAAI,CAAC,iBAAiB,IAAI,KAAK,CAC7B;EAEF,MAAM,UAAU,OAAO,oBAAG,IAAI,MAAM,EAAC,aAAa,CAAC,KAAK;EACxD,MAAM,OAAO,IAAI,QAAQ;EACzB,MAAM,QAAQ,WAAW,QAAQ;AACjC,MAAI,SAAS,KACX,YAAW,QAAQ;EAErB,MAAM,OAAiB,CACrB,IAAI,QAAQ,IAAI,IAChB,eAAe,IAAI,UAAU,EAAE,QAAQ,CAAC,CACzC;EAED,SAAS,MAAM,GAAG,MAAsB;AACtC,UAAO,MAAM,GAAG,KAAK,KAAK,IAAK,CAAC,IAAI;;AAGtC,UAAQ,IAAI,OAAZ;GACE;AACE,UAAM,GAAG,QAAQ,QAAQ,GAAG,KAAK;AACjC;GACF;AACE,UAAM,GAAG,QAAQ,QAAQ,GAAG,KAAK;AACjC;GACF;AACE,UAAM,GAAG,QAAQ,QAAQ,GAAG,KAAK;AACjC;GACF;AACE,UAAM,GAAG,QAAQ,QAAQ,GAAG,KAAK;AACjC"}
@@ -1,2 +1,163 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../chunk-D-qHiVGv.cjs`);require(`../../common/log/log-base.cjs`);const t=require(`../../common/log/log-filter.cjs`),n=require(`../../common/time.cjs`),r=require(`../../common/data/convert.cjs`),i=require(`../../common/data/message.cjs`),a=require(`./log-util.cjs`);let o=require(`node:process`);o=e.n(o);let s=require(`node:tty`);s=e.n(s);function c(){try{return r.valueToBoolean(o.default.env.ZEED_COLOR,s.default.isatty(o.default.stdout.fd))}catch{}return!1}let l;const u=[6,2,3,4,5,1];function d(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return u[Math.abs(t)%u.length]}const f={};let p;function m(...e){o.default.stdout.write(`${i.renderMessages(e)}\n`)}const h={BOLD:`\x1B[1m`,UNBOLD:`\x1B[2m`,RED:`\x1B[31m`,GREEN:`\x1B[32m`,BLUE:`\x1B[34m`,PURPLE:`\x1B[35m`,GRAY:`\x1B[37m`,ORANGE:`\x1B[38;5;208m`,UNCOLOR:`\x1B[0m`};var g=function(e){return e[e.RED=1]=`RED`,e[e.GREEN=2]=`GREEN`,e[e.BLUE=4]=`BLUE`,e[e.PURPLE=5]=`PURPLE`,e[e.GRAY=7]=`GRAY`,e[e.ORANGE=8]=`ORANGE`,e}(g||{});const _=`\x1B[0m`;function v(e,t){return`${t===g.ORANGE?h.ORANGE:`\u001B[3${t<8?t:`8;5;${t}`}m`}${e}${_}`}function y(e,t,n=!0){return e.map(e=>{if(typeof e!=`string`)return e;let r=t,i=_;return n&&(r=`${h.BOLD}${r}`,i=`${i}${h.BOLD}`),`${r}${e}${i}`})}function b(){try{return r.valueToBoolean(o.default.env.ZEED_STACK,!1)}catch{}return!1}let x;function S(e={}){l??=c(),x??=b(),p??=n.getTimestamp();let{level:r=void 0,filter:i=void 0,colors:o=l,levelHelper:s=!0,nameBrackets:u=!0,padding:_=0,fill:S=0,stack:C=x,time:w=!0}=e,T=t.useNamespaceFilter(i),E=t.useLevelFilter(r);return e=>{if(!E(e.level)||!T(e.name))return;let t=n.getTimestamp(),r=e.name||``,i=f[r||``];i??(i={color:d(r)},f[r]=i);let c=n.formatMilliseconds(t-p),l,b=u?`[${r}]`:r;if(_>0&&(b=b.padStart(_,` `)),S>0&&(b=b.padEnd(S,` `)),o){let t=i.color;l=[`${v(b,t)} | `],e.level===2?l.push(...y(e.messages,h.ORANGE)):e.level===3?l.push(...y(e.messages,h.RED)):l.push(...e.messages),w&&l.push(v(`+${c}`,t))}else l=[b,...e.messages],w&&l.push(`+${c}`);if(e.messages?.[0]===`loggerStackTraceDebug-7d38e5a9214b58d29734374cdb9521fd964d7485`)try{console.log(a.getStack())}catch{}if(C){let e=``;typeof C==`boolean`?(e=a.getSourceLocationByPrecedingPattern([`at Function.`,`at null.log (`,`at log (`],!0),e||=a.getSourceLocation(0,!0)):e=a.getSourceLocation(typeof C==`number`?C:3,!0),e&&l.push(v(`(${e})`,g.GRAY))}switch(e.level){case 1:s&&(l[0]=`I|. ${l[0]}`),m(...l);break;case 2:s&&(l[0]=(o?v(`W|.. `,g.ORANGE):`W|.. `)+l[0]),m(...l);break;case 3:s&&(l[0]=(o?v(`E|... `,g.RED):`E|... `)+l[0]),m(...l);break;default:s&&(l[0]=`D| ${l[0]}`),m(...l);break}}}exports.LoggerNodeHandler=S,exports.colorString=v,exports.colorStringList=y,exports.loggerStackTraceDebug=`loggerStackTraceDebug-7d38e5a9214b58d29734374cdb9521fd964d7485`;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_chunk = require('../../chunk-uaV2rQ02.cjs');
3
+ const require_common_log_log_base = require('../../common/log/log-base.cjs');
4
+ const require_common_log_log_filter = require('../../common/log/log-filter.cjs');
5
+ const require_common_time = require('../../common/time.cjs');
6
+ const require_common_data_convert = require('../../common/data/convert.cjs');
7
+ const require_common_data_message = require('../../common/data/message.cjs');
8
+ const require_node_log_log_util = require('./log-util.cjs');
9
+ let node_process = require("node:process");
10
+ node_process = require_chunk.__toESM(node_process, 1);
11
+ let node_tty = require("node:tty");
12
+ node_tty = require_chunk.__toESM(node_tty, 1);
13
+
14
+ //#region src/node/log/log-node.ts
15
+ function shouldUseColor() {
16
+ try {
17
+ return require_common_data_convert.valueToBoolean(node_process.default.env.ZEED_COLOR, node_tty.default.isatty(node_process.default.stdout.fd));
18
+ } catch (err) {}
19
+ return false;
20
+ }
21
+ let defaultUseColor;
22
+ const colors = [
23
+ 6,
24
+ 2,
25
+ 3,
26
+ 4,
27
+ 5,
28
+ 1
29
+ ];
30
+ function nodeSelectColorByName(namespace) {
31
+ let hash = 0;
32
+ for (let i = 0; i < namespace.length; i++) {
33
+ hash = (hash << 5) - hash + namespace.charCodeAt(i);
34
+ hash |= 0;
35
+ }
36
+ return colors[Math.abs(hash) % colors.length];
37
+ }
38
+ const namespaces = {};
39
+ let startTime;
40
+ function log(...args) {
41
+ node_process.default.stdout.write(`${require_common_data_message.renderMessages(args)}\n`);
42
+ }
43
+ const TTY_STYLE = {
44
+ BOLD: "\x1B[1m",
45
+ UNBOLD: "\x1B[2m",
46
+ RED: "\x1B[31m",
47
+ GREEN: "\x1B[32m",
48
+ BLUE: "\x1B[34m",
49
+ PURPLE: "\x1B[35m",
50
+ GRAY: "\x1B[37m",
51
+ ORANGE: "\x1B[38;5;208m",
52
+ UNCOLOR: "\x1B[0m"
53
+ };
54
+ var COLOR = /* @__PURE__ */ function(COLOR) {
55
+ COLOR[COLOR["RED"] = 1] = "RED";
56
+ COLOR[COLOR["GREEN"] = 2] = "GREEN";
57
+ COLOR[COLOR["BLUE"] = 4] = "BLUE";
58
+ COLOR[COLOR["PURPLE"] = 5] = "PURPLE";
59
+ COLOR[COLOR["GRAY"] = 7] = "GRAY";
60
+ COLOR[COLOR["ORANGE"] = 8] = "ORANGE";
61
+ return COLOR;
62
+ }(COLOR || {});
63
+ const colorEnd = "\x1B[0m";
64
+ function colorString(text, colorCode) {
65
+ return `${colorCode === COLOR.ORANGE ? TTY_STYLE.ORANGE : `\u001B[3${colorCode < 8 ? colorCode : `8;5;${colorCode}`}m`}${text}${colorEnd}`;
66
+ }
67
+ function colorStringList(list, style, bold = true) {
68
+ return list.map((value) => {
69
+ if (typeof value !== "string") return value;
70
+ let start = style;
71
+ let end = colorEnd;
72
+ if (bold) {
73
+ start = `${TTY_STYLE.BOLD}${start}`;
74
+ end = `${end}${TTY_STYLE.BOLD}`;
75
+ }
76
+ return `${start}${value}${end}`;
77
+ });
78
+ }
79
+ function shouldUseStack() {
80
+ try {
81
+ return require_common_data_convert.valueToBoolean(node_process.default.env.ZEED_STACK, false);
82
+ } catch (err) {}
83
+ return false;
84
+ }
85
+ let defaultUseStack;
86
+ const loggerStackTraceDebug = "loggerStackTraceDebug-7d38e5a9214b58d29734374cdb9521fd964d7485";
87
+ function LoggerNodeHandler(opt = {}) {
88
+ defaultUseColor ??= shouldUseColor();
89
+ defaultUseStack ??= shouldUseStack();
90
+ startTime ??= require_common_time.getTimestamp();
91
+ const { level = void 0, filter = void 0, colors = defaultUseColor, levelHelper = true, nameBrackets = true, padding = 0, fill = 0, stack = defaultUseStack, time = true } = opt;
92
+ const matchesNamespace = require_common_log_log_filter.useNamespaceFilter(filter);
93
+ const matchesLevel = require_common_log_log_filter.useLevelFilter(level);
94
+ return (msg) => {
95
+ if (!matchesLevel(msg.level)) return;
96
+ if (!matchesNamespace(msg.name)) return;
97
+ const timeNow = require_common_time.getTimestamp();
98
+ const name = msg.name || "";
99
+ let ninfo = namespaces[name || ""];
100
+ if (ninfo == null) {
101
+ ninfo = { color: nodeSelectColorByName(name) };
102
+ namespaces[name] = ninfo;
103
+ }
104
+ const timeDiffString = require_common_time.formatMilliseconds(timeNow - startTime);
105
+ let args;
106
+ let displayName = nameBrackets ? `[${name}]` : name;
107
+ if (padding > 0) displayName = displayName.padStart(padding, " ");
108
+ if (fill > 0) displayName = displayName.padEnd(fill, " ");
109
+ if (colors) {
110
+ const c = ninfo.color;
111
+ args = [`${colorString(displayName, c)} | `];
112
+ if (msg.level === 2) args.push(...colorStringList(msg.messages, TTY_STYLE.ORANGE));
113
+ else if (msg.level === 3) args.push(...colorStringList(msg.messages, TTY_STYLE.RED));
114
+ else args.push(...msg.messages);
115
+ if (time) args.push(colorString(`+${timeDiffString}`, c));
116
+ } else {
117
+ args = [displayName, ...msg.messages];
118
+ if (time) args.push(`+${timeDiffString}`);
119
+ }
120
+ if (msg.messages?.[0] === "loggerStackTraceDebug-7d38e5a9214b58d29734374cdb9521fd964d7485") try {
121
+ console.log(require_node_log_log_util.getStack());
122
+ } catch (err) {}
123
+ if (stack) {
124
+ let line = "";
125
+ if (typeof stack === "boolean") {
126
+ line = require_node_log_log_util.getSourceLocationByPrecedingPattern([
127
+ "at Function.",
128
+ "at null.log (",
129
+ "at log ("
130
+ ], true);
131
+ if (!line) line = require_node_log_log_util.getSourceLocation(0, true);
132
+ } else line = require_node_log_log_util.getSourceLocation(typeof stack === "number" ? stack : 3, true);
133
+ if (line) args.push(colorString(`(${line})`, COLOR.GRAY));
134
+ }
135
+ const sep = "|";
136
+ const charLevel = ".";
137
+ switch (msg.level) {
138
+ case 1:
139
+ if (levelHelper) args[0] = `I${sep}${charLevel} ${args[0]}`;
140
+ log(...args);
141
+ break;
142
+ case 2:
143
+ if (levelHelper) args[0] = (colors ? colorString(`W${sep}${charLevel}${charLevel} `, COLOR.ORANGE) : `W${sep}${charLevel}${charLevel} `) + args[0];
144
+ log(...args);
145
+ break;
146
+ case 3:
147
+ if (levelHelper) args[0] = (colors ? colorString(`E${sep}${charLevel}${charLevel}${charLevel} `, COLOR.RED) : `E${sep}${charLevel}${charLevel}${charLevel} `) + args[0];
148
+ log(...args);
149
+ break;
150
+ default:
151
+ if (levelHelper) args[0] = `D${sep} ${args[0]}`;
152
+ log(...args);
153
+ break;
154
+ }
155
+ };
156
+ }
157
+
158
+ //#endregion
159
+ exports.LoggerNodeHandler = LoggerNodeHandler;
160
+ exports.colorString = colorString;
161
+ exports.colorStringList = colorStringList;
162
+ exports.loggerStackTraceDebug = loggerStackTraceDebug;
2
163
  //# sourceMappingURL=log-node.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"log-node.cjs","names":["valueToBoolean","process","tty","renderMessages","getTimestamp","useNamespaceFilter","useLevelFilter","formatMilliseconds","getStack","getSourceLocationByPrecedingPattern","getSourceLocation"],"sources":["../../../src/node/log/log-node.ts"],"sourcesContent":["import type { LogHandler, LogHandlerOptions, LogMessage } from '../../common/log/log-base'\nimport process from 'node:process'\nimport tty from 'node:tty'\nimport { valueToBoolean } from '../../common/data/convert'\nimport { renderMessages } from '../../common/data/message'\nimport { LogLevelError, LogLevelInfo, LogLevelWarn } from '../../common/log/log-base'\nimport { useLevelFilter, useNamespaceFilter } from '../../common/log/log-filter'\nimport { formatMilliseconds, getTimestamp } from '../../common/time'\nimport { getSourceLocation, getSourceLocationByPrecedingPattern, getStack } from './log-util'\n\nfunction shouldUseColor(): boolean {\n try {\n return valueToBoolean(process.env.ZEED_COLOR, tty.isatty(process.stdout.fd))\n }\n catch (err) {}\n return false\n}\n\nlet defaultUseColor: boolean | undefined\n\nconst colors = [6, 2, 3, 4, 5, 1]\n\nfunction nodeSelectColorByName(namespace: string) {\n let hash = 0\n for (let i = 0; i < namespace.length; i++) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i)\n hash |= 0 // Convert to 32bit integer\n }\n return colors[Math.abs(hash) % colors.length]\n}\n\nconst namespaces: Record<string, any> = {}\n\nlet startTime: number | undefined\n\nfunction log(...args: any[]) {\n process.stdout.write(`${renderMessages(args)}\\n`)\n}\n\n// const _browserStyleMap = {\n// [BOLD]: { \"font-weight\": \"bold\" },\n// [UNBOLD]: { \"font-weight\": \"normal\" },\n// [BLUE]: { color: \"blue\" },\n// [GREEN]: { color: \"green\" },\n// [GREY]: { color: \"grey\" },\n// [RED]: { color: \"red\" },\n// [PURPLE]: { color: \"purple\" },\n// [ORANGE]: { color: \"orange\" },\n// [UNCOLOR]: { color: \"black\" },\n// }\n\nconst TTY_STYLE = {\n BOLD: '\\u001B[1m',\n UNBOLD: '\\u001B[2m',\n RED: '\\u001B[31m',\n GREEN: '\\u001B[32m',\n BLUE: '\\u001B[34m',\n PURPLE: '\\u001B[35m',\n GRAY: '\\u001B[37m',\n ORANGE: '\\u001B[38;5;208m',\n UNCOLOR: '\\u001B[0m',\n}\n\nenum COLOR {\n RED = 1,\n GREEN = 2,\n BLUE = 4,\n PURPLE = 5,\n GRAY = 7,\n ORANGE = 8,\n}\n\nconst colorEnd = '\\u001B[0m'\n\nexport function colorString(text: string, colorCode: number) {\n const colorStart = colorCode === COLOR.ORANGE\n ? TTY_STYLE.ORANGE\n : `\\u001B[3${colorCode < 8 ? colorCode : `8;5;${colorCode}`}m`\n return `${colorStart}${text}${colorEnd}`\n}\n\nexport function colorStringList(\n list: Array<any>,\n style: string,\n bold = true,\n) {\n return list.map((value) => {\n if (typeof value !== 'string')\n return value\n let start = style\n let end = colorEnd\n if (bold) {\n start = `${TTY_STYLE.BOLD}${start}`\n end = `${end}${TTY_STYLE.BOLD}`\n }\n return `${start}${value}${end}`\n })\n}\n\nfunction shouldUseStack(): boolean {\n try {\n return valueToBoolean(process.env.ZEED_STACK, false)\n }\n catch (err) {}\n return false\n}\n\nlet defaultUseStack: boolean | undefined\n\nexport const loggerStackTraceDebug = 'loggerStackTraceDebug-7d38e5a9214b58d29734374cdb9521fd964d7485'\n\nexport function LoggerNodeHandler(opt: LogHandlerOptions = {}): LogHandler {\n defaultUseColor ??= shouldUseColor()\n\n defaultUseStack ??= shouldUseStack()\n\n startTime ??= getTimestamp()\n\n const {\n level = undefined,\n filter = undefined,\n colors = defaultUseColor,\n levelHelper = true,\n nameBrackets = true,\n padding = 0,\n fill = 0,\n stack = defaultUseStack,\n time = true,\n } = opt\n const matchesNamespace = useNamespaceFilter(filter)\n const matchesLevel = useLevelFilter(level)\n return (msg: LogMessage) => {\n if (!matchesLevel(msg.level))\n return\n if (!matchesNamespace(msg.name))\n return\n const timeNow = getTimestamp()\n const name = msg.name || ''\n let ninfo = namespaces[name || '']\n if (ninfo == null) {\n ninfo = {\n color: nodeSelectColorByName(name),\n // time: timeNow\n }\n namespaces[name] = ninfo\n }\n const timeDiffString = formatMilliseconds(timeNow - startTime!)\n\n let args: string[]\n\n let displayName = nameBrackets ? `[${name}]` : name\n\n if (padding > 0)\n displayName = displayName.padStart(padding, ' ')\n\n if (fill > 0)\n displayName = displayName.padEnd(fill, ' ')\n\n if (colors) {\n const c = ninfo.color\n args = [`${colorString(displayName, c)} | `] // nameBrackets ? [`%c[${name}]`] : [`%c${name}`]\n if (msg.level === LogLevelWarn)\n args.push(...colorStringList(msg.messages, TTY_STYLE.ORANGE))\n else if (msg.level === LogLevelError)\n args.push(...colorStringList(msg.messages, TTY_STYLE.RED))\n else\n args.push(...msg.messages)\n if (time)\n args.push(colorString(`+${timeDiffString}`, c))\n }\n else {\n args = [displayName, ...msg.messages]\n if (time)\n args.push(`+${timeDiffString}`)\n }\n\n if (msg.messages?.[0] === loggerStackTraceDebug) {\n try {\n // eslint-disable-next-line no-console\n console.log(getStack())\n }\n catch (err) { }\n }\n\n // Probably time consuming\n if (stack) {\n let line = ''\n if (typeof stack === 'boolean') {\n line = getSourceLocationByPrecedingPattern(\n ['at Function.', 'at null.log (', 'at log ('],\n true,\n )\n if (!line)\n line = getSourceLocation(0, true)\n }\n else {\n const depth = typeof stack === 'number' ? stack : 3\n line = getSourceLocation(depth, true)\n }\n if (line)\n args.push(colorString(`(${line})`, COLOR.GRAY))\n }\n\n const sep = '|'\n const charLevel = '.'\n\n switch (msg.level) {\n case LogLevelInfo:\n if (levelHelper)\n args[0] = `I${sep}${charLevel} ${args[0]}`\n log(...args)\n break\n case LogLevelWarn:\n if (levelHelper) {\n args[0] = (colors\n ? colorString(`W${sep}${charLevel}${charLevel} `, COLOR.ORANGE)\n : `W${sep}${charLevel}${charLevel} `) + args[0]\n }\n log(...args)\n break\n case LogLevelError:\n if (levelHelper) {\n args[0] = (colors\n ? colorString(`E${sep}${charLevel}${charLevel}${charLevel} `, COLOR.RED)\n : `E${sep}${charLevel}${charLevel}${charLevel} `) + args[0]\n }\n log(...args)\n break\n default:\n if (levelHelper)\n args[0] = `D${sep} ${args[0]}`\n log(...args)\n break\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"log-node.cjs","names":["valueToBoolean","process","tty","renderMessages","getTimestamp","useNamespaceFilter","useLevelFilter","formatMilliseconds","getStack","getSourceLocationByPrecedingPattern","getSourceLocation"],"sources":["../../../src/node/log/log-node.ts"],"sourcesContent":["import type { LogHandler, LogHandlerOptions, LogMessage } from '../../common/log/log-base'\nimport process from 'node:process'\nimport tty from 'node:tty'\nimport { valueToBoolean } from '../../common/data/convert'\nimport { renderMessages } from '../../common/data/message'\nimport { LogLevelError, LogLevelInfo, LogLevelWarn } from '../../common/log/log-base'\nimport { useLevelFilter, useNamespaceFilter } from '../../common/log/log-filter'\nimport { formatMilliseconds, getTimestamp } from '../../common/time'\nimport { getSourceLocation, getSourceLocationByPrecedingPattern, getStack } from './log-util'\n\nfunction shouldUseColor(): boolean {\n try {\n return valueToBoolean(process.env.ZEED_COLOR, tty.isatty(process.stdout.fd))\n }\n catch (err) {}\n return false\n}\n\nlet defaultUseColor: boolean | undefined\n\nconst colors = [6, 2, 3, 4, 5, 1]\n\nfunction nodeSelectColorByName(namespace: string) {\n let hash = 0\n for (let i = 0; i < namespace.length; i++) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i)\n hash |= 0 // Convert to 32bit integer\n }\n return colors[Math.abs(hash) % colors.length]\n}\n\nconst namespaces: Record<string, any> = {}\n\nlet startTime: number | undefined\n\nfunction log(...args: any[]) {\n process.stdout.write(`${renderMessages(args)}\\n`)\n}\n\n// const _browserStyleMap = {\n// [BOLD]: { \"font-weight\": \"bold\" },\n// [UNBOLD]: { \"font-weight\": \"normal\" },\n// [BLUE]: { color: \"blue\" },\n// [GREEN]: { color: \"green\" },\n// [GREY]: { color: \"grey\" },\n// [RED]: { color: \"red\" },\n// [PURPLE]: { color: \"purple\" },\n// [ORANGE]: { color: \"orange\" },\n// [UNCOLOR]: { color: \"black\" },\n// }\n\nconst TTY_STYLE = {\n BOLD: '\\u001B[1m',\n UNBOLD: '\\u001B[2m',\n RED: '\\u001B[31m',\n GREEN: '\\u001B[32m',\n BLUE: '\\u001B[34m',\n PURPLE: '\\u001B[35m',\n GRAY: '\\u001B[37m',\n ORANGE: '\\u001B[38;5;208m',\n UNCOLOR: '\\u001B[0m',\n}\n\nenum COLOR {\n RED = 1,\n GREEN = 2,\n BLUE = 4,\n PURPLE = 5,\n GRAY = 7,\n ORANGE = 8,\n}\n\nconst colorEnd = '\\u001B[0m'\n\nexport function colorString(text: string, colorCode: number) {\n const colorStart = colorCode === COLOR.ORANGE\n ? TTY_STYLE.ORANGE\n : `\\u001B[3${colorCode < 8 ? colorCode : `8;5;${colorCode}`}m`\n return `${colorStart}${text}${colorEnd}`\n}\n\nexport function colorStringList(\n list: Array<any>,\n style: string,\n bold = true,\n) {\n return list.map((value) => {\n if (typeof value !== 'string')\n return value\n let start = style\n let end = colorEnd\n if (bold) {\n start = `${TTY_STYLE.BOLD}${start}`\n end = `${end}${TTY_STYLE.BOLD}`\n }\n return `${start}${value}${end}`\n })\n}\n\nfunction shouldUseStack(): boolean {\n try {\n return valueToBoolean(process.env.ZEED_STACK, false)\n }\n catch (err) {}\n return false\n}\n\nlet defaultUseStack: boolean | undefined\n\nexport const loggerStackTraceDebug = 'loggerStackTraceDebug-7d38e5a9214b58d29734374cdb9521fd964d7485'\n\nexport function LoggerNodeHandler(opt: LogHandlerOptions = {}): LogHandler {\n defaultUseColor ??= shouldUseColor()\n\n defaultUseStack ??= shouldUseStack()\n\n startTime ??= getTimestamp()\n\n const {\n level = undefined,\n filter = undefined,\n colors = defaultUseColor,\n levelHelper = true,\n nameBrackets = true,\n padding = 0,\n fill = 0,\n stack = defaultUseStack,\n time = true,\n } = opt\n const matchesNamespace = useNamespaceFilter(filter)\n const matchesLevel = useLevelFilter(level)\n return (msg: LogMessage) => {\n if (!matchesLevel(msg.level))\n return\n if (!matchesNamespace(msg.name))\n return\n const timeNow = getTimestamp()\n const name = msg.name || ''\n let ninfo = namespaces[name || '']\n if (ninfo == null) {\n ninfo = {\n color: nodeSelectColorByName(name),\n // time: timeNow\n }\n namespaces[name] = ninfo\n }\n const timeDiffString = formatMilliseconds(timeNow - startTime!)\n\n let args: string[]\n\n let displayName = nameBrackets ? `[${name}]` : name\n\n if (padding > 0)\n displayName = displayName.padStart(padding, ' ')\n\n if (fill > 0)\n displayName = displayName.padEnd(fill, ' ')\n\n if (colors) {\n const c = ninfo.color\n args = [`${colorString(displayName, c)} | `] // nameBrackets ? [`%c[${name}]`] : [`%c${name}`]\n if (msg.level === LogLevelWarn)\n args.push(...colorStringList(msg.messages, TTY_STYLE.ORANGE))\n else if (msg.level === LogLevelError)\n args.push(...colorStringList(msg.messages, TTY_STYLE.RED))\n else\n args.push(...msg.messages)\n if (time)\n args.push(colorString(`+${timeDiffString}`, c))\n }\n else {\n args = [displayName, ...msg.messages]\n if (time)\n args.push(`+${timeDiffString}`)\n }\n\n if (msg.messages?.[0] === loggerStackTraceDebug) {\n try {\n // eslint-disable-next-line no-console\n console.log(getStack())\n }\n catch (err) { }\n }\n\n // Probably time consuming\n if (stack) {\n let line = ''\n if (typeof stack === 'boolean') {\n line = getSourceLocationByPrecedingPattern(\n ['at Function.', 'at null.log (', 'at log ('],\n true,\n )\n if (!line)\n line = getSourceLocation(0, true)\n }\n else {\n const depth = typeof stack === 'number' ? stack : 3\n line = getSourceLocation(depth, true)\n }\n if (line)\n args.push(colorString(`(${line})`, COLOR.GRAY))\n }\n\n const sep = '|'\n const charLevel = '.'\n\n switch (msg.level) {\n case LogLevelInfo:\n if (levelHelper)\n args[0] = `I${sep}${charLevel} ${args[0]}`\n log(...args)\n break\n case LogLevelWarn:\n if (levelHelper) {\n args[0] = (colors\n ? colorString(`W${sep}${charLevel}${charLevel} `, COLOR.ORANGE)\n : `W${sep}${charLevel}${charLevel} `) + args[0]\n }\n log(...args)\n break\n case LogLevelError:\n if (levelHelper) {\n args[0] = (colors\n ? colorString(`E${sep}${charLevel}${charLevel}${charLevel} `, COLOR.RED)\n : `E${sep}${charLevel}${charLevel}${charLevel} `) + args[0]\n }\n log(...args)\n break\n default:\n if (levelHelper)\n args[0] = `D${sep} ${args[0]}`\n log(...args)\n break\n }\n }\n}\n"],"mappings":"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"}