@duplojs/lang 0.0.1-beta.1 → 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 (268) 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/types/index.d.ts +1 -0
  27. package/dist/common/types/splitPromise.d.ts +1 -0
  28. package/dist/dataStructure/common/codec.cjs +5 -4
  29. package/dist/dataStructure/common/codec.d.ts +2 -2
  30. package/dist/dataStructure/common/codec.mjs +5 -4
  31. package/dist/dataStructure/common/error.cjs +34 -16
  32. package/dist/dataStructure/common/error.d.ts +29 -11
  33. package/dist/dataStructure/common/error.mjs +32 -17
  34. package/dist/dataStructure/common/errorInterpreter.cjs +45 -0
  35. package/dist/dataStructure/common/errorInterpreter.d.ts +32 -0
  36. package/dist/dataStructure/common/errorInterpreter.mjs +45 -0
  37. package/dist/dataStructure/common/index.d.ts +1 -0
  38. package/dist/dataStructure/constraint/base.cjs +16 -3
  39. package/dist/dataStructure/constraint/base.d.ts +8 -4
  40. package/dist/dataStructure/constraint/base.mjs +16 -3
  41. package/dist/dataStructure/constraint/defaults/allowedCharacters.cjs +1 -1
  42. package/dist/dataStructure/constraint/defaults/allowedCharacters.mjs +1 -1
  43. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.cjs +1 -1
  44. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.mjs +1 -1
  45. package/dist/dataStructure/constraint/defaults/betweenThan.cjs +1 -1
  46. package/dist/dataStructure/constraint/defaults/betweenThan.mjs +1 -1
  47. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.cjs +1 -1
  48. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.mjs +1 -1
  49. package/dist/dataStructure/constraint/defaults/email.cjs +1 -1
  50. package/dist/dataStructure/constraint/defaults/email.mjs +1 -1
  51. package/dist/dataStructure/constraint/defaults/even.cjs +1 -1
  52. package/dist/dataStructure/constraint/defaults/even.mjs +1 -1
  53. package/dist/dataStructure/constraint/defaults/greaterThan.cjs +1 -1
  54. package/dist/dataStructure/constraint/defaults/greaterThan.mjs +1 -1
  55. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.cjs +1 -1
  56. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.mjs +1 -1
  57. package/dist/dataStructure/constraint/defaults/index.d.ts +1 -0
  58. package/dist/dataStructure/constraint/defaults/integer.cjs +1 -1
  59. package/dist/dataStructure/constraint/defaults/integer.mjs +1 -1
  60. package/dist/dataStructure/constraint/defaults/lessThan.cjs +1 -1
  61. package/dist/dataStructure/constraint/defaults/lessThan.mjs +1 -1
  62. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.cjs +1 -1
  63. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.mjs +1 -1
  64. package/dist/dataStructure/constraint/defaults/maxCharacters.cjs +1 -1
  65. package/dist/dataStructure/constraint/defaults/maxCharacters.mjs +1 -1
  66. package/dist/dataStructure/constraint/defaults/maxElements.cjs +1 -1
  67. package/dist/dataStructure/constraint/defaults/maxElements.mjs +1 -1
  68. package/dist/dataStructure/constraint/defaults/minCharacters.cjs +1 -1
  69. package/dist/dataStructure/constraint/defaults/minCharacters.mjs +1 -1
  70. package/dist/dataStructure/constraint/defaults/minElements.cjs +1 -1
  71. package/dist/dataStructure/constraint/defaults/minElements.mjs +1 -1
  72. package/dist/dataStructure/constraint/defaults/multipleOf.cjs +1 -1
  73. package/dist/dataStructure/constraint/defaults/multipleOf.mjs +1 -1
  74. package/dist/dataStructure/constraint/defaults/negative.cjs +1 -1
  75. package/dist/dataStructure/constraint/defaults/negative.mjs +1 -1
  76. package/dist/dataStructure/constraint/defaults/notEmpty.cjs +1 -1
  77. package/dist/dataStructure/constraint/defaults/notEmpty.mjs +1 -1
  78. package/dist/dataStructure/constraint/defaults/notZero.cjs +1 -1
  79. package/dist/dataStructure/constraint/defaults/notZero.mjs +1 -1
  80. package/dist/dataStructure/constraint/defaults/odd.cjs +1 -1
  81. package/dist/dataStructure/constraint/defaults/odd.mjs +1 -1
  82. package/dist/dataStructure/constraint/defaults/positive.cjs +1 -1
  83. package/dist/dataStructure/constraint/defaults/positive.mjs +1 -1
  84. package/dist/dataStructure/constraint/defaults/refine.cjs +1 -1
  85. package/dist/dataStructure/constraint/defaults/refine.mjs +1 -1
  86. package/dist/dataStructure/constraint/defaults/safe.cjs +1 -1
  87. package/dist/dataStructure/constraint/defaults/safe.mjs +1 -1
  88. package/dist/dataStructure/constraint/defaults/strictNegative.cjs +1 -1
  89. package/dist/dataStructure/constraint/defaults/strictNegative.mjs +1 -1
  90. package/dist/dataStructure/constraint/defaults/strictPositive.cjs +1 -1
  91. package/dist/dataStructure/constraint/defaults/strictPositive.mjs +1 -1
  92. package/dist/dataStructure/constraint/defaults/stringLengthEqual.cjs +1 -1
  93. package/dist/dataStructure/constraint/defaults/stringLengthEqual.mjs +1 -1
  94. package/dist/dataStructure/constraint/defaults/trimmed.cjs +13 -0
  95. package/dist/dataStructure/constraint/defaults/trimmed.d.ts +10 -0
  96. package/dist/dataStructure/constraint/defaults/trimmed.mjs +12 -0
  97. package/dist/dataStructure/constraint/defaults/url.cjs +1 -1
  98. package/dist/dataStructure/constraint/defaults/url.mjs +1 -1
  99. package/dist/dataStructure/constraint/defaults/uuid.cjs +1 -1
  100. package/dist/dataStructure/constraint/defaults/uuid.mjs +1 -1
  101. package/dist/dataStructure/fundamentalType/base.cjs +3 -3
  102. package/dist/dataStructure/fundamentalType/base.d.ts +4 -5
  103. package/dist/dataStructure/fundamentalType/base.mjs +3 -3
  104. package/dist/dataStructure/fundamentalType/defaults/bigint.cjs +4 -2
  105. package/dist/dataStructure/fundamentalType/defaults/bigint.d.ts +4 -4
  106. package/dist/dataStructure/fundamentalType/defaults/bigint.mjs +5 -2
  107. package/dist/dataStructure/fundamentalType/defaults/boolean.cjs +4 -2
  108. package/dist/dataStructure/fundamentalType/defaults/boolean.d.ts +4 -4
  109. package/dist/dataStructure/fundamentalType/defaults/boolean.mjs +5 -2
  110. package/dist/dataStructure/fundamentalType/defaults/date.cjs +4 -2
  111. package/dist/dataStructure/fundamentalType/defaults/date.d.ts +4 -4
  112. package/dist/dataStructure/fundamentalType/defaults/date.mjs +5 -2
  113. package/dist/dataStructure/fundamentalType/defaults/null.cjs +4 -2
  114. package/dist/dataStructure/fundamentalType/defaults/null.d.ts +4 -4
  115. package/dist/dataStructure/fundamentalType/defaults/null.mjs +5 -2
  116. package/dist/dataStructure/fundamentalType/defaults/number.cjs +4 -2
  117. package/dist/dataStructure/fundamentalType/defaults/number.d.ts +4 -4
  118. package/dist/dataStructure/fundamentalType/defaults/number.mjs +5 -2
  119. package/dist/dataStructure/fundamentalType/defaults/string.cjs +4 -2
  120. package/dist/dataStructure/fundamentalType/defaults/string.d.ts +4 -4
  121. package/dist/dataStructure/fundamentalType/defaults/string.mjs +5 -2
  122. package/dist/dataStructure/fundamentalType/defaults/time.cjs +4 -2
  123. package/dist/dataStructure/fundamentalType/defaults/time.d.ts +4 -4
  124. package/dist/dataStructure/fundamentalType/defaults/time.mjs +5 -2
  125. package/dist/dataStructure/fundamentalType/defaults/undefined.cjs +4 -2
  126. package/dist/dataStructure/fundamentalType/defaults/undefined.d.ts +4 -4
  127. package/dist/dataStructure/fundamentalType/defaults/undefined.mjs +5 -2
  128. package/dist/dataStructure/fundamentalType/identifier.d.ts +2 -2
  129. package/dist/dataStructure/helpers/array.d.ts +1 -1
  130. package/dist/dataStructure/helpers/bigint.d.ts +1 -1
  131. package/dist/dataStructure/helpers/boolean.d.ts +1 -1
  132. package/dist/dataStructure/helpers/date.d.ts +1 -1
  133. package/dist/dataStructure/helpers/index.d.ts +1 -0
  134. package/dist/dataStructure/helpers/lazy.d.ts +1 -1
  135. package/dist/dataStructure/helpers/null.d.ts +1 -1
  136. package/dist/dataStructure/helpers/number.d.ts +1 -1
  137. package/dist/dataStructure/helpers/object.d.ts +1 -1
  138. package/dist/dataStructure/helpers/record.d.ts +1 -1
  139. package/dist/dataStructure/helpers/string.d.ts +1 -1
  140. package/dist/dataStructure/helpers/time.d.ts +1 -1
  141. package/dist/dataStructure/helpers/trimmed.cjs +7 -0
  142. package/dist/dataStructure/helpers/trimmed.d.ts +2 -0
  143. package/dist/dataStructure/helpers/trimmed.mjs +7 -0
  144. package/dist/dataStructure/helpers/undefined.d.ts +1 -1
  145. package/dist/dataStructure/helpers/union.d.ts +1 -1
  146. package/dist/dataStructure/index.cjs +38 -0
  147. package/dist/dataStructure/index.mjs +31 -10
  148. package/dist/dataStructure/structure/base.cjs +15 -5
  149. package/dist/dataStructure/structure/base.d.ts +7 -4
  150. package/dist/dataStructure/structure/base.mjs +15 -5
  151. package/dist/dataStructure/structure/defaults/array.d.ts +1 -1
  152. package/dist/dataStructure/structure/defaults/index.d.ts +1 -0
  153. package/dist/dataStructure/structure/defaults/lazy.cjs +4 -2
  154. package/dist/dataStructure/structure/defaults/lazy.d.ts +1 -1
  155. package/dist/dataStructure/structure/defaults/lazy.mjs +4 -2
  156. package/dist/dataStructure/structure/defaults/nonEncodableString.cjs +17 -0
  157. package/dist/dataStructure/structure/defaults/nonEncodableString.d.ts +10 -0
  158. package/dist/dataStructure/structure/defaults/nonEncodableString.mjs +16 -0
  159. package/dist/dataStructure/structure/defaults/object.d.ts +1 -1
  160. package/dist/dataStructure/structure/defaults/record.d.ts +1 -1
  161. package/dist/dataStructure/structure/defaults/type.cjs +1 -1
  162. package/dist/dataStructure/structure/defaults/type.d.ts +1 -1
  163. package/dist/dataStructure/structure/defaults/type.mjs +2 -2
  164. package/dist/dataStructure/structure/defaults/union.cjs +9 -9
  165. package/dist/dataStructure/structure/defaults/union.d.ts +1 -1
  166. package/dist/dataStructure/structure/defaults/union.mjs +9 -9
  167. package/dist/dataStructure/structure/identifier.d.ts +2 -2
  168. package/dist/dataStructure/structure/types/constraintsValue.d.ts +1 -1
  169. package/dist/dataStructure/structure/types/structures.d.ts +2 -1
  170. package/dist/dataStructure/structure/types/value.d.ts +1 -1
  171. package/dist/dataStructure/type/base.cjs +17 -4
  172. package/dist/dataStructure/type/base.d.ts +7 -3
  173. package/dist/dataStructure/type/base.mjs +17 -4
  174. package/dist/dataStructure/type/defaults/bigintLiteral.cjs +1 -1
  175. package/dist/dataStructure/type/defaults/bigintLiteral.mjs +1 -1
  176. package/dist/dataStructure/type/defaults/booleanLiteral.cjs +1 -1
  177. package/dist/dataStructure/type/defaults/booleanLiteral.mjs +1 -1
  178. package/dist/dataStructure/type/defaults/numberLiteral.cjs +1 -1
  179. package/dist/dataStructure/type/defaults/numberLiteral.mjs +1 -1
  180. package/dist/dataStructure/type/defaults/stringLiteral.cjs +1 -1
  181. package/dist/dataStructure/type/defaults/stringLiteral.mjs +1 -1
  182. package/dist/dataStructure/type/identifier.d.ts +2 -2
  183. package/dist/generator/asyncChunk.d.ts +3 -2
  184. package/dist/generator/chunk.d.ts +3 -2
  185. package/dist/generator/types/flat.d.ts +2 -2
  186. package/dist/invocation/flow/base.d.ts +7 -2
  187. package/dist/invocation/flow/controller/base.d.ts +1 -0
  188. package/dist/invocation/flow/controller/defaults/aborter.cjs +35 -0
  189. package/dist/invocation/flow/controller/defaults/aborter.d.ts +14 -0
  190. package/dist/invocation/flow/controller/defaults/aborter.mjs +33 -0
  191. package/dist/invocation/flow/controller/defaults/filter.cjs +5 -3
  192. package/dist/invocation/flow/controller/defaults/filter.d.ts +1 -1
  193. package/dist/invocation/flow/controller/defaults/filter.mjs +5 -3
  194. package/dist/invocation/flow/controller/defaults/index.d.ts +1 -0
  195. package/dist/invocation/index.cjs +7 -0
  196. package/dist/invocation/index.mjs +5 -1
  197. package/dist/kind/types/getName.d.ts +2 -0
  198. package/dist/kind/types/getNamespaceName.d.ts +3 -0
  199. package/dist/kind/types/index.d.ts +2 -0
  200. package/dist/kind/types/remove.d.ts +2 -2
  201. package/dist/modeling/entity/base.cjs +2 -2
  202. package/dist/modeling/entity/base.d.ts +14 -10
  203. package/dist/modeling/entity/base.mjs +2 -2
  204. package/dist/modeling/entity/index.d.ts +0 -1
  205. package/dist/modeling/index.cjs +17 -6
  206. package/dist/modeling/index.d.ts +1 -0
  207. package/dist/modeling/index.mjs +11 -5
  208. package/dist/modeling/newType/base.cjs +6 -3
  209. package/dist/modeling/newType/base.mjs +6 -3
  210. package/dist/modeling/taggedObject/base.cjs +23 -0
  211. package/dist/modeling/taggedObject/base.d.ts +32 -0
  212. package/dist/modeling/taggedObject/base.mjs +21 -0
  213. package/dist/modeling/taggedObject/helper.cjs +29 -0
  214. package/dist/modeling/taggedObject/helper.d.ts +14 -0
  215. package/dist/modeling/taggedObject/helper.mjs +26 -0
  216. package/dist/modeling/taggedObject/index.d.ts +2 -0
  217. package/dist/number/betweenThan.d.ts +2 -2
  218. package/dist/number/betweenThanOrEqual.d.ts +2 -2
  219. package/dist/number/greaterThan.d.ts +1 -1
  220. package/dist/number/greaterThanOrEqual.d.ts +1 -1
  221. package/dist/number/lessThan.d.ts +1 -1
  222. package/dist/number/lessThanOrEqual.d.ts +1 -1
  223. package/dist/number/sort.d.ts +1 -1
  224. package/dist/pattern/index.cjs +12 -0
  225. package/dist/pattern/index.d.ts +4 -0
  226. package/dist/pattern/index.mjs +9 -1
  227. package/dist/pattern/matchWithEntity.cjs +12 -0
  228. package/dist/pattern/matchWithEntity.d.ts +12 -0
  229. package/dist/pattern/matchWithEntity.mjs +12 -0
  230. package/dist/pattern/matchWithEntityOtherwise.cjs +13 -0
  231. package/dist/pattern/matchWithEntityOtherwise.d.ts +14 -0
  232. package/dist/pattern/matchWithEntityOtherwise.mjs +13 -0
  233. package/dist/pattern/matchWithNumberOtherwise.cjs +2 -6
  234. package/dist/pattern/matchWithNumberOtherwise.mjs +2 -6
  235. package/dist/pattern/matchWithStringOtherwise.cjs +2 -6
  236. package/dist/pattern/matchWithStringOtherwise.d.ts +1 -1
  237. package/dist/pattern/matchWithStringOtherwise.mjs +2 -6
  238. package/dist/pattern/matchWithTaggedObject.cjs +12 -0
  239. package/dist/pattern/matchWithTaggedObject.d.ts +12 -0
  240. package/dist/pattern/matchWithTaggedObject.mjs +12 -0
  241. package/dist/pattern/matchWithTaggedObjectOtherwise.cjs +13 -0
  242. package/dist/pattern/matchWithTaggedObjectOtherwise.d.ts +14 -0
  243. package/dist/pattern/matchWithTaggedObjectOtherwise.mjs +13 -0
  244. package/dist/string/at.d.ts +2 -2
  245. package/dist/string/first.d.ts +1 -1
  246. package/dist/string/index.cjs +3 -0
  247. package/dist/string/index.mjs +3 -1
  248. package/dist/string/last.d.ts +1 -1
  249. package/dist/string/lengthEqual.d.ts +1 -1
  250. package/dist/string/maxCharacters.d.ts +1 -1
  251. package/dist/string/minCharacters.d.ts +1 -1
  252. package/dist/string/padEnd.d.ts +1 -1
  253. package/dist/string/padStart.d.ts +1 -1
  254. package/dist/string/pop.d.ts +1 -1
  255. package/dist/string/shift.d.ts +1 -1
  256. package/dist/string/slice.d.ts +1 -1
  257. package/dist/string/substring.d.ts +1 -1
  258. package/dist/string/trim/default.d.ts +1 -1
  259. package/dist/string/trim/end.d.ts +1 -1
  260. package/dist/string/trim/index.d.ts +1 -0
  261. package/dist/string/trim/is.cjs +6 -0
  262. package/dist/string/trim/is.d.ts +2 -0
  263. package/dist/string/trim/is.mjs +6 -0
  264. package/dist/string/trim/start.d.ts +1 -1
  265. package/package.json +1 -1
  266. package/dist/modeling/entity/entityName.cjs +0 -13
  267. package/dist/modeling/entity/entityName.d.ts +0 -13
  268. package/dist/modeling/entity/entityName.mjs +0 -13
