@duplojs/lang 0.0.1-beta.9 → 0.1.0-beta.1

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.
Files changed (212) hide show
  1. package/dist/array/concat.d.ts +2 -2
  2. package/dist/array/flat.d.ts +1 -1
  3. package/dist/array/flatMap.d.ts +2 -2
  4. package/dist/array/from.d.ts +1 -1
  5. package/dist/array/length.d.ts +3 -2
  6. package/dist/array/push.d.ts +4 -2
  7. package/dist/chrono/createDate.cjs +1 -1
  8. package/dist/chrono/createDate.mjs +1 -1
  9. package/dist/chrono/operators/addTime.d.ts +2 -4
  10. package/dist/common/constraint/cast/index.d.ts +4 -4
  11. package/dist/common/constraint/cast/string.d.ts +4 -0
  12. package/dist/common/constraint/infer/index.d.ts +2 -1
  13. package/dist/common/constraint/infer/string.d.ts +1 -1
  14. package/dist/common/constraint/types/index.d.ts +1 -0
  15. package/dist/common/constraint/types/maybe.d.ts +2 -0
  16. package/dist/common/formData.d.ts +2 -1
  17. package/dist/common/memo.cjs +3 -2
  18. package/dist/common/memo.mjs +3 -2
  19. package/dist/common/memoPromise.cjs +3 -2
  20. package/dist/common/memoPromise.mjs +3 -2
  21. package/dist/common/timeout.cjs +2 -2
  22. package/dist/common/timeout.d.ts +1 -1
  23. package/dist/common/timeout.mjs +2 -2
  24. package/dist/common/types/applyPromiseIf.d.ts +1 -0
  25. package/dist/common/types/index.d.ts +1 -0
  26. package/dist/common/types/json.d.ts +12 -1
  27. package/dist/dataStructure/common/codec/defaults/string.cjs +1 -1
  28. package/dist/dataStructure/common/codec/defaults/string.d.ts +1 -1
  29. package/dist/dataStructure/common/codec/defaults/string.mjs +1 -1
  30. package/dist/dataStructure/common/{error.cjs → error/base.cjs} +18 -3
  31. package/dist/dataStructure/common/{error.d.ts → error/base.d.ts} +14 -7
  32. package/dist/dataStructure/common/{error.mjs → error/base.mjs} +17 -4
  33. package/dist/dataStructure/common/error/defaultInterpreter.cjs +87 -0
  34. package/dist/dataStructure/common/error/defaultInterpreter.d.ts +60 -0
  35. package/dist/dataStructure/common/error/defaultInterpreter.mjs +86 -0
  36. package/dist/dataStructure/common/error/index.d.ts +3 -0
  37. package/dist/dataStructure/common/{errorInterpreter.cjs → error/interpreter.cjs} +11 -12
  38. package/dist/dataStructure/common/error/interpreter.d.ts +32 -0
  39. package/dist/dataStructure/common/{errorInterpreter.mjs → error/interpreter.mjs} +9 -10
  40. package/dist/dataStructure/common/index.d.ts +0 -1
  41. package/dist/dataStructure/constraint/types/constraints.d.ts +1 -0
  42. package/dist/dataStructure/fundamentalType/types/fundamentalTypes.d.ts +1 -0
  43. package/dist/dataStructure/helpers/extend.cjs +1 -1
  44. package/dist/dataStructure/helpers/extend.d.ts +1 -1
  45. package/dist/dataStructure/helpers/extend.mjs +1 -1
  46. package/dist/dataStructure/helpers/index.d.ts +1 -0
  47. package/dist/dataStructure/helpers/partial.cjs +1 -1
  48. package/dist/dataStructure/helpers/partial.mjs +1 -1
  49. package/dist/dataStructure/helpers/required.cjs +1 -1
  50. package/dist/dataStructure/helpers/required.mjs +1 -1
  51. package/dist/dataStructure/helpers/typeStructureIdentifier.cjs +14 -0
  52. package/dist/dataStructure/helpers/typeStructureIdentifier.d.ts +6 -0
  53. package/dist/dataStructure/helpers/typeStructureIdentifier.mjs +14 -0
  54. package/dist/dataStructure/index.cjs +45 -33
  55. package/dist/dataStructure/index.mjs +10 -3
  56. package/dist/dataStructure/structure/base.cjs +31 -19
  57. package/dist/dataStructure/structure/base.d.ts +16 -16
  58. package/dist/dataStructure/structure/base.mjs +25 -13
  59. package/dist/dataStructure/structure/defaults/array.cjs +10 -0
  60. package/dist/dataStructure/structure/defaults/array.mjs +10 -0
  61. package/dist/dataStructure/structure/defaults/lazy.cjs +1 -0
  62. package/dist/dataStructure/structure/defaults/lazy.mjs +1 -0
  63. package/dist/dataStructure/structure/defaults/nonEncodableString.cjs +1 -0
  64. package/dist/dataStructure/structure/defaults/nonEncodableString.mjs +1 -0
  65. package/dist/dataStructure/structure/defaults/object.cjs +18 -7
  66. package/dist/dataStructure/structure/defaults/object.d.ts +2 -1
  67. package/dist/dataStructure/structure/defaults/object.mjs +18 -7
  68. package/dist/dataStructure/structure/defaults/record.cjs +20 -7
  69. package/dist/dataStructure/structure/defaults/record.mjs +20 -7
  70. package/dist/dataStructure/structure/defaults/type.cjs +1 -0
  71. package/dist/dataStructure/structure/defaults/type.mjs +1 -0
  72. package/dist/dataStructure/structure/defaults/union.cjs +26 -6
  73. package/dist/dataStructure/structure/defaults/union.mjs +21 -1
  74. package/dist/dataStructure/structure/types/value.d.ts +2 -0
  75. package/dist/dataStructure/type/types/types.d.ts +1 -0
  76. package/dist/either/index.cjs +1 -1
  77. package/dist/either/index.mjs +1 -1
  78. package/dist/either/left/create.d.ts +2 -1
  79. package/dist/either/left/none.cjs +2 -2
  80. package/dist/either/left/none.d.ts +2 -2
  81. package/dist/either/left/none.mjs +2 -2
  82. package/dist/either/right/create.d.ts +2 -1
  83. package/dist/either/types/index.d.ts +1 -0
  84. package/dist/either/types/mayBe.d.ts +1 -1
  85. package/dist/invocation/evidence.d.ts +1 -1
  86. package/dist/invocation/flow/base.cjs +4 -4
  87. package/dist/invocation/flow/base.d.ts +1 -1
  88. package/dist/invocation/flow/base.mjs +4 -4
  89. package/dist/invocation/flow/controller/defaults/debounce.cjs +1 -1
  90. package/dist/invocation/flow/controller/defaults/debounce.mjs +1 -1
  91. package/dist/invocation/flow/controller/defaults/throttling.cjs +1 -1
  92. package/dist/invocation/flow/controller/defaults/throttling.mjs +1 -1
  93. package/dist/invocation/index.cjs +10 -0
  94. package/dist/invocation/index.d.ts +2 -0
  95. package/dist/invocation/index.mjs +7 -1
  96. package/dist/invocation/reader.cjs +5 -1
  97. package/dist/invocation/reader.d.ts +5 -3
  98. package/dist/invocation/reader.mjs +5 -1
  99. package/dist/invocation/resolver.cjs +31 -0
  100. package/dist/invocation/resolver.d.ts +14 -0
  101. package/dist/invocation/resolver.mjs +31 -0
  102. package/dist/invocation/signature.cjs +8 -0
  103. package/dist/invocation/signature.d.ts +7 -0
  104. package/dist/invocation/signature.mjs +8 -0
  105. package/dist/modeling/entity/base.cjs +19 -25
  106. package/dist/modeling/entity/base.d.ts +15 -14
  107. package/dist/modeling/entity/base.mjs +14 -19
  108. package/dist/modeling/entity/helper.d.ts +6 -8
  109. package/dist/modeling/entity/namespace.cjs +0 -2
  110. package/dist/modeling/entity/namespace.d.ts +0 -2
  111. package/dist/modeling/entity/namespace.mjs +0 -2
  112. package/dist/modeling/fact/base.cjs +36 -0
  113. package/dist/modeling/fact/base.d.ts +29 -0
  114. package/dist/modeling/fact/base.mjs +35 -0
  115. package/dist/modeling/fact/index.d.ts +1 -0
  116. package/dist/modeling/flag/base.cjs +1 -1
  117. package/dist/modeling/flag/base.d.ts +8 -8
  118. package/dist/modeling/flag/base.mjs +1 -1
  119. package/dist/modeling/index.cjs +17 -18
  120. package/dist/modeling/index.d.ts +1 -0
  121. package/dist/modeling/index.mjs +8 -8
  122. package/dist/modeling/newType/base.cjs +11 -28
  123. package/dist/modeling/newType/base.d.ts +8 -15
  124. package/dist/modeling/newType/base.mjs +5 -20
  125. package/dist/modeling/taggedObject/base.cjs +19 -25
  126. package/dist/modeling/taggedObject/base.d.ts +12 -14
  127. package/dist/modeling/taggedObject/base.mjs +14 -19
  128. package/dist/object/assign.d.ts +3 -3
  129. package/dist/object/deepOverride.cjs +33 -0
  130. package/dist/object/deepOverride.d.ts +20 -0
  131. package/dist/object/deepOverride.mjs +33 -0
  132. package/dist/object/entries.d.ts +3 -3
  133. package/dist/object/index.cjs +4 -1
  134. package/dist/object/index.d.ts +1 -0
  135. package/dist/object/index.mjs +4 -2
  136. package/dist/object/isSimple.cjs +1 -1
  137. package/dist/object/isSimple.mjs +1 -1
  138. package/dist/object/keys.d.ts +1 -1
  139. package/dist/object/override.cjs +1 -1
  140. package/dist/object/override.d.ts +5 -2
  141. package/dist/object/override.mjs +1 -1
  142. package/dist/object/types/assign.d.ts +2 -0
  143. package/dist/object/types/forbiddenKey.d.ts +1 -1
  144. package/dist/object/types/hasKeySignature.d.ts +1 -0
  145. package/dist/object/types/index.d.ts +4 -1
  146. package/dist/object/types/keyofWithoutSignature.d.ts +3 -0
  147. package/dist/object/types/override.d.ts +4 -0
  148. package/dist/object/values.d.ts +1 -1
  149. package/dist/path/create.cjs +11 -0
  150. package/dist/path/create.d.ts +3 -0
  151. package/dist/path/create.mjs +11 -0
  152. package/dist/path/createAbsolute.cjs +12 -0
  153. package/dist/path/createAbsolute.d.ts +3 -0
  154. package/dist/path/createAbsolute.mjs +12 -0
  155. package/dist/path/createAbsoluteOrThrow.cjs +22 -0
  156. package/dist/path/createAbsoluteOrThrow.d.ts +9 -0
  157. package/dist/path/createAbsoluteOrThrow.mjs +21 -0
  158. package/dist/path/createOrThrow.cjs +22 -0
  159. package/dist/path/createOrThrow.d.ts +9 -0
  160. package/dist/path/createOrThrow.mjs +21 -0
  161. package/dist/path/createSegment.cjs +12 -0
  162. package/dist/path/createSegment.d.ts +3 -0
  163. package/dist/path/createSegment.mjs +12 -0
  164. package/dist/path/createSegmentOrThrow.cjs +22 -0
  165. package/dist/path/createSegmentOrThrow.d.ts +9 -0
  166. package/dist/path/createSegmentOrThrow.mjs +21 -0
  167. package/dist/path/declareAbsolutePath.cjs +6 -0
  168. package/dist/path/declareAbsolutePath.d.ts +3 -0
  169. package/dist/path/declareAbsolutePath.mjs +6 -0
  170. package/dist/path/declarePath.cjs +6 -0
  171. package/dist/path/declarePath.d.ts +3 -0
  172. package/dist/path/declarePath.mjs +6 -0
  173. package/dist/path/declareSegment.cjs +6 -0
  174. package/dist/path/declareSegment.d.ts +3 -0
  175. package/dist/path/declareSegment.mjs +6 -0
  176. package/dist/path/index.cjs +39 -3
  177. package/dist/path/index.d.ts +10 -0
  178. package/dist/path/index.mjs +27 -4
  179. package/dist/path/kind.cjs +4 -0
  180. package/dist/path/kind.d.ts +2 -0
  181. package/dist/path/kind.mjs +5 -0
  182. package/dist/pattern/index.cjs +6 -0
  183. package/dist/pattern/index.d.ts +2 -0
  184. package/dist/pattern/index.mjs +5 -1
  185. package/dist/pattern/match/builder.cjs +1 -1
  186. package/dist/pattern/match/builder.mjs +1 -1
  187. package/dist/pattern/matchWithEntityOtherwise.d.ts +2 -2
  188. package/dist/pattern/matchWithFact.cjs +12 -0
  189. package/dist/pattern/matchWithFact.d.ts +12 -0
  190. package/dist/pattern/matchWithFact.mjs +12 -0
  191. package/dist/pattern/matchWithFactOtherwise.cjs +13 -0
  192. package/dist/pattern/matchWithFactOtherwise.d.ts +14 -0
  193. package/dist/pattern/matchWithFactOtherwise.mjs +13 -0
  194. package/dist/pattern/matchWithNumberOtherwise.d.ts +2 -2
  195. package/dist/pattern/matchWithStringOtherwise.d.ts +2 -2
  196. package/dist/pattern/matchWithTaggedObjectOtherwise.d.ts +2 -2
  197. package/dist/pattern/types/complexUnMatchedValue/getIncompleteUnion.d.ts +8 -8
  198. package/dist/string/capitalize.d.ts +1 -1
  199. package/dist/string/concat.d.ts +2 -2
  200. package/dist/string/prepend.d.ts +2 -2
  201. package/dist/string/split.cjs +1 -0
  202. package/dist/string/split.d.ts +3 -3
  203. package/dist/string/split.mjs +1 -0
  204. package/dist/string/toLowerCase.d.ts +1 -1
  205. package/dist/string/toUpperCase.d.ts +1 -1
  206. package/dist/string/types/IsAllowedString.d.ts +4 -2
  207. package/dist/string/uncapitalize.d.ts +1 -1
  208. package/dist/tuple/types/map.d.ts +1 -1
  209. package/package.json +16 -30
  210. package/dist/dataStructure/common/errorInterpreter.d.ts +0 -36
  211. package/dist/object/types/assignObjects.d.ts +0 -2
  212. /package/{README.md → README} +0 -0
