@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
@@ -9,4 +9,4 @@ export interface TypeStructureDefinition<GenericConstraints extends readonly Con
9
9
  }
10
10
  export interface TypeStructure<GenericType extends unknown = unknown, GenericConstraints extends readonly Constraint<GenericType>[] = readonly Constraint<GenericType>[]> extends DCommon.UnionToIntersection<Structure<GenericType, TypeStructureDefinition<GenericConstraints>> & DKind.Kind<typeof typeStructureKind>> {
11
11
  }
12
- export declare const TypeStructure: <GenericType extends Type, const GenericConstraints extends readonly Constraint<TypeValue<GenericType>>[]>(type: GenericType, constraints: GenericConstraints) => TypeStructure<TypeValue<GenericType>, readonly [...GenericConstraints]>;
12
+ export declare const TypeStructure: <GenericType extends Type, const GenericConstraints extends readonly Constraint<TypeValue<GenericType>>[]>(type: GenericType, constraints: GenericConstraints) => NoInfer<TypeStructure<TypeValue<GenericType>, readonly [...GenericConstraints]>>;
@@ -1,6 +1,6 @@
1
1
  import { callThen } from "../../../common/callThen.mjs";
2
2
  import { createKind } from "../../kind.mjs";
3
- import { ErrorSymbol } from "../../common/resultSymbol.mjs";
3
+ import { ErrorSymbol, SuccessSymbol } from "../../common/resultSymbol.mjs";
4
4
  import { createStructure } from "../base.mjs";
5
5
  //#region scripts/dataStructure/structure/defaults/type.ts
6
6
  const typeStructureKind = createKind("type-structure");