@@ -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]>>;
@@ -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]>>;
@@ -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]>>;
@@ -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);
@@ -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]>>;
@@ -14,9 +14,8 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
14
14
  const errorHandlers = errorHandler ? [] : void 0;
15
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
  }
@@ -25,6 +24,7 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
25
24
  return callThen(result, (awaitedResult) => {
26
25
  if (awaitedResult === ErrorSymbol) {
27
26
  if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
27
+ errorHandler?.().addIssue(self, data);
28
28
  return ErrorSymbol;
29
29
  }
30
30
  return SuccessSymbol;
@@ -34,9 +34,8 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
34
34
  const errorHandlers = errorHandler ? [] : void 0;
35
35
  const encodedData = self.definition.values.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
36
36
  if (awaitedAccumulator !== ErrorSymbol) return awaitedAccumulator;
37
- const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler();
38
- if (errorHandler && errorHandlers && subErrorHandler) {
39
- subErrorHandler().usePath(errorHandler().currentPath);
37
+ const subErrorHandler = errorHandler === void 0 ? void 0 : 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 = createStructure(unionStructureKind, ({ init }) => (values
45
44
  return callThen(encodedData, (awaitedEncodedData) => {
46
45
  if (awaitedEncodedData === ErrorSymbol) {
47
46
  if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
47
+ errorHandler?.().addIssue(self, data);
48
48
  return ErrorSymbol;
49
49
  }
50
50
  return callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData);
@@ -54,9 +54,8 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
54
54
  const errorHandlers = errorHandler ? [] : void 0;
55
55
  const decodedData = self.definition.values.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
56
56
  if (awaitedAccumulator !== ErrorSymbol) return awaitedAccumulator;
57
- const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler();
58
- if (errorHandler && errorHandlers && subErrorHandler) {
59
- subErrorHandler().usePath(errorHandler().currentPath);
57
+ const subErrorHandler = errorHandler === void 0 ? void 0 : 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 = createStructure(unionStructureKind, ({ init }) => (values
65
64
  return callThen(decodedData, (awaitedDecodedData) => {
66
65
  if (awaitedDecodedData === ErrorSymbol) {
67
66
  if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
67
+ errorHandler?.().addIssue(self, data);
68
68
  return ErrorSymbol;
69
69
  }
70
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 };