@duplojs/lang 0.0.0 → 0.0.1-beta.2

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 (275) hide show
  1. package/dist/array/at/default.d.ts +1 -1
  2. package/dist/array/chunk.d.ts +3 -2
  3. package/dist/array/concat.d.ts +1 -1
  4. package/dist/array/copyWithin.d.ts +1 -1
  5. package/dist/array/fill/all.d.ts +1 -1
  6. package/dist/array/fill/default.d.ts +3 -3
  7. package/dist/array/filter.d.ts +1 -1
  8. package/dist/array/findAndReplace.d.ts +1 -1
  9. package/dist/array/findAndSplice/delete.d.ts +1 -1
  10. package/dist/array/findAndSplice/insert.d.ts +1 -1
  11. package/dist/array/insert.d.ts +3 -3
  12. package/dist/array/length.d.ts +1 -1
  13. package/dist/array/lengthEqual.d.ts +1 -1
  14. package/dist/array/map.d.ts +1 -1
  15. package/dist/array/maxElements.d.ts +1 -1
  16. package/dist/array/minElements.d.ts +1 -1
  17. package/dist/array/pop.d.ts +1 -1
  18. package/dist/array/prepend.d.ts +1 -1
  19. package/dist/array/push.d.ts +3 -3
  20. package/dist/array/reverse.d.ts +1 -1
  21. package/dist/array/shift.d.ts +1 -1
  22. package/dist/array/sort.d.ts +1 -1
  23. package/dist/array/splice/delete.d.ts +1 -1
  24. package/dist/array/splice/insert.d.ts +1 -1
  25. package/dist/array/unshift.d.ts +3 -3
  26. package/dist/common/formData.cjs +4 -2
  27. package/dist/common/formData.mjs +4 -2
  28. package/dist/common/queue.cjs +9 -7
  29. package/dist/common/queue.mjs +9 -7
  30. package/dist/common/types/index.d.ts +1 -0
  31. package/dist/common/types/splitPromise.d.ts +1 -0
  32. package/dist/dataStructure/common/codec.cjs +5 -4
  33. package/dist/dataStructure/common/codec.d.ts +2 -2
  34. package/dist/dataStructure/common/codec.mjs +5 -4
  35. package/dist/dataStructure/common/error.cjs +34 -16
  36. package/dist/dataStructure/common/error.d.ts +29 -11
  37. package/dist/dataStructure/common/error.mjs +32 -17
  38. package/dist/dataStructure/common/errorInterpreter.cjs +45 -0
  39. package/dist/dataStructure/common/errorInterpreter.d.ts +32 -0
  40. package/dist/dataStructure/common/errorInterpreter.mjs +45 -0
  41. package/dist/dataStructure/common/index.d.ts +1 -0
  42. package/dist/dataStructure/constraint/base.cjs +16 -3
  43. package/dist/dataStructure/constraint/base.d.ts +8 -4
  44. package/dist/dataStructure/constraint/base.mjs +16 -3
  45. package/dist/dataStructure/constraint/defaults/allowedCharacters.cjs +1 -1
  46. package/dist/dataStructure/constraint/defaults/allowedCharacters.mjs +1 -1
  47. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.cjs +1 -1
  48. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.mjs +1 -1
  49. package/dist/dataStructure/constraint/defaults/betweenThan.cjs +1 -1
  50. package/dist/dataStructure/constraint/defaults/betweenThan.mjs +1 -1
  51. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.cjs +1 -1
  52. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.mjs +1 -1
  53. package/dist/dataStructure/constraint/defaults/email.cjs +1 -1
  54. package/dist/dataStructure/constraint/defaults/email.mjs +1 -1
  55. package/dist/dataStructure/constraint/defaults/even.cjs +1 -1
  56. package/dist/dataStructure/constraint/defaults/even.mjs +1 -1
  57. package/dist/dataStructure/constraint/defaults/greaterThan.cjs +1 -1
  58. package/dist/dataStructure/constraint/defaults/greaterThan.mjs +1 -1
  59. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.cjs +1 -1
  60. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.mjs +1 -1
  61. package/dist/dataStructure/constraint/defaults/index.d.ts +1 -0
  62. package/dist/dataStructure/constraint/defaults/integer.cjs +1 -1
  63. package/dist/dataStructure/constraint/defaults/integer.mjs +1 -1
  64. package/dist/dataStructure/constraint/defaults/lessThan.cjs +1 -1
  65. package/dist/dataStructure/constraint/defaults/lessThan.mjs +1 -1
  66. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.cjs +1 -1
  67. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.mjs +1 -1
  68. package/dist/dataStructure/constraint/defaults/maxCharacters.cjs +1 -1
  69. package/dist/dataStructure/constraint/defaults/maxCharacters.mjs +1 -1
  70. package/dist/dataStructure/constraint/defaults/maxElements.cjs +1 -1
  71. package/dist/dataStructure/constraint/defaults/maxElements.mjs +1 -1
  72. package/dist/dataStructure/constraint/defaults/minCharacters.cjs +1 -1
  73. package/dist/dataStructure/constraint/defaults/minCharacters.mjs +1 -1
  74. package/dist/dataStructure/constraint/defaults/minElements.cjs +1 -1
  75. package/dist/dataStructure/constraint/defaults/minElements.mjs +1 -1
  76. package/dist/dataStructure/constraint/defaults/multipleOf.cjs +1 -1
  77. package/dist/dataStructure/constraint/defaults/multipleOf.mjs +1 -1
  78. package/dist/dataStructure/constraint/defaults/negative.cjs +1 -1
  79. package/dist/dataStructure/constraint/defaults/negative.mjs +1 -1
  80. package/dist/dataStructure/constraint/defaults/notEmpty.cjs +1 -1
  81. package/dist/dataStructure/constraint/defaults/notEmpty.mjs +1 -1
  82. package/dist/dataStructure/constraint/defaults/notZero.cjs +1 -1
  83. package/dist/dataStructure/constraint/defaults/notZero.mjs +1 -1
  84. package/dist/dataStructure/constraint/defaults/odd.cjs +1 -1
  85. package/dist/dataStructure/constraint/defaults/odd.mjs +1 -1
  86. package/dist/dataStructure/constraint/defaults/positive.cjs +1 -1
  87. package/dist/dataStructure/constraint/defaults/positive.mjs +1 -1
  88. package/dist/dataStructure/constraint/defaults/refine.cjs +1 -1
  89. package/dist/dataStructure/constraint/defaults/refine.mjs +1 -1
  90. package/dist/dataStructure/constraint/defaults/safe.cjs +1 -1
  91. package/dist/dataStructure/constraint/defaults/safe.mjs +1 -1
  92. package/dist/dataStructure/constraint/defaults/strictNegative.cjs +1 -1
  93. package/dist/dataStructure/constraint/defaults/strictNegative.mjs +1 -1
  94. package/dist/dataStructure/constraint/defaults/strictPositive.cjs +1 -1
  95. package/dist/dataStructure/constraint/defaults/strictPositive.mjs +1 -1
  96. package/dist/dataStructure/constraint/defaults/stringLengthEqual.cjs +1 -1
  97. package/dist/dataStructure/constraint/defaults/stringLengthEqual.mjs +1 -1
  98. package/dist/dataStructure/constraint/defaults/trimmed.cjs +13 -0
  99. package/dist/dataStructure/constraint/defaults/trimmed.d.ts +10 -0
  100. package/dist/dataStructure/constraint/defaults/trimmed.mjs +12 -0
  101. package/dist/dataStructure/constraint/defaults/url.cjs +1 -1
  102. package/dist/dataStructure/constraint/defaults/url.mjs +1 -1
  103. package/dist/dataStructure/constraint/defaults/uuid.cjs +1 -1
  104. package/dist/dataStructure/constraint/defaults/uuid.mjs +1 -1
  105. package/dist/dataStructure/fundamentalType/base.cjs +3 -3
  106. package/dist/dataStructure/fundamentalType/base.d.ts +4 -5
  107. package/dist/dataStructure/fundamentalType/base.mjs +3 -3
  108. package/dist/dataStructure/fundamentalType/defaults/bigint.cjs +4 -2
  109. package/dist/dataStructure/fundamentalType/defaults/bigint.d.ts +4 -4
  110. package/dist/dataStructure/fundamentalType/defaults/bigint.mjs +5 -2
  111. package/dist/dataStructure/fundamentalType/defaults/boolean.cjs +4 -2
  112. package/dist/dataStructure/fundamentalType/defaults/boolean.d.ts +4 -4
  113. package/dist/dataStructure/fundamentalType/defaults/boolean.mjs +5 -2
  114. package/dist/dataStructure/fundamentalType/defaults/date.cjs +4 -2
  115. package/dist/dataStructure/fundamentalType/defaults/date.d.ts +4 -4
  116. package/dist/dataStructure/fundamentalType/defaults/date.mjs +5 -2
  117. package/dist/dataStructure/fundamentalType/defaults/null.cjs +4 -2
  118. package/dist/dataStructure/fundamentalType/defaults/null.d.ts +4 -4
  119. package/dist/dataStructure/fundamentalType/defaults/null.mjs +5 -2
  120. package/dist/dataStructure/fundamentalType/defaults/number.cjs +4 -2
  121. package/dist/dataStructure/fundamentalType/defaults/number.d.ts +4 -4
  122. package/dist/dataStructure/fundamentalType/defaults/number.mjs +5 -2
  123. package/dist/dataStructure/fundamentalType/defaults/string.cjs +4 -2
  124. package/dist/dataStructure/fundamentalType/defaults/string.d.ts +4 -4
  125. package/dist/dataStructure/fundamentalType/defaults/string.mjs +5 -2
  126. package/dist/dataStructure/fundamentalType/defaults/time.cjs +4 -2
  127. package/dist/dataStructure/fundamentalType/defaults/time.d.ts +4 -4
  128. package/dist/dataStructure/fundamentalType/defaults/time.mjs +5 -2
  129. package/dist/dataStructure/fundamentalType/defaults/undefined.cjs +4 -2
  130. package/dist/dataStructure/fundamentalType/defaults/undefined.d.ts +4 -4
  131. package/dist/dataStructure/fundamentalType/defaults/undefined.mjs +5 -2
  132. package/dist/dataStructure/fundamentalType/identifier.d.ts +2 -2
  133. package/dist/dataStructure/helpers/array.d.ts +1 -1
  134. package/dist/dataStructure/helpers/bigint.d.ts +1 -1
  135. package/dist/dataStructure/helpers/boolean.d.ts +1 -1
  136. package/dist/dataStructure/helpers/date.d.ts +1 -1
  137. package/dist/dataStructure/helpers/index.d.ts +1 -0
  138. package/dist/dataStructure/helpers/lazy.d.ts +1 -1
  139. package/dist/dataStructure/helpers/null.d.ts +1 -1
  140. package/dist/dataStructure/helpers/number.d.ts +1 -1
  141. package/dist/dataStructure/helpers/object.d.ts +1 -1
  142. package/dist/dataStructure/helpers/record.d.ts +1 -1
  143. package/dist/dataStructure/helpers/string.d.ts +1 -1
  144. package/dist/dataStructure/helpers/time.d.ts +1 -1
  145. package/dist/dataStructure/helpers/trimmed.cjs +7 -0
  146. package/dist/dataStructure/helpers/trimmed.d.ts +2 -0
  147. package/dist/dataStructure/helpers/trimmed.mjs +7 -0
  148. package/dist/dataStructure/helpers/undefined.d.ts +1 -1
  149. package/dist/dataStructure/helpers/union.d.ts +1 -1
  150. package/dist/dataStructure/index.cjs +38 -0
  151. package/dist/dataStructure/index.mjs +31 -10
  152. package/dist/dataStructure/structure/base.cjs +15 -5
  153. package/dist/dataStructure/structure/base.d.ts +7 -4
  154. package/dist/dataStructure/structure/base.mjs +15 -5
  155. package/dist/dataStructure/structure/defaults/array.d.ts +1 -1
  156. package/dist/dataStructure/structure/defaults/array.mjs +8 -5
  157. package/dist/dataStructure/structure/defaults/index.d.ts +1 -0
  158. package/dist/dataStructure/structure/defaults/lazy.cjs +4 -2
  159. package/dist/dataStructure/structure/defaults/lazy.d.ts +1 -1
  160. package/dist/dataStructure/structure/defaults/lazy.mjs +4 -2
  161. package/dist/dataStructure/structure/defaults/nonEncodableString.cjs +17 -0
  162. package/dist/dataStructure/structure/defaults/nonEncodableString.d.ts +10 -0
  163. package/dist/dataStructure/structure/defaults/nonEncodableString.mjs +16 -0
  164. package/dist/dataStructure/structure/defaults/object.d.ts +1 -1
  165. package/dist/dataStructure/structure/defaults/object.mjs +8 -5
  166. package/dist/dataStructure/structure/defaults/record.d.ts +1 -1
  167. package/dist/dataStructure/structure/defaults/record.mjs +8 -5
  168. package/dist/dataStructure/structure/defaults/type.cjs +1 -1
  169. package/dist/dataStructure/structure/defaults/type.d.ts +1 -1
  170. package/dist/dataStructure/structure/defaults/type.mjs +2 -2
  171. package/dist/dataStructure/structure/defaults/union.cjs +9 -9
  172. package/dist/dataStructure/structure/defaults/union.d.ts +1 -1
  173. package/dist/dataStructure/structure/defaults/union.mjs +18 -15
  174. package/dist/dataStructure/structure/identifier.d.ts +2 -2
  175. package/dist/dataStructure/structure/types/constraintsValue.d.ts +1 -1
  176. package/dist/dataStructure/structure/types/structures.d.ts +2 -1
  177. package/dist/dataStructure/structure/types/value.d.ts +1 -1
  178. package/dist/dataStructure/type/base.cjs +17 -4
  179. package/dist/dataStructure/type/base.d.ts +7 -3
  180. package/dist/dataStructure/type/base.mjs +17 -4
  181. package/dist/dataStructure/type/defaults/bigintLiteral.cjs +1 -1
  182. package/dist/dataStructure/type/defaults/bigintLiteral.mjs +1 -1
  183. package/dist/dataStructure/type/defaults/booleanLiteral.cjs +1 -1
  184. package/dist/dataStructure/type/defaults/booleanLiteral.mjs +1 -1
  185. package/dist/dataStructure/type/defaults/numberLiteral.cjs +1 -1
  186. package/dist/dataStructure/type/defaults/numberLiteral.mjs +1 -1
  187. package/dist/dataStructure/type/defaults/stringLiteral.cjs +1 -1
  188. package/dist/dataStructure/type/defaults/stringLiteral.mjs +1 -1
  189. package/dist/dataStructure/type/identifier.d.ts +2 -2
  190. package/dist/generator/asyncChunk.d.ts +3 -2
  191. package/dist/generator/chunk.d.ts +3 -2
  192. package/dist/generator/types/flat.d.ts +2 -2
  193. package/dist/invocation/flow/base.d.ts +7 -2
  194. package/dist/invocation/flow/controller/base.d.ts +1 -0
  195. package/dist/invocation/flow/controller/defaults/aborter.cjs +35 -0
  196. package/dist/invocation/flow/controller/defaults/aborter.d.ts +14 -0
  197. package/dist/invocation/flow/controller/defaults/aborter.mjs +33 -0
  198. package/dist/invocation/flow/controller/defaults/filter.cjs +5 -3
  199. package/dist/invocation/flow/controller/defaults/filter.d.ts +1 -1
  200. package/dist/invocation/flow/controller/defaults/filter.mjs +5 -3
  201. package/dist/invocation/flow/controller/defaults/index.d.ts +1 -0
  202. package/dist/invocation/index.cjs +7 -0
  203. package/dist/invocation/index.mjs +5 -1
  204. package/dist/kind/types/getName.d.ts +2 -0
  205. package/dist/kind/types/getNamespaceName.d.ts +3 -0
  206. package/dist/kind/types/index.d.ts +2 -0
  207. package/dist/kind/types/remove.d.ts +2 -2
  208. package/dist/modeling/entity/base.cjs +2 -2
  209. package/dist/modeling/entity/base.d.ts +14 -10
  210. package/dist/modeling/entity/base.mjs +2 -2
  211. package/dist/modeling/entity/index.d.ts +0 -1
  212. package/dist/modeling/index.cjs +17 -6
  213. package/dist/modeling/index.d.ts +1 -0
  214. package/dist/modeling/index.mjs +11 -5
  215. package/dist/modeling/newType/base.cjs +6 -3
  216. package/dist/modeling/newType/base.mjs +6 -3
  217. package/dist/modeling/taggedObject/base.cjs +23 -0
  218. package/dist/modeling/taggedObject/base.d.ts +32 -0
  219. package/dist/modeling/taggedObject/base.mjs +21 -0
  220. package/dist/modeling/taggedObject/helper.cjs +29 -0
  221. package/dist/modeling/taggedObject/helper.d.ts +14 -0
  222. package/dist/modeling/taggedObject/helper.mjs +26 -0
  223. package/dist/modeling/taggedObject/index.d.ts +2 -0
  224. package/dist/number/betweenThan.d.ts +2 -2
  225. package/dist/number/betweenThanOrEqual.d.ts +2 -2
  226. package/dist/number/greaterThan.d.ts +1 -1
  227. package/dist/number/greaterThanOrEqual.d.ts +1 -1
  228. package/dist/number/lessThan.d.ts +1 -1
  229. package/dist/number/lessThanOrEqual.d.ts +1 -1
  230. package/dist/number/sort.d.ts +1 -1
  231. package/dist/pattern/index.cjs +12 -0
  232. package/dist/pattern/index.d.ts +4 -0
  233. package/dist/pattern/index.mjs +9 -1
  234. package/dist/pattern/matchWithEntity.cjs +12 -0
  235. package/dist/pattern/matchWithEntity.d.ts +12 -0
  236. package/dist/pattern/matchWithEntity.mjs +12 -0
  237. package/dist/pattern/matchWithEntityOtherwise.cjs +13 -0
  238. package/dist/pattern/matchWithEntityOtherwise.d.ts +14 -0
  239. package/dist/pattern/matchWithEntityOtherwise.mjs +13 -0
  240. package/dist/pattern/matchWithNumberOtherwise.cjs +2 -6
  241. package/dist/pattern/matchWithNumberOtherwise.mjs +2 -6
  242. package/dist/pattern/matchWithStringOtherwise.cjs +2 -6
  243. package/dist/pattern/matchWithStringOtherwise.d.ts +1 -1
  244. package/dist/pattern/matchWithStringOtherwise.mjs +2 -6
  245. package/dist/pattern/matchWithTaggedObject.cjs +12 -0
  246. package/dist/pattern/matchWithTaggedObject.d.ts +12 -0
  247. package/dist/pattern/matchWithTaggedObject.mjs +12 -0
  248. package/dist/pattern/matchWithTaggedObjectOtherwise.cjs +13 -0
  249. package/dist/pattern/matchWithTaggedObjectOtherwise.d.ts +14 -0
  250. package/dist/pattern/matchWithTaggedObjectOtherwise.mjs +13 -0
  251. package/dist/string/at.d.ts +2 -2
  252. package/dist/string/first.d.ts +1 -1
  253. package/dist/string/index.cjs +3 -0
  254. package/dist/string/index.mjs +3 -1
  255. package/dist/string/last.d.ts +1 -1
  256. package/dist/string/lengthEqual.d.ts +1 -1
  257. package/dist/string/maxCharacters.d.ts +1 -1
  258. package/dist/string/minCharacters.d.ts +1 -1
  259. package/dist/string/padEnd.d.ts +1 -1
  260. package/dist/string/padStart.d.ts +1 -1
  261. package/dist/string/pop.d.ts +1 -1
  262. package/dist/string/shift.d.ts +1 -1
  263. package/dist/string/slice.d.ts +1 -1
  264. package/dist/string/substring.d.ts +1 -1
  265. package/dist/string/trim/default.d.ts +1 -1
  266. package/dist/string/trim/end.d.ts +1 -1
  267. package/dist/string/trim/index.d.ts +1 -0
  268. package/dist/string/trim/is.cjs +6 -0
  269. package/dist/string/trim/is.d.ts +2 -0
  270. package/dist/string/trim/is.mjs +6 -0
  271. package/dist/string/trim/start.d.ts +1 -1
  272. package/package.json +1 -1
  273. package/dist/modeling/entity/entityName.cjs +0 -13
  274. package/dist/modeling/entity/entityName.d.ts +0 -13
  275. package/dist/modeling/entity/entityName.mjs +0 -13
