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":"bin-SPdenYkw.mjs","names":[],"sources":["../src/common/data/basex-secure.ts","../src/common/data/bin.ts"],"sourcesContent":["/* scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\nimport { stringToUInt8Array, Uint8ArrayToString } from './bin'\n\n// Utilities\n/**\n * @__NO_SIDE_EFFECTS__\n */\nexport function assertNumber(n: number) {\n if (!Number.isSafeInteger(n)) throw new Error(`Wrong integer: ${n}`)\n}\nexport interface Coder<F, T> {\n encode(from: F): T\n decode(to: T): F\n}\n\nexport interface BytesCoder extends Coder<Uint8Array, string> {\n encode: (data: Uint8Array) => string\n decode: (str: string) => Uint8Array\n}\n\nfunction isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n )\n}\n\n// TODO: some recusive type inference so it would check correct order of input/output inside rest?\n// like <string, number>, <number, bytes>, <bytes, float>\nexport type BaseXChain = [Coder<any, any>, ...Coder<any, any>[]]\n// Extract info from Coder type\nexport type BaseXInput<F> = F extends Coder<infer T, any> ? T : never\nexport type BaseXOutput<F> = F extends Coder<any, infer T> ? T : never\n// Generic function for arrays\nexport type BaseXFirst<T> = T extends [infer U, ...any[]] ? U : never\nexport type BaseXLast<T> = T extends [...any[], infer U] ? U : never\nexport type BaseXTail<T> = T extends [any, ...infer U] ? U : never\n\nexport type BaseXAsChain<C extends BaseXChain, Rest = BaseXTail<C>> = {\n // C[K] = Coder<Input<C[K]>, Input<Rest[k]>>\n [K in keyof C]: Coder<BaseXInput<C[K]>, BaseXInput<K extends keyof Rest ? Rest[K] : any>>\n}\n\n// Publicly visible aliases prefixed with BaseX for clearer documentation\n// Remove old alias leftovers (we renamed core types to BaseX-prefixed names).\n\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction chain<T extends BaseXChain & BaseXAsChain<T>>(...args: T): Coder<BaseXInput<BaseXFirst<T>>, BaseXOutput<BaseXLast<T>>> {\n const id = (a: any) => a\n // Wrap call in closure so JIT can inline calls\n const wrap = (a: any, b: any) => (c: any) => a(b(c))\n // Construct chain of args[-1].encode(args[-2].encode([...]))\n const encode = args.map((x) => x.encode).reduceRight(wrap, id)\n // Construct chain of args[0].decode(args[1].decode(...))\n const decode = args.map((x) => x.decode).reduce(wrap, id)\n return { encode, decode }\n}\n\nexport type BaseXAlphabet = string[] | string\n/**\n * Encodes integer radix representation to array of strings using alphabet and back\n * @__NO_SIDE_EFFECTS__\n */\nfunction alphabet(alphabet: BaseXAlphabet): Coder<number[], string[]> {\n return {\n encode: (digits: number[]) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('alphabet.encode input should be an array of numbers')\n return digits.map((i) => {\n assertNumber(i)\n if (i < 0 || i >= alphabet.length)\n throw new Error(`Digit index outside alphabet: ${i} (alphabet: ${alphabet.length})`)\n return alphabet[i]!\n })\n },\n decode: (input: string[]) => {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('alphabet.decode input should be array of strings')\n return input.map((letter) => {\n if (typeof letter !== 'string')\n throw new Error(`alphabet.decode: not string element=${letter}`)\n const index = alphabet.indexOf(letter)\n if (index === -1) throw new Error(`Unknown letter: \"${letter}\". Allowed: ${alphabet}`)\n return index\n })\n },\n }\n}\n// Alias exported after Alphabet is declared (kept only for backwards compat if needed)\n\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction join(separator = ''): Coder<string[], string> {\n if (typeof separator !== 'string') throw new Error('join separator should be string')\n return {\n encode: (from) => {\n if (!Array.isArray(from) || (from.length && typeof from[0] !== 'string'))\n throw new Error('join.encode input should be array of strings')\n for (let i of from)\n if (typeof i !== 'string') throw new Error(`join.encode: non-string input=${i}`)\n return from.join(separator)\n },\n decode: (to) => {\n if (typeof to !== 'string') throw new Error('join.decode input should be string')\n return to.split(separator)\n },\n }\n}\n\n/**\n * Pad strings array so it has integer number of bits\n * @__NO_SIDE_EFFECTS__\n */\nfunction padding(bits: number, chr = '='): Coder<string[], string[]> {\n assertNumber(bits)\n if (typeof chr !== 'string') throw new Error('padding chr should be string')\n return {\n encode(data: string[]): string[] {\n if (!Array.isArray(data) || (data.length && typeof data[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings')\n for (let i of data)\n if (typeof i !== 'string') throw new Error(`padding.encode: non-string input=${i}`)\n while ((data.length * bits) % 8) data.push(chr)\n return data\n },\n decode(input: string[]): string[] {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings')\n for (let i of input)\n if (typeof i !== 'string') throw new Error(`padding.decode: non-string input=${i}`)\n let end = input.length\n if ((end * bits) % 8)\n throw new Error('Invalid padding: string should have whole number of bytes')\n for (; end > 0 && input[end - 1] === chr; end--) {\n if (!(((end - 1) * bits) % 8))\n throw new Error('Invalid padding: string has too much padding')\n }\n return input.slice(0, end)\n },\n }\n}\n\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction normalize<T>(fn: (val: T) => T): Coder<T, T> {\n if (typeof fn !== 'function') throw new Error('normalize fn should be function')\n return { encode: (from: T) => from, decode: (to: T) => fn(to) }\n}\n\n/**\n * Slow: O(n^2) time complexity\n * @__NO_SIDE_EFFECTS__\n */\nfunction convertRadix(data: number[], from: number, to: number): number[] {\n // base 1 is impossible\n if (from < 2) throw new Error(`convertRadix: wrong from=${from}, base cannot be less than 2`)\n if (to < 2) throw new Error(`convertRadix: wrong to=${to}, base cannot be less than 2`)\n if (!Array.isArray(data)) throw new Error('convertRadix: data should be array')\n if (!data.length) return []\n let pos = 0\n const res = []\n const digits = Array.from(data)\n digits.forEach((d) => {\n assertNumber(d)\n if (d < 0 || d >= from) throw new Error(`Wrong integer: ${d}`)\n })\n while (true) {\n let carry = 0\n let done = true\n for (let i = pos; i < digits.length; i++) {\n const digit = digits[i]!\n const digitBase = from * carry + digit\n if (\n !Number.isSafeInteger(digitBase) ||\n (from * carry) / from !== carry ||\n digitBase - digit !== from * carry\n ) {\n throw new Error('convertRadix: carry overflow')\n }\n carry = digitBase % to\n const rounded = Math.floor(digitBase / to)\n digits[i] = rounded\n if (!Number.isSafeInteger(rounded) || rounded * to + carry !== digitBase)\n throw new Error('convertRadix: carry overflow')\n if (!done) continue\n else if (!rounded) pos = i\n else done = false\n }\n res.push(carry)\n if (done) break\n }\n for (let i = 0; i < data.length - 1 && data[i] === 0; i++) res.push(0)\n return res.reverse()\n}\n\nconst gcd = /* @__NO_SIDE_EFFECTS__ */ (a: number, b: number): number => (!b ? a : gcd(b, a % b))\nconst radix2carry = /*@__NO_SIDE_EFFECTS__ */ (from: number, to: number) =>\n from + (to - gcd(from, to))\n/**\n * Implemented with numbers, because BigInt is 5x slower\n * @__NO_SIDE_EFFECTS__\n */\nfunction convertRadix2(data: number[], from: number, to: number, padding: boolean): number[] {\n if (!Array.isArray(data)) throw new Error('convertRadix2: data should be array')\n if (from <= 0 || from > 32) throw new Error(`convertRadix2: wrong from=${from}`)\n if (to <= 0 || to > 32) throw new Error(`convertRadix2: wrong to=${to}`)\n if (radix2carry(from, to) > 32) {\n throw new Error(\n `convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`\n )\n }\n let carry = 0\n let pos = 0 // bitwise position in current element\n const mask = 2 ** to - 1\n const res: number[] = []\n for (const n of data) {\n assertNumber(n)\n if (n >= 2 ** from) throw new Error(`convertRadix2: invalid data word=${n} from=${from}`)\n carry = (carry << from) | n\n if (pos + from > 32) throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`)\n pos += from\n for (; pos >= to; pos -= to) res.push(((carry >> (pos - to)) & mask) >>> 0)\n carry &= 2 ** pos - 1 // clean carry, otherwise it will cause overflow\n }\n carry = (carry << (to - pos)) & mask\n if (!padding && pos >= from) throw new Error('Excess padding')\n if (!padding && carry) throw new Error(`Non-zero padding: ${carry}`)\n if (padding && pos > 0) res.push(carry >>> 0)\n return res\n}\n\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix(num: number): Coder<Uint8Array, number[]> {\n assertNumber(num)\n return {\n encode: (bytes: Uint8Array) => {\n if (!isBytes(bytes)) throw new Error('radix.encode input should be Uint8Array')\n return convertRadix(Array.from(bytes), 2 ** 8, num)\n },\n decode: (digits: number[]) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix.decode input should be array of numbers')\n return Uint8Array.from(convertRadix(digits, num, 2 ** 8))\n },\n }\n}\n\n/**\n * If both bases are power of same number (like `2**8 <-> 2**64`),\n * there is a linear algorithm. For now we have implementation for power-of-two bases only.\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix2(bits: number, revPadding = false): Coder<Uint8Array, number[]> {\n assertNumber(bits)\n if (bits <= 0 || bits > 32) throw new Error('radix2: bits should be in (0..32]')\n if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32)\n throw new Error('radix2: carry overflow')\n return {\n encode: (bytes: Uint8Array) => {\n if (!isBytes(bytes)) throw new Error('radix2.encode input should be Uint8Array')\n return convertRadix2(Array.from(bytes), 8, bits, !revPadding)\n },\n decode: (digits: number[]) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix2.decode input should be array of numbers')\n return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding))\n },\n }\n}\n\ntype ArgumentTypes<F extends Function> = F extends (...args: infer A) => any ? A : never\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction unsafeWrapper<T extends (...args: any) => any>(fn: T) {\n if (typeof fn !== 'function') throw new Error('unsafeWrapper fn should be function')\n return function (...args: ArgumentTypes<T>): ReturnType<T> | void {\n try {\n return fn.apply(null, args)\n } catch (e) { }\n }\n}\n\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction checksum(\n len: number,\n fn: (data: Uint8Array) => Uint8Array\n): Coder<Uint8Array, Uint8Array> {\n assertNumber(len)\n if (typeof fn !== 'function') throw new Error('checksum fn should be function')\n return {\n encode(data: Uint8Array) {\n if (!isBytes(data)) throw new Error('checksum.encode: input should be Uint8Array')\n const checksum = fn(data).slice(0, len)\n const res = new Uint8Array(data.length + len)\n res.set(data)\n res.set(checksum, data.length)\n return res\n },\n decode(data: Uint8Array) {\n if (!isBytes(data)) throw new Error('checksum.decode: input should be Uint8Array')\n const payload = data.slice(0, -len)\n const newChecksum = fn(payload).slice(0, len)\n const oldChecksum = data.slice(-len)\n for (let i = 0; i < len; i++)\n if (newChecksum[i] !== oldChecksum[i]) throw new Error('Invalid checksum')\n return payload\n },\n }\n}\n\n// prettier-ignore\nexport const utils = {\n alphabet, chain, checksum, convertRadix, convertRadix2, radix, radix2, join, padding,\n}\n\n// RFC 4648 aka RFC 3548\n// ---------------------\nexport const base16: BytesCoder = /* @__PURE__ */ chain(\n radix2(4),\n alphabet('0123456789ABCDEF'),\n join('')\n)\nexport const base32: BytesCoder = /* @__PURE__ */ chain(\n radix2(5),\n alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'),\n padding(5),\n join('')\n)\nexport const base32nopad: BytesCoder = /* @__PURE__ */ chain(\n radix2(5),\n alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'),\n join('')\n)\nexport const base32hex: BytesCoder = /* @__PURE__ */ chain(\n radix2(5),\n alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'),\n padding(5),\n join('')\n)\nexport const base32hexnopad: BytesCoder = /* @__PURE__ */ chain(\n radix2(5),\n alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'),\n join('')\n)\nexport const base32agnoster: BytesCoder = /* @__PURE__ */ chain(\n radix2(5),\n alphabet('0123456789abcdefghjkmnpqrtuvwxyz'),\n join('')\n)\nexport const base32crockford: BytesCoder = /* @__PURE__ */ chain(\n radix2(5),\n alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'),\n join(''),\n normalize((s: string) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1'))\n)\nexport const base64: BytesCoder = /* @__PURE__ */ chain(\n radix2(6),\n alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'),\n padding(6),\n join('')\n)\nexport const base64nopad: BytesCoder = /* @__PURE__ */ chain(\n radix2(6),\n alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'),\n join('')\n)\nexport const base64url: BytesCoder = /* @__PURE__ */ chain(\n radix2(6),\n alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'),\n padding(6),\n join('')\n)\nexport const base64urlnopad: BytesCoder = /* @__PURE__ */ chain(\n radix2(6),\n alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'),\n join('')\n)\n\n// base58 code\n// -----------\nconst genBase58 = (abc: string) => chain(radix(58), alphabet(abc), join(''))\n\nexport const base58: BytesCoder = /* @__PURE__ */ genBase58(\n '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n)\nexport const base58flickr: BytesCoder = /* @__PURE__ */ genBase58(\n '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n)\nexport const base58xrp: BytesCoder = /* @__PURE__ */ genBase58(\n 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz'\n)\n\n// xmr ver is done in 8-byte blocks (which equals 11 chars in decoding). Last (non-full) block padded with '1' to size in XMR_BLOCK_LEN.\n// Block encoding significantly reduces quadratic complexity of base58.\n\n// Data len (index) -> encoded block len\nconst XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11]\nexport const base58xmr: BytesCoder = {\n encode(data: Uint8Array) {\n let res = ''\n for (let i = 0; i < data.length; i += 8) {\n const block = data.subarray(i, i + 8)\n res += base58.encode(block).padStart(XMR_BLOCK_LEN[block.length]!, '1')\n }\n return res\n },\n decode(str: string) {\n let res: number[] = []\n for (let i = 0; i < str.length; i += 11) {\n const slice = str.slice(i, i + 11)\n const blockLen = XMR_BLOCK_LEN.indexOf(slice.length)\n const block = base58.decode(slice)\n for (let j = 0; j < block.length - blockLen; j++) {\n if (block[j] !== 0) throw new Error('base58xmr: wrong padding')\n }\n res = res.concat(Array.from(block.slice(block.length - blockLen)))\n }\n return Uint8Array.from(res)\n },\n}\n\nexport const createBase58check = (sha256: (data: Uint8Array) => Uint8Array): BytesCoder =>\n chain(\n checksum(4, (data) => sha256(sha256(data))),\n base58\n )\n// legacy export, bad name\nexport const base58check = createBase58check\n\n// Bech32 code\n// -----------\nexport interface Bech32Decoded<Prefix extends string = string> {\n prefix: Prefix\n words: number[]\n}\nexport interface Bech32DecodedWithArray<Prefix extends string = string> {\n prefix: Prefix\n words: number[]\n bytes: Uint8Array\n}\n\nconst BECH_ALPHABET: Coder<number[], string> = /* @__PURE__ */ chain(\n alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'),\n join('')\n)\n\nconst POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3]\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction bech32Polymod(pre: number): number {\n const b = pre >> 25\n let chk = (pre & 0x1ffffff) << 5\n for (let i = 0; i < POLYMOD_GENERATORS.length; i++) {\n if (((b >> i) & 1) === 1) chk ^= POLYMOD_GENERATORS[i]!\n }\n return chk\n}\n\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction bechChecksum(prefix: string, words: number[], encodingConst = 1): string {\n const len = prefix.length\n let chk = 1\n for (let i = 0; i < len; i++) {\n const c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) throw new Error(`Invalid prefix (${prefix})`)\n chk = bech32Polymod(chk) ^ (c >> 5)\n }\n chk = bech32Polymod(chk)\n for (let i = 0; i < len; i++) chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f)\n for (let v of words) chk = bech32Polymod(chk) ^ v\n for (let i = 0; i < 6; i++) chk = bech32Polymod(chk)\n chk ^= encodingConst\n return BECH_ALPHABET.encode(convertRadix2([chk % 2 ** 30], 30, 5, false))\n}\n\nexport interface Bech32 {\n encode<Prefix extends string>(\n prefix: Prefix,\n words: number[] | Uint8Array,\n limit?: number | false\n ): `${Lowercase<Prefix>}1${string}`\n decode<Prefix extends string>(\n str: `${Prefix}1${string}`,\n limit?: number | false\n ): Bech32Decoded<Prefix>\n encodeFromBytes(prefix: string, bytes: Uint8Array): string\n decodeToBytes(str: string): Bech32DecodedWithArray\n decodeUnsafe(str: string, limit?: number | false): void | Bech32Decoded<string>\n fromWords(to: number[]): Uint8Array\n fromWordsUnsafe(to: number[]): void | Uint8Array\n toWords(from: Uint8Array): number[]\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction genBech32(encoding: 'bech32' | 'bech32m'): Bech32 {\n const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3\n const _words = radix2(5)\n const fromWords = _words.decode\n const toWords = _words.encode\n const fromWordsUnsafe = unsafeWrapper(fromWords)\n\n function encode<Prefix extends string>(\n prefix: Prefix,\n words: number[] | Uint8Array,\n limit: number | false = 90\n ): `${Lowercase<Prefix>}1${string}` {\n if (typeof prefix !== 'string')\n throw new Error(`bech32.encode prefix should be string, not ${typeof prefix}`)\n if (words instanceof Uint8Array) words = Array.from(words)\n if (!Array.isArray(words) || (words.length && typeof words[0] !== 'number'))\n throw new Error(`bech32.encode words should be array of numbers, not ${typeof words}`)\n if (prefix.length === 0) throw new TypeError(`Invalid prefix length ${prefix.length}`)\n const actualLength = prefix.length + 7 + words.length\n if (limit !== false && actualLength > limit)\n throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`)\n const lowered = prefix.toLowerCase()\n const sum = bechChecksum(lowered, words, ENCODING_CONST)\n return `${lowered}1${BECH_ALPHABET.encode(words)}${sum}` as `${Lowercase<Prefix>}1${string}`\n }\n\n function decode<Prefix extends string>(\n str: `${Prefix}1${string}`,\n limit?: number | false\n ): Bech32Decoded<Prefix>\n function decode(str: string, limit?: number | false): Bech32Decoded\n function decode(str: string, limit: number | false = 90): Bech32Decoded {\n if (typeof str !== 'string')\n throw new Error(`bech32.decode input should be string, not ${typeof str}`)\n if (str.length < 8 || (limit !== false && str.length > limit))\n throw new TypeError(`Wrong string length: ${str.length} (${str}). Expected (8..${limit})`)\n // don't allow mixed case\n const lowered = str.toLowerCase()\n if (str !== lowered && str !== str.toUpperCase())\n throw new Error(`String must be lowercase or uppercase`)\n const sepIndex = lowered.lastIndexOf('1')\n if (sepIndex === 0 || sepIndex === -1)\n throw new Error(`Letter \"1\" must be present between prefix and data only`)\n const prefix = lowered.slice(0, sepIndex)\n const data = lowered.slice(sepIndex + 1)\n if (data.length < 6) throw new Error('Data must be at least 6 characters long')\n const words = BECH_ALPHABET.decode(data).slice(0, -6)\n const sum = bechChecksum(prefix, words, ENCODING_CONST)\n if (!data.endsWith(sum)) throw new Error(`Invalid checksum in ${str}: expected \"${sum}\"`)\n return { prefix, words }\n }\n\n const decodeUnsafe = unsafeWrapper(decode)\n\n function decodeToBytes(str: string): Bech32DecodedWithArray {\n const { prefix, words } = decode(str, false)\n return { prefix, words, bytes: fromWords(words) }\n }\n\n function encodeFromBytes(prefix: string, bytes: Uint8Array) {\n return encode(prefix, toWords(bytes))\n }\n\n return {\n encode,\n decode,\n encodeFromBytes,\n decodeToBytes,\n decodeUnsafe,\n fromWords,\n fromWordsUnsafe,\n toWords,\n }\n}\n\nexport const bech32: Bech32 = /* @__PURE__ */ genBech32('bech32')\nexport const bech32m: Bech32 = /* @__PURE__ */ genBech32('bech32m')\n\nexport const utf8: BytesCoder = {\n encode: (data) => Uint8ArrayToString(data),\n decode: (str) => stringToUInt8Array(str),\n}\n\nexport const hex: BytesCoder = /* @__PURE__ */ chain(\n radix2(4),\n alphabet('0123456789abcdef'),\n join(''),\n normalize((s: string) => {\n if (typeof s !== 'string' || s.length % 2)\n throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`)\n return s.toLowerCase()\n })\n)\n\n// prettier-ignore\nconst CODERS = {\n utf8, hex, base16, base32, base64, base64url, base58, base58xmr\n}\ntype CoderType = keyof typeof CODERS\nconst coderTypeError =\n 'Invalid encoding type. Available types: utf8, hex, base16, base32, base64, base64url, base58, base58xmr'\n\nexport const bytesToString = (type: CoderType, bytes: Uint8Array): string => {\n if (typeof type !== 'string' || !CODERS.hasOwnProperty(type)) throw new TypeError(coderTypeError)\n if (!isBytes(bytes)) throw new TypeError('bytesToString() expects Uint8Array')\n return CODERS[type].encode(bytes)\n}\nexport const str = bytesToString // as in python, but for bytes only\n\nexport const stringToBytes = (type: CoderType, str: string): Uint8Array => {\n if (!CODERS.hasOwnProperty(type)) throw new TypeError(coderTypeError)\n if (typeof str !== 'string') throw new TypeError('stringToBytes() expects string')\n return CODERS[type].decode(str)\n}\nexport const bytes = stringToBytes;\n\n","/* eslint-disable node/prefer-global/buffer */\n/* eslint-disable no-control-regex */\n/* eslint-disable prefer-spread */\n\nimport { base64, base64nopad, base64urlnopad } from './basex-secure'\nimport type { BinInput } from './bin-types'\nimport { jsonStringifySafe } from './json'\n\n\n// From https://github.com/dmonad/lib0/blob/main/string.js#L44\n\nexport function _encodeUtf8Polyfill(str: string): Uint8Array {\n const encodedString = unescape(encodeURIComponent(str))\n const len = encodedString.length\n const buf = new Uint8Array(len)\n for (let i = 0; i < len; i++)\n buf[i] = encodedString.codePointAt(i) || 0\n return buf\n}\n\nexport function _decodeUtf8Polyfill(buf: Uint8Array<ArrayBufferLike>) {\n let remainingLen = buf.length\n let encodedString = ''\n let bufPos = 0\n while (remainingLen > 0) {\n const nextLen = remainingLen < 10000 ? remainingLen : 10000\n const bytes = buf.subarray(bufPos, bufPos + nextLen)\n bufPos += nextLen\n // Starting with ES5.1 we can supply a generic array-like object as arguments\n // @ts-expect-error xxx\n encodedString += String.fromCodePoint.apply(null, bytes)\n remainingLen -= nextLen\n }\n return decodeURIComponent(escape(encodedString))\n}\n\nlet _textEncoder: (data: string) => Uint8Array\n\nexport function stringToUInt8Array(text: string): Uint8Array {\n if (_textEncoder == null) {\n _textEncoder = _encodeUtf8Polyfill\n if (typeof TextEncoder !== 'undefined') {\n const encoder = new TextEncoder()\n _textEncoder = data => encoder.encode(data)\n }\n }\n return _textEncoder(text.normalize('NFC'))\n}\n\nlet _textDecoder: (data: Uint8Array<ArrayBufferLike>) => string\n\nexport function Uint8ArrayToString(bin: Uint8Array): string {\n if (_textDecoder == null) {\n _textDecoder = _decodeUtf8Polyfill\n if (typeof TextDecoder !== 'undefined') {\n const decoder = new TextDecoder('utf-8', { ignoreBOM: true })\n _textDecoder = data => decoder.decode(data)\n }\n }\n return _textDecoder(bin).normalize('NFC')\n}\n\nexport function toArrayBuffer(bin: BinInput): ArrayBuffer {\n const b = toUint8Array(bin)\n if (b.buffer.byteLength === b.byteLength)\n return b.buffer as ArrayBuffer\n return b.buffer.slice(b.byteOffset, b.byteOffset + b.byteLength) as ArrayBuffer\n}\n\nexport function toUint8Array(data: BinInput): Uint8Array {\n if (data instanceof ArrayBuffer)\n return new Uint8Array(data)\n if (typeof data === 'string')\n return stringToUInt8Array(data)\n if (data.length)\n return new Uint8Array(data)\n return data as Uint8Array\n}\n\n/**\n * Ensures a Uint8Array is backed by a real ArrayBuffer (not SharedArrayBuffer).\n * This is needed for Web Crypto API compatibility which requires BufferSource with ArrayBuffer.\n */\nexport function ensureUint8Array(data: Uint8Array): Uint8Array<ArrayBuffer> {\n // If it's already a regular Uint8Array backed by ArrayBuffer, return as-is\n // otherwise trick: const buffer = u.slice().buffer\n if (data.buffer instanceof ArrayBuffer) {\n return data as Uint8Array<ArrayBuffer>\n }\n // Otherwise, create a new copy backed by ArrayBuffer\n return new Uint8Array(data) as Uint8Array<ArrayBuffer>\n}\n\nexport function joinToUint8Array(...args: BinInput[] | BinInput[][]) {\n let length = 0\n const bins = args.flat(1).map((d) => {\n const b = toUint8Array(d as BinInput)\n length += b.length\n return b\n })\n const bin = new Uint8Array(length)\n let cursor = 0\n for (const b of bins) {\n bin.set(b, cursor)\n cursor += b.length\n }\n return bin\n}\n\nexport function toHex(bin: BinInput): string {\n if (typeof Buffer !== 'undefined')\n return Buffer.from(toUint8Array(bin)).toString('hex')\n const h = '0123456789abcdef'\n let s = ''\n for (const v of [...toUint8Array(bin)])\n s += h[v >> 4] + h[v & 15]\n return s\n}\n\nexport function fromHex(hexString: string): Uint8Array {\n return Uint8Array.from(\n hexString.match(/.{1,2}/g)!.map(byte => Number.parseInt(byte, 16)),\n )\n}\n\n// Learn about Base64 in browsers: https://web.dev/articles/base64-encoding\n\n/** Regular base64 */\nexport function toBase64(bin: BinInput, stripPadding = false): string {\n const bytes = toUint8Array(bin)\n let sb = ''\n if (typeof Buffer !== 'undefined') {\n sb = Buffer.from(bytes).toString('base64')\n if (stripPadding)\n return sb.replace(/\\=/g, '')\n return sb\n }\n if (stripPadding) {\n return base64nopad.encode(bytes)\n }\n return base64.encode(bytes)\n}\n\n/** Converts `+` -> `-` and `/` -> `_`. Always strips `=` */\nexport function toBase64Url(bin: BinInput): string {\n const bytes = toUint8Array(bin)\n if (typeof Buffer !== 'undefined')\n return Buffer.from(bytes).toString('base64url').replace(/\\=/g, '')\n return base64urlnopad.encode(bytes)\n}\n\n/** Also parses toBase64Url encoded strings. */\nexport function fromBase64(s: string): Uint8Array {\n s = s.replace(/\\-/g, '+').replace(/\\_/g, '/')\n if (typeof Buffer !== 'undefined') {\n const buf = Buffer.from(s, 'base64')\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength)\n }\n if (typeof atob !== 'undefined') {\n const a = atob(s)\n const bytes = new Uint8Array(a.length)\n for (let i = 0; i < a.length; i++)\n bytes[i] = a.charCodeAt(i)\n return bytes\n }\n return base64.decode(s)\n}\n\n/** Also parses toBase64Url encoded strings. */\nexport function fromBase64String(s: string): string {\n return Uint8ArrayToString(fromBase64(s))\n}\n\n/** Compare contents of binary arrays */\nexport function equalBinary(\n a: ArrayBuffer | Uint8Array,\n b: ArrayBuffer | Uint8Array,\n): boolean {\n if (a.byteLength !== b.byteLength)\n return false\n const aa = toUint8Array(a)\n const bb = toUint8Array(b)\n for (let i = 0; i < aa.length; i++) {\n if (aa[i] !== bb[i])\n return false\n }\n return true\n}\n\nexport function jsonToUint8Array(json: any): Uint8Array | never {\n return stringToUInt8Array(jsonStringifySafe(json))\n}\n\nexport function Uint8ArrayToJson<T = any>(data: Uint8Array): T | never {\n return JSON.parse(Uint8ArrayToString(data))\n}\n\n// https://gist.github.com/igorgatis/d294fe714a4f523ac3a3\nexport function Uint8ArrayToHexDump(\n buffer: Uint8Array | ArrayBuffer | string | Array<number>,\n blockSize?: number,\n) {\n if (typeof buffer === 'string') {\n // log(\"buffer is string\")\n // do nothing\n }\n else if (buffer instanceof ArrayBuffer && buffer.byteLength !== undefined) {\n // log(\"buffer is ArrayBuffer\")\n buffer = String.fromCharCode.apply(String, [].slice.call(new Uint8Array(buffer)))\n }\n else if (Array.isArray(buffer)) {\n // log(\"buffer is Array\")\n buffer = String.fromCharCode.apply(String, buffer)\n }\n else if (buffer.constructor === Uint8Array) {\n // log(\"buffer is Uint8Array\")\n buffer = String.fromCharCode.apply(String, [].slice.call(buffer))\n }\n else {\n // log(\"Error: buffer is unknown...\")\n return false\n }\n\n blockSize = blockSize || 16\n const lines = []\n const hex = '0123456789abcdef' // '0123456789ABCDEF'\n for (let b = 0; b < buffer.length; b += blockSize) {\n const block = buffer.slice(b, Math.min(b + blockSize, buffer.length))\n const addr = (`0000${b.toString(16)}`).slice(-4)\n let codes = block\n .split('')\n .map((ch: any) => {\n const code = ch.charCodeAt(0)\n return ` ${hex[(0xF0 & code) >> 4]}${hex[0x0F & code]}`\n })\n .join('')\n codes += ' '.repeat(blockSize - block.length)\n let chars = block.replace(/[\\x00-\\x1F\\x20\\x7F-\\xA0\\xAD]/g, '.')\n chars += ' '.repeat(blockSize - block.length)\n lines.push(`${addr} ${codes} ${chars}`)\n }\n return lines.join('\\n')\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bin-BAoS4qtm.mjs","names":[],"sources":["../src/common/data/basex-secure.ts","../src/common/data/bin.ts"],"sourcesContent":["/* scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\nimport { stringToUInt8Array, Uint8ArrayToString } from './bin'\n\n// Utilities\n/**\n * @__NO_SIDE_EFFECTS__\n */\nexport function assertNumber(n: number) {\n if (!Number.isSafeInteger(n)) throw new Error(`Wrong integer: ${n}`)\n}\nexport interface Coder<F, T> {\n encode(from: F): T\n decode(to: T): F\n}\n\nexport interface BytesCoder extends Coder<Uint8Array, string> {\n encode: (data: Uint8Array) => string\n decode: (str: string) => Uint8Array\n}\n\nfunction isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n )\n}\n\n// TODO: some recusive type inference so it would check correct order of input/output inside rest?\n// like <string, number>, <number, bytes>, <bytes, float>\nexport type BaseXChain = [Coder<any, any>, ...Coder<any, any>[]]\n// Extract info from Coder type\nexport type BaseXInput<F> = F extends Coder<infer T, any> ? T : never\nexport type BaseXOutput<F> = F extends Coder<any, infer T> ? T : never\n// Generic function for arrays\nexport type BaseXFirst<T> = T extends [infer U, ...any[]] ? U : never\nexport type BaseXLast<T> = T extends [...any[], infer U] ? U : never\nexport type BaseXTail<T> = T extends [any, ...infer U] ? U : never\n\nexport type BaseXAsChain<C extends BaseXChain, Rest = BaseXTail<C>> = {\n // C[K] = Coder<Input<C[K]>, Input<Rest[k]>>\n [K in keyof C]: Coder<BaseXInput<C[K]>, BaseXInput<K extends keyof Rest ? Rest[K] : any>>\n}\n\n// Publicly visible aliases prefixed with BaseX for clearer documentation\n// Remove old alias leftovers (we renamed core types to BaseX-prefixed names).\n\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction chain<T extends BaseXChain & BaseXAsChain<T>>(...args: T): Coder<BaseXInput<BaseXFirst<T>>, BaseXOutput<BaseXLast<T>>> {\n const id = (a: any) => a\n // Wrap call in closure so JIT can inline calls\n const wrap = (a: any, b: any) => (c: any) => a(b(c))\n // Construct chain of args[-1].encode(args[-2].encode([...]))\n const encode = args.map((x) => x.encode).reduceRight(wrap, id)\n // Construct chain of args[0].decode(args[1].decode(...))\n const decode = args.map((x) => x.decode).reduce(wrap, id)\n return { encode, decode }\n}\n\nexport type BaseXAlphabet = string[] | string\n/**\n * Encodes integer radix representation to array of strings using alphabet and back\n * @__NO_SIDE_EFFECTS__\n */\nfunction alphabet(alphabet: BaseXAlphabet): Coder<number[], string[]> {\n return {\n encode: (digits: number[]) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('alphabet.encode input should be an array of numbers')\n return digits.map((i) => {\n assertNumber(i)\n if (i < 0 || i >= alphabet.length)\n throw new Error(`Digit index outside alphabet: ${i} (alphabet: ${alphabet.length})`)\n return alphabet[i]!\n })\n },\n decode: (input: string[]) => {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('alphabet.decode input should be array of strings')\n return input.map((letter) => {\n if (typeof letter !== 'string')\n throw new Error(`alphabet.decode: not string element=${letter}`)\n const index = alphabet.indexOf(letter)\n if (index === -1) throw new Error(`Unknown letter: \"${letter}\". Allowed: ${alphabet}`)\n return index\n })\n },\n }\n}\n// Alias exported after Alphabet is declared (kept only for backwards compat if needed)\n\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction join(separator = ''): Coder<string[], string> {\n if (typeof separator !== 'string') throw new Error('join separator should be string')\n return {\n encode: (from) => {\n if (!Array.isArray(from) || (from.length && typeof from[0] !== 'string'))\n throw new Error('join.encode input should be array of strings')\n for (let i of from)\n if (typeof i !== 'string') throw new Error(`join.encode: non-string input=${i}`)\n return from.join(separator)\n },\n decode: (to) => {\n if (typeof to !== 'string') throw new Error('join.decode input should be string')\n return to.split(separator)\n },\n }\n}\n\n/**\n * Pad strings array so it has integer number of bits\n * @__NO_SIDE_EFFECTS__\n */\nfunction padding(bits: number, chr = '='): Coder<string[], string[]> {\n assertNumber(bits)\n if (typeof chr !== 'string') throw new Error('padding chr should be string')\n return {\n encode(data: string[]): string[] {\n if (!Array.isArray(data) || (data.length && typeof data[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings')\n for (let i of data)\n if (typeof i !== 'string') throw new Error(`padding.encode: non-string input=${i}`)\n while ((data.length * bits) % 8) data.push(chr)\n return data\n },\n decode(input: string[]): string[] {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings')\n for (let i of input)\n if (typeof i !== 'string') throw new Error(`padding.decode: non-string input=${i}`)\n let end = input.length\n if ((end * bits) % 8)\n throw new Error('Invalid padding: string should have whole number of bytes')\n for (; end > 0 && input[end - 1] === chr; end--) {\n if (!(((end - 1) * bits) % 8))\n throw new Error('Invalid padding: string has too much padding')\n }\n return input.slice(0, end)\n },\n }\n}\n\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction normalize<T>(fn: (val: T) => T): Coder<T, T> {\n if (typeof fn !== 'function') throw new Error('normalize fn should be function')\n return { encode: (from: T) => from, decode: (to: T) => fn(to) }\n}\n\n/**\n * Slow: O(n^2) time complexity\n * @__NO_SIDE_EFFECTS__\n */\nfunction convertRadix(data: number[], from: number, to: number): number[] {\n // base 1 is impossible\n if (from < 2) throw new Error(`convertRadix: wrong from=${from}, base cannot be less than 2`)\n if (to < 2) throw new Error(`convertRadix: wrong to=${to}, base cannot be less than 2`)\n if (!Array.isArray(data)) throw new Error('convertRadix: data should be array')\n if (!data.length) return []\n let pos = 0\n const res = []\n const digits = Array.from(data)\n digits.forEach((d) => {\n assertNumber(d)\n if (d < 0 || d >= from) throw new Error(`Wrong integer: ${d}`)\n })\n while (true) {\n let carry = 0\n let done = true\n for (let i = pos; i < digits.length; i++) {\n const digit = digits[i]!\n const digitBase = from * carry + digit\n if (\n !Number.isSafeInteger(digitBase) ||\n (from * carry) / from !== carry ||\n digitBase - digit !== from * carry\n ) {\n throw new Error('convertRadix: carry overflow')\n }\n carry = digitBase % to\n const rounded = Math.floor(digitBase / to)\n digits[i] = rounded\n if (!Number.isSafeInteger(rounded) || rounded * to + carry !== digitBase)\n throw new Error('convertRadix: carry overflow')\n if (!done) continue\n else if (!rounded) pos = i\n else done = false\n }\n res.push(carry)\n if (done) break\n }\n for (let i = 0; i < data.length - 1 && data[i] === 0; i++) res.push(0)\n return res.reverse()\n}\n\nconst gcd = /* @__NO_SIDE_EFFECTS__ */ (a: number, b: number): number => (!b ? a : gcd(b, a % b))\nconst radix2carry = /*@__NO_SIDE_EFFECTS__ */ (from: number, to: number) =>\n from + (to - gcd(from, to))\n/**\n * Implemented with numbers, because BigInt is 5x slower\n * @__NO_SIDE_EFFECTS__\n */\nfunction convertRadix2(data: number[], from: number, to: number, padding: boolean): number[] {\n if (!Array.isArray(data)) throw new Error('convertRadix2: data should be array')\n if (from <= 0 || from > 32) throw new Error(`convertRadix2: wrong from=${from}`)\n if (to <= 0 || to > 32) throw new Error(`convertRadix2: wrong to=${to}`)\n if (radix2carry(from, to) > 32) {\n throw new Error(\n `convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`\n )\n }\n let carry = 0\n let pos = 0 // bitwise position in current element\n const mask = 2 ** to - 1\n const res: number[] = []\n for (const n of data) {\n assertNumber(n)\n if (n >= 2 ** from) throw new Error(`convertRadix2: invalid data word=${n} from=${from}`)\n carry = (carry << from) | n\n if (pos + from > 32) throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`)\n pos += from\n for (; pos >= to; pos -= to) res.push(((carry >> (pos - to)) & mask) >>> 0)\n carry &= 2 ** pos - 1 // clean carry, otherwise it will cause overflow\n }\n carry = (carry << (to - pos)) & mask\n if (!padding && pos >= from) throw new Error('Excess padding')\n if (!padding && carry) throw new Error(`Non-zero padding: ${carry}`)\n if (padding && pos > 0) res.push(carry >>> 0)\n return res\n}\n\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix(num: number): Coder<Uint8Array, number[]> {\n assertNumber(num)\n return {\n encode: (bytes: Uint8Array) => {\n if (!isBytes(bytes)) throw new Error('radix.encode input should be Uint8Array')\n return convertRadix(Array.from(bytes), 2 ** 8, num)\n },\n decode: (digits: number[]) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix.decode input should be array of numbers')\n return Uint8Array.from(convertRadix(digits, num, 2 ** 8))\n },\n }\n}\n\n/**\n * If both bases are power of same number (like `2**8 <-> 2**64`),\n * there is a linear algorithm. For now we have implementation for power-of-two bases only.\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix2(bits: number, revPadding = false): Coder<Uint8Array, number[]> {\n assertNumber(bits)\n if (bits <= 0 || bits > 32) throw new Error('radix2: bits should be in (0..32]')\n if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32)\n throw new Error('radix2: carry overflow')\n return {\n encode: (bytes: Uint8Array) => {\n if (!isBytes(bytes)) throw new Error('radix2.encode input should be Uint8Array')\n return convertRadix2(Array.from(bytes), 8, bits, !revPadding)\n },\n decode: (digits: number[]) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix2.decode input should be array of numbers')\n return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding))\n },\n }\n}\n\ntype ArgumentTypes<F extends Function> = F extends (...args: infer A) => any ? A : never\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction unsafeWrapper<T extends (...args: any) => any>(fn: T) {\n if (typeof fn !== 'function') throw new Error('unsafeWrapper fn should be function')\n return function (...args: ArgumentTypes<T>): ReturnType<T> | void {\n try {\n return fn.apply(null, args)\n } catch (e) { }\n }\n}\n\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction checksum(\n len: number,\n fn: (data: Uint8Array) => Uint8Array\n): Coder<Uint8Array, Uint8Array> {\n assertNumber(len)\n if (typeof fn !== 'function') throw new Error('checksum fn should be function')\n return {\n encode(data: Uint8Array) {\n if (!isBytes(data)) throw new Error('checksum.encode: input should be Uint8Array')\n const checksum = fn(data).slice(0, len)\n const res = new Uint8Array(data.length + len)\n res.set(data)\n res.set(checksum, data.length)\n return res\n },\n decode(data: Uint8Array) {\n if (!isBytes(data)) throw new Error('checksum.decode: input should be Uint8Array')\n const payload = data.slice(0, -len)\n const newChecksum = fn(payload).slice(0, len)\n const oldChecksum = data.slice(-len)\n for (let i = 0; i < len; i++)\n if (newChecksum[i] !== oldChecksum[i]) throw new Error('Invalid checksum')\n return payload\n },\n }\n}\n\n// prettier-ignore\nexport const utils = {\n alphabet, chain, checksum, convertRadix, convertRadix2, radix, radix2, join, padding,\n}\n\n// RFC 4648 aka RFC 3548\n// ---------------------\nexport const base16: BytesCoder = /* @__PURE__ */ chain(\n radix2(4),\n alphabet('0123456789ABCDEF'),\n join('')\n)\nexport const base32: BytesCoder = /* @__PURE__ */ chain(\n radix2(5),\n alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'),\n padding(5),\n join('')\n)\nexport const base32nopad: BytesCoder = /* @__PURE__ */ chain(\n radix2(5),\n alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'),\n join('')\n)\nexport const base32hex: BytesCoder = /* @__PURE__ */ chain(\n radix2(5),\n alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'),\n padding(5),\n join('')\n)\nexport const base32hexnopad: BytesCoder = /* @__PURE__ */ chain(\n radix2(5),\n alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'),\n join('')\n)\nexport const base32agnoster: BytesCoder = /* @__PURE__ */ chain(\n radix2(5),\n alphabet('0123456789abcdefghjkmnpqrtuvwxyz'),\n join('')\n)\nexport const base32crockford: BytesCoder = /* @__PURE__ */ chain(\n radix2(5),\n alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'),\n join(''),\n normalize((s: string) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1'))\n)\nexport const base64: BytesCoder = /* @__PURE__ */ chain(\n radix2(6),\n alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'),\n padding(6),\n join('')\n)\nexport const base64nopad: BytesCoder = /* @__PURE__ */ chain(\n radix2(6),\n alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'),\n join('')\n)\nexport const base64url: BytesCoder = /* @__PURE__ */ chain(\n radix2(6),\n alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'),\n padding(6),\n join('')\n)\nexport const base64urlnopad: BytesCoder = /* @__PURE__ */ chain(\n radix2(6),\n alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'),\n join('')\n)\n\n// base58 code\n// -----------\nconst genBase58 = (abc: string) => chain(radix(58), alphabet(abc), join(''))\n\nexport const base58: BytesCoder = /* @__PURE__ */ genBase58(\n '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n)\nexport const base58flickr: BytesCoder = /* @__PURE__ */ genBase58(\n '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n)\nexport const base58xrp: BytesCoder = /* @__PURE__ */ genBase58(\n 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz'\n)\n\n// xmr ver is done in 8-byte blocks (which equals 11 chars in decoding). Last (non-full) block padded with '1' to size in XMR_BLOCK_LEN.\n// Block encoding significantly reduces quadratic complexity of base58.\n\n// Data len (index) -> encoded block len\nconst XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11]\nexport const base58xmr: BytesCoder = {\n encode(data: Uint8Array) {\n let res = ''\n for (let i = 0; i < data.length; i += 8) {\n const block = data.subarray(i, i + 8)\n res += base58.encode(block).padStart(XMR_BLOCK_LEN[block.length]!, '1')\n }\n return res\n },\n decode(str: string) {\n let res: number[] = []\n for (let i = 0; i < str.length; i += 11) {\n const slice = str.slice(i, i + 11)\n const blockLen = XMR_BLOCK_LEN.indexOf(slice.length)\n const block = base58.decode(slice)\n for (let j = 0; j < block.length - blockLen; j++) {\n if (block[j] !== 0) throw new Error('base58xmr: wrong padding')\n }\n res = res.concat(Array.from(block.slice(block.length - blockLen)))\n }\n return Uint8Array.from(res)\n },\n}\n\nexport const createBase58check = (sha256: (data: Uint8Array) => Uint8Array): BytesCoder =>\n chain(\n checksum(4, (data) => sha256(sha256(data))),\n base58\n )\n// legacy export, bad name\nexport const base58check = createBase58check\n\n// Bech32 code\n// -----------\nexport interface Bech32Decoded<Prefix extends string = string> {\n prefix: Prefix\n words: number[]\n}\nexport interface Bech32DecodedWithArray<Prefix extends string = string> {\n prefix: Prefix\n words: number[]\n bytes: Uint8Array\n}\n\nconst BECH_ALPHABET: Coder<number[], string> = /* @__PURE__ */ chain(\n alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'),\n join('')\n)\n\nconst POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3]\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction bech32Polymod(pre: number): number {\n const b = pre >> 25\n let chk = (pre & 0x1ffffff) << 5\n for (let i = 0; i < POLYMOD_GENERATORS.length; i++) {\n if (((b >> i) & 1) === 1) chk ^= POLYMOD_GENERATORS[i]!\n }\n return chk\n}\n\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction bechChecksum(prefix: string, words: number[], encodingConst = 1): string {\n const len = prefix.length\n let chk = 1\n for (let i = 0; i < len; i++) {\n const c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) throw new Error(`Invalid prefix (${prefix})`)\n chk = bech32Polymod(chk) ^ (c >> 5)\n }\n chk = bech32Polymod(chk)\n for (let i = 0; i < len; i++) chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f)\n for (let v of words) chk = bech32Polymod(chk) ^ v\n for (let i = 0; i < 6; i++) chk = bech32Polymod(chk)\n chk ^= encodingConst\n return BECH_ALPHABET.encode(convertRadix2([chk % 2 ** 30], 30, 5, false))\n}\n\nexport interface Bech32 {\n encode<Prefix extends string>(\n prefix: Prefix,\n words: number[] | Uint8Array,\n limit?: number | false\n ): `${Lowercase<Prefix>}1${string}`\n decode<Prefix extends string>(\n str: `${Prefix}1${string}`,\n limit?: number | false\n ): Bech32Decoded<Prefix>\n encodeFromBytes(prefix: string, bytes: Uint8Array): string\n decodeToBytes(str: string): Bech32DecodedWithArray\n decodeUnsafe(str: string, limit?: number | false): void | Bech32Decoded<string>\n fromWords(to: number[]): Uint8Array\n fromWordsUnsafe(to: number[]): void | Uint8Array\n toWords(from: Uint8Array): number[]\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction genBech32(encoding: 'bech32' | 'bech32m'): Bech32 {\n const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3\n const _words = radix2(5)\n const fromWords = _words.decode\n const toWords = _words.encode\n const fromWordsUnsafe = unsafeWrapper(fromWords)\n\n function encode<Prefix extends string>(\n prefix: Prefix,\n words: number[] | Uint8Array,\n limit: number | false = 90\n ): `${Lowercase<Prefix>}1${string}` {\n if (typeof prefix !== 'string')\n throw new Error(`bech32.encode prefix should be string, not ${typeof prefix}`)\n if (words instanceof Uint8Array) words = Array.from(words)\n if (!Array.isArray(words) || (words.length && typeof words[0] !== 'number'))\n throw new Error(`bech32.encode words should be array of numbers, not ${typeof words}`)\n if (prefix.length === 0) throw new TypeError(`Invalid prefix length ${prefix.length}`)\n const actualLength = prefix.length + 7 + words.length\n if (limit !== false && actualLength > limit)\n throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`)\n const lowered = prefix.toLowerCase()\n const sum = bechChecksum(lowered, words, ENCODING_CONST)\n return `${lowered}1${BECH_ALPHABET.encode(words)}${sum}` as `${Lowercase<Prefix>}1${string}`\n }\n\n function decode<Prefix extends string>(\n str: `${Prefix}1${string}`,\n limit?: number | false\n ): Bech32Decoded<Prefix>\n function decode(str: string, limit?: number | false): Bech32Decoded\n function decode(str: string, limit: number | false = 90): Bech32Decoded {\n if (typeof str !== 'string')\n throw new Error(`bech32.decode input should be string, not ${typeof str}`)\n if (str.length < 8 || (limit !== false && str.length > limit))\n throw new TypeError(`Wrong string length: ${str.length} (${str}). Expected (8..${limit})`)\n // don't allow mixed case\n const lowered = str.toLowerCase()\n if (str !== lowered && str !== str.toUpperCase())\n throw new Error(`String must be lowercase or uppercase`)\n const sepIndex = lowered.lastIndexOf('1')\n if (sepIndex === 0 || sepIndex === -1)\n throw new Error(`Letter \"1\" must be present between prefix and data only`)\n const prefix = lowered.slice(0, sepIndex)\n const data = lowered.slice(sepIndex + 1)\n if (data.length < 6) throw new Error('Data must be at least 6 characters long')\n const words = BECH_ALPHABET.decode(data).slice(0, -6)\n const sum = bechChecksum(prefix, words, ENCODING_CONST)\n if (!data.endsWith(sum)) throw new Error(`Invalid checksum in ${str}: expected \"${sum}\"`)\n return { prefix, words }\n }\n\n const decodeUnsafe = unsafeWrapper(decode)\n\n function decodeToBytes(str: string): Bech32DecodedWithArray {\n const { prefix, words } = decode(str, false)\n return { prefix, words, bytes: fromWords(words) }\n }\n\n function encodeFromBytes(prefix: string, bytes: Uint8Array) {\n return encode(prefix, toWords(bytes))\n }\n\n return {\n encode,\n decode,\n encodeFromBytes,\n decodeToBytes,\n decodeUnsafe,\n fromWords,\n fromWordsUnsafe,\n toWords,\n }\n}\n\nexport const bech32: Bech32 = /* @__PURE__ */ genBech32('bech32')\nexport const bech32m: Bech32 = /* @__PURE__ */ genBech32('bech32m')\n\nexport const utf8: BytesCoder = {\n encode: (data) => Uint8ArrayToString(data),\n decode: (str) => stringToUInt8Array(str),\n}\n\nexport const hex: BytesCoder = /* @__PURE__ */ chain(\n radix2(4),\n alphabet('0123456789abcdef'),\n join(''),\n normalize((s: string) => {\n if (typeof s !== 'string' || s.length % 2)\n throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`)\n return s.toLowerCase()\n })\n)\n\n// prettier-ignore\nconst CODERS = {\n utf8, hex, base16, base32, base64, base64url, base58, base58xmr\n}\ntype CoderType = keyof typeof CODERS\nconst coderTypeError =\n 'Invalid encoding type. Available types: utf8, hex, base16, base32, base64, base64url, base58, base58xmr'\n\nexport const bytesToString = (type: CoderType, bytes: Uint8Array): string => {\n if (typeof type !== 'string' || !CODERS.hasOwnProperty(type)) throw new TypeError(coderTypeError)\n if (!isBytes(bytes)) throw new TypeError('bytesToString() expects Uint8Array')\n return CODERS[type].encode(bytes)\n}\nexport const str = bytesToString // as in python, but for bytes only\n\nexport const stringToBytes = (type: CoderType, str: string): Uint8Array => {\n if (!CODERS.hasOwnProperty(type)) throw new TypeError(coderTypeError)\n if (typeof str !== 'string') throw new TypeError('stringToBytes() expects string')\n return CODERS[type].decode(str)\n}\nexport const bytes = stringToBytes;\n\n","/* eslint-disable node/prefer-global/buffer */\n/* eslint-disable no-control-regex */\n/* eslint-disable prefer-spread */\n\nimport { base64, base64nopad, base64urlnopad } from './basex-secure'\nimport type { BinInput } from './bin-types'\nimport { jsonStringifySafe } from './json'\n\n\n// From https://github.com/dmonad/lib0/blob/main/string.js#L44\n\nexport function _encodeUtf8Polyfill(str: string): Uint8Array {\n const encodedString = unescape(encodeURIComponent(str))\n const len = encodedString.length\n const buf = new Uint8Array(len)\n for (let i = 0; i < len; i++)\n buf[i] = encodedString.codePointAt(i) || 0\n return buf\n}\n\nexport function _decodeUtf8Polyfill(buf: Uint8Array<ArrayBufferLike>) {\n let remainingLen = buf.length\n let encodedString = ''\n let bufPos = 0\n while (remainingLen > 0) {\n const nextLen = remainingLen < 10000 ? remainingLen : 10000\n const bytes = buf.subarray(bufPos, bufPos + nextLen)\n bufPos += nextLen\n // Starting with ES5.1 we can supply a generic array-like object as arguments\n // @ts-expect-error xxx\n encodedString += String.fromCodePoint.apply(null, bytes)\n remainingLen -= nextLen\n }\n return decodeURIComponent(escape(encodedString))\n}\n\nlet _textEncoder: (data: string) => Uint8Array\n\nexport function stringToUInt8Array(text: string): Uint8Array {\n if (_textEncoder == null) {\n _textEncoder = _encodeUtf8Polyfill\n if (typeof TextEncoder !== 'undefined') {\n const encoder = new TextEncoder()\n _textEncoder = data => encoder.encode(data)\n }\n }\n return _textEncoder(text.normalize('NFC'))\n}\n\nlet _textDecoder: (data: Uint8Array<ArrayBufferLike>) => string\n\nexport function Uint8ArrayToString(bin: Uint8Array): string {\n if (_textDecoder == null) {\n _textDecoder = _decodeUtf8Polyfill\n if (typeof TextDecoder !== 'undefined') {\n const decoder = new TextDecoder('utf-8', { ignoreBOM: true })\n _textDecoder = data => decoder.decode(data)\n }\n }\n return _textDecoder(bin).normalize('NFC')\n}\n\nexport function toArrayBuffer(bin: BinInput): ArrayBuffer {\n const b = toUint8Array(bin)\n if (b.buffer.byteLength === b.byteLength)\n return b.buffer as ArrayBuffer\n return b.buffer.slice(b.byteOffset, b.byteOffset + b.byteLength) as ArrayBuffer\n}\n\nexport function toUint8Array(data: BinInput): Uint8Array {\n if (data instanceof ArrayBuffer)\n return new Uint8Array(data)\n if (typeof data === 'string')\n return stringToUInt8Array(data)\n if (data.length)\n return new Uint8Array(data)\n return data as Uint8Array\n}\n\n/**\n * Ensures a Uint8Array is backed by a real ArrayBuffer (not SharedArrayBuffer).\n * This is needed for Web Crypto API compatibility which requires BufferSource with ArrayBuffer.\n */\nexport function ensureUint8Array(data: Uint8Array): Uint8Array<ArrayBuffer> {\n // If it's already a regular Uint8Array backed by ArrayBuffer, return as-is\n // otherwise trick: const buffer = u.slice().buffer\n if (data.buffer instanceof ArrayBuffer) {\n return data as Uint8Array<ArrayBuffer>\n }\n // Otherwise, create a new copy backed by ArrayBuffer\n return new Uint8Array(data) as Uint8Array<ArrayBuffer>\n}\n\nexport function joinToUint8Array(...args: BinInput[] | BinInput[][]) {\n let length = 0\n const bins = args.flat(1).map((d) => {\n const b = toUint8Array(d as BinInput)\n length += b.length\n return b\n })\n const bin = new Uint8Array(length)\n let cursor = 0\n for (const b of bins) {\n bin.set(b, cursor)\n cursor += b.length\n }\n return bin\n}\n\nexport function toHex(bin: BinInput): string {\n if (typeof Buffer !== 'undefined')\n return Buffer.from(toUint8Array(bin)).toString('hex')\n const h = '0123456789abcdef'\n let s = ''\n for (const v of [...toUint8Array(bin)])\n s += h[v >> 4] + h[v & 15]\n return s\n}\n\nexport function fromHex(hexString: string): Uint8Array {\n return Uint8Array.from(\n hexString.match(/.{1,2}/g)!.map(byte => Number.parseInt(byte, 16)),\n )\n}\n\n// Learn about Base64 in browsers: https://web.dev/articles/base64-encoding\n\n/** Regular base64 */\nexport function toBase64(bin: BinInput, stripPadding = false): string {\n const bytes = toUint8Array(bin)\n let sb = ''\n if (typeof Buffer !== 'undefined') {\n sb = Buffer.from(bytes).toString('base64')\n if (stripPadding)\n return sb.replace(/\\=/g, '')\n return sb\n }\n if (stripPadding) {\n return base64nopad.encode(bytes)\n }\n return base64.encode(bytes)\n}\n\n/** Converts `+` -> `-` and `/` -> `_`. Always strips `=` */\nexport function toBase64Url(bin: BinInput): string {\n const bytes = toUint8Array(bin)\n if (typeof Buffer !== 'undefined')\n return Buffer.from(bytes).toString('base64url').replace(/\\=/g, '')\n return base64urlnopad.encode(bytes)\n}\n\n/** Also parses toBase64Url encoded strings. */\nexport function fromBase64(s: string): Uint8Array {\n s = s.replace(/\\-/g, '+').replace(/\\_/g, '/')\n if (typeof Buffer !== 'undefined') {\n const buf = Buffer.from(s, 'base64')\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength)\n }\n if (typeof atob !== 'undefined') {\n const a = atob(s)\n const bytes = new Uint8Array(a.length)\n for (let i = 0; i < a.length; i++)\n bytes[i] = a.charCodeAt(i)\n return bytes\n }\n return base64.decode(s)\n}\n\n/** Also parses toBase64Url encoded strings. */\nexport function fromBase64String(s: string): string {\n return Uint8ArrayToString(fromBase64(s))\n}\n\n/** Compare contents of binary arrays */\nexport function equalBinary(\n a: ArrayBuffer | Uint8Array,\n b: ArrayBuffer | Uint8Array,\n): boolean {\n if (a.byteLength !== b.byteLength)\n return false\n const aa = toUint8Array(a)\n const bb = toUint8Array(b)\n for (let i = 0; i < aa.length; i++) {\n if (aa[i] !== bb[i])\n return false\n }\n return true\n}\n\nexport function jsonToUint8Array(json: any): Uint8Array | never {\n return stringToUInt8Array(jsonStringifySafe(json))\n}\n\nexport function Uint8ArrayToJson<T = any>(data: Uint8Array): T | never {\n return JSON.parse(Uint8ArrayToString(data))\n}\n\n// https://gist.github.com/igorgatis/d294fe714a4f523ac3a3\nexport function Uint8ArrayToHexDump(\n buffer: Uint8Array | ArrayBuffer | string | Array<number>,\n blockSize?: number,\n) {\n if (typeof buffer === 'string') {\n // log(\"buffer is string\")\n // do nothing\n }\n else if (buffer instanceof ArrayBuffer && buffer.byteLength !== undefined) {\n // log(\"buffer is ArrayBuffer\")\n buffer = String.fromCharCode.apply(String, [].slice.call(new Uint8Array(buffer)))\n }\n else if (Array.isArray(buffer)) {\n // log(\"buffer is Array\")\n buffer = String.fromCharCode.apply(String, buffer)\n }\n else if (buffer.constructor === Uint8Array) {\n // log(\"buffer is Uint8Array\")\n buffer = String.fromCharCode.apply(String, [].slice.call(buffer))\n }\n else {\n // log(\"Error: buffer is unknown...\")\n return false\n }\n\n blockSize = blockSize || 16\n const lines = []\n const hex = '0123456789abcdef' // '0123456789ABCDEF'\n for (let b = 0; b < buffer.length; b += blockSize) {\n const block = buffer.slice(b, Math.min(b + blockSize, buffer.length))\n const addr = (`0000${b.toString(16)}`).slice(-4)\n let codes = block\n .split('')\n .map((ch: any) => {\n const code = ch.charCodeAt(0)\n return ` ${hex[(0xF0 & code) >> 4]}${hex[0x0F & code]}`\n })\n .join('')\n codes += ' '.repeat(blockSize - block.length)\n let chars = block.replace(/[\\x00-\\x1F\\x20\\x7F-\\xA0\\xAD]/g, '.')\n chars += ' '.repeat(blockSize - block.length)\n lines.push(`${addr} ${codes} ${chars}`)\n }\n return lines.join('\\n')\n}\n"],"mappings":"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"}
|