@@ -8,7 +8,7 @@ const TypeStructure = createStructure(typeStructureKind, ({ init }) => (type, co
8
8
  type,
9
9
  constraints
10
10
  }, {
11
- executeCheck: (self, data, errorHandler) => self.definition.type.executeCheck(data, errorHandler),
11
+ executeCheck: (self, data, errorHandler) => callThen(self.definition.type.executeCheck(data), (result) => result === ErrorSymbol ? errorHandler?.().addIssue(self, data, self.definition.type) ?? ErrorSymbol : SuccessSymbol),
12
12
  executeEncode: (self, codecContext, data, errorHandler) => callThen(self.executeCheck(data, errorHandler), (result) => {
13
13
  if (result === ErrorSymbol) return ErrorSymbol;
14
14
  const codec = codecContext.get(self.definition.type.fundamentalType);
@@ -14,9 +14,8 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
14
14
  const errorHandlers = errorHandler ? [] : void 0;
15
15
  const result = self.definition.values.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
16
16
  if (awaitedAccumulator === require_resultSymbol.SuccessSymbol) return awaitedAccumulator;
17
- const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler();
18
- if (errorHandler && errorHandlers && subErrorHandler) {
19
- subErrorHandler().usePath(errorHandler().currentPath);
17
+ const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler(errorHandler().currentPath);
18
+ if (errorHandlers && subErrorHandler) {
20
19
  subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
21
20
  errorHandlers.push(subErrorHandler);
22
21
  }
@@ -25,6 +24,7 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
25
24
  return require_callThen.callThen(result, (awaitedResult) => {
26
25
  if (awaitedResult === require_resultSymbol.ErrorSymbol) {
27
26
  if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
27
+ errorHandler?.().addIssue(self, data);
28
28
  return require_resultSymbol.ErrorSymbol;
29
29
  }
30
30
  return require_resultSymbol.SuccessSymbol;
@@ -34,9 +34,8 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
34
34
  const errorHandlers = errorHandler ? [] : void 0;
35
35
  const encodedData = self.definition.values.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
36
36
  if (awaitedAccumulator !== require_resultSymbol.ErrorSymbol) return awaitedAccumulator;
37
- const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler();
38
- if (errorHandler && errorHandlers && subErrorHandler) {
39
- subErrorHandler().usePath(errorHandler().currentPath);
37
+ const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler(errorHandler().currentPath);
38
+ if (errorHandlers && subErrorHandler) {
40
39
  subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
41
40
  errorHandlers.push(subErrorHandler);
42
41
  }
@@ -45,6 +44,7 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
45
44
  return require_callThen.callThen(encodedData, (awaitedEncodedData) => {
46
45
  if (awaitedEncodedData === require_resultSymbol.ErrorSymbol) {
47
46
  if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
47
+ errorHandler?.().addIssue(self, data);
48
48
  return require_resultSymbol.ErrorSymbol;
49
49
  }
50
50
  return require_callThen.callThen(self.executeConstraints(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedEncodedData);
@@ -54,9 +54,8 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
54
54
  const errorHandlers = errorHandler ? [] : void 0;
55
55
  const decodedData = self.definition.values.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
56
56
  if (awaitedAccumulator !== require_resultSymbol.ErrorSymbol) return awaitedAccumulator;
57
- const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler();
58
- if (errorHandler && errorHandlers && subErrorHandler) {
59
- subErrorHandler().usePath(errorHandler().currentPath);
57
+ const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler(errorHandler().currentPath);
58
+ if (errorHandlers && subErrorHandler) {
60
59
  subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
61
60
  errorHandlers.push(subErrorHandler);
62
61
  }
@@ -65,6 +64,7 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
65
64
  return require_callThen.callThen(decodedData, (awaitedDecodedData) => {
66
65
  if (awaitedDecodedData === require_resultSymbol.ErrorSymbol) {
67
66
  if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
67
+ errorHandler?.().addIssue(self, data);
68
68
  return require_resultSymbol.ErrorSymbol;
69
69
  }
70
70
  return require_callThen.callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedDecodedData);
@@ -9,4 +9,4 @@ export interface UnionStructureDefinition<GenericConstraints extends readonly Co
9
9
  }
10
10
  export interface UnionStructure<GenericValue extends unknown = unknown, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.UnionToIntersection<Structure<GenericValue, UnionStructureDefinition<GenericConstraints>> & DKind.Kind<typeof unionStructureKind>> {
11
11
  }
12
- export declare const UnionStructure: <GenericValues extends DCommon.AnyTuple<Structure>, const GenericConstraints extends readonly Constraint<StructureValue<GenericValues[number]>>[]>(values: GenericValues, constraints: GenericConstraints) => UnionStructure<StructureValue<GenericValues[number]>, readonly [...GenericConstraints]>;
12
+ export declare const UnionStructure: <GenericValues extends DCommon.AnyTuple<Structure>, const GenericConstraints extends readonly Constraint<StructureValue<GenericValues[number]>>[]>(values: GenericValues, constraints: GenericConstraints) => NoInfer<UnionStructure<StructureValue<GenericValues[number]>, readonly [...GenericConstraints]>>;
@@ -12,18 +12,19 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
12
12
  }, {
13
13
  executeCheck: (self, data, errorHandler) => {
14
14
  const errorHandlers = errorHandler ? [] : void 0;
15
- return callThen(self.definition.values.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
15
+ const result = self.definition.values.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
16
16
  if (awaitedAccumulator === SuccessSymbol) return awaitedAccumulator;
17
- const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler();
18
- if (errorHandler && errorHandlers && subErrorHandler) {
19
- subErrorHandler().usePath(errorHandler().currentPath);
17
+ const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler(errorHandler().currentPath);
18
+ if (errorHandlers && subErrorHandler) {
20
19
  subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
21
20
  errorHandlers.push(subErrorHandler);
22
21
  }
23
22
  return value.executeCheck(data, subErrorHandler);
24
- }), ErrorSymbol), (awaitedResult) => {
23
+ }), ErrorSymbol);
24
+ return callThen(result, (awaitedResult) => {
25
25
  if (awaitedResult === ErrorSymbol) {
26
26
  if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
27
+ errorHandler?.().addIssue(self, data);
27
28
  return ErrorSymbol;
28
29
  }
29
30
  return SuccessSymbol;
@@ -31,18 +32,19 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
31
32
  },
32
33
  executeEncode: (self, codec, data, errorHandler) => {
33
34
  const errorHandlers = errorHandler ? [] : void 0;
34
- return callThen(self.definition.values.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
35
+ const encodedData = self.definition.values.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
35
36
  if (awaitedAccumulator !== ErrorSymbol) return awaitedAccumulator;
36
- const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler();
37
- if (errorHandler && errorHandlers && subErrorHandler) {
38
- subErrorHandler().usePath(errorHandler().currentPath);
37
+ const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler(errorHandler().currentPath);
38
+ if (errorHandlers && subErrorHandler) {
39
39
  subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
40
40
  errorHandlers.push(subErrorHandler);
41
41
  }
42
42
  return value.executeEncode(codec, data, subErrorHandler);
43
- }), ErrorSymbol), (awaitedEncodedData) => {
43
+ }), ErrorSymbol);
44
+ return callThen(encodedData, (awaitedEncodedData) => {
44
45
  if (awaitedEncodedData === ErrorSymbol) {
45
46
  if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
47
+ errorHandler?.().addIssue(self, data);
46
48
  return ErrorSymbol;
47
49
  }
48
50
  return callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData);
@@ -50,18 +52,19 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
50
52
  },
51
53
  executeDecode: (self, codec, data, errorHandler) => {
52
54
  const errorHandlers = errorHandler ? [] : void 0;
53
- return callThen(self.definition.values.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
55
+ const decodedData = self.definition.values.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
54
56
  if (awaitedAccumulator !== ErrorSymbol) return awaitedAccumulator;
55
- const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler();
56
- if (errorHandler && errorHandlers && subErrorHandler) {
57
- subErrorHandler().usePath(errorHandler().currentPath);
57
+ const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler(errorHandler().currentPath);
58
+ if (errorHandlers && subErrorHandler) {
58
59
  subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
59
60
  errorHandlers.push(subErrorHandler);
60
61
  }
61
62
  return value.executeDecode(codec, data, subErrorHandler);
62
- }), ErrorSymbol), (awaitedDecodedData) => {
63
+ }), ErrorSymbol);
64
+ return callThen(decodedData, (awaitedDecodedData) => {
63
65
  if (awaitedDecodedData === ErrorSymbol) {
64
66
  if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
67
+ errorHandler?.().addIssue(self, data);
65
68
  return ErrorSymbol;
66
69
  }
67
70
  return callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData);
@@ -1,5 +1,5 @@
1
1
  import { Structure } from './base';
2
2
  export declare const structureIdentifier: {
3
- <GenericKindHandler extends import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/array-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/lazy-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/object-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangModeling/entity-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/record-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/union-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangModeling/new-type-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangModeling/entity-name-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", Record<string, unknown>>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", readonly unknown[]>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", import('../../modeling').Entity<string> & Record<string, unknown>>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", import('../../modeling').NewType<string, never>>>, GenericInput extends unknown, GenericGroupedKind extends import('../..').UnionToIntersection<GenericKindHandler extends import('../../kind').Handler<import('../../kind').Definition<string, unknown>> ? import('../../kind').Kind<GenericKindHandler, GenericKindHandler["definition"]["value"]> : never>>(kind: GenericKindHandler | GenericKindHandler[]): (input: GenericInput) => input is (import('../..').UnionContain<GenericInput, Structure<unknown, import('..').StructureDefinition<readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>>> extends true ? Extract<Structure<unknown, import('..').StructureDefinition<readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>>, GenericGroupedKind> | Extract<import('..').ObjectStructure<Record<string, unknown>, readonly import('..').Constraint<Record<string, unknown>, Record<string, unknown>, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('..').ArrayStructure<readonly unknown[], readonly import('..').Constraint<readonly unknown[], readonly unknown[], import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('..').TypeStructure<unknown, readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('../../modeling').EntityStructure<string, Record<string, unknown>>, GenericGroupedKind> | Extract<import('..').LazyStructure<unknown, readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('..').RecordStructure<Record<string, unknown>, readonly import('..').Constraint<Record<string, unknown>, Record<string, unknown>, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('..').UnionStructure<unknown, readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('../../modeling').NewTypeStructure<string, unknown, readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('../../modeling').EntityNameStructure, GenericGroupedKind> : never) | Extract<GenericInput, GenericGroupedKind>;
4
- <GenericKindHandler extends import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/array-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/lazy-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/object-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangModeling/entity-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/record-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/union-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangModeling/new-type-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangModeling/entity-name-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", Record<string, unknown>>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", readonly unknown[]>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", import('../../modeling').Entity<string> & Record<string, unknown>>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", import('../../modeling').NewType<string, never>>>, GenericInput extends unknown, GenericGroupedKind extends import('../..').UnionToIntersection<GenericKindHandler extends import('../../kind').Handler<import('../../kind').Definition<string, unknown>> ? import('../../kind').Kind<GenericKindHandler, GenericKindHandler["definition"]["value"]> : never>>(input: GenericInput, kind: GenericKindHandler | GenericKindHandler[]): input is (import('../..').UnionContain<GenericInput, Structure<unknown, import('..').StructureDefinition<readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>>> extends true ? Extract<Structure<unknown, import('..').StructureDefinition<readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>>, GenericGroupedKind> | Extract<import('..').ObjectStructure<Record<string, unknown>, readonly import('..').Constraint<Record<string, unknown>, Record<string, unknown>, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('..').ArrayStructure<readonly unknown[], readonly import('..').Constraint<readonly unknown[], readonly unknown[], import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('..').TypeStructure<unknown, readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('../../modeling').EntityStructure<string, Record<string, unknown>>, GenericGroupedKind> | Extract<import('..').LazyStructure<unknown, readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('..').RecordStructure<Record<string, unknown>, readonly import('..').Constraint<Record<string, unknown>, Record<string, unknown>, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('..').UnionStructure<unknown, readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('../../modeling').NewTypeStructure<string, unknown, readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('../../modeling').EntityNameStructure, GenericGroupedKind> : never) | Extract<GenericInput, GenericGroupedKind>;
3
+ <GenericKindHandler extends import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/array-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/lazy-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/non-encodable-string-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/object-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangModeling/entity-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangModeling/tagged-object-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/record-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/union-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangModeling/new-type-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", String>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", Record<string, unknown>>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", readonly unknown[]>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", import('../../modeling').Entity<string> & Record<string, unknown>>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", import('../../modeling').ObjectTag<string>>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", import('../../modeling').NewType<string, never>>>, GenericInput extends unknown, GenericGroupedKind extends import('../..').UnionToIntersection<GenericKindHandler extends import('../../kind').Handler<import('../../kind').Definition<string, unknown>> ? import('../../kind').Kind<GenericKindHandler, GenericKindHandler["definition"]["value"]> : never>>(kind: GenericKindHandler | GenericKindHandler[]): (input: GenericInput) => input is (import('../..').UnionContain<GenericInput, Structure<unknown, import('..').StructureDefinition<readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>>> extends true ? Extract<Structure<unknown, import('..').StructureDefinition<readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>>, GenericGroupedKind> | Extract<import('..').NonEncodableStringStructure, GenericGroupedKind> | Extract<import('..').ObjectStructure<Record<string, unknown>, readonly import('..').Constraint<Record<string, unknown>, Record<string, unknown>, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('..').ArrayStructure<readonly unknown[], readonly import('..').Constraint<readonly unknown[], readonly unknown[], import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('..').TypeStructure<unknown, readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('../../modeling').EntityStructure<string, Record<string, unknown>>, GenericGroupedKind> | Extract<import('../../modeling').TaggedObjectStructure<import('../../modeling').ObjectTag<string>>, GenericGroupedKind> | Extract<import('..').LazyStructure<unknown, readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('..').RecordStructure<Record<string, unknown>, readonly import('..').Constraint<Record<string, unknown>, Record<string, unknown>, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('..').UnionStructure<unknown, readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('../../modeling').NewTypeStructure<string, unknown, readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>, GenericGroupedKind> : never) | Extract<GenericInput, GenericGroupedKind>;
4
+ <GenericKindHandler extends import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/array-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/lazy-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/non-encodable-string-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/object-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangModeling/entity-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangModeling/tagged-object-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/record-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/union-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangModeling/new-type-structure", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", String>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", Record<string, unknown>>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", readonly unknown[]>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", import('../../modeling').Entity<string> & Record<string, unknown>>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", import('../../modeling').ObjectTag<string>>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/structure", import('../../modeling').NewType<string, never>>>, GenericInput extends unknown, GenericGroupedKind extends import('../..').UnionToIntersection<GenericKindHandler extends import('../../kind').Handler<import('../../kind').Definition<string, unknown>> ? import('../../kind').Kind<GenericKindHandler, GenericKindHandler["definition"]["value"]> : never>>(input: GenericInput, kind: GenericKindHandler | GenericKindHandler[]): input is (import('../..').UnionContain<GenericInput, Structure<unknown, import('..').StructureDefinition<readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>>> extends true ? Extract<Structure<unknown, import('..').StructureDefinition<readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>>, GenericGroupedKind> | Extract<import('..').NonEncodableStringStructure, GenericGroupedKind> | Extract<import('..').ObjectStructure<Record<string, unknown>, readonly import('..').Constraint<Record<string, unknown>, Record<string, unknown>, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('..').ArrayStructure<readonly unknown[], readonly import('..').Constraint<readonly unknown[], readonly unknown[], import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('..').TypeStructure<unknown, readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('../../modeling').EntityStructure<string, Record<string, unknown>>, GenericGroupedKind> | Extract<import('../../modeling').TaggedObjectStructure<import('../../modeling').ObjectTag<string>>, GenericGroupedKind> | Extract<import('..').LazyStructure<unknown, readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('..').RecordStructure<Record<string, unknown>, readonly import('..').Constraint<Record<string, unknown>, Record<string, unknown>, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('..').UnionStructure<unknown, readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>, GenericGroupedKind> | Extract<import('../../modeling').NewTypeStructure<string, unknown, readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>, GenericGroupedKind> : never) | Extract<GenericInput, GenericGroupedKind>;
5
5
  };
@@ -1,6 +1,6 @@
1
1
  import { ConstraintValue, Constraint } from '../../constraint';
2
2
  import type * as DCommon from '../../../common';
3
- export type StructureConstraintsValue<GenericConstraints extends Constraint> = DCommon.NeverCoalescing<Extract<DCommon.UnionToIntersection<GenericConstraints extends Constraint ? {
3
+ export type StructureConstraintsValue<GenericConstraints extends Constraint> = DCommon.IsNever<GenericConstraints> extends true ? unknown : DCommon.NeverCoalescing<Extract<DCommon.UnionToIntersection<GenericConstraints extends Constraint ? {
4
4
  value: ConstraintValue<GenericConstraints>;
5
5
  } : never>, {
6
6
  value: unknown;
@@ -1,5 +1,5 @@
1
1
  import { Structure } from '../base';
2
- import { ObjectStructure, ArrayStructure, LazyStructure, RecordStructure, UnionStructure, TypeStructure } from '../defaults';
2
+ import { ObjectStructure, ArrayStructure, LazyStructure, RecordStructure, UnionStructure, TypeStructure, NonEncodableStringStructure } from '../defaults';
3
3
  export interface StructuresStore {
4
4
  base: Structure;
5
5
  array: ArrayStructure;
@@ -8,5 +8,6 @@ export interface StructuresStore {
8
8
  record: RecordStructure;
9
9
  union: UnionStructure;
10
10
  type: TypeStructure;
11
+ nonEncodableString: NonEncodableStringStructure;
11
12
  }
12
13
  export type Structures = Extract<StructuresStore[keyof StructuresStore], Structure>;
@@ -2,4 +2,4 @@ import { structureKind, Structure } from '../base';
2
2
  import { StructureConstraintsValue } from './constraintsValue';
3
3
  import type * as DKind from '../../../kind';
4
4
  export type StructureValue<GenericStructure extends Structure> = DKind.GetValue<typeof structureKind, GenericStructure>;
5
- export type StructureInitialValue<GenericStructure extends Structure> = GenericStructure extends Structure<infer InferredValue> ? InferredValue extends (infer InferredInitialValue) & StructureConstraintsValue<GenericStructure["definition"]["constraints"][number]> ? InferredInitialValue : InferredValue : never;
5
+ export type StructureInitialValue<GenericStructure extends Structure, GenericStructureValue = StructureValue<GenericStructure>> = GenericStructureValue extends unknown ? GenericStructureValue extends (infer InferredInitialValue) & StructureConstraintsValue<GenericStructure["definition"]["constraints"][number]> ? InferredInitialValue : GenericStructureValue : never;
@@ -1,20 +1,33 @@
1
1
  const require_callThen = require("../../common/callThen.cjs");
2
+ const require_simpleClone = require("../../common/simpleClone.cjs");
2
3
  const require_kind = require("../kind.cjs");
3
4
  const require_resultSymbol = require("../common/resultSymbol.cjs");
4
5
  //#region scripts/dataStructure/type/base.ts
5
6
  const typeKind = require_kind.createKind("type");
6
7
  function createType(fundamentalType, kindHandler, createConstructor) {
7
- return createConstructor({ init: (definition, { executeCheck, isAsynchronous }) => {
8
+ const init = (definition, { executeCheck, isAsynchronous }) => {
8
9
  const self = {
10
+ fundamentalType,
9
11
  definition,
10
- executeCheck: (data, errorHandler) => require_callThen.callThen(self.fundamentalType.executeCheck(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : executeCheck(self, data, errorHandler)),
12
+ executeCheck: (data) => require_callThen.callThen(self.fundamentalType.executeCheck(data), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : executeCheck(self, data)),
11
13
  isAsynchronous: () => isAsynchronous(self),
12
- fundamentalType,
14
+ clone: () => init(require_simpleClone.simpleClone(definition), {
15
+ executeCheck,
16
+ isAsynchronous
17
+ }),
18
+ setMessage: (message) => {
19
+ self.definition.message = message;
20
+ return self;
21
+ },
22
+ addMessage: (message) => {
23
+ return self.clone().setMessage(message);
24
+ },
13
25
  [typeKind.runTimeKey]: null,
14
26
  [kindHandler.runTimeKey]: null
15
27
  };
16
28
  return self;
17
- } });
29
+ };
30
+ return createConstructor({ init });
18
31
  }
19
32
  //#endregion
20
33
  exports.createType = createType;
@@ -1,18 +1,22 @@
1
1
  import { FundamentalType, FundamentalTypeValue } from '../fundamentalType';
2
- import { ErrorSymbol, GetErrorHandler, SuccessSymbol } from '../common';
2
+ import { ErrorSymbol, SuccessSymbol } from '../common';
3
3
  import type * as DKind from '../../kind';
4
4
  import * as DCommon from '../../common';
5
5
  export declare const typeKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/type", unknown>>;
6
6
  export interface TypeDefinition {
7
+ readonly message?: string;
7
8
  }
8
9
  export interface Type<GenericFundamentalType extends FundamentalType = FundamentalType, GenericValue extends FundamentalTypeValue<GenericFundamentalType> = FundamentalTypeValue<GenericFundamentalType>, GenericDefinition extends TypeDefinition = TypeDefinition> extends DKind.Kind<typeof typeKind, GenericValue> {
9
10
  readonly fundamentalType: GenericFundamentalType;
10
11
  readonly definition: GenericDefinition;
11
- executeCheck(data: unknown, errorHandler?: GetErrorHandler): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
12
+ executeCheck(data: unknown): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
12
13
  isAsynchronous(): boolean;
14
+ clone(): this;
15
+ setMessage(massage: string): this;
16
+ addMessage(massage: string): this;
13
17
  }
14
18
  export interface CreateTypeInitParams<GenericType extends Type = Type, GenericFundamentalType extends FundamentalType = FundamentalType> {
15
- executeCheck(self: GenericType, data: FundamentalTypeValue<GenericFundamentalType>, errorHandler?: GetErrorHandler): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
19
+ executeCheck(self: GenericType, data: FundamentalTypeValue<GenericFundamentalType>): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
16
20
  isAsynchronous(self: GenericType): boolean;
17
21
  }
18
22
  export interface CreateTypeConstructorParams<GenericFundamentalType extends FundamentalType = FundamentalType, GenericKindHandler extends DKind.Handler = DKind.Handler> {
@@ -1,20 +1,33 @@
1
1
  import { callThen } from "../../common/callThen.mjs";
2
+ import { simpleClone } from "../../common/simpleClone.mjs";
2
3
  import { createKind } from "../kind.mjs";
3
4
  import { ErrorSymbol } from "../common/resultSymbol.mjs";
4
5
  //#region scripts/dataStructure/type/base.ts
5
6
  const typeKind = createKind("type");
6
7
  function createType(fundamentalType, kindHandler, createConstructor) {
7
- return createConstructor({ init: (definition, { executeCheck, isAsynchronous }) => {
8
+ const init = (definition, { executeCheck, isAsynchronous }) => {
8
9
  const self = {
10
+ fundamentalType,
9
11
  definition,
10
- executeCheck: (data, errorHandler) => callThen(self.fundamentalType.executeCheck(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : executeCheck(self, data, errorHandler)),
12
+ executeCheck: (data) => callThen(self.fundamentalType.executeCheck(data), (result) => result === ErrorSymbol ? ErrorSymbol : executeCheck(self, data)),
11
13
  isAsynchronous: () => isAsynchronous(self),
12
- fundamentalType,
14
+ clone: () => init(simpleClone(definition), {
15
+ executeCheck,
16
+ isAsynchronous
17
+ }),
18
+ setMessage: (message) => {
19
+ self.definition.message = message;
20
+ return self;
21
+ },
22
+ addMessage: (message) => {
23
+ return self.clone().setMessage(message);
24
+ },
13
25
  [typeKind.runTimeKey]: null,
14
26
  [kindHandler.runTimeKey]: null
15
27
  };
16
28
  return self;
17
- } });
29
+ };
30
+ return createConstructor({ init });
18
31
  }
19
32
  //#endregion
20
33
  export { createType, typeKind };
@@ -5,7 +5,7 @@ const require_base = require("../base.cjs");
5
5
  //#region scripts/dataStructure/type/defaults/bigintLiteral.ts
6
6
  const bigintLiteralTypeKind = require_kind.createKind("bigint-literal-type");
7
7
  const BigintLiteralType = require_base.createType(require_bigint.TheBigint, bigintLiteralTypeKind, ({ init }) => (value) => init({ value }, {
8
- executeCheck: (self, data, errorHandler) => data === self.definition.value ? require_resultSymbol.SuccessSymbol : errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol,
8
+ executeCheck: (self, data) => data === self.definition.value ? require_resultSymbol.SuccessSymbol : require_resultSymbol.ErrorSymbol,
9
9
  isAsynchronous: () => false
10
10
  }));
11
11
  //#endregion
@@ -5,7 +5,7 @@ import { createType } from "../base.mjs";
5
5
  //#region scripts/dataStructure/type/defaults/bigintLiteral.ts
6
6
  const bigintLiteralTypeKind = createKind("bigint-literal-type");
7
7
  const BigintLiteralType = createType(TheBigint, bigintLiteralTypeKind, ({ init }) => (value) => init({ value }, {
8
- executeCheck: (self, data, errorHandler) => data === self.definition.value ? SuccessSymbol : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
8
+ executeCheck: (self, data) => data === self.definition.value ? SuccessSymbol : ErrorSymbol,
9
9
  isAsynchronous: () => false
10
10
  }));
11
11
  //#endregion
@@ -5,7 +5,7 @@ const require_base = require("../base.cjs");
5
5
  //#region scripts/dataStructure/type/defaults/booleanLiteral.ts
6
6
  const booleanLiteralTypeKind = require_kind.createKind("boolean-literal-type");
7
7
  const BooleanLiteralType = require_base.createType(require_boolean.TheBoolean, booleanLiteralTypeKind, ({ init }) => (value) => init({ value }, {
8
- executeCheck: (self, data, errorHandler) => data === self.definition.value ? require_resultSymbol.SuccessSymbol : errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol,
8
+ executeCheck: (self, data) => data === self.definition.value ? require_resultSymbol.SuccessSymbol : require_resultSymbol.ErrorSymbol,
9
9
  isAsynchronous: () => false
10
10
  }));
11
11
  //#endregion
@@ -5,7 +5,7 @@ import { createType } from "../base.mjs";
5
5
  //#region scripts/dataStructure/type/defaults/booleanLiteral.ts
6
6
  const booleanLiteralTypeKind = createKind("boolean-literal-type");
7
7
  const BooleanLiteralType = createType(TheBoolean, booleanLiteralTypeKind, ({ init }) => (value) => init({ value }, {
8
- executeCheck: (self, data, errorHandler) => data === self.definition.value ? SuccessSymbol : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
8
+ executeCheck: (self, data) => data === self.definition.value ? SuccessSymbol : ErrorSymbol,
9
9
  isAsynchronous: () => false
10
10
  }));
11
11
  //#endregion
@@ -5,7 +5,7 @@ const require_base = require("../base.cjs");
5
5
  //#region scripts/dataStructure/type/defaults/numberLiteral.ts
6
6
  const numberLiteralTypeKind = require_kind.createKind("number-literal-type");
7
7
  const NumberLiteralType = require_base.createType(require_number.TheNumber, numberLiteralTypeKind, ({ init }) => (value) => init({ value }, {
8
- executeCheck: (self, data, errorHandler) => data === self.definition.value ? require_resultSymbol.SuccessSymbol : errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol,
8
+ executeCheck: (self, data) => data === self.definition.value ? require_resultSymbol.SuccessSymbol : require_resultSymbol.ErrorSymbol,
9
9
  isAsynchronous: () => false
10
10
  }));
11
11
  //#endregion
@@ -5,7 +5,7 @@ import { createType } from "../base.mjs";
5
5
  //#region scripts/dataStructure/type/defaults/numberLiteral.ts
6
6
  const numberLiteralTypeKind = createKind("number-literal-type");
7
7
  const NumberLiteralType = createType(TheNumber, numberLiteralTypeKind, ({ init }) => (value) => init({ value }, {
8
- executeCheck: (self, data, errorHandler) => data === self.definition.value ? SuccessSymbol : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
8
+ executeCheck: (self, data) => data === self.definition.value ? SuccessSymbol : ErrorSymbol,
9
9
  isAsynchronous: () => false
10
10
  }));
11
11
  //#endregion
@@ -5,7 +5,7 @@ const require_base = require("../base.cjs");
5
5
  //#region scripts/dataStructure/type/defaults/stringLiteral.ts
6
6
  const stringLiteralTypeKind = require_kind.createKind("string-literal-type");
7
7
  const StringLiteralType = require_base.createType(require_string.TheString, stringLiteralTypeKind, ({ init }) => (value) => init({ value }, {
8
- executeCheck: (self, data, errorHandler) => data === self.definition.value ? require_resultSymbol.SuccessSymbol : errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol,
8
+ executeCheck: (self, data) => data === self.definition.value ? require_resultSymbol.SuccessSymbol : require_resultSymbol.ErrorSymbol,
9
9
  isAsynchronous: () => false
10
10
  }));
11
11
  //#endregion
@@ -5,7 +5,7 @@ import { createType } from "../base.mjs";
5
5
  //#region scripts/dataStructure/type/defaults/stringLiteral.ts
6
6
  const stringLiteralTypeKind = createKind("string-literal-type");
7
7
  const StringLiteralType = createType(TheString, stringLiteralTypeKind, ({ init }) => (value) => init({ value }, {
8
- executeCheck: (self, data, errorHandler) => data === self.definition.value ? SuccessSymbol : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
8
+ executeCheck: (self, data) => data === self.definition.value ? SuccessSymbol : ErrorSymbol,
9
9
  isAsynchronous: () => false
10
10
  }));
11
11
  //#endregion
@@ -1,5 +1,5 @@
1
1
  import { Type } from './base';
2
2
  export declare const typeIdentifier: {
3
- <GenericKindHandler extends import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/bigint-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/bigint-literal-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/boolean-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/boolean-literal-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/date-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/null-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/number-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/number-literal-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/string-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/string-literal-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/time-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/undefined-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", bigint>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", boolean>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", import('../../chrono').TheDate>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", null>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", number>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", string>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", import('../../chrono').TheTime>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", undefined>>, GenericInput extends unknown, GenericGroupedKind extends import('../..').UnionToIntersection<GenericKindHandler extends import('../../kind').Handler<import('../../kind').Definition<string, unknown>> ? import('../../kind').Kind<GenericKindHandler, GenericKindHandler["definition"]["value"]> : never>>(kind: GenericKindHandler | GenericKindHandler[]): (input: GenericInput) => input is (import('../..').UnionContain<GenericInput, Type<import('..').FundamentalType<symbol, unknown>, unknown, import('..').TypeDefinition>> extends true ? Extract<import('..').BigintType, GenericGroupedKind> | Extract<import('..').BooleanType, GenericGroupedKind> | Extract<import('..').DateType, GenericGroupedKind> | Extract<import('..').NullType, GenericGroupedKind> | Extract<import('..').NumberType, GenericGroupedKind> | Extract<import('..').StringType, GenericGroupedKind> | Extract<import('..').TimeType, GenericGroupedKind> | Extract<import('..').UndefinedType, GenericGroupedKind> | Extract<import('..').BigintLiteralType<bigint>, GenericGroupedKind> | Extract<import('..').BooleanLiteralType<boolean>, GenericGroupedKind> | Extract<import('..').NumberLiteralType<number>, GenericGroupedKind> | Extract<import('..').StringLiteralType<string>, GenericGroupedKind> : never) | Extract<GenericInput, GenericGroupedKind>;
4
- <GenericKindHandler extends import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/bigint-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/bigint-literal-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/boolean-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/boolean-literal-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/date-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/null-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/number-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/number-literal-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/string-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/string-literal-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/time-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/undefined-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", bigint>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", boolean>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", import('../../chrono').TheDate>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", null>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", number>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", string>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", import('../../chrono').TheTime>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", undefined>>, GenericInput extends unknown, GenericGroupedKind extends import('../..').UnionToIntersection<GenericKindHandler extends import('../../kind').Handler<import('../../kind').Definition<string, unknown>> ? import('../../kind').Kind<GenericKindHandler, GenericKindHandler["definition"]["value"]> : never>>(input: GenericInput, kind: GenericKindHandler | GenericKindHandler[]): input is (import('../..').UnionContain<GenericInput, Type<import('..').FundamentalType<symbol, unknown>, unknown, import('..').TypeDefinition>> extends true ? Extract<import('..').BigintType, GenericGroupedKind> | Extract<import('..').BooleanType, GenericGroupedKind> | Extract<import('..').DateType, GenericGroupedKind> | Extract<import('..').NullType, GenericGroupedKind> | Extract<import('..').NumberType, GenericGroupedKind> | Extract<import('..').StringType, GenericGroupedKind> | Extract<import('..').TimeType, GenericGroupedKind> | Extract<import('..').UndefinedType, GenericGroupedKind> | Extract<import('..').BigintLiteralType<bigint>, GenericGroupedKind> | Extract<import('..').BooleanLiteralType<boolean>, GenericGroupedKind> | Extract<import('..').NumberLiteralType<number>, GenericGroupedKind> | Extract<import('..').StringLiteralType<string>, GenericGroupedKind> : never) | Extract<GenericInput, GenericGroupedKind>;
3
+ <GenericKindHandler extends import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/bigint-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/bigint-literal-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/boolean-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/boolean-literal-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/date-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/null-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/number-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/number-literal-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/string-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/string-literal-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/time-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/undefined-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", bigint>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", boolean>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", import('../../chrono').TheDate>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", null>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", number>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", string>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", import('../../chrono').TheTime>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", undefined>>, GenericInput extends unknown, GenericGroupedKind extends import('../..').UnionToIntersection<GenericKindHandler extends import('../../kind').Handler<import('../../kind').Definition<string, unknown>> ? import('../../kind').Kind<GenericKindHandler, GenericKindHandler["definition"]["value"]> : never>>(kind: GenericKindHandler | GenericKindHandler[]): (input: GenericInput) => input is (import('../..').UnionContain<GenericInput, Type<import('..').FundamentalType<unknown>, unknown, import('..').TypeDefinition>> extends true ? Extract<import('..').BigintType, GenericGroupedKind> | Extract<import('..').BooleanType, GenericGroupedKind> | Extract<import('..').DateType, GenericGroupedKind> | Extract<import('..').NullType, GenericGroupedKind> | Extract<import('..').NumberType, GenericGroupedKind> | Extract<import('..').StringType, GenericGroupedKind> | Extract<import('..').TimeType, GenericGroupedKind> | Extract<import('..').UndefinedType, GenericGroupedKind> | Extract<import('..').BigintLiteralType<bigint>, GenericGroupedKind> | Extract<import('..').BooleanLiteralType<boolean>, GenericGroupedKind> | Extract<import('..').NumberLiteralType<number>, GenericGroupedKind> | Extract<import('..').StringLiteralType<string>, GenericGroupedKind> : never) | Extract<GenericInput, GenericGroupedKind>;
4
+ <GenericKindHandler extends import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/bigint-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/bigint-literal-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/boolean-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/boolean-literal-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/date-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/null-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/number-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/number-literal-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/string-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/string-literal-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/time-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/undefined-type", unknown>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", bigint>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", boolean>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", import('../../chrono').TheDate>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", null>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", number>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", string>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", import('../../chrono').TheTime>> | import('../../kind').Handler<import('../../kind').Definition<"@DuplojsLangDataStructure/type", undefined>>, GenericInput extends unknown, GenericGroupedKind extends import('../..').UnionToIntersection<GenericKindHandler extends import('../../kind').Handler<import('../../kind').Definition<string, unknown>> ? import('../../kind').Kind<GenericKindHandler, GenericKindHandler["definition"]["value"]> : never>>(input: GenericInput, kind: GenericKindHandler | GenericKindHandler[]): input is (import('../..').UnionContain<GenericInput, Type<import('..').FundamentalType<unknown>, unknown, import('..').TypeDefinition>> extends true ? Extract<import('..').BigintType, GenericGroupedKind> | Extract<import('..').BooleanType, GenericGroupedKind> | Extract<import('..').DateType, GenericGroupedKind> | Extract<import('..').NullType, GenericGroupedKind> | Extract<import('..').NumberType, GenericGroupedKind> | Extract<import('..').StringType, GenericGroupedKind> | Extract<import('..').TimeType, GenericGroupedKind> | Extract<import('..').UndefinedType, GenericGroupedKind> | Extract<import('..').BigintLiteralType<bigint>, GenericGroupedKind> | Extract<import('..').BooleanLiteralType<boolean>, GenericGroupedKind> | Extract<import('..').NumberLiteralType<number>, GenericGroupedKind> | Extract<import('..').StringLiteralType<string>, GenericGroupedKind> : never) | Extract<GenericInput, GenericGroupedKind>;
5
5
  };
@@ -1,2 +1,3 @@
1
- export declare function asyncChunk<const GenericItem extends unknown>(size: number): (iterator: AsyncIterable<GenericItem>) => AsyncGenerator<GenericItem[], unknown, unknown>;
2
- export declare function asyncChunk<const GenericItem extends unknown>(iterator: AsyncIterable<GenericItem>, size: number): AsyncGenerator<GenericItem[], unknown, unknown>;
1
+ import type * as DArray from '../array';
2
+ export declare function asyncChunk<const GenericItem extends unknown, GenericSize extends number>(size: GenericSize): (iterator: AsyncIterable<GenericItem>) => AsyncGenerator<readonly GenericItem[] & DArray.MinElements<1> & (number extends GenericSize ? unknown : DArray.MaxElements<GenericSize>), unknown, unknown>;
3
+ export declare function asyncChunk<const GenericItem extends unknown, GenericSize extends number>(iterator: AsyncIterable<GenericItem>, size: GenericSize): AsyncGenerator<readonly GenericItem[] & DArray.MinElements<1> & (number extends GenericSize ? unknown : DArray.MaxElements<GenericSize>), unknown, unknown>;
@@ -1,2 +1,3 @@
1
- export declare function chunk<const GenericItem extends unknown>(size: number): (iterator: Iterable<GenericItem>) => Generator<GenericItem[], unknown, unknown>;
2
- export declare function chunk<const GenericItem extends unknown>(iterator: Iterable<GenericItem>, size: number): Generator<GenericItem[], unknown, unknown>;
1
+ import type * as DArray from '../array';
2
+ export declare function chunk<const GenericItem extends unknown, GenericSize extends number>(size: GenericSize): (iterator: Iterable<GenericItem>) => Generator<readonly GenericItem[] & DArray.MinElements<1> & (number extends GenericSize ? unknown : DArray.MaxElements<GenericSize>), unknown, unknown>;
3
+ export declare function chunk<const GenericItem extends unknown, GenericSize extends number>(iterator: Iterable<GenericItem>, size: GenericSize): Generator<readonly GenericItem[] & DArray.MinElements<1> & (number extends GenericSize ? unknown : DArray.MaxElements<GenericSize>), unknown, unknown>;
@@ -1,3 +1,3 @@
1
1
  import type * as DCommon from '../../common';
2
- export type FlatIterator<GenericValue extends unknown, GenericDepth extends number, GenericAcc extends never[] = []> = DCommon.IsEqual<GenericAcc["length"], GenericDepth> extends true ? GenericValue : DCommon.IsEqual<GenericAcc["length"], 250> extends true ? GenericValue : GenericValue extends Iterable<infer InferredValue> ? FlatIterator<InferredValue, GenericDepth, [...GenericAcc, never]> : GenericValue;
3
- export type FlatAsyncIterator<GenericValue extends unknown, GenericDepth extends number, GenericAcc extends never[] = []> = DCommon.IsEqual<GenericAcc["length"], GenericDepth> extends true ? GenericValue : DCommon.IsEqual<GenericAcc["length"], 250> extends true ? GenericValue : GenericValue extends Iterable<infer InferredValue> ? FlatIterator<InferredValue, GenericDepth, [...GenericAcc, never]> : GenericValue extends AsyncIterable<infer InferredValue> ? FlatIterator<InferredValue, GenericDepth, [...GenericAcc, never]> : GenericValue;
2
+ export type FlatIterator<GenericValue extends unknown, GenericDepth extends number, GenericAcc extends never[] = []> = DCommon.IsEqual<GenericAcc["length"], GenericDepth> extends true ? GenericValue : DCommon.IsEqual<GenericAcc["length"], 250> extends true ? GenericValue : GenericValue extends string ? GenericValue : GenericValue extends Iterable<infer InferredValue> ? FlatIterator<InferredValue, GenericDepth, [...GenericAcc, never]> : GenericValue;
3
+ export type FlatAsyncIterator<GenericValue extends unknown, GenericDepth extends number, GenericAcc extends never[] = []> = DCommon.IsEqual<GenericAcc["length"], GenericDepth> extends true ? GenericValue : DCommon.IsEqual<GenericAcc["length"], 250> extends true ? GenericValue : GenericValue extends string ? GenericValue : GenericValue extends Iterable<infer InferredValue> ? FlatIterator<InferredValue, GenericDepth, [...GenericAcc, never]> : GenericValue extends AsyncIterable<infer InferredValue> ? FlatIterator<InferredValue, GenericDepth, [...GenericAcc, never]> : GenericValue;
@@ -1,4 +1,4 @@
1
- import { FlowControllerExit, FlowControllerResult, flowControllerExitKind, FlowControllerPreviousFunctionResult } from './controller';
1
+ import { FlowControllerExit, FlowControllerResult, flowControllerExitKind, FlowControllerPreviousFunctionResult, UnwrapFlowControllerResult } from './controller';
2
2
  import { DKind } from '../../index.ts';
3
3
  import * as DCommon from '../../common';
4
4
  type ComputeLastUsableValue<GenericAccumulator extends DCommon.AnyTuple> = GenericAccumulator extends [
@@ -6,7 +6,12 @@ type ComputeLastUsableValue<GenericAccumulator extends DCommon.AnyTuple> = Gener
6
6
  infer InferredLast
7
7
  ] ? InferredLast extends FlowControllerResult<infer InferredFlowControllerResult> ? Exclude<Awaited<InferredFlowControllerResult>, FlowControllerPreviousFunctionResult | FlowControllerExit> extends infer InferredOutputValue ? DCommon.HasSomething<InferredOutputValue> extends true ? InferredOutputValue : InferredRest extends DCommon.AnyTuple ? ComputeLastUsableValue<InferredRest> : never : never : InferredLast : never;
8
8
  type Pipe<GenericAccumulator extends DCommon.AnyTuple, GenericOutput extends unknown> = (this: never, input: Awaited<ComputeLastUsableValue<GenericAccumulator>>) => GenericOutput;
9
- type ComputeTypeOutput<GenericAccumulator extends DCommon.AnyTuple> = Extract<(ComputeLastUsableValue<GenericAccumulator> | (GenericAccumulator[number] extends infer InferredPipeResult ? InferredPipeResult extends FlowControllerResult<infer InferredResult> ? InferredResult extends FlowControllerExit ? DKind.GetValue<typeof flowControllerExitKind, InferredResult> : InferredResult extends Promise<infer InferredExit extends FlowControllerExit> ? Promise<DKind.GetValue<typeof flowControllerExitKind, InferredExit>> : never : never : never)) extends infer InferredResult ? DCommon.ContainExtends<InferredResult, Promise<any>> extends true ? Promise<Awaited<InferredResult>> : InferredResult : never, any>;
9
+ type IsMaybePromise<GenericAccumulator extends DCommon.AnyTuple> = {
10
+ [Index in keyof GenericAccumulator]: UnwrapFlowControllerResult<GenericAccumulator[Index]> extends infer InferredResult ? DCommon.IsExtends<InferredResult, Promise<unknown>> extends true ? false : DCommon.ContainExtends<InferredResult, Promise<any>> : never;
11
+ }[number] extends false ? false : true;
12
+ type ComputeTypeOutput<GenericAccumulator extends DCommon.AnyTuple> = Extract<(ComputeLastUsableValue<GenericAccumulator> | (UnwrapFlowControllerResult<GenericAccumulator[number]> extends infer InferredResult ? InferredResult extends FlowControllerExit ? DKind.GetValue<typeof flowControllerExitKind, InferredResult> : InferredResult extends Promise<infer InferredExit extends FlowControllerExit> ? Promise<DKind.GetValue<typeof flowControllerExitKind, InferredExit>> : InferredResult extends Promise<unknown> ? Promise<never> : never : never)) extends infer InferredResult ? DCommon.Or<[
13
+ DCommon.ContainExtends<InferredResult, Promise<any>>
14
+ ]> extends true ? IsMaybePromise<GenericAccumulator> extends true ? DCommon.MaybePromise<Awaited<InferredResult>> : Promise<Awaited<InferredResult>> : InferredResult : never, any>;
10
15
  export declare function flow<const GenericInput extends unknown, const GenericOutput1 extends unknown>(pipe1: Pipe<[
11
16
  GenericInput
12
17
  ], GenericOutput1>): (input: GenericInput) => DCommon.BreakGenericLink<Extract<ComputeTypeOutput<[
@@ -11,6 +11,7 @@ export type FlowControllerPreviousFunctionResult = DCommon.MaybePromise<(DCommon
11
11
  export interface FlowControllerResult<GenericResult extends unknown> {
12
12
  readonly [FlowControllerResultSymbol]: GenericResult;
13
13
  }
14
+ export type UnwrapFlowControllerResult<GenericValue extends unknown> = GenericValue extends FlowControllerResult<infer InferredResult> ? InferredResult : GenericValue;
14
15
  export interface FlowController<GenericInput extends unknown = unknown, GenericOutput extends unknown = unknown> extends DKind.Kind<typeof flowControllerKind> {
15
16
  (this: never, input: GenericInput): FlowControllerResult<GenericOutput>;
16
17
  exec(previousFunction: () => FlowControllerPreviousFunctionResult): (FlowControllerPreviousFunctionResult | GenericOutput | DCommon.MergePromise<FlowControllerPreviousFunctionResult | GenericOutput>);