@@ -2,7 +2,8 @@ import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
2
2
  import { createKind } from "./kind.mjs";
3
3
  import { ErrorSymbol, SuccessSymbol } from "./common/resultSymbol.mjs";
4
4
  import { codecKind, codecsKind, createCodec, createCodecs } from "./common/codec.mjs";
5
- import { createErrorHandler, createGetErrorHandler } from "./common/error.mjs";
5
+ import { createErrorHandler, createGetErrorHandler, decodeIssueKind, encodeIssueKind, issueKind } from "./common/error.mjs";
6
+ import { createErrorInterpreter } from "./common/errorInterpreter.mjs";
6
7
  import { constraintKind, createConstraint } from "./constraint/base.mjs";
7
8
  import { AllowedCharactersConstraint, allowedCharactersConstraintKind } from "./constraint/defaults/allowedCharacters.mjs";
8
9
  import { ArrayLengthEqualConstraint, arrayLengthEqualConstraintKind } from "./constraint/defaults/arrayLengthEqual.mjs";
@@ -30,23 +31,25 @@ import { SafeConstraint, safeConstraintKind } from "./constraint/defaults/safe.m
30
31
  import { StrictNegativeConstraint, strictNegativeConstraintKind } from "./constraint/defaults/strictNegative.mjs";