@@ -14,8 +14,9 @@ import { TheUndefined, undefinedFundamentalTypeKind } from "./fundamentalType/de
14
14
  import { fundamentalTypeIdentifier } from "./fundamentalType/identifier.mjs";
15
15
  import { codecsJson } from "./common/codec/defaults/json.mjs";
16
16
  import { codecsString } from "./common/codec/defaults/string.mjs";
17
- import { createErrorHandler, createGetErrorHandler, decodeIssueKind, encodeIssueKind, issueKind } from "./common/error.mjs";
18
- import { createErrorInterpreter } from "./common/errorInterpreter.mjs";
17
+ import { Error, ErrorPromise, createErrorHandler, createGetErrorHandler, decodeIssueKind, encodeIssueKind, issueKind } from "./common/error/base.mjs";
18
+ import { createErrorInterpreter } from "./common/error/interpreter.mjs";
19
+ import { defaultErrorInterpreterCodecDictionary, defaultErrorInterpreterDataStructureDictionary } from "./common/error/defaultInterpreter.mjs";
19
20
  import { ConstraintBase, constraintKind, createConstraint } from "./constraint/base.mjs";
20
21
  import { AbsolutePathConstraint, absolutePathConstraintKind } from "./constraint/defaults/absolutePath.mjs";
21
22
  import { AllowedCharactersConstraint, allowedCharactersConstraintKind } from "./constraint/defaults/allowedCharacters.mjs";
@@ -130,6 +131,7 @@ import { string } from "./helpers/string.mjs";
130
131
  import { stringLengthEqual } from "./helpers/stringLengthEqual.mjs";
131
132
  import { time } from "./helpers/time.mjs";
132
133
  import { trimmed } from "./helpers/trimmed.mjs";
134
+ import { typeStructureIdentifier } from "./helpers/typeStructureIdentifier.mjs";
133
135
  import { unwrapLazy } from "./helpers/unwrapLazy.mjs";
