@pezkuwi/types-codec 16.5.6 → 16.5.8
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/build/LICENSE +201 -0
- package/build/README.md +3 -0
- package/build/abstract/Array.d.ts +89 -0
- package/build/abstract/Array.js +166 -0
- package/build/abstract/Base.d.ts +75 -0
- package/build/abstract/Base.js +101 -0
- package/build/abstract/Int.d.ts +80 -0
- package/build/abstract/Int.js +226 -0
- package/build/abstract/Object.d.ts +67 -0
- package/build/abstract/Object.js +40 -0
- package/build/abstract/index.d.ts +3 -0
- package/build/abstract/index.js +3 -0
- package/build/base/Compact.d.ts +88 -0
- package/build/base/Compact.js +159 -0
- package/build/base/DoNotConstruct.d.ts +63 -0
- package/build/base/DoNotConstruct.js +95 -0
- package/build/base/Enum.d.ts +118 -0
- package/build/base/Enum.js +369 -0
- package/build/base/Int.d.ts +16 -0
- package/build/base/Int.js +26 -0
- package/build/base/Null.d.ts +56 -0
- package/build/base/Null.js +77 -0
- package/build/base/Option.d.ts +94 -0
- package/build/base/Option.js +232 -0
- package/build/base/Result.d.ts +38 -0
- package/build/base/Result.js +63 -0
- package/build/base/Tuple.d.ts +42 -0
- package/build/base/Tuple.js +110 -0
- package/build/base/UInt.d.ts +15 -0
- package/build/base/UInt.js +23 -0
- package/build/base/Vec.d.ts +28 -0
- package/build/base/Vec.js +102 -0
- package/build/base/VecAny.d.ts +15 -0
- package/build/base/VecAny.js +17 -0
- package/build/base/VecFixed.d.ts +30 -0
- package/build/base/VecFixed.js +67 -0
- package/build/base/index.d.ts +12 -0
- package/build/base/index.js +12 -0
- package/build/bundle.d.ts +7 -0
- package/build/bundle.js +7 -0
- package/build/cjs/abstract/Array.d.ts +89 -0
- package/build/cjs/abstract/Array.js +170 -0
- package/build/cjs/abstract/Base.d.ts +75 -0
- package/build/cjs/abstract/Base.js +105 -0
- package/build/cjs/abstract/Int.d.ts +80 -0
- package/build/cjs/abstract/Int.js +230 -0
- package/build/cjs/abstract/Object.d.ts +67 -0
- package/build/cjs/abstract/Object.js +44 -0
- package/build/cjs/abstract/index.d.ts +3 -0
- package/build/cjs/abstract/index.js +9 -0
- package/build/cjs/base/Compact.d.ts +88 -0
- package/build/cjs/base/Compact.js +163 -0
- package/build/cjs/base/DoNotConstruct.d.ts +63 -0
- package/build/cjs/base/DoNotConstruct.js +99 -0
- package/build/cjs/base/Enum.d.ts +118 -0
- package/build/cjs/base/Enum.js +373 -0
- package/build/cjs/base/Int.d.ts +16 -0
- package/build/cjs/base/Int.js +30 -0
- package/build/cjs/base/Null.d.ts +56 -0
- package/build/cjs/base/Null.js +81 -0
- package/build/cjs/base/Option.d.ts +94 -0
- package/build/cjs/base/Option.js +236 -0
- package/build/cjs/base/Result.d.ts +38 -0
- package/build/cjs/base/Result.js +67 -0
- package/build/cjs/base/Tuple.d.ts +42 -0
- package/build/cjs/base/Tuple.js +114 -0
- package/build/cjs/base/UInt.d.ts +15 -0
- package/build/cjs/base/UInt.js +27 -0
- package/build/cjs/base/Vec.d.ts +28 -0
- package/build/cjs/base/Vec.js +107 -0
- package/build/cjs/base/VecAny.d.ts +15 -0
- package/build/cjs/base/VecAny.js +21 -0
- package/build/cjs/base/VecFixed.d.ts +30 -0
- package/build/cjs/base/VecFixed.js +71 -0
- package/build/cjs/base/index.d.ts +12 -0
- package/build/cjs/base/index.js +27 -0
- package/build/cjs/bundle.d.ts +7 -0
- package/build/cjs/bundle.js +12 -0
- package/build/cjs/extended/BTreeMap.d.ts +5 -0
- package/build/cjs/extended/BTreeMap.js +14 -0
- package/build/cjs/extended/BTreeSet.d.ts +64 -0
- package/build/cjs/extended/BTreeSet.js +189 -0
- package/build/cjs/extended/BitVec.d.ts +37 -0
- package/build/cjs/extended/BitVec.js +112 -0
- package/build/cjs/extended/Bytes.d.ts +29 -0
- package/build/cjs/extended/Bytes.js +74 -0
- package/build/cjs/extended/HashMap.d.ts +5 -0
- package/build/cjs/extended/HashMap.js +14 -0
- package/build/cjs/extended/Linkage.d.ts +37 -0
- package/build/cjs/extended/Linkage.js +70 -0
- package/build/cjs/extended/Map.d.ts +59 -0
- package/build/cjs/extended/Map.js +204 -0
- package/build/cjs/extended/OptionBool.d.ts +36 -0
- package/build/cjs/extended/OptionBool.js +76 -0
- package/build/cjs/extended/Range.d.ts +29 -0
- package/build/cjs/extended/Range.js +42 -0
- package/build/cjs/extended/RangeInclusive.d.ts +6 -0
- package/build/cjs/extended/RangeInclusive.js +17 -0
- package/build/cjs/extended/Type.d.ts +16 -0
- package/build/cjs/extended/Type.js +25 -0
- package/build/cjs/extended/U8aFixed.d.ts +16 -0
- package/build/cjs/extended/U8aFixed.js +46 -0
- package/build/cjs/extended/WrapperKeepOpaque.d.ts +40 -0
- package/build/cjs/extended/WrapperKeepOpaque.js +103 -0
- package/build/cjs/extended/WrapperOpaque.d.ts +10 -0
- package/build/cjs/extended/WrapperOpaque.js +23 -0
- package/build/cjs/extended/index.d.ts +14 -0
- package/build/cjs/extended/index.js +32 -0
- package/build/cjs/index.d.ts +2 -0
- package/build/cjs/index.js +5 -0
- package/build/cjs/native/Bool.d.ts +71 -0
- package/build/cjs/native/Bool.js +113 -0
- package/build/cjs/native/Date.d.ts +84 -0
- package/build/cjs/native/Date.js +144 -0
- package/build/cjs/native/Float.d.ts +68 -0
- package/build/cjs/native/Float.js +111 -0
- package/build/cjs/native/Json.d.ts +69 -0
- package/build/cjs/native/Json.js +121 -0
- package/build/cjs/native/Raw.d.ts +87 -0
- package/build/cjs/native/Raw.js +144 -0
- package/build/cjs/native/Set.d.ts +84 -0
- package/build/cjs/native/Set.js +219 -0
- package/build/cjs/native/Struct.d.ts +106 -0
- package/build/cjs/native/Struct.data.js +4 -0
- package/build/cjs/native/Struct.js +264 -0
- package/build/cjs/native/Text.d.ts +77 -0
- package/build/cjs/native/Text.js +154 -0
- package/build/cjs/native/index.d.ts +8 -0
- package/build/cjs/native/index.js +22 -0
- package/build/cjs/package.json +3 -0
- package/build/cjs/packageDetect.d.ts +1 -0
- package/build/cjs/packageDetect.js +5 -0
- package/build/cjs/packageInfo.d.ts +6 -0
- package/build/cjs/packageInfo.js +4 -0
- package/build/cjs/primitive/F32.d.ts +11 -0
- package/build/cjs/primitive/F32.js +14 -0
- package/build/cjs/primitive/F64.d.ts +11 -0
- package/build/cjs/primitive/F64.js +14 -0
- package/build/cjs/primitive/I128.d.ts +11 -0
- package/build/cjs/primitive/I128.js +14 -0
- package/build/cjs/primitive/I16.d.ts +11 -0
- package/build/cjs/primitive/I16.js +14 -0
- package/build/cjs/primitive/I256.d.ts +11 -0
- package/build/cjs/primitive/I256.js +14 -0
- package/build/cjs/primitive/I32.d.ts +11 -0
- package/build/cjs/primitive/I32.js +14 -0
- package/build/cjs/primitive/I64.d.ts +11 -0
- package/build/cjs/primitive/I64.js +14 -0
- package/build/cjs/primitive/I8.d.ts +11 -0
- package/build/cjs/primitive/I8.js +14 -0
- package/build/cjs/primitive/ISize.d.ts +12 -0
- package/build/cjs/primitive/ISize.js +18 -0
- package/build/cjs/primitive/U128.d.ts +11 -0
- package/build/cjs/primitive/U128.js +14 -0
- package/build/cjs/primitive/U16.d.ts +11 -0
- package/build/cjs/primitive/U16.js +14 -0
- package/build/cjs/primitive/U256.d.ts +11 -0
- package/build/cjs/primitive/U256.js +14 -0
- package/build/cjs/primitive/U32.d.ts +11 -0
- package/build/cjs/primitive/U32.js +14 -0
- package/build/cjs/primitive/U64.d.ts +11 -0
- package/build/cjs/primitive/U64.js +14 -0
- package/build/cjs/primitive/U8.d.ts +11 -0
- package/build/cjs/primitive/U8.js +14 -0
- package/build/cjs/primitive/USize.d.ts +12 -0
- package/build/cjs/primitive/USize.js +18 -0
- package/build/cjs/primitive/index.d.ts +16 -0
- package/build/cjs/primitive/index.js +51 -0
- package/build/cjs/types/codec.d.ts +113 -0
- package/build/cjs/types/codec.js +2 -0
- package/build/cjs/types/helpers.d.ts +27 -0
- package/build/cjs/types/helpers.js +2 -0
- package/build/cjs/types/index.d.ts +4 -0
- package/build/cjs/types/index.js +7 -0
- package/build/cjs/types/interfaces.d.ts +74 -0
- package/build/cjs/types/interfaces.js +2 -0
- package/build/cjs/types/registry.d.ts +67 -0
- package/build/cjs/types/registry.js +2 -0
- package/build/cjs/utils/compareArray.d.ts +1 -0
- package/build/cjs/utils/compareArray.js +13 -0
- package/build/cjs/utils/compareMap.d.ts +1 -0
- package/build/cjs/utils/compareMap.js +30 -0
- package/build/cjs/utils/compareSet.d.ts +1 -0
- package/build/cjs/utils/compareSet.js +20 -0
- package/build/cjs/utils/decodeU8a.d.ts +26 -0
- package/build/cjs/utils/decodeU8a.js +105 -0
- package/build/cjs/utils/index.d.ts +8 -0
- package/build/cjs/utils/index.js +25 -0
- package/build/cjs/utils/sanitize.d.ts +15 -0
- package/build/cjs/utils/sanitize.js +233 -0
- package/build/cjs/utils/sortValues.d.ts +12 -0
- package/build/cjs/utils/sortValues.js +84 -0
- package/build/cjs/utils/toConstructors.d.ts +16 -0
- package/build/cjs/utils/toConstructors.js +40 -0
- package/build/cjs/utils/typesToMap.d.ts +2 -0
- package/build/cjs/utils/typesToMap.js +10 -0
- package/build/cjs/utils/util.d.ts +3 -0
- package/build/cjs/utils/util.js +7 -0
- package/build/extended/BTreeMap.d.ts +5 -0
- package/build/extended/BTreeMap.js +10 -0
- package/build/extended/BTreeSet.d.ts +64 -0
- package/build/extended/BTreeSet.js +185 -0
- package/build/extended/BitVec.d.ts +37 -0
- package/build/extended/BitVec.js +108 -0
- package/build/extended/Bytes.d.ts +29 -0
- package/build/extended/Bytes.js +70 -0
- package/build/extended/HashMap.d.ts +5 -0
- package/build/extended/HashMap.js +10 -0
- package/build/extended/Linkage.d.ts +37 -0
- package/build/extended/Linkage.js +65 -0
- package/build/extended/Map.d.ts +59 -0
- package/build/extended/Map.js +200 -0
- package/build/extended/OptionBool.d.ts +36 -0
- package/build/extended/OptionBool.js +72 -0
- package/build/extended/Range.d.ts +29 -0
- package/build/extended/Range.js +38 -0
- package/build/extended/RangeInclusive.d.ts +6 -0
- package/build/extended/RangeInclusive.js +13 -0
- package/build/extended/Type.d.ts +16 -0
- package/build/extended/Type.js +21 -0
- package/build/extended/U8aFixed.d.ts +16 -0
- package/build/extended/U8aFixed.js +42 -0
- package/build/extended/WrapperKeepOpaque.d.ts +40 -0
- package/build/extended/WrapperKeepOpaque.js +99 -0
- package/build/extended/WrapperOpaque.d.ts +10 -0
- package/build/extended/WrapperOpaque.js +19 -0
- package/build/extended/index.d.ts +14 -0
- package/build/extended/index.js +14 -0
- package/build/index.d.ts +2 -0
- package/build/index.js +2 -0
- package/build/native/Bool.d.ts +71 -0
- package/build/native/Bool.js +109 -0
- package/build/native/Date.d.ts +84 -0
- package/build/native/Date.js +140 -0
- package/build/native/Float.d.ts +68 -0
- package/build/native/Float.js +107 -0
- package/build/native/Json.d.ts +69 -0
- package/build/native/Json.js +117 -0
- package/build/native/Raw.d.ts +87 -0
- package/build/native/Raw.js +140 -0
- package/build/native/Set.d.ts +84 -0
- package/build/native/Set.js +215 -0
- package/build/native/Struct.d.ts +106 -0
- package/build/native/Struct.data.js +1 -0
- package/build/native/Struct.js +260 -0
- package/build/native/Text.d.ts +77 -0
- package/build/native/Text.js +150 -0
- package/build/native/index.d.ts +8 -0
- package/build/native/index.js +8 -0
- package/build/package.json +1149 -0
- package/build/packageDetect.d.ts +1 -0
- package/build/packageDetect.js +3 -0
- package/build/packageInfo.d.ts +6 -0
- package/build/packageInfo.js +1 -0
- package/build/primitive/F32.d.ts +11 -0
- package/build/primitive/F32.js +10 -0
- package/build/primitive/F64.d.ts +11 -0
- package/build/primitive/F64.js +10 -0
- package/build/primitive/I128.d.ts +11 -0
- package/build/primitive/I128.js +10 -0
- package/build/primitive/I16.d.ts +11 -0
- package/build/primitive/I16.js +10 -0
- package/build/primitive/I256.d.ts +11 -0
- package/build/primitive/I256.js +10 -0
- package/build/primitive/I32.d.ts +11 -0
- package/build/primitive/I32.js +10 -0
- package/build/primitive/I64.d.ts +11 -0
- package/build/primitive/I64.js +10 -0
- package/build/primitive/I8.d.ts +11 -0
- package/build/primitive/I8.js +10 -0
- package/build/primitive/ISize.d.ts +12 -0
- package/build/primitive/ISize.js +14 -0
- package/build/primitive/U128.d.ts +11 -0
- package/build/primitive/U128.js +10 -0
- package/build/primitive/U16.d.ts +11 -0
- package/build/primitive/U16.js +10 -0
- package/build/primitive/U256.d.ts +11 -0
- package/build/primitive/U256.js +10 -0
- package/build/primitive/U32.d.ts +11 -0
- package/build/primitive/U32.js +10 -0
- package/build/primitive/U64.d.ts +11 -0
- package/build/primitive/U64.js +10 -0
- package/build/primitive/U8.d.ts +11 -0
- package/build/primitive/U8.js +10 -0
- package/build/primitive/USize.d.ts +12 -0
- package/build/primitive/USize.js +14 -0
- package/build/primitive/index.d.ts +16 -0
- package/build/primitive/index.js +16 -0
- package/build/types/codec.d.ts +113 -0
- package/build/types/codec.js +1 -0
- package/build/types/helpers.d.ts +27 -0
- package/build/types/helpers.js +1 -0
- package/build/types/index.d.ts +4 -0
- package/build/types/index.js +4 -0
- package/build/types/interfaces.d.ts +74 -0
- package/build/types/interfaces.js +1 -0
- package/build/types/registry.d.ts +67 -0
- package/build/types/registry.js +1 -0
- package/build/utils/compareArray.d.ts +1 -0
- package/build/utils/compareArray.js +10 -0
- package/build/utils/compareMap.d.ts +1 -0
- package/build/utils/compareMap.js +27 -0
- package/build/utils/compareSet.d.ts +1 -0
- package/build/utils/compareSet.js +17 -0
- package/build/utils/decodeU8a.d.ts +26 -0
- package/build/utils/decodeU8a.js +100 -0
- package/build/utils/index.d.ts +8 -0
- package/build/utils/index.js +8 -0
- package/build/utils/sanitize.d.ts +15 -0
- package/build/utils/sanitize.js +219 -0
- package/build/utils/sortValues.d.ts +12 -0
- package/build/utils/sortValues.js +79 -0
- package/build/utils/toConstructors.d.ts +16 -0
- package/build/utils/toConstructors.js +35 -0
- package/build/utils/typesToMap.d.ts +2 -0
- package/build/utils/typesToMap.js +7 -0
- package/build/utils/util.d.ts +3 -0
- package/build/utils/util.js +4 -0
- package/build-deno/README.md +3 -0
- package/build-deno/abstract/Array.ts +211 -0
- package/build-deno/abstract/Base.ts +127 -0
- package/build-deno/abstract/Int.ts +267 -0
- package/build-deno/abstract/Object.ts +97 -0
- package/build-deno/abstract/index.ts +4 -0
- package/build-deno/base/Compact.ts +196 -0
- package/build-deno/base/DoNotConstruct.ts +116 -0
- package/build-deno/base/Enum.ts +457 -0
- package/build-deno/base/Int.ts +32 -0
- package/build-deno/base/Null.ts +94 -0
- package/build-deno/base/Option.ts +273 -0
- package/build-deno/base/Result.ts +77 -0
- package/build-deno/base/Tuple.ts +147 -0
- package/build-deno/base/UInt.ts +28 -0
- package/build-deno/base/Vec.ts +131 -0
- package/build-deno/base/VecAny.ts +21 -0
- package/build-deno/base/VecFixed.ts +90 -0
- package/build-deno/base/index.ts +13 -0
- package/build-deno/bundle.ts +9 -0
- package/build-deno/checkTypes.manual.ts +10 -0
- package/build-deno/extended/BTreeMap.ts +14 -0
- package/build-deno/extended/BTreeSet.ts +231 -0
- package/build-deno/extended/BitVec.ts +135 -0
- package/build-deno/extended/Bytes.ts +85 -0
- package/build-deno/extended/HashMap.ts +14 -0
- package/build-deno/extended/Linkage.ts +79 -0
- package/build-deno/extended/Map.ts +253 -0
- package/build-deno/extended/OptionBool.ts +91 -0
- package/build-deno/extended/Range.ts +54 -0
- package/build-deno/extended/RangeInclusive.ts +18 -0
- package/build-deno/extended/Type.ts +27 -0
- package/build-deno/extended/U8aFixed.ts +55 -0
- package/build-deno/extended/WrapperKeepOpaque.ts +126 -0
- package/build-deno/extended/WrapperOpaque.ts +25 -0
- package/build-deno/extended/index.ts +15 -0
- package/build-deno/index.ts +4 -0
- package/build-deno/mod.ts +2 -0
- package/build-deno/native/Bool.ts +135 -0
- package/build-deno/native/Date.ts +167 -0
- package/build-deno/native/Float.ts +134 -0
- package/build-deno/native/Json.ts +145 -0
- package/build-deno/native/Raw.ts +169 -0
- package/build-deno/native/Set.ts +267 -0
- package/build-deno/native/Struct.data.ts +2 -0
- package/build-deno/native/Struct.ts +336 -0
- package/build-deno/native/Text.ts +182 -0
- package/build-deno/native/index.ts +9 -0
- package/build-deno/packageDetect.ts +7 -0
- package/build-deno/packageInfo.ts +3 -0
- package/build-deno/primitive/F32.ts +12 -0
- package/build-deno/primitive/F64.ts +12 -0
- package/build-deno/primitive/I128.ts +12 -0
- package/build-deno/primitive/I16.ts +12 -0
- package/build-deno/primitive/I256.ts +12 -0
- package/build-deno/primitive/I32.ts +12 -0
- package/build-deno/primitive/I64.ts +12 -0
- package/build-deno/primitive/I8.ts +12 -0
- package/build-deno/primitive/ISize.ts +19 -0
- package/build-deno/primitive/U128.ts +12 -0
- package/build-deno/primitive/U16.ts +12 -0
- package/build-deno/primitive/U256.ts +12 -0
- package/build-deno/primitive/U32.ts +12 -0
- package/build-deno/primitive/U64.ts +12 -0
- package/build-deno/primitive/U8.ts +12 -0
- package/build-deno/primitive/USize.ts +19 -0
- package/build-deno/primitive/index.ts +17 -0
- package/build-deno/test/performance.ts +57 -0
- package/build-deno/types/codec.ts +138 -0
- package/build-deno/types/helpers.ts +41 -0
- package/build-deno/types/index.ts +5 -0
- package/build-deno/types/interfaces.ts +94 -0
- package/build-deno/types/registry.ts +84 -0
- package/build-deno/utils/compareArray.ts +18 -0
- package/build-deno/utils/compareMap.ts +36 -0
- package/build-deno/utils/compareSet.ts +19 -0
- package/build-deno/utils/decodeU8a.ts +121 -0
- package/build-deno/utils/index.ts +9 -0
- package/build-deno/utils/sanitize.ts +282 -0
- package/build-deno/utils/sortValues.ts +101 -0
- package/build-deno/utils/toConstructors.ts +44 -0
- package/build-deno/utils/typesToMap.ts +12 -0
- package/build-deno/utils/util.ts +6 -0
- package/build-tsc/abstract/Array.d.ts +89 -0
- package/build-tsc/abstract/Base.d.ts +75 -0
- package/build-tsc/abstract/Int.d.ts +80 -0
- package/build-tsc/abstract/Object.d.ts +67 -0
- package/build-tsc/abstract/index.d.ts +3 -0
- package/build-tsc/base/Compact.d.ts +88 -0
- package/build-tsc/base/DoNotConstruct.d.ts +63 -0
- package/build-tsc/base/Enum.d.ts +118 -0
- package/build-tsc/base/Int.d.ts +16 -0
- package/build-tsc/base/Null.d.ts +56 -0
- package/build-tsc/base/Option.d.ts +94 -0
- package/build-tsc/base/Result.d.ts +38 -0
- package/build-tsc/base/Tuple.d.ts +42 -0
- package/build-tsc/base/UInt.d.ts +15 -0
- package/build-tsc/base/Vec.d.ts +28 -0
- package/build-tsc/base/VecAny.d.ts +15 -0
- package/build-tsc/base/VecFixed.d.ts +30 -0
- package/build-tsc/base/index.d.ts +12 -0
- package/build-tsc/bundle.d.ts +7 -0
- package/build-tsc/extended/BTreeMap.d.ts +5 -0
- package/build-tsc/extended/BTreeSet.d.ts +64 -0
- package/build-tsc/extended/BitVec.d.ts +37 -0
- package/build-tsc/extended/Bytes.d.ts +29 -0
- package/build-tsc/extended/HashMap.d.ts +5 -0
- package/build-tsc/extended/Linkage.d.ts +37 -0
- package/build-tsc/extended/Map.d.ts +59 -0
- package/build-tsc/extended/OptionBool.d.ts +36 -0
- package/build-tsc/extended/Range.d.ts +29 -0
- package/build-tsc/extended/RangeInclusive.d.ts +6 -0
- package/build-tsc/extended/Type.d.ts +16 -0
- package/build-tsc/extended/U8aFixed.d.ts +16 -0
- package/build-tsc/extended/WrapperKeepOpaque.d.ts +40 -0
- package/build-tsc/extended/WrapperOpaque.d.ts +10 -0
- package/build-tsc/extended/index.d.ts +14 -0
- package/build-tsc/index.d.ts +2 -0
- package/build-tsc/native/Bool.d.ts +71 -0
- package/build-tsc/native/Date.d.ts +84 -0
- package/build-tsc/native/Float.d.ts +68 -0
- package/build-tsc/native/Json.d.ts +69 -0
- package/build-tsc/native/Raw.d.ts +87 -0
- package/build-tsc/native/Set.d.ts +84 -0
- package/build-tsc/native/Struct.d.ts +106 -0
- package/build-tsc/native/Text.d.ts +77 -0
- package/build-tsc/native/index.d.ts +8 -0
- package/build-tsc/packageDetect.d.ts +1 -0
- package/build-tsc/packageInfo.d.ts +6 -0
- package/build-tsc/primitive/F32.d.ts +11 -0
- package/build-tsc/primitive/F64.d.ts +11 -0
- package/build-tsc/primitive/I128.d.ts +11 -0
- package/build-tsc/primitive/I16.d.ts +11 -0
- package/build-tsc/primitive/I256.d.ts +11 -0
- package/build-tsc/primitive/I32.d.ts +11 -0
- package/build-tsc/primitive/I64.d.ts +11 -0
- package/build-tsc/primitive/I8.d.ts +11 -0
- package/build-tsc/primitive/ISize.d.ts +12 -0
- package/build-tsc/primitive/U128.d.ts +11 -0
- package/build-tsc/primitive/U16.d.ts +11 -0
- package/build-tsc/primitive/U256.d.ts +11 -0
- package/build-tsc/primitive/U32.d.ts +11 -0
- package/build-tsc/primitive/U64.d.ts +11 -0
- package/build-tsc/primitive/U8.d.ts +11 -0
- package/build-tsc/primitive/USize.d.ts +12 -0
- package/build-tsc/primitive/index.d.ts +16 -0
- package/build-tsc/types/codec.d.ts +113 -0
- package/build-tsc/types/helpers.d.ts +27 -0
- package/build-tsc/types/index.d.ts +4 -0
- package/build-tsc/types/interfaces.d.ts +74 -0
- package/build-tsc/types/registry.d.ts +67 -0
- package/build-tsc/utils/compareArray.d.ts +1 -0
- package/build-tsc/utils/compareMap.d.ts +1 -0
- package/build-tsc/utils/compareSet.d.ts +1 -0
- package/build-tsc/utils/decodeU8a.d.ts +26 -0
- package/build-tsc/utils/index.d.ts +8 -0
- package/build-tsc/utils/sanitize.d.ts +15 -0
- package/build-tsc/utils/sortValues.d.ts +12 -0
- package/build-tsc/utils/toConstructors.d.ts +16 -0
- package/build-tsc/utils/typesToMap.d.ts +2 -0
- package/build-tsc/utils/util.d.ts +3 -0
- package/build-tsc-cjs/abstract/Array.js +170 -0
- package/build-tsc-cjs/abstract/Base.js +105 -0
- package/build-tsc-cjs/abstract/Int.js +230 -0
- package/build-tsc-cjs/abstract/Object.js +44 -0
- package/build-tsc-cjs/abstract/index.js +9 -0
- package/build-tsc-cjs/base/Compact.js +163 -0
- package/build-tsc-cjs/base/DoNotConstruct.js +99 -0
- package/build-tsc-cjs/base/Enum.js +373 -0
- package/build-tsc-cjs/base/Int.js +30 -0
- package/build-tsc-cjs/base/Null.js +81 -0
- package/build-tsc-cjs/base/Option.js +236 -0
- package/build-tsc-cjs/base/Result.js +67 -0
- package/build-tsc-cjs/base/Tuple.js +114 -0
- package/build-tsc-cjs/base/UInt.js +27 -0
- package/build-tsc-cjs/base/Vec.js +107 -0
- package/build-tsc-cjs/base/VecAny.js +21 -0
- package/build-tsc-cjs/base/VecFixed.js +71 -0
- package/build-tsc-cjs/base/index.js +27 -0
- package/build-tsc-cjs/bundle.js +12 -0
- package/build-tsc-cjs/extended/BTreeMap.js +14 -0
- package/build-tsc-cjs/extended/BTreeSet.js +189 -0
- package/build-tsc-cjs/extended/BitVec.js +112 -0
- package/build-tsc-cjs/extended/Bytes.js +74 -0
- package/build-tsc-cjs/extended/HashMap.js +14 -0
- package/build-tsc-cjs/extended/Linkage.js +70 -0
- package/build-tsc-cjs/extended/Map.js +204 -0
- package/build-tsc-cjs/extended/OptionBool.js +76 -0
- package/build-tsc-cjs/extended/Range.js +42 -0
- package/build-tsc-cjs/extended/RangeInclusive.js +17 -0
- package/build-tsc-cjs/extended/Type.js +25 -0
- package/build-tsc-cjs/extended/U8aFixed.js +46 -0
- package/build-tsc-cjs/extended/WrapperKeepOpaque.js +103 -0
- package/build-tsc-cjs/extended/WrapperOpaque.js +23 -0
- package/build-tsc-cjs/extended/index.js +32 -0
- package/build-tsc-cjs/index.js +5 -0
- package/build-tsc-cjs/native/Bool.js +113 -0
- package/build-tsc-cjs/native/Date.js +144 -0
- package/build-tsc-cjs/native/Float.js +111 -0
- package/build-tsc-cjs/native/Json.js +121 -0
- package/build-tsc-cjs/native/Raw.js +144 -0
- package/build-tsc-cjs/native/Set.js +219 -0
- package/build-tsc-cjs/native/Struct.data.js +4 -0
- package/build-tsc-cjs/native/Struct.js +264 -0
- package/build-tsc-cjs/native/Text.js +154 -0
- package/build-tsc-cjs/native/index.js +22 -0
- package/build-tsc-cjs/packageDetect.js +5 -0
- package/build-tsc-cjs/packageInfo.js +4 -0
- package/build-tsc-cjs/primitive/F32.js +14 -0
- package/build-tsc-cjs/primitive/F64.js +14 -0
- package/build-tsc-cjs/primitive/I128.js +14 -0
- package/build-tsc-cjs/primitive/I16.js +14 -0
- package/build-tsc-cjs/primitive/I256.js +14 -0
- package/build-tsc-cjs/primitive/I32.js +14 -0
- package/build-tsc-cjs/primitive/I64.js +14 -0
- package/build-tsc-cjs/primitive/I8.js +14 -0
- package/build-tsc-cjs/primitive/ISize.js +18 -0
- package/build-tsc-cjs/primitive/U128.js +14 -0
- package/build-tsc-cjs/primitive/U16.js +14 -0
- package/build-tsc-cjs/primitive/U256.js +14 -0
- package/build-tsc-cjs/primitive/U32.js +14 -0
- package/build-tsc-cjs/primitive/U64.js +14 -0
- package/build-tsc-cjs/primitive/U8.js +14 -0
- package/build-tsc-cjs/primitive/USize.js +18 -0
- package/build-tsc-cjs/primitive/index.js +51 -0
- package/build-tsc-cjs/types/codec.js +2 -0
- package/build-tsc-cjs/types/helpers.js +2 -0
- package/build-tsc-cjs/types/index.js +7 -0
- package/build-tsc-cjs/types/interfaces.js +2 -0
- package/build-tsc-cjs/types/registry.js +2 -0
- package/build-tsc-cjs/utils/compareArray.js +13 -0
- package/build-tsc-cjs/utils/compareMap.js +30 -0
- package/build-tsc-cjs/utils/compareSet.js +20 -0
- package/build-tsc-cjs/utils/decodeU8a.js +105 -0
- package/build-tsc-cjs/utils/index.js +25 -0
- package/build-tsc-cjs/utils/sanitize.js +233 -0
- package/build-tsc-cjs/utils/sortValues.js +84 -0
- package/build-tsc-cjs/utils/toConstructors.js +40 -0
- package/build-tsc-cjs/utils/typesToMap.js +10 -0
- package/build-tsc-cjs/utils/util.js +7 -0
- package/build-tsc-esm/abstract/Array.js +166 -0
- package/build-tsc-esm/abstract/Base.js +101 -0
- package/build-tsc-esm/abstract/Int.js +226 -0
- package/build-tsc-esm/abstract/Object.js +40 -0
- package/build-tsc-esm/abstract/index.js +3 -0
- package/build-tsc-esm/base/Compact.js +159 -0
- package/build-tsc-esm/base/DoNotConstruct.js +95 -0
- package/build-tsc-esm/base/Enum.js +369 -0
- package/build-tsc-esm/base/Int.js +26 -0
- package/build-tsc-esm/base/Null.js +77 -0
- package/build-tsc-esm/base/Option.js +232 -0
- package/build-tsc-esm/base/Result.js +63 -0
- package/build-tsc-esm/base/Tuple.js +110 -0
- package/build-tsc-esm/base/UInt.js +23 -0
- package/build-tsc-esm/base/Vec.js +102 -0
- package/build-tsc-esm/base/VecAny.js +17 -0
- package/build-tsc-esm/base/VecFixed.js +67 -0
- package/build-tsc-esm/base/index.js +12 -0
- package/build-tsc-esm/bundle.js +7 -0
- package/build-tsc-esm/extended/BTreeMap.js +10 -0
- package/build-tsc-esm/extended/BTreeSet.js +185 -0
- package/build-tsc-esm/extended/BitVec.js +108 -0
- package/build-tsc-esm/extended/Bytes.js +70 -0
- package/build-tsc-esm/extended/HashMap.js +10 -0
- package/build-tsc-esm/extended/Linkage.js +65 -0
- package/build-tsc-esm/extended/Map.js +200 -0
- package/build-tsc-esm/extended/OptionBool.js +72 -0
- package/build-tsc-esm/extended/Range.js +38 -0
- package/build-tsc-esm/extended/RangeInclusive.js +13 -0
- package/build-tsc-esm/extended/Type.js +21 -0
- package/build-tsc-esm/extended/U8aFixed.js +42 -0
- package/build-tsc-esm/extended/WrapperKeepOpaque.js +99 -0
- package/build-tsc-esm/extended/WrapperOpaque.js +19 -0
- package/build-tsc-esm/extended/index.js +14 -0
- package/build-tsc-esm/index.js +2 -0
- package/build-tsc-esm/native/Bool.js +109 -0
- package/build-tsc-esm/native/Date.js +140 -0
- package/build-tsc-esm/native/Float.js +107 -0
- package/build-tsc-esm/native/Json.js +117 -0
- package/build-tsc-esm/native/Raw.js +140 -0
- package/build-tsc-esm/native/Set.js +215 -0
- package/build-tsc-esm/native/Struct.data.js +1 -0
- package/build-tsc-esm/native/Struct.js +260 -0
- package/build-tsc-esm/native/Text.js +150 -0
- package/build-tsc-esm/native/index.js +8 -0
- package/build-tsc-esm/packageDetect.js +3 -0
- package/build-tsc-esm/packageInfo.js +1 -0
- package/build-tsc-esm/primitive/F32.js +10 -0
- package/build-tsc-esm/primitive/F64.js +10 -0
- package/build-tsc-esm/primitive/I128.js +10 -0
- package/build-tsc-esm/primitive/I16.js +10 -0
- package/build-tsc-esm/primitive/I256.js +10 -0
- package/build-tsc-esm/primitive/I32.js +10 -0
- package/build-tsc-esm/primitive/I64.js +10 -0
- package/build-tsc-esm/primitive/I8.js +10 -0
- package/build-tsc-esm/primitive/ISize.js +14 -0
- package/build-tsc-esm/primitive/U128.js +10 -0
- package/build-tsc-esm/primitive/U16.js +10 -0
- package/build-tsc-esm/primitive/U256.js +10 -0
- package/build-tsc-esm/primitive/U32.js +10 -0
- package/build-tsc-esm/primitive/U64.js +10 -0
- package/build-tsc-esm/primitive/U8.js +10 -0
- package/build-tsc-esm/primitive/USize.js +14 -0
- package/build-tsc-esm/primitive/index.js +16 -0
- package/build-tsc-esm/types/codec.js +1 -0
- package/build-tsc-esm/types/helpers.js +1 -0
- package/build-tsc-esm/types/index.js +4 -0
- package/build-tsc-esm/types/interfaces.js +1 -0
- package/build-tsc-esm/types/registry.js +1 -0
- package/build-tsc-esm/utils/compareArray.js +10 -0
- package/build-tsc-esm/utils/compareMap.js +27 -0
- package/build-tsc-esm/utils/compareSet.js +17 -0
- package/build-tsc-esm/utils/decodeU8a.js +100 -0
- package/build-tsc-esm/utils/index.js +8 -0
- package/build-tsc-esm/utils/sanitize.js +219 -0
- package/build-tsc-esm/utils/sortValues.js +79 -0
- package/build-tsc-esm/utils/toConstructors.js +35 -0
- package/build-tsc-esm/utils/typesToMap.js +7 -0
- package/build-tsc-esm/utils/util.js +4 -0
- package/cjs/packageInfo.js +1 -1
- package/package.json +1 -1
- package/packageInfo.js +1 -1
- package/src/abstract/Array.ts +213 -0
- package/src/abstract/Base.ts +129 -0
- package/src/abstract/Int.ts +271 -0
- package/src/abstract/Object.ts +99 -0
- package/src/abstract/index.ts +6 -0
- package/src/base/Compact.spec.ts +99 -0
- package/src/base/Compact.ts +198 -0
- package/src/base/DoNotConstruct.spec.ts +23 -0
- package/src/base/DoNotConstruct.ts +118 -0
- package/src/base/Enum.spec.ts +487 -0
- package/src/base/Enum.ts +460 -0
- package/src/base/Int.spec.ts +225 -0
- package/src/base/Int.ts +34 -0
- package/src/base/Null.spec.ts +41 -0
- package/src/base/Null.ts +96 -0
- package/src/base/Option.spec.ts +216 -0
- package/src/base/Option.ts +275 -0
- package/src/base/Result.spec.ts +64 -0
- package/src/base/Result.ts +79 -0
- package/src/base/Tuple.spec.ts +161 -0
- package/src/base/Tuple.ts +149 -0
- package/src/base/UInt.spec.ts +192 -0
- package/src/base/UInt.ts +30 -0
- package/src/base/Vec.spec.ts +224 -0
- package/src/base/Vec.ts +133 -0
- package/src/base/VecAny.ts +23 -0
- package/src/base/VecFixed.spec.ts +78 -0
- package/src/base/VecFixed.ts +92 -0
- package/src/base/index.ts +15 -0
- package/src/bundle.ts +13 -0
- package/src/checkTypes.manual.ts +12 -0
- package/src/extended/BTreeMap.spec.ts +245 -0
- package/src/extended/BTreeMap.ts +16 -0
- package/src/extended/BTreeSet.spec.ts +260 -0
- package/src/extended/BTreeSet.ts +233 -0
- package/src/extended/BitVec.spec.ts +97 -0
- package/src/extended/BitVec.ts +137 -0
- package/src/extended/Bytes.spec.ts +75 -0
- package/src/extended/Bytes.ts +88 -0
- package/src/extended/HashMap.spec.ts +36 -0
- package/src/extended/HashMap.ts +16 -0
- package/src/extended/Linkage.spec.ts +43 -0
- package/src/extended/Linkage.ts +81 -0
- package/src/extended/Map.spec.ts +123 -0
- package/src/extended/Map.ts +255 -0
- package/src/extended/OptionBool.spec.ts +49 -0
- package/src/extended/OptionBool.ts +93 -0
- package/src/extended/Range.spec.ts +37 -0
- package/src/extended/Range.ts +56 -0
- package/src/extended/RangeInclusive.ts +20 -0
- package/src/extended/Type.spec.ts +118 -0
- package/src/extended/Type.ts +29 -0
- package/src/extended/U8aFixed.spec.ts +117 -0
- package/src/extended/U8aFixed.ts +57 -0
- package/src/extended/WrapperKeepOpaque.spec.ts +101 -0
- package/src/extended/WrapperKeepOpaque.ts +128 -0
- package/src/extended/WrapperOpaque.spec.ts +58 -0
- package/src/extended/WrapperOpaque.ts +27 -0
- package/src/extended/index.ts +17 -0
- package/src/index.ts +6 -0
- package/src/mod.ts +4 -0
- package/src/native/Bool.spec.ts +74 -0
- package/src/native/Bool.ts +137 -0
- package/src/native/Date.spec.ts +85 -0
- package/src/native/Date.ts +169 -0
- package/src/native/Float.spec.ts +51 -0
- package/src/native/Float.ts +136 -0
- package/src/native/Json.ts +147 -0
- package/src/native/Raw.spec.ts +113 -0
- package/src/native/Raw.ts +171 -0
- package/src/native/Set.spec.ts +116 -0
- package/src/native/Set.ts +269 -0
- package/src/native/Struct.data.ts +4 -0
- package/src/native/Struct.spec.ts +411 -0
- package/src/native/Struct.ts +338 -0
- package/src/native/Text.spec.ts +85 -0
- package/src/native/Text.ts +184 -0
- package/src/native/index.ts +11 -0
- package/src/packageDetect.ts +11 -0
- package/src/packageInfo.ts +6 -0
- package/src/primitive/F32.ts +14 -0
- package/src/primitive/F64.ts +14 -0
- package/src/primitive/I128.ts +14 -0
- package/src/primitive/I16.ts +14 -0
- package/src/primitive/I256.ts +14 -0
- package/src/primitive/I32.ts +14 -0
- package/src/primitive/I64.ts +14 -0
- package/src/primitive/I8.ts +14 -0
- package/src/primitive/ISize.ts +21 -0
- package/src/primitive/U128.ts +14 -0
- package/src/primitive/U16.ts +14 -0
- package/src/primitive/U256.ts +14 -0
- package/src/primitive/U32.ts +14 -0
- package/src/primitive/U64.ts +14 -0
- package/src/primitive/U8.ts +14 -0
- package/src/primitive/USize.ts +21 -0
- package/src/primitive/index.ts +19 -0
- package/src/test/performance.ts +61 -0
- package/src/types/codec.ts +140 -0
- package/src/types/helpers.ts +50 -0
- package/src/types/index.ts +7 -0
- package/src/types/interfaces.ts +98 -0
- package/src/types/registry.ts +86 -0
- package/src/utils/compareArray.ts +22 -0
- package/src/utils/compareMap.ts +40 -0
- package/src/utils/compareSet.ts +23 -0
- package/src/utils/decodeU8a.ts +123 -0
- package/src/utils/index.ts +11 -0
- package/src/utils/sanitize.spec.ts +89 -0
- package/src/utils/sanitize.ts +290 -0
- package/src/utils/sortValues.ts +103 -0
- package/src/utils/toConstructors.ts +46 -0
- package/src/utils/typesToMap.ts +14 -0
- package/src/utils/util.ts +8 -0
- package/tsconfig.build.json +16 -0
- package/tsconfig.build.tsbuildinfo +1 -0
- package/tsconfig.spec.json +21 -0
- package/tsconfig.spec.tsbuildinfo +1 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/// <reference types="@pezkuwi/dev-test/globals.d.ts" />
|
|
5
|
+
|
|
6
|
+
import type { PropIndex } from '@pezkuwi/types/interfaces/democracy';
|
|
7
|
+
import type { Codec, CodecTo, ITuple } from '@pezkuwi/types-codec/types';
|
|
8
|
+
|
|
9
|
+
import { createTypeUnsafe, GenericAccountId as AccountId, Metadata, TypeRegistry } from '@pezkuwi/types';
|
|
10
|
+
import { Text, u32, Vec } from '@pezkuwi/types-codec';
|
|
11
|
+
import rpcMetadata from '@pezkuwi/types-support/metadata/static-bizinikiwi';
|
|
12
|
+
import { decodeAddress, randomAsU8a } from '@pezkuwi/util-crypto';
|
|
13
|
+
|
|
14
|
+
import { perf } from '../test/performance.js';
|
|
15
|
+
|
|
16
|
+
const registry = new TypeRegistry();
|
|
17
|
+
const metadata = new Metadata(registry, rpcMetadata);
|
|
18
|
+
const VecU32 = Vec.with(u32);
|
|
19
|
+
|
|
20
|
+
registry.setMetadata(metadata);
|
|
21
|
+
|
|
22
|
+
describe('Vec', (): void => {
|
|
23
|
+
let vector: Vec<Codec>;
|
|
24
|
+
|
|
25
|
+
beforeEach((): void => {
|
|
26
|
+
vector = new Vec(registry, Text, ['1', '23', '345', '4567', new Text(registry, '56789')]);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
describe('constructor', (): void => {
|
|
30
|
+
it('fails construction on non-Array, non-Hex inputs', (): void => {
|
|
31
|
+
// @ts-expect-error We are intentionally passing a non-valid input
|
|
32
|
+
expect(() => new Vec(registry, Text, '12345')).toThrow(/decoding, found string/);
|
|
33
|
+
// @ts-expect-error We are intentionally passing a non-valid input
|
|
34
|
+
expect(() => new Vec(registry, Text, {})).toThrow(/decoding, found object/);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it('allows construction via hex & null values', (): void => {
|
|
38
|
+
// @ts-expect-error We are intentionally passing a non-valid input
|
|
39
|
+
expect(new Vec(registry, Text, null)).toHaveLength(0);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('decodes a complex type via construction (1)', (): void => {
|
|
43
|
+
const test = createTypeUnsafe<Vec<ITuple<[PropIndex, AccountId]>>>(registry, 'Vec<(PropIndex, AccountId)>', [new Uint8Array([
|
|
44
|
+
4, 10, 0, 0, 0, 209, 114, 167, 76, 218, 76, 134, 89, 18, 195, 43, 160, 168, 10, 87, 174, 105, 171, 174, 65, 14, 92, 203, 89, 222, 232, 78, 47, 68, 50, 219, 79
|
|
45
|
+
])]);
|
|
46
|
+
|
|
47
|
+
expect(test[0][0].toNumber()).toEqual(10);
|
|
48
|
+
expect(test[0][1].toString()).toEqual('5GoKvZWG5ZPYL1WUovuHW3zJBWBP5eT8CbqjdRY4Q6iMaQua');
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it('decodes a complex type via construction (2)', (): void => {
|
|
52
|
+
const INPUT = '0x08cc0200000000ce0200000001';
|
|
53
|
+
const test = createTypeUnsafe<Vec<Codec>>(registry, 'Vec<(u32, [u32; 0], u16)>', [INPUT]);
|
|
54
|
+
|
|
55
|
+
expect(test).toHaveLength(2);
|
|
56
|
+
expect(test.toHex()).toEqual(INPUT);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it('allows construction via JSON', (): void => {
|
|
60
|
+
expect(
|
|
61
|
+
new Vec(registry, Text, ['6', '7']).toJSON()
|
|
62
|
+
).toEqual(['6', '7']);
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
it('allows construction via JSON (string type)', (): void => {
|
|
66
|
+
expect(
|
|
67
|
+
new Vec(registry, 'u32', ['6', '7']).toJSON()
|
|
68
|
+
).toEqual([6, 7]);
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
it('decodes reusing instantiated inputs', (): void => {
|
|
72
|
+
const foo = new Text(registry, 'bar');
|
|
73
|
+
|
|
74
|
+
expect(
|
|
75
|
+
(new Vec(registry, Text, [foo]))[0]
|
|
76
|
+
).toBe(foo);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
describe('vector-like functions', (): void => {
|
|
81
|
+
it('wraps a sequence of values', (): void => {
|
|
82
|
+
expect(vector).toHaveLength(5);
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
it('has a sane representation for toString', (): void => {
|
|
86
|
+
expect(vector.toString()).toEqual('[1, 23, 345, 4567, 56789]');
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
it('encodes with length prefix on toU8a()', (): void => {
|
|
90
|
+
expect(vector.toU8a()).toEqual(new Uint8Array([
|
|
91
|
+
5 << 2,
|
|
92
|
+
1 << 2, 49,
|
|
93
|
+
2 << 2, 50, 51,
|
|
94
|
+
3 << 2, 51, 52, 53,
|
|
95
|
+
4 << 2, 52, 53, 54, 55,
|
|
96
|
+
5 << 2, 53, 54, 55, 56, 57
|
|
97
|
+
]));
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
it('encodes without length prefix on toU8a(true)', (): void => {
|
|
101
|
+
expect(vector.toU8a(true)).toEqual(new Uint8Array([
|
|
102
|
+
1 << 2, 49,
|
|
103
|
+
2 << 2, 50, 51,
|
|
104
|
+
3 << 2, 51, 52, 53,
|
|
105
|
+
4 << 2, 52, 53, 54, 55,
|
|
106
|
+
5 << 2, 53, 54, 55, 56, 57
|
|
107
|
+
]));
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
it('exposes the type', (): void => {
|
|
111
|
+
expect(vector.Type).toEqual('Text');
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
it('allows retrieval of a specific item', (): void => {
|
|
115
|
+
expect(
|
|
116
|
+
vector[2].toString()
|
|
117
|
+
).toEqual('345');
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
it('exposes a working forEach', (): void => {
|
|
121
|
+
const result: Record<number, string> = {};
|
|
122
|
+
|
|
123
|
+
vector.forEach((e, i): void => {
|
|
124
|
+
result[i] = e.toString();
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
expect(result).toEqual({
|
|
128
|
+
0: '1',
|
|
129
|
+
1: '23',
|
|
130
|
+
2: '345',
|
|
131
|
+
3: '4567',
|
|
132
|
+
4: '56789'
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
it('exposes a working concat', (): void => {
|
|
137
|
+
expect(
|
|
138
|
+
vector.concat(new Vec(registry, Text, ['987', '654'])).toString()
|
|
139
|
+
).toEqual('1,23,345,4567,56789,987,654');
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
it('exposes a working filter', (): void => {
|
|
143
|
+
expect(
|
|
144
|
+
vector.filter((_, i): boolean => i >= 3).toString()
|
|
145
|
+
).toEqual('4567,56789');
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
it('exposes a working map', (): void => {
|
|
149
|
+
expect(
|
|
150
|
+
vector.map((e): string => e.toString().substring(0, 1))
|
|
151
|
+
).toEqual(['1', '2', '3', '4', '5']);
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
it('exposes a working reduce', (): void => {
|
|
155
|
+
expect(
|
|
156
|
+
vector.reduce((r, e): string => `${r}${e.toString()}`, '')
|
|
157
|
+
).toEqual('123345456756789');
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
it('exposes a working indexOf', (): void => {
|
|
161
|
+
expect(vector.indexOf('1')).toEqual(0);
|
|
162
|
+
expect(vector.indexOf(new Text(registry, '23'))).toEqual(1);
|
|
163
|
+
expect(vector.indexOf('0')).toEqual(-1);
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
describe('encode', (): void => {
|
|
168
|
+
const testEncode = (to: CodecTo, expected: any): void =>
|
|
169
|
+
it(`can encode ${to}`, (): void => {
|
|
170
|
+
expect(vector[to]()).toEqual(expected);
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
testEncode('toHex', '0x1404310832330c3334351034353637143536373839');
|
|
174
|
+
testEncode('toJSON', ['1', '23', '345', '4567', '56789']);
|
|
175
|
+
testEncode('toString', '[1, 23, 345, 4567, 56789]');
|
|
176
|
+
testEncode('toU8a', Uint8Array.from([20, 4, 49, 8, 50, 51, 12, 51, 52, 53, 16, 52, 53, 54, 55, 20, 53, 54, 55, 56, 57]));
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
describe('utils', (): void => {
|
|
180
|
+
const vec = new Vec(registry, Text, ['123', '456']);
|
|
181
|
+
|
|
182
|
+
it('compares against codec types', (): void => {
|
|
183
|
+
expect(vec.eq([new Text(registry, '123'), new Text(registry, '456')])).toBe(true);
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
it('compares against codec + primitive types', (): void => {
|
|
187
|
+
expect(vec.eq(['123', new Text(registry, '456')])).toBe(true);
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
it('finds the index of an value', (): void => {
|
|
191
|
+
const myId = '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY';
|
|
192
|
+
const vec = new Vec(registry, AccountId, [
|
|
193
|
+
'5HGjWAeFDfFCWPsjFQdVV2Msvz2XtMktvgocEZcCj68kUMaw', '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY'
|
|
194
|
+
]);
|
|
195
|
+
|
|
196
|
+
expect(vec.indexOf(myId)).toEqual(2);
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
it('allows a slice operator', (): void => {
|
|
200
|
+
const vec = registry.createType('Vec<AccountId>', [
|
|
201
|
+
randomAsU8a(), randomAsU8a(), randomAsU8a(), randomAsU8a(), randomAsU8a(), randomAsU8a(), randomAsU8a(), randomAsU8a(), randomAsU8a(), randomAsU8a()
|
|
202
|
+
]);
|
|
203
|
+
|
|
204
|
+
expect(vec).toHaveLength(10);
|
|
205
|
+
expect(vec.slice(2, 7)).toHaveLength(5);
|
|
206
|
+
});
|
|
207
|
+
|
|
208
|
+
it('has a sane inspect', (): void => {
|
|
209
|
+
const addrs = [
|
|
210
|
+
'5HGjWAeFDfFCWPsjFQdVV2Msvz2XtMktvgocEZcCj68kUMaw', '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY'
|
|
211
|
+
];
|
|
212
|
+
const vec = registry.createType('Vec<AccountId>', addrs);
|
|
213
|
+
|
|
214
|
+
expect(vec.inspect()).toEqual({
|
|
215
|
+
inner: addrs.map((a) => ({
|
|
216
|
+
outer: [decodeAddress(a)]
|
|
217
|
+
})),
|
|
218
|
+
outer: [new Uint8Array([3 << 2])]
|
|
219
|
+
});
|
|
220
|
+
});
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
perf('Vec<U32>', 40_000, [[new Uint8Array([3 << 2, 11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34])]], (v: Uint8Array) => new VecU32(registry, v));
|
|
224
|
+
});
|
package/src/base/Vec.ts
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { HexString } from '@pezkuwi/util/types';
|
|
5
|
+
import type { Codec, CodecClass, DefinitionSetter, Registry } from '../types/index.js';
|
|
6
|
+
|
|
7
|
+
import { compactFromU8aLim, identity, isHex, isU8a, logger, stringify, u8aToU8a } from '@pezkuwi/util';
|
|
8
|
+
|
|
9
|
+
import { AbstractArray } from '../abstract/Array.js';
|
|
10
|
+
import { decodeU8aVec, typeToConstructor } from '../utils/index.js';
|
|
11
|
+
|
|
12
|
+
const MAX_LENGTH = 512 * 1024;
|
|
13
|
+
|
|
14
|
+
const l = logger('Vec');
|
|
15
|
+
|
|
16
|
+
function decodeVecLength (value: Uint8Array | HexString | unknown[]): [Uint8Array | unknown[] | null, number, number] {
|
|
17
|
+
if (Array.isArray(value)) {
|
|
18
|
+
return [value, value.length, 0];
|
|
19
|
+
} else if (isU8a(value) || isHex(value)) {
|
|
20
|
+
const u8a = u8aToU8a(value);
|
|
21
|
+
const [startAt, length] = compactFromU8aLim(u8a);
|
|
22
|
+
|
|
23
|
+
if (length > MAX_LENGTH) {
|
|
24
|
+
throw new Error(`Vec length ${length.toString()} exceeds ${MAX_LENGTH}`);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return [u8a, length, startAt];
|
|
28
|
+
} else if (!value) {
|
|
29
|
+
return [null, 0, 0];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
throw new Error(`Expected array/hex input to Vec<*> decoding, found ${typeof value}: ${stringify(value)}`);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function decodeVec<T extends Codec> (registry: Registry, result: T[], value: Uint8Array | HexString | unknown[] | null, startAt: number, Type: CodecClass<T>): [number, number] {
|
|
36
|
+
if (Array.isArray(value)) {
|
|
37
|
+
const count = result.length;
|
|
38
|
+
|
|
39
|
+
for (let i = 0; i < count; i++) {
|
|
40
|
+
// 26/08/2022 this is actually a false positive - after recent eslint upgdates
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
42
|
+
const entry = value[i];
|
|
43
|
+
|
|
44
|
+
try {
|
|
45
|
+
result[i] = entry instanceof Type
|
|
46
|
+
? entry
|
|
47
|
+
: new Type(registry, entry);
|
|
48
|
+
} catch (error) {
|
|
49
|
+
l.error(`Unable to decode on index ${i}`, (error as Error).message);
|
|
50
|
+
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return [0, 0];
|
|
56
|
+
} else if (!value) {
|
|
57
|
+
return [0, 0];
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// we don't need more checks, we already limited it via the length decoding
|
|
61
|
+
return decodeU8aVec(registry, result, u8aToU8a(value), startAt, Type);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* @name Vec
|
|
66
|
+
* @description
|
|
67
|
+
* This manages codec arrays. Internally it keeps track of the length (as decoded) and allows
|
|
68
|
+
* construction with the passed `Type` in the constructor. It is an extension to Array, providing
|
|
69
|
+
* specific encoding/decoding on top of the base type.
|
|
70
|
+
*/
|
|
71
|
+
export class Vec<T extends Codec> extends AbstractArray<T> {
|
|
72
|
+
#Type: CodecClass<T>;
|
|
73
|
+
|
|
74
|
+
constructor (registry: Registry, Type: CodecClass<T> | string, value: Uint8Array | HexString | unknown[] = [], { definition, setDefinition = identity }: DefinitionSetter<CodecClass<T>> = {}) {
|
|
75
|
+
const [decodeFrom, length, startAt] = decodeVecLength(value);
|
|
76
|
+
|
|
77
|
+
super(registry, length);
|
|
78
|
+
|
|
79
|
+
this.#Type = definition || setDefinition(typeToConstructor<T>(registry, Type));
|
|
80
|
+
|
|
81
|
+
this.initialU8aLength = (
|
|
82
|
+
isU8a(decodeFrom)
|
|
83
|
+
? decodeU8aVec(registry, this, decodeFrom, startAt, this.#Type)
|
|
84
|
+
: decodeVec(registry, this, decodeFrom, startAt, this.#Type)
|
|
85
|
+
)[0];
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
public static with<O extends Codec> (Type: CodecClass<O> | string): CodecClass<Vec<O>> {
|
|
89
|
+
let definition: CodecClass<O> | undefined;
|
|
90
|
+
|
|
91
|
+
// eslint-disable-next-line no-return-assign
|
|
92
|
+
const setDefinition = <T> (d: CodecClass<T>) =>
|
|
93
|
+
(definition = d as unknown as CodecClass<O>) as unknown as CodecClass<T>;
|
|
94
|
+
|
|
95
|
+
return class extends Vec<O> {
|
|
96
|
+
constructor (registry: Registry, value?: any[]) {
|
|
97
|
+
super(registry, Type, value, { definition, setDefinition });
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* @description The type for the items
|
|
104
|
+
*/
|
|
105
|
+
public get Type (): string {
|
|
106
|
+
return this.#Type.name;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* @description Finds the index of the value in the array
|
|
111
|
+
*/
|
|
112
|
+
public override indexOf (other?: unknown): number {
|
|
113
|
+
// convert type first, this removes overhead from the eq
|
|
114
|
+
const check = other instanceof this.#Type
|
|
115
|
+
? other
|
|
116
|
+
: new this.#Type(this.registry, other);
|
|
117
|
+
|
|
118
|
+
for (let i = 0, count = this.length; i < count; i++) {
|
|
119
|
+
if (check.eq(this[i])) {
|
|
120
|
+
return i;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
return -1;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* @description Returns the base runtime type name for this instance
|
|
129
|
+
*/
|
|
130
|
+
public toRawType (): string {
|
|
131
|
+
return `Vec<${this.registry.getClassName(this.#Type) || new this.#Type(this.registry).toRawType()}>`;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { Codec } from '../types/index.js';
|
|
5
|
+
|
|
6
|
+
import { AbstractArray } from '../abstract/Array.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @name VecAny
|
|
10
|
+
* @description
|
|
11
|
+
* This manages codec arrays, assuming that the inputs are already of type Codec. Unlike
|
|
12
|
+
* a vector, this can be used to manage array-like structures with variable arguments of
|
|
13
|
+
* any types
|
|
14
|
+
*/
|
|
15
|
+
export class VecAny<T extends Codec> extends AbstractArray<T> {
|
|
16
|
+
/**
|
|
17
|
+
* @description Returns the base runtime type name for this instance
|
|
18
|
+
*/
|
|
19
|
+
public toRawType (): string {
|
|
20
|
+
// FIXME This is basically an any type, cannot instantiate via createType
|
|
21
|
+
return 'Vec<Codec>';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/// <reference types="@pezkuwi/dev-test/globals.d.ts" />
|
|
5
|
+
|
|
6
|
+
import { TypeRegistry } from '@pezkuwi/types';
|
|
7
|
+
import { Text, u16, VecFixed } from '@pezkuwi/types-codec';
|
|
8
|
+
import { stringToU8a } from '@pezkuwi/util';
|
|
9
|
+
|
|
10
|
+
describe('VecFixed', (): void => {
|
|
11
|
+
const registry = new TypeRegistry();
|
|
12
|
+
|
|
13
|
+
describe('construction', (): void => {
|
|
14
|
+
it('constructs via empty', (): void => {
|
|
15
|
+
expect(new VecFixed(registry, Text, 2).toHex()).toEqual('0x0000');
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('constructs via Uint8Array', (): void => {
|
|
19
|
+
expect(new VecFixed(registry, Text, 2, new Uint8Array([0x00, 0x04, 0x31])).toHex()).toEqual('0x000431');
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
it('constructs via hex', (): void => {
|
|
23
|
+
expect(new VecFixed(registry, u16, 2, '0x12345678').toHex()).toEqual('0x12345678');
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it('decodes reusing instance inputs', (): void => {
|
|
27
|
+
const foo = new Text(registry, 'bar');
|
|
28
|
+
|
|
29
|
+
expect(
|
|
30
|
+
(new VecFixed(registry, Text, 1, [foo]))[0]
|
|
31
|
+
).toBe(foo);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
describe('utils', (): void => {
|
|
36
|
+
let test: VecFixed<Text>;
|
|
37
|
+
|
|
38
|
+
beforeEach((): void => {
|
|
39
|
+
test = new (VecFixed.with(Text, 5))(registry, ['1', '2', '3', undefined, '56']);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('has a sane string types', (): void => {
|
|
43
|
+
expect(test.toRawType()).toEqual('[Text;5]');
|
|
44
|
+
expect(test.Type).toEqual('Text');
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it('has a correct toHex', (): void => {
|
|
48
|
+
// each entry length 1 << 2, char as hex (0x31 === `1`), one empty
|
|
49
|
+
expect(test.toHex()).toEqual('0x04310432043300083536');
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it('has empty Uint8Array when length is 0', (): void => {
|
|
53
|
+
const test = new (VecFixed.with(Text, 0))(registry);
|
|
54
|
+
|
|
55
|
+
expect(test.encodedLength).toEqual(0);
|
|
56
|
+
expect(test.toU8a()).toEqual(new Uint8Array([]));
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it('has equivalent to 1 Uint8Array when length is 1', (): void => {
|
|
60
|
+
const test = new (VecFixed.with(Text, 1))(registry, ['hello']);
|
|
61
|
+
|
|
62
|
+
expect(test.encodedLength).toEqual(1 + 5);
|
|
63
|
+
expect(test.toU8a()).toEqual(new Uint8Array([20, 104, 101, 108, 108, 111]));
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it('has a sane inspect', (): void => {
|
|
67
|
+
expect(test.inspect()).toEqual({
|
|
68
|
+
inner: [
|
|
69
|
+
{ outer: [new Uint8Array([1 << 2]), stringToU8a('1')] },
|
|
70
|
+
{ outer: [new Uint8Array([1 << 2]), stringToU8a('2')] },
|
|
71
|
+
{ outer: [new Uint8Array([1 << 2]), stringToU8a('3')] },
|
|
72
|
+
{ outer: [new Uint8Array([0])] },
|
|
73
|
+
{ outer: [new Uint8Array([2 << 2]), stringToU8a('56')] }
|
|
74
|
+
]
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
});
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { HexString } from '@pezkuwi/util/types';
|
|
5
|
+
import type { Codec, CodecClass, DefinitionSetter, Inspect, Registry } from '../types/index.js';
|
|
6
|
+
|
|
7
|
+
import { identity, isU8a, u8aConcatStrict } from '@pezkuwi/util';
|
|
8
|
+
|
|
9
|
+
import { AbstractArray } from '../abstract/Array.js';
|
|
10
|
+
import { decodeU8aVec, typeToConstructor } from '../utils/index.js';
|
|
11
|
+
import { decodeVec } from './Vec.js';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @name VecFixed
|
|
15
|
+
* @description
|
|
16
|
+
* This manages codec arrays of a fixed length
|
|
17
|
+
*/
|
|
18
|
+
export class VecFixed<T extends Codec> extends AbstractArray<T> {
|
|
19
|
+
#Type: CodecClass<T>;
|
|
20
|
+
|
|
21
|
+
constructor (registry: Registry, Type: CodecClass<T> | string, length: number, value: Uint8Array | HexString | unknown[] = [] as unknown[], { definition, setDefinition = identity }: DefinitionSetter<CodecClass<T>> = {}) {
|
|
22
|
+
super(registry, length);
|
|
23
|
+
|
|
24
|
+
this.#Type = definition || setDefinition(typeToConstructor<T>(registry, Type));
|
|
25
|
+
|
|
26
|
+
this.initialU8aLength = (
|
|
27
|
+
isU8a(value)
|
|
28
|
+
? decodeU8aVec(registry, this, value, 0, this.#Type)
|
|
29
|
+
: decodeVec(registry, this, value, 0, this.#Type)
|
|
30
|
+
)[1];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public static with<O extends Codec> (Type: CodecClass<O> | string, length: number): CodecClass<VecFixed<O>> {
|
|
34
|
+
let definition: CodecClass<O> | undefined;
|
|
35
|
+
|
|
36
|
+
// eslint-disable-next-line no-return-assign
|
|
37
|
+
const setDefinition = <T> (d: CodecClass<T>) =>
|
|
38
|
+
(definition = d as unknown as CodecClass<O>) as unknown as CodecClass<T>;
|
|
39
|
+
|
|
40
|
+
return class extends VecFixed<O> {
|
|
41
|
+
constructor (registry: Registry, value?: any[]) {
|
|
42
|
+
super(registry, Type, length, value, { definition, setDefinition });
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @description The type for the items
|
|
49
|
+
*/
|
|
50
|
+
public get Type (): string {
|
|
51
|
+
return new this.#Type(this.registry).toRawType();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* @description The length of the value when encoded as a Uint8Array
|
|
56
|
+
*/
|
|
57
|
+
public override get encodedLength (): number {
|
|
58
|
+
let total = 0;
|
|
59
|
+
|
|
60
|
+
for (let i = 0, count = this.length; i < count; i++) {
|
|
61
|
+
total += this[i].encodedLength;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return total;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* @description Returns a breakdown of the hex encoding for this Codec
|
|
69
|
+
*/
|
|
70
|
+
public override inspect (): Inspect {
|
|
71
|
+
return {
|
|
72
|
+
inner: this.inspectInner()
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
public override toU8a (): Uint8Array {
|
|
77
|
+
// we override, we don't add the length prefix for ourselves, and at the same time we
|
|
78
|
+
// ignore isBare on entries, since they should be properly encoded at all times
|
|
79
|
+
const encoded = this.toU8aInner();
|
|
80
|
+
|
|
81
|
+
return encoded.length
|
|
82
|
+
? u8aConcatStrict(encoded)
|
|
83
|
+
: new Uint8Array([]);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* @description Returns the base runtime type name for this instance
|
|
88
|
+
*/
|
|
89
|
+
public toRawType (): string {
|
|
90
|
+
return `[${this.Type};${this.length}]`;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
export { Compact } from './Compact.js';
|
|
5
|
+
export { DoNotConstruct } from './DoNotConstruct.js';
|
|
6
|
+
export { Enum } from './Enum.js';
|
|
7
|
+
export { Int } from './Int.js';
|
|
8
|
+
export { Null } from './Null.js';
|
|
9
|
+
export { Option } from './Option.js';
|
|
10
|
+
export { Result } from './Result.js';
|
|
11
|
+
export { Tuple } from './Tuple.js';
|
|
12
|
+
export { UInt } from './UInt.js';
|
|
13
|
+
export { Vec } from './Vec.js';
|
|
14
|
+
export { VecAny } from './VecAny.js';
|
|
15
|
+
export { VecFixed } from './VecFixed.js';
|
package/src/bundle.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
// all named
|
|
5
|
+
export { packageInfo } from './packageInfo.js';
|
|
6
|
+
|
|
7
|
+
// all starred
|
|
8
|
+
export * from './abstract/index.js';
|
|
9
|
+
export * from './base/index.js';
|
|
10
|
+
export * from './extended/index.js';
|
|
11
|
+
export * from './native/index.js';
|
|
12
|
+
export * from './primitive/index.js';
|
|
13
|
+
export * from './utils/index.js';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import '@pezkuwi/types-augment';
|
|
5
|
+
|
|
6
|
+
import { TypeRegistry } from '@pezkuwi/types';
|
|
7
|
+
|
|
8
|
+
import { U32 } from './index.js';
|
|
9
|
+
|
|
10
|
+
const registry = new TypeRegistry();
|
|
11
|
+
|
|
12
|
+
console.log(new U32(registry).divn(1));
|