31
32
  import { StrictPositiveConstraint, strictPositiveConstraintKind } from "./constraint/defaults/strictPositive.mjs";
32
33
  import { StringLengthEqualConstraint, stringLengthEqualConstraintKind } from "./constraint/defaults/stringLengthEqual.mjs";
34
+ import { TrimmedConstraint, trimmedConstraintKind } from "./constraint/defaults/trimmed.mjs";
33
35
  import { UrlConstraint, urlConstraintKind } from "./constraint/defaults/url.mjs";
34
36
  import { UuidConstraint, uuidConstraintKind, uuidRegex } from "./constraint/defaults/uuid.mjs";
35
37
  import { constraintIdentifier } from "./constraint/identifier.mjs";
36
38
  import { createFundamentalType, fundamentalTypeKind } from "./fundamentalType/base.mjs";
37
- import { TheBigint } from "./fundamentalType/defaults/bigint.mjs";
38
- import { TheBoolean } from "./fundamentalType/defaults/boolean.mjs";
39
- import { TheDate } from "./fundamentalType/defaults/date.mjs";
40
- import { TheNull } from "./fundamentalType/defaults/null.mjs";
41
- import { TheNumber } from "./fundamentalType/defaults/number.mjs";
42
- import { TheString } from "./fundamentalType/defaults/string.mjs";
43
- import { TheTime } from "./fundamentalType/defaults/time.mjs";
44
- import { TheUndefined } from "./fundamentalType/defaults/undefined.mjs";
39
+ import { TheBigint, bigintFundamentalTypeKind } from "./fundamentalType/defaults/bigint.mjs";
40
+ import { TheBoolean, booleanFundamentalTypeKind } from "./fundamentalType/defaults/boolean.mjs";
41
+ import { TheDate, dateFundamentalTypeKind } from "./fundamentalType/defaults/date.mjs";
42
+ import { TheNull, nullFundamentalTypeKind } from "./fundamentalType/defaults/null.mjs";
43
+ import { TheNumber, numberFundamentalTypeKind } from "./fundamentalType/defaults/number.mjs";
44
+ import { TheString, stringFundamentalTypeKind } from "./fundamentalType/defaults/string.mjs";
45
+ import { TheTime, timeFundamentalTypeKind } from "./fundamentalType/defaults/time.mjs";
46
+ import { TheUndefined, undefinedFundamentalTypeKind } from "./fundamentalType/defaults/undefined.mjs";
45
47
  import { fundamentalTypeIdentifier } from "./fundamentalType/identifier.mjs";