134
136
  import { url } from "./helpers/url.mjs";
135
137
  import { uuid } from "./helpers/uuid.mjs";
@@ -148,6 +150,8 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
148
150
  ConstraintBase: () => ConstraintBase,
149
151
  DateType: () => DateType,
150
152
  EmailConstraint: () => EmailConstraint,
153
+ Error: () => Error,
154
+ ErrorPromise: () => ErrorPromise,
151
155
  ErrorSymbol: () => ErrorSymbol,
152
156
  EvenConstraint: () => EvenConstraint,
153
157
  GreaterThanConstraint: () => GreaterThanConstraint,
@@ -240,6 +244,8 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
240
244
  dateFundamentalTypeKind: () => dateFundamentalTypeKind,
241
245
  dateTypeKind: () => dateTypeKind,
242
246
  decodeIssueKind: () => decodeIssueKind,
247
+ defaultErrorInterpreterCodecDictionary: () => defaultErrorInterpreterCodecDictionary,
248
+ defaultErrorInterpreterDataStructureDictionary: () => defaultErrorInterpreterDataStructureDictionary,
243
249
  email: () => email,
244
250
  emailConstraintKind: () => emailConstraintKind,
245
251
  encodeIssueKind: () => encodeIssueKind,
@@ -333,6 +339,7 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
333
339
  trimmedConstraintKind: () => trimmedConstraintKind,
334
340
  typeIdentifier: () => typeIdentifier,
335
341
  typeKind: () => typeKind,
342
+ typeStructureIdentifier: () => typeStructureIdentifier,
336
343
  typeStructureKind: () => typeStructureKind,
337
344
  undefined: () => undefinedHelper,
338
345
  undefinedFundamentalTypeKind: () => undefinedFundamentalTypeKind,
@@ -346,4 +353,4 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
346
353
  uuidConstraintKind: () => uuidConstraintKind
347
354
  });
348
355
  //#endregion
349
- export { AbsolutePathConstraint, AllowedCharactersConstraint, ArrayLengthEqualConstraint, ArrayStructure, BetweenThanConstraint, BetweenThanOrEqualConstraint, BigintLiteralType, BigintType, BooleanLiteralType, BooleanType, ConstraintBase, DateType, EmailConstraint, ErrorSymbol, EvenConstraint, GreaterThanConstraint, GreaterThanOrEqualConstraint, IntegerConstraint, LazyStructure, LessThanConstraint, LessThanOrEqualConstraint, MaxCharactersConstraint, MaxElementsConstraint, MinCharactersConstraint, MinElementsConstraint, MultipleOfConstraint, NegativeConstraint, NonEncodableStringStructure, NotEmptyConstraint, NotZeroConstraint, NullType, NumberInStringConstraint, NumberLiteralType, NumberType, ObjectStructure, OddConstraint, PathConstraint, PositiveConstraint, RecordStructure, RefineConstraint, RegexConstraint, SafeConstraint, SegmentPathConstraint, StrictNegativeConstraint, StrictPositiveConstraint, StringLengthEqualConstraint, StringLiteralType, StringType, StructureClass, SuccessSymbol, TheBigint, TheBoolean, TheDate, TheNull, TheNumber, TheString, TheTime, TheUndefined, TimeType, TrimmedConstraint, TypeStructure, UndefinedType, UnionStructure, UrlConstraint, UuidConstraint, absolutePath, absolutePathConstraintKind, allowedCharacters, allowedCharactersConstraintKind, array, arrayLengthEqual, arrayLengthEqualConstraintKind, arrayStructureKind, betweenThan, betweenThanConstraintKind, betweenThanOrEqual, betweenThanOrEqualConstraintKind, bigint, bigintFundamentalTypeKind, bigintLiteralTypeKind, bigintTypeKind, boolean, booleanFundamentalTypeKind, booleanLiteralTypeKind, booleanTypeKind, codecKind, codecsJson, codecsKind, codecsString, constraintIdentifier, constraintKind, createCodec, createCodecs, createConstraint, createErrorHandler, createErrorInterpreter, createFundamentalType, createGetErrorHandler, createKind, createStructure, createType, dataStructure_exports, date, dateFundamentalTypeKind, dateTypeKind, decodeIssueKind, email, emailConstraintKind, encodeIssueKind, even, evenConstraintKind, extend, fundamentalTypeIdentifier, fundamentalTypeKind, greaterThan, greaterThanConstraintKind, greaterThanOrEqual, greaterThanOrEqualConstraintKind, integer, integerConstraintKind, isNullStructure, isNullable, isOptional, isUndefinedStructure, issueKind, lazy, lazyStructureKind, lessThan, lessThanConstraintKind, lessThanOrEqual, lessThanOrEqualConstraintKind, literal, maxCharacters, maxCharactersConstraintKind, maxElements, maxElementsConstraintKind, minCharacters, minCharactersConstraintKind, minElements, minElementsConstraintKind, multipleOf, multipleOfConstraintKind, negative, negativeConstraintKind, nonEncodableStringStructureKind, notEmpty, notEmptyConstraintKind, notZero, notZeroConstraintKind, nullHelper as null, nullFundamentalTypeKind, nullTypeKind, nullable, number, numberFundamentalTypeKind, numberInString, numberInStringConstraintKind, numberLiteralTypeKind, numberTypeKind, object, objectStructureKind, odd, oddConstraintKind, optional, partial, path, pathConstraintKind, positive, positiveConstraintKind, record, recordStructureKind, refine, refineConstraintKind, regex, regexConstraintKind, required, safe, safeConstraintKind, segmentPath, segmentPathConstraintKind, strictNegative, strictNegativeConstraintKind, strictPositive, strictPositiveConstraintKind, string, stringFundamentalTypeKind, stringLengthEqual, stringLengthEqualConstraintKind, stringLiteralTypeKind, stringTypeKind, structureIdentifier, structureKind, time, timeFundamentalTypeKind, timeTypeKind, trimmed, trimmedConstraintKind, typeIdentifier, typeKind, typeStructureKind, undefinedHelper as undefined, undefinedFundamentalTypeKind, undefinedTypeKind, union, unionStructureKind, unwrapLazy, url, urlConstraintKind, uuid, uuidConstraintKind };
356
+ export { AbsolutePathConstraint, AllowedCharactersConstraint, ArrayLengthEqualConstraint, ArrayStructure, BetweenThanConstraint, BetweenThanOrEqualConstraint, BigintLiteralType, BigintType, BooleanLiteralType, BooleanType, ConstraintBase, DateType, EmailConstraint, Error, ErrorPromise, ErrorSymbol, EvenConstraint, GreaterThanConstraint, GreaterThanOrEqualConstraint, IntegerConstraint, LazyStructure, LessThanConstraint, LessThanOrEqualConstraint, MaxCharactersConstraint, MaxElementsConstraint, MinCharactersConstraint, MinElementsConstraint, MultipleOfConstraint, NegativeConstraint, NonEncodableStringStructure, NotEmptyConstraint, NotZeroConstraint, NullType, NumberInStringConstraint, NumberLiteralType, NumberType, ObjectStructure, OddConstraint, PathConstraint, PositiveConstraint, RecordStructure, RefineConstraint, RegexConstraint, SafeConstraint, SegmentPathConstraint, StrictNegativeConstraint, StrictPositiveConstraint, StringLengthEqualConstraint, StringLiteralType, StringType, StructureClass, SuccessSymbol, TheBigint, TheBoolean, TheDate, TheNull, TheNumber, TheString, TheTime, TheUndefined, TimeType, TrimmedConstraint, TypeStructure, UndefinedType, UnionStructure, UrlConstraint, UuidConstraint, absolutePath, absolutePathConstraintKind, allowedCharacters, allowedCharactersConstraintKind, array, arrayLengthEqual, arrayLengthEqualConstraintKind, arrayStructureKind, betweenThan, betweenThanConstraintKind, betweenThanOrEqual, betweenThanOrEqualConstraintKind, bigint, bigintFundamentalTypeKind, bigintLiteralTypeKind, bigintTypeKind, boolean, booleanFundamentalTypeKind, booleanLiteralTypeKind, booleanTypeKind, codecKind, codecsJson, codecsKind, codecsString, constraintIdentifier, constraintKind, createCodec, createCodecs, createConstraint, createErrorHandler, createErrorInterpreter, createFundamentalType, createGetErrorHandler, createKind, createStructure, createType, dataStructure_exports, date, dateFundamentalTypeKind, dateTypeKind, decodeIssueKind, defaultErrorInterpreterCodecDictionary, defaultErrorInterpreterDataStructureDictionary, email, emailConstraintKind, encodeIssueKind, even, evenConstraintKind, extend, fundamentalTypeIdentifier, fundamentalTypeKind, greaterThan, greaterThanConstraintKind, greaterThanOrEqual, greaterThanOrEqualConstraintKind, integer, integerConstraintKind, isNullStructure, isNullable, isOptional, isUndefinedStructure, issueKind, lazy, lazyStructureKind, lessThan, lessThanConstraintKind, lessThanOrEqual, lessThanOrEqualConstraintKind, literal, maxCharacters, maxCharactersConstraintKind, maxElements, maxElementsConstraintKind, minCharacters, minCharactersConstraintKind, minElements, minElementsConstraintKind, multipleOf, multipleOfConstraintKind, negative, negativeConstraintKind, nonEncodableStringStructureKind, notEmpty, notEmptyConstraintKind, notZero, notZeroConstraintKind, nullHelper as null, nullFundamentalTypeKind, nullTypeKind, nullable, number, numberFundamentalTypeKind, numberInString, numberInStringConstraintKind, numberLiteralTypeKind, numberTypeKind, object, objectStructureKind, odd, oddConstraintKind, optional, partial, path, pathConstraintKind, positive, positiveConstraintKind, record, recordStructureKind, refine, refineConstraintKind, regex, regexConstraintKind, required, safe, safeConstraintKind, segmentPath, segmentPathConstraintKind, strictNegative, strictNegativeConstraintKind, strictPositive, strictPositiveConstraintKind, string, stringFundamentalTypeKind, stringLengthEqual, stringLengthEqualConstraintKind, stringLiteralTypeKind, stringTypeKind, structureIdentifier, structureKind, time, timeFundamentalTypeKind, timeTypeKind, trimmed, trimmedConstraintKind, typeIdentifier, typeKind, typeStructureIdentifier, typeStructureKind, undefinedHelper as undefined, undefinedFundamentalTypeKind, undefinedTypeKind, union, unionStructureKind, unwrapLazy, url, urlConstraintKind, uuid, uuidConstraintKind };
@@ -5,7 +5,7 @@ const require_create$1 = require("../../either/right/create.cjs");
5
5
  const require_simpleClone = require("../../common/simpleClone.cjs");
