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.
- package/AGENTS.md +50 -211
- package/README.md +16 -0
- package/dist/_experiments/bitcask.cjs +243 -1
- package/dist/_experiments/bitcask.cjs.map +1 -1
- package/dist/_experiments/bitcask.mjs +230 -1
- package/dist/_experiments/bitcask.mjs.map +1 -1
- package/dist/bin-BAoS4qtm.mjs +593 -0
- package/dist/{bin-SPdenYkw.mjs.map → bin-BAoS4qtm.mjs.map} +1 -1
- package/dist/bin-Ddaz2lxM.cjs +862 -0
- package/dist/{bin-Ce3i6ABn.cjs.map → bin-Ddaz2lxM.cjs.map} +1 -1
- package/dist/browser/base64.cjs +14 -1
- package/dist/browser/base64.cjs.map +1 -1
- package/dist/browser/base64.mjs +12 -1
- package/dist/browser/base64.mjs.map +1 -1
- package/dist/browser/gravatar.cjs +186 -1
- package/dist/browser/gravatar.cjs.map +1 -1
- package/dist/browser/gravatar.mjs +184 -1
- package/dist/browser/gravatar.mjs.map +1 -1
- package/dist/browser/index.cjs +14 -1
- package/dist/browser/index.mjs +8 -1
- package/dist/browser/localstorage.cjs +46 -1
- package/dist/browser/localstorage.cjs.map +1 -1
- package/dist/browser/localstorage.mjs +45 -1
- package/dist/browser/localstorage.mjs.map +1 -1
- package/dist/browser/log/index.cjs +8 -1
- package/dist/browser/log/index.mjs +5 -1
- package/dist/browser/log/log-browser-factory.cjs +65 -1
- package/dist/browser/log/log-browser-factory.cjs.map +1 -1
- package/dist/browser/log/log-browser-factory.mjs +64 -1
- package/dist/browser/log/log-browser-factory.mjs.map +1 -1
- package/dist/browser/log/log-browser.cjs +72 -1
- package/dist/browser/log/log-browser.cjs.map +1 -1
- package/dist/browser/log/log-browser.mjs +71 -1
- package/dist/browser/log/log-browser.mjs.map +1 -1
- package/dist/browser/log/log-colors.cjs +11 -1
- package/dist/browser/log/log-colors.cjs.map +1 -1
- package/dist/browser/log/log-colors.mjs +9 -1
- package/dist/browser/log/log-colors.mjs.map +1 -1
- package/dist/browser/log/log-context-browser.cjs +25 -1
- package/dist/browser/log/log-context-browser.cjs.map +1 -1
- package/dist/browser/log/log-context-browser.mjs +23 -1
- package/dist/browser/log/log-context-browser.mjs.map +1 -1
- package/dist/chunk-DQk6qfdC.mjs +18 -0
- package/dist/chunk-uaV2rQ02.cjs +53 -0
- package/dist/common/assert.cjs +22 -1
- package/dist/common/assert.cjs.map +1 -1
- package/dist/common/assert.mjs +19 -1
- package/dist/common/assert.mjs.map +1 -1
- package/dist/common/bin/index.cjs +106 -1
- package/dist/common/bin/index.cjs.map +1 -1
- package/dist/common/bin/index.mjs +98 -1
- package/dist/common/bin/index.mjs.map +1 -1
- package/dist/common/bin/lib0/binary.cjs +146 -1
- package/dist/common/bin/lib0/binary.cjs.map +1 -1
- package/dist/common/bin/lib0/binary.mjs +80 -1
- package/dist/common/bin/lib0/binary.mjs.map +1 -1
- package/dist/common/bin/lib0/buffer.cjs +42 -1
- package/dist/common/bin/lib0/buffer.cjs.map +1 -1
- package/dist/common/bin/lib0/buffer.mjs +38 -1
- package/dist/common/bin/lib0/buffer.mjs.map +1 -1
- package/dist/common/bin/lib0/create.cjs +24 -1
- package/dist/common/bin/lib0/create.cjs.map +1 -1
- package/dist/common/bin/lib0/create.mjs +21 -1
- package/dist/common/bin/lib0/create.mjs.map +1 -1
- package/dist/common/bin/lib0/decoding.cjs +325 -1
- package/dist/common/bin/lib0/decoding.cjs.map +1 -1
- package/dist/common/bin/lib0/decoding.mjs +298 -1
- package/dist/common/bin/lib0/decoding.mjs.map +1 -1
- package/dist/common/bin/lib0/encoding.cjs +404 -1
- package/dist/common/bin/lib0/encoding.cjs.map +1 -1
- package/dist/common/bin/lib0/encoding.mjs +377 -1
- package/dist/common/bin/lib0/encoding.mjs.map +1 -1
- package/dist/common/bin/lib0/string.cjs +81 -1
- package/dist/common/bin/lib0/string.cjs.map +1 -1
- package/dist/common/bin/lib0/string.mjs +71 -1
- package/dist/common/bin/lib0/string.mjs.map +1 -1
- package/dist/common/crypto/aes-sealed.cjs +34 -1
- package/dist/common/crypto/aes-sealed.cjs.map +1 -1
- package/dist/common/crypto/aes-sealed.mjs +32 -1
- package/dist/common/crypto/aes-sealed.mjs.map +1 -1
- package/dist/common/crypto/crypto.cjs +91 -1
- package/dist/common/crypto/crypto.cjs.map +1 -1
- package/dist/common/crypto/crypto.mjs +80 -1
- package/dist/common/crypto/crypto.mjs.map +1 -1
- package/dist/common/crypto/index.cjs +23 -1
- package/dist/common/crypto/index.mjs +5 -1
- package/dist/common/crypto/xaes.cjs +128 -1
- package/dist/common/crypto/xaes.cjs.map +1 -1
- package/dist/common/crypto/xaes.mjs +123 -1
- package/dist/common/crypto/xaes.mjs.map +1 -1
- package/dist/common/csv.cjs +49 -4
- package/dist/common/csv.cjs.map +1 -1
- package/dist/common/csv.mjs +46 -4
- package/dist/common/csv.mjs.map +1 -1
- package/dist/common/data/array.cjs +299 -1
- package/dist/common/data/array.cjs.map +1 -1
- package/dist/common/data/array.mjs +274 -1
- package/dist/common/data/array.mjs.map +1 -1
- package/dist/common/data/basex-secure.cjs +30 -1
- package/dist/common/data/basex-secure.mjs +3 -1
- package/dist/common/data/basex.cjs +163 -1
- package/dist/common/data/basex.cjs.map +1 -1
- package/dist/common/data/basex.mjs +152 -1
- package/dist/common/data/basex.mjs.map +1 -1
- package/dist/common/data/bin-types.mjs +1 -1
- package/dist/common/data/bin.cjs +21 -1
- package/dist/common/data/bin.mjs +3 -1
- package/dist/common/data/camelcase.cjs +27 -1
- package/dist/common/data/camelcase.cjs.map +1 -1
- package/dist/common/data/camelcase.mjs +22 -1
- package/dist/common/data/camelcase.mjs.map +1 -1
- package/dist/common/data/convert.cjs +104 -1
- package/dist/common/data/convert.cjs.map +1 -1
- package/dist/common/data/convert.mjs +88 -1
- package/dist/common/data/convert.mjs.map +1 -1
- package/dist/common/data/datauri.cjs +32 -1
- package/dist/common/data/datauri.cjs.map +1 -1
- package/dist/common/data/datauri.mjs +27 -1
- package/dist/common/data/datauri.mjs.map +1 -1
- package/dist/common/data/day-legacy.cjs +148 -1
- package/dist/common/data/day-legacy.cjs.map +1 -1
- package/dist/common/data/day-legacy.mjs +143 -1
- package/dist/common/data/day-legacy.mjs.map +1 -1
- package/dist/common/data/day.cjs +335 -1
- package/dist/common/data/day.cjs.map +1 -1
- package/dist/common/data/day.mjs +305 -1
- package/dist/common/data/day.mjs.map +1 -1
- package/dist/common/data/decimal.cjs +28 -1
- package/dist/common/data/decimal.cjs.map +1 -1
- package/dist/common/data/decimal.mjs +23 -1
- package/dist/common/data/decimal.mjs.map +1 -1
- package/dist/common/data/deep.cjs +57 -1
- package/dist/common/data/deep.cjs.map +1 -1
- package/dist/common/data/deep.mjs +54 -1
- package/dist/common/data/deep.mjs.map +1 -1
- package/dist/common/data/diff.cjs +62 -1
- package/dist/common/data/diff.cjs.map +1 -1
- package/dist/common/data/diff.mjs +60 -1
- package/dist/common/data/diff.mjs.map +1 -1
- package/dist/common/data/distributed.cjs +24 -1
- package/dist/common/data/distributed.cjs.map +1 -1
- package/dist/common/data/distributed.mjs +22 -1
- package/dist/common/data/distributed.mjs.map +1 -1
- package/dist/common/data/format.cjs +63 -1
- package/dist/common/data/format.cjs.map +1 -1
- package/dist/common/data/format.mjs +59 -1
- package/dist/common/data/format.mjs.map +1 -1
- package/dist/common/data/html.cjs +13 -1
- package/dist/common/data/html.cjs.map +1 -1
- package/dist/common/data/html.mjs +10 -1
- package/dist/common/data/html.mjs.map +1 -1
- package/dist/common/data/index.cjs +296 -1
- package/dist/common/data/index.mjs +37 -1
- package/dist/common/data/is.cjs +106 -1
- package/dist/common/data/is.cjs.map +1 -1
- package/dist/common/data/is.mjs +85 -1
- package/dist/common/data/is.mjs.map +1 -1
- package/dist/common/data/json.cjs +70 -1
- package/dist/common/data/json.cjs.map +1 -1
- package/dist/common/data/json.mjs +65 -1
- package/dist/common/data/json.mjs.map +1 -1
- package/dist/common/data/list.cjs +32 -1
- package/dist/common/data/list.cjs.map +1 -1
- package/dist/common/data/list.mjs +27 -1
- package/dist/common/data/list.mjs.map +1 -1
- package/dist/common/data/lru.mjs +1 -1
- package/dist/common/data/math.cjs +79 -1
- package/dist/common/data/math.cjs.map +1 -1
- package/dist/common/data/math.mjs +65 -1
- package/dist/common/data/math.mjs.map +1 -1
- package/dist/common/data/message.cjs +30 -1
- package/dist/common/data/message.cjs.map +1 -1
- package/dist/common/data/message.mjs +28 -1
- package/dist/common/data/message.mjs.map +1 -1
- package/dist/common/data/object-changes.cjs +66 -1
- package/dist/common/data/object-changes.cjs.map +1 -1
- package/dist/common/data/object-changes.mjs +63 -1
- package/dist/common/data/object-changes.mjs.map +1 -1
- package/dist/common/data/object.cjs +112 -1
- package/dist/common/data/object.cjs.map +1 -1
- package/dist/common/data/object.mjs +104 -1
- package/dist/common/data/object.mjs.map +1 -1
- package/dist/common/data/orderby.cjs +42 -1
- package/dist/common/data/orderby.cjs.map +1 -1
- package/dist/common/data/orderby.mjs +37 -1
- package/dist/common/data/orderby.mjs.map +1 -1
- package/dist/common/data/path.cjs +26 -1
- package/dist/common/data/path.cjs.map +1 -1
- package/dist/common/data/path.mjs +25 -1
- package/dist/common/data/path.mjs.map +1 -1
- package/dist/common/data/regexp.cjs +12 -1
- package/dist/common/data/regexp.cjs.map +1 -1
- package/dist/common/data/regexp.mjs +10 -1
- package/dist/common/data/regexp.mjs.map +1 -1
- package/dist/common/data/rounding.cjs +107 -1
- package/dist/common/data/rounding.cjs.map +1 -1
- package/dist/common/data/rounding.mjs +95 -1
- package/dist/common/data/rounding.mjs.map +1 -1
- package/dist/common/data/signal.cjs +39 -1
- package/dist/common/data/signal.cjs.map +1 -1
- package/dist/common/data/signal.mjs +38 -1
- package/dist/common/data/signal.mjs.map +1 -1
- package/dist/common/data/sortable.cjs +35 -1
- package/dist/common/data/sortable.cjs.map +1 -1
- package/dist/common/data/sortable.mjs +31 -1
- package/dist/common/data/sortable.mjs.map +1 -1
- package/dist/common/data/sorted.cjs +54 -1
- package/dist/common/data/sorted.cjs.map +1 -1
- package/dist/common/data/sorted.mjs +53 -1
- package/dist/common/data/sorted.mjs.map +1 -1
- package/dist/common/data/string-deburr.cjs +240 -1
- package/dist/common/data/string-deburr.cjs.map +1 -1
- package/dist/common/data/string-deburr.mjs +238 -1
- package/dist/common/data/string-deburr.mjs.map +1 -1
- package/dist/common/data/string-hash-fnv.cjs +69 -1
- package/dist/common/data/string-hash-fnv.cjs.map +1 -1
- package/dist/common/data/string-hash-fnv.mjs +67 -1
- package/dist/common/data/string-hash-fnv.mjs.map +1 -1
- package/dist/common/data/string-hash-pool.cjs +28 -1
- package/dist/common/data/string-hash-pool.cjs.map +1 -1
- package/dist/common/data/string-hash-pool.mjs +27 -1
- package/dist/common/data/string-hash-pool.mjs.map +1 -1
- package/dist/common/data/url.cjs +98 -2
- package/dist/common/data/url.cjs.map +1 -1
- package/dist/common/data/url.mjs +91 -2
- package/dist/common/data/url.mjs.map +1 -1
- package/dist/common/data/utils.cjs +118 -1
- package/dist/common/data/utils.cjs.map +1 -1
- package/dist/common/data/utils.mjs +107 -1
- package/dist/common/data/utils.mjs.map +1 -1
- package/dist/common/data/wordlist.cjs +531 -1
- package/dist/common/data/wordlist.cjs.map +1 -1
- package/dist/common/data/wordlist.mjs +529 -1
- package/dist/common/data/wordlist.mjs.map +1 -1
- package/dist/common/data/xrx.cjs +96 -1
- package/dist/common/data/xrx.cjs.map +1 -1
- package/dist/common/data/xrx.mjs +92 -1
- package/dist/common/data/xrx.mjs.map +1 -1
- package/dist/common/dispose-defer.cjs +133 -1
- package/dist/common/dispose-defer.cjs.map +1 -1
- package/dist/common/dispose-defer.mjs +130 -1
- package/dist/common/dispose-defer.mjs.map +1 -1
- package/dist/common/dispose-types.mjs +1 -1
- package/dist/common/dispose-utils.cjs +113 -1
- package/dist/common/dispose-utils.cjs.map +1 -1
- package/dist/common/dispose-utils.mjs +106 -1
- package/dist/common/dispose-utils.mjs.map +1 -1
- package/dist/common/exec/index.cjs +24 -1
- package/dist/common/exec/index.d.cts +1 -1
- package/dist/common/exec/index.d.mts +1 -1
- package/dist/common/exec/index.mjs +8 -1
- package/dist/common/exec/mutex.cjs +44 -1
- package/dist/common/exec/mutex.cjs.map +1 -1
- package/dist/common/exec/mutex.mjs +42 -1
- package/dist/common/exec/mutex.mjs.map +1 -1
- package/dist/common/exec/pool.cjs +181 -1
- package/dist/common/exec/pool.cjs.map +1 -1
- package/dist/common/exec/pool.d.cts +1 -1
- package/dist/common/exec/pool.d.mts +1 -1
- package/dist/common/exec/pool.mjs +180 -1
- package/dist/common/exec/pool.mjs.map +1 -1
- package/dist/common/exec/progress.cjs +149 -1
- package/dist/common/exec/progress.cjs.map +1 -1
- package/dist/common/exec/progress.d.cts +1 -1
- package/dist/common/exec/progress.d.mts +1 -1
- package/dist/common/exec/progress.mjs +148 -1
- package/dist/common/exec/progress.mjs.map +1 -1
- package/dist/common/exec/promise.cjs +113 -1
- package/dist/common/exec/promise.cjs.map +1 -1
- package/dist/common/exec/promise.mjs +103 -1
- package/dist/common/exec/promise.mjs.map +1 -1
- package/dist/common/exec/queue.cjs +125 -1
- package/dist/common/exec/queue.cjs.map +1 -1
- package/dist/common/exec/queue.d.cts +1 -1
- package/dist/common/exec/queue.d.mts +1 -1
- package/dist/common/exec/queue.mjs +124 -1
- package/dist/common/exec/queue.mjs.map +1 -1
- package/dist/common/exec/throttle-debounce.cjs +114 -1
- package/dist/common/exec/throttle-debounce.cjs.map +1 -1
- package/dist/common/exec/throttle-debounce.mjs +112 -1
- package/dist/common/exec/throttle-debounce.mjs.map +1 -1
- package/dist/common/global.cjs +22 -1
- package/dist/common/global.cjs.map +1 -1
- package/dist/common/global.mjs +19 -1
- package/dist/common/global.mjs.map +1 -1
- package/dist/common/index.cjs +559 -1
- package/dist/common/index.d.cts +1 -1
- package/dist/common/index.d.mts +1 -1
- package/dist/common/index.mjs +89 -1
- package/dist/common/localhost.cjs +16 -1
- package/dist/common/localhost.cjs.map +1 -1
- package/dist/common/localhost.mjs +14 -1
- package/dist/common/localhost.mjs.map +1 -1
- package/dist/common/log/index.cjs +34 -1
- package/dist/common/log/index.mjs +11 -1
- package/dist/common/log/log-base.cjs +40 -1
- package/dist/common/log/log-base.cjs.map +1 -1
- package/dist/common/log/log-base.mjs +31 -1
- package/dist/common/log/log-base.mjs.map +1 -1
- package/dist/common/log/log-colors.cjs +92 -1
- package/dist/common/log/log-colors.cjs.map +1 -1
- package/dist/common/log/log-colors.mjs +90 -1
- package/dist/common/log/log-colors.mjs.map +1 -1
- package/dist/common/log/log-config.cjs +15 -1
- package/dist/common/log/log-config.cjs.map +1 -1
- package/dist/common/log/log-config.mjs +14 -1
- package/dist/common/log/log-config.mjs.map +1 -1
- package/dist/common/log/log-console-capture.cjs +33 -1
- package/dist/common/log/log-console-capture.cjs.map +1 -1
- package/dist/common/log/log-console-capture.mjs +32 -1
- package/dist/common/log/log-console-capture.mjs.map +1 -1
- package/dist/common/log/log-console-original.cjs +27 -1
- package/dist/common/log/log-console-original.cjs.map +1 -1
- package/dist/common/log/log-console-original.mjs +26 -1
- package/dist/common/log/log-console-original.mjs.map +1 -1
- package/dist/common/log/log-console.cjs +39 -1
- package/dist/common/log/log-console.cjs.map +1 -1
- package/dist/common/log/log-console.mjs +38 -1
- package/dist/common/log/log-console.mjs.map +1 -1
- package/dist/common/log/log-context.cjs +109 -1
- package/dist/common/log/log-context.cjs.map +1 -1
- package/dist/common/log/log-context.mjs +108 -1
- package/dist/common/log/log-context.mjs.map +1 -1
- package/dist/common/log/log-filter.cjs +80 -1
- package/dist/common/log/log-filter.cjs.map +1 -1
- package/dist/common/log/log-filter.mjs +75 -1
- package/dist/common/log/log-filter.mjs.map +1 -1
- package/dist/common/log/log-memory.cjs +45 -1
- package/dist/common/log/log-memory.cjs.map +1 -1
- package/dist/common/log/log-memory.mjs +43 -1
- package/dist/common/log/log-memory.mjs.map +1 -1
- package/dist/common/log/log-noop.cjs +17 -1
- package/dist/common/log/log-noop.cjs.map +1 -1
- package/dist/common/log/log-noop.mjs +15 -1
- package/dist/common/log/log-noop.mjs.map +1 -1
- package/dist/common/log/log.cjs +46 -1
- package/dist/common/log/log.cjs.map +1 -1
- package/dist/common/log/log.mjs +43 -1
- package/dist/common/log/log.mjs.map +1 -1
- package/dist/common/msg/channel-debug.cjs +17 -1
- package/dist/common/msg/channel-debug.cjs.map +1 -1
- package/dist/common/msg/channel-debug.d.cts +1 -1
- package/dist/common/msg/channel-debug.d.mts +1 -1
- package/dist/common/msg/channel-debug.mjs +16 -1
- package/dist/common/msg/channel-debug.mjs.map +1 -1
- package/dist/common/msg/channel-local.cjs +28 -1
- package/dist/common/msg/channel-local.cjs.map +1 -1
- package/dist/common/msg/channel-local.d.cts +1 -1
- package/dist/common/msg/channel-local.d.mts +1 -1
- package/dist/common/msg/channel-local.mjs +26 -1
- package/dist/common/msg/channel-local.mjs.map +1 -1
- package/dist/common/msg/channel-resilient.cjs +63 -1
- package/dist/common/msg/channel-resilient.cjs.map +1 -1
- package/dist/common/msg/channel-resilient.d.cts +1 -1
- package/dist/common/msg/channel-resilient.d.mts +1 -1
- package/dist/common/msg/channel-resilient.mjs +62 -1
- package/dist/common/msg/channel-resilient.mjs.map +1 -1
- package/dist/common/msg/channel-wkwebview.cjs +35 -1
- package/dist/common/msg/channel-wkwebview.cjs.map +1 -1
- package/dist/common/msg/channel-wkwebview.d.cts +2 -1
- package/dist/common/msg/channel-wkwebview.d.mts +2 -1
- package/dist/common/msg/channel-wkwebview.mjs +34 -1
- package/dist/common/msg/channel-wkwebview.mjs.map +1 -1
- package/dist/common/msg/channel.cjs +23 -1
- package/dist/common/msg/channel.cjs.map +1 -1
- package/dist/common/msg/channel.d.cts +1 -1
- package/dist/common/msg/channel.d.mts +1 -1
- package/dist/common/msg/channel.mjs +22 -1
- package/dist/common/msg/channel.mjs.map +1 -1
- package/dist/common/msg/emitter.cjs +141 -1
- package/dist/common/msg/emitter.cjs.map +1 -1
- package/dist/common/msg/emitter.d.cts +1 -1
- package/dist/common/msg/emitter.d.mts +1 -1
- package/dist/common/msg/emitter.mjs +139 -1
- package/dist/common/msg/emitter.mjs.map +1 -1
- package/dist/common/msg/encoder.cjs +38 -1
- package/dist/common/msg/encoder.cjs.map +1 -1
- package/dist/common/msg/encoder.mjs +35 -1
- package/dist/common/msg/encoder.mjs.map +1 -1
- package/dist/common/msg/index.cjs +28 -1
- package/dist/common/msg/index.d.cts +1 -1
- package/dist/common/msg/index.d.mts +1 -1
- package/dist/common/msg/index.mjs +11 -1
- package/dist/common/msg/messages.cjs +135 -1
- package/dist/common/msg/messages.cjs.map +1 -1
- package/dist/common/msg/messages.d.cts +1 -1
- package/dist/common/msg/messages.d.mts +1 -1
- package/dist/common/msg/messages.mjs +133 -1
- package/dist/common/msg/messages.mjs.map +1 -1
- package/dist/common/msg/pipe.mjs +1 -1
- package/dist/common/msg/pubsub.cjs +78 -1
- package/dist/common/msg/pubsub.cjs.map +1 -1
- package/dist/common/msg/pubsub.d.cts +1 -1
- package/dist/common/msg/pubsub.d.mts +1 -1
- package/dist/common/msg/pubsub.mjs +76 -1
- package/dist/common/msg/pubsub.mjs.map +1 -1
- package/dist/common/msg/rpc.cjs +142 -1
- package/dist/common/msg/rpc.cjs.map +1 -1
- package/dist/common/msg/rpc.mjs +139 -1
- package/dist/common/msg/rpc.mjs.map +1 -1
- package/dist/common/network.cjs +129 -1
- package/dist/common/network.cjs.map +1 -1
- package/dist/common/network.mjs +122 -1
- package/dist/common/network.mjs.map +1 -1
- package/dist/common/platform.cjs +92 -1
- package/dist/common/platform.cjs.map +1 -1
- package/dist/common/platform.mjs +84 -1
- package/dist/common/platform.mjs.map +1 -1
- package/dist/common/schema/_sandbox/sandbox-inherit.mjs +1 -1
- package/dist/common/schema/_sandbox/sandbox.mjs +1 -1
- package/dist/common/schema/_sandbox/sandbox.xspec.mjs +1 -1
- package/dist/common/schema/export-json-schema.cjs +54 -1
- package/dist/common/schema/export-json-schema.cjs.map +1 -1
- package/dist/common/schema/export-json-schema.mjs +52 -1
- package/dist/common/schema/export-json-schema.mjs.map +1 -1
- package/dist/common/schema/export-swift.cjs +30 -2
- package/dist/common/schema/export-swift.cjs.map +1 -1
- package/dist/common/schema/export-swift.mjs +29 -2
- package/dist/common/schema/export-swift.mjs.map +1 -1
- package/dist/common/schema/export-typescript.cjs +20 -2
- package/dist/common/schema/export-typescript.cjs.map +1 -1
- package/dist/common/schema/export-typescript.mjs +19 -2
- package/dist/common/schema/export-typescript.mjs.map +1 -1
- package/dist/common/schema/index.cjs +55 -1
- package/dist/common/schema/index.mjs +12 -1
- package/dist/common/schema/parse-args.cjs +62 -2
- package/dist/common/schema/parse-args.cjs.map +1 -1
- package/dist/common/schema/parse-args.mjs +60 -2
- package/dist/common/schema/parse-args.mjs.map +1 -1
- package/dist/common/schema/parse-env.cjs +48 -3
- package/dist/common/schema/parse-env.cjs.map +1 -1
- package/dist/common/schema/parse-env.mjs +46 -3
- package/dist/common/schema/parse-env.mjs.map +1 -1
- package/dist/common/schema/parse-object.cjs +122 -1
- package/dist/common/schema/parse-object.cjs.map +1 -1
- package/dist/common/schema/parse-object.mjs +119 -1
- package/dist/common/schema/parse-object.mjs.map +1 -1
- package/dist/common/schema/schema-standard.mjs +1 -1
- package/dist/common/schema/schema.cjs +423 -1
- package/dist/common/schema/schema.cjs.map +1 -1
- package/dist/common/schema/schema.mjs +404 -1
- package/dist/common/schema/schema.mjs.map +1 -1
- package/dist/common/schema/serialize.cjs +109 -1
- package/dist/common/schema/serialize.cjs.map +1 -1
- package/dist/common/schema/serialize.mjs +107 -1
- package/dist/common/schema/serialize.mjs.map +1 -1
- package/dist/common/schema/type-test.mjs +1 -1
- package/dist/common/schema/utils.cjs +25 -1
- package/dist/common/schema/utils.cjs.map +1 -1
- package/dist/common/schema/utils.mjs +19 -1
- package/dist/common/schema/utils.mjs.map +1 -1
- package/dist/common/schema/z-collection.cjs +51 -1
- package/dist/common/schema/z-collection.mjs +27 -1
- package/dist/common/schema/z.cjs +9 -1
- package/dist/common/schema/z.mjs +3 -1
- package/dist/common/storage/index.cjs +4 -1
- package/dist/common/storage/index.mjs +3 -1
- package/dist/common/storage/memstorage.cjs +26 -1
- package/dist/common/storage/memstorage.cjs.map +1 -1
- package/dist/common/storage/memstorage.mjs +25 -1
- package/dist/common/storage/memstorage.mjs.map +1 -1
- package/dist/common/test.cjs +14 -1
- package/dist/common/test.cjs.map +1 -1
- package/dist/common/test.mjs +13 -1
- package/dist/common/test.mjs.map +1 -1
- package/dist/common/time.cjs +220 -1
- package/dist/common/time.cjs.map +1 -1
- package/dist/common/time.mjs +194 -1
- package/dist/common/time.mjs.map +1 -1
- package/dist/common/timeout.cjs +27 -1
- package/dist/common/timeout.cjs.map +1 -1
- package/dist/common/timeout.mjs +25 -1
- package/dist/common/timeout.mjs.map +1 -1
- package/dist/common/types.mjs +1 -1
- package/dist/common/utils.cjs +7 -1
- package/dist/common/utils.cjs.map +1 -1
- package/dist/common/utils.mjs +5 -1
- package/dist/common/utils.mjs.map +1 -1
- package/dist/common/uuid.cjs +307 -1
- package/dist/common/uuid.cjs.map +1 -1
- package/dist/common/uuid.mjs +284 -1
- package/dist/common/uuid.mjs.map +1 -1
- package/dist/{index-DHXVOH8h.d.cts → index-CFkMqHvX.d.cts} +1 -2
- package/dist/{index-DMaPyx9O.d.mts → index-C_3Y_s6f.d.mts} +1 -2
- package/dist/index.all.cjs +641 -1
- package/dist/index.all.d.cts +1 -1
- package/dist/index.all.d.mts +1 -1
- package/dist/index.all.mjs +113 -1
- package/dist/index.browser.cjs +576 -1
- package/dist/index.browser.d.cts +1 -1
- package/dist/index.browser.d.mts +1 -1
- package/dist/index.browser.mjs +98 -1
- package/dist/index.jsr.cjs +57 -1
- package/dist/index.jsr.mjs +6 -1
- package/dist/index.node.cjs +628 -1
- package/dist/index.node.d.cts +1 -1
- package/dist/index.node.d.mts +1 -1
- package/dist/index.node.mjs +106 -1
- package/dist/node/args.cjs +56 -1
- package/dist/node/args.cjs.map +1 -1
- package/dist/node/args.mjs +53 -1
- package/dist/node/args.mjs.map +1 -1
- package/dist/node/clipboard.cjs +18 -1
- package/dist/node/clipboard.cjs.map +1 -1
- package/dist/node/clipboard.mjs +16 -1
- package/dist/node/clipboard.mjs.map +1 -1
- package/dist/node/crypto.cjs +28 -1
- package/dist/node/crypto.cjs.map +1 -1
- package/dist/node/crypto.mjs +24 -1
- package/dist/node/crypto.mjs.map +1 -1
- package/dist/node/env.cjs +100 -4
- package/dist/node/env.cjs.map +1 -1
- package/dist/node/env.mjs +90 -4
- package/dist/node/env.mjs.map +1 -1
- package/dist/node/files-async.cjs +66 -1
- package/dist/node/files-async.cjs.map +1 -1
- package/dist/node/files-async.mjs +60 -1
- package/dist/node/files-async.mjs.map +1 -1
- package/dist/node/files.cjs +52 -1
- package/dist/node/files.cjs.map +1 -1
- package/dist/node/files.mjs +46 -1
- package/dist/node/files.mjs.map +1 -1
- package/dist/node/filestorage.cjs +100 -1
- package/dist/node/filestorage.cjs.map +1 -1
- package/dist/node/filestorage.mjs +97 -1
- package/dist/node/filestorage.mjs.map +1 -1
- package/dist/node/fs.cjs +119 -1
- package/dist/node/fs.cjs.map +1 -1
- package/dist/node/fs.mjs +101 -1
- package/dist/node/fs.mjs.map +1 -1
- package/dist/node/glob.cjs +75 -1
- package/dist/node/glob.cjs.map +1 -1
- package/dist/node/glob.mjs +73 -1
- package/dist/node/glob.mjs.map +1 -1
- package/dist/node/index.cjs +66 -1
- package/dist/node/index.mjs +16 -1
- package/dist/node/log/index.cjs +20 -1
- package/dist/node/log/index.mjs +7 -1
- package/dist/node/log/log-context-node.cjs +39 -1
- package/dist/node/log/log-context-node.cjs.map +1 -1
- package/dist/node/log/log-context-node.mjs +35 -1
- package/dist/node/log/log-context-node.mjs.map +1 -1
- package/dist/node/log/log-file-rotation.cjs +71 -1
- package/dist/node/log/log-file-rotation.cjs.map +1 -1
- package/dist/node/log/log-file-rotation.mjs +68 -1
- package/dist/node/log/log-file-rotation.mjs.map +1 -1
- package/dist/node/log/log-file.cjs +57 -1
- package/dist/node/log/log-file.cjs.map +1 -1
- package/dist/node/log/log-file.mjs +54 -1
- package/dist/node/log/log-file.mjs.map +1 -1
- package/dist/node/log/log-node.cjs +162 -1
- package/dist/node/log/log-node.cjs.map +1 -1
- package/dist/node/log/log-node.mjs +155 -1
- package/dist/node/log/log-node.mjs.map +1 -1
- package/dist/node/log/log-rotation.cjs +543 -3
- package/dist/node/log/log-rotation.cjs.map +1 -1
- package/dist/node/log/log-rotation.mjs +538 -3
- package/dist/node/log/log-rotation.mjs.map +1 -1
- package/dist/node/log/log-util.cjs +69 -3
- package/dist/node/log/log-util.cjs.map +1 -1
- package/dist/node/log/log-util.mjs +63 -3
- package/dist/node/log/log-util.mjs.map +1 -1
- package/dist/node/open-browser.cjs +20 -1
- package/dist/node/open-browser.cjs.map +1 -1
- package/dist/node/open-browser.mjs +18 -1
- package/dist/node/open-browser.mjs.map +1 -1
- package/package.json +15 -15
- package/src/common/schema/README.md +247 -66
- package/src/eslint-defaults.js +4 -0
- package/src/index.spec.ts +6 -6
- package/dist/bin-Ce3i6ABn.cjs +0 -3
- package/dist/bin-SPdenYkw.mjs +0 -3
- package/dist/chunk-0Lt9GpW0.mjs +0 -1
- package/dist/chunk-D-qHiVGv.cjs +0 -1
- 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":"
|
|
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
|
|
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":"
|
|
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,
|
|
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":"
|
|
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
|
|
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":"
|
|
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,
|
|
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":"
|
|
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":";;;;;;;;;;;;;;AAUA,SAAS,iBAA0B;AACjC,KAAI;AACF,SAAOA,2CAAeC,qBAAQ,IAAI,YAAYC,iBAAI,OAAOD,qBAAQ,OAAO,GAAG,CAAC;UAEvE,KAAK;AACZ,QAAO;;AAGT,IAAI;AAEJ,MAAM,SAAS;CAAC;CAAG;CAAG;CAAG;CAAG;CAAG;CAAE;AAEjC,SAAS,sBAAsB,WAAmB;CAChD,IAAI,OAAO;AACX,MAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,UAAQ,QAAQ,KAAK,OAAO,UAAU,WAAW,EAAE;AACnD,UAAQ;;AAEV,QAAO,OAAO,KAAK,IAAI,KAAK,GAAG,OAAO;;AAGxC,MAAM,aAAkC,EAAE;AAE1C,IAAI;AAEJ,SAAS,IAAI,GAAG,MAAa;AAC3B,sBAAQ,OAAO,MAAM,GAAGE,2CAAe,KAAK,CAAC,IAAI;;AAenD,MAAM,YAAY;CAChB,MAAM;CACN,QAAQ;CACR,KAAK;CACL,OAAO;CACP,MAAM;CACN,QAAQ;CACR,MAAM;CACN,QAAQ;CACR,SAAS;CACV;AAED,IAAK,QAAL;AACE;AACA;AACA;AACA;AACA;AACA;;EANG,YAOJ;AAED,MAAM,WAAW;AAEjB,SAAgB,YAAY,MAAc,WAAmB;AAI3D,QAAO,GAHY,cAAc,MAAM,SACnC,UAAU,SACV,WAAW,YAAY,IAAI,YAAY,OAAO,YAAY,KACvC,OAAO;;AAGhC,SAAgB,gBACd,MACA,OACA,OAAO,MACP;AACA,QAAO,KAAK,KAAK,UAAU;AACzB,MAAI,OAAO,UAAU,SACnB,QAAO;EACT,IAAI,QAAQ;EACZ,IAAI,MAAM;AACV,MAAI,MAAM;AACR,WAAQ,GAAG,UAAU,OAAO;AAC5B,SAAM,GAAG,MAAM,UAAU;;AAE3B,SAAO,GAAG,QAAQ,QAAQ;GAC1B;;AAGJ,SAAS,iBAA0B;AACjC,KAAI;AACF,SAAOH,2CAAeC,qBAAQ,IAAI,YAAY,MAAM;UAE/C,KAAK;AACZ,QAAO;;AAGT,IAAI;AAEJ,MAAa,wBAAwB;AAErC,SAAgB,kBAAkB,MAAyB,EAAE,EAAc;AACzE,qBAAoB,gBAAgB;AAEpC,qBAAoB,gBAAgB;AAEpC,eAAcG,kCAAc;CAE5B,MAAM,EACJ,QAAQ,QACR,SAAS,QACT,SAAS,iBACT,cAAc,MACd,eAAe,MACf,UAAU,GACV,OAAO,GACP,QAAQ,iBACR,OAAO,SACL;CACJ,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;EACF,MAAM,UAAUF,kCAAc;EAC9B,MAAM,OAAO,IAAI,QAAQ;EACzB,IAAI,QAAQ,WAAW,QAAQ;AAC/B,MAAI,SAAS,MAAM;AACjB,WAAQ,EACN,OAAO,sBAAsB,KAAK,EAEnC;AACD,cAAW,QAAQ;;EAErB,MAAM,iBAAiBG,uCAAmB,UAAU,UAAW;EAE/D,IAAI;EAEJ,IAAI,cAAc,eAAe,IAAI,KAAK,KAAK;AAE/C,MAAI,UAAU,EACZ,eAAc,YAAY,SAAS,SAAS,IAAI;AAElD,MAAI,OAAO,EACT,eAAc,YAAY,OAAO,MAAM,IAAI;AAE7C,MAAI,QAAQ;GACV,MAAM,IAAI,MAAM;AAChB,UAAO,CAAC,GAAG,YAAY,aAAa,EAAE,CAAC,KAAK;AAC5C,OAAI,IAAI,YACN,MAAK,KAAK,GAAG,gBAAgB,IAAI,UAAU,UAAU,OAAO,CAAC;YACtD,IAAI,YACX,MAAK,KAAK,GAAG,gBAAgB,IAAI,UAAU,UAAU,IAAI,CAAC;OAE1D,MAAK,KAAK,GAAG,IAAI,SAAS;AAC5B,OAAI,KACF,MAAK,KAAK,YAAY,IAAI,kBAAkB,EAAE,CAAC;SAE9C;AACH,UAAO,CAAC,aAAa,GAAG,IAAI,SAAS;AACrC,OAAI,KACF,MAAK,KAAK,IAAI,iBAAiB;;AAGnC,MAAI,IAAI,WAAW,wEACjB,KAAI;AAEF,WAAQ,IAAIC,oCAAU,CAAC;WAElB,KAAK;AAId,MAAI,OAAO;GACT,IAAI,OAAO;AACX,OAAI,OAAO,UAAU,WAAW;AAC9B,WAAOC,8DACL;KAAC;KAAgB;KAAiB;KAAW,EAC7C,KACD;AACD,QAAI,CAAC,KACH,QAAOC,4CAAkB,GAAG,KAAK;SAInC,QAAOA,4CADO,OAAO,UAAU,WAAW,QAAQ,GAClB,KAAK;AAEvC,OAAI,KACF,MAAK,KAAK,YAAY,IAAI,KAAK,IAAI,MAAM,KAAK,CAAC;;EAGnD,MAAM,MAAM;EACZ,MAAM,YAAY;AAElB,UAAQ,IAAI,OAAZ;GACE;AACE,QAAI,YACF,MAAK,KAAK,IAAI,MAAM,UAAU,KAAK,KAAK;AAC1C,QAAI,GAAG,KAAK;AACZ;GACF;AACE,QAAI,YACF,MAAK,MAAM,SACP,YAAY,IAAI,MAAM,YAAY,UAAU,KAAK,MAAM,OAAO,GAC9D,IAAI,MAAM,YAAY,UAAU,OAAO,KAAK;AAElD,QAAI,GAAG,KAAK;AACZ;GACF;AACE,QAAI,YACF,MAAK,MAAM,SACP,YAAY,IAAI,MAAM,YAAY,YAAY,UAAU,IAAI,MAAM,IAAI,GACtE,IAAI,MAAM,YAAY,YAAY,UAAU,MAAM,KAAK;AAE7D,QAAI,GAAG,KAAK;AACZ;GACF;AACE,QAAI,YACF,MAAK,KAAK,IAAI,IAAI,MAAM,KAAK;AAC/B,QAAI,GAAG,KAAK;AACZ"}
|