46
48
  import { allowedCharacters } from "./helpers/allowedCharacters.mjs";
47
49
  import { StructureClass, createStructure, structureKind } from "./structure/base.mjs";
48
50
  import { ArrayStructure, arrayStructureKind } from "./structure/defaults/array.mjs";
49
51
  import { LazyStructure, lazyStructureKind } from "./structure/defaults/lazy.mjs";
52
+ import { NonEncodableStringStructure, nonEncodableStringStructureKind } from "./structure/defaults/nonEncodableString.mjs";
50
53
  import { ObjectStructure, objectStructureKind } from "./structure/defaults/object.mjs";
51
54
  import { structureIdentifier } from "./structure/identifier.mjs";
52
55
  import { UnionStructure, unionStructureKind } from "./structure/defaults/union.mjs";
@@ -112,6 +115,7 @@ import { strictNegative } from "./helpers/strictNegative.mjs";
112
115
  import { strictPositive } from "./helpers/strictPositive.mjs";
113
116
  import { stringLengthEqual } from "./helpers/stringLengthEqual.mjs";
114
117
  import { time } from "./helpers/time.mjs";
118
+ import { trimmed } from "./helpers/trimmed.mjs";
115
119
  import { url } from "./helpers/url.mjs";
116
120
  import { uuid } from "./helpers/uuid.mjs";
117
121
  //#region scripts/dataStructure/index.ts
@@ -141,6 +145,7 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
141
145
  MinElementsConstraint: () => MinElementsConstraint,
142
146
  MultipleOfConstraint: () => MultipleOfConstraint,
143
147
  NegativeConstraint: () => NegativeConstraint,
148
+ NonEncodableStringStructure: () => NonEncodableStringStructure,
144
149
  NotEmptyConstraint: () => NotEmptyConstraint,
145
150
  NotZeroConstraint: () => NotZeroConstraint,
146
151
  NullType: () => NullType,
@@ -168,6 +173,7 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
168
173
  TheTime: () => TheTime,
169
174
  TheUndefined: () => TheUndefined,
170
175
  TimeType: () => TimeType,
176
+ TrimmedConstraint: () => TrimmedConstraint,
171
177
  TypeStructure: () => TypeStructure,
172
178
  UndefinedType: () => UndefinedType,
173
179
  UnionStructure: () => UnionStructure,
@@ -184,9 +190,11 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
184
190
  betweenThanOrEqual: () => betweenThanOrEqual,
185
191
  betweenThanOrEqualConstraintKind: () => betweenThanOrEqualConstraintKind,
186
192
  bigint: () => bigint,
193
+ bigintFundamentalTypeKind: () => bigintFundamentalTypeKind,
187
194
  bigintLiteralTypeKind: () => bigintLiteralTypeKind,
188
195
  bigintTypeKind: () => bigintTypeKind,
189
196
  boolean: () => boolean,
197
+ booleanFundamentalTypeKind: () => booleanFundamentalTypeKind,
190
198
  booleanLiteralTypeKind: () => booleanLiteralTypeKind,
191
199
  booleanTypeKind: () => booleanTypeKind,
192
200
  codecKind: () => codecKind,
@@ -197,15 +205,19 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
197
205
  createCodecs: () => createCodecs,
198
206
  createConstraint: () => createConstraint,
199
207
  createErrorHandler: () => createErrorHandler,
208
+ createErrorInterpreter: () => createErrorInterpreter,
200
209
  createFundamentalType: () => createFundamentalType,
201
210
  createGetErrorHandler: () => createGetErrorHandler,
202
211
  createKind: () => createKind,
203
212
  createStructure: () => createStructure,
204
213
  createType: () => createType,
205
214
  date: () => date,
215
+ dateFundamentalTypeKind: () => dateFundamentalTypeKind,
206
216
  dateTypeKind: () => dateTypeKind,
217
+ decodeIssueKind: () => decodeIssueKind,
207
218
  email: () => email,
208
219
  emailConstraintKind: () => emailConstraintKind,
220
+ encodeIssueKind: () => encodeIssueKind,
209
221
  even: () => even,
210
222
  evenConstraintKind: () => evenConstraintKind,
211
223
  extend: () => extend,
@@ -219,6 +231,7 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
219
231
  integerConstraintKind: () => integerConstraintKind,
220
232
  isNullStructure: () => isNullStructure,
221
233
  isUndefinedStructure: () => isUndefinedStructure,
234
+ issueKind: () => issueKind,
222
235
  lazy: () => lazy,
223
236
  lazyStructureKind: () => lazyStructureKind,
224
237
  lessThan: () => lessThan,
@@ -237,14 +250,17 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
237
250
  multipleOfConstraintKind: () => multipleOfConstraintKind,
238
251
  negative: () => negative,
239
252
  negativeConstraintKind: () => negativeConstraintKind,
253
+ nonEncodableStringStructureKind: () => nonEncodableStringStructureKind,
240
254
  notEmpty: () => notEmpty,
241
255
  notEmptyConstraintKind: () => notEmptyConstraintKind,
242
256
  notZero: () => notZero,
243
257
  notZeroConstraintKind: () => notZeroConstraintKind,
244
258
  null: () => nullHelper,
259
+ nullFundamentalTypeKind: () => nullFundamentalTypeKind,
245
260
  nullTypeKind: () => nullTypeKind,
246
261
  nullable: () => nullable,
247
262
  number: () => number,
263
+ numberFundamentalTypeKind: () => numberFundamentalTypeKind,
248
264
  numberLiteralTypeKind: () => numberLiteralTypeKind,
249
265
  numberTypeKind: () => numberTypeKind,
250
266
  object: () => object,
@@ -267,6 +283,7 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
267
283
  strictPositive: () => strictPositive,
268
284
  strictPositiveConstraintKind: () => strictPositiveConstraintKind,
269
285
  string: () => string,
286
+ stringFundamentalTypeKind: () => stringFundamentalTypeKind,
270
287
  stringLengthEqual: () => stringLengthEqual,
271
288
  stringLengthEqualConstraintKind: () => stringLengthEqualConstraintKind,
272
289
  stringLiteralTypeKind: () => stringLiteralTypeKind,
@@ -275,11 +292,15 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
275
292
  structureIdentifier: () => structureIdentifier,
276
293
  structureKind: () => structureKind,
277
294
  time: () => time,
295
+ timeFundamentalTypeKind: () => timeFundamentalTypeKind,
278
296
  timeTypeKind: () => timeTypeKind,
297
+ trimmed: () => trimmed,
298
+ trimmedConstraintKind: () => trimmedConstraintKind,
279
299
  typeIdentifier: () => typeIdentifier,
280
300
  typeKind: () => typeKind,
281
301
  typeStructureKind: () => typeStructureKind,
282
302
  undefined: () => undefinedHelper,