6
6
  const require_kind = require("../kind.cjs");
7
7
  const require_resultSymbol = require("../common/resultSymbol.cjs");
8
- const require_error = require("../common/error.cjs");
8
+ const require_base = require("../common/error/base.cjs");
9
9
  //#region scripts/dataStructure/structure/base.ts
10
10
  var StructureClass = class StructureClass {
11
11
  constructor() {}
@@ -23,7 +23,7 @@ var StructureClass = class StructureClass {
23
23
  };
24
24
  const structureKind = require_kind.createKind("structure");
25
25
  function createStructure(kindHandler, createConstructor) {
26
- const init = (definition, { executeCheck, executeEncode, executeDecode, isAsynchronous }, ...rest) => {
26
+ const init = (definition, { executeCheck, executeEncode, executeDecode, executeParse, isAsynchronous }, ...rest) => {
27
27
  let cachedIsAsynchronous = void 0;
28
28
  const self = StructureClass.init({
29
29
  ...Object.fromEntries(Object.entries(rest[0] ?? {}).map(([key, prop]) => typeof prop === "function" ? [key, (...args) => prop(self, ...args)] : [key, prop])),
@@ -35,12 +35,14 @@ function createStructure(kindHandler, createConstructor) {
35
35
  executeCheck,
36
36
  executeEncode,
37
37
  executeDecode,
38
+ executeParse,
38
39
  isAsynchronous
39
40
  }, ...rest),
40
41
  executeConstraints: (data, errorHandler) => definition.constraints.reduce((accumulator, constraint) => require_callThen.callThen(accumulator, (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(constraint.executeCheck(data), (constraintResult) => constraintResult === require_resultSymbol.ErrorSymbol ? errorHandler?.().addIssue(self, data, constraint) ?? require_resultSymbol.ErrorSymbol : require_resultSymbol.SuccessSymbol)), require_resultSymbol.SuccessSymbol),
41
42
  executeCheck: (data, errorHandler) => require_callThen.callThen(executeCheck(self, data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : self.executeConstraints(data, errorHandler)),
42
43
  executeEncode: (codecContext, data, errorHandler) => executeEncode(self, codecContext, data, errorHandler),
43
44
  executeDecode: (codecContext, data, errorHandler) => executeDecode(self, codecContext, data, errorHandler),
45
+ executeParse: (codecContext, data, errorHandler) => executeParse(self, codecContext, data, errorHandler),
44
46
  isAsynchronous: () => {
45
47
  if (cachedIsAsynchronous !== void 0) return cachedIsAsynchronous;
46
48
  cachedIsAsynchronous = false;
@@ -50,14 +52,14 @@ function createStructure(kindHandler, createConstructor) {
50
52
  return cachedIsAsynchronous;
51
53
  },
52
54
  check: (data) => {
53
- const errorHandler = require_error.createGetErrorHandler();
55
+ const errorHandler = require_base.createGetErrorHandler();
54
56
  const result = self.executeCheck(data, errorHandler);
55
- if (result instanceof Promise) return require_create.left("async-error", void 0);
57
+ if (result instanceof Promise) return require_create.left("async-error", new require_base.ErrorPromise());
56
58
  if (result === require_resultSymbol.ErrorSymbol) return require_create.left("check-error", errorHandler().createError());
57
59
  return require_create$1.right("check-success", data);
58
60
  },
59
61
  asyncCheck: async (data) => {
60
- const errorHandler = require_error.createGetErrorHandler();
62
+ const errorHandler = require_base.createGetErrorHandler();
61
63
  if (await self.executeCheck(data, errorHandler) === require_resultSymbol.ErrorSymbol) return require_create.left("check-error", errorHandler().createError());
62
64
  return require_create$1.right("check-success", data);
63
65
  },
@@ -66,41 +68,51 @@ function createStructure(kindHandler, createConstructor) {
66
68
  if (result instanceof Promise || result === require_resultSymbol.ErrorSymbol) return false;
67
69
  return true;
68
70
  },
69
- encode: (codecs, data) => self.unsafeEncode(codecs, data),
70
- asyncEncode: (codecs, data) => self.asyncUnsafeEncode(codecs, data),
71
- unsafeEncode: (codecs, data) => {
72
- const errorHandler = require_error.createGetErrorHandler();
71
+ encode: (codecs, data) => {
72
+ const errorHandler = require_base.createGetErrorHandler();
73
73
  const result = self.executeEncode(codecs.context.value, data, errorHandler);
74
- if (result instanceof Promise) return require_create.left("async-error", void 0);
74
+ if (result instanceof Promise) return require_create.left("async-error", new require_base.ErrorPromise());
75
75
  if (result === require_resultSymbol.ErrorSymbol) return require_create.left("encode-error", errorHandler().createError());
76
76
  return require_create$1.right("encode-success", result);
77
77
  },
78
- asyncUnsafeEncode: async (codecs, data) => {
79
- const errorHandler = require_error.createGetErrorHandler();
78
+ asyncEncode: async (codecs, data) => {
79
+ const errorHandler = require_base.createGetErrorHandler();
80
80
  const result = await self.executeEncode(codecs.context.value, data, errorHandler);
81
81
  if (result === require_resultSymbol.ErrorSymbol) return require_create.left("encode-error", errorHandler().createError());
82
82
  return require_create$1.right("encode-success", result);
83
83
  },
84
- decode: (codecs, data) => self.unsafeDecode(codecs, data),
85
- asyncDecode: (codecs, data) => self.asyncUnsafeDecode(codecs, data),
86
- unsafeDecode: (codecs, data) => {
87
- const errorHandler = require_error.createGetErrorHandler();
84
+ decode: (codecs, data) => {
85
+ const errorHandler = require_base.createGetErrorHandler();
88
86
  const result = self.executeDecode(codecs.context.value, data, errorHandler);
89
- if (result instanceof Promise) return require_create.left("async-error", void 0);
87
+ if (result instanceof Promise) return require_create.left("async-error", new require_base.ErrorPromise());
90
88
  if (result === require_resultSymbol.ErrorSymbol) return require_create.left("decode-error", errorHandler().createError());
91
89
  return require_create$1.right("decode-success", result);
92
90
  },
93
- asyncUnsafeDecode: async (codecs, data) => {
94
- const errorHandler = require_error.createGetErrorHandler();
91
+ asyncDecode: async (codecs, data) => {
92
+ const errorHandler = require_base.createGetErrorHandler();
95
93
  const result = await self.executeDecode(codecs.context.value, data, errorHandler);
96
94
  if (result === require_resultSymbol.ErrorSymbol) return require_create.left("decode-error", errorHandler().createError());
97
95
  return require_create$1.right("decode-success", result);
98
96
  },
97
+ parse: (data, codecs) => {
98
+ const errorHandler = require_base.createGetErrorHandler();
99
+ const result = self.executeParse(codecs?.context.value ?? /* @__PURE__ */ new Map(), data, errorHandler);
100
+ if (result instanceof Promise) return require_create.left("async-error", new require_base.ErrorPromise());
101
+ if (result === require_resultSymbol.ErrorSymbol) return require_create.left("parse-error", errorHandler().createError());
102
+ return require_create$1.right("parse-success", result);
103
+ },
104
+ asyncParse: async (data, codecs) => {
105
+ const errorHandler = require_base.createGetErrorHandler();
106
+ const result = await self.executeParse(codecs?.context.value ?? /* @__PURE__ */ new Map(), data, errorHandler);
107
+ if (result === require_resultSymbol.ErrorSymbol) return require_create.left("parse-error", errorHandler().createError());
108
+ return require_create$1.right("parse-success", result);
109
+ },
99
110
  contract: () => self,
100
111
  clone: () => init(require_simpleClone.simpleClone(definition), {
101
112
  executeCheck,
102
113
  executeEncode,
103
114
  executeDecode,
115
+ executeParse,
104
116
  isAsynchronous
105
117
  }, ...rest),
106
118
  setMessage: (message) => {
@@ -1,6 +1,6 @@
1
- import { ErrorSymbol, GetErrorHandler, SuccessSymbol, EncodedValue, CodecContext, Error, Codecs } from '../common';
1
+ import { ErrorPromise, ErrorSymbol, GetErrorHandler, SuccessSymbol, EncodedValue, CodecContext, Error, Codecs } from '../common';
2
2
  import { Constraint } from '../constraint';
3
- import { StructureConstraintsValue, StructureValue } from './types';
3
+ import { ComputeStructureValue } from './types';
4
4
  import type * as DKind from '../../kind';
5
5
  import * as DEither from '../../either';
6
6
  import * as DCommon from '../../common';
@@ -14,26 +14,25 @@ export interface StructureDefinition<GenericConstraints extends readonly Constra
14
14
  readonly message?: string;
15
15
  readonly constraints: readonly [...GenericConstraints];
16
16
  }
17
- export interface Structure<out GenericValue extends unknown = unknown, out GenericDefinition extends StructureDefinition<readonly Constraint<GenericValue>[]> = StructureDefinition<readonly Constraint<GenericValue>[]>> extends DKind.Kind<typeof structureKind, (GenericValue & StructureConstraintsValue<GenericDefinition["constraints"][number]>)> {
17
+ export interface Structure<out GenericValue extends unknown = unknown, out GenericDefinition extends StructureDefinition<readonly Constraint<unknown, GenericValue>[]> = StructureDefinition<readonly Constraint<unknown, GenericValue>[]>> extends DKind.Kind<typeof structureKind, ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>> {
18
18
  readonly definition: GenericDefinition;
19
- addConstraint<const GenericNewConstraints extends DCommon.AnyTuple<Constraint<GenericValue>>>(...args: DCommon.FixDeepFunctionInfer<DCommon.AnyTuple<Constraint<GenericValue>>, GenericNewConstraints>): Structure<StructureValue<this>, StructureDefinition<readonly [...this["definition"]["constraints"], ...GenericNewConstraints]>>;
19
+ addConstraint<const GenericNewConstraints extends DCommon.AnyTuple<Constraint<GenericValue>>>(...args: DCommon.FixDeepFunctionInfer<DCommon.AnyTuple<Constraint<GenericValue>>, GenericNewConstraints>): Structure<ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>, StructureDefinition<readonly [...this["definition"]["constraints"], ...GenericNewConstraints]>>;
20
20
  executeConstraints(data: unknown, errorHandler?: GetErrorHandler): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
21
21
  executeCheck(data: unknown, errorHandler?: GetErrorHandler): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
22
22
  executeEncode(codecContext: CodecContext, data: unknown, errorHandler?: GetErrorHandler): unknown;
23
23
  executeDecode(codecContext: CodecContext, data: unknown, errorHandler?: GetErrorHandler): unknown;
24
+ executeParse(codecContext: CodecContext, data: unknown, errorHandler?: GetErrorHandler): unknown;
24
25
  isAsynchronous(): boolean;
25
- check(data: unknown): (DEither.Right<"check-success", StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"check-error", Error>);
26
- asyncCheck(data: unknown): Promise<DEither.Right<"check-success", StructureValue<this>> | DEither.Left<"check-error", Error>>;
27
- is(data: unknown): data is StructureValue<this>;
28
- encode<GenericCodecs extends Codecs>(codecs: GenericCodecs, data: StructureValue<this>): (DEither.Right<"encode-success", EncodedValue<StructureValue<this>, GenericCodecs>> | DEither.Left<"async-error", undefined> | DEither.Left<"encode-error", Error>);
29
- asyncEncode<GenericCodecs extends Codecs>(codecs: GenericCodecs, data: StructureValue<this>): Promise<DEither.Right<"encode-success", EncodedValue<StructureValue<this>, GenericCodecs>> | DEither.Left<"encode-error", Error>>;
30
- unsafeEncode<GenericCodecs extends Codecs>(codecs: GenericCodecs, data: unknown): (DEither.Right<"encode-success", EncodedValue<StructureValue<this>, GenericCodecs>> | DEither.Left<"async-error", undefined> | DEither.Left<"encode-error", Error>);
31
- asyncUnsafeEncode<GenericCodecs extends Codecs>(codecs: GenericCodecs, data: unknown): Promise<DEither.Right<"encode-success", EncodedValue<StructureValue<this>, GenericCodecs>> | DEither.Left<"encode-error", Error>>;
32
- decode<GenericCodecs extends Codecs>(codecs: GenericCodecs, data: EncodedValue<StructureValue<this>, GenericCodecs>): (DEither.Right<"decode-success", StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"decode-error", Error>);
33
- asyncDecode<GenericCodecs extends Codecs>(codecs: GenericCodecs, data: EncodedValue<StructureValue<this>, GenericCodecs>): Promise<DEither.Right<"decode-success", StructureValue<this>> | DEither.Left<"decode-error", Error>>;
34
- unsafeDecode(codecs: Codecs, data: unknown): (DEither.Right<"decode-success", StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"decode-error", Error>);
35
- asyncUnsafeDecode(codecs: Codecs, data: unknown): Promise<DEither.Right<"decode-success", StructureValue<this>> | DEither.Left<"decode-error", Error>>;
36
- contract<GenericValue extends unknown, GenericThis extends this>(...args: DCommon.IsEqual<StructureValue<GenericThis>, GenericValue> extends true ? [] : [] & DCommon.ComputedTypeError<"Contract error.">): Structure<GenericValue>;
26
+ check(data: unknown): (DEither.Right<"check-success", ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>> | DEither.Left<"async-error", ErrorPromise> | DEither.Left<"check-error", Error>);
27
+ asyncCheck(data: unknown): Promise<DEither.Right<"check-success", ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>> | DEither.Left<"check-error", Error>>;
28
+ is(data: unknown): data is ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>;
29
+ encode<GenericCodecs extends Codecs>(codecs: GenericCodecs, data: unknown): (DEither.Right<"encode-success", EncodedValue<ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>, GenericCodecs>> | DEither.Left<"async-error", ErrorPromise> | DEither.Left<"encode-error", Error>);
30
+ asyncEncode<GenericCodecs extends Codecs>(codecs: GenericCodecs, data: unknown): Promise<DEither.Right<"encode-success", EncodedValue<ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>, GenericCodecs>> | DEither.Left<"encode-error", Error>>;
31
+ decode<GenericCodecs extends Codecs>(codecs: GenericCodecs, data: unknown): (DEither.Right<"decode-success", ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>> | DEither.Left<"async-error", ErrorPromise> | DEither.Left<"decode-error", Error>);
32
+ asyncDecode<GenericCodecs extends Codecs>(codecs: GenericCodecs, data: unknown): Promise<DEither.Right<"decode-success", ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>> | DEither.Left<"decode-error", Error>>;
33
+ parse(data: unknown, codecs?: Codecs): (DEither.Right<"parse-success", ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>> | DEither.Left<"async-error", ErrorPromise> | DEither.Left<"parse-error", Error>);
34
+ asyncParse(data: unknown, codecs?: Codecs): Promise<DEither.Right<"parse-success", ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>> | DEither.Left<"parse-error", Error>>;
35
+ contract<GenericContractValue extends unknown, GenericArgs extends (DCommon.IsEqual<ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>, GenericContractValue> extends true ? [] : [] & DCommon.ComputedTypeError<"Contract error.">) = (DCommon.IsEqual<ComputeStructureValue<GenericValue, GenericDefinition["constraints"]>, GenericContractValue> extends true ? [] : [] & DCommon.ComputedTypeError<"Contract error.">)>(...args: NoInfer<GenericArgs>): Structure<GenericContractValue>;
37
36
  clone(): this;
38
37
  setMessage(massage: string): this;
39
38
  addMessage(massage: string): this;
@@ -42,6 +41,7 @@ export interface CreateStructureInitParams<GenericStructure extends Structure =
42
41
  executeCheck(self: GenericStructure, data: unknown, errorHandler?: GetErrorHandler): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
43
42
  executeEncode(self: GenericStructure, codecContext: CodecContext, data: unknown, errorHandler?: GetErrorHandler): unknown;
44
43
  executeDecode(self: GenericStructure, codecContext: CodecContext, data: unknown, errorHandler?: GetErrorHandler): unknown;
44
+ executeParse(self: GenericStructure, codecContext: CodecContext, data: unknown, errorHandler?: GetErrorHandler): unknown;
45
45
  isAsynchronous(self: GenericStructure): boolean;
46
46
  }
47
47
  export type CreateStructureInitRest<GenericStructure extends Structure = Structure> = {
@@ -5,7 +5,7 @@ import { right } from "../../either/right/create.mjs";
5
5
  import { simpleClone } from "../../common/simpleClone.mjs";
6
6
  import { createKind } from "../kind.mjs";
7
7
  import { ErrorSymbol, SuccessSymbol } from "../common/resultSymbol.mjs";
8
- import { createGetErrorHandler } from "../common/error.mjs";
8
+ import { ErrorPromise, createGetErrorHandler } from "../common/error/base.mjs";
9
9
  //#region scripts/dataStructure/structure/base.ts
10
10
  var StructureClass = class StructureClass {
11
11
  constructor() {}
@@ -23,7 +23,7 @@ var StructureClass = class StructureClass {
23
23
  };
24
24
  const structureKind = createKind("structure");
25
25
  function createStructure(kindHandler, createConstructor) {
26
- const init = (definition, { executeCheck, executeEncode, executeDecode, isAsynchronous }, ...rest) => {
26
+ const init = (definition, { executeCheck, executeEncode, executeDecode, executeParse, isAsynchronous }, ...rest) => {
27
27
  let cachedIsAsynchronous = void 0;
28
28
  const self = StructureClass.init({
29
29
  ...Object.fromEntries(Object.entries(rest[0] ?? {}).map(([key, prop]) => typeof prop === "function" ? [key, (...args) => prop(self, ...args)] : [key, prop])),
@@ -35,12 +35,14 @@ function createStructure(kindHandler, createConstructor) {
35
35
  executeCheck,
36
36
  executeEncode,
37
37
  executeDecode,
38
+ executeParse,
38
39
  isAsynchronous
39
40
  }, ...rest),
40
41
  executeConstraints: (data, errorHandler) => definition.constraints.reduce((accumulator, constraint) => callThen(accumulator, (result) => result === ErrorSymbol ? ErrorSymbol : callThen(constraint.executeCheck(data), (constraintResult) => constraintResult === ErrorSymbol ? errorHandler?.().addIssue(self, data, constraint) ?? ErrorSymbol : SuccessSymbol)), SuccessSymbol),
41
42
  executeCheck: (data, errorHandler) => callThen(executeCheck(self, data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : self.executeConstraints(data, errorHandler)),
42
43
  executeEncode: (codecContext, data, errorHandler) => executeEncode(self, codecContext, data, errorHandler),
43
44
  executeDecode: (codecContext, data, errorHandler) => executeDecode(self, codecContext, data, errorHandler),
45
+ executeParse: (codecContext, data, errorHandler) => executeParse(self, codecContext, data, errorHandler),
44
46
  isAsynchronous: () => {
45
47
  if (cachedIsAsynchronous !== void 0) return cachedIsAsynchronous;
46
48
  cachedIsAsynchronous = false;
@@ -52,7 +54,7 @@ function createStructure(kindHandler, createConstructor) {
52
54
  check: (data) => {
53
55
  const errorHandler = createGetErrorHandler();
54
56
  const result = self.executeCheck(data, errorHandler);
55
- if (result instanceof Promise) return left("async-error", void 0);
57
+ if (result instanceof Promise) return left("async-error", new ErrorPromise());
56
58
  if (result === ErrorSymbol) return left("check-error", errorHandler().createError());
57
59
  return right("check-success", data);
58
60
  },
@@ -66,41 +68,51 @@ function createStructure(kindHandler, createConstructor) {
66
68
  if (result instanceof Promise || result === ErrorSymbol) return false;
67
69
  return true;
68
70
  },
69
- encode: (codecs, data) => self.unsafeEncode(codecs, data),
70
- asyncEncode: (codecs, data) => self.asyncUnsafeEncode(codecs, data),
71
- unsafeEncode: (codecs, data) => {
71
+ encode: (codecs, data) => {
72
72
  const errorHandler = createGetErrorHandler();
73
73
  const result = self.executeEncode(codecs.context.value, data, errorHandler);
74
- if (result instanceof Promise) return left("async-error", void 0);
74
+ if (result instanceof Promise) return left("async-error", new ErrorPromise());
75
75
  if (result === ErrorSymbol) return left("encode-error", errorHandler().createError());
76
76
  return right("encode-success", result);
77
77
  },
78
- asyncUnsafeEncode: async (codecs, data) => {
78
+ asyncEncode: async (codecs, data) => {
79
79
  const errorHandler = createGetErrorHandler();
80
80
  const result = await self.executeEncode(codecs.context.value, data, errorHandler);
81
81
  if (result === ErrorSymbol) return left("encode-error", errorHandler().createError());
82
82
  return right("encode-success", result);
83
83
  },
84
- decode: (codecs, data) => self.unsafeDecode(codecs, data),
85
- asyncDecode: (codecs, data) => self.asyncUnsafeDecode(codecs, data),
86
- unsafeDecode: (codecs, data) => {
84
+ decode: (codecs, data) => {
87
85
  const errorHandler = createGetErrorHandler();
88
86
  const result = self.executeDecode(codecs.context.value, data, errorHandler);
89
- if (result instanceof Promise) return left("async-error", void 0);
87
+ if (result instanceof Promise) return left("async-error", new ErrorPromise());
90
88
  if (result === ErrorSymbol) return left("decode-error", errorHandler().createError());
91
89
  return right("decode-success", result);
92
90
  },
93
- asyncUnsafeDecode: async (codecs, data) => {
91
+ asyncDecode: async (codecs, data) => {
94
92
  const errorHandler = createGetErrorHandler();
95
93
  const result = await self.executeDecode(codecs.context.value, data, errorHandler);
96
94
  if (result === ErrorSymbol) return left("decode-error", errorHandler().createError());
97
95
  return right("decode-success", result);
98
96
  },
97
+ parse: (data, codecs) => {
98
+ const errorHandler = createGetErrorHandler();
99
+ const result = self.executeParse(codecs?.context.value ?? /* @__PURE__ */ new Map(), data, errorHandler);
100
+ if (result instanceof Promise) return left("async-error", new ErrorPromise());
101
+ if (result === ErrorSymbol) return left("parse-error", errorHandler().createError());
102
+ return right("parse-success", result);
103
+ },
104
+ asyncParse: async (data, codecs) => {
105
+ const errorHandler = createGetErrorHandler();
106
+ const result = await self.executeParse(codecs?.context.value ?? /* @__PURE__ */ new Map(), data, errorHandler);
107
+ if (result === ErrorSymbol) return left("parse-error", errorHandler().createError());
108
+ return right("parse-success", result);
109
+ },
99
110
  contract: () => self,
100
111
  clone: () => init(simpleClone(definition), {
101
112
  executeCheck,
102
113
  executeEncode,
103
114
  executeDecode,
115
+ executeParse,
104
116
  isAsynchronous
105
117
  }, ...rest),
106
118
  setMessage: (message) => {
@@ -37,6 +37,16 @@ const ArrayStructure = require_base.createStructure(arrayStructureKind, ({ init
37
37
  })), []);
38
38
  return require_callThen.callThen(decodedData, (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedDecodedData)));
39
39
  },
40
+ executeParse: (self, codecContext, data, errorHandler) => {
41
+ if (!Array.isArray(data)) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
42
+ const pathStage = errorHandler?.().createPathStage();
43
+ const parsedData = data.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`[array: ${index}]`) ?? require_callThen.callThen(self.definition.element.executeParse(codecContext, value, errorHandler), (parsedData) => {
44
+ if (parsedData === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol) return require_resultSymbol.ErrorSymbol;
45
+ awaitedAccumulator[index] = parsedData;
46
+ return awaitedAccumulator;
47
+ })), []);
48
+ return require_callThen.callThen(parsedData, (awaitedParsedData) => pathStage?.close() ?? (awaitedParsedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(awaitedParsedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedParsedData)));
49
+ },
40
50
  isAsynchronous: (self) => self.definition.element.isAsynchronous()
41
51
  }));
42
52
  //#endregion
@@ -37,6 +37,16 @@ const ArrayStructure = createStructure(arrayStructureKind, ({ init }) => (elemen
37
37
  })), []);
38
38
  return callThen(decodedData, (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData)));
39
39
  },
40
+ executeParse: (self, codecContext, data, errorHandler) => {
41
+ if (!Array.isArray(data)) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
42
+ const pathStage = errorHandler?.().createPathStage();
43
+ const parsedData = data.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`[array: ${index}]`) ?? callThen(self.definition.element.executeParse(codecContext, value, errorHandler), (parsedData) => {
44
+ if (parsedData === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
45
+ awaitedAccumulator[index] = parsedData;
46
+ return awaitedAccumulator;
47
+ })), []);
48
+ return callThen(parsedData, (awaitedParsedData) => pathStage?.close() ?? (awaitedParsedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedParsedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedParsedData)));
49
+ },
40
50
  isAsynchronous: (self) => self.definition.element.isAsynchronous()
41
51
  }));
42
52
  //#endregion
@@ -17,6 +17,7 @@ const LazyStructure = require_base.createStructure(lazyStructureKind, ({ init })
17
17
  executeCheck: (self, data, errorHandler) => self.definition.getter.value.executeCheck(data, errorHandler),
18
18
  executeEncode: (self, codecContext, data, errorHandler) => require_callThen.callThen(self.definition.getter.value.executeEncode(codecContext, data, errorHandler), (encodedData) => encodedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : encodedData)),
19
19
  executeDecode: (self, codecContext, data, errorHandler) => require_callThen.callThen(self.definition.getter.value.executeDecode(codecContext, data, errorHandler), (decodedData) => decodedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(decodedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : decodedData)),
20
+ executeParse: (self, codecContext, data, errorHandler) => require_callThen.callThen(self.definition.getter.value.executeParse(codecContext, data, errorHandler), (parsedData) => parsedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(parsedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : parsedData)),
20
21
  isAsynchronous: (self) => self.definition.getter.value.isAsynchronous()
21
22
  }));
22
23
  //#endregion
@@ -17,6 +17,7 @@ const LazyStructure = createStructure(lazyStructureKind, ({ init }) => (getStruc
17
17
  executeCheck: (self, data, errorHandler) => self.definition.getter.value.executeCheck(data, errorHandler),
18
18
  executeEncode: (self, codecContext, data, errorHandler) => callThen(self.definition.getter.value.executeEncode(codecContext, data, errorHandler), (encodedData) => encodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : encodedData)),
19
19
  executeDecode: (self, codecContext, data, errorHandler) => callThen(self.definition.getter.value.executeDecode(codecContext, data, errorHandler), (decodedData) => decodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(decodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : decodedData)),
20
+ executeParse: (self, codecContext, data, errorHandler) => callThen(self.definition.getter.value.executeParse(codecContext, data, errorHandler), (parsedData) => parsedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(parsedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : parsedData)),
20
21
  isAsynchronous: (self) => self.definition.getter.value.isAsynchronous()
21
22
  }));
22
23
  //#endregion
@@ -10,6 +10,7 @@ const NonEncodableStringStructure = require_base.createStructure(nonEncodableStr
10
10
  executeCheck: (self, data, errorHandler) => data === self.definition.value ? require_resultSymbol.SuccessSymbol : errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol,
11
11
  executeEncode: (self, codecContext, data, errorHandler) => data === self.definition.value ? data : errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol,
12
12
  executeDecode: (self, codecContext, data, errorHandler) => data === self.definition.value ? data : errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol,
13
+ executeParse: (self, codecContext, data, errorHandler) => self.executeDecode(codecContext, data, errorHandler),
13
14
  isAsynchronous: () => false
14
15
  }));
15
16
  //#endregion
@@ -10,6 +10,7 @@ const NonEncodableStringStructure = createStructure(nonEncodableStringStructureK
10
10
  executeCheck: (self, data, errorHandler) => data === self.definition.value ? SuccessSymbol : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
11
11
  executeEncode: (self, codecContext, data, errorHandler) => data === self.definition.value ? data : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
12
12
  executeDecode: (self, codecContext, data, errorHandler) => data === self.definition.value ? data : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
13
+ executeParse: (self, codecContext, data, errorHandler) => self.executeDecode(codecContext, data, errorHandler),
13
14
  isAsynchronous: () => false
14
15
  }));
