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,2 +1,40 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_common_data_array = require('./array.cjs');
|
|
3
|
+
|
|
4
|
+
//#region src/common/data/signal.ts
|
|
5
|
+
/** Super simple signal implementation */
|
|
6
|
+
function useSignal(value, onChange) {
|
|
7
|
+
let signal = structuredClone(value);
|
|
8
|
+
const watchers = [];
|
|
9
|
+
function off(fn) {
|
|
10
|
+
require_common_data_array.arrayRemoveElement(watchers, fn);
|
|
11
|
+
}
|
|
12
|
+
function on(fn) {
|
|
13
|
+
watchers.push(fn);
|
|
14
|
+
return () => off(fn);
|
|
15
|
+
}
|
|
16
|
+
if (onChange) watchers.push(onChange);
|
|
17
|
+
const get = () => structuredClone(signal);
|
|
18
|
+
const set = (value) => {
|
|
19
|
+
if (value !== signal) {
|
|
20
|
+
const oldValue = signal;
|
|
21
|
+
signal = value;
|
|
22
|
+
watchers.forEach((fn) => fn(value, oldValue));
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const obj = [
|
|
26
|
+
get,
|
|
27
|
+
set,
|
|
28
|
+
on,
|
|
29
|
+
off
|
|
30
|
+
];
|
|
31
|
+
obj.get = get;
|
|
32
|
+
obj.set = set;
|
|
33
|
+
obj.on = on;
|
|
34
|
+
obj.off = off;
|
|
35
|
+
return obj;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
exports.useSignal = useSignal;
|
|
2
40
|
//# sourceMappingURL=signal.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal.cjs","names":[],"sources":["../../../src/common/data/signal.ts"],"sourcesContent":["import { arrayRemoveElement } from './array'\n\n// I'm aware of this one, but like mine better ;)\n// https://github.com/proposal-signals/proposal-signals\n\nexport type SignalWatcher<T> = (value: T, oldValue: T) => void\n\nexport type Signal<T> = [\n () => T,\n (value: T) => void,\n (fn: SignalWatcher<T>) => () => void,\n (fn: SignalWatcher<T>) => void,\n] & {\n get: () => T\n set: (value: T) => void\n on: (fn: SignalWatcher<T>) => () => void\n off: (fn: SignalWatcher<T>) => void\n}\n\n/** Super simple signal implementation */\nexport function useSignal<T = any>(value: T, onChange?: SignalWatcher<T>): Signal<T> {\n let signal = structuredClone(value)\n\n const watchers: SignalWatcher<T>[] = []\n\n function off(fn: SignalWatcher<T>) {\n arrayRemoveElement(watchers, fn)\n }\n\n function on(fn: SignalWatcher<T>) {\n watchers.push(fn)\n return () => off(fn)\n }\n\n if (onChange)\n watchers.push(onChange)\n\n const get = () => structuredClone(signal)\n\n const set = (value: T) => {\n if (value !== signal) {\n const oldValue = signal\n signal = value\n watchers.forEach(fn => fn(value, oldValue))\n }\n }\n\n const obj: any = [get, set, on, off]\n obj.get = get\n obj.set = set\n obj.on = on\n obj.off = off\n return obj\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"signal.cjs","names":[],"sources":["../../../src/common/data/signal.ts"],"sourcesContent":["import { arrayRemoveElement } from './array'\n\n// I'm aware of this one, but like mine better ;)\n// https://github.com/proposal-signals/proposal-signals\n\nexport type SignalWatcher<T> = (value: T, oldValue: T) => void\n\nexport type Signal<T> = [\n () => T,\n (value: T) => void,\n (fn: SignalWatcher<T>) => () => void,\n (fn: SignalWatcher<T>) => void,\n] & {\n get: () => T\n set: (value: T) => void\n on: (fn: SignalWatcher<T>) => () => void\n off: (fn: SignalWatcher<T>) => void\n}\n\n/** Super simple signal implementation */\nexport function useSignal<T = any>(value: T, onChange?: SignalWatcher<T>): Signal<T> {\n let signal = structuredClone(value)\n\n const watchers: SignalWatcher<T>[] = []\n\n function off(fn: SignalWatcher<T>) {\n arrayRemoveElement(watchers, fn)\n }\n\n function on(fn: SignalWatcher<T>) {\n watchers.push(fn)\n return () => off(fn)\n }\n\n if (onChange)\n watchers.push(onChange)\n\n const get = () => structuredClone(signal)\n\n const set = (value: T) => {\n if (value !== signal) {\n const oldValue = signal\n signal = value\n watchers.forEach(fn => fn(value, oldValue))\n }\n }\n\n const obj: any = [get, set, on, off]\n obj.get = get\n obj.set = set\n obj.on = on\n obj.off = off\n return obj\n}\n"],"mappings":";;;;;AAoBA,SAAgB,UAAmB,OAAU,UAAwC;CACnF,IAAI,SAAS,gBAAgB,MAAM;CAEnC,MAAM,WAA+B,EAAE;CAEvC,SAAS,IAAI,IAAsB;AACjC,+CAAmB,UAAU,GAAG;;CAGlC,SAAS,GAAG,IAAsB;AAChC,WAAS,KAAK,GAAG;AACjB,eAAa,IAAI,GAAG;;AAGtB,KAAI,SACF,UAAS,KAAK,SAAS;CAEzB,MAAM,YAAY,gBAAgB,OAAO;CAEzC,MAAM,OAAO,UAAa;AACxB,MAAI,UAAU,QAAQ;GACpB,MAAM,WAAW;AACjB,YAAS;AACT,YAAS,SAAQ,OAAM,GAAG,OAAO,SAAS,CAAC;;;CAI/C,MAAM,MAAW;EAAC;EAAK;EAAK;EAAI;EAAI;AACpC,KAAI,MAAM;AACV,KAAI,MAAM;AACV,KAAI,KAAK;AACT,KAAI,MAAM;AACV,QAAO"}
|
|
@@ -1,2 +1,39 @@
|
|
|
1
|
-
import{arrayRemoveElement
|
|
1
|
+
import { arrayRemoveElement } from "./array.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/common/data/signal.ts
|
|
4
|
+
/** Super simple signal implementation */
|
|
5
|
+
function useSignal(value, onChange) {
|
|
6
|
+
let signal = structuredClone(value);
|
|
7
|
+
const watchers = [];
|
|
8
|
+
function off(fn) {
|
|
9
|
+
arrayRemoveElement(watchers, fn);
|
|
10
|
+
}
|
|
11
|
+
function on(fn) {
|
|
12
|
+
watchers.push(fn);
|
|
13
|
+
return () => off(fn);
|
|
14
|
+
}
|
|
15
|
+
if (onChange) watchers.push(onChange);
|
|
16
|
+
const get = () => structuredClone(signal);
|
|
17
|
+
const set = (value) => {
|
|
18
|
+
if (value !== signal) {
|
|
19
|
+
const oldValue = signal;
|
|
20
|
+
signal = value;
|
|
21
|
+
watchers.forEach((fn) => fn(value, oldValue));
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
const obj = [
|
|
25
|
+
get,
|
|
26
|
+
set,
|
|
27
|
+
on,
|
|
28
|
+
off
|
|
29
|
+
];
|
|
30
|
+
obj.get = get;
|
|
31
|
+
obj.set = set;
|
|
32
|
+
obj.on = on;
|
|
33
|
+
obj.off = off;
|
|
34
|
+
return obj;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
export { useSignal };
|
|
2
39
|
//# sourceMappingURL=signal.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal.mjs","names":[],"sources":["../../../src/common/data/signal.ts"],"sourcesContent":["import { arrayRemoveElement } from './array'\n\n// I'm aware of this one, but like mine better ;)\n// https://github.com/proposal-signals/proposal-signals\n\nexport type SignalWatcher<T> = (value: T, oldValue: T) => void\n\nexport type Signal<T> = [\n () => T,\n (value: T) => void,\n (fn: SignalWatcher<T>) => () => void,\n (fn: SignalWatcher<T>) => void,\n] & {\n get: () => T\n set: (value: T) => void\n on: (fn: SignalWatcher<T>) => () => void\n off: (fn: SignalWatcher<T>) => void\n}\n\n/** Super simple signal implementation */\nexport function useSignal<T = any>(value: T, onChange?: SignalWatcher<T>): Signal<T> {\n let signal = structuredClone(value)\n\n const watchers: SignalWatcher<T>[] = []\n\n function off(fn: SignalWatcher<T>) {\n arrayRemoveElement(watchers, fn)\n }\n\n function on(fn: SignalWatcher<T>) {\n watchers.push(fn)\n return () => off(fn)\n }\n\n if (onChange)\n watchers.push(onChange)\n\n const get = () => structuredClone(signal)\n\n const set = (value: T) => {\n if (value !== signal) {\n const oldValue = signal\n signal = value\n watchers.forEach(fn => fn(value, oldValue))\n }\n }\n\n const obj: any = [get, set, on, off]\n obj.get = get\n obj.set = set\n obj.on = on\n obj.off = off\n return obj\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"signal.mjs","names":[],"sources":["../../../src/common/data/signal.ts"],"sourcesContent":["import { arrayRemoveElement } from './array'\n\n// I'm aware of this one, but like mine better ;)\n// https://github.com/proposal-signals/proposal-signals\n\nexport type SignalWatcher<T> = (value: T, oldValue: T) => void\n\nexport type Signal<T> = [\n () => T,\n (value: T) => void,\n (fn: SignalWatcher<T>) => () => void,\n (fn: SignalWatcher<T>) => void,\n] & {\n get: () => T\n set: (value: T) => void\n on: (fn: SignalWatcher<T>) => () => void\n off: (fn: SignalWatcher<T>) => void\n}\n\n/** Super simple signal implementation */\nexport function useSignal<T = any>(value: T, onChange?: SignalWatcher<T>): Signal<T> {\n let signal = structuredClone(value)\n\n const watchers: SignalWatcher<T>[] = []\n\n function off(fn: SignalWatcher<T>) {\n arrayRemoveElement(watchers, fn)\n }\n\n function on(fn: SignalWatcher<T>) {\n watchers.push(fn)\n return () => off(fn)\n }\n\n if (onChange)\n watchers.push(onChange)\n\n const get = () => structuredClone(signal)\n\n const set = (value: T) => {\n if (value !== signal) {\n const oldValue = signal\n signal = value\n watchers.forEach(fn => fn(value, oldValue))\n }\n }\n\n const obj: any = [get, set, on, off]\n obj.get = get\n obj.set = set\n obj.on = on\n obj.off = off\n return obj\n}\n"],"mappings":";;;;AAoBA,SAAgB,UAAmB,OAAU,UAAwC;CACnF,IAAI,SAAS,gBAAgB,MAAM;CAEnC,MAAM,WAA+B,EAAE;CAEvC,SAAS,IAAI,IAAsB;AACjC,qBAAmB,UAAU,GAAG;;CAGlC,SAAS,GAAG,IAAsB;AAChC,WAAS,KAAK,GAAG;AACjB,eAAa,IAAI,GAAG;;AAGtB,KAAI,SACF,UAAS,KAAK,SAAS;CAEzB,MAAM,YAAY,gBAAgB,OAAO;CAEzC,MAAM,OAAO,UAAa;AACxB,MAAI,UAAU,QAAQ;GACpB,MAAM,WAAW;AACjB,YAAS;AACT,YAAS,SAAQ,OAAM,GAAG,OAAO,SAAS,CAAC;;;CAI/C,MAAM,MAAW;EAAC;EAAK;EAAK;EAAI;EAAI;AACpC,KAAI,MAAM;AACV,KAAI,MAAM;AACV,KAAI,KAAK;AACT,KAAI,MAAM;AACV,QAAO"}
|
|
@@ -1,2 +1,36 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_common_data_math = require('./math.cjs');
|
|
3
|
+
|
|
4
|
+
//#region src/common/data/sortable.ts
|
|
5
|
+
function startSortWeight(items) {
|
|
6
|
+
return items.reduce((acc, item) => Math.min(acc, item.sort_weight || 0), 0) - 1 - require_common_data_math.getSecureRandomIfPossible();
|
|
7
|
+
}
|
|
8
|
+
function endSortWeight(items) {
|
|
9
|
+
return items.reduce((acc, item) => Math.max(acc, item.sort_weight || 0), 0) + 1 + require_common_data_math.getSecureRandomIfPossible();
|
|
10
|
+
}
|
|
11
|
+
function moveSortWeight(newIndex, oldIndex, items) {
|
|
12
|
+
const count = items.length;
|
|
13
|
+
const moveLower = newIndex < oldIndex;
|
|
14
|
+
if (count <= 0 || newIndex >= count - 1) return endSortWeight(items);
|
|
15
|
+
if (newIndex <= 0) return startSortWeight(items);
|
|
16
|
+
items = sortedItems([...items]);
|
|
17
|
+
const step = moveLower ? -1 : 0;
|
|
18
|
+
const lower = items[newIndex + step].sort_weight || 0;
|
|
19
|
+
const distance = (items[newIndex + step + 1].sort_weight || 0) - lower;
|
|
20
|
+
if (distance === 0) {
|
|
21
|
+
if (moveLower) return startSortWeight(items);
|
|
22
|
+
return endSortWeight(items);
|
|
23
|
+
}
|
|
24
|
+
return lower + distance / 2 + distance * .01 * (require_common_data_math.getSecureRandomIfPossible() - .5);
|
|
25
|
+
}
|
|
26
|
+
function sortedItems(items) {
|
|
27
|
+
items.sort((a, b) => (a.sort_weight || 0) - (b.sort_weight || 0));
|
|
28
|
+
return items;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
//#endregion
|
|
32
|
+
exports.endSortWeight = endSortWeight;
|
|
33
|
+
exports.moveSortWeight = moveSortWeight;
|
|
34
|
+
exports.sortedItems = sortedItems;
|
|
35
|
+
exports.startSortWeight = startSortWeight;
|
|
2
36
|
//# sourceMappingURL=sortable.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sortable.cjs","names":["getSecureRandomIfPossible"],"sources":["../../../src/common/data/sortable.ts"],"sourcesContent":["import { getSecureRandomIfPossible } from './math'\n\n// Get a sort_weight suitable for adding to top of list\n// Original idea https://holtwick.de/en/blog/smart-table-reordering\n\nexport interface SortableItem {\n sort_weight: number\n}\n\nexport function startSortWeight(items: SortableItem[]): number {\n return (\n items.reduce((acc, item) => Math.min(acc, item.sort_weight || 0), 0)\n - 1\n - getSecureRandomIfPossible()\n )\n}\n\n// Get a sort_weight suitable for adding to end of list\nexport function endSortWeight(items: SortableItem[]): number {\n return (\n items.reduce((acc, item) => Math.max(acc, item.sort_weight || 0), 0)\n + 1\n + getSecureRandomIfPossible()\n )\n}\n\n// The real magic\nexport function moveSortWeight(\n newIndex: number,\n oldIndex: number,\n items: SortableItem[],\n): number {\n const count = items.length\n\n const moveLower = newIndex < oldIndex\n if (count <= 0 || newIndex >= count - 1)\n return endSortWeight(items)\n\n if (newIndex <= 0)\n return startSortWeight(items)\n\n // Make sure they are sorted\n items = sortedItems([...items])\n\n const step = moveLower ? -1 : 0 // use Math.sign(?) for performance?\n const lower = items[newIndex + step].sort_weight || 0\n const upper = items[newIndex + step + 1].sort_weight || 0\n const distance = upper - lower\n if (distance === 0) {\n // Ugly list with no presets, make the best guess\n if (moveLower)\n return startSortWeight(items)\n\n return endSortWeight(items)\n }\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n}\n\nexport function sortedItems<T extends SortableItem>(items: T[]): T[] {\n items.sort((a, b) => (a.sort_weight || 0) - (b.sort_weight || 0))\n return items\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"sortable.cjs","names":["getSecureRandomIfPossible"],"sources":["../../../src/common/data/sortable.ts"],"sourcesContent":["import { getSecureRandomIfPossible } from './math'\n\n// Get a sort_weight suitable for adding to top of list\n// Original idea https://holtwick.de/en/blog/smart-table-reordering\n\nexport interface SortableItem {\n sort_weight: number\n}\n\nexport function startSortWeight(items: SortableItem[]): number {\n return (\n items.reduce((acc, item) => Math.min(acc, item.sort_weight || 0), 0)\n - 1\n - getSecureRandomIfPossible()\n )\n}\n\n// Get a sort_weight suitable for adding to end of list\nexport function endSortWeight(items: SortableItem[]): number {\n return (\n items.reduce((acc, item) => Math.max(acc, item.sort_weight || 0), 0)\n + 1\n + getSecureRandomIfPossible()\n )\n}\n\n// The real magic\nexport function moveSortWeight(\n newIndex: number,\n oldIndex: number,\n items: SortableItem[],\n): number {\n const count = items.length\n\n const moveLower = newIndex < oldIndex\n if (count <= 0 || newIndex >= count - 1)\n return endSortWeight(items)\n\n if (newIndex <= 0)\n return startSortWeight(items)\n\n // Make sure they are sorted\n items = sortedItems([...items])\n\n const step = moveLower ? -1 : 0 // use Math.sign(?) for performance?\n const lower = items[newIndex + step].sort_weight || 0\n const upper = items[newIndex + step + 1].sort_weight || 0\n const distance = upper - lower\n if (distance === 0) {\n // Ugly list with no presets, make the best guess\n if (moveLower)\n return startSortWeight(items)\n\n return endSortWeight(items)\n }\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n}\n\nexport function sortedItems<T extends SortableItem>(items: T[]): T[] {\n items.sort((a, b) => (a.sort_weight || 0) - (b.sort_weight || 0))\n return items\n}\n"],"mappings":";;;;AASA,SAAgB,gBAAgB,OAA+B;AAC7D,QACE,MAAM,QAAQ,KAAK,SAAS,KAAK,IAAI,KAAK,KAAK,eAAe,EAAE,EAAE,EAAE,GAClE,IACAA,oDAA2B;;AAKjC,SAAgB,cAAc,OAA+B;AAC3D,QACE,MAAM,QAAQ,KAAK,SAAS,KAAK,IAAI,KAAK,KAAK,eAAe,EAAE,EAAE,EAAE,GAClE,IACAA,oDAA2B;;AAKjC,SAAgB,eACd,UACA,UACA,OACQ;CACR,MAAM,QAAQ,MAAM;CAEpB,MAAM,YAAY,WAAW;AAC7B,KAAI,SAAS,KAAK,YAAY,QAAQ,EACpC,QAAO,cAAc,MAAM;AAE7B,KAAI,YAAY,EACd,QAAO,gBAAgB,MAAM;AAG/B,SAAQ,YAAY,CAAC,GAAG,MAAM,CAAC;CAE/B,MAAM,OAAO,YAAY,KAAK;CAC9B,MAAM,QAAQ,MAAM,WAAW,MAAM,eAAe;CAEpD,MAAM,YADQ,MAAM,WAAW,OAAO,GAAG,eAAe,KAC/B;AACzB,KAAI,aAAa,GAAG;AAElB,MAAI,UACF,QAAO,gBAAgB,MAAM;AAE/B,SAAO,cAAc,MAAM;;AAI7B,QAFe,QAAQ,WAAW,IACpB,WAAW,OAAQA,oDAA2B,GAAG;;AAIjE,SAAgB,YAAoC,OAAiB;AACnE,OAAM,MAAM,GAAG,OAAO,EAAE,eAAe,MAAM,EAAE,eAAe,GAAG;AACjE,QAAO"}
|
|
@@ -1,2 +1,32 @@
|
|
|
1
|
-
import{getSecureRandomIfPossible
|
|
1
|
+
import { getSecureRandomIfPossible } from "./math.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/common/data/sortable.ts
|
|
4
|
+
function startSortWeight(items) {
|
|
5
|
+
return items.reduce((acc, item) => Math.min(acc, item.sort_weight || 0), 0) - 1 - getSecureRandomIfPossible();
|
|
6
|
+
}
|
|
7
|
+
function endSortWeight(items) {
|
|
8
|
+
return items.reduce((acc, item) => Math.max(acc, item.sort_weight || 0), 0) + 1 + getSecureRandomIfPossible();
|
|
9
|
+
}
|
|
10
|
+
function moveSortWeight(newIndex, oldIndex, items) {
|
|
11
|
+
const count = items.length;
|
|
12
|
+
const moveLower = newIndex < oldIndex;
|
|
13
|
+
if (count <= 0 || newIndex >= count - 1) return endSortWeight(items);
|
|
14
|
+
if (newIndex <= 0) return startSortWeight(items);
|
|
15
|
+
items = sortedItems([...items]);
|
|
16
|
+
const step = moveLower ? -1 : 0;
|
|
17
|
+
const lower = items[newIndex + step].sort_weight || 0;
|
|
18
|
+
const distance = (items[newIndex + step + 1].sort_weight || 0) - lower;
|
|
19
|
+
if (distance === 0) {
|
|
20
|
+
if (moveLower) return startSortWeight(items);
|
|
21
|
+
return endSortWeight(items);
|
|
22
|
+
}
|
|
23
|
+
return lower + distance / 2 + distance * .01 * (getSecureRandomIfPossible() - .5);
|
|
24
|
+
}
|
|
25
|
+
function sortedItems(items) {
|
|
26
|
+
items.sort((a, b) => (a.sort_weight || 0) - (b.sort_weight || 0));
|
|
27
|
+
return items;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
//#endregion
|
|
31
|
+
export { endSortWeight, moveSortWeight, sortedItems, startSortWeight };
|
|
2
32
|
//# sourceMappingURL=sortable.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sortable.mjs","names":[],"sources":["../../../src/common/data/sortable.ts"],"sourcesContent":["import { getSecureRandomIfPossible } from './math'\n\n// Get a sort_weight suitable for adding to top of list\n// Original idea https://holtwick.de/en/blog/smart-table-reordering\n\nexport interface SortableItem {\n sort_weight: number\n}\n\nexport function startSortWeight(items: SortableItem[]): number {\n return (\n items.reduce((acc, item) => Math.min(acc, item.sort_weight || 0), 0)\n - 1\n - getSecureRandomIfPossible()\n )\n}\n\n// Get a sort_weight suitable for adding to end of list\nexport function endSortWeight(items: SortableItem[]): number {\n return (\n items.reduce((acc, item) => Math.max(acc, item.sort_weight || 0), 0)\n + 1\n + getSecureRandomIfPossible()\n )\n}\n\n// The real magic\nexport function moveSortWeight(\n newIndex: number,\n oldIndex: number,\n items: SortableItem[],\n): number {\n const count = items.length\n\n const moveLower = newIndex < oldIndex\n if (count <= 0 || newIndex >= count - 1)\n return endSortWeight(items)\n\n if (newIndex <= 0)\n return startSortWeight(items)\n\n // Make sure they are sorted\n items = sortedItems([...items])\n\n const step = moveLower ? -1 : 0 // use Math.sign(?) for performance?\n const lower = items[newIndex + step].sort_weight || 0\n const upper = items[newIndex + step + 1].sort_weight || 0\n const distance = upper - lower\n if (distance === 0) {\n // Ugly list with no presets, make the best guess\n if (moveLower)\n return startSortWeight(items)\n\n return endSortWeight(items)\n }\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n}\n\nexport function sortedItems<T extends SortableItem>(items: T[]): T[] {\n items.sort((a, b) => (a.sort_weight || 0) - (b.sort_weight || 0))\n return items\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"sortable.mjs","names":[],"sources":["../../../src/common/data/sortable.ts"],"sourcesContent":["import { getSecureRandomIfPossible } from './math'\n\n// Get a sort_weight suitable for adding to top of list\n// Original idea https://holtwick.de/en/blog/smart-table-reordering\n\nexport interface SortableItem {\n sort_weight: number\n}\n\nexport function startSortWeight(items: SortableItem[]): number {\n return (\n items.reduce((acc, item) => Math.min(acc, item.sort_weight || 0), 0)\n - 1\n - getSecureRandomIfPossible()\n )\n}\n\n// Get a sort_weight suitable for adding to end of list\nexport function endSortWeight(items: SortableItem[]): number {\n return (\n items.reduce((acc, item) => Math.max(acc, item.sort_weight || 0), 0)\n + 1\n + getSecureRandomIfPossible()\n )\n}\n\n// The real magic\nexport function moveSortWeight(\n newIndex: number,\n oldIndex: number,\n items: SortableItem[],\n): number {\n const count = items.length\n\n const moveLower = newIndex < oldIndex\n if (count <= 0 || newIndex >= count - 1)\n return endSortWeight(items)\n\n if (newIndex <= 0)\n return startSortWeight(items)\n\n // Make sure they are sorted\n items = sortedItems([...items])\n\n const step = moveLower ? -1 : 0 // use Math.sign(?) for performance?\n const lower = items[newIndex + step].sort_weight || 0\n const upper = items[newIndex + step + 1].sort_weight || 0\n const distance = upper - lower\n if (distance === 0) {\n // Ugly list with no presets, make the best guess\n if (moveLower)\n return startSortWeight(items)\n\n return endSortWeight(items)\n }\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n}\n\nexport function sortedItems<T extends SortableItem>(items: T[]): T[] {\n items.sort((a, b) => (a.sort_weight || 0) - (b.sort_weight || 0))\n return items\n}\n"],"mappings":";;;AASA,SAAgB,gBAAgB,OAA+B;AAC7D,QACE,MAAM,QAAQ,KAAK,SAAS,KAAK,IAAI,KAAK,KAAK,eAAe,EAAE,EAAE,EAAE,GAClE,IACA,2BAA2B;;AAKjC,SAAgB,cAAc,OAA+B;AAC3D,QACE,MAAM,QAAQ,KAAK,SAAS,KAAK,IAAI,KAAK,KAAK,eAAe,EAAE,EAAE,EAAE,GAClE,IACA,2BAA2B;;AAKjC,SAAgB,eACd,UACA,UACA,OACQ;CACR,MAAM,QAAQ,MAAM;CAEpB,MAAM,YAAY,WAAW;AAC7B,KAAI,SAAS,KAAK,YAAY,QAAQ,EACpC,QAAO,cAAc,MAAM;AAE7B,KAAI,YAAY,EACd,QAAO,gBAAgB,MAAM;AAG/B,SAAQ,YAAY,CAAC,GAAG,MAAM,CAAC;CAE/B,MAAM,OAAO,YAAY,KAAK;CAC9B,MAAM,QAAQ,MAAM,WAAW,MAAM,eAAe;CAEpD,MAAM,YADQ,MAAM,WAAW,OAAO,GAAG,eAAe,KAC/B;AACzB,KAAI,aAAa,GAAG;AAElB,MAAI,UACF,QAAO,gBAAgB,MAAM;AAE/B,SAAO,cAAc,MAAM;;AAI7B,QAFe,QAAQ,WAAW,IACpB,WAAW,OAAQ,2BAA2B,GAAG;;AAIjE,SAAgB,YAAoC,OAAiB;AACnE,OAAM,MAAM,GAAG,OAAO,EAAE,eAAe,MAAM,EAAE,eAAe,GAAG;AACjE,QAAO"}
|
|
@@ -1,2 +1,55 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_common_data_math = require('./math.cjs');
|
|
3
|
+
|
|
4
|
+
//#region src/common/data/sorted.ts
|
|
5
|
+
/** CRDT compatible sorting with a single operation. Default name is `sort` */
|
|
6
|
+
function useSorted(config = {}) {
|
|
7
|
+
const { getter = (item) => item.sort } = config;
|
|
8
|
+
/** Return sorted list from low to high. */
|
|
9
|
+
function items(items) {
|
|
10
|
+
items.sort((a, b) => (getter(a) || 0) - (getter(b) || 0));
|
|
11
|
+
return items;
|
|
12
|
+
}
|
|
13
|
+
/** Get a sort suitable for adding to start of list. */
|
|
14
|
+
function start(items) {
|
|
15
|
+
return items.reduce((acc, item) => Math.min(acc, getter(item) || 0), 0) - 1 - require_common_data_math.getSecureRandomIfPossible();
|
|
16
|
+
}
|
|
17
|
+
/** Get a sort suitable for adding to end of list. */
|
|
18
|
+
function end(items) {
|
|
19
|
+
return items.reduce((acc, item) => Math.max(acc, getter(item) || 0), 0) + 1 + require_common_data_math.getSecureRandomIfPossible();
|
|
20
|
+
}
|
|
21
|
+
/** Find a suitable value inbetween a lower and upper bound. */
|
|
22
|
+
function between(lower, upper) {
|
|
23
|
+
if (lower == null) lower = (upper ?? 0) - 1;
|
|
24
|
+
if (upper == null) upper = (lower ?? 0) + 1;
|
|
25
|
+
const distance = upper - lower;
|
|
26
|
+
return lower + distance / 2 + distance * .01 * (require_common_data_math.getSecureRandomIfPossible() - .5);
|
|
27
|
+
}
|
|
28
|
+
/** Mainly for drag and drop movements, where an item has to be moved to another index. Respects its own move as well. */
|
|
29
|
+
function move(newIndex, oldIndex, sortableItems) {
|
|
30
|
+
const count = sortableItems.length;
|
|
31
|
+
const moveLower = newIndex < oldIndex;
|
|
32
|
+
if (count <= 0 || newIndex >= count - 1) return end(sortableItems);
|
|
33
|
+
if (newIndex <= 0) return start(sortableItems);
|
|
34
|
+
sortableItems = items([...sortableItems]);
|
|
35
|
+
const step = moveLower ? -1 : 0;
|
|
36
|
+
const lower = getter(sortableItems[newIndex + step]) || 0;
|
|
37
|
+
const distance = (getter(sortableItems[newIndex + step + 1]) || 0) - lower;
|
|
38
|
+
if (distance === 0) {
|
|
39
|
+
if (moveLower) return start(sortableItems);
|
|
40
|
+
return end(sortableItems);
|
|
41
|
+
}
|
|
42
|
+
return lower + distance / 2 + distance * .01 * (require_common_data_math.getSecureRandomIfPossible() - .5);
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
start,
|
|
46
|
+
end,
|
|
47
|
+
between,
|
|
48
|
+
move,
|
|
49
|
+
items
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
//#endregion
|
|
54
|
+
exports.useSorted = useSorted;
|
|
2
55
|
//# sourceMappingURL=sorted.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sorted.cjs","names":["getSecureRandomIfPossible"],"sources":["../../../src/common/data/sorted.ts"],"sourcesContent":["import { getSecureRandomIfPossible } from './math'\n\n/** CRDT compatible sorting with a single operation. Default name is `sort` */\nexport function useSorted<S extends Record<string, any>>(\n config: {\n getter?: (item: S) => number\n // setter?: (item: S, value: number) => void\n } = {},\n) {\n const {\n getter = (item: any): number => item.sort,\n // setter = (item: any, value) => (item.sort = value),\n } = config\n\n /** Return sorted list from low to high. */\n function items<T extends S>(items: T[]): T[] {\n items.sort((a, b) => (getter(a) || 0) - (getter(b) || 0))\n return items\n }\n\n /** Get a sort suitable for adding to start of list. */\n function start(items: S[]): number {\n return (\n items.reduce((acc, item) => Math.min(acc, getter(item) || 0), 0) - 1 - getSecureRandomIfPossible()\n )\n }\n\n /** Get a sort suitable for adding to end of list. */\n function end(items: S[]): number {\n return (\n items.reduce((acc, item) => Math.max(acc, getter(item) || 0), 0) + 1 + getSecureRandomIfPossible()\n )\n }\n\n /** Find a suitable value inbetween a lower and upper bound. */\n function between(lower?: number, upper?: number): number {\n if (lower == null)\n lower = (upper ?? 0) - 1\n if (upper == null)\n upper = (lower ?? 0) + 1\n\n const distance = upper - lower\n // if (distance === 0)\n\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n }\n\n /** Mainly for drag and drop movements, where an item has to be moved to another index. Respects its own move as well. */\n function move(\n newIndex: number,\n oldIndex: number,\n sortableItems: S[],\n ): number {\n const count = sortableItems.length\n\n const moveLower = newIndex < oldIndex\n if (count <= 0 || newIndex >= count - 1)\n return end(sortableItems)\n\n if (newIndex <= 0)\n return start(sortableItems)\n\n // Make sure they are sorted\n sortableItems = items([...sortableItems])\n\n const step = moveLower ? -1 : 0 // use Math.sign(?) for performance?\n const lower = getter(sortableItems[newIndex + step]) || 0\n const upper = getter(sortableItems[newIndex + step + 1]) || 0\n const distance = upper - lower\n if (distance === 0) {\n // Ugly list with no presets, make the best guess\n if (moveLower)\n return start(sortableItems)\n\n return end(sortableItems)\n }\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n }\n\n return {\n start,\n end,\n between,\n move,\n items,\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"sorted.cjs","names":["getSecureRandomIfPossible"],"sources":["../../../src/common/data/sorted.ts"],"sourcesContent":["import { getSecureRandomIfPossible } from './math'\n\n/** CRDT compatible sorting with a single operation. Default name is `sort` */\nexport function useSorted<S extends Record<string, any>>(\n config: {\n getter?: (item: S) => number\n // setter?: (item: S, value: number) => void\n } = {},\n) {\n const {\n getter = (item: any): number => item.sort,\n // setter = (item: any, value) => (item.sort = value),\n } = config\n\n /** Return sorted list from low to high. */\n function items<T extends S>(items: T[]): T[] {\n items.sort((a, b) => (getter(a) || 0) - (getter(b) || 0))\n return items\n }\n\n /** Get a sort suitable for adding to start of list. */\n function start(items: S[]): number {\n return (\n items.reduce((acc, item) => Math.min(acc, getter(item) || 0), 0) - 1 - getSecureRandomIfPossible()\n )\n }\n\n /** Get a sort suitable for adding to end of list. */\n function end(items: S[]): number {\n return (\n items.reduce((acc, item) => Math.max(acc, getter(item) || 0), 0) + 1 + getSecureRandomIfPossible()\n )\n }\n\n /** Find a suitable value inbetween a lower and upper bound. */\n function between(lower?: number, upper?: number): number {\n if (lower == null)\n lower = (upper ?? 0) - 1\n if (upper == null)\n upper = (lower ?? 0) + 1\n\n const distance = upper - lower\n // if (distance === 0)\n\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n }\n\n /** Mainly for drag and drop movements, where an item has to be moved to another index. Respects its own move as well. */\n function move(\n newIndex: number,\n oldIndex: number,\n sortableItems: S[],\n ): number {\n const count = sortableItems.length\n\n const moveLower = newIndex < oldIndex\n if (count <= 0 || newIndex >= count - 1)\n return end(sortableItems)\n\n if (newIndex <= 0)\n return start(sortableItems)\n\n // Make sure they are sorted\n sortableItems = items([...sortableItems])\n\n const step = moveLower ? -1 : 0 // use Math.sign(?) for performance?\n const lower = getter(sortableItems[newIndex + step]) || 0\n const upper = getter(sortableItems[newIndex + step + 1]) || 0\n const distance = upper - lower\n if (distance === 0) {\n // Ugly list with no presets, make the best guess\n if (moveLower)\n return start(sortableItems)\n\n return end(sortableItems)\n }\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n }\n\n return {\n start,\n end,\n between,\n move,\n items,\n }\n}\n"],"mappings":";;;;;AAGA,SAAgB,UACd,SAGI,EAAE,EACN;CACA,MAAM,EACJ,UAAU,SAAsB,KAAK,SAEnC;;CAGJ,SAAS,MAAmB,OAAiB;AAC3C,QAAM,MAAM,GAAG,OAAO,OAAO,EAAE,IAAI,MAAM,OAAO,EAAE,IAAI,GAAG;AACzD,SAAO;;;CAIT,SAAS,MAAM,OAAoB;AACjC,SACE,MAAM,QAAQ,KAAK,SAAS,KAAK,IAAI,KAAK,OAAO,KAAK,IAAI,EAAE,EAAE,EAAE,GAAG,IAAIA,oDAA2B;;;CAKtG,SAAS,IAAI,OAAoB;AAC/B,SACE,MAAM,QAAQ,KAAK,SAAS,KAAK,IAAI,KAAK,OAAO,KAAK,IAAI,EAAE,EAAE,EAAE,GAAG,IAAIA,oDAA2B;;;CAKtG,SAAS,QAAQ,OAAgB,OAAwB;AACvD,MAAI,SAAS,KACX,UAAS,SAAS,KAAK;AACzB,MAAI,SAAS,KACX,UAAS,SAAS,KAAK;EAEzB,MAAM,WAAW,QAAQ;AAKzB,SAFe,QAAQ,WAAW,IACpB,WAAW,OAAQA,oDAA2B,GAAG;;;CAKjE,SAAS,KACP,UACA,UACA,eACQ;EACR,MAAM,QAAQ,cAAc;EAE5B,MAAM,YAAY,WAAW;AAC7B,MAAI,SAAS,KAAK,YAAY,QAAQ,EACpC,QAAO,IAAI,cAAc;AAE3B,MAAI,YAAY,EACd,QAAO,MAAM,cAAc;AAG7B,kBAAgB,MAAM,CAAC,GAAG,cAAc,CAAC;EAEzC,MAAM,OAAO,YAAY,KAAK;EAC9B,MAAM,QAAQ,OAAO,cAAc,WAAW,MAAM,IAAI;EAExD,MAAM,YADQ,OAAO,cAAc,WAAW,OAAO,GAAG,IAAI,KACnC;AACzB,MAAI,aAAa,GAAG;AAElB,OAAI,UACF,QAAO,MAAM,cAAc;AAE7B,UAAO,IAAI,cAAc;;AAI3B,SAFe,QAAQ,WAAW,IACpB,WAAW,OAAQA,oDAA2B,GAAG;;AAIjE,QAAO;EACL;EACA;EACA;EACA;EACA;EACD"}
|
|
@@ -1,2 +1,54 @@
|
|
|
1
|
-
import{getSecureRandomIfPossible
|
|
1
|
+
import { getSecureRandomIfPossible } from "./math.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/common/data/sorted.ts
|
|
4
|
+
/** CRDT compatible sorting with a single operation. Default name is `sort` */
|
|
5
|
+
function useSorted(config = {}) {
|
|
6
|
+
const { getter = (item) => item.sort } = config;
|
|
7
|
+
/** Return sorted list from low to high. */
|
|
8
|
+
function items(items) {
|
|
9
|
+
items.sort((a, b) => (getter(a) || 0) - (getter(b) || 0));
|
|
10
|
+
return items;
|
|
11
|
+
}
|
|
12
|
+
/** Get a sort suitable for adding to start of list. */
|
|
13
|
+
function start(items) {
|
|
14
|
+
return items.reduce((acc, item) => Math.min(acc, getter(item) || 0), 0) - 1 - getSecureRandomIfPossible();
|
|
15
|
+
}
|
|
16
|
+
/** Get a sort suitable for adding to end of list. */
|
|
17
|
+
function end(items) {
|
|
18
|
+
return items.reduce((acc, item) => Math.max(acc, getter(item) || 0), 0) + 1 + getSecureRandomIfPossible();
|
|
19
|
+
}
|
|
20
|
+
/** Find a suitable value inbetween a lower and upper bound. */
|
|
21
|
+
function between(lower, upper) {
|
|
22
|
+
if (lower == null) lower = (upper ?? 0) - 1;
|
|
23
|
+
if (upper == null) upper = (lower ?? 0) + 1;
|
|
24
|
+
const distance = upper - lower;
|
|
25
|
+
return lower + distance / 2 + distance * .01 * (getSecureRandomIfPossible() - .5);
|
|
26
|
+
}
|
|
27
|
+
/** Mainly for drag and drop movements, where an item has to be moved to another index. Respects its own move as well. */
|
|
28
|
+
function move(newIndex, oldIndex, sortableItems) {
|
|
29
|
+
const count = sortableItems.length;
|
|
30
|
+
const moveLower = newIndex < oldIndex;
|
|
31
|
+
if (count <= 0 || newIndex >= count - 1) return end(sortableItems);
|
|
32
|
+
if (newIndex <= 0) return start(sortableItems);
|
|
33
|
+
sortableItems = items([...sortableItems]);
|
|
34
|
+
const step = moveLower ? -1 : 0;
|
|
35
|
+
const lower = getter(sortableItems[newIndex + step]) || 0;
|
|
36
|
+
const distance = (getter(sortableItems[newIndex + step + 1]) || 0) - lower;
|
|
37
|
+
if (distance === 0) {
|
|
38
|
+
if (moveLower) return start(sortableItems);
|
|
39
|
+
return end(sortableItems);
|
|
40
|
+
}
|
|
41
|
+
return lower + distance / 2 + distance * .01 * (getSecureRandomIfPossible() - .5);
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
start,
|
|
45
|
+
end,
|
|
46
|
+
between,
|
|
47
|
+
move,
|
|
48
|
+
items
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
//#endregion
|
|
53
|
+
export { useSorted };
|
|
2
54
|
//# sourceMappingURL=sorted.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sorted.mjs","names":[],"sources":["../../../src/common/data/sorted.ts"],"sourcesContent":["import { getSecureRandomIfPossible } from './math'\n\n/** CRDT compatible sorting with a single operation. Default name is `sort` */\nexport function useSorted<S extends Record<string, any>>(\n config: {\n getter?: (item: S) => number\n // setter?: (item: S, value: number) => void\n } = {},\n) {\n const {\n getter = (item: any): number => item.sort,\n // setter = (item: any, value) => (item.sort = value),\n } = config\n\n /** Return sorted list from low to high. */\n function items<T extends S>(items: T[]): T[] {\n items.sort((a, b) => (getter(a) || 0) - (getter(b) || 0))\n return items\n }\n\n /** Get a sort suitable for adding to start of list. */\n function start(items: S[]): number {\n return (\n items.reduce((acc, item) => Math.min(acc, getter(item) || 0), 0) - 1 - getSecureRandomIfPossible()\n )\n }\n\n /** Get a sort suitable for adding to end of list. */\n function end(items: S[]): number {\n return (\n items.reduce((acc, item) => Math.max(acc, getter(item) || 0), 0) + 1 + getSecureRandomIfPossible()\n )\n }\n\n /** Find a suitable value inbetween a lower and upper bound. */\n function between(lower?: number, upper?: number): number {\n if (lower == null)\n lower = (upper ?? 0) - 1\n if (upper == null)\n upper = (lower ?? 0) + 1\n\n const distance = upper - lower\n // if (distance === 0)\n\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n }\n\n /** Mainly for drag and drop movements, where an item has to be moved to another index. Respects its own move as well. */\n function move(\n newIndex: number,\n oldIndex: number,\n sortableItems: S[],\n ): number {\n const count = sortableItems.length\n\n const moveLower = newIndex < oldIndex\n if (count <= 0 || newIndex >= count - 1)\n return end(sortableItems)\n\n if (newIndex <= 0)\n return start(sortableItems)\n\n // Make sure they are sorted\n sortableItems = items([...sortableItems])\n\n const step = moveLower ? -1 : 0 // use Math.sign(?) for performance?\n const lower = getter(sortableItems[newIndex + step]) || 0\n const upper = getter(sortableItems[newIndex + step + 1]) || 0\n const distance = upper - lower\n if (distance === 0) {\n // Ugly list with no presets, make the best guess\n if (moveLower)\n return start(sortableItems)\n\n return end(sortableItems)\n }\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n }\n\n return {\n start,\n end,\n between,\n move,\n items,\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"sorted.mjs","names":[],"sources":["../../../src/common/data/sorted.ts"],"sourcesContent":["import { getSecureRandomIfPossible } from './math'\n\n/** CRDT compatible sorting with a single operation. Default name is `sort` */\nexport function useSorted<S extends Record<string, any>>(\n config: {\n getter?: (item: S) => number\n // setter?: (item: S, value: number) => void\n } = {},\n) {\n const {\n getter = (item: any): number => item.sort,\n // setter = (item: any, value) => (item.sort = value),\n } = config\n\n /** Return sorted list from low to high. */\n function items<T extends S>(items: T[]): T[] {\n items.sort((a, b) => (getter(a) || 0) - (getter(b) || 0))\n return items\n }\n\n /** Get a sort suitable for adding to start of list. */\n function start(items: S[]): number {\n return (\n items.reduce((acc, item) => Math.min(acc, getter(item) || 0), 0) - 1 - getSecureRandomIfPossible()\n )\n }\n\n /** Get a sort suitable for adding to end of list. */\n function end(items: S[]): number {\n return (\n items.reduce((acc, item) => Math.max(acc, getter(item) || 0), 0) + 1 + getSecureRandomIfPossible()\n )\n }\n\n /** Find a suitable value inbetween a lower and upper bound. */\n function between(lower?: number, upper?: number): number {\n if (lower == null)\n lower = (upper ?? 0) - 1\n if (upper == null)\n upper = (lower ?? 0) + 1\n\n const distance = upper - lower\n // if (distance === 0)\n\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n }\n\n /** Mainly for drag and drop movements, where an item has to be moved to another index. Respects its own move as well. */\n function move(\n newIndex: number,\n oldIndex: number,\n sortableItems: S[],\n ): number {\n const count = sortableItems.length\n\n const moveLower = newIndex < oldIndex\n if (count <= 0 || newIndex >= count - 1)\n return end(sortableItems)\n\n if (newIndex <= 0)\n return start(sortableItems)\n\n // Make sure they are sorted\n sortableItems = items([...sortableItems])\n\n const step = moveLower ? -1 : 0 // use Math.sign(?) for performance?\n const lower = getter(sortableItems[newIndex + step]) || 0\n const upper = getter(sortableItems[newIndex + step + 1]) || 0\n const distance = upper - lower\n if (distance === 0) {\n // Ugly list with no presets, make the best guess\n if (moveLower)\n return start(sortableItems)\n\n return end(sortableItems)\n }\n const middle = lower + distance / 2\n const fuzzy = distance * 0.01 * (getSecureRandomIfPossible() - 0.5) // 1% fuzziness to avoid conflicts\n return middle + fuzzy\n }\n\n return {\n start,\n end,\n between,\n move,\n items,\n }\n}\n"],"mappings":";;;;AAGA,SAAgB,UACd,SAGI,EAAE,EACN;CACA,MAAM,EACJ,UAAU,SAAsB,KAAK,SAEnC;;CAGJ,SAAS,MAAmB,OAAiB;AAC3C,QAAM,MAAM,GAAG,OAAO,OAAO,EAAE,IAAI,MAAM,OAAO,EAAE,IAAI,GAAG;AACzD,SAAO;;;CAIT,SAAS,MAAM,OAAoB;AACjC,SACE,MAAM,QAAQ,KAAK,SAAS,KAAK,IAAI,KAAK,OAAO,KAAK,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,2BAA2B;;;CAKtG,SAAS,IAAI,OAAoB;AAC/B,SACE,MAAM,QAAQ,KAAK,SAAS,KAAK,IAAI,KAAK,OAAO,KAAK,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,2BAA2B;;;CAKtG,SAAS,QAAQ,OAAgB,OAAwB;AACvD,MAAI,SAAS,KACX,UAAS,SAAS,KAAK;AACzB,MAAI,SAAS,KACX,UAAS,SAAS,KAAK;EAEzB,MAAM,WAAW,QAAQ;AAKzB,SAFe,QAAQ,WAAW,IACpB,WAAW,OAAQ,2BAA2B,GAAG;;;CAKjE,SAAS,KACP,UACA,UACA,eACQ;EACR,MAAM,QAAQ,cAAc;EAE5B,MAAM,YAAY,WAAW;AAC7B,MAAI,SAAS,KAAK,YAAY,QAAQ,EACpC,QAAO,IAAI,cAAc;AAE3B,MAAI,YAAY,EACd,QAAO,MAAM,cAAc;AAG7B,kBAAgB,MAAM,CAAC,GAAG,cAAc,CAAC;EAEzC,MAAM,OAAO,YAAY,KAAK;EAC9B,MAAM,QAAQ,OAAO,cAAc,WAAW,MAAM,IAAI;EAExD,MAAM,YADQ,OAAO,cAAc,WAAW,OAAO,GAAG,IAAI,KACnC;AACzB,MAAI,aAAa,GAAG;AAElB,OAAI,UACF,QAAO,MAAM,cAAc;AAE7B,UAAO,IAAI,cAAc;;AAI3B,SAFe,QAAQ,WAAW,IACpB,WAAW,OAAQ,2BAA2B,GAAG;;AAIjE,QAAO;EACL;EACA;EACA;EACA;EACA;EACD"}
|
|
@@ -1,2 +1,241 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
|
|
3
|
+
//#region src/common/data/string-deburr.ts
|
|
4
|
+
/**
|
|
5
|
+
* The base implementation of `propertyOf` without support for deep paths.
|
|
6
|
+
*/
|
|
7
|
+
function basePropertyOf(object) {
|
|
8
|
+
return (key) => object == null ? void 0 : object[key];
|
|
9
|
+
}
|
|
10
|
+
/** Used to map Latin Unicode letters to basic Latin letters. */
|
|
11
|
+
const deburredLetters = {
|
|
12
|
+
À: "A",
|
|
13
|
+
Á: "A",
|
|
14
|
+
Â: "A",
|
|
15
|
+
Ã: "A",
|
|
16
|
+
Ä: "A",
|
|
17
|
+
Å: "A",
|
|
18
|
+
à: "a",
|
|
19
|
+
á: "a",
|
|
20
|
+
â: "a",
|
|
21
|
+
ã: "a",
|
|
22
|
+
ä: "a",
|
|
23
|
+
å: "a",
|
|
24
|
+
Ç: "C",
|
|
25
|
+
ç: "c",
|
|
26
|
+
Ð: "D",
|
|
27
|
+
ð: "d",
|
|
28
|
+
È: "E",
|
|
29
|
+
É: "E",
|
|
30
|
+
Ê: "E",
|
|
31
|
+
Ë: "E",
|
|
32
|
+
è: "e",
|
|
33
|
+
é: "e",
|
|
34
|
+
ê: "e",
|
|
35
|
+
ë: "e",
|
|
36
|
+
Ì: "I",
|
|
37
|
+
Í: "I",
|
|
38
|
+
Î: "I",
|
|
39
|
+
Ï: "I",
|
|
40
|
+
ì: "i",
|
|
41
|
+
í: "i",
|
|
42
|
+
î: "i",
|
|
43
|
+
ï: "i",
|
|
44
|
+
Ñ: "N",
|
|
45
|
+
ñ: "n",
|
|
46
|
+
Ò: "O",
|
|
47
|
+
Ó: "O",
|
|
48
|
+
Ô: "O",
|
|
49
|
+
Õ: "O",
|
|
50
|
+
Ö: "O",
|
|
51
|
+
Ø: "O",
|
|
52
|
+
ò: "o",
|
|
53
|
+
ó: "o",
|
|
54
|
+
ô: "o",
|
|
55
|
+
õ: "o",
|
|
56
|
+
ö: "o",
|
|
57
|
+
ø: "o",
|
|
58
|
+
Ù: "U",
|
|
59
|
+
Ú: "U",
|
|
60
|
+
Û: "U",
|
|
61
|
+
Ü: "U",
|
|
62
|
+
ù: "u",
|
|
63
|
+
ú: "u",
|
|
64
|
+
û: "u",
|
|
65
|
+
ü: "u",
|
|
66
|
+
Ý: "Y",
|
|
67
|
+
ý: "y",
|
|
68
|
+
ÿ: "y",
|
|
69
|
+
Æ: "Ae",
|
|
70
|
+
æ: "ae",
|
|
71
|
+
Þ: "Th",
|
|
72
|
+
þ: "th",
|
|
73
|
+
ß: "ss",
|
|
74
|
+
Ā: "A",
|
|
75
|
+
Ă: "A",
|
|
76
|
+
Ą: "A",
|
|
77
|
+
ā: "a",
|
|
78
|
+
ă: "a",
|
|
79
|
+
ą: "a",
|
|
80
|
+
Ć: "C",
|
|
81
|
+
Ĉ: "C",
|
|
82
|
+
Ċ: "C",
|
|
83
|
+
Č: "C",
|
|
84
|
+
ć: "c",
|
|
85
|
+
ĉ: "c",
|
|
86
|
+
ċ: "c",
|
|
87
|
+
č: "c",
|
|
88
|
+
Ď: "D",
|
|
89
|
+
Đ: "D",
|
|
90
|
+
ď: "d",
|
|
91
|
+
đ: "d",
|
|
92
|
+
Ē: "E",
|
|
93
|
+
Ĕ: "E",
|
|
94
|
+
Ė: "E",
|
|
95
|
+
Ę: "E",
|
|
96
|
+
Ě: "E",
|
|
97
|
+
ē: "e",
|
|
98
|
+
ĕ: "e",
|
|
99
|
+
ė: "e",
|
|
100
|
+
ę: "e",
|
|
101
|
+
ě: "e",
|
|
102
|
+
Ĝ: "G",
|
|
103
|
+
Ğ: "G",
|
|
104
|
+
Ġ: "G",
|
|
105
|
+
Ģ: "G",
|
|
106
|
+
ĝ: "g",
|
|
107
|
+
ğ: "g",
|
|
108
|
+
ġ: "g",
|
|
109
|
+
ģ: "g",
|
|
110
|
+
Ĥ: "H",
|
|
111
|
+
Ħ: "H",
|
|
112
|
+
ĥ: "h",
|
|
113
|
+
ħ: "h",
|
|
114
|
+
Ĩ: "I",
|
|
115
|
+
Ī: "I",
|
|
116
|
+
Ĭ: "I",
|
|
117
|
+
Į: "I",
|
|
118
|
+
İ: "I",
|
|
119
|
+
ĩ: "i",
|
|
120
|
+
ī: "i",
|
|
121
|
+
ĭ: "i",
|
|
122
|
+
į: "i",
|
|
123
|
+
ı: "i",
|
|
124
|
+
Ĵ: "J",
|
|
125
|
+
ĵ: "j",
|
|
126
|
+
Ķ: "K",
|
|
127
|
+
ķ: "k",
|
|
128
|
+
ĸ: "k",
|
|
129
|
+
Ĺ: "L",
|
|
130
|
+
Ļ: "L",
|
|
131
|
+
Ľ: "L",
|
|
132
|
+
Ŀ: "L",
|
|
133
|
+
Ł: "L",
|
|
134
|
+
ĺ: "l",
|
|
135
|
+
ļ: "l",
|
|
136
|
+
ľ: "l",
|
|
137
|
+
ŀ: "l",
|
|
138
|
+
ł: "l",
|
|
139
|
+
Ń: "N",
|
|
140
|
+
Ņ: "N",
|
|
141
|
+
Ň: "N",
|
|
142
|
+
Ŋ: "N",
|
|
143
|
+
ń: "n",
|
|
144
|
+
ņ: "n",
|
|
145
|
+
ň: "n",
|
|
146
|
+
ŋ: "n",
|
|
147
|
+
Ō: "O",
|
|
148
|
+
Ŏ: "O",
|
|
149
|
+
Ő: "O",
|
|
150
|
+
ō: "o",
|
|
151
|
+
ŏ: "o",
|
|
152
|
+
ő: "o",
|
|
153
|
+
Ŕ: "R",
|
|
154
|
+
Ŗ: "R",
|
|
155
|
+
Ř: "R",
|
|
156
|
+
ŕ: "r",
|
|
157
|
+
ŗ: "r",
|
|
158
|
+
ř: "r",
|
|
159
|
+
Ś: "S",
|
|
160
|
+
Ŝ: "S",
|
|
161
|
+
Ş: "S",
|
|
162
|
+
Š: "S",
|
|
163
|
+
ś: "s",
|
|
164
|
+
ŝ: "s",
|
|
165
|
+
ş: "s",
|
|
166
|
+
š: "s",
|
|
167
|
+
Ţ: "T",
|
|
168
|
+
Ť: "T",
|
|
169
|
+
Ŧ: "T",
|
|
170
|
+
ţ: "t",
|
|
171
|
+
ť: "t",
|
|
172
|
+
ŧ: "t",
|
|
173
|
+
Ũ: "U",
|
|
174
|
+
Ū: "U",
|
|
175
|
+
Ŭ: "U",
|
|
176
|
+
Ů: "U",
|
|
177
|
+
Ű: "U",
|
|
178
|
+
Ų: "U",
|
|
179
|
+
ũ: "u",
|
|
180
|
+
ū: "u",
|
|
181
|
+
ŭ: "u",
|
|
182
|
+
ů: "u",
|
|
183
|
+
ű: "u",
|
|
184
|
+
ų: "u",
|
|
185
|
+
Ŵ: "W",
|
|
186
|
+
ŵ: "w",
|
|
187
|
+
Ŷ: "Y",
|
|
188
|
+
ŷ: "y",
|
|
189
|
+
Ÿ: "Y",
|
|
190
|
+
Ź: "Z",
|
|
191
|
+
Ż: "Z",
|
|
192
|
+
Ž: "Z",
|
|
193
|
+
ź: "z",
|
|
194
|
+
ż: "z",
|
|
195
|
+
ž: "z",
|
|
196
|
+
IJ: "IJ",
|
|
197
|
+
ij: "ij",
|
|
198
|
+
Œ: "Oe",
|
|
199
|
+
œ: "oe",
|
|
200
|
+
ʼn: "'n",
|
|
201
|
+
ſ: "s"
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* Used by `deburr` to convert Latin-1 Supplement and Latin Extended-A
|
|
205
|
+
* letters to basic Latin letters.
|
|
206
|
+
*
|
|
207
|
+
* @private
|
|
208
|
+
* @param {string} letter The matched letter to deburr.
|
|
209
|
+
* @returns {string} Returns the deburred letter.
|
|
210
|
+
*/
|
|
211
|
+
let deburrLetter;
|
|
212
|
+
/** Used to match Latin Unicode letters (excluding mathematical operators). */
|
|
213
|
+
const reLatin = /[\xD8-\xF6\u0100-\u017F]/gi;
|
|
214
|
+
/**
|
|
215
|
+
* Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and
|
|
216
|
+
* [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).
|
|
217
|
+
*/
|
|
218
|
+
let reComboMark;
|
|
219
|
+
/**
|
|
220
|
+
* Deburrs `string` by converting
|
|
221
|
+
* [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)
|
|
222
|
+
* and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)
|
|
223
|
+
* letters to basic Latin letters and removing
|
|
224
|
+
* [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).
|
|
225
|
+
*
|
|
226
|
+
* @param {string} string The string to deburr.
|
|
227
|
+
* @returns {string} Returns the deburred string.
|
|
228
|
+
* @example
|
|
229
|
+
*
|
|
230
|
+
* deburr('déjà vu')
|
|
231
|
+
* // => 'deja vu'
|
|
232
|
+
*/
|
|
233
|
+
function deburr(string) {
|
|
234
|
+
if (reComboMark == null) reComboMark = RegExp(`[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]`, "g");
|
|
235
|
+
if (deburrLetter == null) deburrLetter = basePropertyOf(deburredLetters);
|
|
236
|
+
return string && string.replace(reLatin, deburrLetter).replace(reComboMark, "");
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
//#endregion
|
|
240
|
+
exports.deburr = deburr;
|
|
2
241
|
//# sourceMappingURL=string-deburr.cjs.map
|