303
+ undefinedFundamentalTypeKind: () => undefinedFundamentalTypeKind,
283
304
  undefinedTypeKind: () => undefinedTypeKind,
284
305
  union: () => union,
285
306
  unionStructureKind: () => unionStructureKind,
@@ -290,4 +311,4 @@ var dataStructure_exports = /* @__PURE__ */ __exportAll({
290
311
  uuidRegex: () => uuidRegex
291
312
  });
292
313
  //#endregion
293
- export { AllowedCharactersConstraint, ArrayLengthEqualConstraint, ArrayStructure, BetweenThanConstraint, BetweenThanOrEqualConstraint, BigintLiteralType, BigintType, BooleanLiteralType, BooleanType, DateType, EmailConstraint, ErrorSymbol, EvenConstraint, GreaterThanConstraint, GreaterThanOrEqualConstraint, IntegerConstraint, LazyStructure, LessThanConstraint, LessThanOrEqualConstraint, MaxCharactersConstraint, MaxElementsConstraint, MinCharactersConstraint, MinElementsConstraint, MultipleOfConstraint, NegativeConstraint, NotEmptyConstraint, NotZeroConstraint, NullType, NumberLiteralType, NumberType, ObjectStructure, OddConstraint, PositiveConstraint, RecordStructure, RefineConstraint, SafeConstraint, StrictNegativeConstraint, StrictPositiveConstraint, StringLengthEqualConstraint, StringLiteralType, StringType, StructureClass, SuccessSymbol, TheBigint, TheBoolean, TheDate, TheNull, TheNumber, TheString, TheTime, TheUndefined, TimeType, TypeStructure, UndefinedType, UnionStructure, UrlConstraint, UuidConstraint, allowedCharacters, allowedCharactersConstraintKind, array, arrayLengthEqual, arrayLengthEqualConstraintKind, arrayStructureKind, betweenThan, betweenThanConstraintKind, betweenThanOrEqual, betweenThanOrEqualConstraintKind, bigint, bigintLiteralTypeKind, bigintTypeKind, boolean, booleanLiteralTypeKind, booleanTypeKind, codecKind, codecsKind, constraintIdentifier, constraintKind, createCodec, createCodecs, createConstraint, createErrorHandler, createFundamentalType, createGetErrorHandler, createKind, createStructure, createType, dataStructure_exports, date, dateTypeKind, email, emailConstraintKind, even, evenConstraintKind, extend, fundamentalTypeIdentifier, fundamentalTypeKind, greaterThan, greaterThanConstraintKind, greaterThanOrEqual, greaterThanOrEqualConstraintKind, integer, integerConstraintKind, isNullStructure, isUndefinedStructure, lazy, lazyStructureKind, lessThan, lessThanConstraintKind, lessThanOrEqual, lessThanOrEqualConstraintKind, literal, maxCharacters, maxCharactersConstraintKind, maxElements, maxElementsConstraintKind, minCharacters, minElements, minElementsConstraintKind, multipleOf, multipleOfConstraintKind, negative, negativeConstraintKind, notEmpty, notEmptyConstraintKind, notZero, notZeroConstraintKind, nullHelper as null, nullTypeKind, nullable, number, numberLiteralTypeKind, numberTypeKind, object, objectStructureKind, odd, oddConstraintKind, optional, partial, positive, positiveConstraintKind, record, recordStructureKind, refine, refineConstraintKind, required, safe, safeConstraintKind, strictNegative, strictNegativeConstraintKind, strictPositive, strictPositiveConstraintKind, string, stringLengthEqual, stringLengthEqualConstraintKind, stringLiteralTypeKind, stringMinConstraintKind, stringTypeKind, structureIdentifier, structureKind, time, timeTypeKind, typeIdentifier, typeKind, typeStructureKind, undefinedHelper as undefined, undefinedTypeKind, union, unionStructureKind, url, urlConstraintKind, uuid, uuidConstraintKind, uuidRegex };
314
+ export { AllowedCharactersConstraint, ArrayLengthEqualConstraint, ArrayStructure, BetweenThanConstraint, BetweenThanOrEqualConstraint, BigintLiteralType, BigintType, BooleanLiteralType, BooleanType, DateType, EmailConstraint, ErrorSymbol, EvenConstraint, GreaterThanConstraint, GreaterThanOrEqualConstraint, IntegerConstraint, LazyStructure, LessThanConstraint, LessThanOrEqualConstraint, MaxCharactersConstraint, MaxElementsConstraint, MinCharactersConstraint, MinElementsConstraint, MultipleOfConstraint, NegativeConstraint, NonEncodableStringStructure, NotEmptyConstraint, NotZeroConstraint, NullType, NumberLiteralType, NumberType, ObjectStructure, OddConstraint, PositiveConstraint, RecordStructure, RefineConstraint, SafeConstraint, StrictNegativeConstraint, StrictPositiveConstraint, StringLengthEqualConstraint, StringLiteralType, StringType, StructureClass, SuccessSymbol, TheBigint, TheBoolean, TheDate, TheNull, TheNumber, TheString, TheTime, TheUndefined, TimeType, TrimmedConstraint, TypeStructure, UndefinedType, UnionStructure, UrlConstraint, UuidConstraint, allowedCharacters, allowedCharactersConstraintKind, array, arrayLengthEqual, arrayLengthEqualConstraintKind, arrayStructureKind, betweenThan, betweenThanConstraintKind, betweenThanOrEqual, betweenThanOrEqualConstraintKind, bigint, bigintFundamentalTypeKind, bigintLiteralTypeKind, bigintTypeKind, boolean, booleanFundamentalTypeKind, booleanLiteralTypeKind, booleanTypeKind, codecKind, codecsKind, 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, isUndefinedStructure, issueKind, lazy, lazyStructureKind, lessThan, lessThanConstraintKind, lessThanOrEqual, lessThanOrEqualConstraintKind, literal, maxCharacters, maxCharactersConstraintKind, maxElements, maxElementsConstraintKind, minCharacters, minElements, minElementsConstraintKind, multipleOf, multipleOfConstraintKind, negative, negativeConstraintKind, nonEncodableStringStructureKind, notEmpty, notEmptyConstraintKind, notZero, notZeroConstraintKind, nullHelper as null, nullFundamentalTypeKind, nullTypeKind, nullable, number, numberFundamentalTypeKind, numberLiteralTypeKind, numberTypeKind, object, objectStructureKind, odd, oddConstraintKind, optional, partial, positive, positiveConstraintKind, record, recordStructureKind, refine, refineConstraintKind, required, safe, safeConstraintKind, strictNegative, strictNegativeConstraintKind, strictPositive, strictPositiveConstraintKind, string, stringFundamentalTypeKind, stringLengthEqual, stringLengthEqualConstraintKind, stringLiteralTypeKind, stringMinConstraintKind, stringTypeKind, structureIdentifier, structureKind, time, timeFundamentalTypeKind, timeTypeKind, trimmed, trimmedConstraintKind, typeIdentifier, typeKind, typeStructureKind, undefinedHelper as undefined, undefinedFundamentalTypeKind, undefinedTypeKind, union, unionStructureKind, url, urlConstraintKind, uuid, uuidConstraintKind, uuidRegex };
@@ -2,6 +2,7 @@ const require_bindPrototypeMethods = require("../../common/bindPrototypeMethods.
2
2
  const require_callThen = require("../../common/callThen.cjs");
3
3
  const require_create = require("../../either/left/create.cjs");
4
4
  const require_create$1 = require("../../either/right/create.cjs");
5
+ const require_simpleClone = require("../../common/simpleClone.cjs");
5
6
  const require_kind = require("../kind.cjs");
6
7
  const require_resultSymbol = require("../common/resultSymbol.cjs");
7
8
  const require_error = require("../common/error.cjs");
@@ -15,7 +16,9 @@ var StructureClass = class StructureClass {
15
16
  return self;
16
17
  }
17
18
  static addToPrototype(prop, value) {
18
- StructureClass.prototype[prop] = value;
19
+ StructureClass.prototype[prop] = typeof value === "function" ? function(...args) {
20
+ return value(this, ...args);
21
+ } : value;
19
22
  }
20
23
  };
