@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,27 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { Codec, CodecClass, Registry } from '../types/index.js';
|
|
5
|
+
|
|
6
|
+
import { WrapperKeepOpaque } from './WrapperKeepOpaque.js';
|
|
7
|
+
|
|
8
|
+
export class WrapperOpaque<T extends Codec> extends WrapperKeepOpaque<T> {
|
|
9
|
+
constructor (registry: Registry, typeName: CodecClass<T> | string, value?: unknown) {
|
|
10
|
+
super(registry, typeName, value, { opaqueName: 'WrapperOpaque' });
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
public static override with<T extends Codec> (Type: CodecClass<T> | string): CodecClass<WrapperKeepOpaque<T>> {
|
|
14
|
+
return class extends WrapperOpaque<T> {
|
|
15
|
+
constructor (registry: Registry, value?: unknown) {
|
|
16
|
+
super(registry, Type, value);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @description The inner value for this wrapper, in all cases it _should_ be decodable (unlike KeepOpaque)
|
|
23
|
+
*/
|
|
24
|
+
public get inner (): T {
|
|
25
|
+
return this.unwrap();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
export { BitVec } from './BitVec.js';
|
|
5
|
+
export { BTreeMap } from './BTreeMap.js';
|
|
6
|
+
export { BTreeSet } from './BTreeSet.js';
|
|
7
|
+
export { Bytes } from './Bytes.js';
|
|
8
|
+
export { HashMap } from './HashMap.js';
|
|
9
|
+
export { Linkage } from './Linkage.js';
|
|
10
|
+
export { CodecMap, CodecMap as Map } from './Map.js';
|
|
11
|
+
export { OptionBool } from './OptionBool.js';
|
|
12
|
+
export { Range } from './Range.js';
|
|
13
|
+
export { RangeInclusive } from './RangeInclusive.js';
|
|
14
|
+
export { Type } from './Type.js';
|
|
15
|
+
export { U8aFixed } from './U8aFixed.js';
|
|
16
|
+
export { WrapperKeepOpaque } from './WrapperKeepOpaque.js';
|
|
17
|
+
export { WrapperOpaque } from './WrapperOpaque.js';
|
package/src/index.ts
ADDED
package/src/mod.ts
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
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 { CodecTo } from '@pezkuwi/types-codec/types';
|
|
7
|
+
|
|
8
|
+
import { TypeRegistry } from '@pezkuwi/types';
|
|
9
|
+
import { Bool } from '@pezkuwi/types-codec';
|
|
10
|
+
|
|
11
|
+
describe('Bool', (): void => {
|
|
12
|
+
const registry = new TypeRegistry();
|
|
13
|
+
|
|
14
|
+
describe('decode', (): void => {
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
16
|
+
const testDecode = (type: string, input: Uint8Array | boolean | Boolean | Bool | number, expected: boolean): void =>
|
|
17
|
+
it(`can decode from ${type}`, (): void => {
|
|
18
|
+
expect(new Bool(registry, input).toJSON()).toBe(expected);
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
testDecode('Bool', new Bool(registry, true), true);
|
|
22
|
+
testDecode('Boolean', Boolean(true), true);
|
|
23
|
+
testDecode('boolean', true, true);
|
|
24
|
+
testDecode('number', 1, true);
|
|
25
|
+
testDecode('Uint8Array', Uint8Array.from([1]), true);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
describe('encode', (): void => {
|
|
29
|
+
const testEncode = (to: CodecTo, expected: string | Uint8Array | boolean, value: boolean): void =>
|
|
30
|
+
it(`can encode ${to}`, (): void => {
|
|
31
|
+
expect(new Bool(registry, value)[to]()).toEqual(expected);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
testEncode('toJSON', true, true);
|
|
35
|
+
testEncode('toHex', '0x01', true);
|
|
36
|
+
testEncode('toString', 'true', true);
|
|
37
|
+
testEncode('toU8a', Uint8Array.from([1]), true);
|
|
38
|
+
testEncode('toU8a', Uint8Array.from([0]), false);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it('correctly encodes length', (): void => {
|
|
42
|
+
expect(new Bool(registry, true).encodedLength).toEqual(1);
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
describe('utils', (): void => {
|
|
46
|
+
it('compares against a boolean', (): void => {
|
|
47
|
+
expect(new Bool(registry, true).eq(true)).toBe(true);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
it('compares against a Bool', (): void => {
|
|
51
|
+
expect(new Bool(registry, false).eq(new Bool(registry, false))).toBe(true);
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it('has isTrue', (): void => {
|
|
55
|
+
expect(new Bool(registry, true).isTrue).toBe(true);
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it('has isFalse', (): void => {
|
|
59
|
+
expect(new Bool(registry, true).isFalse).toBe(false);
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
it('has sane isEmpty aligning with the rest', (): void => {
|
|
63
|
+
expect(new Bool(registry).isEmpty).toBe(true);
|
|
64
|
+
expect(new Bool(registry, false).isEmpty).toBe(true);
|
|
65
|
+
expect(new Bool(registry, true).isEmpty).toBe(false);
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
it('has a sane inspect', (): void => {
|
|
69
|
+
expect(new Bool(registry, true).inspect()).toEqual({
|
|
70
|
+
outer: [new Uint8Array([1])]
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
});
|
|
@@ -0,0 +1,137 @@
|
|
|
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 { AnyBool, Codec, Inspect, IU8a, Registry } from '../types/index.js';
|
|
6
|
+
|
|
7
|
+
import { isU8a, u8aToHex } from '@pezkuwi/util';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @name bool
|
|
11
|
+
* @description
|
|
12
|
+
* Representation for a boolean value in the system. It extends the base JS `Boolean` class
|
|
13
|
+
* @noInheritDoc
|
|
14
|
+
*/
|
|
15
|
+
export class bool extends Boolean implements Codec {
|
|
16
|
+
readonly registry: Registry;
|
|
17
|
+
|
|
18
|
+
public createdAtHash?: IU8a;
|
|
19
|
+
public initialU8aLength = 1;
|
|
20
|
+
public isStorageFallback?: boolean;
|
|
21
|
+
|
|
22
|
+
constructor (registry: Registry, value: bool | AnyBool | Uint8Array | number = false) {
|
|
23
|
+
super(
|
|
24
|
+
isU8a(value)
|
|
25
|
+
? value[0] === 1
|
|
26
|
+
: value instanceof Boolean
|
|
27
|
+
? value.valueOf()
|
|
28
|
+
: !!value
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
this.registry = registry;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @description The length of the value when encoded as a Uint8Array
|
|
36
|
+
*/
|
|
37
|
+
public get encodedLength (): number {
|
|
38
|
+
return 1 | 0;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @description returns a hash of the contents
|
|
43
|
+
*/
|
|
44
|
+
public get hash (): IU8a {
|
|
45
|
+
return this.registry.hash(this.toU8a());
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @description Checks if the value is an empty value (true when it wraps false/default)
|
|
50
|
+
*/
|
|
51
|
+
public get isEmpty (): boolean {
|
|
52
|
+
return this.isFalse;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* @description Checks if the value is an empty value (always false)
|
|
57
|
+
*/
|
|
58
|
+
public get isFalse (): boolean {
|
|
59
|
+
return !this.isTrue;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* @description Checks if the value is an empty value (always false)
|
|
64
|
+
*/
|
|
65
|
+
public get isTrue (): boolean {
|
|
66
|
+
return this.valueOf();
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* @description Compares the value of the input to see if there is a match
|
|
71
|
+
*/
|
|
72
|
+
public eq (other?: unknown): boolean {
|
|
73
|
+
return this.valueOf() === (
|
|
74
|
+
other instanceof Boolean
|
|
75
|
+
? other.valueOf()
|
|
76
|
+
: other
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* @description Returns a breakdown of the hex encoding for this Codec
|
|
82
|
+
*/
|
|
83
|
+
public inspect (): Inspect {
|
|
84
|
+
return {
|
|
85
|
+
outer: [this.toU8a()]
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* @description Returns a hex string representation of the value
|
|
91
|
+
*/
|
|
92
|
+
public toHex (): HexString {
|
|
93
|
+
return u8aToHex(this.toU8a());
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
|
|
98
|
+
*/
|
|
99
|
+
public toHuman (): boolean {
|
|
100
|
+
return this.toJSON();
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* @description Converts the Object to JSON, typically used for RPC transfers
|
|
105
|
+
*/
|
|
106
|
+
public toJSON (): boolean {
|
|
107
|
+
return this.valueOf();
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* @description Converts the value in a best-fit primitive form
|
|
112
|
+
*/
|
|
113
|
+
public toPrimitive (): boolean {
|
|
114
|
+
return this.toJSON();
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* @description Returns the base runtime type name for this instance
|
|
119
|
+
*/
|
|
120
|
+
public toRawType (): string {
|
|
121
|
+
return 'bool';
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* @description Returns the string representation of the value
|
|
126
|
+
*/
|
|
127
|
+
public override toString (): string {
|
|
128
|
+
return this.toJSON().toString();
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* @description Encodes the value as a Uint8Array as per the SCALE specifications
|
|
133
|
+
*/
|
|
134
|
+
public toU8a (_isBare?: boolean): Uint8Array {
|
|
135
|
+
return new Uint8Array([this.valueOf() ? 1 : 0]);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
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 { CodecTo } from '@pezkuwi/types-codec/types';
|
|
7
|
+
|
|
8
|
+
import { TypeRegistry } from '@pezkuwi/types';
|
|
9
|
+
import { CodecDate, U64 } from '@pezkuwi/types-codec';
|
|
10
|
+
import { BN } from '@pezkuwi/util';
|
|
11
|
+
|
|
12
|
+
describe('Date', (): void => {
|
|
13
|
+
const registry = new TypeRegistry();
|
|
14
|
+
|
|
15
|
+
describe('decode', (): void => {
|
|
16
|
+
const testDecode = (type: string, input: Date | CodecDate | U64 | number, expected: string | number, toJSON = false): void =>
|
|
17
|
+
it(`can decode from ${type}`, (): void => {
|
|
18
|
+
expect(new CodecDate(registry, input)[toJSON ? 'toJSON' : 'toISOString']()).toBe(expected);
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
testDecode('Date', new Date(1537968546280), '2018-09-26T13:29:06.280Z');
|
|
22
|
+
testDecode('CodecDate', new CodecDate(registry, 1234), 1234, true);
|
|
23
|
+
testDecode('number', 1234, 1234, true);
|
|
24
|
+
testDecode('U64', new U64(registry, 69), 69, true);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
describe('encode', (): void => {
|
|
28
|
+
const testEncode = (to: 'toBigInt' | 'toBn' | 'toISOString' | 'toNumber' | CodecTo, expected: bigint | BN | number | string | Uint8Array): void =>
|
|
29
|
+
it(`can encode ${to}`, (): void => {
|
|
30
|
+
expect(new CodecDate(registry, 421)[to]()).toEqual(expected);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
testEncode('toBigInt', 421n);
|
|
34
|
+
testEncode('toBn', new BN(421));
|
|
35
|
+
testEncode('toJSON', 421);
|
|
36
|
+
testEncode('toISOString', '1970-01-01T00:07:01.000Z');
|
|
37
|
+
|
|
38
|
+
testEncode('toNumber', 421);
|
|
39
|
+
testEncode('toU8a', Uint8Array.from([165, 1, 0, 0, 0, 0, 0, 0]));
|
|
40
|
+
|
|
41
|
+
it('can encode toString', (): void => {
|
|
42
|
+
const date = new Date(Date.UTC(1970, 0, 1, 2, 3, 4));
|
|
43
|
+
|
|
44
|
+
date.setTime(date.getTime() + date.getTimezoneOffset() * 60 * 1000);
|
|
45
|
+
|
|
46
|
+
expect(
|
|
47
|
+
new CodecDate(registry, date).toString()
|
|
48
|
+
).toMatch(/^Thu Jan 01 1970 02:03:04/);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it('encodes default BE hex', (): void => {
|
|
52
|
+
expect(
|
|
53
|
+
new CodecDate(registry, 3).toHex()
|
|
54
|
+
).toEqual('0x0000000000000003');
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
it('encodes options LE hex', (): void => {
|
|
58
|
+
expect(
|
|
59
|
+
new CodecDate(registry, 3).toHex(true)
|
|
60
|
+
).toEqual('0x0300000000000000');
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
it('encodes correctly to BigInt', (): void => {
|
|
64
|
+
expect(
|
|
65
|
+
new CodecDate(registry, 41).toBigInt() + 1n
|
|
66
|
+
).toEqual(42n);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
describe('utils', (): void => {
|
|
71
|
+
it('compares values', (): void => {
|
|
72
|
+
expect(new CodecDate(registry, 123).eq(123)).toBe(true);
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
it('compares values (non-match)', (): void => {
|
|
76
|
+
expect(new CodecDate(registry, 123).eq(456)).toBe(false);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it('has a sane inspect', (): void => {
|
|
80
|
+
expect(new CodecDate(registry, 3).inspect()).toEqual({
|
|
81
|
+
outer: [new Uint8Array([3, 0, 0, 0, 0, 0, 0, 0])]
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
});
|
|
@@ -0,0 +1,169 @@
|
|
|
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 { AnyNumber, Inspect, INumber, IU8a, Registry, UIntBitLength } from '../types/index.js';
|
|
6
|
+
|
|
7
|
+
import { BN, bnToBn, bnToHex, bnToU8a, isString, isU8a, u8aToBn } from '@pezkuwi/util';
|
|
8
|
+
|
|
9
|
+
const BITLENGTH: UIntBitLength = 64;
|
|
10
|
+
const U8A_OPTS = { bitLength: BITLENGTH, isLe: true };
|
|
11
|
+
|
|
12
|
+
function decodeDate (value: CodecDate | Date | AnyNumber): Date {
|
|
13
|
+
if (isU8a(value)) {
|
|
14
|
+
value = u8aToBn(value.subarray(0, BITLENGTH / 8));
|
|
15
|
+
} else if (value instanceof Date) {
|
|
16
|
+
return value;
|
|
17
|
+
} else if (isString(value)) {
|
|
18
|
+
value = new BN(value.toString(), 10, 'le');
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return new Date(
|
|
22
|
+
bnToBn(value as BN).toNumber() * 1000
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @name Date
|
|
28
|
+
* @description
|
|
29
|
+
* A wrapper around seconds/timestamps. Internally the representation only has
|
|
30
|
+
* second precicion (aligning with Rust), so any numbers passed an/out are always
|
|
31
|
+
* per-second. For any encoding/decoding the 1000 multiplier would be applied to
|
|
32
|
+
* get it in line with JavaScript formats. It extends the base JS `Date` object
|
|
33
|
+
* and has all the methods available that are applicable to any `Date`
|
|
34
|
+
* @noInheritDoc
|
|
35
|
+
*/
|
|
36
|
+
export class CodecDate extends Date implements INumber {
|
|
37
|
+
readonly registry: Registry;
|
|
38
|
+
|
|
39
|
+
public createdAtHash?: IU8a;
|
|
40
|
+
public initialU8aLength = BITLENGTH / 8;
|
|
41
|
+
public isStorageFallback?: boolean;
|
|
42
|
+
|
|
43
|
+
constructor (registry: Registry, value: CodecDate | Date | AnyNumber = 0) {
|
|
44
|
+
super(decodeDate(value));
|
|
45
|
+
|
|
46
|
+
this.registry = registry;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* @description The length of the value when encoded as a Uint8Array
|
|
51
|
+
*/
|
|
52
|
+
public get encodedLength (): number {
|
|
53
|
+
return BITLENGTH / 8;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* @description returns a hash of the contents
|
|
58
|
+
*/
|
|
59
|
+
public get hash (): IU8a {
|
|
60
|
+
return this.registry.hash(this.toU8a());
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* @description Checks if the value is an empty value
|
|
65
|
+
*/
|
|
66
|
+
public get isEmpty (): boolean {
|
|
67
|
+
return this.getTime() === 0;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* @description Returns the number of bits in the value
|
|
72
|
+
*/
|
|
73
|
+
public bitLength (): UIntBitLength {
|
|
74
|
+
return BITLENGTH;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* @description Compares the value of the input to see if there is a match
|
|
79
|
+
*/
|
|
80
|
+
public eq (other?: unknown): boolean {
|
|
81
|
+
return decodeDate(other as AnyNumber).getTime() === this.getTime();
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* @description Returns a breakdown of the hex encoding for this Codec
|
|
86
|
+
*/
|
|
87
|
+
public inspect (): Inspect {
|
|
88
|
+
return {
|
|
89
|
+
outer: [this.toU8a()]
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* @description Returns a BigInt representation of the number
|
|
95
|
+
*/
|
|
96
|
+
public toBigInt (): bigint {
|
|
97
|
+
return BigInt(this.toNumber());
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* @description Returns the BN representation of the timestamp
|
|
102
|
+
*/
|
|
103
|
+
public toBn (): BN {
|
|
104
|
+
return new BN(this.toNumber());
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* @description Returns a hex string representation of the value
|
|
109
|
+
*/
|
|
110
|
+
public toHex (isLe = false): HexString {
|
|
111
|
+
return bnToHex(this.toBn(), {
|
|
112
|
+
bitLength: BITLENGTH,
|
|
113
|
+
isLe,
|
|
114
|
+
isNegative: false
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
|
|
120
|
+
*/
|
|
121
|
+
public toHuman (): string {
|
|
122
|
+
return this.toISOString();
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* @description Converts the Object to JSON, typically used for RPC transfers
|
|
127
|
+
*/
|
|
128
|
+
public override toJSON (): any {
|
|
129
|
+
// FIXME Return type should be number, but conflicts with Date.toJSON()
|
|
130
|
+
// which returns string
|
|
131
|
+
return this.toNumber();
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* @description Returns the number representation for the timestamp
|
|
136
|
+
*/
|
|
137
|
+
public toNumber (): number {
|
|
138
|
+
return Math.ceil(this.getTime() / 1000);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* @description Converts the value in a best-fit primitive form
|
|
143
|
+
*/
|
|
144
|
+
public toPrimitive (): number {
|
|
145
|
+
return this.toNumber();
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* @description Returns the base runtime type name for this instance
|
|
150
|
+
*/
|
|
151
|
+
public toRawType (): string {
|
|
152
|
+
return 'Moment';
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* @description Returns the string representation of the value
|
|
157
|
+
*/
|
|
158
|
+
public override toString (): string {
|
|
159
|
+
// only included here since we do not inherit docs
|
|
160
|
+
return super.toString();
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* @description Encodes the value as a Uint8Array as per the SCALE specifications
|
|
165
|
+
*/
|
|
166
|
+
public toU8a (_isBare?: boolean): Uint8Array {
|
|
167
|
+
return bnToU8a(this.toNumber(), U8A_OPTS);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
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 { F32, F64 } from '@pezkuwi/types-codec';
|
|
8
|
+
|
|
9
|
+
describe('Float', (): void => {
|
|
10
|
+
const registry = new TypeRegistry();
|
|
11
|
+
|
|
12
|
+
describe('F32', (): void => {
|
|
13
|
+
it('has a sane toRawType()', (): void => {
|
|
14
|
+
expect(
|
|
15
|
+
new F32(registry).toRawType()
|
|
16
|
+
).toEqual('f32');
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it('constructs from Uint8Array', (): void => {
|
|
20
|
+
expect(
|
|
21
|
+
new F32(registry, new Uint8Array([0, 0, 0, 128])).toNumber()
|
|
22
|
+
).toEqual(-0.0);
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it('triggers isEmpty on 0', (): void => {
|
|
26
|
+
expect(
|
|
27
|
+
new F32(registry, 0).isEmpty
|
|
28
|
+
).toEqual(true);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it('constructs from a float value', (): void => {
|
|
32
|
+
expect(
|
|
33
|
+
new F32(registry, 123.456).toString()
|
|
34
|
+
).toEqual('123.456');
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
describe('F64', (): void => {
|
|
39
|
+
it('has a sane toRawType()', (): void => {
|
|
40
|
+
expect(
|
|
41
|
+
new F64(registry).toRawType()
|
|
42
|
+
).toEqual('f64');
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
it('constructs from hex', (): void => {
|
|
46
|
+
expect(
|
|
47
|
+
new F64(registry, '0x0000000000000080').toNumber()
|
|
48
|
+
).toEqual(-0.0);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
});
|