@pezkuwi/util 14.0.10 → 14.0.12
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/array/chunk.d.ts +15 -0
- package/array/chunk.js +27 -0
- package/array/filter.d.ts +16 -0
- package/array/filter.js +19 -0
- package/array/flatten.d.ts +15 -0
- package/array/flatten.js +39 -0
- package/array/index.d.ts +10 -0
- package/array/index.js +10 -0
- package/array/range.d.ts +16 -0
- package/array/range.js +25 -0
- package/array/shuffle.d.ts +5 -0
- package/array/shuffle.js +19 -0
- package/array/unzip.d.ts +5 -0
- package/array/unzip.js +13 -0
- package/array/zip.d.ts +5 -0
- package/array/zip.js +12 -0
- package/assert.d.ts +29 -0
- package/assert.js +39 -0
- package/bi/consts.d.ts +90 -0
- package/bi/consts.js +91 -0
- package/bi/helpers.d.ts +2 -0
- package/bi/helpers.js +16 -0
- package/bi/index.d.ts +9 -0
- package/bi/index.js +9 -0
- package/bi/min.d.ts +10 -0
- package/bi/min.js +11 -0
- package/bi/sqrt.d.ts +7 -0
- package/bi/sqrt.js +29 -0
- package/bi/toBigInt.d.ts +7 -0
- package/bi/toBigInt.js +25 -0
- package/bi/toHex.d.ts +7 -0
- package/bi/toHex.js +9 -0
- package/bi/toU8a.d.ts +7 -0
- package/bi/toU8a.js +49 -0
- package/bn/bn.d.ts +2 -0
- package/bn/bn.js +2 -0
- package/bn/consts.d.ts +91 -0
- package/bn/consts.js +91 -0
- package/bn/fromHex.d.ts +1 -0
- package/bn/fromHex.js +1 -0
- package/bn/index.d.ts +11 -0
- package/bn/index.js +11 -0
- package/bn/min.d.ts +29 -0
- package/bn/min.js +29 -0
- package/bn/sqrt.d.ts +16 -0
- package/bn/sqrt.js +38 -0
- package/bn/toBn.d.ts +19 -0
- package/bn/toBn.js +37 -0
- package/bn/toHex.d.ts +18 -0
- package/bn/toHex.js +20 -0
- package/bn/toU8a.d.ts +17 -0
- package/bn/toU8a.js +33 -0
- package/buffer/index.d.ts +4 -0
- package/buffer/index.js +4 -0
- package/buffer/toU8a.d.ts +15 -0
- package/buffer/toU8a.js +17 -0
- package/build/bundle-pezkuwi-util.js +148 -127
- package/build/cjs/packageInfo.js +1 -1
- package/build/cjs/u8a/wrap.d.ts +3 -3
- package/build/package.json +8 -8
- package/build/packageInfo.js +1 -1
- package/build/u8a/wrap.d.ts +3 -3
- package/build-deno/packageInfo.ts +1 -1
- package/build-tsc/u8a/wrap.d.ts +3 -3
- package/build-tsc-cjs/packageInfo.js +1 -1
- package/build-tsc-esm/packageInfo.js +1 -1
- package/bundle-pezkuwi-util.js +4830 -0
- package/bundle.d.ts +28 -0
- package/bundle.js +28 -0
- package/cjs/array/chunk.d.ts +15 -0
- package/cjs/array/chunk.js +30 -0
- package/cjs/array/filter.d.ts +16 -0
- package/cjs/array/filter.js +22 -0
- package/cjs/array/flatten.d.ts +15 -0
- package/cjs/array/flatten.js +42 -0
- package/cjs/array/index.d.ts +10 -0
- package/cjs/array/index.js +20 -0
- package/cjs/array/range.d.ts +16 -0
- package/cjs/array/range.js +28 -0
- package/cjs/array/shuffle.d.ts +5 -0
- package/cjs/array/shuffle.js +22 -0
- package/cjs/array/unzip.d.ts +5 -0
- package/cjs/array/unzip.js +16 -0
- package/cjs/array/zip.d.ts +5 -0
- package/cjs/array/zip.js +15 -0
- package/cjs/assert.d.ts +29 -0
- package/cjs/assert.js +44 -0
- package/cjs/bi/consts.d.ts +90 -0
- package/cjs/bi/consts.js +94 -0
- package/cjs/bi/helpers.d.ts +2 -0
- package/cjs/bi/helpers.js +19 -0
- package/cjs/bi/index.d.ts +9 -0
- package/cjs/bi/index.js +19 -0
- package/cjs/bi/min.d.ts +10 -0
- package/cjs/bi/min.js +14 -0
- package/cjs/bi/sqrt.d.ts +7 -0
- package/cjs/bi/sqrt.js +32 -0
- package/cjs/bi/toBigInt.d.ts +7 -0
- package/cjs/bi/toBigInt.js +28 -0
- package/cjs/bi/toHex.d.ts +7 -0
- package/cjs/bi/toHex.js +12 -0
- package/cjs/bi/toU8a.d.ts +7 -0
- package/cjs/bi/toU8a.js +52 -0
- package/cjs/bn/bn.d.ts +2 -0
- package/cjs/bn/bn.js +6 -0
- package/cjs/bn/consts.d.ts +91 -0
- package/cjs/bn/consts.js +94 -0
- package/cjs/bn/fromHex.d.ts +1 -0
- package/cjs/bn/fromHex.js +5 -0
- package/cjs/bn/index.d.ts +11 -0
- package/cjs/bn/index.js +23 -0
- package/cjs/bn/min.d.ts +29 -0
- package/cjs/bn/min.js +32 -0
- package/cjs/bn/sqrt.d.ts +16 -0
- package/cjs/bn/sqrt.js +41 -0
- package/cjs/bn/toBn.d.ts +19 -0
- package/cjs/bn/toBn.js +40 -0
- package/cjs/bn/toHex.d.ts +18 -0
- package/cjs/bn/toHex.js +23 -0
- package/cjs/bn/toU8a.d.ts +17 -0
- package/cjs/bn/toU8a.js +36 -0
- package/cjs/buffer/index.d.ts +4 -0
- package/cjs/buffer/index.js +8 -0
- package/cjs/buffer/toU8a.d.ts +15 -0
- package/cjs/buffer/toU8a.js +20 -0
- package/cjs/bundle.d.ts +28 -0
- package/cjs/bundle.js +33 -0
- package/cjs/compact/addLength.d.ts +13 -0
- package/cjs/compact/addLength.js +23 -0
- package/cjs/compact/defaults.d.ts +3 -0
- package/cjs/compact/defaults.js +5 -0
- package/cjs/compact/fromU8a.d.ts +22 -0
- package/cjs/compact/fromU8a.js +92 -0
- package/cjs/compact/index.d.ts +24 -0
- package/cjs/compact/index.js +32 -0
- package/cjs/compact/stripLength.d.ts +13 -0
- package/cjs/compact/stripLength.js +24 -0
- package/cjs/compact/toU8a.d.ts +14 -0
- package/cjs/compact/toU8a.js +48 -0
- package/cjs/compact/types.d.ts +1 -0
- package/cjs/compact/types.js +2 -0
- package/cjs/detectPackage.d.ts +17 -0
- package/cjs/detectPackage.js +100 -0
- package/cjs/extractTime.d.ts +14 -0
- package/cjs/extractTime.js +56 -0
- package/cjs/float/index.d.ts +1 -0
- package/cjs/float/index.js +5 -0
- package/cjs/float/toU8a.d.ts +11 -0
- package/cjs/float/toU8a.js +22 -0
- package/cjs/format/formatBalance.d.ts +54 -0
- package/cjs/format/formatBalance.js +88 -0
- package/cjs/format/formatDate.d.ts +5 -0
- package/cjs/format/formatDate.js +20 -0
- package/cjs/format/formatDecimal.d.ts +5 -0
- package/cjs/format/formatDecimal.js +19 -0
- package/cjs/format/formatElapsed.d.ts +7 -0
- package/cjs/format/formatElapsed.js +30 -0
- package/cjs/format/formatNumber.d.ts +14 -0
- package/cjs/format/formatNumber.js +14 -0
- package/cjs/format/getSeparator.d.ts +9 -0
- package/cjs/format/getSeparator.js +14 -0
- package/cjs/format/index.d.ts +6 -0
- package/cjs/format/index.js +16 -0
- package/cjs/format/si.d.ts +9 -0
- package/cjs/format/si.js +45 -0
- package/cjs/has.d.ts +14 -0
- package/cjs/has.js +19 -0
- package/cjs/hex/addPrefix.d.ts +16 -0
- package/cjs/hex/addPrefix.js +23 -0
- package/cjs/hex/fixLength.d.ts +18 -0
- package/cjs/hex/fixLength.js +30 -0
- package/cjs/hex/hasPrefix.d.ts +16 -0
- package/cjs/hex/hasPrefix.js +21 -0
- package/cjs/hex/index.d.ts +12 -0
- package/cjs/hex/index.js +24 -0
- package/cjs/hex/stripPrefix.d.ts +15 -0
- package/cjs/hex/stripPrefix.js +30 -0
- package/cjs/hex/toBigInt.d.ts +6 -0
- package/cjs/hex/toBigInt.js +15 -0
- package/cjs/hex/toBn.d.ts +21 -0
- package/cjs/hex/toBn.js +35 -0
- package/cjs/hex/toNumber.d.ts +15 -0
- package/cjs/hex/toNumber.js +23 -0
- package/cjs/hex/toString.d.ts +15 -0
- package/cjs/hex/toString.js +22 -0
- package/cjs/hex/toU8a.d.ts +16 -0
- package/cjs/hex/toU8a.js +57 -0
- package/cjs/hex/toU8aBuffer.d.ts +16 -0
- package/cjs/hex/toU8aBuffer.js +43 -0
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +5 -0
- package/cjs/is/array.d.ts +5 -0
- package/cjs/is/array.js +10 -0
- package/cjs/is/ascii.d.ts +8 -0
- package/cjs/is/ascii.js +43 -0
- package/cjs/is/bigInt.d.ts +15 -0
- package/cjs/is/bigInt.js +20 -0
- package/cjs/is/bn.d.ts +17 -0
- package/cjs/is/bn.js +22 -0
- package/cjs/is/boolean.d.ts +15 -0
- package/cjs/is/boolean.js +20 -0
- package/cjs/is/buffer.d.ts +16 -0
- package/cjs/is/buffer.js +24 -0
- package/cjs/is/childClass.d.ts +17 -0
- package/cjs/is/childClass.js +26 -0
- package/cjs/is/class.d.ts +6 -0
- package/cjs/is/class.js +9 -0
- package/cjs/is/codec.d.ts +12 -0
- package/cjs/is/codec.js +9 -0
- package/cjs/is/compact.d.ts +13 -0
- package/cjs/is/compact.js +9 -0
- package/cjs/is/error.d.ts +15 -0
- package/cjs/is/error.js +21 -0
- package/cjs/is/function.d.ts +17 -0
- package/cjs/is/function.js +20 -0
- package/cjs/is/helpers.d.ts +3 -0
- package/cjs/is/helpers.js +19 -0
- package/cjs/is/hex.d.ts +19 -0
- package/cjs/is/hex.js +27 -0
- package/cjs/is/index.d.ts +33 -0
- package/cjs/is/index.js +66 -0
- package/cjs/is/instanceOf.d.ts +15 -0
- package/cjs/is/instanceOf.js +21 -0
- package/cjs/is/ip.d.ts +18 -0
- package/cjs/is/ip.js +44 -0
- package/cjs/is/jsonObject.d.ts +27 -0
- package/cjs/is/jsonObject.js +40 -0
- package/cjs/is/null.d.ts +15 -0
- package/cjs/is/null.js +20 -0
- package/cjs/is/number.d.ts +15 -0
- package/cjs/is/number.js +20 -0
- package/cjs/is/object.d.ts +18 -0
- package/cjs/is/object.js +21 -0
- package/cjs/is/observable.d.ts +16 -0
- package/cjs/is/observable.js +19 -0
- package/cjs/is/promise.d.ts +1 -0
- package/cjs/is/promise.js +5 -0
- package/cjs/is/riscv.d.ts +7 -0
- package/cjs/is/riscv.js +20 -0
- package/cjs/is/string.d.ts +16 -0
- package/cjs/is/string.js +20 -0
- package/cjs/is/testChain.d.ts +1 -0
- package/cjs/is/testChain.js +10 -0
- package/cjs/is/toBigInt.d.ts +2 -0
- package/cjs/is/toBigInt.js +5 -0
- package/cjs/is/toBn.d.ts +2 -0
- package/cjs/is/toBn.js +5 -0
- package/cjs/is/u8a.d.ts +15 -0
- package/cjs/is/u8a.js +23 -0
- package/cjs/is/undefined.d.ts +15 -0
- package/cjs/is/undefined.js +20 -0
- package/cjs/is/utf8.d.ts +7 -0
- package/cjs/is/utf8.js +200 -0
- package/cjs/is/wasm.d.ts +7 -0
- package/cjs/is/wasm.js +15 -0
- package/cjs/lazy.d.ts +14 -0
- package/cjs/lazy.js +55 -0
- package/cjs/logger.d.ts +17 -0
- package/cjs/logger.js +122 -0
- package/cjs/memoize.d.ts +10 -0
- package/cjs/memoize.js +33 -0
- package/cjs/nextTick.d.ts +5 -0
- package/cjs/nextTick.js +27 -0
- package/cjs/noop.d.ts +8 -0
- package/cjs/noop.js +16 -0
- package/cjs/number/index.d.ts +5 -0
- package/cjs/number/index.js +10 -0
- package/cjs/number/toHex.d.ts +17 -0
- package/cjs/number/toHex.js +23 -0
- package/cjs/number/toU8a.d.ts +15 -0
- package/cjs/number/toU8a.js +22 -0
- package/cjs/object/clear.d.ts +5 -0
- package/cjs/object/clear.js +14 -0
- package/cjs/object/copy.d.ts +5 -0
- package/cjs/object/copy.js +11 -0
- package/cjs/object/entries.d.ts +9 -0
- package/cjs/object/entries.js +10 -0
- package/cjs/object/index.d.ts +7 -0
- package/cjs/object/index.js +18 -0
- package/cjs/object/keys.d.ts +5 -0
- package/cjs/object/keys.js +10 -0
- package/cjs/object/property.d.ts +10 -0
- package/cjs/object/property.js +38 -0
- package/cjs/object/spread.d.ts +6 -0
- package/cjs/object/spread.js +34 -0
- package/cjs/object/values.d.ts +5 -0
- package/cjs/object/values.js +10 -0
- package/cjs/package.json +3 -0
- package/cjs/packageDetect.d.ts +1 -0
- package/cjs/packageDetect.js +7 -0
- package/cjs/packageInfo.d.ts +6 -0
- package/cjs/packageInfo.js +4 -0
- package/cjs/promisify.d.ts +16 -0
- package/cjs/promisify.js +30 -0
- package/cjs/string/camelCase.d.ts +13 -0
- package/cjs/string/camelCase.js +62 -0
- package/cjs/string/index.d.ts +8 -0
- package/cjs/string/index.js +18 -0
- package/cjs/string/lowerFirst.d.ts +31 -0
- package/cjs/string/lowerFirst.js +40 -0
- package/cjs/string/shorten.d.ts +16 -0
- package/cjs/string/shorten.js +22 -0
- package/cjs/string/toHex.d.ts +16 -0
- package/cjs/string/toHex.js +22 -0
- package/cjs/string/toU8a.d.ts +16 -0
- package/cjs/string/toU8a.js +24 -0
- package/cjs/stringify.d.ts +6 -0
- package/cjs/stringify.js +18 -0
- package/cjs/types.d.ts +62 -0
- package/cjs/types.js +2 -0
- package/cjs/u8a/cmp.d.ts +17 -0
- package/cjs/u8a/cmp.js +49 -0
- package/cjs/u8a/concat.d.ts +24 -0
- package/cjs/u8a/concat.js +51 -0
- package/cjs/u8a/concatBuffer.d.ts +19 -0
- package/cjs/u8a/concatBuffer.js +29 -0
- package/cjs/u8a/empty.d.ts +7 -0
- package/cjs/u8a/empty.js +20 -0
- package/cjs/u8a/eq.d.ts +15 -0
- package/cjs/u8a/eq.js +40 -0
- package/cjs/u8a/fixLength.d.ts +17 -0
- package/cjs/u8a/fixLength.js +31 -0
- package/cjs/u8a/index.d.ts +18 -0
- package/cjs/u8a/index.js +42 -0
- package/cjs/u8a/sorted.d.ts +15 -0
- package/cjs/u8a/sorted.js +21 -0
- package/cjs/u8a/toBigInt.d.ts +6 -0
- package/cjs/u8a/toBigInt.js +73 -0
- package/cjs/u8a/toBn.d.ts +21 -0
- package/cjs/u8a/toBn.js +81 -0
- package/cjs/u8a/toBuffer.d.ts +16 -0
- package/cjs/u8a/toBuffer.js +24 -0
- package/cjs/u8a/toFloat.d.ts +11 -0
- package/cjs/u8a/toFloat.js +20 -0
- package/cjs/u8a/toHex.d.ts +16 -0
- package/cjs/u8a/toHex.js +56 -0
- package/cjs/u8a/toHexBuffer.d.ts +16 -0
- package/cjs/u8a/toHexBuffer.js +25 -0
- package/cjs/u8a/toNumber.d.ts +6 -0
- package/cjs/u8a/toNumber.js +61 -0
- package/cjs/u8a/toString.d.ts +15 -0
- package/cjs/u8a/toString.js +24 -0
- package/cjs/u8a/toU8a.d.ts +19 -0
- package/cjs/u8a/toU8a.js +42 -0
- package/cjs/u8a/wrap.d.ts +22 -0
- package/cjs/u8a/wrap.js +49 -0
- package/compact/addLength.d.ts +13 -0
- package/compact/addLength.js +20 -0
- package/compact/defaults.d.ts +3 -0
- package/compact/defaults.js +2 -0
- package/compact/fromU8a.d.ts +22 -0
- package/compact/fromU8a.js +88 -0
- package/compact/index.d.ts +24 -0
- package/compact/index.js +24 -0
- package/compact/stripLength.d.ts +13 -0
- package/compact/stripLength.js +21 -0
- package/compact/toU8a.d.ts +14 -0
- package/compact/toU8a.js +45 -0
- package/compact/types.d.ts +1 -0
- package/compact/types.js +1 -0
- package/detectPackage.d.ts +17 -0
- package/detectPackage.js +96 -0
- package/extractTime.d.ts +14 -0
- package/extractTime.js +53 -0
- package/float/index.d.ts +1 -0
- package/float/index.js +1 -0
- package/float/toU8a.d.ts +11 -0
- package/float/toU8a.js +19 -0
- package/format/formatBalance.d.ts +54 -0
- package/format/formatBalance.js +85 -0
- package/format/formatDate.d.ts +5 -0
- package/format/formatDate.js +17 -0
- package/format/formatDecimal.d.ts +5 -0
- package/format/formatDecimal.js +16 -0
- package/format/formatElapsed.d.ts +7 -0
- package/format/formatElapsed.js +27 -0
- package/format/formatNumber.d.ts +14 -0
- package/format/formatNumber.js +11 -0
- package/format/getSeparator.d.ts +9 -0
- package/format/getSeparator.js +11 -0
- package/format/index.d.ts +6 -0
- package/format/index.js +6 -0
- package/format/si.d.ts +9 -0
- package/format/si.js +40 -0
- package/has.d.ts +14 -0
- package/has.js +16 -0
- package/hex/addPrefix.d.ts +16 -0
- package/hex/addPrefix.js +20 -0
- package/hex/fixLength.d.ts +18 -0
- package/hex/fixLength.js +27 -0
- package/hex/hasPrefix.d.ts +16 -0
- package/hex/hasPrefix.js +18 -0
- package/hex/index.d.ts +12 -0
- package/hex/index.js +12 -0
- package/hex/stripPrefix.d.ts +15 -0
- package/hex/stripPrefix.js +27 -0
- package/hex/toBigInt.d.ts +6 -0
- package/hex/toBigInt.js +12 -0
- package/hex/toBn.d.ts +21 -0
- package/hex/toBn.js +32 -0
- package/hex/toNumber.d.ts +15 -0
- package/hex/toNumber.js +20 -0
- package/hex/toString.d.ts +15 -0
- package/hex/toString.js +19 -0
- package/hex/toU8a.d.ts +16 -0
- package/hex/toU8a.js +54 -0
- package/hex/toU8aBuffer.d.ts +16 -0
- package/hex/toU8aBuffer.js +40 -0
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/is/array.d.ts +5 -0
- package/is/array.js +7 -0
- package/is/ascii.d.ts +8 -0
- package/is/ascii.js +40 -0
- package/is/bigInt.d.ts +15 -0
- package/is/bigInt.js +17 -0
- package/is/bn.d.ts +17 -0
- package/is/bn.js +19 -0
- package/is/boolean.d.ts +15 -0
- package/is/boolean.js +17 -0
- package/is/buffer.d.ts +16 -0
- package/is/buffer.js +21 -0
- package/is/childClass.d.ts +17 -0
- package/is/childClass.js +23 -0
- package/is/class.d.ts +6 -0
- package/is/class.js +6 -0
- package/is/codec.d.ts +12 -0
- package/is/codec.js +6 -0
- package/is/compact.d.ts +13 -0
- package/is/compact.js +6 -0
- package/is/error.d.ts +15 -0
- package/is/error.js +18 -0
- package/is/function.d.ts +17 -0
- package/is/function.js +17 -0
- package/is/helpers.d.ts +3 -0
- package/is/helpers.js +14 -0
- package/is/hex.d.ts +19 -0
- package/is/hex.js +23 -0
- package/is/index.d.ts +33 -0
- package/is/index.js +33 -0
- package/is/instanceOf.d.ts +15 -0
- package/is/instanceOf.js +18 -0
- package/is/ip.d.ts +18 -0
- package/is/ip.js +41 -0
- package/is/jsonObject.d.ts +27 -0
- package/is/jsonObject.js +37 -0
- package/is/null.d.ts +15 -0
- package/is/null.js +17 -0
- package/is/number.d.ts +15 -0
- package/is/number.js +17 -0
- package/is/object.d.ts +18 -0
- package/is/object.js +18 -0
- package/is/observable.d.ts +16 -0
- package/is/observable.js +16 -0
- package/is/promise.d.ts +1 -0
- package/is/promise.js +2 -0
- package/is/riscv.d.ts +7 -0
- package/is/riscv.js +17 -0
- package/is/string.d.ts +16 -0
- package/is/string.js +17 -0
- package/is/testChain.d.ts +1 -0
- package/is/testChain.js +7 -0
- package/is/toBigInt.d.ts +2 -0
- package/is/toBigInt.js +2 -0
- package/is/toBn.d.ts +2 -0
- package/is/toBn.js +2 -0
- package/is/u8a.d.ts +15 -0
- package/is/u8a.js +20 -0
- package/is/undefined.d.ts +15 -0
- package/is/undefined.js +17 -0
- package/is/utf8.d.ts +7 -0
- package/is/utf8.js +197 -0
- package/is/wasm.d.ts +7 -0
- package/is/wasm.js +12 -0
- package/lazy.d.ts +14 -0
- package/lazy.js +51 -0
- package/logger.d.ts +17 -0
- package/logger.js +118 -0
- package/memoize.d.ts +10 -0
- package/memoize.js +30 -0
- package/nextTick.d.ts +5 -0
- package/nextTick.js +24 -0
- package/noop.d.ts +8 -0
- package/noop.js +12 -0
- package/number/index.d.ts +5 -0
- package/number/index.js +5 -0
- package/number/toHex.d.ts +17 -0
- package/number/toHex.js +20 -0
- package/number/toU8a.d.ts +15 -0
- package/number/toU8a.js +19 -0
- package/object/clear.d.ts +5 -0
- package/object/clear.js +11 -0
- package/object/copy.d.ts +5 -0
- package/object/copy.js +8 -0
- package/object/entries.d.ts +9 -0
- package/object/entries.js +7 -0
- package/object/index.d.ts +7 -0
- package/object/index.js +7 -0
- package/object/keys.d.ts +5 -0
- package/object/keys.js +7 -0
- package/object/property.d.ts +10 -0
- package/object/property.js +34 -0
- package/object/spread.d.ts +6 -0
- package/object/spread.js +31 -0
- package/object/values.d.ts +5 -0
- package/object/values.js +7 -0
- package/package.json +1958 -11
- package/packageDetect.d.ts +1 -0
- package/packageDetect.js +5 -0
- package/packageInfo.d.ts +6 -0
- package/packageInfo.js +1 -0
- package/promisify.d.ts +16 -0
- package/promisify.js +27 -0
- package/src/packageInfo.ts +1 -1
- package/src/u8a/toHex.spec.ts +1 -1
- package/src/u8a/toHexBuffer.spec.ts +1 -1
- package/string/camelCase.d.ts +13 -0
- package/string/camelCase.js +59 -0
- package/string/index.d.ts +8 -0
- package/string/index.js +8 -0
- package/string/lowerFirst.d.ts +31 -0
- package/string/lowerFirst.js +37 -0
- package/string/shorten.d.ts +16 -0
- package/string/shorten.js +19 -0
- package/string/toHex.d.ts +16 -0
- package/string/toHex.js +19 -0
- package/string/toU8a.d.ts +16 -0
- package/string/toU8a.js +21 -0
- package/stringify.d.ts +6 -0
- package/stringify.js +15 -0
- package/tsconfig.build.tsbuildinfo +1 -1
- package/tsconfig.spec.tsbuildinfo +1 -1
- package/types.d.ts +62 -0
- package/types.js +1 -0
- package/u8a/cmp.d.ts +17 -0
- package/u8a/cmp.js +46 -0
- package/u8a/concat.d.ts +24 -0
- package/u8a/concat.js +47 -0
- package/u8a/concatBuffer.d.ts +19 -0
- package/u8a/concatBuffer.js +26 -0
- package/u8a/empty.d.ts +7 -0
- package/u8a/empty.js +17 -0
- package/u8a/eq.d.ts +15 -0
- package/u8a/eq.js +37 -0
- package/u8a/fixLength.d.ts +17 -0
- package/u8a/fixLength.js +28 -0
- package/u8a/index.d.ts +18 -0
- package/u8a/index.js +18 -0
- package/u8a/sorted.d.ts +15 -0
- package/u8a/sorted.js +18 -0
- package/u8a/toBigInt.d.ts +6 -0
- package/u8a/toBigInt.js +70 -0
- package/u8a/toBn.d.ts +21 -0
- package/u8a/toBn.js +78 -0
- package/u8a/toBuffer.d.ts +16 -0
- package/u8a/toBuffer.js +21 -0
- package/u8a/toFloat.d.ts +11 -0
- package/u8a/toFloat.js +17 -0
- package/u8a/toHex.d.ts +16 -0
- package/u8a/toHex.js +53 -0
- package/u8a/toHexBuffer.d.ts +16 -0
- package/u8a/toHexBuffer.js +22 -0
- package/u8a/toNumber.d.ts +6 -0
- package/u8a/toNumber.js +58 -0
- package/u8a/toString.d.ts +15 -0
- package/u8a/toString.js +21 -0
- package/u8a/toU8a.d.ts +19 -0
- package/u8a/toU8a.js +39 -0
- package/u8a/wrap.d.ts +22 -0
- package/u8a/wrap.js +43 -0
package/types.d.ts
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { BN } from './bn/bn.js';
|
|
2
|
+
/** An interface that defines an actual JS class */
|
|
3
|
+
export interface Class<T = any, A extends unknown[] = any[]> {
|
|
4
|
+
prototype: T;
|
|
5
|
+
new (...args: A): T;
|
|
6
|
+
hasOwnProperty(prop: string): boolean;
|
|
7
|
+
isPrototypeOf(other: unknown): boolean;
|
|
8
|
+
}
|
|
9
|
+
export type Constructor<T = any, A extends unknown[] = any[]> = Class<T, A>;
|
|
10
|
+
export interface ToBigInt {
|
|
11
|
+
toBigInt: () => bigint;
|
|
12
|
+
}
|
|
13
|
+
export interface ToBn {
|
|
14
|
+
toBn: () => BN;
|
|
15
|
+
}
|
|
16
|
+
export interface SiDef {
|
|
17
|
+
power: number;
|
|
18
|
+
text: string;
|
|
19
|
+
value: string;
|
|
20
|
+
}
|
|
21
|
+
export interface Logger {
|
|
22
|
+
debug: (...values: unknown[]) => void;
|
|
23
|
+
error: (...values: unknown[]) => void;
|
|
24
|
+
log: (...values: unknown[]) => void;
|
|
25
|
+
noop: (...values: unknown[]) => void;
|
|
26
|
+
warn: (...values: unknown[]) => void;
|
|
27
|
+
}
|
|
28
|
+
export interface ToBnOptions {
|
|
29
|
+
/** Convert in LE format */
|
|
30
|
+
isLe?: boolean;
|
|
31
|
+
/** Number is signed, apply two's complement */
|
|
32
|
+
isNegative?: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface NumberOptions extends ToBnOptions {
|
|
35
|
+
/** Limit to the specified bitLength, despite input length */
|
|
36
|
+
bitLength?: number;
|
|
37
|
+
}
|
|
38
|
+
export interface Time {
|
|
39
|
+
days: number;
|
|
40
|
+
hours: number;
|
|
41
|
+
minutes: number;
|
|
42
|
+
seconds: number;
|
|
43
|
+
milliseconds: number;
|
|
44
|
+
}
|
|
45
|
+
export type Memoized<F> = F & {
|
|
46
|
+
unmemoize: (...args: unknown[]) => void;
|
|
47
|
+
};
|
|
48
|
+
export type AnyString = string | String;
|
|
49
|
+
export type HexDigit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'a' | 'b' | 'c' | 'd' | 'e' | 'f';
|
|
50
|
+
export type HexString = `0x${string}`;
|
|
51
|
+
export interface BufferObject extends Uint8Array {
|
|
52
|
+
equals: (otherBuffer: Uint8Array) => boolean;
|
|
53
|
+
readDoubleLE: (offset?: number) => number;
|
|
54
|
+
}
|
|
55
|
+
export interface BufferClass extends Class<BufferObject> {
|
|
56
|
+
from: <T = BufferObject>(value: unknown) => T;
|
|
57
|
+
isBuffer: (value: unknown) => boolean;
|
|
58
|
+
}
|
|
59
|
+
export type U8aLike = number[] | Uint8Array | AnyString;
|
|
60
|
+
export interface Observable {
|
|
61
|
+
next: (...params: unknown[]) => unknown;
|
|
62
|
+
}
|
package/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/u8a/cmp.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name u8aCmp
|
|
3
|
+
* @summary Compares two Uint8Arrays for sorting.
|
|
4
|
+
* @description
|
|
5
|
+
* For `UInt8Array` (or hex string) input values returning -1, 0 or +1
|
|
6
|
+
* @example
|
|
7
|
+
* <BR>
|
|
8
|
+
*
|
|
9
|
+
* ```javascript
|
|
10
|
+
* import { u8aCmp } from '@pezkuwi/util';
|
|
11
|
+
*
|
|
12
|
+
* u8aCmp(new Uint8Array([0x67, 0x65]), new Uint8Array([0x68, 0x65])); // -1
|
|
13
|
+
* u8aCmp(new Uint8Array([0x68, 0x65]), new Uint8Array([0x68, 0x65])); // 0
|
|
14
|
+
* u8aCmp(new Uint8Array([0x69, 0x65]), new Uint8Array([0x68, 0x65])); // +1
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare function u8aCmp(a: string | Uint8Array, b: string | Uint8Array): number;
|
package/u8a/cmp.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { u8aToU8a } from './toU8a.js';
|
|
2
|
+
/**
|
|
3
|
+
* @name u8aCmp
|
|
4
|
+
* @summary Compares two Uint8Arrays for sorting.
|
|
5
|
+
* @description
|
|
6
|
+
* For `UInt8Array` (or hex string) input values returning -1, 0 or +1
|
|
7
|
+
* @example
|
|
8
|
+
* <BR>
|
|
9
|
+
*
|
|
10
|
+
* ```javascript
|
|
11
|
+
* import { u8aCmp } from '@pezkuwi/util';
|
|
12
|
+
*
|
|
13
|
+
* u8aCmp(new Uint8Array([0x67, 0x65]), new Uint8Array([0x68, 0x65])); // -1
|
|
14
|
+
* u8aCmp(new Uint8Array([0x68, 0x65]), new Uint8Array([0x68, 0x65])); // 0
|
|
15
|
+
* u8aCmp(new Uint8Array([0x69, 0x65]), new Uint8Array([0x68, 0x65])); // +1
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export function u8aCmp(a, b) {
|
|
19
|
+
const u8aa = u8aToU8a(a);
|
|
20
|
+
const u8ab = u8aToU8a(b);
|
|
21
|
+
let i = 0;
|
|
22
|
+
while (true) {
|
|
23
|
+
const overA = i >= u8aa.length;
|
|
24
|
+
const overB = i >= u8ab.length;
|
|
25
|
+
if (overA && overB) {
|
|
26
|
+
// both ends reached
|
|
27
|
+
return 0;
|
|
28
|
+
}
|
|
29
|
+
else if (overA) {
|
|
30
|
+
// a has no more data, b has data
|
|
31
|
+
return -1;
|
|
32
|
+
}
|
|
33
|
+
else if (overB) {
|
|
34
|
+
// b has no more data, a has data
|
|
35
|
+
return 1;
|
|
36
|
+
}
|
|
37
|
+
else if (u8aa[i] !== u8ab[i]) {
|
|
38
|
+
// the number in this index doesn't match
|
|
39
|
+
// (we don't use u8aa[i] - u8ab[i] since that doesn't match with localeCompare)
|
|
40
|
+
return u8aa[i] > u8ab[i]
|
|
41
|
+
? 1
|
|
42
|
+
: -1;
|
|
43
|
+
}
|
|
44
|
+
i++;
|
|
45
|
+
}
|
|
46
|
+
}
|
package/u8a/concat.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { U8aLike } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* @name u8aConcat
|
|
4
|
+
* @summary Creates a concatenated Uint8Array from the inputs.
|
|
5
|
+
* @description
|
|
6
|
+
* Concatenates the input arrays into a single `UInt8Array`.
|
|
7
|
+
* @example
|
|
8
|
+
* <BR>
|
|
9
|
+
*
|
|
10
|
+
* ```javascript
|
|
11
|
+
* import { { u8aConcat } from '@pezkuwi/util';
|
|
12
|
+
*
|
|
13
|
+
* u8aConcat(
|
|
14
|
+
* new Uint8Array([1, 2, 3]),
|
|
15
|
+
* new Uint8Array([4, 5, 6])
|
|
16
|
+
* ); // [1, 2, 3, 4, 5, 6]
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare function u8aConcat(...list: readonly U8aLike[]): Uint8Array;
|
|
20
|
+
/**
|
|
21
|
+
* @name u8aConcatStrict
|
|
22
|
+
* @description A strict version of [[u8aConcat]], accepting only Uint8Array inputs
|
|
23
|
+
*/
|
|
24
|
+
export declare function u8aConcatStrict(u8as: readonly Uint8Array[], length?: number): Uint8Array;
|
package/u8a/concat.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { u8aToU8a } from './toU8a.js';
|
|
2
|
+
/**
|
|
3
|
+
* @name u8aConcat
|
|
4
|
+
* @summary Creates a concatenated Uint8Array from the inputs.
|
|
5
|
+
* @description
|
|
6
|
+
* Concatenates the input arrays into a single `UInt8Array`.
|
|
7
|
+
* @example
|
|
8
|
+
* <BR>
|
|
9
|
+
*
|
|
10
|
+
* ```javascript
|
|
11
|
+
* import { { u8aConcat } from '@pezkuwi/util';
|
|
12
|
+
*
|
|
13
|
+
* u8aConcat(
|
|
14
|
+
* new Uint8Array([1, 2, 3]),
|
|
15
|
+
* new Uint8Array([4, 5, 6])
|
|
16
|
+
* ); // [1, 2, 3, 4, 5, 6]
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export function u8aConcat(...list) {
|
|
20
|
+
const count = list.length;
|
|
21
|
+
const u8as = new Array(count);
|
|
22
|
+
let length = 0;
|
|
23
|
+
for (let i = 0; i < count; i++) {
|
|
24
|
+
u8as[i] = u8aToU8a(list[i]);
|
|
25
|
+
length += u8as[i].length;
|
|
26
|
+
}
|
|
27
|
+
return u8aConcatStrict(u8as, length);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @name u8aConcatStrict
|
|
31
|
+
* @description A strict version of [[u8aConcat]], accepting only Uint8Array inputs
|
|
32
|
+
*/
|
|
33
|
+
export function u8aConcatStrict(u8as, length = 0) {
|
|
34
|
+
const count = u8as.length;
|
|
35
|
+
let offset = 0;
|
|
36
|
+
if (!length) {
|
|
37
|
+
for (let i = 0; i < count; i++) {
|
|
38
|
+
length += u8as[i].length;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const result = new Uint8Array(length);
|
|
42
|
+
for (let i = 0; i < count; i++) {
|
|
43
|
+
result.set(u8as[i], offset);
|
|
44
|
+
offset += u8as[i].length;
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { U8aLike } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* @name u8aConcat
|
|
4
|
+
* @summary Creates a concatenated Uint8Array from the inputs.
|
|
5
|
+
* @description
|
|
6
|
+
* Concatenates the input arrays into a single `UInt8Array`.
|
|
7
|
+
* @example
|
|
8
|
+
* <BR>
|
|
9
|
+
*
|
|
10
|
+
* ```javascript
|
|
11
|
+
* import { { u8aConcat } from '@pezkuwi/util';
|
|
12
|
+
*
|
|
13
|
+
* u8aConcat(
|
|
14
|
+
* new Uint8Array([1, 2, 3]),
|
|
15
|
+
* new Uint8Array([4, 5, 6])
|
|
16
|
+
* ); // [1, 2, 3, 4, 5, 6]
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare function u8aConcat(...list: readonly U8aLike[]): Uint8Array;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { u8aToU8a } from './toU8a.js';
|
|
2
|
+
/**
|
|
3
|
+
* @name u8aConcat
|
|
4
|
+
* @summary Creates a concatenated Uint8Array from the inputs.
|
|
5
|
+
* @description
|
|
6
|
+
* Concatenates the input arrays into a single `UInt8Array`.
|
|
7
|
+
* @example
|
|
8
|
+
* <BR>
|
|
9
|
+
*
|
|
10
|
+
* ```javascript
|
|
11
|
+
* import { { u8aConcat } from '@pezkuwi/util';
|
|
12
|
+
*
|
|
13
|
+
* u8aConcat(
|
|
14
|
+
* new Uint8Array([1, 2, 3]),
|
|
15
|
+
* new Uint8Array([4, 5, 6])
|
|
16
|
+
* ); // [1, 2, 3, 4, 5, 6]
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export function u8aConcat(...list) {
|
|
20
|
+
const count = list.length;
|
|
21
|
+
const u8as = new Array(count);
|
|
22
|
+
for (let i = 0; i < count; i++) {
|
|
23
|
+
u8as[i] = u8aToU8a(list[i]);
|
|
24
|
+
}
|
|
25
|
+
return Uint8Array.from(Buffer.concat(u8as));
|
|
26
|
+
}
|
package/u8a/empty.d.ts
ADDED
package/u8a/empty.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name u8aEmpty
|
|
3
|
+
* @summary Tests for a `Uint8Array` for emptyness
|
|
4
|
+
* @description
|
|
5
|
+
* Checks to see if the input `Uint8Array` has zero length or contains all 0 values.
|
|
6
|
+
*/
|
|
7
|
+
export function u8aEmpty(value) {
|
|
8
|
+
const len = value.length | 0;
|
|
9
|
+
// on smaller sizes, the byte-by-byte compare is faster than allocating
|
|
10
|
+
// another object for DataView (on very large arrays the DataView is faster)
|
|
11
|
+
for (let i = 0; i < len; i++) {
|
|
12
|
+
if (value[i] | 0) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return true;
|
|
17
|
+
}
|
package/u8a/eq.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name u8aEq
|
|
3
|
+
* @summary Compares two Uint8Arrays for equality.
|
|
4
|
+
* @description
|
|
5
|
+
* For `UInt8Array` (or hex string) input values true if there is a match.
|
|
6
|
+
* @example
|
|
7
|
+
* <BR>
|
|
8
|
+
*
|
|
9
|
+
* ```javascript
|
|
10
|
+
* import { u8aEq } from '@pezkuwi/util';
|
|
11
|
+
*
|
|
12
|
+
* u8aEq(new Uint8Array([0x68, 0x65]), new Uint8Array([0x68, 0x65])); // true
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare function u8aEq(a: string | Uint8Array, b: string | Uint8Array): boolean;
|
package/u8a/eq.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { u8aToU8a } from './toU8a.js';
|
|
2
|
+
/**
|
|
3
|
+
* @name u8aEq
|
|
4
|
+
* @summary Compares two Uint8Arrays for equality.
|
|
5
|
+
* @description
|
|
6
|
+
* For `UInt8Array` (or hex string) input values true if there is a match.
|
|
7
|
+
* @example
|
|
8
|
+
* <BR>
|
|
9
|
+
*
|
|
10
|
+
* ```javascript
|
|
11
|
+
* import { u8aEq } from '@pezkuwi/util';
|
|
12
|
+
*
|
|
13
|
+
* u8aEq(new Uint8Array([0x68, 0x65]), new Uint8Array([0x68, 0x65])); // true
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export function u8aEq(a, b) {
|
|
17
|
+
const u8aa = u8aToU8a(a);
|
|
18
|
+
const u8ab = u8aToU8a(b);
|
|
19
|
+
if (u8aa.length === u8ab.length) {
|
|
20
|
+
const dvA = new DataView(u8aa.buffer, u8aa.byteOffset);
|
|
21
|
+
const dvB = new DataView(u8ab.buffer, u8ab.byteOffset);
|
|
22
|
+
const mod = (u8aa.length % 4) | 0;
|
|
23
|
+
const length = (u8aa.length - mod) | 0;
|
|
24
|
+
for (let i = 0; i < length; i += 4) {
|
|
25
|
+
if (dvA.getUint32(i) !== dvB.getUint32(i)) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
for (let i = length, count = u8aa.length; i < count; i++) {
|
|
30
|
+
if (u8aa[i] !== u8ab[i]) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name u8aFixLength
|
|
3
|
+
* @summary Shifts a Uint8Array to a specific bitLength
|
|
4
|
+
* @description
|
|
5
|
+
* Returns a uint8Array with the specified number of bits contained in the return value. (If bitLength is -1, length checking is not done). Values with more bits are trimmed to the specified length.
|
|
6
|
+
* @example
|
|
7
|
+
* <BR>
|
|
8
|
+
*
|
|
9
|
+
* ```javascript
|
|
10
|
+
* import { u8aFixLength } from '@pezkuwi/util';
|
|
11
|
+
*
|
|
12
|
+
* u8aFixLength('0x12') // => 0x12
|
|
13
|
+
* u8aFixLength('0x12', 16) // => 0x0012
|
|
14
|
+
* u8aFixLength('0x1234', 8) // => 0x12
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare function u8aFixLength(value: Uint8Array, bitLength?: number, atStart?: boolean): Uint8Array;
|
package/u8a/fixLength.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name u8aFixLength
|
|
3
|
+
* @summary Shifts a Uint8Array to a specific bitLength
|
|
4
|
+
* @description
|
|
5
|
+
* Returns a uint8Array with the specified number of bits contained in the return value. (If bitLength is -1, length checking is not done). Values with more bits are trimmed to the specified length.
|
|
6
|
+
* @example
|
|
7
|
+
* <BR>
|
|
8
|
+
*
|
|
9
|
+
* ```javascript
|
|
10
|
+
* import { u8aFixLength } from '@pezkuwi/util';
|
|
11
|
+
*
|
|
12
|
+
* u8aFixLength('0x12') // => 0x12
|
|
13
|
+
* u8aFixLength('0x12', 16) // => 0x0012
|
|
14
|
+
* u8aFixLength('0x1234', 8) // => 0x12
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export function u8aFixLength(value, bitLength = -1, atStart = false) {
|
|
18
|
+
const byteLength = Math.ceil(bitLength / 8);
|
|
19
|
+
if (bitLength === -1 || value.length === byteLength) {
|
|
20
|
+
return value;
|
|
21
|
+
}
|
|
22
|
+
else if (value.length > byteLength) {
|
|
23
|
+
return value.subarray(0, byteLength);
|
|
24
|
+
}
|
|
25
|
+
const result = new Uint8Array(byteLength);
|
|
26
|
+
result.set(value, atStart ? 0 : (byteLength - value.length));
|
|
27
|
+
return result;
|
|
28
|
+
}
|
package/u8a/index.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @summary Utility methods to convert to and from `Uint8Array` objects
|
|
3
|
+
*/
|
|
4
|
+
export { u8aCmp } from './cmp.js';
|
|
5
|
+
export { u8aConcat, u8aConcatStrict } from './concat.js';
|
|
6
|
+
export { u8aEmpty } from './empty.js';
|
|
7
|
+
export { u8aEq } from './eq.js';
|
|
8
|
+
export { u8aFixLength } from './fixLength.js';
|
|
9
|
+
export { u8aSorted } from './sorted.js';
|
|
10
|
+
export { u8aToBigInt } from './toBigInt.js';
|
|
11
|
+
export { u8aToBn } from './toBn.js';
|
|
12
|
+
export { u8aToBuffer } from './toBuffer.js';
|
|
13
|
+
export { u8aToFloat } from './toFloat.js';
|
|
14
|
+
export { u8aToHex } from './toHex.js';
|
|
15
|
+
export { u8aToNumber } from './toNumber.js';
|
|
16
|
+
export { u8aToString } from './toString.js';
|
|
17
|
+
export { u8aToU8a } from './toU8a.js';
|
|
18
|
+
export { U8A_WRAP_ETHEREUM, U8A_WRAP_POSTFIX, U8A_WRAP_PREFIX, u8aIsWrapped, u8aUnwrapBytes, u8aWrapBytes } from './wrap.js';
|
package/u8a/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @summary Utility methods to convert to and from `Uint8Array` objects
|
|
3
|
+
*/
|
|
4
|
+
export { u8aCmp } from './cmp.js';
|
|
5
|
+
export { u8aConcat, u8aConcatStrict } from './concat.js';
|
|
6
|
+
export { u8aEmpty } from './empty.js';
|
|
7
|
+
export { u8aEq } from './eq.js';
|
|
8
|
+
export { u8aFixLength } from './fixLength.js';
|
|
9
|
+
export { u8aSorted } from './sorted.js';
|
|
10
|
+
export { u8aToBigInt } from './toBigInt.js';
|
|
11
|
+
export { u8aToBn } from './toBn.js';
|
|
12
|
+
export { u8aToBuffer } from './toBuffer.js';
|
|
13
|
+
export { u8aToFloat } from './toFloat.js';
|
|
14
|
+
export { u8aToHex } from './toHex.js';
|
|
15
|
+
export { u8aToNumber } from './toNumber.js';
|
|
16
|
+
export { u8aToString } from './toString.js';
|
|
17
|
+
export { u8aToU8a } from './toU8a.js';
|
|
18
|
+
export { U8A_WRAP_ETHEREUM, U8A_WRAP_POSTFIX, U8A_WRAP_PREFIX, u8aIsWrapped, u8aUnwrapBytes, u8aWrapBytes } from './wrap.js';
|
package/u8a/sorted.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name u8aSorted
|
|
3
|
+
* @summary Sorts an array of Uint8Arrays
|
|
4
|
+
* @description
|
|
5
|
+
* For input `UInt8Array[]` return the sorted result
|
|
6
|
+
* @example
|
|
7
|
+
* <BR>
|
|
8
|
+
*
|
|
9
|
+
* ```javascript
|
|
10
|
+
* import { u8aSorted} from '@pezkuwi/util';
|
|
11
|
+
*
|
|
12
|
+
* u8aSorted([new Uint8Array([0x69]), new Uint8Array([0x68])]); // [0x68, 0x69]
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare function u8aSorted(u8as: Uint8Array[]): Uint8Array[];
|
package/u8a/sorted.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { u8aCmp } from './cmp.js';
|
|
2
|
+
/**
|
|
3
|
+
* @name u8aSorted
|
|
4
|
+
* @summary Sorts an array of Uint8Arrays
|
|
5
|
+
* @description
|
|
6
|
+
* For input `UInt8Array[]` return the sorted result
|
|
7
|
+
* @example
|
|
8
|
+
* <BR>
|
|
9
|
+
*
|
|
10
|
+
* ```javascript
|
|
11
|
+
* import { u8aSorted} from '@pezkuwi/util';
|
|
12
|
+
*
|
|
13
|
+
* u8aSorted([new Uint8Array([0x69]), new Uint8Array([0x68])]); // [0x68, 0x69]
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export function u8aSorted(u8as) {
|
|
17
|
+
return u8as.sort(u8aCmp);
|
|
18
|
+
}
|
package/u8a/toBigInt.js
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { BigInt } from '@pezkuwi/x-bigint';
|
|
2
|
+
import { _1n } from '../bi/consts.js';
|
|
3
|
+
const U8_MAX = BigInt(256);
|
|
4
|
+
const U16_MAX = BigInt(256 * 256);
|
|
5
|
+
const U64_MAX = BigInt('0x10000000000000000');
|
|
6
|
+
/**
|
|
7
|
+
* @name u8aToBigInt
|
|
8
|
+
* @summary Creates a BigInt from a Uint8Array object.
|
|
9
|
+
*/
|
|
10
|
+
export function u8aToBigInt(value, { isLe = true, isNegative = false } = {}) {
|
|
11
|
+
// slice + reverse is expensive, however SCALE is LE by default so this is the path
|
|
12
|
+
// we are most interested in (the BE is added for the sake of being comprehensive)
|
|
13
|
+
if (!isLe) {
|
|
14
|
+
value = value.slice().reverse();
|
|
15
|
+
}
|
|
16
|
+
const count = value.length;
|
|
17
|
+
if (isNegative && count && (value[count - 1] & 0x80)) {
|
|
18
|
+
switch (count) {
|
|
19
|
+
case 0:
|
|
20
|
+
return BigInt(0);
|
|
21
|
+
case 1:
|
|
22
|
+
return BigInt(((value[0] ^ 0x0000_00ff) * -1) - 1);
|
|
23
|
+
case 2:
|
|
24
|
+
return BigInt((((value[0] + (value[1] << 8)) ^ 0x0000_ffff) * -1) - 1);
|
|
25
|
+
case 4:
|
|
26
|
+
return BigInt((((value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] * 0x1_00_00_00)) ^ 0xffff_ffff) * -1) - 1);
|
|
27
|
+
}
|
|
28
|
+
const dvI = new DataView(value.buffer, value.byteOffset);
|
|
29
|
+
if (count === 8) {
|
|
30
|
+
return dvI.getBigInt64(0, true);
|
|
31
|
+
}
|
|
32
|
+
let result = BigInt(0);
|
|
33
|
+
const mod = count % 2;
|
|
34
|
+
for (let i = count - 2; i >= mod; i -= 2) {
|
|
35
|
+
result = (result * U16_MAX) + BigInt(dvI.getUint16(i, true) ^ 0xffff);
|
|
36
|
+
}
|
|
37
|
+
if (mod) {
|
|
38
|
+
result = (result * U8_MAX) + BigInt(value[0] ^ 0xff);
|
|
39
|
+
}
|
|
40
|
+
return (result * -_1n) - _1n;
|
|
41
|
+
}
|
|
42
|
+
switch (count) {
|
|
43
|
+
case 0:
|
|
44
|
+
return BigInt(0);
|
|
45
|
+
case 1:
|
|
46
|
+
return BigInt(value[0]);
|
|
47
|
+
case 2:
|
|
48
|
+
return BigInt(value[0] + (value[1] << 8));
|
|
49
|
+
case 4:
|
|
50
|
+
return BigInt(value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] * 0x1_00_00_00));
|
|
51
|
+
}
|
|
52
|
+
const dvI = new DataView(value.buffer, value.byteOffset);
|
|
53
|
+
switch (count) {
|
|
54
|
+
case 8:
|
|
55
|
+
return dvI.getBigUint64(0, true);
|
|
56
|
+
case 16:
|
|
57
|
+
return (dvI.getBigUint64(8, true) * U64_MAX) + dvI.getBigUint64(0, true);
|
|
58
|
+
default: {
|
|
59
|
+
let result = BigInt(0);
|
|
60
|
+
const mod = count % 2;
|
|
61
|
+
for (let i = count - 2; i >= mod; i -= 2) {
|
|
62
|
+
result = (result * U16_MAX) + BigInt(dvI.getUint16(i, true));
|
|
63
|
+
}
|
|
64
|
+
if (mod) {
|
|
65
|
+
result = (result * U8_MAX) + BigInt(value[0]);
|
|
66
|
+
}
|
|
67
|
+
return result;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
package/u8a/toBn.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ToBnOptions } from '../types.js';
|
|
2
|
+
import { BN } from '../bn/bn.js';
|
|
3
|
+
/**
|
|
4
|
+
* @name u8aToBn
|
|
5
|
+
* @summary Creates a BN from a Uint8Array object.
|
|
6
|
+
* @description
|
|
7
|
+
* `UInt8Array` input values return the actual BN. `null` or `undefined` values returns an `0x0` value.
|
|
8
|
+
* @param value The value to convert
|
|
9
|
+
* @param options Options to pass while converting
|
|
10
|
+
* @param options.isLe Convert using Little Endian (default)
|
|
11
|
+
* @param options.isNegative Convert using two's complement
|
|
12
|
+
* @example
|
|
13
|
+
* <BR>
|
|
14
|
+
*
|
|
15
|
+
* ```javascript
|
|
16
|
+
* import { u8aToBn } from '@pezkuwi/util';
|
|
17
|
+
*
|
|
18
|
+
* u8aToHex(new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0xf])); // 0x68656c0f
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function u8aToBn(value: Uint8Array, { isLe, isNegative }?: ToBnOptions): BN;
|
package/u8a/toBn.js
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { BN } from '../bn/bn.js';
|
|
2
|
+
/**
|
|
3
|
+
* @name u8aToBn
|
|
4
|
+
* @summary Creates a BN from a Uint8Array object.
|
|
5
|
+
* @description
|
|
6
|
+
* `UInt8Array` input values return the actual BN. `null` or `undefined` values returns an `0x0` value.
|
|
7
|
+
* @param value The value to convert
|
|
8
|
+
* @param options Options to pass while converting
|
|
9
|
+
* @param options.isLe Convert using Little Endian (default)
|
|
10
|
+
* @param options.isNegative Convert using two's complement
|
|
11
|
+
* @example
|
|
12
|
+
* <BR>
|
|
13
|
+
*
|
|
14
|
+
* ```javascript
|
|
15
|
+
* import { u8aToBn } from '@pezkuwi/util';
|
|
16
|
+
*
|
|
17
|
+
* u8aToHex(new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0xf])); // 0x68656c0f
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export function u8aToBn(value, { isLe = true, isNegative = false } = {}) {
|
|
21
|
+
// slice + reverse is expensive, however SCALE is LE by default so this is the path
|
|
22
|
+
// we are most interested in (the BE is added for the sake of being comprehensive)
|
|
23
|
+
if (!isLe) {
|
|
24
|
+
value = value.slice().reverse();
|
|
25
|
+
}
|
|
26
|
+
const count = value.length;
|
|
27
|
+
// shortcut for <= u48 values - in this case the manual conversion
|
|
28
|
+
// here seems to be more efficient than passing the full array
|
|
29
|
+
if (isNegative && count && (value[count - 1] & 0x80)) {
|
|
30
|
+
// Most common case i{8, 16, 32} default LE SCALE-encoded
|
|
31
|
+
// For <= 32, we also optimize the xor to a single op
|
|
32
|
+
switch (count) {
|
|
33
|
+
case 0:
|
|
34
|
+
return new BN(0);
|
|
35
|
+
case 1:
|
|
36
|
+
return new BN(((value[0] ^ 0x0000_00ff) * -1) - 1);
|
|
37
|
+
case 2:
|
|
38
|
+
return new BN((((value[0] + (value[1] << 8)) ^ 0x0000_ffff) * -1) - 1);
|
|
39
|
+
case 3:
|
|
40
|
+
return new BN((((value[0] + (value[1] << 8) + (value[2] << 16)) ^ 0x00ff_ffff) * -1) - 1);
|
|
41
|
+
case 4:
|
|
42
|
+
// for the 3rd byte, we don't << 24 - since JS converts all bitwise operators to
|
|
43
|
+
// 32-bit, in the case where the top-most bit is set this yields a negative value
|
|
44
|
+
return new BN((((value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] * 0x1_00_00_00)) ^ 0xffff_ffff) * -1) - 1);
|
|
45
|
+
case 5:
|
|
46
|
+
return new BN(((((value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] * 0x1_00_00_00)) ^ 0xffff_ffff) + ((value[4] ^ 0xff) * 0x1_00_00_00_00)) * -1) - 1);
|
|
47
|
+
case 6:
|
|
48
|
+
return new BN(((((value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] * 0x1_00_00_00)) ^ 0xffff_ffff) + (((value[4] + (value[5] << 8)) ^ 0x0000_ffff) * 0x1_00_00_00_00)) * -1) - 1);
|
|
49
|
+
default:
|
|
50
|
+
return new BN(value, 'le').fromTwos(count * 8);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Most common case - u{8, 16, 32} default LE SCALE-encoded
|
|
54
|
+
//
|
|
55
|
+
// There are some slight benefits in unrolling this specific loop,
|
|
56
|
+
// however it comes with diminishing returns since here the actual
|
|
57
|
+
// `new BN` does seem to take up the bulk of the time
|
|
58
|
+
switch (count) {
|
|
59
|
+
case 0:
|
|
60
|
+
return new BN(0);
|
|
61
|
+
case 1:
|
|
62
|
+
return new BN(value[0]);
|
|
63
|
+
case 2:
|
|
64
|
+
return new BN(value[0] + (value[1] << 8));
|
|
65
|
+
case 3:
|
|
66
|
+
return new BN(value[0] + (value[1] << 8) + (value[2] << 16));
|
|
67
|
+
case 4:
|
|
68
|
+
// for the 3rd byte, we don't << 24 - since JS converts all bitwise operators to
|
|
69
|
+
// 32-bit, in the case where the top-most bit is set this yields a negative value
|
|
70
|
+
return new BN(value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] * 0x1_00_00_00));
|
|
71
|
+
case 5:
|
|
72
|
+
return new BN(value[0] + (value[1] << 8) + (value[2] << 16) + ((value[3] + (value[4] << 8)) * 0x1_00_00_00));
|
|
73
|
+
case 6:
|
|
74
|
+
return new BN(value[0] + (value[1] << 8) + (value[2] << 16) + ((value[3] + (value[4] << 8) + (value[5] << 16)) * 0x1_00_00_00));
|
|
75
|
+
default:
|
|
76
|
+
return new BN(value, 'le');
|
|
77
|
+
}
|
|
78
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { BufferObject } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* @name u8aToBuffer
|
|
4
|
+
* @summary Creates a Buffer object from a hex string.
|
|
5
|
+
* @description
|
|
6
|
+
* `null` inputs returns an empty `Buffer` result. `UInt8Array` input values return the actual bytes value converted to a `Buffer`. Anything that is not a `UInt8Array` throws an error.
|
|
7
|
+
* @example
|
|
8
|
+
* <BR>
|
|
9
|
+
*
|
|
10
|
+
* ```javascript
|
|
11
|
+
* import { u8aToBuffer } from '@pezkuwi/util';
|
|
12
|
+
*
|
|
13
|
+
* console.log('Buffer', u8aToBuffer(new Uint8Array([1, 2, 3])));
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare function u8aToBuffer<T = BufferObject>(value?: Uint8Array | null): T;
|
package/u8a/toBuffer.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { xglobal } from '@pezkuwi/x-global';
|
|
2
|
+
import { hasBuffer } from '../has.js';
|
|
3
|
+
/**
|
|
4
|
+
* @name u8aToBuffer
|
|
5
|
+
* @summary Creates a Buffer object from a hex string.
|
|
6
|
+
* @description
|
|
7
|
+
* `null` inputs returns an empty `Buffer` result. `UInt8Array` input values return the actual bytes value converted to a `Buffer`. Anything that is not a `UInt8Array` throws an error.
|
|
8
|
+
* @example
|
|
9
|
+
* <BR>
|
|
10
|
+
*
|
|
11
|
+
* ```javascript
|
|
12
|
+
* import { u8aToBuffer } from '@pezkuwi/util';
|
|
13
|
+
*
|
|
14
|
+
* console.log('Buffer', u8aToBuffer(new Uint8Array([1, 2, 3])));
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export function u8aToBuffer(value) {
|
|
18
|
+
return hasBuffer
|
|
19
|
+
? xglobal.Buffer.from(value || [])
|
|
20
|
+
: new Uint8Array(value || []);
|
|
21
|
+
}
|