21
24
  const structureKind = require_kind.createKind("structure");
@@ -34,7 +37,7 @@ function createStructure(kindHandler, createConstructor) {
34
37
  executeDecode,
35
38
  isAsynchronous
36
39
  }, ...rest),
37
- executeConstraints: (data, errorHandler) => definition.constraints.reduce((accumulator, constraint) => require_callThen.callThen(accumulator, (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : constraint.executeCheck(data, errorHandler)), require_resultSymbol.SuccessSymbol),
40
+ 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),
38
41
  executeCheck: (data, errorHandler) => require_callThen.callThen(executeCheck(self, data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : self.executeConstraints(data, errorHandler)),
39
42
  executeEncode: (codecContext, data, errorHandler) => executeEncode(self, codecContext, data, errorHandler),
40
43
  executeDecode: (codecContext, data, errorHandler) => executeDecode(self, codecContext, data, errorHandler),
@@ -58,8 +61,8 @@ function createStructure(kindHandler, createConstructor) {
58
61
  if (await self.executeCheck(data, errorHandler) === require_resultSymbol.ErrorSymbol) return require_create.left("check-error", errorHandler().createError());
59
62
  return require_create$1.right("check-success", data);
60
63
  },
61
- is: (data, errorHandler) => {
62
- const result = self.executeCheck(data, errorHandler);
64
+ is: (data) => {
65
+ const result = self.executeCheck(data);
63
66
  if (result instanceof Promise || result === require_resultSymbol.ErrorSymbol) return false;
64
67
  return true;
65
68
  },
@@ -94,12 +97,19 @@ function createStructure(kindHandler, createConstructor) {
94
97
  return require_create$1.right("decode-success", result);
95
98
  },
96
99
  contract: () => self,
97
- clone: () => init(definition, {
100
+ clone: () => init(require_simpleClone.simpleClone(definition), {
98
101
  executeCheck,
99
102
  executeEncode,
100
103
  executeDecode,
101
104
  isAsynchronous
102
105
  }, ...rest),
106
+ setMessage: (message) => {
107
+ self.definition.message = message;
108
+ return self;
109
+ },
110
+ addMessage: (message) => {
111
+ return self.clone().setMessage(message);
112
+ },
103
113
  [kindHandler.runTimeKey]: null,
104
114
  [structureKind.runTimeKey]: null
105
115
  });
@@ -7,15 +7,16 @@ import * as DCommon from '../../common';
7
7
  export declare class StructureClass {
8
8
  private constructor();
9
9
  static init(params: DKind.Remove<Structure>): Structure;
10
- static addToPrototype<GenericProp extends keyof Structure>(prop: GenericProp, value: Structure[GenericProp]): void;
10
+ static addToPrototype<GenericProp extends keyof Structure>(prop: GenericProp, value: Structure[GenericProp] extends infer InferredValue ? InferredValue extends DCommon.AnyFunction ? (self: Structure, ...rest: Parameters<InferredValue>) => ReturnType<InferredValue> : Structure[GenericProp] : never): void;
11
11
  }
12
12
  export declare const structureKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/structure", unknown>>;
13
13
  export interface StructureDefinition<GenericConstraints extends readonly Constraint<any>[] = readonly Constraint<any>[]> {
14
+ readonly message?: string;
14
15
  readonly constraints: readonly [...GenericConstraints];
15
16
  }
16
17
  export interface Structure<GenericValue extends unknown = unknown, GenericDefinition extends StructureDefinition<readonly Constraint<GenericValue>[]> = StructureDefinition<readonly Constraint<GenericValue>[]>> extends DKind.Kind<typeof structureKind, (GenericValue & StructureConstraintsValue<GenericDefinition["constraints"][number]>)> {
17
18
  readonly definition: GenericDefinition;
18
- addConstraint<const GenericNewConstraints extends DCommon.AnyTuple<Constraint<GenericValue>>>(...args: DCommon.FixDeepFunctionInfer<DCommon.AnyTuple<Constraint<GenericValue>>, GenericNewConstraints>): Structure<GenericValue, StructureDefinition<readonly [...this["definition"]["constraints"], ...GenericNewConstraints]>>;
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
20
  executeConstraints(data: unknown, errorHandler?: GetErrorHandler): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
20
21
  executeCheck(data: unknown, errorHandler?: GetErrorHandler): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
21
22
  executeEncode(codecContext: CodecContext, data: unknown, errorHandler?: GetErrorHandler): unknown;
@@ -23,7 +24,7 @@ export interface Structure<GenericValue extends unknown = unknown, GenericDefini
23
24
  isAsynchronous(): boolean;
24
25
  check(data: unknown): (DEither.Right<"check-success", StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"check-error", Error>);
25
26
  asyncCheck(data: unknown): Promise<DEither.Right<"check-success", StructureValue<this>> | DEither.Left<"check-error", Error>>;
26
- is(data: unknown, errorHandler?: GetErrorHandler): data is StructureValue<this>;
27
+ is(data: unknown): data is StructureValue<this>;
27
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>);
28
29
  asyncEncode<GenericCodecs extends Codecs>(codecs: GenericCodecs, data: StructureValue<this>): Promise<DEither.Right<"encode-success", EncodedValue<StructureValue<this>, GenericCodecs>> | DEither.Left<"encode-error", Error>>;
29
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>);
@@ -34,6 +35,8 @@ export interface Structure<GenericValue extends unknown = unknown, GenericDefini
34
35
  asyncUnsafeDecode(codecs: Codecs, data: unknown): Promise<DEither.Right<"decode-success", StructureValue<this>> | DEither.Left<"decode-error", Error>>;
35
36
  contract<GenericValue extends unknown, GenericThis extends this>(...args: DCommon.IsEqual<StructureValue<GenericThis>, GenericValue> extends true ? [] : [] & DCommon.ComputedTypeError<"Contract error.">): Structure<GenericValue>;
36
37
  clone(): this;
38
+ setMessage(massage: string): this;
39
+ addMessage(massage: string): this;
37
40
  }
38
41
  export interface CreateStructureInitParams<GenericStructure extends Structure = Structure> {
39
42
  executeCheck(self: GenericStructure, data: unknown, errorHandler?: GetErrorHandler): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
@@ -45,6 +48,6 @@ export type CreateStructureInitRest<GenericStructure extends Structure = Structu
45
48
  [Prop in Exclude<keyof GenericStructure, keyof Structure>]: GenericStructure[Prop] extends DCommon.AnyFunction ? (self: GenericStructure, ...args: Parameters<GenericStructure[Prop]>) => ReturnType<GenericStructure[Prop]> : GenericStructure[Prop];
46
49
  };
47
50
  export interface CreateStructureConstructorParams<GenericKindHandler extends DKind.Handler = DKind.Handler> {
48
- init<GenericStructure extends (Structure & DKind.Kind<GenericKindHandler>)>(definition: GenericStructure["definition"], params: CreateStructureInitParams<GenericStructure>, ...args: DCommon.IsNever<Exclude<keyof GenericStructure, keyof Structure>> extends true ? [] : [rest: CreateStructureInitRest<GenericStructure>]): GenericStructure;
51
+ init<GenericStructure extends (Structure & DKind.Kind<GenericKindHandler>)>(definition: GenericStructure["definition"], params: CreateStructureInitParams<GenericStructure>, ...args: DCommon.IsNever<Exclude<keyof GenericStructure, keyof Structure>> extends true ? [] : [rest: CreateStructureInitRest<GenericStructure>]): NoInfer<GenericStructure>;
49
52
  }
