@duplojs/lang 0.0.1-beta.1 → 0.0.1-beta.11
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/dist/array/at/default.d.ts +1 -1
- package/dist/array/chunk.d.ts +3 -2
- package/dist/array/concat.d.ts +1 -1
- package/dist/array/copyWithin.d.ts +1 -1
- package/dist/array/fill/all.d.ts +1 -1
- package/dist/array/fill/default.d.ts +3 -3
- package/dist/array/filter.d.ts +1 -1
- package/dist/array/findAndReplace.d.ts +1 -1
- package/dist/array/findAndSplice/delete.d.ts +1 -1
- package/dist/array/findAndSplice/insert.d.ts +1 -1
- package/dist/array/index.cjs +0 -3
- package/dist/array/index.d.ts +0 -1
- package/dist/array/index.mjs +1 -3
- package/dist/array/insert.d.ts +3 -3
- package/dist/array/length.d.ts +1 -1
- package/dist/array/lengthEqual.d.ts +1 -1
- package/dist/array/map.d.ts +1 -1
- package/dist/array/maxElements.d.ts +1 -1
- package/dist/array/minElements.d.ts +1 -1
- package/dist/array/pop.d.ts +1 -1
- package/dist/array/prepend.d.ts +1 -1
- package/dist/array/push.d.ts +3 -3
- package/dist/array/reverse.d.ts +1 -1
- package/dist/array/shift.d.ts +1 -1
- package/dist/array/sort.d.ts +1 -1
- package/dist/array/splice/delete.d.ts +1 -1
- package/dist/array/splice/insert.d.ts +1 -1
- package/dist/array/unshift.d.ts +3 -3
- package/dist/chrono/createDate.cjs +9 -9
- package/dist/chrono/createDate.d.ts +3 -3
- package/dist/chrono/createDate.mjs +9 -9
- package/dist/chrono/createTime.cjs +24 -13
- package/dist/chrono/createTime.mjs +24 -13
- package/dist/chrono/theDate.cjs +15 -16
- package/dist/chrono/theDate.d.ts +15 -15
- package/dist/chrono/theDate.mjs +15 -16
- package/dist/chrono/theTime.cjs +0 -1
- package/dist/chrono/theTime.mjs +0 -1
- package/dist/chrono/types/spoolingTime.d.ts +2 -1
- package/dist/common/constraint/cast/index.d.ts +3 -3
- package/dist/common/constraint/cast/number.d.ts +15 -0
- package/dist/common/constraint/cast/string.d.ts +21 -0
- package/dist/common/constraint/index.d.ts +2 -0
- package/dist/common/constraint/infer/array.d.ts +7 -0
- package/dist/{array/infer.cjs → common/constraint/infer/index.cjs} +1 -1
- package/dist/common/constraint/infer/index.d.ts +26 -0
- package/dist/{string/infer.mjs → common/constraint/infer/index.mjs} +1 -1
- package/dist/common/constraint/infer/number.d.ts +11 -0
- package/dist/common/constraint/infer/string.d.ts +13 -0
- package/dist/common/constraint/remove.cjs +6 -0
- package/dist/common/constraint/remove.d.ts +2 -0
- package/dist/common/constraint/remove.mjs +6 -0
- package/dist/common/index.cjs +6 -0
- package/dist/common/index.mjs +5 -1
- package/dist/common/isType.d.ts +3 -2
- package/dist/common/types/forward.d.ts +1 -0
- package/dist/common/types/index.d.ts +3 -0
- package/dist/common/types/isObject.d.ts +8 -0
- package/dist/common/types/json.d.ts +1 -1
- package/dist/common/types/splitPromise.d.ts +1 -0
- package/dist/dataStructure/common/codec/base.cjs +29 -0
- package/dist/dataStructure/common/{codec.d.ts → codec/base.d.ts} +8 -8
- package/dist/dataStructure/common/codec/base.mjs +26 -0
- package/dist/dataStructure/common/codec/defaults/index.d.ts +2 -0
- package/dist/dataStructure/common/codec/defaults/json.cjs +26 -0
- package/dist/dataStructure/common/codec/defaults/json.d.ts +6 -0
- package/dist/dataStructure/common/codec/defaults/json.mjs +26 -0
- package/dist/dataStructure/common/codec/defaults/string.cjs +44 -0
- package/dist/dataStructure/common/codec/defaults/string.d.ts +11 -0
- package/dist/dataStructure/common/codec/defaults/string.mjs +44 -0
- package/dist/dataStructure/common/codec/index.d.ts +2 -0
- package/dist/dataStructure/common/error/base.cjs +73 -0
- package/dist/dataStructure/common/error/base.d.ts +50 -0
- package/dist/dataStructure/common/error/base.mjs +69 -0
- package/dist/dataStructure/common/error/defaultInterpreter.cjs +87 -0
- package/dist/dataStructure/common/error/defaultInterpreter.d.ts +60 -0
- package/dist/dataStructure/common/error/defaultInterpreter.mjs +86 -0
- package/dist/dataStructure/common/error/index.d.ts +3 -0
- package/dist/dataStructure/common/error/interpreter.cjs +44 -0
- package/dist/dataStructure/common/error/interpreter.d.ts +32 -0
- package/dist/dataStructure/common/error/interpreter.mjs +44 -0
- package/dist/dataStructure/constraint/base.cjs +34 -5
- package/dist/dataStructure/constraint/base.d.ts +13 -4
- package/dist/dataStructure/constraint/base.mjs +34 -6
- package/dist/dataStructure/constraint/defaults/absolutePath.cjs +13 -0
- package/dist/dataStructure/constraint/defaults/absolutePath.d.ts +10 -0
- package/dist/dataStructure/constraint/defaults/absolutePath.mjs +12 -0
- package/dist/dataStructure/constraint/defaults/allowedCharacters.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/allowedCharacters.d.ts +1 -3
- package/dist/dataStructure/constraint/defaults/allowedCharacters.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/arrayLengthEqual.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/arrayLengthEqual.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/arrayLengthEqual.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/betweenThan.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/betweenThan.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/betweenThan.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/email.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/email.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/email.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/even.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/even.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/even.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/greaterThan.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/greaterThan.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/greaterThan.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/index.d.ts +6 -0
- package/dist/dataStructure/constraint/defaults/integer.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/integer.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/integer.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/lessThan.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/lessThan.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/lessThan.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/lessThanOrEqual.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/lessThanOrEqual.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/lessThanOrEqual.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/maxCharacters.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/maxCharacters.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/maxCharacters.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/maxElements.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/maxElements.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/maxElements.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/minCharacters.cjs +4 -4
- package/dist/dataStructure/constraint/defaults/minCharacters.d.ts +2 -2
- package/dist/dataStructure/constraint/defaults/minCharacters.mjs +4 -4
- package/dist/dataStructure/constraint/defaults/minElements.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/minElements.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/minElements.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/multipleOf.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/multipleOf.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/multipleOf.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/negative.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/negative.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/negative.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/notEmpty.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/notEmpty.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/notEmpty.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/notZero.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/notZero.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/notZero.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/numberInString.cjs +13 -0
- package/dist/dataStructure/constraint/defaults/numberInString.d.ts +10 -0
- package/dist/dataStructure/constraint/defaults/numberInString.mjs +12 -0
- package/dist/dataStructure/constraint/defaults/odd.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/odd.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/odd.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/path.cjs +13 -0
- package/dist/dataStructure/constraint/defaults/path.d.ts +10 -0
- package/dist/dataStructure/constraint/defaults/path.mjs +12 -0
- package/dist/dataStructure/constraint/defaults/positive.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/positive.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/positive.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/refine.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/refine.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/refine.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/regex.cjs +13 -0
- package/dist/dataStructure/constraint/defaults/regex.d.ts +10 -0
- package/dist/dataStructure/constraint/defaults/regex.mjs +12 -0
- package/dist/dataStructure/constraint/defaults/safe.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/safe.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/safe.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/segmentPath.cjs +13 -0
- package/dist/dataStructure/constraint/defaults/segmentPath.d.ts +10 -0
- package/dist/dataStructure/constraint/defaults/segmentPath.mjs +12 -0
- package/dist/dataStructure/constraint/defaults/strictNegative.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/strictNegative.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/strictNegative.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/strictPositive.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/strictPositive.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/strictPositive.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/stringLengthEqual.cjs +1 -1
- package/dist/dataStructure/constraint/defaults/stringLengthEqual.d.ts +1 -1
- package/dist/dataStructure/constraint/defaults/stringLengthEqual.mjs +1 -1
- package/dist/dataStructure/constraint/defaults/trimmed.cjs +13 -0
- package/dist/dataStructure/constraint/defaults/trimmed.d.ts +10 -0
- package/dist/dataStructure/constraint/defaults/trimmed.mjs +12 -0
- package/dist/dataStructure/constraint/defaults/url.cjs +2 -2
- package/dist/dataStructure/constraint/defaults/url.d.ts +2 -3
- package/dist/dataStructure/constraint/defaults/url.mjs +2 -2
- package/dist/dataStructure/constraint/defaults/uuid.cjs +2 -4
- package/dist/dataStructure/constraint/defaults/uuid.d.ts +1 -3
- package/dist/dataStructure/constraint/defaults/uuid.mjs +4 -5
- package/dist/dataStructure/constraint/identifier.d.ts +3 -4
- package/dist/dataStructure/constraint/types/constraints.d.ts +22 -15
- package/dist/dataStructure/fundamentalType/base.cjs +3 -3
- package/dist/dataStructure/fundamentalType/base.d.ts +4 -5
- package/dist/dataStructure/fundamentalType/base.mjs +3 -3
- package/dist/dataStructure/fundamentalType/defaults/bigint.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/bigint.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/bigint.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/boolean.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/boolean.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/boolean.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/date.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/date.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/date.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/null.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/null.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/null.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/number.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/number.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/number.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/string.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/string.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/string.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/time.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/time.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/time.mjs +5 -2
- package/dist/dataStructure/fundamentalType/defaults/undefined.cjs +4 -2
- package/dist/dataStructure/fundamentalType/defaults/undefined.d.ts +4 -4
- package/dist/dataStructure/fundamentalType/defaults/undefined.mjs +5 -2
- package/dist/dataStructure/fundamentalType/identifier.d.ts +3 -4
- package/dist/dataStructure/helpers/absolutePath.cjs +7 -0
- package/dist/dataStructure/helpers/absolutePath.d.ts +2 -0
- package/dist/dataStructure/helpers/absolutePath.mjs +7 -0
- package/dist/dataStructure/helpers/array.d.ts +1 -1
- package/dist/dataStructure/helpers/bigint.d.ts +1 -1
- package/dist/dataStructure/helpers/boolean.d.ts +1 -1
- package/dist/dataStructure/helpers/date.d.ts +1 -1
- package/dist/dataStructure/helpers/extend.d.ts +1 -1
- package/dist/dataStructure/helpers/index.d.ts +10 -1
- package/dist/dataStructure/helpers/isNullable.cjs +12 -0
- package/dist/dataStructure/helpers/isNullable.d.ts +2 -0
- package/dist/dataStructure/helpers/isNullable.mjs +12 -0
- package/dist/dataStructure/helpers/isOptional.cjs +12 -0
- package/dist/dataStructure/helpers/isOptional.d.ts +2 -0
- package/dist/dataStructure/helpers/isOptional.mjs +12 -0
- package/dist/dataStructure/helpers/lazy.d.ts +1 -1
- package/dist/dataStructure/helpers/null.d.ts +1 -1
- package/dist/dataStructure/helpers/nullable.cjs +5 -2
- package/dist/dataStructure/helpers/nullable.mjs +5 -2
- package/dist/dataStructure/helpers/number.d.ts +1 -1
- package/dist/dataStructure/helpers/numberInString.cjs +7 -0
- package/dist/dataStructure/helpers/numberInString.d.ts +2 -0
- package/dist/dataStructure/helpers/numberInString.mjs +7 -0
- package/dist/dataStructure/helpers/object.d.ts +1 -1
- package/dist/dataStructure/helpers/optional.cjs +5 -2
- package/dist/dataStructure/helpers/optional.mjs +5 -2
- package/dist/dataStructure/helpers/partial.cjs +5 -2
- package/dist/dataStructure/helpers/partial.mjs +5 -2
- package/dist/dataStructure/helpers/path.cjs +7 -0
- package/dist/dataStructure/helpers/path.d.ts +2 -0
- package/dist/dataStructure/helpers/path.mjs +7 -0
- package/dist/dataStructure/helpers/record.d.ts +1 -1
- package/dist/dataStructure/helpers/regex.cjs +7 -0
- package/dist/dataStructure/helpers/regex.d.ts +2 -0
- package/dist/dataStructure/helpers/regex.mjs +7 -0
- package/dist/dataStructure/helpers/required.cjs +6 -3
- package/dist/dataStructure/helpers/required.d.ts +2 -1
- package/dist/dataStructure/helpers/required.mjs +6 -3
- package/dist/dataStructure/helpers/segmentPath.cjs +7 -0
- package/dist/dataStructure/helpers/segmentPath.d.ts +2 -0
- package/dist/dataStructure/helpers/segmentPath.mjs +7 -0
- package/dist/dataStructure/helpers/string.d.ts +1 -1
- package/dist/dataStructure/helpers/time.d.ts +1 -1
- package/dist/dataStructure/helpers/trimmed.cjs +7 -0
- package/dist/dataStructure/helpers/trimmed.d.ts +2 -0
- package/dist/dataStructure/helpers/trimmed.mjs +7 -0
- package/dist/dataStructure/helpers/undefined.d.ts +1 -1
- package/dist/dataStructure/helpers/union.d.ts +1 -1
- package/dist/dataStructure/helpers/unwrapLazy.cjs +9 -0
- package/dist/dataStructure/helpers/unwrapLazy.d.ts +2 -0
- package/dist/dataStructure/helpers/unwrapLazy.mjs +9 -0
- package/dist/dataStructure/helpers/url.cjs +2 -2
- package/dist/dataStructure/helpers/url.d.ts +1 -2
- package/dist/dataStructure/helpers/url.mjs +2 -2
- package/dist/dataStructure/index.cjs +158 -60
- package/dist/dataStructure/index.mjs +80 -21
- package/dist/dataStructure/structure/base.cjs +22 -12
- package/dist/dataStructure/structure/base.d.ts +8 -5
- package/dist/dataStructure/structure/base.mjs +16 -6
- package/dist/dataStructure/structure/defaults/array.d.ts +2 -2
- package/dist/dataStructure/structure/defaults/index.d.ts +1 -0
- package/dist/dataStructure/structure/defaults/lazy.cjs +10 -3
- package/dist/dataStructure/structure/defaults/lazy.d.ts +2 -2
- package/dist/dataStructure/structure/defaults/lazy.mjs +10 -3
- package/dist/dataStructure/structure/defaults/nonEncodableString.cjs +17 -0
- package/dist/dataStructure/structure/defaults/nonEncodableString.d.ts +10 -0
- package/dist/dataStructure/structure/defaults/nonEncodableString.mjs +16 -0
- package/dist/dataStructure/structure/defaults/object.d.ts +2 -2
- package/dist/dataStructure/structure/defaults/record.cjs +7 -7
- package/dist/dataStructure/structure/defaults/record.d.ts +3 -3
- package/dist/dataStructure/structure/defaults/record.mjs +7 -7
- package/dist/dataStructure/structure/defaults/type.cjs +1 -1
- package/dist/dataStructure/structure/defaults/type.d.ts +2 -2
- package/dist/dataStructure/structure/defaults/type.mjs +2 -2
- package/dist/dataStructure/structure/defaults/union.cjs +23 -17
- package/dist/dataStructure/structure/defaults/union.d.ts +3 -3
- package/dist/dataStructure/structure/defaults/union.mjs +21 -15
- package/dist/dataStructure/structure/identifier.d.ts +3 -4
- package/dist/dataStructure/structure/types/constraintsValue.d.ts +1 -1
- package/dist/dataStructure/structure/types/structures.d.ts +2 -1
- package/dist/dataStructure/structure/types/value.d.ts +1 -1
- package/dist/dataStructure/type/base.cjs +17 -4
- package/dist/dataStructure/type/base.d.ts +7 -3
- package/dist/dataStructure/type/base.mjs +17 -4
- package/dist/dataStructure/type/defaults/bigint.d.ts +1 -1
- package/dist/dataStructure/type/defaults/bigintLiteral.cjs +1 -1
- package/dist/dataStructure/type/defaults/bigintLiteral.d.ts +1 -1
- package/dist/dataStructure/type/defaults/bigintLiteral.mjs +1 -1
- package/dist/dataStructure/type/defaults/boolean.d.ts +1 -1
- package/dist/dataStructure/type/defaults/booleanLiteral.cjs +1 -1
- package/dist/dataStructure/type/defaults/booleanLiteral.d.ts +1 -1
- package/dist/dataStructure/type/defaults/booleanLiteral.mjs +1 -1
- package/dist/dataStructure/type/defaults/date.d.ts +1 -1
- package/dist/dataStructure/type/defaults/null.d.ts +1 -1
- package/dist/dataStructure/type/defaults/number.d.ts +1 -1
- package/dist/dataStructure/type/defaults/numberLiteral.cjs +1 -1
- package/dist/dataStructure/type/defaults/numberLiteral.d.ts +1 -1
- package/dist/dataStructure/type/defaults/numberLiteral.mjs +1 -1
- package/dist/dataStructure/type/defaults/string.d.ts +1 -1
- package/dist/dataStructure/type/defaults/stringLiteral.cjs +1 -1
- package/dist/dataStructure/type/defaults/stringLiteral.d.ts +1 -1
- package/dist/dataStructure/type/defaults/stringLiteral.mjs +1 -1
- package/dist/dataStructure/type/defaults/time.d.ts +1 -1
- package/dist/dataStructure/type/defaults/undefined.d.ts +1 -1
- package/dist/dataStructure/type/identifier.d.ts +3 -4
- package/dist/either/index.cjs +30 -8
- package/dist/either/index.d.ts +4 -0
- package/dist/either/index.mjs +23 -9
- package/dist/either/left/index.d.ts +3 -2
- package/dist/either/left/none.cjs +15 -0
- package/dist/either/left/none.d.ts +7 -0
- package/dist/either/left/none.mjs +14 -0
- package/dist/either/matchInformationOtherwise.d.ts +1 -1
- package/dist/either/rewriteInformation.cjs +22 -0
- package/dist/either/rewriteInformation.d.ts +14 -0
- package/dist/either/rewriteInformation.mjs +22 -0
- package/dist/either/right/asyncGroup.cjs +2 -2
- package/dist/either/right/asyncGroup.mjs +2 -2
- package/dist/either/right/group.cjs +1 -1
- package/dist/either/right/group.mjs +1 -1
- package/dist/either/right/index.d.ts +6 -5
- package/dist/either/right/some.cjs +15 -0
- package/dist/either/right/some.d.ts +7 -0
- package/dist/either/right/some.mjs +14 -0
- package/dist/either/toMaybe.cjs +12 -0
- package/dist/either/toMaybe.d.ts +5 -0
- package/dist/either/toMaybe.mjs +12 -0
- package/dist/either/types/mayBe.d.ts +3 -0
- package/dist/either/unwrapOr.cjs +14 -0
- package/dist/either/unwrapOr.d.ts +8 -0
- package/dist/either/unwrapOr.mjs +14 -0
- package/dist/either/unwrapOtherwise.cjs +14 -0
- package/dist/either/unwrapOtherwise.d.ts +8 -0
- package/dist/either/unwrapOtherwise.mjs +14 -0
- package/dist/generator/asyncChunk.d.ts +3 -2
- package/dist/generator/chunk.d.ts +3 -2
- package/dist/generator/reduce.cjs +2 -1
- package/dist/generator/reduce.mjs +1 -1
- package/dist/generator/types/flat.d.ts +2 -2
- package/dist/index.cjs +43 -39
- package/dist/index.mjs +4 -2
- package/dist/invocation/flow/base.d.ts +8 -3
- package/dist/invocation/flow/controller/base.d.ts +1 -0
- package/dist/invocation/flow/controller/defaults/aborter.cjs +38 -0
- package/dist/invocation/flow/controller/defaults/aborter.d.ts +17 -0
- package/dist/invocation/flow/controller/defaults/aborter.mjs +36 -0
- package/dist/invocation/flow/controller/defaults/debounce.d.ts +1 -1
- package/dist/invocation/flow/controller/defaults/filter.cjs +5 -3
- package/dist/invocation/flow/controller/defaults/filter.d.ts +1 -1
- package/dist/invocation/flow/controller/defaults/filter.mjs +5 -3
- package/dist/invocation/flow/controller/defaults/index.d.ts +1 -0
- package/dist/invocation/flow/controller/defaults/retry.d.ts +1 -1
- package/dist/invocation/flow/controller/defaults/throttling.d.ts +1 -1
- package/dist/invocation/flow/controller/defaults/timeout.d.ts +1 -1
- package/dist/invocation/index.cjs +15 -8
- package/dist/invocation/index.d.ts +1 -1
- package/dist/invocation/index.mjs +10 -6
- package/dist/invocation/reader.cjs +26 -0
- package/dist/invocation/reader.d.ts +28 -0
- package/dist/invocation/reader.mjs +25 -0
- package/dist/kind/createIdentifier.d.ts +8 -4
- package/dist/kind/types/getName.d.ts +2 -0
- package/dist/kind/types/getNamespaceName.d.ts +3 -0
- package/dist/kind/types/index.d.ts +2 -0
- package/dist/kind/types/remove.d.ts +2 -2
- package/dist/modeling/entity/base.cjs +38 -11
- package/dist/modeling/entity/base.d.ts +25 -10
- package/dist/modeling/entity/base.mjs +32 -6
- package/dist/modeling/entity/helper.d.ts +1 -1
- package/dist/modeling/entity/index.d.ts +0 -1
- package/dist/modeling/entity/namespace.cjs +2 -2
- package/dist/modeling/entity/namespace.d.ts +1 -1
- package/dist/modeling/entity/namespace.mjs +3 -3
- package/dist/modeling/flag/base.cjs +1 -5
- package/dist/modeling/flag/base.d.ts +6 -7
- package/dist/modeling/flag/base.mjs +1 -5
- package/dist/modeling/index.cjs +45 -28
- package/dist/modeling/index.d.ts +1 -0
- package/dist/modeling/index.mjs +18 -9
- package/dist/modeling/newType/base.cjs +34 -13
- package/dist/modeling/newType/base.d.ts +9 -2
- package/dist/modeling/newType/base.mjs +26 -7
- package/dist/modeling/newType/helper.cjs +2 -2
- package/dist/modeling/newType/helper.d.ts +1 -1
- package/dist/modeling/newType/helper.mjs +2 -2
- package/dist/modeling/taggedObject/base.cjs +113 -0
- package/dist/modeling/taggedObject/base.d.ts +61 -0
- package/dist/modeling/taggedObject/base.mjs +110 -0
- package/dist/modeling/taggedObject/helper.cjs +34 -0
- package/dist/modeling/taggedObject/helper.d.ts +15 -0
- package/dist/modeling/taggedObject/helper.mjs +31 -0
- package/dist/modeling/taggedObject/index.d.ts +2 -0
- package/dist/number/betweenThan.d.ts +2 -2
- package/dist/number/betweenThanOrEqual.d.ts +2 -2
- package/dist/number/greaterThan.d.ts +1 -1
- package/dist/number/greaterThanOrEqual.d.ts +1 -1
- package/dist/number/index.cjs +0 -3
- package/dist/number/index.d.ts +0 -1
- package/dist/number/index.mjs +1 -3
- package/dist/number/lessThan.d.ts +1 -1
- package/dist/number/lessThanOrEqual.d.ts +1 -1
- package/dist/number/sort.d.ts +1 -1
- package/dist/number/types/isGreater.d.ts +5 -5
- package/dist/object/assign.d.ts +3 -3
- package/dist/object/types/assign.d.ts +2 -0
- package/dist/object/types/forbiddenUndefinedProps.d.ts +3 -0
- package/dist/object/types/index.d.ts +4 -2
- package/dist/object/types/override.d.ts +4 -0
- package/dist/object/types/split.d.ts +2 -2
- package/dist/path/computeRelative.cjs +5 -6
- package/dist/path/computeRelative.d.ts +1 -1
- package/dist/path/computeRelative.mjs +5 -6
- package/dist/path/constraints/absolute.d.ts +1 -1
- package/dist/path/constraints/index.d.ts +2 -1
- package/dist/path/constraints/segment.d.ts +3 -0
- package/dist/path/getBaseName.cjs +7 -7
- package/dist/path/getBaseName.d.ts +2 -2
- package/dist/path/getBaseName.mjs +7 -7
- package/dist/path/getExtensionName.cjs +9 -4
- package/dist/path/getExtensionName.d.ts +2 -2
- package/dist/path/getExtensionName.mjs +9 -4
- package/dist/path/getParentFolderPath.cjs +9 -4
- package/dist/path/getParentFolderPath.d.ts +1 -2
- package/dist/path/getParentFolderPath.mjs +9 -4
- package/dist/path/index.cjs +6 -3
- package/dist/path/index.d.ts +3 -2
- package/dist/path/index.mjs +5 -3
- package/dist/path/is.cjs +9 -4
- package/dist/path/is.d.ts +4 -2
- package/dist/path/is.mjs +9 -4
- package/dist/path/isAbsolute.cjs +3 -5
- package/dist/path/isAbsolute.d.ts +4 -2
- package/dist/path/isAbsolute.mjs +3 -5
- package/dist/path/isSegment.cjs +6 -0
- package/dist/path/isSegment.d.ts +4 -0
- package/dist/path/isSegment.mjs +6 -0
- package/dist/path/normalize.cjs +18 -0
- package/dist/path/normalize.d.ts +2 -0
- package/dist/path/normalize.mjs +18 -0
- package/dist/path/resolveFrom.cjs +4 -5
- package/dist/path/resolveFrom.d.ts +10 -2
- package/dist/path/resolveFrom.mjs +4 -5
- package/dist/path/resolveRelative.cjs +17 -20
- package/dist/path/resolveRelative.d.ts +9 -2
- package/dist/path/resolveRelative.mjs +17 -20
- package/dist/path/types/index.d.ts +6 -0
- package/dist/path/types/isLiteralAbsolutePath.d.ts +2 -0
- package/dist/path/types/isLiteralPath.d.ts +20 -0
- package/dist/path/types/isLiteralSegmentPath.d.ts +9 -0
- package/dist/path/types/requireLiteralAbsolutePath.d.ts +3 -0
- package/dist/path/types/requireLiteralPath.d.ts +3 -0
- package/dist/path/types/requireLiteralSegmentPath.d.ts +3 -0
- package/dist/pattern/index.cjs +12 -0
- package/dist/pattern/index.d.ts +4 -0
- package/dist/pattern/index.mjs +9 -1
- package/dist/pattern/matchWithEntity.cjs +12 -0
- package/dist/pattern/matchWithEntity.d.ts +12 -0
- package/dist/pattern/matchWithEntity.mjs +12 -0
- package/dist/pattern/matchWithEntityOtherwise.cjs +13 -0
- package/dist/pattern/matchWithEntityOtherwise.d.ts +14 -0
- package/dist/pattern/matchWithEntityOtherwise.mjs +13 -0
- package/dist/pattern/matchWithNumber.d.ts +4 -4
- package/dist/pattern/matchWithNumberOtherwise.cjs +2 -6
- package/dist/pattern/matchWithNumberOtherwise.d.ts +4 -4
- package/dist/pattern/matchWithNumberOtherwise.mjs +2 -6
- package/dist/pattern/matchWithString.d.ts +4 -4
- package/dist/pattern/matchWithStringOtherwise.cjs +2 -6
- package/dist/pattern/matchWithStringOtherwise.d.ts +5 -5
- package/dist/pattern/matchWithStringOtherwise.mjs +2 -6
- package/dist/pattern/matchWithTaggedObject.cjs +12 -0
- package/dist/pattern/matchWithTaggedObject.d.ts +12 -0
- package/dist/pattern/matchWithTaggedObject.mjs +12 -0
- package/dist/pattern/matchWithTaggedObjectOtherwise.cjs +13 -0
- package/dist/pattern/matchWithTaggedObjectOtherwise.d.ts +14 -0
- package/dist/pattern/matchWithTaggedObjectOtherwise.mjs +13 -0
- package/dist/string/at.d.ts +2 -2
- package/dist/string/constraints/allowedCharacters.d.ts +3 -3
- package/dist/string/constraints/index.d.ts +2 -1
- package/dist/string/constraints/number.d.ts +4 -0
- package/dist/string/first.d.ts +1 -1
- package/dist/string/index.cjs +6 -3
- package/dist/string/index.d.ts +1 -1
- package/dist/string/index.mjs +5 -3
- package/dist/string/isComposedOf.cjs +0 -1
- package/dist/string/isComposedOf.d.ts +5 -8
- package/dist/string/isComposedOf.mjs +0 -1
- package/dist/string/isNumber.cjs +7 -0
- package/dist/string/isNumber.d.ts +5 -0
- package/dist/string/isNumber.mjs +7 -0
- package/dist/string/isUrl.cjs +2 -11
- package/dist/string/isUrl.d.ts +1 -5
- package/dist/string/isUrl.mjs +2 -11
- package/dist/string/last.d.ts +1 -1
- package/dist/string/lengthEqual.d.ts +1 -1
- package/dist/string/maxCharacters.d.ts +1 -1
- package/dist/string/minCharacters.d.ts +1 -1
- package/dist/string/padEnd.d.ts +1 -1
- package/dist/string/padStart.d.ts +1 -1
- package/dist/string/pop.d.ts +1 -1
- package/dist/string/shift.d.ts +1 -1
- package/dist/string/slice.d.ts +1 -1
- package/dist/string/substring.d.ts +1 -1
- package/dist/string/to.d.ts +9 -2
- package/dist/string/trim/default.d.ts +1 -1
- package/dist/string/trim/end.d.ts +1 -1
- package/dist/string/trim/index.d.ts +1 -0
- package/dist/string/trim/is.cjs +6 -0
- package/dist/string/trim/is.d.ts +2 -0
- package/dist/string/trim/is.mjs +6 -0
- package/dist/string/trim/start.d.ts +1 -1
- package/dist/string/types/IsAllowedString.d.ts +5 -0
- package/dist/string/types/index.d.ts +5 -5
- package/dist/string/types/numberInString.d.ts +1 -0
- package/dist/string/types/split.d.ts +1 -1
- package/dist/tuple/from.cjs +6 -0
- package/dist/tuple/from.d.ts +8 -0
- package/dist/tuple/from.mjs +6 -0
- package/dist/tuple/index.cjs +6 -1
- package/dist/tuple/index.d.ts +1 -0
- package/dist/tuple/index.mjs +6 -2
- package/package.json +2 -2
- package/dist/array/infer.d.ts +0 -14
- package/dist/array/infer.mjs +0 -6
- package/dist/dataStructure/common/codec.cjs +0 -28
- package/dist/dataStructure/common/codec.mjs +0 -25
- package/dist/dataStructure/common/error.cjs +0 -53
- package/dist/dataStructure/common/error.d.ts +0 -30
- package/dist/dataStructure/common/error.mjs +0 -52
- package/dist/invocation/useCase.cjs +0 -26
- package/dist/invocation/useCase.d.ts +0 -28
- package/dist/invocation/useCase.mjs +0 -25
- package/dist/modeling/entity/entityName.cjs +0 -13
- package/dist/modeling/entity/entityName.d.ts +0 -13
- package/dist/modeling/entity/entityName.mjs +0 -13
- package/dist/number/infer.cjs +0 -6
- package/dist/number/infer.d.ts +0 -12
- package/dist/number/infer.mjs +0 -6
- package/dist/object/types/assignObjects.d.ts +0 -2
- package/dist/path/fix.cjs +0 -8
- package/dist/path/fix.d.ts +0 -1
- package/dist/path/fix.mjs +0 -8
- package/dist/string/infer.cjs +0 -6
- package/dist/string/infer.d.ts +0 -12
- package/dist/string/types/number.d.ts +0 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const require_kind = require("../../kind.cjs");
|
|
2
|
+
const require_resultSymbol = require("../../common/resultSymbol.cjs");
|
|
3
|
+
const require_base = require("../base.cjs");
|
|
4
|
+
//#region scripts/dataStructure/structure/defaults/nonEncodableString.ts
|
|
5
|
+
const nonEncodableStringStructureKind = require_kind.createKind("non-encodable-string-structure");
|
|
6
|
+
const NonEncodableStringStructure = require_base.createStructure(nonEncodableStringStructureKind, ({ init }) => (value) => init({
|
|
7
|
+
value,
|
|
8
|
+
constraints: []
|
|
9
|
+
}, {
|
|
10
|
+
executeCheck: (self, data, errorHandler) => data === self.definition.value ? require_resultSymbol.SuccessSymbol : errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol,
|
|
11
|
+
executeEncode: (self, codecContext, data, errorHandler) => data === self.definition.value ? data : errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol,
|
|
12
|
+
executeDecode: (self, codecContext, data, errorHandler) => data === self.definition.value ? data : errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol,
|
|
13
|
+
isAsynchronous: () => false
|
|
14
|
+
}));
|
|
15
|
+
//#endregion
|
|
16
|
+
exports.NonEncodableStringStructure = NonEncodableStringStructure;
|
|
17
|
+
exports.nonEncodableStringStructureKind = nonEncodableStringStructureKind;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Structure, StructureDefinition } from '../base';
|
|
2
|
+
import type * as DKind from '../../../kind';
|
|
3
|
+
import type * as DCommon from '../../../common';
|
|
4
|
+
export declare const nonEncodableStringStructureKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/non-encodable-string-structure", unknown>>;
|
|
5
|
+
export interface NonEncodableStringStructureDefinition extends StructureDefinition<readonly []> {
|
|
6
|
+
readonly value: string;
|
|
7
|
+
}
|
|
8
|
+
export interface NonEncodableStringStructure extends DCommon.Forward<Structure<String, NonEncodableStringStructureDefinition> & DKind.Kind<typeof nonEncodableStringStructureKind>> {
|
|
9
|
+
}
|
|
10
|
+
export declare const NonEncodableStringStructure: (value: string) => NoInfer<NonEncodableStringStructure>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { createKind } from "../../kind.mjs";
|
|
2
|
+
import { ErrorSymbol, SuccessSymbol } from "../../common/resultSymbol.mjs";
|
|
3
|
+
import { createStructure } from "../base.mjs";
|
|
4
|
+
//#region scripts/dataStructure/structure/defaults/nonEncodableString.ts
|
|
5
|
+
const nonEncodableStringStructureKind = createKind("non-encodable-string-structure");
|
|
6
|
+
const NonEncodableStringStructure = createStructure(nonEncodableStringStructureKind, ({ init }) => (value) => init({
|
|
7
|
+
value,
|
|
8
|
+
constraints: []
|
|
9
|
+
}, {
|
|
10
|
+
executeCheck: (self, data, errorHandler) => data === self.definition.value ? SuccessSymbol : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
|
|
11
|
+
executeEncode: (self, codecContext, data, errorHandler) => data === self.definition.value ? data : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
|
|
12
|
+
executeDecode: (self, codecContext, data, errorHandler) => data === self.definition.value ? data : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
|
|
13
|
+
isAsynchronous: () => false
|
|
14
|
+
}));
|
|
15
|
+
//#endregion
|
|
16
|
+
export { NonEncodableStringStructure, nonEncodableStringStructureKind };
|
|
@@ -25,6 +25,6 @@ export interface ObjectStructureDefinition<GenericConstraints extends readonly C
|
|
|
25
25
|
readonly shape: DCommon.Memoized<readonly EntryShapeObjectStructure[]>;
|
|
26
26
|
readonly keys: readonly string[];
|
|
27
27
|
}
|
|
28
|
-
export interface ObjectStructure<GenericValue extends Record<string, unknown> = Record<string, unknown>, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.
|
|
28
|
+
export interface ObjectStructure<out GenericValue extends Record<string, unknown> = Record<string, unknown>, out GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.Forward<Structure<GenericValue, ObjectStructureDefinition<GenericConstraints>> & DKind.Kind<typeof objectStructureKind>> {
|
|
29
29
|
}
|
|
30
|
-
export declare const ObjectStructure: <GenericShape extends ShapeObjectStructure, const GenericConstraints extends readonly Constraint<ShapeObjectStructureValue<GenericShape>>[]>(shape: GenericShape, constraints: GenericConstraints) => ObjectStructure<ShapeObjectStructureValue<GenericShape>, readonly [...GenericConstraints]
|
|
30
|
+
export declare const ObjectStructure: <GenericShape extends ShapeObjectStructure, const GenericConstraints extends readonly Constraint<ShapeObjectStructureValue<GenericShape>>[]>(shape: GenericShape, constraints: GenericConstraints) => NoInfer<ObjectStructure<ShapeObjectStructureValue<GenericShape>, readonly [...GenericConstraints]>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const require_callThen = require("../../../common/callThen.cjs");
|
|
2
2
|
const require_isType = require("../../../common/isType.cjs");
|
|
3
|
-
const
|
|
3
|
+
const require_memo = require("../../../common/memo.cjs");
|
|
4
4
|
const require_kind = require("../../kind.cjs");
|
|
5
5
|
const require_resultSymbol = require("../../common/resultSymbol.cjs");
|
|
6
6
|
const require_base = require("../base.cjs");
|
|
@@ -16,10 +16,10 @@ const RecordStructure = require_base.createStructure(recordStructureKind, ({ ini
|
|
|
16
16
|
key,
|
|
17
17
|
value,
|
|
18
18
|
constraints,
|
|
19
|
-
requiredKeys:
|
|
19
|
+
requiredKeys: require_memo.memo(() => {
|
|
20
20
|
if (require_identifier.structureIdentifier(key, require_union.unionStructureKind)) {
|
|
21
|
-
if (key.definition.values.some((value) => require_identifier.structureIdentifier(value, require_type.typeStructureKind) && require_identifier$1.typeIdentifier(value.definition.type, require_string.stringTypeKind))) return null;
|
|
22
|
-
return key.definition.values.map((value) => require_identifier.structureIdentifier(value, require_type.typeStructureKind) && require_identifier$1.typeIdentifier(value.definition.type, require_stringLiteral.stringLiteralTypeKind) ? value.definition.type.definition.value : null).filter(require_isType.isType("string"));
|
|
21
|
+
if (key.definition.values.value.some((value) => require_identifier.structureIdentifier(value, require_type.typeStructureKind) && require_identifier$1.typeIdentifier(value.definition.type, require_string.stringTypeKind))) return null;
|
|
22
|
+
return key.definition.values.value.map((value) => require_identifier.structureIdentifier(value, require_type.typeStructureKind) && require_identifier$1.typeIdentifier(value.definition.type, require_stringLiteral.stringLiteralTypeKind) ? value.definition.type.definition.value : null).filter(require_isType.isType("string"));
|
|
23
23
|
}
|
|
24
24
|
if (require_identifier.structureIdentifier(key, require_type.typeStructureKind) && require_identifier$1.typeIdentifier(key.definition.type, require_stringLiteral.stringLiteralTypeKind)) return [key.definition.type.definition.value];
|
|
25
25
|
return null;
|
|
@@ -28,7 +28,7 @@ const RecordStructure = require_base.createStructure(recordStructureKind, ({ ini
|
|
|
28
28
|
executeCheck: (self, data, errorHandler) => {
|
|
29
29
|
if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
30
30
|
const keyData = Object.keys(data);
|
|
31
|
-
const requiredKeys = self.definition.requiredKeys;
|
|
31
|
+
const requiredKeys = self.definition.requiredKeys.value;
|
|
32
32
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
33
33
|
const pathStage = errorHandler?.().createPathStage();
|
|
34
34
|
const result = (requiredKeys ?? keyData).reduce((accumulator, key) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (resultKey) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeCheck(data[key], errorHandler), (resultValue) => resultValue === require_resultSymbol.ErrorSymbol || resultKey === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_resultSymbol.SuccessSymbol))), require_resultSymbol.SuccessSymbol);
|
|
@@ -40,7 +40,7 @@ const RecordStructure = require_base.createStructure(recordStructureKind, ({ ini
|
|
|
40
40
|
executeEncode: (self, codecContext, data, errorHandler) => {
|
|
41
41
|
if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
42
42
|
const keyData = Object.keys(data);
|
|
43
|
-
const requiredKeys = self.definition.requiredKeys;
|
|
43
|
+
const requiredKeys = self.definition.requiredKeys.value;
|
|
44
44
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
45
45
|
const pathStage = errorHandler?.().createPathStage();
|
|
46
46
|
const encodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeEncode(codecContext, data[key], errorHandler), (encodedValue) => {
|
|
@@ -53,7 +53,7 @@ const RecordStructure = require_base.createStructure(recordStructureKind, ({ ini
|
|
|
53
53
|
executeDecode: (self, codecContext, data, errorHandler) => {
|
|
54
54
|
if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
55
55
|
const keyData = Object.keys(data);
|
|
56
|
-
const requiredKeys = self.definition.requiredKeys;
|
|
56
|
+
const requiredKeys = self.definition.requiredKeys.value;
|
|
57
57
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
|
|
58
58
|
const pathStage = errorHandler?.().createPathStage();
|
|
59
59
|
const decodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeDecode(codecContext, data[key], errorHandler), (decodedValue) => {
|
|
@@ -12,8 +12,8 @@ export declare const recordStructureKind: DKind.Handler<DKind.Definition<"@Duplo
|
|
|
12
12
|
export interface RecordStructureDefinition<GenericConstraints extends readonly Constraint[] = readonly Constraint[]> extends StructureDefinition<GenericConstraints> {
|
|
13
13
|
readonly key: UnionStructure<string> | TypeStructure<string>;
|
|
14
14
|
readonly value: Structure;
|
|
15
|
-
readonly requiredKeys: string[] | null
|
|
15
|
+
readonly requiredKeys: DCommon.Memoized<string[] | null>;
|
|
16
16
|
}
|
|
17
|
-
export interface RecordStructure<GenericValue extends Record<string, unknown> = Record<string, unknown>, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.
|
|
17
|
+
export interface RecordStructure<out GenericValue extends Record<string, unknown> = Record<string, unknown>, out GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.Forward<Structure<GenericValue, RecordStructureDefinition<GenericConstraints>> & DKind.Kind<typeof recordStructureKind>> {
|
|
18
18
|
}
|
|
19
|
-
export declare const RecordStructure: <GenericKey extends (UnionStructure<string> | TypeStructure<string>), GenericValueStructure extends Structure, const GenericConstraints extends readonly Constraint<RecordStructureValue<GenericKey, GenericValueStructure>>[]>(key: GenericKey, value: GenericValueStructure, constraints: GenericConstraints) => RecordStructure<RecordStructureValue<GenericKey, GenericValueStructure>, readonly [...GenericConstraints]
|
|
19
|
+
export declare const RecordStructure: <GenericKey extends (UnionStructure<string> | TypeStructure<string>), GenericValueStructure extends Structure, const GenericConstraints extends readonly Constraint<RecordStructureValue<GenericKey, GenericValueStructure>>[]>(key: GenericKey, value: GenericValueStructure, constraints: GenericConstraints) => NoInfer<RecordStructure<RecordStructureValue<GenericKey, GenericValueStructure>, readonly [...GenericConstraints]>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { callThen } from "../../../common/callThen.mjs";
|
|
2
2
|
import { isType } from "../../../common/isType.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { memo } from "../../../common/memo.mjs";
|
|
4
4
|
import { createKind } from "../../kind.mjs";
|
|
5
5
|
import { ErrorSymbol, SuccessSymbol } from "../../common/resultSymbol.mjs";
|
|
6
6
|
import { createStructure } from "../base.mjs";
|
|
@@ -16,10 +16,10 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
|
|
|
16
16
|
key,
|
|
17
17
|
value,
|
|
18
18
|
constraints,
|
|
19
|
-
requiredKeys:
|
|
19
|
+
requiredKeys: memo(() => {
|
|
20
20
|
if (structureIdentifier(key, unionStructureKind)) {
|
|
21
|
-
if (key.definition.values.some((value) => structureIdentifier(value, typeStructureKind) && typeIdentifier(value.definition.type, stringTypeKind))) return null;
|
|
22
|
-
return key.definition.values.map((value) => structureIdentifier(value, typeStructureKind) && typeIdentifier(value.definition.type, stringLiteralTypeKind) ? value.definition.type.definition.value : null).filter(isType("string"));
|
|
21
|
+
if (key.definition.values.value.some((value) => structureIdentifier(value, typeStructureKind) && typeIdentifier(value.definition.type, stringTypeKind))) return null;
|
|
22
|
+
return key.definition.values.value.map((value) => structureIdentifier(value, typeStructureKind) && typeIdentifier(value.definition.type, stringLiteralTypeKind) ? value.definition.type.definition.value : null).filter(isType("string"));
|
|
23
23
|
}
|
|
24
24
|
if (structureIdentifier(key, typeStructureKind) && typeIdentifier(key.definition.type, stringLiteralTypeKind)) return [key.definition.type.definition.value];
|
|
25
25
|
return null;
|
|
@@ -28,7 +28,7 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
|
|
|
28
28
|
executeCheck: (self, data, errorHandler) => {
|
|
29
29
|
if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
30
30
|
const keyData = Object.keys(data);
|
|
31
|
-
const requiredKeys = self.definition.requiredKeys;
|
|
31
|
+
const requiredKeys = self.definition.requiredKeys.value;
|
|
32
32
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
33
33
|
const pathStage = errorHandler?.().createPathStage();
|
|
34
34
|
const result = (requiredKeys ?? keyData).reduce((accumulator, key) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? callThen(self.definition.key.executeCheck(key, errorHandler), (resultKey) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? callThen(self.definition.value.executeCheck(data[key], errorHandler), (resultValue) => resultValue === ErrorSymbol || resultKey === ErrorSymbol || awaitedAccumulator === ErrorSymbol ? ErrorSymbol : SuccessSymbol))), SuccessSymbol);
|
|
@@ -40,7 +40,7 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
|
|
|
40
40
|
executeEncode: (self, codecContext, data, errorHandler) => {
|
|
41
41
|
if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
42
42
|
const keyData = Object.keys(data);
|
|
43
|
-
const requiredKeys = self.definition.requiredKeys;
|
|
43
|
+
const requiredKeys = self.definition.requiredKeys.value;
|
|
44
44
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
45
45
|
const pathStage = errorHandler?.().createPathStage();
|
|
46
46
|
const encodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? callThen(self.definition.value.executeEncode(codecContext, data[key], errorHandler), (encodedValue) => {
|
|
@@ -53,7 +53,7 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
|
|
|
53
53
|
executeDecode: (self, codecContext, data, errorHandler) => {
|
|
54
54
|
if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
55
55
|
const keyData = Object.keys(data);
|
|
56
|
-
const requiredKeys = self.definition.requiredKeys;
|
|
56
|
+
const requiredKeys = self.definition.requiredKeys.value;
|
|
57
57
|
if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
|
|
58
58
|
const pathStage = errorHandler?.().createPathStage();
|
|
59
59
|
const decodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? callThen(self.definition.value.executeDecode(codecContext, data[key], errorHandler), (decodedValue) => {
|
|
@@ -8,7 +8,7 @@ const TypeStructure = require_base.createStructure(typeStructureKind, ({ init })
|
|
|
8
8
|
type,
|
|
9
9
|
constraints
|
|
10
10
|
}, {
|
|
11
|
-
executeCheck: (self, data, errorHandler) => self.definition.type.executeCheck(data, errorHandler),
|
|
11
|
+
executeCheck: (self, data, errorHandler) => require_callThen.callThen(self.definition.type.executeCheck(data), (result) => result === require_resultSymbol.ErrorSymbol ? errorHandler?.().addIssue(self, data, self.definition.type) ?? require_resultSymbol.ErrorSymbol : require_resultSymbol.SuccessSymbol),
|
|
12
12
|
executeEncode: (self, codecContext, data, errorHandler) => require_callThen.callThen(self.executeCheck(data, errorHandler), (result) => {
|
|
13
13
|
if (result === require_resultSymbol.ErrorSymbol) return require_resultSymbol.ErrorSymbol;
|
|
14
14
|
const codec = codecContext.get(self.definition.type.fundamentalType);
|
|
@@ -7,6 +7,6 @@ export declare const typeStructureKind: DKind.Handler<DKind.Definition<"@Duplojs
|
|
|
7
7
|
export interface TypeStructureDefinition<GenericConstraints extends readonly Constraint[] = readonly Constraint[]> extends StructureDefinition<GenericConstraints> {
|
|
8
8
|
readonly type: Type;
|
|
9
9
|
}
|
|
10
|
-
export interface TypeStructure<GenericType extends unknown = unknown, GenericConstraints extends readonly Constraint<GenericType>[] = readonly Constraint<GenericType>[]> extends DCommon.
|
|
10
|
+
export interface TypeStructure<out GenericType extends unknown = unknown, out GenericConstraints extends readonly Constraint<GenericType>[] = readonly Constraint<GenericType>[]> extends DCommon.Forward<Structure<GenericType, TypeStructureDefinition<GenericConstraints>> & DKind.Kind<typeof typeStructureKind>> {
|
|
11
11
|
}
|
|
12
|
-
export declare const TypeStructure: <GenericType extends Type, const GenericConstraints extends readonly Constraint<TypeValue<GenericType>>[]>(type: GenericType, constraints: GenericConstraints) => TypeStructure<TypeValue<GenericType>, readonly [...GenericConstraints]
|
|
12
|
+
export declare const TypeStructure: <GenericType extends Type, const GenericConstraints extends readonly Constraint<TypeValue<GenericType>>[]>(type: GenericType, constraints: GenericConstraints) => NoInfer<TypeStructure<TypeValue<GenericType>, readonly [...GenericConstraints]>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { callThen } from "../../../common/callThen.mjs";
|
|
2
2
|
import { createKind } from "../../kind.mjs";
|
|
3
|
-
import { ErrorSymbol } from "../../common/resultSymbol.mjs";
|
|
3
|
+
import { ErrorSymbol, SuccessSymbol } from "../../common/resultSymbol.mjs";
|
|
4
4
|
import { createStructure } from "../base.mjs";
|
|
5
5
|
//#region scripts/dataStructure/structure/defaults/type.ts
|
|
6
6
|
const typeStructureKind = createKind("type-structure");
|
|
@@ -8,7 +8,7 @@ const TypeStructure = createStructure(typeStructureKind, ({ init }) => (type, co
|
|
|
8
8
|
type,
|
|
9
9
|
constraints
|
|
10
10
|
}, {
|
|
11
|
-
executeCheck: (self, data, errorHandler) => self.definition.type.executeCheck(data, errorHandler),
|
|
11
|
+
executeCheck: (self, data, errorHandler) => callThen(self.definition.type.executeCheck(data), (result) => result === ErrorSymbol ? errorHandler?.().addIssue(self, data, self.definition.type) ?? ErrorSymbol : SuccessSymbol),
|
|
12
12
|
executeEncode: (self, codecContext, data, errorHandler) => callThen(self.executeCheck(data, errorHandler), (result) => {
|
|
13
13
|
if (result === ErrorSymbol) return ErrorSymbol;
|
|
14
14
|
const codec = codecContext.get(self.definition.type.fundamentalType);
|
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
const require_callThen = require("../../../common/callThen.cjs");
|
|
2
|
+
const require_memo = require("../../../common/memo.cjs");
|
|
2
3
|
const require_kind = require("../../kind.cjs");
|
|
3
4
|
const require_resultSymbol = require("../../common/resultSymbol.cjs");
|
|
4
|
-
const
|
|
5
|
-
const require_base = require("../base.cjs");
|
|
5
|
+
const require_base = require("../../common/error/base.cjs");
|
|
6
|
+
const require_base$1 = require("../base.cjs");
|
|
6
7
|
const require_identifier = require("../identifier.cjs");
|
|
8
|
+
const require_lazy = require("./lazy.cjs");
|
|
7
9
|
//#region scripts/dataStructure/structure/defaults/union.ts
|
|
8
10
|
const unionStructureKind = require_kind.createKind("union-structure");
|
|
9
|
-
const UnionStructure = require_base.createStructure(unionStructureKind, ({ init }) => (values, constraints) => init({
|
|
10
|
-
values:
|
|
11
|
+
const UnionStructure = require_base$1.createStructure(unionStructureKind, ({ init }) => (values, constraints) => init({
|
|
12
|
+
values: require_memo.memo(() => values.flatMap((value) => (function flatUnion(structure) {
|
|
13
|
+
if (require_identifier.structureIdentifier(structure, unionStructureKind)) return structure.definition.values.value.flatMap(flatUnion);
|
|
14
|
+
if (require_identifier.structureIdentifier(structure, require_lazy.lazyStructureKind)) return flatUnion(structure.definition.getter.value);
|
|
15
|
+
return structure;
|
|
16
|
+
})(value))),
|
|
11
17
|
constraints
|
|
12
18
|
}, {
|
|
13
19
|
executeCheck: (self, data, errorHandler) => {
|
|
14
20
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
15
|
-
const result = self.definition.values.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
21
|
+
const result = self.definition.values.value.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
16
22
|
if (awaitedAccumulator === require_resultSymbol.SuccessSymbol) return awaitedAccumulator;
|
|
17
|
-
const subErrorHandler = errorHandler === void 0 ? void 0 :
|
|
18
|
-
if (
|
|
19
|
-
subErrorHandler().usePath(errorHandler().currentPath);
|
|
23
|
+
const subErrorHandler = errorHandler === void 0 ? void 0 : require_base.createGetErrorHandler(errorHandler().currentPath);
|
|
24
|
+
if (errorHandlers && subErrorHandler) {
|
|
20
25
|
subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
|
|
21
26
|
errorHandlers.push(subErrorHandler);
|
|
22
27
|
}
|
|
@@ -25,6 +30,7 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
|
|
|
25
30
|
return require_callThen.callThen(result, (awaitedResult) => {
|
|
26
31
|
if (awaitedResult === require_resultSymbol.ErrorSymbol) {
|
|
27
32
|
if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
|
|
33
|
+
errorHandler?.().addIssue(self, data);
|
|
28
34
|
return require_resultSymbol.ErrorSymbol;
|
|
29
35
|
}
|
|
30
36
|
return require_resultSymbol.SuccessSymbol;
|
|
@@ -32,11 +38,10 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
|
|
|
32
38
|
},
|
|
33
39
|
executeEncode: (self, codec, data, errorHandler) => {
|
|
34
40
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
35
|
-
const encodedData = self.definition.values.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
41
|
+
const encodedData = self.definition.values.value.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
36
42
|
if (awaitedAccumulator !== require_resultSymbol.ErrorSymbol) return awaitedAccumulator;
|
|
37
|
-
const subErrorHandler = errorHandler === void 0 ? void 0 :
|
|
38
|
-
if (
|
|
39
|
-
subErrorHandler().usePath(errorHandler().currentPath);
|
|
43
|
+
const subErrorHandler = errorHandler === void 0 ? void 0 : require_base.createGetErrorHandler(errorHandler().currentPath);
|
|
44
|
+
if (errorHandlers && subErrorHandler) {
|
|
40
45
|
subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
|
|
41
46
|
errorHandlers.push(subErrorHandler);
|
|
42
47
|
}
|
|
@@ -45,6 +50,7 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
|
|
|
45
50
|
return require_callThen.callThen(encodedData, (awaitedEncodedData) => {
|
|
46
51
|
if (awaitedEncodedData === require_resultSymbol.ErrorSymbol) {
|
|
47
52
|
if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
|
|
53
|
+
errorHandler?.().addIssue(self, data);
|
|
48
54
|
return require_resultSymbol.ErrorSymbol;
|
|
49
55
|
}
|
|
50
56
|
return require_callThen.callThen(self.executeConstraints(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedEncodedData);
|
|
@@ -52,11 +58,10 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
|
|
|
52
58
|
},
|
|
53
59
|
executeDecode: (self, codec, data, errorHandler) => {
|
|
54
60
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
55
|
-
const decodedData = self.definition.values.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
61
|
+
const decodedData = self.definition.values.value.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
|
|
56
62
|
if (awaitedAccumulator !== require_resultSymbol.ErrorSymbol) return awaitedAccumulator;
|
|
57
|
-
const subErrorHandler = errorHandler === void 0 ? void 0 :
|
|
58
|
-
if (
|
|
59
|
-
subErrorHandler().usePath(errorHandler().currentPath);
|
|
63
|
+
const subErrorHandler = errorHandler === void 0 ? void 0 : require_base.createGetErrorHandler(errorHandler().currentPath);
|
|
64
|
+
if (errorHandlers && subErrorHandler) {
|
|
60
65
|
subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
|
|
61
66
|
errorHandlers.push(subErrorHandler);
|
|
62
67
|
}
|
|
@@ -65,12 +70,13 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
|
|
|
65
70
|
return require_callThen.callThen(decodedData, (awaitedDecodedData) => {
|
|
66
71
|
if (awaitedDecodedData === require_resultSymbol.ErrorSymbol) {
|
|
67
72
|
if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
|
|
73
|
+
errorHandler?.().addIssue(self, data);
|
|
68
74
|
return require_resultSymbol.ErrorSymbol;
|
|
69
75
|
}
|
|
70
76
|
return require_callThen.callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedDecodedData);
|
|
71
77
|
});
|
|
72
78
|
},
|
|
73
|
-
isAsynchronous: (self) => self.definition.values.some((value) => value.isAsynchronous())
|
|
79
|
+
isAsynchronous: (self) => self.definition.values.value.some((value) => value.isAsynchronous())
|
|
74
80
|
}));
|
|
75
81
|
//#endregion
|
|
76
82
|
exports.UnionStructure = UnionStructure;
|
|
@@ -5,8 +5,8 @@ import type * as DKind from '../../../kind';
|
|
|
5
5
|
import * as DCommon from '../../../common';
|
|
6
6
|
export declare const unionStructureKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/union-structure", unknown>>;
|
|
7
7
|
export interface UnionStructureDefinition<GenericConstraints extends readonly Constraint[] = readonly Constraint[]> extends StructureDefinition<GenericConstraints> {
|
|
8
|
-
readonly values: DCommon.AnyTuple<Structure
|
|
8
|
+
readonly values: DCommon.Memoized<DCommon.AnyTuple<Structure>>;
|
|
9
9
|
}
|
|
10
|
-
export interface UnionStructure<GenericValue extends unknown = unknown, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.
|
|
10
|
+
export interface UnionStructure<out GenericValue extends unknown = unknown, out GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.Forward<Structure<GenericValue, UnionStructureDefinition<GenericConstraints>> & DKind.Kind<typeof unionStructureKind>> {
|
|
11
11
|
}
|
|
12
|
-
export declare const UnionStructure: <GenericValues extends DCommon.AnyTuple<Structure>, const GenericConstraints extends readonly Constraint<StructureValue<GenericValues[number]>>[]>(values: GenericValues, constraints: GenericConstraints) => UnionStructure<StructureValue<GenericValues[number]>, readonly [...GenericConstraints]
|
|
12
|
+
export declare const UnionStructure: <GenericValues extends DCommon.AnyTuple<Structure>, const GenericConstraints extends readonly Constraint<StructureValue<GenericValues[number]>>[]>(values: GenericValues, constraints: GenericConstraints) => NoInfer<UnionStructure<StructureValue<GenericValues[number]>, readonly [...GenericConstraints]>>;
|
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
import { callThen } from "../../../common/callThen.mjs";
|
|
2
|
+
import { memo } from "../../../common/memo.mjs";
|
|
2
3
|
import { createKind } from "../../kind.mjs";
|
|
3
4
|
import { ErrorSymbol, SuccessSymbol } from "../../common/resultSymbol.mjs";
|
|
4
|
-
import { createGetErrorHandler } from "../../common/error.mjs";
|
|
5
|
+
import { createGetErrorHandler } from "../../common/error/base.mjs";
|
|
5
6
|
import { createStructure } from "../base.mjs";
|
|
6
7
|
import { structureIdentifier } from "../identifier.mjs";
|
|
8
|
+
import { lazyStructureKind } from "./lazy.mjs";
|
|
7
9
|
//#region scripts/dataStructure/structure/defaults/union.ts
|
|
8
10
|
const unionStructureKind = createKind("union-structure");
|
|
9
11
|
const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values, constraints) => init({
|
|
10
|
-
values: values.flatMap((value) =>
|
|
12
|
+
values: memo(() => values.flatMap((value) => (function flatUnion(structure) {
|
|
13
|
+
if (structureIdentifier(structure, unionStructureKind)) return structure.definition.values.value.flatMap(flatUnion);
|
|
14
|
+
if (structureIdentifier(structure, lazyStructureKind)) return flatUnion(structure.definition.getter.value);
|
|
15
|
+
return structure;
|
|
16
|
+
})(value))),
|
|
11
17
|
constraints
|
|
12
18
|
}, {
|
|
13
19
|
executeCheck: (self, data, errorHandler) => {
|
|
14
20
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
15
|
-
const result = self.definition.values.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
|
|
21
|
+
const result = self.definition.values.value.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
|
|
16
22
|
if (awaitedAccumulator === SuccessSymbol) return awaitedAccumulator;
|
|
17
|
-
const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler();
|
|
18
|
-
if (
|
|
19
|
-
subErrorHandler().usePath(errorHandler().currentPath);
|
|
23
|
+
const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler(errorHandler().currentPath);
|
|
24
|
+
if (errorHandlers && subErrorHandler) {
|
|
20
25
|
subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
|
|
21
26
|
errorHandlers.push(subErrorHandler);
|
|
22
27
|
}
|
|
@@ -25,6 +30,7 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
|
|
|
25
30
|
return callThen(result, (awaitedResult) => {
|
|
26
31
|
if (awaitedResult === ErrorSymbol) {
|
|
27
32
|
if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
|
|
33
|
+
errorHandler?.().addIssue(self, data);
|
|
28
34
|
return ErrorSymbol;
|
|
29
35
|
}
|
|
30
36
|
return SuccessSymbol;
|
|
@@ -32,11 +38,10 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
|
|
|
32
38
|
},
|
|
33
39
|
executeEncode: (self, codec, data, errorHandler) => {
|
|
34
40
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
35
|
-
const encodedData = self.definition.values.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
|
|
41
|
+
const encodedData = self.definition.values.value.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
|
|
36
42
|
if (awaitedAccumulator !== ErrorSymbol) return awaitedAccumulator;
|
|
37
|
-
const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler();
|
|
38
|
-
if (
|
|
39
|
-
subErrorHandler().usePath(errorHandler().currentPath);
|
|
43
|
+
const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler(errorHandler().currentPath);
|
|
44
|
+
if (errorHandlers && subErrorHandler) {
|
|
40
45
|
subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
|
|
41
46
|
errorHandlers.push(subErrorHandler);
|
|
42
47
|
}
|
|
@@ -45,6 +50,7 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
|
|
|
45
50
|
return callThen(encodedData, (awaitedEncodedData) => {
|
|
46
51
|
if (awaitedEncodedData === ErrorSymbol) {
|
|
47
52
|
if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
|
|
53
|
+
errorHandler?.().addIssue(self, data);
|
|
48
54
|
return ErrorSymbol;
|
|
49
55
|
}
|
|
50
56
|
return callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData);
|
|
@@ -52,11 +58,10 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
|
|
|
52
58
|
},
|
|
53
59
|
executeDecode: (self, codec, data, errorHandler) => {
|
|
54
60
|
const errorHandlers = errorHandler ? [] : void 0;
|
|
55
|
-
const decodedData = self.definition.values.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
|
|
61
|
+
const decodedData = self.definition.values.value.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
|
|
56
62
|
if (awaitedAccumulator !== ErrorSymbol) return awaitedAccumulator;
|
|
57
|
-
const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler();
|
|
58
|
-
if (
|
|
59
|
-
subErrorHandler().usePath(errorHandler().currentPath);
|
|
63
|
+
const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler(errorHandler().currentPath);
|
|
64
|
+
if (errorHandlers && subErrorHandler) {
|
|
60
65
|
subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
|
|
61
66
|
errorHandlers.push(subErrorHandler);
|
|
62
67
|
}
|
|
@@ -65,12 +70,13 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
|
|
|
65
70
|
return callThen(decodedData, (awaitedDecodedData) => {
|
|
66
71
|
if (awaitedDecodedData === ErrorSymbol) {
|
|
67
72
|
if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
|
|
73
|
+
errorHandler?.().addIssue(self, data);
|
|
68
74
|
return ErrorSymbol;
|
|
69
75
|
}
|
|
70
76
|
return callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData);
|
|
71
77
|
});
|
|
72
78
|
},
|
|
73
|
-
isAsynchronous: (self) => self.definition.values.some((value) => value.isAsynchronous())
|
|
79
|
+
isAsynchronous: (self) => self.definition.values.value.some((value) => value.isAsynchronous())
|
|
74
80
|
}));
|
|
75
81
|
//#endregion
|
|
76
82
|
export { UnionStructure, unionStructureKind };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Structure } from './base';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
2
|
+
import { Structures } from './types';
|
|
3
|
+
import * as DKind from '../../kind';
|
|
4
|
+
export declare const structureIdentifier: DKind.KindIdentifier<Structure<unknown, import('..').StructureDefinition<readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>>, Structures>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ConstraintValue, Constraint } from '../../constraint';
|
|
2
2
|
import type * as DCommon from '../../../common';
|
|
3
|
-
export type StructureConstraintsValue<GenericConstraints extends Constraint> = DCommon.NeverCoalescing<Extract<DCommon.UnionToIntersection<GenericConstraints extends Constraint ? {
|
|
3
|
+
export type StructureConstraintsValue<GenericConstraints extends Constraint> = DCommon.IsNever<GenericConstraints> extends true ? unknown : DCommon.NeverCoalescing<Extract<DCommon.UnionToIntersection<GenericConstraints extends Constraint ? {
|
|
4
4
|
value: ConstraintValue<GenericConstraints>;
|
|
5
5
|
} : never>, {
|
|
6
6
|
value: unknown;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Structure } from '../base';
|
|
2
|
-
import { ObjectStructure, ArrayStructure, LazyStructure, RecordStructure, UnionStructure, TypeStructure } from '../defaults';
|
|
2
|
+
import { ObjectStructure, ArrayStructure, LazyStructure, RecordStructure, UnionStructure, TypeStructure, NonEncodableStringStructure } from '../defaults';
|
|
3
3
|
export interface StructuresStore {
|
|
4
4
|
base: Structure;
|
|
5
5
|
array: ArrayStructure;
|
|
@@ -8,5 +8,6 @@ export interface StructuresStore {
|
|
|
8
8
|
record: RecordStructure;
|
|
9
9
|
union: UnionStructure;
|
|
10
10
|
type: TypeStructure;
|
|
11
|
+
nonEncodableString: NonEncodableStringStructure;
|
|
11
12
|
}
|
|
12
13
|
export type Structures = Extract<StructuresStore[keyof StructuresStore], Structure>;
|
|
@@ -2,4 +2,4 @@ import { structureKind, Structure } from '../base';
|
|
|
2
2
|
import { StructureConstraintsValue } from './constraintsValue';
|
|
3
3
|
import type * as DKind from '../../../kind';
|
|
4
4
|
export type StructureValue<GenericStructure extends Structure> = DKind.GetValue<typeof structureKind, GenericStructure>;
|
|
5
|
-
export type StructureInitialValue<GenericStructure extends Structure
|
|
5
|
+
export type StructureInitialValue<GenericStructure extends Structure, GenericStructureValue = StructureValue<GenericStructure>> = GenericStructureValue extends unknown ? GenericStructureValue extends (infer InferredInitialValue) & StructureConstraintsValue<GenericStructure["definition"]["constraints"][number]> ? InferredInitialValue : GenericStructureValue : never;
|
|
@@ -1,20 +1,33 @@
|
|
|
1
1
|
const require_callThen = require("../../common/callThen.cjs");
|
|
2
|
+
const require_simpleClone = require("../../common/simpleClone.cjs");
|
|
2
3
|
const require_kind = require("../kind.cjs");
|
|
3
4
|
const require_resultSymbol = require("../common/resultSymbol.cjs");
|
|
4
5
|
//#region scripts/dataStructure/type/base.ts
|
|
5
6
|
const typeKind = require_kind.createKind("type");
|
|
6
7
|
function createType(fundamentalType, kindHandler, createConstructor) {
|
|
7
|
-
|
|
8
|
+
const init = (definition, { executeCheck, isAsynchronous }) => {
|
|
8
9
|
const self = {
|
|
10
|
+
fundamentalType,
|
|
9
11
|
definition,
|
|
10
|
-
executeCheck: (data
|
|
12
|
+
executeCheck: (data) => require_callThen.callThen(self.fundamentalType.executeCheck(data), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : executeCheck(self, data)),
|
|
11
13
|
isAsynchronous: () => isAsynchronous(self),
|
|
12
|
-
|
|
14
|
+
clone: () => init(require_simpleClone.simpleClone(definition), {
|
|
15
|
+
executeCheck,
|
|
16
|
+
isAsynchronous
|
|
17
|
+
}),
|
|
18
|
+
setMessage: (message) => {
|
|
19
|
+
self.definition.message = message;
|
|
20
|
+
return self;
|
|
21
|
+
},
|
|
22
|
+
addMessage: (message) => {
|
|
23
|
+
return self.clone().setMessage(message);
|
|
24
|
+
},
|
|
13
25
|
[typeKind.runTimeKey]: null,
|
|
14
26
|
[kindHandler.runTimeKey]: null
|
|
15
27
|
};
|
|
16
28
|
return self;
|
|
17
|
-
}
|
|
29
|
+
};
|
|
30
|
+
return createConstructor({ init });
|
|
18
31
|
}
|
|
19
32
|
//#endregion
|
|
20
33
|
exports.createType = createType;
|
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
import { FundamentalType, FundamentalTypeValue } from '../fundamentalType';
|
|
2
|
-
import { ErrorSymbol,
|
|
2
|
+
import { ErrorSymbol, SuccessSymbol } from '../common';
|
|
3
3
|
import type * as DKind from '../../kind';
|
|
4
4
|
import * as DCommon from '../../common';
|
|
5
5
|
export declare const typeKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/type", unknown>>;
|
|
6
6
|
export interface TypeDefinition {
|
|
7
|
+
readonly message?: string;
|
|
7
8
|
}
|
|
8
9
|
export interface Type<GenericFundamentalType extends FundamentalType = FundamentalType, GenericValue extends FundamentalTypeValue<GenericFundamentalType> = FundamentalTypeValue<GenericFundamentalType>, GenericDefinition extends TypeDefinition = TypeDefinition> extends DKind.Kind<typeof typeKind, GenericValue> {
|
|
9
10
|
readonly fundamentalType: GenericFundamentalType;
|
|
10
11
|
readonly definition: GenericDefinition;
|
|
11
|
-
executeCheck(data: unknown
|
|
12
|
+
executeCheck(data: unknown): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
|
|
12
13
|
isAsynchronous(): boolean;
|
|
14
|
+
clone(): this;
|
|
15
|
+
setMessage(massage: string): this;
|
|
16
|
+
addMessage(massage: string): this;
|
|
13
17
|
}
|
|
14
18
|
export interface CreateTypeInitParams<GenericType extends Type = Type, GenericFundamentalType extends FundamentalType = FundamentalType> {
|
|
15
|
-
executeCheck(self: GenericType, data: FundamentalTypeValue<GenericFundamentalType
|
|
19
|
+
executeCheck(self: GenericType, data: FundamentalTypeValue<GenericFundamentalType>): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
|
|
16
20
|
isAsynchronous(self: GenericType): boolean;
|
|
17
21
|
}
|
|
18
22
|
export interface CreateTypeConstructorParams<GenericFundamentalType extends FundamentalType = FundamentalType, GenericKindHandler extends DKind.Handler = DKind.Handler> {
|
|
@@ -1,20 +1,33 @@
|
|
|
1
1
|
import { callThen } from "../../common/callThen.mjs";
|
|
2
|
+
import { simpleClone } from "../../common/simpleClone.mjs";
|
|
2
3
|
import { createKind } from "../kind.mjs";
|
|
3
4
|
import { ErrorSymbol } from "../common/resultSymbol.mjs";
|
|
4
5
|
//#region scripts/dataStructure/type/base.ts
|
|
5
6
|
const typeKind = createKind("type");
|
|
6
7
|
function createType(fundamentalType, kindHandler, createConstructor) {
|
|
7
|
-
|
|
8
|
+
const init = (definition, { executeCheck, isAsynchronous }) => {
|
|
8
9
|
const self = {
|
|
10
|
+
fundamentalType,
|
|
9
11
|
definition,
|
|
10
|
-
executeCheck: (data
|
|
12
|
+
executeCheck: (data) => callThen(self.fundamentalType.executeCheck(data), (result) => result === ErrorSymbol ? ErrorSymbol : executeCheck(self, data)),
|
|
11
13
|
isAsynchronous: () => isAsynchronous(self),
|
|
12
|
-
|
|
14
|
+
clone: () => init(simpleClone(definition), {
|
|
15
|
+
executeCheck,
|
|
16
|
+
isAsynchronous
|
|
17
|
+
}),
|
|
18
|
+
setMessage: (message) => {
|
|
19
|
+
self.definition.message = message;
|
|
20
|
+
return self;
|
|
21
|
+
},
|
|
22
|
+
addMessage: (message) => {
|
|
23
|
+
return self.clone().setMessage(message);
|
|
24
|
+
},
|
|
13
25
|
[typeKind.runTimeKey]: null,
|
|
14
26
|
[kindHandler.runTimeKey]: null
|
|
15
27
|
};
|
|
16
28
|
return self;
|
|
17
|
-
}
|
|
29
|
+
};
|
|
30
|
+
return createConstructor({ init });
|
|
18
31
|
}
|
|
19
32
|
//#endregion
|
|
20
33
|
export { createType, typeKind };
|
|
@@ -5,6 +5,6 @@ import * as FundamentalType from "../../fundamentalType";
|
|
|
5
5
|
export declare const bigintTypeKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/bigint-type", unknown>>;
|
|
6
6
|
export interface BigintTypeDefinition extends TypeDefinition {
|
|
7
7
|
}
|
|
8
|
-
export interface BigintType extends DCommon.
|
|
8
|
+
export interface BigintType extends DCommon.Forward<Type<FundamentalType.TheBigint, bigint, BigintTypeDefinition> & DKind.Kind<typeof bigintTypeKind>> {
|
|
9
9
|
}
|
|
10
10
|
export declare const BigintType: () => BigintType;
|