15
16
  //#endregion
@@ -7,10 +7,11 @@ const require_base = require("../base.cjs");
7
7
  //#region scripts/dataStructure/structure/defaults/object.ts
8
8
  const objectStructureKind = require_kind.createKind("object-structure");
9
9
  const ObjectStructure = require_base.createStructure(objectStructureKind, ({ init }) => (shape, constraints) => init({
10
- shape: require_memo.memo(() => Object.entries(shape).map(([key, value]) => ({
10
+ optimizedShape: require_memo.memo(() => Object.entries(shape).map(([key, value]) => ({
11
11
  key,
12
12
  value
13
13
  }))),
14
+ shape,
14
15
  keys: Object.keys(shape),
15
16
  constraints
16
17
  }, {
@@ -18,7 +19,7 @@ const ObjectStructure = require_base.createStructure(objectStructureKind, ({ ini
18
19
  if (!require_isSimple.isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
19
20
  if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
20
21
  const pathStage = errorHandler?.().createPathStage();
21
- const result = self.definition.shape.value.reduce((accumulator, entry) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? require_callThen.callThen(entry.value.executeCheck(data[entry.key], errorHandler), (result) => result === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_resultSymbol.SuccessSymbol)), require_resultSymbol.SuccessSymbol);
22
+ const result = self.definition.optimizedShape.value.reduce((accumulator, entry) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? require_callThen.callThen(entry.value.executeCheck(data[entry.key], errorHandler), (result) => result === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_resultSymbol.SuccessSymbol)), require_resultSymbol.SuccessSymbol);
22
23
  return require_callThen.callThen(result, (awaitedResult) => {
23
24
  pathStage?.close();
24
25
  return awaitedResult;
@@ -28,9 +29,9 @@ const ObjectStructure = require_base.createStructure(objectStructureKind, ({ ini
28
29
  if (!require_isSimple.isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
29
30
  if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
30
31
  const pathStage = errorHandler?.().createPathStage();
31
- const encodedData = self.definition.shape.value.reduce((accumulator, entry) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? require_callThen.callThen(entry.value.executeEncode(codecContext, data[entry.key], errorHandler), (encodedData) => {
32
+ const encodedData = self.definition.optimizedShape.value.reduce((accumulator, entry) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? require_callThen.callThen(entry.value.executeEncode(codecContext, data[entry.key], errorHandler), (encodedData) => {
32
33
  if (encodedData === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol) return require_resultSymbol.ErrorSymbol;
33
- awaitedAccumulator[entry.key] = encodedData;
34
+ if (encodedData !== void 0) awaitedAccumulator[entry.key] = encodedData;
34
35
  return awaitedAccumulator;
35
36
  })), {});
36
37
  return require_callThen.callThen(encodedData, (awaitedEncodedData) => pathStage?.close() ?? (awaitedEncodedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedEncodedData)));
@@ -39,14 +40,24 @@ const ObjectStructure = require_base.createStructure(objectStructureKind, ({ ini
39
40
  if (!require_isSimple.isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
40
41
  if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
41
42
  const pathStage = errorHandler?.().createPathStage();
42
- const decodedData = self.definition.shape.value.reduce((accumulator, entry) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? require_callThen.callThen(entry.value.executeDecode(codecContext, data[entry.key], errorHandler), (decodedData) => {
43
+ const decodedData = self.definition.optimizedShape.value.reduce((accumulator, entry) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? require_callThen.callThen(entry.value.executeDecode(codecContext, data[entry.key], errorHandler), (decodedData) => {
43
44
  if (decodedData === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol) return require_resultSymbol.ErrorSymbol;
44
- awaitedAccumulator[entry.key] = decodedData;
45
+ if (decodedData !== void 0) awaitedAccumulator[entry.key] = decodedData;
45
46
  return awaitedAccumulator;
46
47
  })), {});
47
48
  return require_callThen.callThen(decodedData, (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedDecodedData)));
48
49
  },
49
- isAsynchronous: (self) => self.definition.shape.value.some((entry) => entry.value.isAsynchronous())
50
+ executeParse: (self, codecContext, data, errorHandler) => {
51
+ if (!require_isSimple.isSimple(data)) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
52
+ const pathStage = errorHandler?.().createPathStage();
53
+ const parsedData = self.definition.optimizedShape.value.reduce((accumulator, entry) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? require_callThen.callThen(entry.value.executeParse(codecContext, data[entry.key], errorHandler), (parsedData) => {
54
+ if (parsedData === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol) return require_resultSymbol.ErrorSymbol;
55
+ if (parsedData !== void 0) awaitedAccumulator[entry.key] = parsedData;
56
+ return awaitedAccumulator;
57
+ })), {});
58
+ return require_callThen.callThen(parsedData, (awaitedParsedData) => pathStage?.close() ?? (awaitedParsedData === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(awaitedParsedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedParsedData)));
59
+ },
60
+ isAsynchronous: (self) => self.definition.optimizedShape.value.some((entry) => entry.value.isAsynchronous())
50
61
  }));
51
62
  //#endregion
52
63
  exports.ObjectStructure = ObjectStructure;
@@ -22,7 +22,8 @@ export type ShapeObjectStructureValue<GenericShape extends ShapeObjectStructure>
22
22
  } extends infer InferredResult extends Record<string, unknown> ? DObject.PartialKeys<InferredResult, DObject.GetPropsWithValueExtends<InferredResult, undefined>> : never;
23
23
  export declare const objectStructureKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/object-structure", unknown>>;
24
24
  export interface ObjectStructureDefinition<GenericConstraints extends readonly Constraint[] = readonly Constraint[]> extends StructureDefinition<GenericConstraints> {
25
- readonly shape: DCommon.Memoized<readonly EntryShapeObjectStructure[]>;
25
+ readonly optimizedShape: DCommon.Memoized<readonly EntryShapeObjectStructure[]>;
26
+ readonly shape: Readonly<Record<string, Structure>>;
26
27
  readonly keys: readonly string[];
27
28
  }
28
29
  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>> {
@@ -7,10 +7,11 @@ import { createStructure } from "../base.mjs";
7
7
  //#region scripts/dataStructure/structure/defaults/object.ts
8
8
  const objectStructureKind = createKind("object-structure");
9
9
  const ObjectStructure = createStructure(objectStructureKind, ({ init }) => (shape, constraints) => init({
10
- shape: memo(() => Object.entries(shape).map(([key, value]) => ({
10
+ optimizedShape: memo(() => Object.entries(shape).map(([key, value]) => ({
11
11
  key,
12
12
  value
13
13
  }))),
14
+ shape,
14
15
  keys: Object.keys(shape),
15
16
  constraints
16
17
  }, {
@@ -18,7 +19,7 @@ const ObjectStructure = createStructure(objectStructureKind, ({ init }) => (shap
18
19
  if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
19
20
  if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
20
21
  const pathStage = errorHandler?.().createPathStage();
21
- const result = self.definition.shape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeCheck(data[entry.key], errorHandler), (result) => result === ErrorSymbol || awaitedAccumulator === ErrorSymbol ? ErrorSymbol : SuccessSymbol)), SuccessSymbol);
22
+ const result = self.definition.optimizedShape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeCheck(data[entry.key], errorHandler), (result) => result === ErrorSymbol || awaitedAccumulator === ErrorSymbol ? ErrorSymbol : SuccessSymbol)), SuccessSymbol);
22
23
  return callThen(result, (awaitedResult) => {
23
24
  pathStage?.close();
24
25
  return awaitedResult;
@@ -28,9 +29,9 @@ const ObjectStructure = createStructure(objectStructureKind, ({ init }) => (shap
28
29
  if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
29
30
  if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
30
31
  const pathStage = errorHandler?.().createPathStage();
31
- const encodedData = self.definition.shape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeEncode(codecContext, data[entry.key], errorHandler), (encodedData) => {
32
+ const encodedData = self.definition.optimizedShape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeEncode(codecContext, data[entry.key], errorHandler), (encodedData) => {
32
33
  if (encodedData === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
33
- awaitedAccumulator[entry.key] = encodedData;
34
+ if (encodedData !== void 0) awaitedAccumulator[entry.key] = encodedData;
34
35
  return awaitedAccumulator;
35
36
  })), {});
36
37
  return callThen(encodedData, (awaitedEncodedData) => pathStage?.close() ?? (awaitedEncodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData)));
@@ -39,14 +40,24 @@ const ObjectStructure = createStructure(objectStructureKind, ({ init }) => (shap
39
40
  if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
40
41
  if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
41
42
  const pathStage = errorHandler?.().createPathStage();
42
- const decodedData = self.definition.shape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeDecode(codecContext, data[entry.key], errorHandler), (decodedData) => {
43
+ const decodedData = self.definition.optimizedShape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeDecode(codecContext, data[entry.key], errorHandler), (decodedData) => {
43
44
  if (decodedData === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
44
- awaitedAccumulator[entry.key] = decodedData;
45
+ if (decodedData !== void 0) awaitedAccumulator[entry.key] = decodedData;
45
46
  return awaitedAccumulator;
46
47
  })), {});
47
48
  return callThen(decodedData, (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData)));
48
49
  },
49
- isAsynchronous: (self) => self.definition.shape.value.some((entry) => entry.value.isAsynchronous())
50
+ executeParse: (self, codecContext, data, errorHandler) => {
51
+ if (!isSimple(data)) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
52
+ const pathStage = errorHandler?.().createPathStage();
53
+ const parsedData = self.definition.optimizedShape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeParse(codecContext, data[entry.key], errorHandler), (parsedData) => {
54
+ if (parsedData === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
55
+ if (parsedData !== void 0) awaitedAccumulator[entry.key] = parsedData;
56
+ return awaitedAccumulator;
57
+ })), {});
58
+ return callThen(parsedData, (awaitedParsedData) => pathStage?.close() ?? (awaitedParsedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedParsedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedParsedData)));
59
+ },
60
+ isAsynchronous: (self) => self.definition.optimizedShape.value.some((entry) => entry.value.isAsynchronous())
50
61
  }));
51
62
  //#endregion
52
63
  export { ObjectStructure, objectStructureKind };