50
53
  export declare function createStructure<GenericKindHandler extends DKind.Handler, GenericConstructor extends ((...args: any[]) => (Structure & DKind.Kind<GenericKindHandler>))>(kindHandler: GenericKindHandler, createConstructor: (params: CreateStructureConstructorParams<GenericKindHandler>) => GenericConstructor): GenericConstructor;
@@ -2,6 +2,7 @@ import { bindPrototypeMethods } from "../../common/bindPrototypeMethods.mjs";
2
2
  import { callThen } from "../../common/callThen.mjs";
3
3
  import { left } from "../../either/left/create.mjs";
4
4
  import { right } from "../../either/right/create.mjs";
5
+ import { simpleClone } from "../../common/simpleClone.mjs";
5
6
  import { createKind } from "../kind.mjs";
6
7
  import { ErrorSymbol, SuccessSymbol } from "../common/resultSymbol.mjs";
7
8
  import { createGetErrorHandler } from "../common/error.mjs";
@@ -15,7 +16,9 @@ var StructureClass = class StructureClass {
15
16
  return self;
16
17
  }
17
18
  static addToPrototype(prop, value) {
18
- StructureClass.prototype[prop] = value;
19
+ StructureClass.prototype[prop] = typeof value === "function" ? function(...args) {
20
+ return value(this, ...args);
21
+ } : value;
19
22
  }
20
23
  };
21
24
  const structureKind = createKind("structure");
@@ -34,7 +37,7 @@ function createStructure(kindHandler, createConstructor) {
34
37
  executeDecode,
35
38
  isAsynchronous
36
39
  }, ...rest),
37
- executeConstraints: (data, errorHandler) => definition.constraints.reduce((accumulator, constraint) => callThen(accumulator, (result) => result === ErrorSymbol ? ErrorSymbol : constraint.executeCheck(data, errorHandler)), SuccessSymbol),
40
+ 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),
38
41
  executeCheck: (data, errorHandler) => callThen(executeCheck(self, data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : self.executeConstraints(data, errorHandler)),
39
42
  executeEncode: (codecContext, data, errorHandler) => executeEncode(self, codecContext, data, errorHandler),
40
43
  executeDecode: (codecContext, data, errorHandler) => executeDecode(self, codecContext, data, errorHandler),
@@ -58,8 +61,8 @@ function createStructure(kindHandler, createConstructor) {
58
61
  if (await self.executeCheck(data, errorHandler) === ErrorSymbol) return left("check-error", errorHandler().createError());
59
62
  return right("check-success", data);
60
63
  },
61
- is: (data, errorHandler) => {
62
- const result = self.executeCheck(data, errorHandler);
64
+ is: (data) => {
65
+ const result = self.executeCheck(data);
63
66
  if (result instanceof Promise || result === ErrorSymbol) return false;
64
67
  return true;
65
68
  },
@@ -94,12 +97,19 @@ function createStructure(kindHandler, createConstructor) {
94
97
  return right("decode-success", result);
95
98
  },
96
99
  contract: () => self,
97
- clone: () => init(definition, {
100
+ clone: () => init(simpleClone(definition), {
98
101
  executeCheck,
99
102
  executeEncode,
100
103
  executeDecode,
101
104
  isAsynchronous
102
105
  }, ...rest),
106
+ setMessage: (message) => {
107
+ self.definition.message = message;
108
+ return self;
109
+ },
110
+ addMessage: (message) => {
111
+ return self.clone().setMessage(message);
112
+ },
103
113
  [kindHandler.runTimeKey]: null,
104
114
  [structureKind.runTimeKey]: null
105
115
  });
@@ -15,4 +15,4 @@ export interface ArrayStructureDefinition<GenericConstraints extends readonly Co
15
15
  }
16
16
  export interface ArrayStructure<GenericValue extends readonly unknown[] = readonly unknown[], GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.UnionToIntersection<Structure<GenericValue, ArrayStructureDefinition<GenericConstraints>> & DKind.Kind<typeof arrayStructureKind>> {
17
17
  }
18
- export declare const ArrayStructure: <GenericElement extends Structure, const GenericConstraints extends readonly Constraint<readonly StructureValue<GenericElement>[]>[]>(element: GenericElement, constraints: GenericConstraints) => ArrayStructure<readonly StructureValue<GenericElement>[], readonly [...GenericConstraints]>;
18
+ export declare const ArrayStructure: <GenericElement extends Structure, const GenericConstraints extends readonly Constraint<readonly StructureValue<GenericElement>[]>[]>(element: GenericElement, constraints: GenericConstraints) => NoInfer<ArrayStructure<readonly StructureValue<GenericElement>[], readonly [...GenericConstraints]>>;
@@ -11,7 +11,8 @@ const ArrayStructure = createStructure(arrayStructureKind, ({ init }) => (elemen
11
11
  executeCheck: (self, data, errorHandler) => {
12
12
  if (!Array.isArray(data)) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
13
13
  const pathStage = errorHandler?.().createPathStage();
14
- return callThen(data.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`[array: ${index}]`) ?? callThen(self.definition.element.executeCheck(value, errorHandler), (result) => result === ErrorSymbol || awaitedAccumulator === ErrorSymbol ? ErrorSymbol : SuccessSymbol)), SuccessSymbol), (awaitedResult) => {
14
+ const result = data.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`[array: ${index}]`) ?? callThen(self.definition.element.executeCheck(value, errorHandler), (result) => result === ErrorSymbol || awaitedAccumulator === ErrorSymbol ? ErrorSymbol : SuccessSymbol)), SuccessSymbol);
15
+ return callThen(result, (awaitedResult) => {
15
16
  pathStage?.close();
16
17
  return awaitedResult;
17
18
  });
@@ -19,20 +20,22 @@ const ArrayStructure = createStructure(arrayStructureKind, ({ init }) => (elemen
19
20
  executeEncode: (self, codecContext, data, errorHandler) => {
20
21
  if (!Array.isArray(data)) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
21
22
  const pathStage = errorHandler?.().createPathStage();
22
- return callThen(data.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`[array: ${index}]`) ?? callThen(self.definition.element.executeEncode(codecContext, value, errorHandler), (encodedData) => {
23
+ const encodedData = data.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`[array: ${index}]`) ?? callThen(self.definition.element.executeEncode(codecContext, value, errorHandler), (encodedData) => {
23
24
  if (encodedData === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
24
25
  awaitedAccumulator[index] = encodedData;
25
26
  return awaitedAccumulator;
26
- })), []), (awaitedEncodedData) => pathStage?.close() ?? (awaitedEncodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData)));
27
+ })), []);
28
+ return callThen(encodedData, (awaitedEncodedData) => pathStage?.close() ?? (awaitedEncodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData)));
27
29
  },
28
30
  executeDecode: (self, codecContext, data, errorHandler) => {
29
31
  if (!Array.isArray(data)) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
30
32
  const pathStage = errorHandler?.().createPathStage();
31
- return callThen(data.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`[array: ${index}]`) ?? callThen(self.definition.element.executeDecode(codecContext, value, errorHandler), (decodedData) => {
33
+ const decodedData = data.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`[array: ${index}]`) ?? callThen(self.definition.element.executeDecode(codecContext, value, errorHandler), (decodedData) => {
32
34
  if (decodedData === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
33
35
  awaitedAccumulator[index] = decodedData;
34
36
  return awaitedAccumulator;
35
- })), []), (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData)));
37
+ })), []);
38
+ return callThen(decodedData, (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData)));
36
39
  },
37
40
  isAsynchronous: (self) => self.definition.element.isAsynchronous()
38
41
  }));
@@ -1,5 +1,6 @@
1
1
  export * from './array';
2
2
  export * from './lazy';
3
+ export * from './nonEncodableString';
3
4
  export * from './object';
4
5
  export * from './record';
5
6
  export * from './type';
