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":"progress.cjs","names":["Emitter","useDispose","uname"],"sources":["../../../src/common/exec/progress.ts"],"sourcesContent":["// Inspired by https://developer.apple.com/documentation/foundation/progress\n\nimport { arrayRemoveElement } from '../data/array'\nimport { useDispose } from '../dispose-defer'\nimport { Emitter } from '../msg/emitter'\nimport { uname } from '../uuid'\n\nexport interface ProgressOptions {\n totalUnits?: number\n completeUnits?: number\n resetWhenFinished?: boolean\n name?: string\n}\n\n/**\n * Progress helper with these properties:\n *\n * - `totalUnits` and `completedUnits` for progress\n * - Can be cancelled\n * - Sends events on cancel, changed and dispose\n * - Supports children and propagates values.\n * Total progress is sum of all units in the tree.\n * - On `dispose` child removes itself from parent.\n */\nexport class Progress extends Emitter<{\n progressCancelled: (progress: Progress) => void\n progressChanged: (progress: Progress) => void\n progressDispose: (progress: Progress) => void\n}> {\n private _totalUnits: number\n private _completedUnits: number\n private _isCancelled = false\n private _resetWhenFinished = true\n private _children: Progress[] = []\n\n dispose = useDispose()\n name: string\n\n constructor(opt: ProgressOptions = {}) {\n super()\n\n this._totalUnits = opt.totalUnits ?? 0\n this._completedUnits = opt.completeUnits ?? 0\n this._resetWhenFinished = opt.resetWhenFinished ?? true\n this.name = opt.name ?? uname('progress')\n\n // Make sure to cleanup also children\n this.dispose.add(async () => {\n for (const child of this._children)\n await child.dispose()\n await this.emit('progressDispose', this)\n })\n }\n\n /** Notify others about changes and reset on completion, if flag is set. */\n private update() {\n void this.emit('progressChanged', this)\n\n if (this._isCancelled && this._resetWhenFinished) {\n if (this.getTotalUnits() <= this.getCompletedUnits())\n this.reset()\n }\n }\n\n /** Fresh start */\n reset() {\n if (this._isCancelled) {\n this._isCancelled = false\n for (const child of this._children)\n child.reset()\n this.update()\n }\n }\n\n /** Notify and mark as cancelled. May take some time before having an effect. */\n async cancel() {\n if (!this._isCancelled) {\n this._isCancelled = true\n await this.emit('progressCancelled', this)\n for (const child of this._children)\n await child.cancel()\n this.update()\n }\n }\n\n /** Add child progress, which count into its parents units. On `dispose` it will auto remove itself from parent. */\n addChild(child: Progress) {\n child.on('progressDispose', () => this.removeChild(child))\n child.on('progressChanged', () => this.update())\n if (!this._children.includes(child))\n this._children.push(child)\n this.update()\n }\n\n /** Create child progress. */\n createChildProgress(opt?: ProgressOptions) {\n const progress = new Progress(opt)\n this.addChild(progress)\n return progress\n }\n\n removeChild(child: Progress) {\n arrayRemoveElement(this._children, child)\n this.update()\n }\n\n /** Total units including children */\n getTotalUnits(): number {\n if (this.isIndeterminate())\n return 0\n let units = this._totalUnits\n for (const child of this._children)\n units += child.getTotalUnits()\n return units\n }\n\n /** Completed units including children */\n getCompletedUnits(): number {\n if (this.isIndeterminate())\n return 0\n let units = this._completedUnits\n for (const child of this._children)\n units += child.getCompletedUnits()\n return units\n // return Math.min(this.getTotalUnits(), units)\n }\n\n /** Cannot calculate progress, because totalUnits are missing. Special representation in UI. */\n isIndeterminate(): boolean {\n return this._totalUnits <= 0 && this._children.length <= 0\n }\n\n isCancelled() {\n return this._isCancelled\n }\n\n /** Either disposed or all units completed. */\n isFinished() {\n return this.dispose.isDisposed() || (!this.isIndeterminate() && (this.getTotalUnits() <= this.getCompletedUnits()))\n }\n\n /** Value from 0 to 1, where 1 is 100% completeness. */\n getFraction() {\n if (this.isIndeterminate())\n return 0\n let value = this.getCompletedUnits() / this.getTotalUnits()\n if (Number.isNaN(value))\n value = 0\n return Math.min(1, Math.max(0, value))\n }\n\n getChildrenCount() {\n return this._children.length\n }\n\n /** Change total units. */\n setTotalUnits(units: number, completedUnits?: number) {\n this._totalUnits = units\n if (completedUnits != null)\n this._completedUnits = completedUnits\n this.update()\n }\n\n /** Relatively change total units. */\n incTotalUnits(step = 1) {\n this._totalUnits += step\n this.update()\n }\n\n /** Set fixed number of completed units. */\n setCompletetedUnits(units: number) {\n this._completedUnits = units\n this.update()\n }\n\n /** Set to 100% without disposing. */\n setCompleted() {\n this._completedUnits = this._totalUnits\n this.update()\n }\n\n /** Dynamically change completed units. */\n incCompletedUnits(step = 1) {\n this._completedUnits += step\n this.update()\n }\n\n /** Progress tree to string for debuggin purposes. Consider using `name` attribute of Progress. */\n toString(indent = 0) {\n let s = `${' '.repeat(indent)}${this.name}: ${this._completedUnits} of ${this._totalUnits} units, ${Math.floor(this.getFraction() * 100)} %, cancel=${this._isCancelled}\\n`\n for (const child of this._children)\n s += child.toString(indent + 1)\n if (indent === 0)\n return s.trim()\n return s\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"progress.cjs","names":["Emitter","useDispose","uname"],"sources":["../../../src/common/exec/progress.ts"],"sourcesContent":["// Inspired by https://developer.apple.com/documentation/foundation/progress\n\nimport { arrayRemoveElement } from '../data/array'\nimport { useDispose } from '../dispose-defer'\nimport { Emitter } from '../msg/emitter'\nimport { uname } from '../uuid'\n\nexport interface ProgressOptions {\n totalUnits?: number\n completeUnits?: number\n resetWhenFinished?: boolean\n name?: string\n}\n\n/**\n * Progress helper with these properties:\n *\n * - `totalUnits` and `completedUnits` for progress\n * - Can be cancelled\n * - Sends events on cancel, changed and dispose\n * - Supports children and propagates values.\n * Total progress is sum of all units in the tree.\n * - On `dispose` child removes itself from parent.\n */\nexport class Progress extends Emitter<{\n progressCancelled: (progress: Progress) => void\n progressChanged: (progress: Progress) => void\n progressDispose: (progress: Progress) => void\n}> {\n private _totalUnits: number\n private _completedUnits: number\n private _isCancelled = false\n private _resetWhenFinished = true\n private _children: Progress[] = []\n\n dispose = useDispose()\n name: string\n\n constructor(opt: ProgressOptions = {}) {\n super()\n\n this._totalUnits = opt.totalUnits ?? 0\n this._completedUnits = opt.completeUnits ?? 0\n this._resetWhenFinished = opt.resetWhenFinished ?? true\n this.name = opt.name ?? uname('progress')\n\n // Make sure to cleanup also children\n this.dispose.add(async () => {\n for (const child of this._children)\n await child.dispose()\n await this.emit('progressDispose', this)\n })\n }\n\n /** Notify others about changes and reset on completion, if flag is set. */\n private update() {\n void this.emit('progressChanged', this)\n\n if (this._isCancelled && this._resetWhenFinished) {\n if (this.getTotalUnits() <= this.getCompletedUnits())\n this.reset()\n }\n }\n\n /** Fresh start */\n reset() {\n if (this._isCancelled) {\n this._isCancelled = false\n for (const child of this._children)\n child.reset()\n this.update()\n }\n }\n\n /** Notify and mark as cancelled. May take some time before having an effect. */\n async cancel() {\n if (!this._isCancelled) {\n this._isCancelled = true\n await this.emit('progressCancelled', this)\n for (const child of this._children)\n await child.cancel()\n this.update()\n }\n }\n\n /** Add child progress, which count into its parents units. On `dispose` it will auto remove itself from parent. */\n addChild(child: Progress) {\n child.on('progressDispose', () => this.removeChild(child))\n child.on('progressChanged', () => this.update())\n if (!this._children.includes(child))\n this._children.push(child)\n this.update()\n }\n\n /** Create child progress. */\n createChildProgress(opt?: ProgressOptions) {\n const progress = new Progress(opt)\n this.addChild(progress)\n return progress\n }\n\n removeChild(child: Progress) {\n arrayRemoveElement(this._children, child)\n this.update()\n }\n\n /** Total units including children */\n getTotalUnits(): number {\n if (this.isIndeterminate())\n return 0\n let units = this._totalUnits\n for (const child of this._children)\n units += child.getTotalUnits()\n return units\n }\n\n /** Completed units including children */\n getCompletedUnits(): number {\n if (this.isIndeterminate())\n return 0\n let units = this._completedUnits\n for (const child of this._children)\n units += child.getCompletedUnits()\n return units\n // return Math.min(this.getTotalUnits(), units)\n }\n\n /** Cannot calculate progress, because totalUnits are missing. Special representation in UI. */\n isIndeterminate(): boolean {\n return this._totalUnits <= 0 && this._children.length <= 0\n }\n\n isCancelled() {\n return this._isCancelled\n }\n\n /** Either disposed or all units completed. */\n isFinished() {\n return this.dispose.isDisposed() || (!this.isIndeterminate() && (this.getTotalUnits() <= this.getCompletedUnits()))\n }\n\n /** Value from 0 to 1, where 1 is 100% completeness. */\n getFraction() {\n if (this.isIndeterminate())\n return 0\n let value = this.getCompletedUnits() / this.getTotalUnits()\n if (Number.isNaN(value))\n value = 0\n return Math.min(1, Math.max(0, value))\n }\n\n getChildrenCount() {\n return this._children.length\n }\n\n /** Change total units. */\n setTotalUnits(units: number, completedUnits?: number) {\n this._totalUnits = units\n if (completedUnits != null)\n this._completedUnits = completedUnits\n this.update()\n }\n\n /** Relatively change total units. */\n incTotalUnits(step = 1) {\n this._totalUnits += step\n this.update()\n }\n\n /** Set fixed number of completed units. */\n setCompletetedUnits(units: number) {\n this._completedUnits = units\n this.update()\n }\n\n /** Set to 100% without disposing. */\n setCompleted() {\n this._completedUnits = this._totalUnits\n this.update()\n }\n\n /** Dynamically change completed units. */\n incCompletedUnits(step = 1) {\n this._completedUnits += step\n this.update()\n }\n\n /** Progress tree to string for debuggin purposes. Consider using `name` attribute of Progress. */\n toString(indent = 0) {\n let s = `${' '.repeat(indent)}${this.name}: ${this._completedUnits} of ${this._totalUnits} units, ${Math.floor(this.getFraction() * 100)} %, cancel=${this._isCancelled}\\n`\n for (const child of this._children)\n s += child.toString(indent + 1)\n if (indent === 0)\n return s.trim()\n return s\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { d as Progress, f as ProgressOptions } from "../../index-
|
|
1
|
+
import { d as Progress, f as ProgressOptions } from "../../index-CFkMqHvX.cjs";
|
|
2
2
|
export { Progress, ProgressOptions };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { d as Progress, f as ProgressOptions } from "../../index-
|
|
1
|
+
import { d as Progress, f as ProgressOptions } from "../../index-C_3Y_s6f.mjs";
|
|
2
2
|
export { Progress, ProgressOptions };
|
|
@@ -1,2 +1,149 @@
|
|
|
1
|
-
import{arrayRemoveElement
|
|
1
|
+
import { arrayRemoveElement } from "../data/array.mjs";
|
|
2
|
+
import { useDispose } from "../dispose-defer.mjs";
|
|
3
|
+
import { Emitter } from "../msg/emitter.mjs";
|
|
4
|
+
import { uname } from "../uuid.mjs";
|
|
5
|
+
|
|
6
|
+
//#region src/common/exec/progress.ts
|
|
7
|
+
/**
|
|
8
|
+
* Progress helper with these properties:
|
|
9
|
+
*
|
|
10
|
+
* - `totalUnits` and `completedUnits` for progress
|
|
11
|
+
* - Can be cancelled
|
|
12
|
+
* - Sends events on cancel, changed and dispose
|
|
13
|
+
* - Supports children and propagates values.
|
|
14
|
+
* Total progress is sum of all units in the tree.
|
|
15
|
+
* - On `dispose` child removes itself from parent.
|
|
16
|
+
*/
|
|
17
|
+
var Progress = class Progress extends Emitter {
|
|
18
|
+
_totalUnits;
|
|
19
|
+
_completedUnits;
|
|
20
|
+
_isCancelled = false;
|
|
21
|
+
_resetWhenFinished = true;
|
|
22
|
+
_children = [];
|
|
23
|
+
dispose = useDispose();
|
|
24
|
+
name;
|
|
25
|
+
constructor(opt = {}) {
|
|
26
|
+
super();
|
|
27
|
+
this._totalUnits = opt.totalUnits ?? 0;
|
|
28
|
+
this._completedUnits = opt.completeUnits ?? 0;
|
|
29
|
+
this._resetWhenFinished = opt.resetWhenFinished ?? true;
|
|
30
|
+
this.name = opt.name ?? uname("progress");
|
|
31
|
+
this.dispose.add(async () => {
|
|
32
|
+
for (const child of this._children) await child.dispose();
|
|
33
|
+
await this.emit("progressDispose", this);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/** Notify others about changes and reset on completion, if flag is set. */
|
|
37
|
+
update() {
|
|
38
|
+
this.emit("progressChanged", this);
|
|
39
|
+
if (this._isCancelled && this._resetWhenFinished) {
|
|
40
|
+
if (this.getTotalUnits() <= this.getCompletedUnits()) this.reset();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/** Fresh start */
|
|
44
|
+
reset() {
|
|
45
|
+
if (this._isCancelled) {
|
|
46
|
+
this._isCancelled = false;
|
|
47
|
+
for (const child of this._children) child.reset();
|
|
48
|
+
this.update();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/** Notify and mark as cancelled. May take some time before having an effect. */
|
|
52
|
+
async cancel() {
|
|
53
|
+
if (!this._isCancelled) {
|
|
54
|
+
this._isCancelled = true;
|
|
55
|
+
await this.emit("progressCancelled", this);
|
|
56
|
+
for (const child of this._children) await child.cancel();
|
|
57
|
+
this.update();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/** Add child progress, which count into its parents units. On `dispose` it will auto remove itself from parent. */
|
|
61
|
+
addChild(child) {
|
|
62
|
+
child.on("progressDispose", () => this.removeChild(child));
|
|
63
|
+
child.on("progressChanged", () => this.update());
|
|
64
|
+
if (!this._children.includes(child)) this._children.push(child);
|
|
65
|
+
this.update();
|
|
66
|
+
}
|
|
67
|
+
/** Create child progress. */
|
|
68
|
+
createChildProgress(opt) {
|
|
69
|
+
const progress = new Progress(opt);
|
|
70
|
+
this.addChild(progress);
|
|
71
|
+
return progress;
|
|
72
|
+
}
|
|
73
|
+
removeChild(child) {
|
|
74
|
+
arrayRemoveElement(this._children, child);
|
|
75
|
+
this.update();
|
|
76
|
+
}
|
|
77
|
+
/** Total units including children */
|
|
78
|
+
getTotalUnits() {
|
|
79
|
+
if (this.isIndeterminate()) return 0;
|
|
80
|
+
let units = this._totalUnits;
|
|
81
|
+
for (const child of this._children) units += child.getTotalUnits();
|
|
82
|
+
return units;
|
|
83
|
+
}
|
|
84
|
+
/** Completed units including children */
|
|
85
|
+
getCompletedUnits() {
|
|
86
|
+
if (this.isIndeterminate()) return 0;
|
|
87
|
+
let units = this._completedUnits;
|
|
88
|
+
for (const child of this._children) units += child.getCompletedUnits();
|
|
89
|
+
return units;
|
|
90
|
+
}
|
|
91
|
+
/** Cannot calculate progress, because totalUnits are missing. Special representation in UI. */
|
|
92
|
+
isIndeterminate() {
|
|
93
|
+
return this._totalUnits <= 0 && this._children.length <= 0;
|
|
94
|
+
}
|
|
95
|
+
isCancelled() {
|
|
96
|
+
return this._isCancelled;
|
|
97
|
+
}
|
|
98
|
+
/** Either disposed or all units completed. */
|
|
99
|
+
isFinished() {
|
|
100
|
+
return this.dispose.isDisposed() || !this.isIndeterminate() && this.getTotalUnits() <= this.getCompletedUnits();
|
|
101
|
+
}
|
|
102
|
+
/** Value from 0 to 1, where 1 is 100% completeness. */
|
|
103
|
+
getFraction() {
|
|
104
|
+
if (this.isIndeterminate()) return 0;
|
|
105
|
+
let value = this.getCompletedUnits() / this.getTotalUnits();
|
|
106
|
+
if (Number.isNaN(value)) value = 0;
|
|
107
|
+
return Math.min(1, Math.max(0, value));
|
|
108
|
+
}
|
|
109
|
+
getChildrenCount() {
|
|
110
|
+
return this._children.length;
|
|
111
|
+
}
|
|
112
|
+
/** Change total units. */
|
|
113
|
+
setTotalUnits(units, completedUnits) {
|
|
114
|
+
this._totalUnits = units;
|
|
115
|
+
if (completedUnits != null) this._completedUnits = completedUnits;
|
|
116
|
+
this.update();
|
|
117
|
+
}
|
|
118
|
+
/** Relatively change total units. */
|
|
119
|
+
incTotalUnits(step = 1) {
|
|
120
|
+
this._totalUnits += step;
|
|
121
|
+
this.update();
|
|
122
|
+
}
|
|
123
|
+
/** Set fixed number of completed units. */
|
|
124
|
+
setCompletetedUnits(units) {
|
|
125
|
+
this._completedUnits = units;
|
|
126
|
+
this.update();
|
|
127
|
+
}
|
|
128
|
+
/** Set to 100% without disposing. */
|
|
129
|
+
setCompleted() {
|
|
130
|
+
this._completedUnits = this._totalUnits;
|
|
131
|
+
this.update();
|
|
132
|
+
}
|
|
133
|
+
/** Dynamically change completed units. */
|
|
134
|
+
incCompletedUnits(step = 1) {
|
|
135
|
+
this._completedUnits += step;
|
|
136
|
+
this.update();
|
|
137
|
+
}
|
|
138
|
+
/** Progress tree to string for debuggin purposes. Consider using `name` attribute of Progress. */
|
|
139
|
+
toString(indent = 0) {
|
|
140
|
+
let s = `${" ".repeat(indent)}${this.name}: ${this._completedUnits} of ${this._totalUnits} units, ${Math.floor(this.getFraction() * 100)} %, cancel=${this._isCancelled}\n`;
|
|
141
|
+
for (const child of this._children) s += child.toString(indent + 1);
|
|
142
|
+
if (indent === 0) return s.trim();
|
|
143
|
+
return s;
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
//#endregion
|
|
148
|
+
export { Progress };
|
|
2
149
|
//# sourceMappingURL=progress.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.mjs","names":[],"sources":["../../../src/common/exec/progress.ts"],"sourcesContent":["// Inspired by https://developer.apple.com/documentation/foundation/progress\n\nimport { arrayRemoveElement } from '../data/array'\nimport { useDispose } from '../dispose-defer'\nimport { Emitter } from '../msg/emitter'\nimport { uname } from '../uuid'\n\nexport interface ProgressOptions {\n totalUnits?: number\n completeUnits?: number\n resetWhenFinished?: boolean\n name?: string\n}\n\n/**\n * Progress helper with these properties:\n *\n * - `totalUnits` and `completedUnits` for progress\n * - Can be cancelled\n * - Sends events on cancel, changed and dispose\n * - Supports children and propagates values.\n * Total progress is sum of all units in the tree.\n * - On `dispose` child removes itself from parent.\n */\nexport class Progress extends Emitter<{\n progressCancelled: (progress: Progress) => void\n progressChanged: (progress: Progress) => void\n progressDispose: (progress: Progress) => void\n}> {\n private _totalUnits: number\n private _completedUnits: number\n private _isCancelled = false\n private _resetWhenFinished = true\n private _children: Progress[] = []\n\n dispose = useDispose()\n name: string\n\n constructor(opt: ProgressOptions = {}) {\n super()\n\n this._totalUnits = opt.totalUnits ?? 0\n this._completedUnits = opt.completeUnits ?? 0\n this._resetWhenFinished = opt.resetWhenFinished ?? true\n this.name = opt.name ?? uname('progress')\n\n // Make sure to cleanup also children\n this.dispose.add(async () => {\n for (const child of this._children)\n await child.dispose()\n await this.emit('progressDispose', this)\n })\n }\n\n /** Notify others about changes and reset on completion, if flag is set. */\n private update() {\n void this.emit('progressChanged', this)\n\n if (this._isCancelled && this._resetWhenFinished) {\n if (this.getTotalUnits() <= this.getCompletedUnits())\n this.reset()\n }\n }\n\n /** Fresh start */\n reset() {\n if (this._isCancelled) {\n this._isCancelled = false\n for (const child of this._children)\n child.reset()\n this.update()\n }\n }\n\n /** Notify and mark as cancelled. May take some time before having an effect. */\n async cancel() {\n if (!this._isCancelled) {\n this._isCancelled = true\n await this.emit('progressCancelled', this)\n for (const child of this._children)\n await child.cancel()\n this.update()\n }\n }\n\n /** Add child progress, which count into its parents units. On `dispose` it will auto remove itself from parent. */\n addChild(child: Progress) {\n child.on('progressDispose', () => this.removeChild(child))\n child.on('progressChanged', () => this.update())\n if (!this._children.includes(child))\n this._children.push(child)\n this.update()\n }\n\n /** Create child progress. */\n createChildProgress(opt?: ProgressOptions) {\n const progress = new Progress(opt)\n this.addChild(progress)\n return progress\n }\n\n removeChild(child: Progress) {\n arrayRemoveElement(this._children, child)\n this.update()\n }\n\n /** Total units including children */\n getTotalUnits(): number {\n if (this.isIndeterminate())\n return 0\n let units = this._totalUnits\n for (const child of this._children)\n units += child.getTotalUnits()\n return units\n }\n\n /** Completed units including children */\n getCompletedUnits(): number {\n if (this.isIndeterminate())\n return 0\n let units = this._completedUnits\n for (const child of this._children)\n units += child.getCompletedUnits()\n return units\n // return Math.min(this.getTotalUnits(), units)\n }\n\n /** Cannot calculate progress, because totalUnits are missing. Special representation in UI. */\n isIndeterminate(): boolean {\n return this._totalUnits <= 0 && this._children.length <= 0\n }\n\n isCancelled() {\n return this._isCancelled\n }\n\n /** Either disposed or all units completed. */\n isFinished() {\n return this.dispose.isDisposed() || (!this.isIndeterminate() && (this.getTotalUnits() <= this.getCompletedUnits()))\n }\n\n /** Value from 0 to 1, where 1 is 100% completeness. */\n getFraction() {\n if (this.isIndeterminate())\n return 0\n let value = this.getCompletedUnits() / this.getTotalUnits()\n if (Number.isNaN(value))\n value = 0\n return Math.min(1, Math.max(0, value))\n }\n\n getChildrenCount() {\n return this._children.length\n }\n\n /** Change total units. */\n setTotalUnits(units: number, completedUnits?: number) {\n this._totalUnits = units\n if (completedUnits != null)\n this._completedUnits = completedUnits\n this.update()\n }\n\n /** Relatively change total units. */\n incTotalUnits(step = 1) {\n this._totalUnits += step\n this.update()\n }\n\n /** Set fixed number of completed units. */\n setCompletetedUnits(units: number) {\n this._completedUnits = units\n this.update()\n }\n\n /** Set to 100% without disposing. */\n setCompleted() {\n this._completedUnits = this._totalUnits\n this.update()\n }\n\n /** Dynamically change completed units. */\n incCompletedUnits(step = 1) {\n this._completedUnits += step\n this.update()\n }\n\n /** Progress tree to string for debuggin purposes. Consider using `name` attribute of Progress. */\n toString(indent = 0) {\n let s = `${' '.repeat(indent)}${this.name}: ${this._completedUnits} of ${this._totalUnits} units, ${Math.floor(this.getFraction() * 100)} %, cancel=${this._isCancelled}\\n`\n for (const child of this._children)\n s += child.toString(indent + 1)\n if (indent === 0)\n return s.trim()\n return s\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"progress.mjs","names":[],"sources":["../../../src/common/exec/progress.ts"],"sourcesContent":["// Inspired by https://developer.apple.com/documentation/foundation/progress\n\nimport { arrayRemoveElement } from '../data/array'\nimport { useDispose } from '../dispose-defer'\nimport { Emitter } from '../msg/emitter'\nimport { uname } from '../uuid'\n\nexport interface ProgressOptions {\n totalUnits?: number\n completeUnits?: number\n resetWhenFinished?: boolean\n name?: string\n}\n\n/**\n * Progress helper with these properties:\n *\n * - `totalUnits` and `completedUnits` for progress\n * - Can be cancelled\n * - Sends events on cancel, changed and dispose\n * - Supports children and propagates values.\n * Total progress is sum of all units in the tree.\n * - On `dispose` child removes itself from parent.\n */\nexport class Progress extends Emitter<{\n progressCancelled: (progress: Progress) => void\n progressChanged: (progress: Progress) => void\n progressDispose: (progress: Progress) => void\n}> {\n private _totalUnits: number\n private _completedUnits: number\n private _isCancelled = false\n private _resetWhenFinished = true\n private _children: Progress[] = []\n\n dispose = useDispose()\n name: string\n\n constructor(opt: ProgressOptions = {}) {\n super()\n\n this._totalUnits = opt.totalUnits ?? 0\n this._completedUnits = opt.completeUnits ?? 0\n this._resetWhenFinished = opt.resetWhenFinished ?? true\n this.name = opt.name ?? uname('progress')\n\n // Make sure to cleanup also children\n this.dispose.add(async () => {\n for (const child of this._children)\n await child.dispose()\n await this.emit('progressDispose', this)\n })\n }\n\n /** Notify others about changes and reset on completion, if flag is set. */\n private update() {\n void this.emit('progressChanged', this)\n\n if (this._isCancelled && this._resetWhenFinished) {\n if (this.getTotalUnits() <= this.getCompletedUnits())\n this.reset()\n }\n }\n\n /** Fresh start */\n reset() {\n if (this._isCancelled) {\n this._isCancelled = false\n for (const child of this._children)\n child.reset()\n this.update()\n }\n }\n\n /** Notify and mark as cancelled. May take some time before having an effect. */\n async cancel() {\n if (!this._isCancelled) {\n this._isCancelled = true\n await this.emit('progressCancelled', this)\n for (const child of this._children)\n await child.cancel()\n this.update()\n }\n }\n\n /** Add child progress, which count into its parents units. On `dispose` it will auto remove itself from parent. */\n addChild(child: Progress) {\n child.on('progressDispose', () => this.removeChild(child))\n child.on('progressChanged', () => this.update())\n if (!this._children.includes(child))\n this._children.push(child)\n this.update()\n }\n\n /** Create child progress. */\n createChildProgress(opt?: ProgressOptions) {\n const progress = new Progress(opt)\n this.addChild(progress)\n return progress\n }\n\n removeChild(child: Progress) {\n arrayRemoveElement(this._children, child)\n this.update()\n }\n\n /** Total units including children */\n getTotalUnits(): number {\n if (this.isIndeterminate())\n return 0\n let units = this._totalUnits\n for (const child of this._children)\n units += child.getTotalUnits()\n return units\n }\n\n /** Completed units including children */\n getCompletedUnits(): number {\n if (this.isIndeterminate())\n return 0\n let units = this._completedUnits\n for (const child of this._children)\n units += child.getCompletedUnits()\n return units\n // return Math.min(this.getTotalUnits(), units)\n }\n\n /** Cannot calculate progress, because totalUnits are missing. Special representation in UI. */\n isIndeterminate(): boolean {\n return this._totalUnits <= 0 && this._children.length <= 0\n }\n\n isCancelled() {\n return this._isCancelled\n }\n\n /** Either disposed or all units completed. */\n isFinished() {\n return this.dispose.isDisposed() || (!this.isIndeterminate() && (this.getTotalUnits() <= this.getCompletedUnits()))\n }\n\n /** Value from 0 to 1, where 1 is 100% completeness. */\n getFraction() {\n if (this.isIndeterminate())\n return 0\n let value = this.getCompletedUnits() / this.getTotalUnits()\n if (Number.isNaN(value))\n value = 0\n return Math.min(1, Math.max(0, value))\n }\n\n getChildrenCount() {\n return this._children.length\n }\n\n /** Change total units. */\n setTotalUnits(units: number, completedUnits?: number) {\n this._totalUnits = units\n if (completedUnits != null)\n this._completedUnits = completedUnits\n this.update()\n }\n\n /** Relatively change total units. */\n incTotalUnits(step = 1) {\n this._totalUnits += step\n this.update()\n }\n\n /** Set fixed number of completed units. */\n setCompletetedUnits(units: number) {\n this._completedUnits = units\n this.update()\n }\n\n /** Set to 100% without disposing. */\n setCompleted() {\n this._completedUnits = this._totalUnits\n this.update()\n }\n\n /** Dynamically change completed units. */\n incCompletedUnits(step = 1) {\n this._completedUnits += step\n this.update()\n }\n\n /** Progress tree to string for debuggin purposes. Consider using `name` attribute of Progress. */\n toString(indent = 0) {\n let s = `${' '.repeat(indent)}${this.name}: ${this._completedUnits} of ${this._totalUnits} units, ${Math.floor(this.getFraction() * 100)} %, cancel=${this._isCancelled}\\n`\n for (const child of this._children)\n s += child.toString(indent + 1)\n if (indent === 0)\n return s.trim()\n return s\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,114 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
|
|
3
|
+
//#region src/common/exec/promise.ts
|
|
4
|
+
/**
|
|
5
|
+
* Promise to be used with `await`. Example:
|
|
6
|
+
*
|
|
7
|
+
* ```
|
|
8
|
+
* const [promise, resolve, reject] = createPromise()
|
|
9
|
+
* setTimeout(() => {
|
|
10
|
+
* resolve(5)
|
|
11
|
+
* }, 50)
|
|
12
|
+
* const result = await promise
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
function createPromise() {
|
|
16
|
+
let resolve, reject;
|
|
17
|
+
return [
|
|
18
|
+
new Promise((_resolve, _reject) => {
|
|
19
|
+
resolve = _resolve;
|
|
20
|
+
reject = _reject;
|
|
21
|
+
}),
|
|
22
|
+
resolve,
|
|
23
|
+
reject
|
|
24
|
+
];
|
|
25
|
+
}
|
|
26
|
+
/** Sleep for `milliSeconds`. Example 1s: `await sleep(1000)` */
|
|
27
|
+
async function sleep(milliSeconds) {
|
|
28
|
+
return new Promise((resolve) => setTimeout(resolve, milliSeconds));
|
|
29
|
+
}
|
|
30
|
+
/** Same as `await sleep(0)`, just let the event loop execute. */
|
|
31
|
+
async function immediate() {
|
|
32
|
+
return new Promise((resolve) => setTimeout(resolve, 0));
|
|
33
|
+
}
|
|
34
|
+
async function timeout(promise, milliSeconds, timeoutValue = "timeoutReached") {
|
|
35
|
+
return new Promise((resolve, reject) => {
|
|
36
|
+
let done = false;
|
|
37
|
+
const timeout = setTimeout(() => {
|
|
38
|
+
done = true;
|
|
39
|
+
resolve(timeoutValue);
|
|
40
|
+
}, milliSeconds);
|
|
41
|
+
promise.then((result) => {
|
|
42
|
+
clearTimeout(timeout);
|
|
43
|
+
if (!done) resolve(result);
|
|
44
|
+
}).catch((err) => {
|
|
45
|
+
clearTimeout(timeout);
|
|
46
|
+
if (!done) reject(err);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
function isTimeout(value) {
|
|
51
|
+
return value === "timeoutReached" || value?.name === "Timeout reached";
|
|
52
|
+
}
|
|
53
|
+
async function tryTimeout(promise, milliSeconds) {
|
|
54
|
+
if (milliSeconds <= 0) return await promise;
|
|
55
|
+
return new Promise((resolve, reject) => {
|
|
56
|
+
let done = false;
|
|
57
|
+
const timeout = setTimeout(() => {
|
|
58
|
+
done = true;
|
|
59
|
+
reject(/* @__PURE__ */ new Error("Timeout reached"));
|
|
60
|
+
}, milliSeconds);
|
|
61
|
+
promise.then((result) => {
|
|
62
|
+
clearTimeout(timeout);
|
|
63
|
+
if (!done) resolve(result);
|
|
64
|
+
}).catch((err) => {
|
|
65
|
+
clearTimeout(timeout);
|
|
66
|
+
if (!done) reject(err);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* @deprecated use emitter.waitOn
|
|
72
|
+
* Wait for `event` on `obj` to emit. Resolve with result or reject on `timeout`
|
|
73
|
+
*/
|
|
74
|
+
function waitOn(obj, event, timeoutMS = 1e3) {
|
|
75
|
+
return new Promise((resolve, reject) => {
|
|
76
|
+
const fn = (value) => {
|
|
77
|
+
if (timer) {
|
|
78
|
+
clearTimeout(timer);
|
|
79
|
+
done();
|
|
80
|
+
resolve(value);
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
let done = () => {
|
|
84
|
+
timer = null;
|
|
85
|
+
if (obj.off) obj.off(event, fn);
|
|
86
|
+
else if (obj.removeEventListener) obj.removeEventListener(event, fn);
|
|
87
|
+
};
|
|
88
|
+
let timer = setTimeout(() => {
|
|
89
|
+
done();
|
|
90
|
+
reject(/* @__PURE__ */ new Error("Did not response in time"));
|
|
91
|
+
}, timeoutMS);
|
|
92
|
+
if (obj.on) obj.on(event, fn);
|
|
93
|
+
else if (obj.addEventListener) obj.addEventListener(event, fn);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
function isPromise(value) {
|
|
97
|
+
return Boolean(value && (value instanceof Promise || typeof value.then === "function"));
|
|
98
|
+
}
|
|
99
|
+
/** This is exactly what Prose.resolve(x) is supposed to be: return a Promise no matter what type x is */
|
|
100
|
+
function promisify(value) {
|
|
101
|
+
return Promise.resolve(value);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
//#endregion
|
|
105
|
+
exports.createPromise = createPromise;
|
|
106
|
+
exports.immediate = immediate;
|
|
107
|
+
exports.isPromise = isPromise;
|
|
108
|
+
exports.isTimeout = isTimeout;
|
|
109
|
+
exports.promisify = promisify;
|
|
110
|
+
exports.sleep = sleep;
|
|
111
|
+
exports.timeout = timeout;
|
|
112
|
+
exports.tryTimeout = tryTimeout;
|
|
113
|
+
exports.waitOn = waitOn;
|
|
2
114
|
//# sourceMappingURL=promise.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise.cjs","names":[],"sources":["../../../src/common/exec/promise.ts"],"sourcesContent":["/* eslint-disable ts/no-use-before-define */\n\n/**\n * Promise to be used with `await`. Example:\n *\n * ```\n * const [promise, resolve, reject] = createPromise()\n * setTimeout(() => {\n * resolve(5)\n * }, 50)\n * const result = await promise\n * ```\n */\nexport function createPromise<T>(): [Promise<T>, any, any] {\n let resolve, reject\n const promise = new Promise<T>((_resolve, _reject) => {\n resolve = _resolve\n reject = _reject\n })\n return [promise, resolve, reject]\n}\n\n/** Sleep for `milliSeconds`. Example 1s: `await sleep(1000)` */\nexport async function sleep(milliSeconds: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, milliSeconds))\n}\n\n/** Same as `await sleep(0)`, just let the event loop execute. */\nexport async function immediate(): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, 0))\n}\n\n// type Unwrap<T> = T extends Promise<infer U>\n// ? U\n// : T extends (...args: any) => Promise<infer U>\n// ? U\n// : T extends (...args: any) => infer U\n// ? U\n// : T\n\nexport async function timeout<T>(\n promise: Promise<T>,\n milliSeconds: number,\n timeoutValue = 'timeoutReached',\n): Promise<T | typeof timeoutValue> {\n return new Promise((resolve, reject) => {\n let done = false\n\n const timeout = setTimeout(() => {\n done = true\n resolve(timeoutValue)\n }, milliSeconds)\n\n promise\n .then((result) => {\n clearTimeout(timeout)\n if (!done)\n resolve(result)\n })\n .catch((err) => {\n clearTimeout(timeout)\n if (!done)\n reject(err)\n })\n })\n}\n\nexport function isTimeout(value: any): boolean {\n return value === 'timeoutReached' || value?.name === 'Timeout reached'\n}\n\nexport async function tryTimeout<T>(\n promise: Promise<T>,\n milliSeconds: number,\n): Promise<T | undefined> {\n if (milliSeconds <= 0)\n return await promise\n\n return new Promise((resolve, reject) => {\n let done = false\n\n const timeout = setTimeout(() => {\n done = true\n reject(new Error('Timeout reached'))\n }, milliSeconds)\n\n promise\n .then((result) => {\n clearTimeout(timeout)\n if (!done)\n resolve(result)\n })\n .catch((err) => {\n clearTimeout(timeout)\n if (!done)\n reject(err)\n })\n })\n}\n\n/**\n * @deprecated use emitter.waitOn\n * Wait for `event` on `obj` to emit. Resolve with result or reject on `timeout`\n */\nexport function waitOn(\n obj: any,\n event: string,\n timeoutMS = 1000,\n): Promise<any> {\n return new Promise((resolve, reject) => {\n const fn = (value: any) => {\n if (timer) {\n clearTimeout(timer)\n done()\n resolve(value)\n }\n }\n\n let done = () => {\n timer = null\n if (obj.off)\n obj.off(event, fn)\n else if (obj.removeEventListener)\n obj.removeEventListener(event, fn)\n // else\n // log.warn('No remove listener method found for', obj, event)\n }\n\n let timer: any = setTimeout(() => {\n done()\n reject(new Error('Did not response in time'))\n }, timeoutMS)\n\n if (obj.on)\n obj.on(event, fn)\n else if (obj.addEventListener)\n obj.addEventListener(event, fn)\n // else\n // log.warn('No listener method found for', obj)\n })\n}\n\nexport function isPromise<T>(value: Promise<T> | T): value is Promise<T> {\n return Boolean(value && (value instanceof Promise || typeof (value as any).then === 'function'))\n}\n\n/** This is exactly what Prose.resolve(x) is supposed to be: return a Promise no matter what type x is */\nexport function promisify<T>(value: Promise<T> | T): Promise<T> {\n return Promise.resolve(value)\n}\n\n// // https://github.com/unjs/items-promise\n\n// /**\n// * Run tasks one by one by calling fn(task, previous) in a promise chain.\n// * Return value is of type Promise<*> which resolves to the last fn result.\n// */\n// export async function serial(tasks: any, fn: any) {\n// return tasks.reduce(\n// (promise: Promise<any>, task: any) =>\n// promise.then((previous) => fn(task, previous)),\n// Promise.resolve(null)\n// )\n// }\n\n// /**\n// * Run all tasks in parallel by calling fn(tasks) and await using Promise.all.\n// * Return value is of type Promise<*[]> which resolves to results of all fns in an array.\n// */\n// export async function parallel(tasks: any[], fn: any): Promise<any[]> {\n// return Promise.all(tasks.map((task) => fn(task)))\n// }\n\n//\n\n/**\n * Like ReturnType but for async functions.\n * From https://www.jpwilliams.dev/how-to-unpack-the-return-type-of-a-promise-in-typescript\n */\nexport type AsyncReturnType<T extends (...args: any) => any> = T extends (\n ...args: any\n) => Promise<infer U>\n ? U\n : T extends (...args: any) => infer U\n ? U\n : any\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"promise.cjs","names":[],"sources":["../../../src/common/exec/promise.ts"],"sourcesContent":["/* eslint-disable ts/no-use-before-define */\n\n/**\n * Promise to be used with `await`. Example:\n *\n * ```\n * const [promise, resolve, reject] = createPromise()\n * setTimeout(() => {\n * resolve(5)\n * }, 50)\n * const result = await promise\n * ```\n */\nexport function createPromise<T>(): [Promise<T>, any, any] {\n let resolve, reject\n const promise = new Promise<T>((_resolve, _reject) => {\n resolve = _resolve\n reject = _reject\n })\n return [promise, resolve, reject]\n}\n\n/** Sleep for `milliSeconds`. Example 1s: `await sleep(1000)` */\nexport async function sleep(milliSeconds: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, milliSeconds))\n}\n\n/** Same as `await sleep(0)`, just let the event loop execute. */\nexport async function immediate(): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, 0))\n}\n\n// type Unwrap<T> = T extends Promise<infer U>\n// ? U\n// : T extends (...args: any) => Promise<infer U>\n// ? U\n// : T extends (...args: any) => infer U\n// ? U\n// : T\n\nexport async function timeout<T>(\n promise: Promise<T>,\n milliSeconds: number,\n timeoutValue = 'timeoutReached',\n): Promise<T | typeof timeoutValue> {\n return new Promise((resolve, reject) => {\n let done = false\n\n const timeout = setTimeout(() => {\n done = true\n resolve(timeoutValue)\n }, milliSeconds)\n\n promise\n .then((result) => {\n clearTimeout(timeout)\n if (!done)\n resolve(result)\n })\n .catch((err) => {\n clearTimeout(timeout)\n if (!done)\n reject(err)\n })\n })\n}\n\nexport function isTimeout(value: any): boolean {\n return value === 'timeoutReached' || value?.name === 'Timeout reached'\n}\n\nexport async function tryTimeout<T>(\n promise: Promise<T>,\n milliSeconds: number,\n): Promise<T | undefined> {\n if (milliSeconds <= 0)\n return await promise\n\n return new Promise((resolve, reject) => {\n let done = false\n\n const timeout = setTimeout(() => {\n done = true\n reject(new Error('Timeout reached'))\n }, milliSeconds)\n\n promise\n .then((result) => {\n clearTimeout(timeout)\n if (!done)\n resolve(result)\n })\n .catch((err) => {\n clearTimeout(timeout)\n if (!done)\n reject(err)\n })\n })\n}\n\n/**\n * @deprecated use emitter.waitOn\n * Wait for `event` on `obj` to emit. Resolve with result or reject on `timeout`\n */\nexport function waitOn(\n obj: any,\n event: string,\n timeoutMS = 1000,\n): Promise<any> {\n return new Promise((resolve, reject) => {\n const fn = (value: any) => {\n if (timer) {\n clearTimeout(timer)\n done()\n resolve(value)\n }\n }\n\n let done = () => {\n timer = null\n if (obj.off)\n obj.off(event, fn)\n else if (obj.removeEventListener)\n obj.removeEventListener(event, fn)\n // else\n // log.warn('No remove listener method found for', obj, event)\n }\n\n let timer: any = setTimeout(() => {\n done()\n reject(new Error('Did not response in time'))\n }, timeoutMS)\n\n if (obj.on)\n obj.on(event, fn)\n else if (obj.addEventListener)\n obj.addEventListener(event, fn)\n // else\n // log.warn('No listener method found for', obj)\n })\n}\n\nexport function isPromise<T>(value: Promise<T> | T): value is Promise<T> {\n return Boolean(value && (value instanceof Promise || typeof (value as any).then === 'function'))\n}\n\n/** This is exactly what Prose.resolve(x) is supposed to be: return a Promise no matter what type x is */\nexport function promisify<T>(value: Promise<T> | T): Promise<T> {\n return Promise.resolve(value)\n}\n\n// // https://github.com/unjs/items-promise\n\n// /**\n// * Run tasks one by one by calling fn(task, previous) in a promise chain.\n// * Return value is of type Promise<*> which resolves to the last fn result.\n// */\n// export async function serial(tasks: any, fn: any) {\n// return tasks.reduce(\n// (promise: Promise<any>, task: any) =>\n// promise.then((previous) => fn(task, previous)),\n// Promise.resolve(null)\n// )\n// }\n\n// /**\n// * Run all tasks in parallel by calling fn(tasks) and await using Promise.all.\n// * Return value is of type Promise<*[]> which resolves to results of all fns in an array.\n// */\n// export async function parallel(tasks: any[], fn: any): Promise<any[]> {\n// return Promise.all(tasks.map((task) => fn(task)))\n// }\n\n//\n\n/**\n * Like ReturnType but for async functions.\n * From https://www.jpwilliams.dev/how-to-unpack-the-return-type-of-a-promise-in-typescript\n */\nexport type AsyncReturnType<T extends (...args: any) => any> = T extends (\n ...args: any\n) => Promise<infer U>\n ? U\n : T extends (...args: any) => infer U\n ? U\n : any\n"],"mappings":";;;;;;;;;;;;;;AAaA,SAAgB,gBAA2C;CACzD,IAAI,SAAS;AAKb,QAAO;EAJS,IAAI,SAAY,UAAU,YAAY;AACpD,aAAU;AACV,YAAS;IACT;EACe;EAAS;EAAO;;;AAInC,eAAsB,MAAM,cAAqC;AAC/D,QAAO,IAAI,SAAQ,YAAW,WAAW,SAAS,aAAa,CAAC;;;AAIlE,eAAsB,YAA2B;AAC/C,QAAO,IAAI,SAAQ,YAAW,WAAW,SAAS,EAAE,CAAC;;AAWvD,eAAsB,QACpB,SACA,cACA,eAAe,kBACmB;AAClC,QAAO,IAAI,SAAS,SAAS,WAAW;EACtC,IAAI,OAAO;EAEX,MAAM,UAAU,iBAAiB;AAC/B,UAAO;AACP,WAAQ,aAAa;KACpB,aAAa;AAEhB,UACG,MAAM,WAAW;AAChB,gBAAa,QAAQ;AACrB,OAAI,CAAC,KACH,SAAQ,OAAO;IACjB,CACD,OAAO,QAAQ;AACd,gBAAa,QAAQ;AACrB,OAAI,CAAC,KACH,QAAO,IAAI;IACb;GACJ;;AAGJ,SAAgB,UAAU,OAAqB;AAC7C,QAAO,UAAU,oBAAoB,OAAO,SAAS;;AAGvD,eAAsB,WACpB,SACA,cACwB;AACxB,KAAI,gBAAgB,EAClB,QAAO,MAAM;AAEf,QAAO,IAAI,SAAS,SAAS,WAAW;EACtC,IAAI,OAAO;EAEX,MAAM,UAAU,iBAAiB;AAC/B,UAAO;AACP,0BAAO,IAAI,MAAM,kBAAkB,CAAC;KACnC,aAAa;AAEhB,UACG,MAAM,WAAW;AAChB,gBAAa,QAAQ;AACrB,OAAI,CAAC,KACH,SAAQ,OAAO;IACjB,CACD,OAAO,QAAQ;AACd,gBAAa,QAAQ;AACrB,OAAI,CAAC,KACH,QAAO,IAAI;IACb;GACJ;;;;;;AAOJ,SAAgB,OACd,KACA,OACA,YAAY,KACE;AACd,QAAO,IAAI,SAAS,SAAS,WAAW;EACtC,MAAM,MAAM,UAAe;AACzB,OAAI,OAAO;AACT,iBAAa,MAAM;AACnB,UAAM;AACN,YAAQ,MAAM;;;EAIlB,IAAI,aAAa;AACf,WAAQ;AACR,OAAI,IAAI,IACN,KAAI,IAAI,OAAO,GAAG;YACX,IAAI,oBACX,KAAI,oBAAoB,OAAO,GAAG;;EAKtC,IAAI,QAAa,iBAAiB;AAChC,SAAM;AACN,0BAAO,IAAI,MAAM,2BAA2B,CAAC;KAC5C,UAAU;AAEb,MAAI,IAAI,GACN,KAAI,GAAG,OAAO,GAAG;WACV,IAAI,iBACX,KAAI,iBAAiB,OAAO,GAAG;GAGjC;;AAGJ,SAAgB,UAAa,OAA4C;AACvE,QAAO,QAAQ,UAAU,iBAAiB,WAAW,OAAQ,MAAc,SAAS,YAAY;;;AAIlG,SAAgB,UAAa,OAAmC;AAC9D,QAAO,QAAQ,QAAQ,MAAM"}
|
|
@@ -1,2 +1,104 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/common/exec/promise.ts
|
|
2
|
+
/**
|
|
3
|
+
* Promise to be used with `await`. Example:
|
|
4
|
+
*
|
|
5
|
+
* ```
|
|
6
|
+
* const [promise, resolve, reject] = createPromise()
|
|
7
|
+
* setTimeout(() => {
|
|
8
|
+
* resolve(5)
|
|
9
|
+
* }, 50)
|
|
10
|
+
* const result = await promise
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
function createPromise() {
|
|
14
|
+
let resolve, reject;
|
|
15
|
+
return [
|
|
16
|
+
new Promise((_resolve, _reject) => {
|
|
17
|
+
resolve = _resolve;
|
|
18
|
+
reject = _reject;
|
|
19
|
+
}),
|
|
20
|
+
resolve,
|
|
21
|
+
reject
|
|
22
|
+
];
|
|
23
|
+
}
|
|
24
|
+
/** Sleep for `milliSeconds`. Example 1s: `await sleep(1000)` */
|
|
25
|
+
async function sleep(milliSeconds) {
|
|
26
|
+
return new Promise((resolve) => setTimeout(resolve, milliSeconds));
|
|
27
|
+
}
|
|
28
|
+
/** Same as `await sleep(0)`, just let the event loop execute. */
|
|
29
|
+
async function immediate() {
|
|
30
|
+
return new Promise((resolve) => setTimeout(resolve, 0));
|
|
31
|
+
}
|
|
32
|
+
async function timeout(promise, milliSeconds, timeoutValue = "timeoutReached") {
|
|
33
|
+
return new Promise((resolve, reject) => {
|
|
34
|
+
let done = false;
|
|
35
|
+
const timeout = setTimeout(() => {
|
|
36
|
+
done = true;
|
|
37
|
+
resolve(timeoutValue);
|
|
38
|
+
}, milliSeconds);
|
|
39
|
+
promise.then((result) => {
|
|
40
|
+
clearTimeout(timeout);
|
|
41
|
+
if (!done) resolve(result);
|
|
42
|
+
}).catch((err) => {
|
|
43
|
+
clearTimeout(timeout);
|
|
44
|
+
if (!done) reject(err);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function isTimeout(value) {
|
|
49
|
+
return value === "timeoutReached" || value?.name === "Timeout reached";
|
|
50
|
+
}
|
|
51
|
+
async function tryTimeout(promise, milliSeconds) {
|
|
52
|
+
if (milliSeconds <= 0) return await promise;
|
|
53
|
+
return new Promise((resolve, reject) => {
|
|
54
|
+
let done = false;
|
|
55
|
+
const timeout = setTimeout(() => {
|
|
56
|
+
done = true;
|
|
57
|
+
reject(/* @__PURE__ */ new Error("Timeout reached"));
|
|
58
|
+
}, milliSeconds);
|
|
59
|
+
promise.then((result) => {
|
|
60
|
+
clearTimeout(timeout);
|
|
61
|
+
if (!done) resolve(result);
|
|
62
|
+
}).catch((err) => {
|
|
63
|
+
clearTimeout(timeout);
|
|
64
|
+
if (!done) reject(err);
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* @deprecated use emitter.waitOn
|
|
70
|
+
* Wait for `event` on `obj` to emit. Resolve with result or reject on `timeout`
|
|
71
|
+
*/
|
|
72
|
+
function waitOn(obj, event, timeoutMS = 1e3) {
|
|
73
|
+
return new Promise((resolve, reject) => {
|
|
74
|
+
const fn = (value) => {
|
|
75
|
+
if (timer) {
|
|
76
|
+
clearTimeout(timer);
|
|
77
|
+
done();
|
|
78
|
+
resolve(value);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
let done = () => {
|
|
82
|
+
timer = null;
|
|
83
|
+
if (obj.off) obj.off(event, fn);
|
|
84
|
+
else if (obj.removeEventListener) obj.removeEventListener(event, fn);
|
|
85
|
+
};
|
|
86
|
+
let timer = setTimeout(() => {
|
|
87
|
+
done();
|
|
88
|
+
reject(/* @__PURE__ */ new Error("Did not response in time"));
|
|
89
|
+
}, timeoutMS);
|
|
90
|
+
if (obj.on) obj.on(event, fn);
|
|
91
|
+
else if (obj.addEventListener) obj.addEventListener(event, fn);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
function isPromise(value) {
|
|
95
|
+
return Boolean(value && (value instanceof Promise || typeof value.then === "function"));
|
|
96
|
+
}
|
|
97
|
+
/** This is exactly what Prose.resolve(x) is supposed to be: return a Promise no matter what type x is */
|
|
98
|
+
function promisify(value) {
|
|
99
|
+
return Promise.resolve(value);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
//#endregion
|
|
103
|
+
export { createPromise, immediate, isPromise, isTimeout, promisify, sleep, timeout, tryTimeout, waitOn };
|
|
2
104
|
//# sourceMappingURL=promise.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise.mjs","names":[],"sources":["../../../src/common/exec/promise.ts"],"sourcesContent":["/* eslint-disable ts/no-use-before-define */\n\n/**\n * Promise to be used with `await`. Example:\n *\n * ```\n * const [promise, resolve, reject] = createPromise()\n * setTimeout(() => {\n * resolve(5)\n * }, 50)\n * const result = await promise\n * ```\n */\nexport function createPromise<T>(): [Promise<T>, any, any] {\n let resolve, reject\n const promise = new Promise<T>((_resolve, _reject) => {\n resolve = _resolve\n reject = _reject\n })\n return [promise, resolve, reject]\n}\n\n/** Sleep for `milliSeconds`. Example 1s: `await sleep(1000)` */\nexport async function sleep(milliSeconds: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, milliSeconds))\n}\n\n/** Same as `await sleep(0)`, just let the event loop execute. */\nexport async function immediate(): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, 0))\n}\n\n// type Unwrap<T> = T extends Promise<infer U>\n// ? U\n// : T extends (...args: any) => Promise<infer U>\n// ? U\n// : T extends (...args: any) => infer U\n// ? U\n// : T\n\nexport async function timeout<T>(\n promise: Promise<T>,\n milliSeconds: number,\n timeoutValue = 'timeoutReached',\n): Promise<T | typeof timeoutValue> {\n return new Promise((resolve, reject) => {\n let done = false\n\n const timeout = setTimeout(() => {\n done = true\n resolve(timeoutValue)\n }, milliSeconds)\n\n promise\n .then((result) => {\n clearTimeout(timeout)\n if (!done)\n resolve(result)\n })\n .catch((err) => {\n clearTimeout(timeout)\n if (!done)\n reject(err)\n })\n })\n}\n\nexport function isTimeout(value: any): boolean {\n return value === 'timeoutReached' || value?.name === 'Timeout reached'\n}\n\nexport async function tryTimeout<T>(\n promise: Promise<T>,\n milliSeconds: number,\n): Promise<T | undefined> {\n if (milliSeconds <= 0)\n return await promise\n\n return new Promise((resolve, reject) => {\n let done = false\n\n const timeout = setTimeout(() => {\n done = true\n reject(new Error('Timeout reached'))\n }, milliSeconds)\n\n promise\n .then((result) => {\n clearTimeout(timeout)\n if (!done)\n resolve(result)\n })\n .catch((err) => {\n clearTimeout(timeout)\n if (!done)\n reject(err)\n })\n })\n}\n\n/**\n * @deprecated use emitter.waitOn\n * Wait for `event` on `obj` to emit. Resolve with result or reject on `timeout`\n */\nexport function waitOn(\n obj: any,\n event: string,\n timeoutMS = 1000,\n): Promise<any> {\n return new Promise((resolve, reject) => {\n const fn = (value: any) => {\n if (timer) {\n clearTimeout(timer)\n done()\n resolve(value)\n }\n }\n\n let done = () => {\n timer = null\n if (obj.off)\n obj.off(event, fn)\n else if (obj.removeEventListener)\n obj.removeEventListener(event, fn)\n // else\n // log.warn('No remove listener method found for', obj, event)\n }\n\n let timer: any = setTimeout(() => {\n done()\n reject(new Error('Did not response in time'))\n }, timeoutMS)\n\n if (obj.on)\n obj.on(event, fn)\n else if (obj.addEventListener)\n obj.addEventListener(event, fn)\n // else\n // log.warn('No listener method found for', obj)\n })\n}\n\nexport function isPromise<T>(value: Promise<T> | T): value is Promise<T> {\n return Boolean(value && (value instanceof Promise || typeof (value as any).then === 'function'))\n}\n\n/** This is exactly what Prose.resolve(x) is supposed to be: return a Promise no matter what type x is */\nexport function promisify<T>(value: Promise<T> | T): Promise<T> {\n return Promise.resolve(value)\n}\n\n// // https://github.com/unjs/items-promise\n\n// /**\n// * Run tasks one by one by calling fn(task, previous) in a promise chain.\n// * Return value is of type Promise<*> which resolves to the last fn result.\n// */\n// export async function serial(tasks: any, fn: any) {\n// return tasks.reduce(\n// (promise: Promise<any>, task: any) =>\n// promise.then((previous) => fn(task, previous)),\n// Promise.resolve(null)\n// )\n// }\n\n// /**\n// * Run all tasks in parallel by calling fn(tasks) and await using Promise.all.\n// * Return value is of type Promise<*[]> which resolves to results of all fns in an array.\n// */\n// export async function parallel(tasks: any[], fn: any): Promise<any[]> {\n// return Promise.all(tasks.map((task) => fn(task)))\n// }\n\n//\n\n/**\n * Like ReturnType but for async functions.\n * From https://www.jpwilliams.dev/how-to-unpack-the-return-type-of-a-promise-in-typescript\n */\nexport type AsyncReturnType<T extends (...args: any) => any> = T extends (\n ...args: any\n) => Promise<infer U>\n ? U\n : T extends (...args: any) => infer U\n ? U\n : any\n"],"mappings":"AAaA,SAAgB,
|
|
1
|
+
{"version":3,"file":"promise.mjs","names":[],"sources":["../../../src/common/exec/promise.ts"],"sourcesContent":["/* eslint-disable ts/no-use-before-define */\n\n/**\n * Promise to be used with `await`. Example:\n *\n * ```\n * const [promise, resolve, reject] = createPromise()\n * setTimeout(() => {\n * resolve(5)\n * }, 50)\n * const result = await promise\n * ```\n */\nexport function createPromise<T>(): [Promise<T>, any, any] {\n let resolve, reject\n const promise = new Promise<T>((_resolve, _reject) => {\n resolve = _resolve\n reject = _reject\n })\n return [promise, resolve, reject]\n}\n\n/** Sleep for `milliSeconds`. Example 1s: `await sleep(1000)` */\nexport async function sleep(milliSeconds: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, milliSeconds))\n}\n\n/** Same as `await sleep(0)`, just let the event loop execute. */\nexport async function immediate(): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, 0))\n}\n\n// type Unwrap<T> = T extends Promise<infer U>\n// ? U\n// : T extends (...args: any) => Promise<infer U>\n// ? U\n// : T extends (...args: any) => infer U\n// ? U\n// : T\n\nexport async function timeout<T>(\n promise: Promise<T>,\n milliSeconds: number,\n timeoutValue = 'timeoutReached',\n): Promise<T | typeof timeoutValue> {\n return new Promise((resolve, reject) => {\n let done = false\n\n const timeout = setTimeout(() => {\n done = true\n resolve(timeoutValue)\n }, milliSeconds)\n\n promise\n .then((result) => {\n clearTimeout(timeout)\n if (!done)\n resolve(result)\n })\n .catch((err) => {\n clearTimeout(timeout)\n if (!done)\n reject(err)\n })\n })\n}\n\nexport function isTimeout(value: any): boolean {\n return value === 'timeoutReached' || value?.name === 'Timeout reached'\n}\n\nexport async function tryTimeout<T>(\n promise: Promise<T>,\n milliSeconds: number,\n): Promise<T | undefined> {\n if (milliSeconds <= 0)\n return await promise\n\n return new Promise((resolve, reject) => {\n let done = false\n\n const timeout = setTimeout(() => {\n done = true\n reject(new Error('Timeout reached'))\n }, milliSeconds)\n\n promise\n .then((result) => {\n clearTimeout(timeout)\n if (!done)\n resolve(result)\n })\n .catch((err) => {\n clearTimeout(timeout)\n if (!done)\n reject(err)\n })\n })\n}\n\n/**\n * @deprecated use emitter.waitOn\n * Wait for `event` on `obj` to emit. Resolve with result or reject on `timeout`\n */\nexport function waitOn(\n obj: any,\n event: string,\n timeoutMS = 1000,\n): Promise<any> {\n return new Promise((resolve, reject) => {\n const fn = (value: any) => {\n if (timer) {\n clearTimeout(timer)\n done()\n resolve(value)\n }\n }\n\n let done = () => {\n timer = null\n if (obj.off)\n obj.off(event, fn)\n else if (obj.removeEventListener)\n obj.removeEventListener(event, fn)\n // else\n // log.warn('No remove listener method found for', obj, event)\n }\n\n let timer: any = setTimeout(() => {\n done()\n reject(new Error('Did not response in time'))\n }, timeoutMS)\n\n if (obj.on)\n obj.on(event, fn)\n else if (obj.addEventListener)\n obj.addEventListener(event, fn)\n // else\n // log.warn('No listener method found for', obj)\n })\n}\n\nexport function isPromise<T>(value: Promise<T> | T): value is Promise<T> {\n return Boolean(value && (value instanceof Promise || typeof (value as any).then === 'function'))\n}\n\n/** This is exactly what Prose.resolve(x) is supposed to be: return a Promise no matter what type x is */\nexport function promisify<T>(value: Promise<T> | T): Promise<T> {\n return Promise.resolve(value)\n}\n\n// // https://github.com/unjs/items-promise\n\n// /**\n// * Run tasks one by one by calling fn(task, previous) in a promise chain.\n// * Return value is of type Promise<*> which resolves to the last fn result.\n// */\n// export async function serial(tasks: any, fn: any) {\n// return tasks.reduce(\n// (promise: Promise<any>, task: any) =>\n// promise.then((previous) => fn(task, previous)),\n// Promise.resolve(null)\n// )\n// }\n\n// /**\n// * Run all tasks in parallel by calling fn(tasks) and await using Promise.all.\n// * Return value is of type Promise<*[]> which resolves to results of all fns in an array.\n// */\n// export async function parallel(tasks: any[], fn: any): Promise<any[]> {\n// return Promise.all(tasks.map((task) => fn(task)))\n// }\n\n//\n\n/**\n * Like ReturnType but for async functions.\n * From https://www.jpwilliams.dev/how-to-unpack-the-return-type-of-a-promise-in-typescript\n */\nexport type AsyncReturnType<T extends (...args: any) => any> = T extends (\n ...args: any\n) => Promise<infer U>\n ? U\n : T extends (...args: any) => infer U\n ? U\n : any\n"],"mappings":";;;;;;;;;;;;AAaA,SAAgB,gBAA2C;CACzD,IAAI,SAAS;AAKb,QAAO;EAJS,IAAI,SAAY,UAAU,YAAY;AACpD,aAAU;AACV,YAAS;IACT;EACe;EAAS;EAAO;;;AAInC,eAAsB,MAAM,cAAqC;AAC/D,QAAO,IAAI,SAAQ,YAAW,WAAW,SAAS,aAAa,CAAC;;;AAIlE,eAAsB,YAA2B;AAC/C,QAAO,IAAI,SAAQ,YAAW,WAAW,SAAS,EAAE,CAAC;;AAWvD,eAAsB,QACpB,SACA,cACA,eAAe,kBACmB;AAClC,QAAO,IAAI,SAAS,SAAS,WAAW;EACtC,IAAI,OAAO;EAEX,MAAM,UAAU,iBAAiB;AAC/B,UAAO;AACP,WAAQ,aAAa;KACpB,aAAa;AAEhB,UACG,MAAM,WAAW;AAChB,gBAAa,QAAQ;AACrB,OAAI,CAAC,KACH,SAAQ,OAAO;IACjB,CACD,OAAO,QAAQ;AACd,gBAAa,QAAQ;AACrB,OAAI,CAAC,KACH,QAAO,IAAI;IACb;GACJ;;AAGJ,SAAgB,UAAU,OAAqB;AAC7C,QAAO,UAAU,oBAAoB,OAAO,SAAS;;AAGvD,eAAsB,WACpB,SACA,cACwB;AACxB,KAAI,gBAAgB,EAClB,QAAO,MAAM;AAEf,QAAO,IAAI,SAAS,SAAS,WAAW;EACtC,IAAI,OAAO;EAEX,MAAM,UAAU,iBAAiB;AAC/B,UAAO;AACP,0BAAO,IAAI,MAAM,kBAAkB,CAAC;KACnC,aAAa;AAEhB,UACG,MAAM,WAAW;AAChB,gBAAa,QAAQ;AACrB,OAAI,CAAC,KACH,SAAQ,OAAO;IACjB,CACD,OAAO,QAAQ;AACd,gBAAa,QAAQ;AACrB,OAAI,CAAC,KACH,QAAO,IAAI;IACb;GACJ;;;;;;AAOJ,SAAgB,OACd,KACA,OACA,YAAY,KACE;AACd,QAAO,IAAI,SAAS,SAAS,WAAW;EACtC,MAAM,MAAM,UAAe;AACzB,OAAI,OAAO;AACT,iBAAa,MAAM;AACnB,UAAM;AACN,YAAQ,MAAM;;;EAIlB,IAAI,aAAa;AACf,WAAQ;AACR,OAAI,IAAI,IACN,KAAI,IAAI,OAAO,GAAG;YACX,IAAI,oBACX,KAAI,oBAAoB,OAAO,GAAG;;EAKtC,IAAI,QAAa,iBAAiB;AAChC,SAAM;AACN,0BAAO,IAAI,MAAM,2BAA2B,CAAC;KAC5C,UAAU;AAEb,MAAI,IAAI,GACN,KAAI,GAAG,OAAO,GAAG;WACV,IAAI,iBACX,KAAI,iBAAiB,OAAO,GAAG;GAGjC;;AAGJ,SAAgB,UAAa,OAA4C;AACvE,QAAO,QAAQ,UAAU,iBAAiB,WAAW,OAAQ,MAAc,SAAS,YAAY;;;AAIlG,SAAgB,UAAa,OAAmC;AAC9D,QAAO,QAAQ,QAAQ,MAAM"}
|