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":"message.cjs","names":["Uint8ArrayToHexDump","ensureUint8Array","objectPlain","isArray"],"sources":["../../../src/common/data/message.ts"],"sourcesContent":["import { ensureUint8Array, Uint8ArrayToHexDump } from './bin'\nimport { isArray } from './is'\nimport { objectPlain } from './object'\n\nexport interface RenderMessagesOptions {\n trace?: boolean // = true\n pretty?: boolean // = true\n}\n\nexport function formatMessages(\n messages: any[],\n opt: RenderMessagesOptions = {},\n): any[] {\n const { trace = true, pretty = true } = opt\n return messages.map((obj) => {\n if (obj && typeof obj === 'object') {\n if (pretty && (obj instanceof Uint8Array || obj instanceof ArrayBuffer))\n return `\\n${Uint8ArrayToHexDump(ensureUint8Array(obj instanceof ArrayBuffer ? new Uint8Array(obj) : obj))}\\n`\n \n if (obj instanceof Error) {\n return `${obj.name}: ${obj.message}` + (trace ? `\\n${obj.stack}` : '')\n }\n if (typeof ErrorEvent !== 'undefined' && obj instanceof ErrorEvent) {\n return `${obj.error.name || 'ErrorEvent'}: ${obj.error.message}` + (trace ? `\\n${obj.error.stack}` : '')\n }\n if (typeof DOMException !== 'undefined' && obj instanceof DOMException) {\n return `${obj.name || 'DOMException'}: ${obj.message}` + (trace ? `\\n${obj.stack}` : '')\n }\n if (obj && typeof obj === 'object' && 'reason' in obj) {\n return `PromiseRejection ${obj.type}: ${obj.reason}` + (trace ? `\\n${obj.stack}` : '')\n }\n \n try {\n obj = objectPlain(obj)\n return pretty ? JSON.stringify(obj, null, 2) : JSON.stringify(obj)\n }\n catch (err) {}\n }\n return String(obj)\n })\n}\n\nexport function renderMessages(\n messages: any | any[],\n opt: RenderMessagesOptions = {},\n): string {\n return formatMessages(isArray(messages) ? messages : [messages], opt).join(' ')\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"message.cjs","names":["Uint8ArrayToHexDump","ensureUint8Array","objectPlain","isArray"],"sources":["../../../src/common/data/message.ts"],"sourcesContent":["import { ensureUint8Array, Uint8ArrayToHexDump } from './bin'\nimport { isArray } from './is'\nimport { objectPlain } from './object'\n\nexport interface RenderMessagesOptions {\n trace?: boolean // = true\n pretty?: boolean // = true\n}\n\nexport function formatMessages(\n messages: any[],\n opt: RenderMessagesOptions = {},\n): any[] {\n const { trace = true, pretty = true } = opt\n return messages.map((obj) => {\n if (obj && typeof obj === 'object') {\n if (pretty && (obj instanceof Uint8Array || obj instanceof ArrayBuffer))\n return `\\n${Uint8ArrayToHexDump(ensureUint8Array(obj instanceof ArrayBuffer ? new Uint8Array(obj) : obj))}\\n`\n \n if (obj instanceof Error) {\n return `${obj.name}: ${obj.message}` + (trace ? `\\n${obj.stack}` : '')\n }\n if (typeof ErrorEvent !== 'undefined' && obj instanceof ErrorEvent) {\n return `${obj.error.name || 'ErrorEvent'}: ${obj.error.message}` + (trace ? `\\n${obj.error.stack}` : '')\n }\n if (typeof DOMException !== 'undefined' && obj instanceof DOMException) {\n return `${obj.name || 'DOMException'}: ${obj.message}` + (trace ? `\\n${obj.stack}` : '')\n }\n if (obj && typeof obj === 'object' && 'reason' in obj) {\n return `PromiseRejection ${obj.type}: ${obj.reason}` + (trace ? `\\n${obj.stack}` : '')\n }\n \n try {\n obj = objectPlain(obj)\n return pretty ? JSON.stringify(obj, null, 2) : JSON.stringify(obj)\n }\n catch (err) {}\n }\n return String(obj)\n })\n}\n\nexport function renderMessages(\n messages: any | any[],\n opt: RenderMessagesOptions = {},\n): string {\n return formatMessages(isArray(messages) ? messages : [messages], opt).join(' ')\n}\n"],"mappings":";;;;;;AASA,SAAgB,eACd,UACA,MAA6B,EAAE,EACxB;CACP,MAAM,EAAE,QAAQ,MAAM,SAAS,SAAS;AACxC,QAAO,SAAS,KAAK,QAAQ;AAC3B,MAAI,OAAO,OAAO,QAAQ,UAAU;AAClC,OAAI,WAAW,eAAe,cAAc,eAAe,aACzD,QAAO,KAAKA,gCAAoBC,6BAAiB,eAAe,cAAc,IAAI,WAAW,IAAI,GAAG,IAAI,CAAC,CAAC;AAE5G,OAAI,eAAe,MACjB,QAAO,GAAG,IAAI,KAAK,IAAI,IAAI,aAAa,QAAQ,KAAK,IAAI,UAAU;AAErE,OAAI,OAAO,eAAe,eAAe,eAAe,WACtD,QAAO,GAAG,IAAI,MAAM,QAAQ,aAAa,IAAI,IAAI,MAAM,aAAa,QAAQ,KAAK,IAAI,MAAM,UAAU;AAEvG,OAAI,OAAO,iBAAiB,eAAe,eAAe,aACxD,QAAO,GAAG,IAAI,QAAQ,eAAe,IAAI,IAAI,aAAa,QAAQ,KAAK,IAAI,UAAU;AAEvF,OAAI,OAAO,OAAO,QAAQ,YAAY,YAAY,IAChD,QAAO,oBAAoB,IAAI,KAAK,IAAI,IAAI,YAAY,QAAQ,KAAK,IAAI,UAAU;AAGrF,OAAI;AACF,UAAMC,uCAAY,IAAI;AACtB,WAAO,SAAS,KAAK,UAAU,KAAK,MAAM,EAAE,GAAG,KAAK,UAAU,IAAI;YAE7D,KAAK;;AAEd,SAAO,OAAO,IAAI;GAClB;;AAGJ,SAAgB,eACd,UACA,MAA6B,EAAE,EACvB;AACR,QAAO,eAAeC,+BAAQ,SAAS,GAAI,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI"}
|
|
@@ -1,2 +1,29 @@
|
|
|
1
|
-
import{isArray
|
|
1
|
+
import { isArray } from "./is.mjs";
|
|
2
|
+
import { o as ensureUint8Array, t as Uint8ArrayToHexDump } from "../../bin-BAoS4qtm.mjs";
|
|
3
|
+
import { objectPlain } from "./object.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/common/data/message.ts
|
|
6
|
+
function formatMessages(messages, opt = {}) {
|
|
7
|
+
const { trace = true, pretty = true } = opt;
|
|
8
|
+
return messages.map((obj) => {
|
|
9
|
+
if (obj && typeof obj === "object") {
|
|
10
|
+
if (pretty && (obj instanceof Uint8Array || obj instanceof ArrayBuffer)) return `\n${Uint8ArrayToHexDump(ensureUint8Array(obj instanceof ArrayBuffer ? new Uint8Array(obj) : obj))}\n`;
|
|
11
|
+
if (obj instanceof Error) return `${obj.name}: ${obj.message}` + (trace ? `\n${obj.stack}` : "");
|
|
12
|
+
if (typeof ErrorEvent !== "undefined" && obj instanceof ErrorEvent) return `${obj.error.name || "ErrorEvent"}: ${obj.error.message}` + (trace ? `\n${obj.error.stack}` : "");
|
|
13
|
+
if (typeof DOMException !== "undefined" && obj instanceof DOMException) return `${obj.name || "DOMException"}: ${obj.message}` + (trace ? `\n${obj.stack}` : "");
|
|
14
|
+
if (obj && typeof obj === "object" && "reason" in obj) return `PromiseRejection ${obj.type}: ${obj.reason}` + (trace ? `\n${obj.stack}` : "");
|
|
15
|
+
try {
|
|
16
|
+
obj = objectPlain(obj);
|
|
17
|
+
return pretty ? JSON.stringify(obj, null, 2) : JSON.stringify(obj);
|
|
18
|
+
} catch (err) {}
|
|
19
|
+
}
|
|
20
|
+
return String(obj);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function renderMessages(messages, opt = {}) {
|
|
24
|
+
return formatMessages(isArray(messages) ? messages : [messages], opt).join(" ");
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
//#endregion
|
|
28
|
+
export { formatMessages, renderMessages };
|
|
2
29
|
//# sourceMappingURL=message.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.mjs","names":[],"sources":["../../../src/common/data/message.ts"],"sourcesContent":["import { ensureUint8Array, Uint8ArrayToHexDump } from './bin'\nimport { isArray } from './is'\nimport { objectPlain } from './object'\n\nexport interface RenderMessagesOptions {\n trace?: boolean // = true\n pretty?: boolean // = true\n}\n\nexport function formatMessages(\n messages: any[],\n opt: RenderMessagesOptions = {},\n): any[] {\n const { trace = true, pretty = true } = opt\n return messages.map((obj) => {\n if (obj && typeof obj === 'object') {\n if (pretty && (obj instanceof Uint8Array || obj instanceof ArrayBuffer))\n return `\\n${Uint8ArrayToHexDump(ensureUint8Array(obj instanceof ArrayBuffer ? new Uint8Array(obj) : obj))}\\n`\n \n if (obj instanceof Error) {\n return `${obj.name}: ${obj.message}` + (trace ? `\\n${obj.stack}` : '')\n }\n if (typeof ErrorEvent !== 'undefined' && obj instanceof ErrorEvent) {\n return `${obj.error.name || 'ErrorEvent'}: ${obj.error.message}` + (trace ? `\\n${obj.error.stack}` : '')\n }\n if (typeof DOMException !== 'undefined' && obj instanceof DOMException) {\n return `${obj.name || 'DOMException'}: ${obj.message}` + (trace ? `\\n${obj.stack}` : '')\n }\n if (obj && typeof obj === 'object' && 'reason' in obj) {\n return `PromiseRejection ${obj.type}: ${obj.reason}` + (trace ? `\\n${obj.stack}` : '')\n }\n \n try {\n obj = objectPlain(obj)\n return pretty ? JSON.stringify(obj, null, 2) : JSON.stringify(obj)\n }\n catch (err) {}\n }\n return String(obj)\n })\n}\n\nexport function renderMessages(\n messages: any | any[],\n opt: RenderMessagesOptions = {},\n): string {\n return formatMessages(isArray(messages) ? messages : [messages], opt).join(' ')\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"message.mjs","names":[],"sources":["../../../src/common/data/message.ts"],"sourcesContent":["import { ensureUint8Array, Uint8ArrayToHexDump } from './bin'\nimport { isArray } from './is'\nimport { objectPlain } from './object'\n\nexport interface RenderMessagesOptions {\n trace?: boolean // = true\n pretty?: boolean // = true\n}\n\nexport function formatMessages(\n messages: any[],\n opt: RenderMessagesOptions = {},\n): any[] {\n const { trace = true, pretty = true } = opt\n return messages.map((obj) => {\n if (obj && typeof obj === 'object') {\n if (pretty && (obj instanceof Uint8Array || obj instanceof ArrayBuffer))\n return `\\n${Uint8ArrayToHexDump(ensureUint8Array(obj instanceof ArrayBuffer ? new Uint8Array(obj) : obj))}\\n`\n \n if (obj instanceof Error) {\n return `${obj.name}: ${obj.message}` + (trace ? `\\n${obj.stack}` : '')\n }\n if (typeof ErrorEvent !== 'undefined' && obj instanceof ErrorEvent) {\n return `${obj.error.name || 'ErrorEvent'}: ${obj.error.message}` + (trace ? `\\n${obj.error.stack}` : '')\n }\n if (typeof DOMException !== 'undefined' && obj instanceof DOMException) {\n return `${obj.name || 'DOMException'}: ${obj.message}` + (trace ? `\\n${obj.stack}` : '')\n }\n if (obj && typeof obj === 'object' && 'reason' in obj) {\n return `PromiseRejection ${obj.type}: ${obj.reason}` + (trace ? `\\n${obj.stack}` : '')\n }\n \n try {\n obj = objectPlain(obj)\n return pretty ? JSON.stringify(obj, null, 2) : JSON.stringify(obj)\n }\n catch (err) {}\n }\n return String(obj)\n })\n}\n\nexport function renderMessages(\n messages: any | any[],\n opt: RenderMessagesOptions = {},\n): string {\n return formatMessages(isArray(messages) ? messages : [messages], opt).join(' ')\n}\n"],"mappings":";;;;;AASA,SAAgB,eACd,UACA,MAA6B,EAAE,EACxB;CACP,MAAM,EAAE,QAAQ,MAAM,SAAS,SAAS;AACxC,QAAO,SAAS,KAAK,QAAQ;AAC3B,MAAI,OAAO,OAAO,QAAQ,UAAU;AAClC,OAAI,WAAW,eAAe,cAAc,eAAe,aACzD,QAAO,KAAK,oBAAoB,iBAAiB,eAAe,cAAc,IAAI,WAAW,IAAI,GAAG,IAAI,CAAC,CAAC;AAE5G,OAAI,eAAe,MACjB,QAAO,GAAG,IAAI,KAAK,IAAI,IAAI,aAAa,QAAQ,KAAK,IAAI,UAAU;AAErE,OAAI,OAAO,eAAe,eAAe,eAAe,WACtD,QAAO,GAAG,IAAI,MAAM,QAAQ,aAAa,IAAI,IAAI,MAAM,aAAa,QAAQ,KAAK,IAAI,MAAM,UAAU;AAEvG,OAAI,OAAO,iBAAiB,eAAe,eAAe,aACxD,QAAO,GAAG,IAAI,QAAQ,eAAe,IAAI,IAAI,aAAa,QAAQ,KAAK,IAAI,UAAU;AAEvF,OAAI,OAAO,OAAO,QAAQ,YAAY,YAAY,IAChD,QAAO,oBAAoB,IAAI,KAAK,IAAI,IAAI,YAAY,QAAQ,KAAK,IAAI,UAAU;AAGrF,OAAI;AACF,UAAM,YAAY,IAAI;AACtB,WAAO,SAAS,KAAK,UAAU,KAAK,MAAM,EAAE,GAAG,KAAK,UAAU,IAAI;YAE7D,KAAK;;AAEd,SAAO,OAAO,IAAI;GAClB;;AAGJ,SAAgB,eACd,UACA,MAA6B,EAAE,EACvB;AACR,QAAO,eAAe,QAAQ,SAAS,GAAI,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI"}
|
|
@@ -1,2 +1,67 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_common_data_utils = require('./utils.cjs');
|
|
3
|
+
const require_common_data_is = require('./is.cjs');
|
|
4
|
+
const require_common_data_array = require('./array.cjs');
|
|
5
|
+
const require_common_data_deep = require('./deep.cjs');
|
|
6
|
+
|
|
7
|
+
//#region src/common/data/object-changes.ts
|
|
8
|
+
/**
|
|
9
|
+
* Selective in place update, as minimal as possible.
|
|
10
|
+
* Ideal for reactive objects lie Vue's `reactive`.
|
|
11
|
+
*/
|
|
12
|
+
function objectAssignDeepInPlace(toObject, fromObject) {
|
|
13
|
+
if (require_common_data_is.isRecord(toObject) && require_common_data_is.isRecord(fromObject)) {
|
|
14
|
+
const fromKeys = Object.keys(fromObject);
|
|
15
|
+
for (const key of require_common_data_array.arrayMinus(Object.keys(toObject), fromKeys)) delete toObject[key];
|
|
16
|
+
for (const key of fromKeys) {
|
|
17
|
+
const from = fromObject[key];
|
|
18
|
+
const to = toObject[key];
|
|
19
|
+
if (require_common_data_is.isRecord(from)) if (require_common_data_is.isRecord(to)) objectAssignDeepInPlace(to, from);
|
|
20
|
+
else toObject[key] = require_common_data_utils.cloneObject(from);
|
|
21
|
+
else if (from !== to) toObject[key] = from;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return toObject;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create a minimal change set. Results in a new object, with only the
|
|
28
|
+
* new or changed entries. Deleted entries are marked by value `null`.
|
|
29
|
+
*/
|
|
30
|
+
function objectDescribeChange(fromObject, toObject) {
|
|
31
|
+
const change = {};
|
|
32
|
+
for (const key of require_common_data_array.arrayMinus(Object.keys(fromObject), Object.keys(toObject))) change[key] = null;
|
|
33
|
+
for (const [key, value] of Object.entries(toObject)) {
|
|
34
|
+
const from = fromObject[key];
|
|
35
|
+
if (require_common_data_is.isRecord(value)) {
|
|
36
|
+
const subChange = objectDescribeChange(from ?? {}, value);
|
|
37
|
+
if (subChange != null) change[key] = subChange;
|
|
38
|
+
} else if (!(value == null && from == null)) {
|
|
39
|
+
if (!require_common_data_deep.deepEqual(value, from)) change[key] = value == null ? null : value;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return Object.keys(change).length > 0 ? change : void 0;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Apply the description of changes created by `objectDescribeChange` to the object.
|
|
46
|
+
*/
|
|
47
|
+
function objectAssignDescriptionInPlace(toObject, fromObject) {
|
|
48
|
+
if (require_common_data_is.isRecord(toObject) && require_common_data_is.isRecord(fromObject)) {
|
|
49
|
+
const fromKeys = Object.keys(fromObject);
|
|
50
|
+
for (const key of fromKeys) {
|
|
51
|
+
const from = fromObject[key];
|
|
52
|
+
const to = toObject[key];
|
|
53
|
+
if (from === null) {
|
|
54
|
+
if (to != null) delete toObject[key];
|
|
55
|
+
} else if (require_common_data_is.isRecord(from)) if (require_common_data_is.isRecord(to)) objectAssignDescriptionInPlace(to, from);
|
|
56
|
+
else toObject[key] = require_common_data_utils.cloneObject(from);
|
|
57
|
+
else if (from !== to) toObject[key] = from;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return toObject;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
//#endregion
|
|
64
|
+
exports.objectAssignDeepInPlace = objectAssignDeepInPlace;
|
|
65
|
+
exports.objectAssignDescriptionInPlace = objectAssignDescriptionInPlace;
|
|
66
|
+
exports.objectDescribeChange = objectDescribeChange;
|
|
2
67
|
//# sourceMappingURL=object-changes.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-changes.cjs","names":["isRecord","arrayMinus","cloneObject","deepEqual"],"sources":["../../../src/common/data/object-changes.ts"],"sourcesContent":["import { arrayMinus } from './array'\nimport { deepEqual } from './deep'\nimport { isRecord } from './is'\nimport { cloneObject } from './utils'\n\n/**\n * Selective in place update, as minimal as possible.\n * Ideal for reactive objects lie Vue's `reactive`.\n */\nexport function objectAssignDeepInPlace(toObject: any, fromObject: any) {\n if (isRecord(toObject) && isRecord(fromObject)) {\n // Remove not existing ones\n const fromKeys = Object.keys(fromObject)\n for (const key of arrayMinus(Object.keys(toObject), fromKeys))\n delete toObject[key]\n\n // Changes\n for (const key of fromKeys) {\n const from = fromObject[key]\n const to = toObject[key]\n if (isRecord(from)) {\n if (isRecord(to))\n objectAssignDeepInPlace(to, from)\n else\n toObject[key] = cloneObject(from)\n }\n else if (from !== to) {\n toObject[key] = from\n }\n }\n }\n return toObject\n}\n\n/**\n * Create a minimal change set. Results in a new object, with only the\n * new or changed entries. Deleted entries are marked by value `null`.\n */\nexport function objectDescribeChange(fromObject: any, toObject: any): any {\n const change: any = {}\n\n // Deleted attributes\n for (const key of arrayMinus(Object.keys(fromObject), Object.keys(toObject)))\n change[key] = null\n\n // Changes\n for (const [key, value] of Object.entries(toObject)) {\n const from = fromObject[key]\n if (isRecord(value)) {\n const subChange = objectDescribeChange(from ?? {}, value)\n if (subChange != null)\n change[key] = subChange\n }\n else if (!(value == null && from == null)) {\n if (!deepEqual(value, from))\n change[key] = value == null ? null : value // avoid undefined\n }\n }\n\n return Object.keys(change).length > 0 ? change : undefined\n}\n\n/**\n * Apply the description of changes created by `objectDescribeChange` to the object.\n */\nexport function objectAssignDescriptionInPlace(toObject: any, fromObject: any) {\n if (isRecord(toObject) && isRecord(fromObject)) {\n const fromKeys = Object.keys(fromObject) \n for (const key of fromKeys) {\n const from = fromObject[key]\n const to = toObject[key]\n if (from === null) {\n if (to != null) {\n delete toObject[key]\n }\n }\n else if (isRecord(from)) {\n if (isRecord(to))\n objectAssignDescriptionInPlace(to, from)\n else\n toObject[key] = cloneObject(from)\n }\n else if (from !== to) {\n toObject[key] = from\n }\n }\n }\n return toObject\n}\n\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"object-changes.cjs","names":["isRecord","arrayMinus","cloneObject","deepEqual"],"sources":["../../../src/common/data/object-changes.ts"],"sourcesContent":["import { arrayMinus } from './array'\nimport { deepEqual } from './deep'\nimport { isRecord } from './is'\nimport { cloneObject } from './utils'\n\n/**\n * Selective in place update, as minimal as possible.\n * Ideal for reactive objects lie Vue's `reactive`.\n */\nexport function objectAssignDeepInPlace(toObject: any, fromObject: any) {\n if (isRecord(toObject) && isRecord(fromObject)) {\n // Remove not existing ones\n const fromKeys = Object.keys(fromObject)\n for (const key of arrayMinus(Object.keys(toObject), fromKeys))\n delete toObject[key]\n\n // Changes\n for (const key of fromKeys) {\n const from = fromObject[key]\n const to = toObject[key]\n if (isRecord(from)) {\n if (isRecord(to))\n objectAssignDeepInPlace(to, from)\n else\n toObject[key] = cloneObject(from)\n }\n else if (from !== to) {\n toObject[key] = from\n }\n }\n }\n return toObject\n}\n\n/**\n * Create a minimal change set. Results in a new object, with only the\n * new or changed entries. Deleted entries are marked by value `null`.\n */\nexport function objectDescribeChange(fromObject: any, toObject: any): any {\n const change: any = {}\n\n // Deleted attributes\n for (const key of arrayMinus(Object.keys(fromObject), Object.keys(toObject)))\n change[key] = null\n\n // Changes\n for (const [key, value] of Object.entries(toObject)) {\n const from = fromObject[key]\n if (isRecord(value)) {\n const subChange = objectDescribeChange(from ?? {}, value)\n if (subChange != null)\n change[key] = subChange\n }\n else if (!(value == null && from == null)) {\n if (!deepEqual(value, from))\n change[key] = value == null ? null : value // avoid undefined\n }\n }\n\n return Object.keys(change).length > 0 ? change : undefined\n}\n\n/**\n * Apply the description of changes created by `objectDescribeChange` to the object.\n */\nexport function objectAssignDescriptionInPlace(toObject: any, fromObject: any) {\n if (isRecord(toObject) && isRecord(fromObject)) {\n const fromKeys = Object.keys(fromObject) \n for (const key of fromKeys) {\n const from = fromObject[key]\n const to = toObject[key]\n if (from === null) {\n if (to != null) {\n delete toObject[key]\n }\n }\n else if (isRecord(from)) {\n if (isRecord(to))\n objectAssignDescriptionInPlace(to, from)\n else\n toObject[key] = cloneObject(from)\n }\n else if (from !== to) {\n toObject[key] = from\n }\n }\n }\n return toObject\n}\n\n"],"mappings":";;;;;;;;;;;AASA,SAAgB,wBAAwB,UAAe,YAAiB;AACtE,KAAIA,gCAAS,SAAS,IAAIA,gCAAS,WAAW,EAAE;EAE9C,MAAM,WAAW,OAAO,KAAK,WAAW;AACxC,OAAK,MAAM,OAAOC,qCAAW,OAAO,KAAK,SAAS,EAAE,SAAS,CAC3D,QAAO,SAAS;AAGlB,OAAK,MAAM,OAAO,UAAU;GAC1B,MAAM,OAAO,WAAW;GACxB,MAAM,KAAK,SAAS;AACpB,OAAID,gCAAS,KAAK,CAChB,KAAIA,gCAAS,GAAG,CACd,yBAAwB,IAAI,KAAK;OAEjC,UAAS,OAAOE,sCAAY,KAAK;YAE5B,SAAS,GAChB,UAAS,OAAO;;;AAItB,QAAO;;;;;;AAOT,SAAgB,qBAAqB,YAAiB,UAAoB;CACxE,MAAM,SAAc,EAAE;AAGtB,MAAK,MAAM,OAAOD,qCAAW,OAAO,KAAK,WAAW,EAAE,OAAO,KAAK,SAAS,CAAC,CAC1E,QAAO,OAAO;AAGhB,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,SAAS,EAAE;EACnD,MAAM,OAAO,WAAW;AACxB,MAAID,gCAAS,MAAM,EAAE;GACnB,MAAM,YAAY,qBAAqB,QAAQ,EAAE,EAAE,MAAM;AACzD,OAAI,aAAa,KACf,QAAO,OAAO;aAET,EAAE,SAAS,QAAQ,QAAQ,OAClC;OAAI,CAACG,mCAAU,OAAO,KAAK,CACzB,QAAO,OAAO,SAAS,OAAO,OAAO;;;AAI3C,QAAO,OAAO,KAAK,OAAO,CAAC,SAAS,IAAI,SAAS;;;;;AAMnD,SAAgB,+BAA+B,UAAe,YAAiB;AAC7E,KAAIH,gCAAS,SAAS,IAAIA,gCAAS,WAAW,EAAE;EAC9C,MAAM,WAAW,OAAO,KAAK,WAAW;AACxC,OAAK,MAAM,OAAO,UAAU;GAC1B,MAAM,OAAO,WAAW;GACxB,MAAM,KAAK,SAAS;AACpB,OAAI,SAAS,MACX;QAAI,MAAM,KACR,QAAO,SAAS;cAGXA,gCAAS,KAAK,CACrB,KAAIA,gCAAS,GAAG,CACd,gCAA+B,IAAI,KAAK;OAExC,UAAS,OAAOE,sCAAY,KAAK;YAE5B,SAAS,GAChB,UAAS,OAAO;;;AAItB,QAAO"}
|
|
@@ -1,2 +1,64 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { cloneObject } from "./utils.mjs";
|
|
2
|
+
import { isRecord } from "./is.mjs";
|
|
3
|
+
import { arrayMinus } from "./array.mjs";
|
|
4
|
+
import { deepEqual } from "./deep.mjs";
|
|
5
|
+
|
|
6
|
+
//#region src/common/data/object-changes.ts
|
|
7
|
+
/**
|
|
8
|
+
* Selective in place update, as minimal as possible.
|
|
9
|
+
* Ideal for reactive objects lie Vue's `reactive`.
|
|
10
|
+
*/
|
|
11
|
+
function objectAssignDeepInPlace(toObject, fromObject) {
|
|
12
|
+
if (isRecord(toObject) && isRecord(fromObject)) {
|
|
13
|
+
const fromKeys = Object.keys(fromObject);
|
|
14
|
+
for (const key of arrayMinus(Object.keys(toObject), fromKeys)) delete toObject[key];
|
|
15
|
+
for (const key of fromKeys) {
|
|
16
|
+
const from = fromObject[key];
|
|
17
|
+
const to = toObject[key];
|
|
18
|
+
if (isRecord(from)) if (isRecord(to)) objectAssignDeepInPlace(to, from);
|
|
19
|
+
else toObject[key] = cloneObject(from);
|
|
20
|
+
else if (from !== to) toObject[key] = from;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return toObject;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Create a minimal change set. Results in a new object, with only the
|
|
27
|
+
* new or changed entries. Deleted entries are marked by value `null`.
|
|
28
|
+
*/
|
|
29
|
+
function objectDescribeChange(fromObject, toObject) {
|
|
30
|
+
const change = {};
|
|
31
|
+
for (const key of arrayMinus(Object.keys(fromObject), Object.keys(toObject))) change[key] = null;
|
|
32
|
+
for (const [key, value] of Object.entries(toObject)) {
|
|
33
|
+
const from = fromObject[key];
|
|
34
|
+
if (isRecord(value)) {
|
|
35
|
+
const subChange = objectDescribeChange(from ?? {}, value);
|
|
36
|
+
if (subChange != null) change[key] = subChange;
|
|
37
|
+
} else if (!(value == null && from == null)) {
|
|
38
|
+
if (!deepEqual(value, from)) change[key] = value == null ? null : value;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return Object.keys(change).length > 0 ? change : void 0;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Apply the description of changes created by `objectDescribeChange` to the object.
|
|
45
|
+
*/
|
|
46
|
+
function objectAssignDescriptionInPlace(toObject, fromObject) {
|
|
47
|
+
if (isRecord(toObject) && isRecord(fromObject)) {
|
|
48
|
+
const fromKeys = Object.keys(fromObject);
|
|
49
|
+
for (const key of fromKeys) {
|
|
50
|
+
const from = fromObject[key];
|
|
51
|
+
const to = toObject[key];
|
|
52
|
+
if (from === null) {
|
|
53
|
+
if (to != null) delete toObject[key];
|
|
54
|
+
} else if (isRecord(from)) if (isRecord(to)) objectAssignDescriptionInPlace(to, from);
|
|
55
|
+
else toObject[key] = cloneObject(from);
|
|
56
|
+
else if (from !== to) toObject[key] = from;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return toObject;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
//#endregion
|
|
63
|
+
export { objectAssignDeepInPlace, objectAssignDescriptionInPlace, objectDescribeChange };
|
|
2
64
|
//# sourceMappingURL=object-changes.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-changes.mjs","names":[],"sources":["../../../src/common/data/object-changes.ts"],"sourcesContent":["import { arrayMinus } from './array'\nimport { deepEqual } from './deep'\nimport { isRecord } from './is'\nimport { cloneObject } from './utils'\n\n/**\n * Selective in place update, as minimal as possible.\n * Ideal for reactive objects lie Vue's `reactive`.\n */\nexport function objectAssignDeepInPlace(toObject: any, fromObject: any) {\n if (isRecord(toObject) && isRecord(fromObject)) {\n // Remove not existing ones\n const fromKeys = Object.keys(fromObject)\n for (const key of arrayMinus(Object.keys(toObject), fromKeys))\n delete toObject[key]\n\n // Changes\n for (const key of fromKeys) {\n const from = fromObject[key]\n const to = toObject[key]\n if (isRecord(from)) {\n if (isRecord(to))\n objectAssignDeepInPlace(to, from)\n else\n toObject[key] = cloneObject(from)\n }\n else if (from !== to) {\n toObject[key] = from\n }\n }\n }\n return toObject\n}\n\n/**\n * Create a minimal change set. Results in a new object, with only the\n * new or changed entries. Deleted entries are marked by value `null`.\n */\nexport function objectDescribeChange(fromObject: any, toObject: any): any {\n const change: any = {}\n\n // Deleted attributes\n for (const key of arrayMinus(Object.keys(fromObject), Object.keys(toObject)))\n change[key] = null\n\n // Changes\n for (const [key, value] of Object.entries(toObject)) {\n const from = fromObject[key]\n if (isRecord(value)) {\n const subChange = objectDescribeChange(from ?? {}, value)\n if (subChange != null)\n change[key] = subChange\n }\n else if (!(value == null && from == null)) {\n if (!deepEqual(value, from))\n change[key] = value == null ? null : value // avoid undefined\n }\n }\n\n return Object.keys(change).length > 0 ? change : undefined\n}\n\n/**\n * Apply the description of changes created by `objectDescribeChange` to the object.\n */\nexport function objectAssignDescriptionInPlace(toObject: any, fromObject: any) {\n if (isRecord(toObject) && isRecord(fromObject)) {\n const fromKeys = Object.keys(fromObject) \n for (const key of fromKeys) {\n const from = fromObject[key]\n const to = toObject[key]\n if (from === null) {\n if (to != null) {\n delete toObject[key]\n }\n }\n else if (isRecord(from)) {\n if (isRecord(to))\n objectAssignDescriptionInPlace(to, from)\n else\n toObject[key] = cloneObject(from)\n }\n else if (from !== to) {\n toObject[key] = from\n }\n }\n }\n return toObject\n}\n\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"object-changes.mjs","names":[],"sources":["../../../src/common/data/object-changes.ts"],"sourcesContent":["import { arrayMinus } from './array'\nimport { deepEqual } from './deep'\nimport { isRecord } from './is'\nimport { cloneObject } from './utils'\n\n/**\n * Selective in place update, as minimal as possible.\n * Ideal for reactive objects lie Vue's `reactive`.\n */\nexport function objectAssignDeepInPlace(toObject: any, fromObject: any) {\n if (isRecord(toObject) && isRecord(fromObject)) {\n // Remove not existing ones\n const fromKeys = Object.keys(fromObject)\n for (const key of arrayMinus(Object.keys(toObject), fromKeys))\n delete toObject[key]\n\n // Changes\n for (const key of fromKeys) {\n const from = fromObject[key]\n const to = toObject[key]\n if (isRecord(from)) {\n if (isRecord(to))\n objectAssignDeepInPlace(to, from)\n else\n toObject[key] = cloneObject(from)\n }\n else if (from !== to) {\n toObject[key] = from\n }\n }\n }\n return toObject\n}\n\n/**\n * Create a minimal change set. Results in a new object, with only the\n * new or changed entries. Deleted entries are marked by value `null`.\n */\nexport function objectDescribeChange(fromObject: any, toObject: any): any {\n const change: any = {}\n\n // Deleted attributes\n for (const key of arrayMinus(Object.keys(fromObject), Object.keys(toObject)))\n change[key] = null\n\n // Changes\n for (const [key, value] of Object.entries(toObject)) {\n const from = fromObject[key]\n if (isRecord(value)) {\n const subChange = objectDescribeChange(from ?? {}, value)\n if (subChange != null)\n change[key] = subChange\n }\n else if (!(value == null && from == null)) {\n if (!deepEqual(value, from))\n change[key] = value == null ? null : value // avoid undefined\n }\n }\n\n return Object.keys(change).length > 0 ? change : undefined\n}\n\n/**\n * Apply the description of changes created by `objectDescribeChange` to the object.\n */\nexport function objectAssignDescriptionInPlace(toObject: any, fromObject: any) {\n if (isRecord(toObject) && isRecord(fromObject)) {\n const fromKeys = Object.keys(fromObject) \n for (const key of fromKeys) {\n const from = fromObject[key]\n const to = toObject[key]\n if (from === null) {\n if (to != null) {\n delete toObject[key]\n }\n }\n else if (isRecord(from)) {\n if (isRecord(to))\n objectAssignDescriptionInPlace(to, from)\n else\n toObject[key] = cloneObject(from)\n }\n else if (from !== to) {\n toObject[key] = from\n }\n }\n }\n return toObject\n}\n\n"],"mappings":";;;;;;;;;;AASA,SAAgB,wBAAwB,UAAe,YAAiB;AACtE,KAAI,SAAS,SAAS,IAAI,SAAS,WAAW,EAAE;EAE9C,MAAM,WAAW,OAAO,KAAK,WAAW;AACxC,OAAK,MAAM,OAAO,WAAW,OAAO,KAAK,SAAS,EAAE,SAAS,CAC3D,QAAO,SAAS;AAGlB,OAAK,MAAM,OAAO,UAAU;GAC1B,MAAM,OAAO,WAAW;GACxB,MAAM,KAAK,SAAS;AACpB,OAAI,SAAS,KAAK,CAChB,KAAI,SAAS,GAAG,CACd,yBAAwB,IAAI,KAAK;OAEjC,UAAS,OAAO,YAAY,KAAK;YAE5B,SAAS,GAChB,UAAS,OAAO;;;AAItB,QAAO;;;;;;AAOT,SAAgB,qBAAqB,YAAiB,UAAoB;CACxE,MAAM,SAAc,EAAE;AAGtB,MAAK,MAAM,OAAO,WAAW,OAAO,KAAK,WAAW,EAAE,OAAO,KAAK,SAAS,CAAC,CAC1E,QAAO,OAAO;AAGhB,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,SAAS,EAAE;EACnD,MAAM,OAAO,WAAW;AACxB,MAAI,SAAS,MAAM,EAAE;GACnB,MAAM,YAAY,qBAAqB,QAAQ,EAAE,EAAE,MAAM;AACzD,OAAI,aAAa,KACf,QAAO,OAAO;aAET,EAAE,SAAS,QAAQ,QAAQ,OAClC;OAAI,CAAC,UAAU,OAAO,KAAK,CACzB,QAAO,OAAO,SAAS,OAAO,OAAO;;;AAI3C,QAAO,OAAO,KAAK,OAAO,CAAC,SAAS,IAAI,SAAS;;;;;AAMnD,SAAgB,+BAA+B,UAAe,YAAiB;AAC7E,KAAI,SAAS,SAAS,IAAI,SAAS,WAAW,EAAE;EAC9C,MAAM,WAAW,OAAO,KAAK,WAAW;AACxC,OAAK,MAAM,OAAO,UAAU;GAC1B,MAAM,OAAO,WAAW;GACxB,MAAM,KAAK,SAAS;AACpB,OAAI,SAAS,MACX;QAAI,MAAM,KACR,QAAO,SAAS;cAGX,SAAS,KAAK,CACrB,KAAI,SAAS,GAAG,CACd,gCAA+B,IAAI,KAAK;OAExC,UAAS,OAAO,YAAY,KAAK;YAE5B,SAAS,GAChB,UAAS,OAAO;;;AAItB,QAAO"}
|
|
@@ -1,2 +1,113 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_common_data_is = require('./is.cjs');
|
|
3
|
+
|
|
4
|
+
//#region src/common/data/object.ts
|
|
5
|
+
/** Like `.map()` for object. Return new key and value or `undefined` to delete. */
|
|
6
|
+
function objectMap(obj, fn) {
|
|
7
|
+
if (!require_common_data_is.isObject(obj)) return {};
|
|
8
|
+
return Object.fromEntries(Object.entries(obj).map(([k, v]) => {
|
|
9
|
+
const r = fn(k, v);
|
|
10
|
+
if (require_common_data_is.isArray(r) && r.length === 2) return r;
|
|
11
|
+
return [k, r];
|
|
12
|
+
}).filter((v) => v != null));
|
|
13
|
+
}
|
|
14
|
+
/** Like `.filter()` for object. */
|
|
15
|
+
function objectFilter(obj, fn) {
|
|
16
|
+
if (!require_common_data_is.isObject(obj)) return {};
|
|
17
|
+
return Object.fromEntries(Object.entries(obj).filter(([k, v]) => fn(k, v)));
|
|
18
|
+
}
|
|
19
|
+
/** Merge right into left object. If dispose is defined, it will be combined. Left can be a complex object i.e. a insantiated class. */
|
|
20
|
+
function objectMergeDisposable(a, b) {
|
|
21
|
+
if (b.dispose && a.dispose) b.dispose.add(a.dispose);
|
|
22
|
+
return Object.assign(a, b);
|
|
23
|
+
}
|
|
24
|
+
function objectIsEmpty(obj) {
|
|
25
|
+
return Object.keys(obj).length <= 0;
|
|
26
|
+
}
|
|
27
|
+
function objectPick(obj, ...keys) {
|
|
28
|
+
return Object.fromEntries(keys.filter((key) => key in obj).map((key) => [key, obj[key]]));
|
|
29
|
+
}
|
|
30
|
+
function objectInclusivePick(obj, ...keys) {
|
|
31
|
+
return Object.fromEntries(keys.map((key) => [key, obj[key]]));
|
|
32
|
+
}
|
|
33
|
+
function objectOmit(obj, ...keys) {
|
|
34
|
+
return Object.fromEntries(Object.entries(obj).filter(([key]) => !keys.includes(key)));
|
|
35
|
+
}
|
|
36
|
+
function objectPlain(obj, opt) {
|
|
37
|
+
const { maxDepth = 99, circleValue, maxDepthValue, errorTrace = true, filter = () => true, keepAsIs = () => false, transformer = () => void 0 } = opt ?? {};
|
|
38
|
+
const cycle = [];
|
|
39
|
+
function handleObject(obj, depth) {
|
|
40
|
+
if (depth > maxDepth) return maxDepthValue;
|
|
41
|
+
if (keepAsIs(obj)) return obj;
|
|
42
|
+
if (!require_common_data_is.isPrimitive(obj)) {
|
|
43
|
+
if (cycle.includes(obj)) return circleValue;
|
|
44
|
+
cycle.push(obj);
|
|
45
|
+
}
|
|
46
|
+
if (transformer) {
|
|
47
|
+
const result = transformer(obj);
|
|
48
|
+
if (result !== void 0) return result;
|
|
49
|
+
}
|
|
50
|
+
if (require_common_data_is.isSymbol(obj)) return String(obj);
|
|
51
|
+
if (require_common_data_is.isPrimitive(obj)) return obj;
|
|
52
|
+
if (typeof Date !== "undefined" && obj instanceof Date) return {
|
|
53
|
+
__class: "Date",
|
|
54
|
+
value: obj.toISOString()
|
|
55
|
+
};
|
|
56
|
+
if (typeof RegExp !== "undefined" && obj instanceof RegExp) return {
|
|
57
|
+
__class: "RegExp",
|
|
58
|
+
source: obj.toString()
|
|
59
|
+
};
|
|
60
|
+
if (typeof Map !== "undefined" && obj instanceof Map) obj = Object.fromEntries(obj);
|
|
61
|
+
if (typeof Set !== "undefined" && obj instanceof Set || require_common_data_is.isBinaryArray(obj)) obj = Array.from(obj);
|
|
62
|
+
if (typeof ErrorEvent !== "undefined" && obj instanceof ErrorEvent) return {
|
|
63
|
+
__class: "ErrorEvent",
|
|
64
|
+
message: obj.message,
|
|
65
|
+
filename: obj.filename,
|
|
66
|
+
lineno: obj.lineno,
|
|
67
|
+
colno: obj.colno,
|
|
68
|
+
error: obj.error ? handleObject(obj.error, depth + 1) : void 0
|
|
69
|
+
};
|
|
70
|
+
if (typeof Event !== "undefined" && obj instanceof Event) return {
|
|
71
|
+
__class: "Event",
|
|
72
|
+
type: obj.type,
|
|
73
|
+
eventPhase: obj.eventPhase,
|
|
74
|
+
bubbles: obj.bubbles,
|
|
75
|
+
cancelable: obj.cancelable,
|
|
76
|
+
defaultPrevented: obj.defaultPrevented,
|
|
77
|
+
composed: obj.composed,
|
|
78
|
+
timeStamp: obj.timeStamp
|
|
79
|
+
};
|
|
80
|
+
if (typeof Error !== "undefined" && obj instanceof Error) return {
|
|
81
|
+
__class: "Error",
|
|
82
|
+
name: obj.name,
|
|
83
|
+
message: obj.message,
|
|
84
|
+
stack: errorTrace ? obj.stack : void 0,
|
|
85
|
+
cause: obj.cause ? String(obj.cause) : void 0
|
|
86
|
+
};
|
|
87
|
+
if (Array.isArray(obj)) return obj.filter(filter).map((o) => handleObject(o, depth + 1));
|
|
88
|
+
const objName = obj?.constructor?.name;
|
|
89
|
+
if (objName && objName !== "Object") {
|
|
90
|
+
const nobj = { __class: objName };
|
|
91
|
+
for (const k in obj) if (obj && obj.hasOwnProperty(k) && require_common_data_is.isPrimitive(obj[k])) nobj[k] = obj[k];
|
|
92
|
+
return nobj;
|
|
93
|
+
}
|
|
94
|
+
const nobj = {};
|
|
95
|
+
for (const key in obj) {
|
|
96
|
+
const value = obj[key];
|
|
97
|
+
if (filter(value)) nobj[key] = handleObject(value, depth + 1);
|
|
98
|
+
}
|
|
99
|
+
return nobj;
|
|
100
|
+
}
|
|
101
|
+
return handleObject(obj, 0);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
//#endregion
|
|
105
|
+
exports.objectFilter = objectFilter;
|
|
106
|
+
exports.objectInclusivePick = objectInclusivePick;
|
|
107
|
+
exports.objectIsEmpty = objectIsEmpty;
|
|
108
|
+
exports.objectMap = objectMap;
|
|
109
|
+
exports.objectMergeDisposable = objectMergeDisposable;
|
|
110
|
+
exports.objectOmit = objectOmit;
|
|
111
|
+
exports.objectPick = objectPick;
|
|
112
|
+
exports.objectPlain = objectPlain;
|
|
2
113
|
//# sourceMappingURL=object.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.cjs","names":["isObject","isArray","isPrimitive","isSymbol","isBinaryArray"],"sources":["../../../src/common/data/object.ts"],"sourcesContent":["import { isArray, isBinaryArray, isObject, isPrimitive, isSymbol } from './is'\n\n/** Like `.map()` for object. Return new key and value or `undefined` to delete. */\nexport function objectMap<T = any>(\n obj: any,\n fn: (key: string, value: any) => [key: string, value: T] | T | undefined | null,\n): Record<string, T> {\n if (!isObject(obj))\n return {}\n return Object.fromEntries(\n Object.entries(obj)\n .map(([k, v]) => {\n const r = fn(k, v)\n if (isArray(r) && r.length === 2)\n return r\n return [k, r]\n })\n .filter(v => v != null),\n )\n}\n\n/** Like `.filter()` for object. */\nexport function objectFilter<T = any>(\n obj: any,\n fn: (key: string, value: any) => boolean,\n): Partial<T> {\n if (!isObject(obj))\n return {}\n return Object.fromEntries(Object.entries(obj).filter(([k, v]) => fn(k, v))) as any\n}\n\n/** Merge right into left object. If dispose is defined, it will be combined. Left can be a complex object i.e. a insantiated class. */\nexport function objectMergeDisposable<A extends object, B extends object>(\n a: A,\n b: B,\n): A & B {\n // @ts-expect-error xxx\n if (b.dispose && a.dispose) {\n // @ts-expect-error xxx\n b.dispose.add(a.dispose)\n }\n return Object.assign(a, b)\n}\n\n// export function objectMerge<A, B>(a: A, b: B): A & B {\n// return Object.assign({}, a, b)\n// }\n\nexport function objectIsEmpty(obj: object) {\n return Object.keys(obj).length <= 0\n}\n\n// https://stackoverflow.com/a/56592365/140927\nexport function objectPick<T extends object, K extends keyof T>(obj: T, ...keys: K[]) {\n return Object.fromEntries(keys.filter(key => key in obj).map(key => [key, obj[key]])) as Pick<T, K>\n}\n\nexport function objectInclusivePick<T extends object, K extends (string | number | symbol)>(obj: T, ...keys: K[]) {\n return Object.fromEntries(keys.map(key => [key, obj[key as unknown as keyof T]])) as { [key in K]: key extends keyof T ? T[key] : undefined }\n}\n\nexport function objectOmit<T extends object, K extends keyof T>(obj: T, ...keys: K[]) {\n return Object.fromEntries(Object.entries(obj).filter(([key]) => !keys.includes(key as K))) as Omit<T, K>\n}\n\n/// Convert object to plain object with max depth.\nexport function objectPlain(obj: any, opt?: {\n maxDepth?: number\n maxDepthValue?: any\n circleValue?: any\n errorTrace?: boolean\n filter?: (value: any) => boolean\n keepAsIs?: (value: any) => boolean\n transformer?: (value: any) => any | undefined\n}): any {\n const {\n maxDepth = 99,\n circleValue,\n maxDepthValue,\n errorTrace = true,\n filter = () => true,\n keepAsIs = () => false,\n transformer = () => undefined,\n } = opt ?? {}\n\n const cycle: any = []\n\n function handleObject(obj: any, depth: number): any {\n if (depth > maxDepth)\n return maxDepthValue // '*** MAX DEPTH ***'\n\n if (keepAsIs(obj))\n return obj\n\n if (!isPrimitive(obj)) {\n if (cycle.includes(obj))\n return circleValue // '*** CYCLE ***'\n cycle.push(obj)\n }\n\n if (transformer) {\n const result = transformer(obj)\n if (result !== undefined)\n return result\n }\n\n if (isSymbol(obj))\n return String(obj)\n\n if (isPrimitive(obj))\n return obj\n\n if (typeof Date !== 'undefined' && obj instanceof Date) {\n return {\n __class: 'Date',\n value: obj.toISOString(),\n }\n }\n\n if (typeof RegExp !== 'undefined' && obj instanceof RegExp) {\n return {\n __class: 'RegExp',\n source: obj.toString(),\n }\n }\n\n if (typeof Map !== 'undefined' && obj instanceof Map)\n obj = Object.fromEntries(obj)\n\n if (typeof Set !== 'undefined' && obj instanceof Set || isBinaryArray(obj))\n obj = Array.from(obj as any)\n\n if (typeof ErrorEvent !== 'undefined' && obj instanceof ErrorEvent) {\n return {\n __class: 'ErrorEvent',\n message: obj.message,\n filename: obj.filename,\n lineno: obj.lineno,\n colno: obj.colno,\n error: obj.error ? handleObject(obj.error, depth + 1) : undefined,\n }\n }\n\n if (typeof Event !== 'undefined' && obj instanceof Event) {\n return {\n __class: 'Event',\n type: obj.type,\n eventPhase: obj.eventPhase,\n bubbles: obj.bubbles,\n cancelable: obj.cancelable,\n defaultPrevented: obj.defaultPrevented,\n composed: obj.composed,\n timeStamp: obj.timeStamp,\n }\n }\n\n if (typeof Error !== 'undefined' && obj instanceof Error) {\n return {\n __class: 'Error',\n name: obj.name,\n message: obj.message,\n stack: errorTrace ? obj.stack : undefined,\n cause: (obj as any).cause ? String((obj as any).cause) : undefined,\n }\n }\n // return `${obj.name || 'Error'}: ${obj.message}${errorTrace ? `\\n${obj.stack}` : ''}`\n\n /* if (obj instanceof Element) {\n const attrs = obj.getAttributeNames().map(name => `${name}=\"${String(obj.getAttribute(name))}\"`).join(' ')\n return `<${[obj.tagName.toLocaleLowerCase(), ...attrs].join(' ')}}>`\n } */\n\n if (Array.isArray(obj)) {\n return obj\n .filter(filter)\n .map(o => handleObject(o, depth + 1))\n }\n\n // For class objects just dump the first level of primitives\n const objName = obj?.constructor?.name\n if (objName && objName !== 'Object') {\n const nobj: any = {\n __class: objName,\n // __code: obj.toString ? obj.toString() : undefined,\n }\n for (const k in obj) {\n if (obj && obj.hasOwnProperty(k) && isPrimitive(obj[k]))\n nobj[k] = obj[k]\n }\n return nobj\n }\n\n // Plain objects are recursively dumped\n const nobj: any = {}\n for (const key in obj) {\n const value = obj[key]\n if (filter(value))\n nobj[key] = handleObject(value, depth + 1)\n }\n return nobj\n\n // return undefined\n }\n\n return handleObject(obj, 0)\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"object.cjs","names":["isObject","isArray","isPrimitive","isSymbol","isBinaryArray"],"sources":["../../../src/common/data/object.ts"],"sourcesContent":["import { isArray, isBinaryArray, isObject, isPrimitive, isSymbol } from './is'\n\n/** Like `.map()` for object. Return new key and value or `undefined` to delete. */\nexport function objectMap<T = any>(\n obj: any,\n fn: (key: string, value: any) => [key: string, value: T] | T | undefined | null,\n): Record<string, T> {\n if (!isObject(obj))\n return {}\n return Object.fromEntries(\n Object.entries(obj)\n .map(([k, v]) => {\n const r = fn(k, v)\n if (isArray(r) && r.length === 2)\n return r\n return [k, r]\n })\n .filter(v => v != null),\n )\n}\n\n/** Like `.filter()` for object. */\nexport function objectFilter<T = any>(\n obj: any,\n fn: (key: string, value: any) => boolean,\n): Partial<T> {\n if (!isObject(obj))\n return {}\n return Object.fromEntries(Object.entries(obj).filter(([k, v]) => fn(k, v))) as any\n}\n\n/** Merge right into left object. If dispose is defined, it will be combined. Left can be a complex object i.e. a insantiated class. */\nexport function objectMergeDisposable<A extends object, B extends object>(\n a: A,\n b: B,\n): A & B {\n // @ts-expect-error xxx\n if (b.dispose && a.dispose) {\n // @ts-expect-error xxx\n b.dispose.add(a.dispose)\n }\n return Object.assign(a, b)\n}\n\n// export function objectMerge<A, B>(a: A, b: B): A & B {\n// return Object.assign({}, a, b)\n// }\n\nexport function objectIsEmpty(obj: object) {\n return Object.keys(obj).length <= 0\n}\n\n// https://stackoverflow.com/a/56592365/140927\nexport function objectPick<T extends object, K extends keyof T>(obj: T, ...keys: K[]) {\n return Object.fromEntries(keys.filter(key => key in obj).map(key => [key, obj[key]])) as Pick<T, K>\n}\n\nexport function objectInclusivePick<T extends object, K extends (string | number | symbol)>(obj: T, ...keys: K[]) {\n return Object.fromEntries(keys.map(key => [key, obj[key as unknown as keyof T]])) as { [key in K]: key extends keyof T ? T[key] : undefined }\n}\n\nexport function objectOmit<T extends object, K extends keyof T>(obj: T, ...keys: K[]) {\n return Object.fromEntries(Object.entries(obj).filter(([key]) => !keys.includes(key as K))) as Omit<T, K>\n}\n\n/// Convert object to plain object with max depth.\nexport function objectPlain(obj: any, opt?: {\n maxDepth?: number\n maxDepthValue?: any\n circleValue?: any\n errorTrace?: boolean\n filter?: (value: any) => boolean\n keepAsIs?: (value: any) => boolean\n transformer?: (value: any) => any | undefined\n}): any {\n const {\n maxDepth = 99,\n circleValue,\n maxDepthValue,\n errorTrace = true,\n filter = () => true,\n keepAsIs = () => false,\n transformer = () => undefined,\n } = opt ?? {}\n\n const cycle: any = []\n\n function handleObject(obj: any, depth: number): any {\n if (depth > maxDepth)\n return maxDepthValue // '*** MAX DEPTH ***'\n\n if (keepAsIs(obj))\n return obj\n\n if (!isPrimitive(obj)) {\n if (cycle.includes(obj))\n return circleValue // '*** CYCLE ***'\n cycle.push(obj)\n }\n\n if (transformer) {\n const result = transformer(obj)\n if (result !== undefined)\n return result\n }\n\n if (isSymbol(obj))\n return String(obj)\n\n if (isPrimitive(obj))\n return obj\n\n if (typeof Date !== 'undefined' && obj instanceof Date) {\n return {\n __class: 'Date',\n value: obj.toISOString(),\n }\n }\n\n if (typeof RegExp !== 'undefined' && obj instanceof RegExp) {\n return {\n __class: 'RegExp',\n source: obj.toString(),\n }\n }\n\n if (typeof Map !== 'undefined' && obj instanceof Map)\n obj = Object.fromEntries(obj)\n\n if (typeof Set !== 'undefined' && obj instanceof Set || isBinaryArray(obj))\n obj = Array.from(obj as any)\n\n if (typeof ErrorEvent !== 'undefined' && obj instanceof ErrorEvent) {\n return {\n __class: 'ErrorEvent',\n message: obj.message,\n filename: obj.filename,\n lineno: obj.lineno,\n colno: obj.colno,\n error: obj.error ? handleObject(obj.error, depth + 1) : undefined,\n }\n }\n\n if (typeof Event !== 'undefined' && obj instanceof Event) {\n return {\n __class: 'Event',\n type: obj.type,\n eventPhase: obj.eventPhase,\n bubbles: obj.bubbles,\n cancelable: obj.cancelable,\n defaultPrevented: obj.defaultPrevented,\n composed: obj.composed,\n timeStamp: obj.timeStamp,\n }\n }\n\n if (typeof Error !== 'undefined' && obj instanceof Error) {\n return {\n __class: 'Error',\n name: obj.name,\n message: obj.message,\n stack: errorTrace ? obj.stack : undefined,\n cause: (obj as any).cause ? String((obj as any).cause) : undefined,\n }\n }\n // return `${obj.name || 'Error'}: ${obj.message}${errorTrace ? `\\n${obj.stack}` : ''}`\n\n /* if (obj instanceof Element) {\n const attrs = obj.getAttributeNames().map(name => `${name}=\"${String(obj.getAttribute(name))}\"`).join(' ')\n return `<${[obj.tagName.toLocaleLowerCase(), ...attrs].join(' ')}}>`\n } */\n\n if (Array.isArray(obj)) {\n return obj\n .filter(filter)\n .map(o => handleObject(o, depth + 1))\n }\n\n // For class objects just dump the first level of primitives\n const objName = obj?.constructor?.name\n if (objName && objName !== 'Object') {\n const nobj: any = {\n __class: objName,\n // __code: obj.toString ? obj.toString() : undefined,\n }\n for (const k in obj) {\n if (obj && obj.hasOwnProperty(k) && isPrimitive(obj[k]))\n nobj[k] = obj[k]\n }\n return nobj\n }\n\n // Plain objects are recursively dumped\n const nobj: any = {}\n for (const key in obj) {\n const value = obj[key]\n if (filter(value))\n nobj[key] = handleObject(value, depth + 1)\n }\n return nobj\n\n // return undefined\n }\n\n return handleObject(obj, 0)\n}\n"],"mappings":";;;;;AAGA,SAAgB,UACd,KACA,IACmB;AACnB,KAAI,CAACA,gCAAS,IAAI,CAChB,QAAO,EAAE;AACX,QAAO,OAAO,YACZ,OAAO,QAAQ,IAAI,CAChB,KAAK,CAAC,GAAG,OAAO;EACf,MAAM,IAAI,GAAG,GAAG,EAAE;AAClB,MAAIC,+BAAQ,EAAE,IAAI,EAAE,WAAW,EAC7B,QAAO;AACT,SAAO,CAAC,GAAG,EAAE;GACb,CACD,QAAO,MAAK,KAAK,KAAK,CAC1B;;;AAIH,SAAgB,aACd,KACA,IACY;AACZ,KAAI,CAACD,gCAAS,IAAI,CAChB,QAAO,EAAE;AACX,QAAO,OAAO,YAAY,OAAO,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC;;;AAI7E,SAAgB,sBACd,GACA,GACO;AAEP,KAAI,EAAE,WAAW,EAAE,QAEjB,GAAE,QAAQ,IAAI,EAAE,QAAQ;AAE1B,QAAO,OAAO,OAAO,GAAG,EAAE;;AAO5B,SAAgB,cAAc,KAAa;AACzC,QAAO,OAAO,KAAK,IAAI,CAAC,UAAU;;AAIpC,SAAgB,WAAgD,KAAQ,GAAG,MAAW;AACpF,QAAO,OAAO,YAAY,KAAK,QAAO,QAAO,OAAO,IAAI,CAAC,KAAI,QAAO,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC;;AAGvF,SAAgB,oBAA4E,KAAQ,GAAG,MAAW;AAChH,QAAO,OAAO,YAAY,KAAK,KAAI,QAAO,CAAC,KAAK,IAAI,KAA2B,CAAC,CAAC;;AAGnF,SAAgB,WAAgD,KAAQ,GAAG,MAAW;AACpF,QAAO,OAAO,YAAY,OAAO,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,SAAS,IAAS,CAAC,CAAC;;AAI5F,SAAgB,YAAY,KAAU,KAQ9B;CACN,MAAM,EACJ,WAAW,IACX,aACA,eACA,aAAa,MACb,eAAe,MACf,iBAAiB,OACjB,oBAAoB,WAClB,OAAO,EAAE;CAEb,MAAM,QAAa,EAAE;CAErB,SAAS,aAAa,KAAU,OAAoB;AAClD,MAAI,QAAQ,SACV,QAAO;AAET,MAAI,SAAS,IAAI,CACf,QAAO;AAET,MAAI,CAACE,mCAAY,IAAI,EAAE;AACrB,OAAI,MAAM,SAAS,IAAI,CACrB,QAAO;AACT,SAAM,KAAK,IAAI;;AAGjB,MAAI,aAAa;GACf,MAAM,SAAS,YAAY,IAAI;AAC/B,OAAI,WAAW,OACb,QAAO;;AAGX,MAAIC,gCAAS,IAAI,CACf,QAAO,OAAO,IAAI;AAEpB,MAAID,mCAAY,IAAI,CAClB,QAAO;AAET,MAAI,OAAO,SAAS,eAAe,eAAe,KAChD,QAAO;GACL,SAAS;GACT,OAAO,IAAI,aAAa;GACzB;AAGH,MAAI,OAAO,WAAW,eAAe,eAAe,OAClD,QAAO;GACL,SAAS;GACT,QAAQ,IAAI,UAAU;GACvB;AAGH,MAAI,OAAO,QAAQ,eAAe,eAAe,IAC/C,OAAM,OAAO,YAAY,IAAI;AAE/B,MAAI,OAAO,QAAQ,eAAe,eAAe,OAAOE,qCAAc,IAAI,CACxE,OAAM,MAAM,KAAK,IAAW;AAE9B,MAAI,OAAO,eAAe,eAAe,eAAe,WACtD,QAAO;GACL,SAAS;GACT,SAAS,IAAI;GACb,UAAU,IAAI;GACd,QAAQ,IAAI;GACZ,OAAO,IAAI;GACX,OAAO,IAAI,QAAQ,aAAa,IAAI,OAAO,QAAQ,EAAE,GAAG;GACzD;AAGH,MAAI,OAAO,UAAU,eAAe,eAAe,MACjD,QAAO;GACL,SAAS;GACT,MAAM,IAAI;GACV,YAAY,IAAI;GAChB,SAAS,IAAI;GACb,YAAY,IAAI;GAChB,kBAAkB,IAAI;GACtB,UAAU,IAAI;GACd,WAAW,IAAI;GAChB;AAGH,MAAI,OAAO,UAAU,eAAe,eAAe,MACjD,QAAO;GACL,SAAS;GACT,MAAM,IAAI;GACV,SAAS,IAAI;GACb,OAAO,aAAa,IAAI,QAAQ;GAChC,OAAQ,IAAY,QAAQ,OAAQ,IAAY,MAAM,GAAG;GAC1D;AASH,MAAI,MAAM,QAAQ,IAAI,CACpB,QAAO,IACJ,OAAO,OAAO,CACd,KAAI,MAAK,aAAa,GAAG,QAAQ,EAAE,CAAC;EAIzC,MAAM,UAAU,KAAK,aAAa;AAClC,MAAI,WAAW,YAAY,UAAU;GACnC,MAAM,OAAY,EAChB,SAAS,SAEV;AACD,QAAK,MAAM,KAAK,IACd,KAAI,OAAO,IAAI,eAAe,EAAE,IAAIF,mCAAY,IAAI,GAAG,CACrD,MAAK,KAAK,IAAI;AAElB,UAAO;;EAIT,MAAM,OAAY,EAAE;AACpB,OAAK,MAAM,OAAO,KAAK;GACrB,MAAM,QAAQ,IAAI;AAClB,OAAI,OAAO,MAAM,CACf,MAAK,OAAO,aAAa,OAAO,QAAQ,EAAE;;AAE9C,SAAO;;AAKT,QAAO,aAAa,KAAK,EAAE"}
|
|
@@ -1,2 +1,105 @@
|
|
|
1
|
-
import{isArray
|
|
1
|
+
import { isArray, isBinaryArray, isObject, isPrimitive, isSymbol } from "./is.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/common/data/object.ts
|
|
4
|
+
/** Like `.map()` for object. Return new key and value or `undefined` to delete. */
|
|
5
|
+
function objectMap(obj, fn) {
|
|
6
|
+
if (!isObject(obj)) return {};
|
|
7
|
+
return Object.fromEntries(Object.entries(obj).map(([k, v]) => {
|
|
8
|
+
const r = fn(k, v);
|
|
9
|
+
if (isArray(r) && r.length === 2) return r;
|
|
10
|
+
return [k, r];
|
|
11
|
+
}).filter((v) => v != null));
|
|
12
|
+
}
|
|
13
|
+
/** Like `.filter()` for object. */
|
|
14
|
+
function objectFilter(obj, fn) {
|
|
15
|
+
if (!isObject(obj)) return {};
|
|
16
|
+
return Object.fromEntries(Object.entries(obj).filter(([k, v]) => fn(k, v)));
|
|
17
|
+
}
|
|
18
|
+
/** Merge right into left object. If dispose is defined, it will be combined. Left can be a complex object i.e. a insantiated class. */
|
|
19
|
+
function objectMergeDisposable(a, b) {
|
|
20
|
+
if (b.dispose && a.dispose) b.dispose.add(a.dispose);
|
|
21
|
+
return Object.assign(a, b);
|
|
22
|
+
}
|
|
23
|
+
function objectIsEmpty(obj) {
|
|
24
|
+
return Object.keys(obj).length <= 0;
|
|
25
|
+
}
|
|
26
|
+
function objectPick(obj, ...keys) {
|
|
27
|
+
return Object.fromEntries(keys.filter((key) => key in obj).map((key) => [key, obj[key]]));
|
|
28
|
+
}
|
|
29
|
+
function objectInclusivePick(obj, ...keys) {
|
|
30
|
+
return Object.fromEntries(keys.map((key) => [key, obj[key]]));
|
|
31
|
+
}
|
|
32
|
+
function objectOmit(obj, ...keys) {
|
|
33
|
+
return Object.fromEntries(Object.entries(obj).filter(([key]) => !keys.includes(key)));
|
|
34
|
+
}
|
|
35
|
+
function objectPlain(obj, opt) {
|
|
36
|
+
const { maxDepth = 99, circleValue, maxDepthValue, errorTrace = true, filter = () => true, keepAsIs = () => false, transformer = () => void 0 } = opt ?? {};
|
|
37
|
+
const cycle = [];
|
|
38
|
+
function handleObject(obj, depth) {
|
|
39
|
+
if (depth > maxDepth) return maxDepthValue;
|
|
40
|
+
if (keepAsIs(obj)) return obj;
|
|
41
|
+
if (!isPrimitive(obj)) {
|
|
42
|
+
if (cycle.includes(obj)) return circleValue;
|
|
43
|
+
cycle.push(obj);
|
|
44
|
+
}
|
|
45
|
+
if (transformer) {
|
|
46
|
+
const result = transformer(obj);
|
|
47
|
+
if (result !== void 0) return result;
|
|
48
|
+
}
|
|
49
|
+
if (isSymbol(obj)) return String(obj);
|
|
50
|
+
if (isPrimitive(obj)) return obj;
|
|
51
|
+
if (typeof Date !== "undefined" && obj instanceof Date) return {
|
|
52
|
+
__class: "Date",
|
|
53
|
+
value: obj.toISOString()
|
|
54
|
+
};
|
|
55
|
+
if (typeof RegExp !== "undefined" && obj instanceof RegExp) return {
|
|
56
|
+
__class: "RegExp",
|
|
57
|
+
source: obj.toString()
|
|
58
|
+
};
|
|
59
|
+
if (typeof Map !== "undefined" && obj instanceof Map) obj = Object.fromEntries(obj);
|
|
60
|
+
if (typeof Set !== "undefined" && obj instanceof Set || isBinaryArray(obj)) obj = Array.from(obj);
|
|
61
|
+
if (typeof ErrorEvent !== "undefined" && obj instanceof ErrorEvent) return {
|
|
62
|
+
__class: "ErrorEvent",
|
|
63
|
+
message: obj.message,
|
|
64
|
+
filename: obj.filename,
|
|
65
|
+
lineno: obj.lineno,
|
|
66
|
+
colno: obj.colno,
|
|
67
|
+
error: obj.error ? handleObject(obj.error, depth + 1) : void 0
|
|
68
|
+
};
|
|
69
|
+
if (typeof Event !== "undefined" && obj instanceof Event) return {
|
|
70
|
+
__class: "Event",
|
|
71
|
+
type: obj.type,
|
|
72
|
+
eventPhase: obj.eventPhase,
|
|
73
|
+
bubbles: obj.bubbles,
|
|
74
|
+
cancelable: obj.cancelable,
|
|
75
|
+
defaultPrevented: obj.defaultPrevented,
|
|
76
|
+
composed: obj.composed,
|
|
77
|
+
timeStamp: obj.timeStamp
|
|
78
|
+
};
|
|
79
|
+
if (typeof Error !== "undefined" && obj instanceof Error) return {
|
|
80
|
+
__class: "Error",
|
|
81
|
+
name: obj.name,
|
|
82
|
+
message: obj.message,
|
|
83
|
+
stack: errorTrace ? obj.stack : void 0,
|
|
84
|
+
cause: obj.cause ? String(obj.cause) : void 0
|
|
85
|
+
};
|
|
86
|
+
if (Array.isArray(obj)) return obj.filter(filter).map((o) => handleObject(o, depth + 1));
|
|
87
|
+
const objName = obj?.constructor?.name;
|
|
88
|
+
if (objName && objName !== "Object") {
|
|
89
|
+
const nobj = { __class: objName };
|
|
90
|
+
for (const k in obj) if (obj && obj.hasOwnProperty(k) && isPrimitive(obj[k])) nobj[k] = obj[k];
|
|
91
|
+
return nobj;
|
|
92
|
+
}
|
|
93
|
+
const nobj = {};
|
|
94
|
+
for (const key in obj) {
|
|
95
|
+
const value = obj[key];
|
|
96
|
+
if (filter(value)) nobj[key] = handleObject(value, depth + 1);
|
|
97
|
+
}
|
|
98
|
+
return nobj;
|
|
99
|
+
}
|
|
100
|
+
return handleObject(obj, 0);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
//#endregion
|
|
104
|
+
export { objectFilter, objectInclusivePick, objectIsEmpty, objectMap, objectMergeDisposable, objectOmit, objectPick, objectPlain };
|
|
2
105
|
//# sourceMappingURL=object.mjs.map
|