@@ -1,5 +1,7 @@
1
+ const require_callThen = require("../../../common/callThen.cjs");
1
2
  const require_memo = require("../../../common/memo.cjs");
2
3
  const require_kind = require("../../kind.cjs");
4
+ const require_resultSymbol = require("../../common/resultSymbol.cjs");
3
5
  const require_base = require("../base.cjs");
4
6
  //#region scripts/dataStructure/structure/defaults/lazy.ts
5
7
  const lazyStructureKind = require_kind.createKind("lazy-structure");
@@ -8,8 +10,8 @@ const LazyStructure = require_base.createStructure(lazyStructureKind, ({ init })
8
10
  constraints
9
11
  }, {
10
12
  executeCheck: (self, data, errorHandler) => self.definition.getter.value.executeCheck(data, errorHandler),
11
- executeEncode: (self, codecContext, data, errorHandler) => self.definition.getter.value.executeEncode(codecContext, data, errorHandler),
12
- executeDecode: (self, codecContext, data, errorHandler) => self.definition.getter.value.executeDecode(codecContext, data, errorHandler),
13
+ 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)),
14
+ 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)),
13
15
  isAsynchronous: (self) => self.definition.getter.value.isAsynchronous()
14
16
  }));
15
17
  //#endregion
@@ -9,4 +9,4 @@ export interface LazyStructureDefinition<GenericConstraints extends readonly Con
9
9
  }
10
10
  export interface LazyStructure<GenericValue extends unknown = unknown, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.UnionToIntersection<Structure<GenericValue, LazyStructureDefinition<GenericConstraints>> & DKind.Kind<typeof lazyStructureKind>> {
11
11
  }
12
- export declare const LazyStructure: <GenericStructure extends Structure, const GenericConstraints extends readonly Constraint<StructureValue<GenericStructure>>[]>(getStructure: () => GenericStructure, constraints: GenericConstraints) => LazyStructure<StructureValue<GenericStructure>, readonly [...GenericConstraints]>;
12
+ export declare const LazyStructure: <GenericStructure extends Structure, const GenericConstraints extends readonly Constraint<StructureValue<GenericStructure>>[]>(getStructure: () => GenericStructure, constraints: GenericConstraints) => NoInfer<LazyStructure<StructureValue<GenericStructure>, readonly [...GenericConstraints]>>;
@@ -1,5 +1,7 @@
1
+ import { callThen } from "../../../common/callThen.mjs";
1
2
  import { memo } from "../../../common/memo.mjs";
2
3
  import { createKind } from "../../kind.mjs";
4
+ import { ErrorSymbol } from "../../common/resultSymbol.mjs";
3
5
  import { createStructure } from "../base.mjs";
4
6
  //#region scripts/dataStructure/structure/defaults/lazy.ts
5
7
  const lazyStructureKind = createKind("lazy-structure");
@@ -8,8 +10,8 @@ const LazyStructure = createStructure(lazyStructureKind, ({ init }) => (getStruc
8
10
  constraints
9
11
  }, {
10
12
  executeCheck: (self, data, errorHandler) => self.definition.getter.value.executeCheck(data, errorHandler),
11
- executeEncode: (self, codecContext, data, errorHandler) => self.definition.getter.value.executeEncode(codecContext, data, errorHandler),
12
- executeDecode: (self, codecContext, data, errorHandler) => self.definition.getter.value.executeDecode(codecContext, data, errorHandler),
13
+ 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)),
14
+ 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)),
13
15
  isAsynchronous: (self) => self.definition.getter.value.isAsynchronous()
14
16
  }));
15
17
  //#endregion
@@ -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.UnionToIntersection<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 };
@@ -27,4 +27,4 @@ export interface ObjectStructureDefinition<GenericConstraints extends readonly C
27
27
  }
28
28
  export interface ObjectStructure<GenericValue extends Record<string, unknown> = Record<string, unknown>, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.UnionToIntersection<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]>>;
@@ -18,7 +18,8 @@ const ObjectStructure = createStructure(objectStructureKind, ({ init }) => (shap
18
18
  if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
19
19
  if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
20
20
  const pathStage = errorHandler?.().createPathStage();
21
- return callThen(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), (awaitedResult) => {
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
+ return callThen(result, (awaitedResult) => {
22
23
  pathStage?.close();
23
24
  return awaitedResult;
24
25
  });
@@ -27,21 +28,23 @@ const ObjectStructure = createStructure(objectStructureKind, ({ init }) => (shap
27
28
  if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
28
29
  if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
29
30
  const pathStage = errorHandler?.().createPathStage();
30
- return callThen(self.definition.shape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeEncode(codecContext, data[entry.key], errorHandler), (encodedData) => {
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) => {
31
32
  if (encodedData === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
32
33
  awaitedAccumulator[entry.key] = encodedData;
33
34
  return awaitedAccumulator;
34
- })), {}), (awaitedEncodedData) => pathStage?.close() ?? (awaitedEncodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData)));
35
+ })), {});
36
+ return callThen(encodedData, (awaitedEncodedData) => pathStage?.close() ?? (awaitedEncodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData)));
35
37
  },
36
38
  executeDecode: (self, codecContext, data, errorHandler) => {
37
39
  if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
38
40
  if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
39
41
  const pathStage = errorHandler?.().createPathStage();
40
- return callThen(self.definition.shape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeDecode(codecContext, data[entry.key], errorHandler), (decodedData) => {
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) => {
41
43
  if (decodedData === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
42
44
  awaitedAccumulator[entry.key] = decodedData;
43
45
  return awaitedAccumulator;
44
- })), {}), (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData)));
46
+ })), {});
47
+ return callThen(decodedData, (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData)));
45
48
  },
46
49
  isAsynchronous: (self) => self.definition.shape.value.some((entry) => entry.value.isAsynchronous())
47
50
  }));
@@ -16,4 +16,4 @@ export interface RecordStructureDefinition<GenericConstraints extends readonly C
16
16
  }
17
17
  export interface RecordStructure<GenericValue extends Record<string, unknown> = Record<string, unknown>, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.UnionToIntersection<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]>>;
@@ -31,7 +31,8 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
31
31
  const requiredKeys = self.definition.requiredKeys;
32
32
  if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
33
33
  const pathStage = errorHandler?.().createPathStage();
34
- return callThen((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), (awaitedResult) => {
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);
35
+ return callThen(result, (awaitedResult) => {
35
36
  pathStage?.close();
36
37
  return awaitedResult;
37
38
  });
@@ -42,11 +43,12 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
42
43
  const requiredKeys = self.definition.requiredKeys;
43
44
  if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
44
45
  const pathStage = errorHandler?.().createPathStage();
45
- return callThen((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) => {
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) => {
46
47
  if (keyResult === ErrorSymbol || encodedValue === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
47
48
  awaitedAccumulator[key] = encodedValue;
48
49
  return awaitedAccumulator;
49
- }))), {}), (awaitedEncodedData) => pathStage?.close() ?? (awaitedEncodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData)));
50
+ }))), {});
51
+ return callThen(encodedData, (awaitedEncodedData) => pathStage?.close() ?? (awaitedEncodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData)));
50
52
  },
51
53
  executeDecode: (self, codecContext, data, errorHandler) => {
52
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;
@@ -54,11 +56,12 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
54
56
  const requiredKeys = self.definition.requiredKeys;
55
57
  if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
56
58
  const pathStage = errorHandler?.().createPathStage();
57
- return callThen((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) => {
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) => {
58
60
  if (keyResult === ErrorSymbol || decodedValue === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
59
61
  awaitedAccumulator[key] = decodedValue;
60
62
  return awaitedAccumulator;
61
- }))), {}), (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData)));
63
+ }))), {});
64
+ return callThen(decodedData, (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData)));
62
65
  },
63
66
  isAsynchronous: (self) => self.definition.key.isAsynchronous() || self.definition.value.isAsynchronous()
64
67
  }));
@@ -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);