@duplojs/lang 0.0.0 → 0.0.1-beta.10

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 (567) 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/index.cjs +0 -3
  12. package/dist/array/index.d.ts +0 -1
  13. package/dist/array/index.mjs +1 -3
  14. package/dist/array/insert.d.ts +3 -3
  15. package/dist/array/length.d.ts +1 -1
  16. package/dist/array/lengthEqual.d.ts +1 -1
  17. package/dist/array/map.d.ts +1 -1
  18. package/dist/array/maxElements.d.ts +1 -1
  19. package/dist/array/minElements.d.ts +1 -1
  20. package/dist/array/pop.d.ts +1 -1
  21. package/dist/array/prepend.d.ts +1 -1
  22. package/dist/array/push.d.ts +3 -3
  23. package/dist/array/reverse.d.ts +1 -1
  24. package/dist/array/shift.d.ts +1 -1
  25. package/dist/array/sort.d.ts +1 -1
  26. package/dist/array/splice/delete.d.ts +1 -1
  27. package/dist/array/splice/insert.d.ts +1 -1
  28. package/dist/array/unshift.d.ts +3 -3
  29. package/dist/chrono/createDate.cjs +9 -9
  30. package/dist/chrono/createDate.d.ts +3 -3
  31. package/dist/chrono/createDate.mjs +9 -9
  32. package/dist/chrono/createTime.cjs +24 -13
  33. package/dist/chrono/createTime.mjs +24 -13
  34. package/dist/chrono/theDate.cjs +15 -16
  35. package/dist/chrono/theDate.d.ts +15 -15
  36. package/dist/chrono/theDate.mjs +15 -16
  37. package/dist/chrono/theTime.cjs +0 -1
  38. package/dist/chrono/theTime.mjs +0 -1
  39. package/dist/chrono/types/spoolingTime.d.ts +2 -1
  40. package/dist/common/constraint/cast/index.d.ts +3 -3
  41. package/dist/common/constraint/cast/number.d.ts +15 -0
  42. package/dist/common/constraint/cast/string.d.ts +21 -0
  43. package/dist/common/constraint/index.d.ts +2 -0
  44. package/dist/common/constraint/infer/array.d.ts +7 -0
  45. package/dist/{array/infer.cjs → common/constraint/infer/index.cjs} +1 -1
  46. package/dist/common/constraint/infer/index.d.ts +26 -0
  47. package/dist/{string/infer.mjs → common/constraint/infer/index.mjs} +1 -1
  48. package/dist/common/constraint/infer/number.d.ts +11 -0
  49. package/dist/common/constraint/infer/string.d.ts +13 -0
  50. package/dist/common/constraint/remove.cjs +6 -0
  51. package/dist/common/constraint/remove.d.ts +2 -0
  52. package/dist/common/constraint/remove.mjs +6 -0
  53. package/dist/common/formData.cjs +4 -2
  54. package/dist/common/formData.mjs +4 -2
  55. package/dist/common/index.cjs +6 -0
  56. package/dist/common/index.mjs +5 -1
  57. package/dist/common/isType.d.ts +3 -2
  58. package/dist/common/queue.cjs +9 -7
  59. package/dist/common/queue.mjs +9 -7
  60. package/dist/common/types/forward.d.ts +1 -0
  61. package/dist/common/types/index.d.ts +3 -0
  62. package/dist/common/types/isObject.d.ts +8 -0
  63. package/dist/common/types/json.d.ts +1 -1
  64. package/dist/common/types/splitPromise.d.ts +1 -0
  65. package/dist/dataStructure/common/codec/base.cjs +29 -0
  66. package/dist/dataStructure/common/{codec.d.ts → codec/base.d.ts} +8 -8
  67. package/dist/dataStructure/common/codec/base.mjs +26 -0
  68. package/dist/dataStructure/common/codec/defaults/index.d.ts +2 -0
  69. package/dist/dataStructure/common/codec/defaults/json.cjs +26 -0
  70. package/dist/dataStructure/common/codec/defaults/json.d.ts +6 -0
  71. package/dist/dataStructure/common/codec/defaults/json.mjs +26 -0
  72. package/dist/dataStructure/common/codec/defaults/string.cjs +44 -0
  73. package/dist/dataStructure/common/codec/defaults/string.d.ts +11 -0
  74. package/dist/dataStructure/common/codec/defaults/string.mjs +44 -0
  75. package/dist/dataStructure/common/codec/index.d.ts +2 -0
  76. package/dist/dataStructure/common/error/base.cjs +73 -0
  77. package/dist/dataStructure/common/error/base.d.ts +50 -0
  78. package/dist/dataStructure/common/error/base.mjs +69 -0
  79. package/dist/dataStructure/common/error/defaultInterpreter.cjs +84 -0
  80. package/dist/dataStructure/common/error/defaultInterpreter.d.ts +57 -0
  81. package/dist/dataStructure/common/error/defaultInterpreter.mjs +83 -0
  82. package/dist/dataStructure/common/error/index.d.ts +3 -0
  83. package/dist/dataStructure/common/error/interpreter.cjs +45 -0
  84. package/dist/dataStructure/common/error/interpreter.d.ts +36 -0
  85. package/dist/dataStructure/common/error/interpreter.mjs +45 -0
  86. package/dist/dataStructure/constraint/base.cjs +34 -5
  87. package/dist/dataStructure/constraint/base.d.ts +13 -4
  88. package/dist/dataStructure/constraint/base.mjs +34 -6
  89. package/dist/dataStructure/constraint/defaults/absolutePath.cjs +13 -0
  90. package/dist/dataStructure/constraint/defaults/absolutePath.d.ts +10 -0
  91. package/dist/dataStructure/constraint/defaults/absolutePath.mjs +12 -0
  92. package/dist/dataStructure/constraint/defaults/allowedCharacters.cjs +1 -1
  93. package/dist/dataStructure/constraint/defaults/allowedCharacters.d.ts +1 -3
  94. package/dist/dataStructure/constraint/defaults/allowedCharacters.mjs +1 -1
  95. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.cjs +1 -1
  96. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.d.ts +1 -1
  97. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.mjs +1 -1
  98. package/dist/dataStructure/constraint/defaults/betweenThan.cjs +1 -1
  99. package/dist/dataStructure/constraint/defaults/betweenThan.d.ts +1 -1
  100. package/dist/dataStructure/constraint/defaults/betweenThan.mjs +1 -1
  101. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.cjs +1 -1
  102. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.d.ts +1 -1
  103. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.mjs +1 -1
  104. package/dist/dataStructure/constraint/defaults/email.cjs +1 -1
  105. package/dist/dataStructure/constraint/defaults/email.d.ts +1 -1
  106. package/dist/dataStructure/constraint/defaults/email.mjs +1 -1
  107. package/dist/dataStructure/constraint/defaults/even.cjs +1 -1
  108. package/dist/dataStructure/constraint/defaults/even.d.ts +1 -1
  109. package/dist/dataStructure/constraint/defaults/even.mjs +1 -1
  110. package/dist/dataStructure/constraint/defaults/greaterThan.cjs +1 -1
  111. package/dist/dataStructure/constraint/defaults/greaterThan.d.ts +1 -1
  112. package/dist/dataStructure/constraint/defaults/greaterThan.mjs +1 -1
  113. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.cjs +1 -1
  114. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.d.ts +1 -1
  115. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.mjs +1 -1
  116. package/dist/dataStructure/constraint/defaults/index.d.ts +6 -0
  117. package/dist/dataStructure/constraint/defaults/integer.cjs +1 -1
  118. package/dist/dataStructure/constraint/defaults/integer.d.ts +1 -1
  119. package/dist/dataStructure/constraint/defaults/integer.mjs +1 -1
  120. package/dist/dataStructure/constraint/defaults/lessThan.cjs +1 -1
  121. package/dist/dataStructure/constraint/defaults/lessThan.d.ts +1 -1
  122. package/dist/dataStructure/constraint/defaults/lessThan.mjs +1 -1
  123. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.cjs +1 -1
  124. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.d.ts +1 -1
  125. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.mjs +1 -1
  126. package/dist/dataStructure/constraint/defaults/maxCharacters.cjs +1 -1
  127. package/dist/dataStructure/constraint/defaults/maxCharacters.d.ts +1 -1
  128. package/dist/dataStructure/constraint/defaults/maxCharacters.mjs +1 -1
  129. package/dist/dataStructure/constraint/defaults/maxElements.cjs +1 -1
  130. package/dist/dataStructure/constraint/defaults/maxElements.d.ts +1 -1
  131. package/dist/dataStructure/constraint/defaults/maxElements.mjs +1 -1
  132. package/dist/dataStructure/constraint/defaults/minCharacters.cjs +4 -4
  133. package/dist/dataStructure/constraint/defaults/minCharacters.d.ts +2 -2
  134. package/dist/dataStructure/constraint/defaults/minCharacters.mjs +4 -4
  135. package/dist/dataStructure/constraint/defaults/minElements.cjs +1 -1
  136. package/dist/dataStructure/constraint/defaults/minElements.d.ts +1 -1
  137. package/dist/dataStructure/constraint/defaults/minElements.mjs +1 -1
  138. package/dist/dataStructure/constraint/defaults/multipleOf.cjs +1 -1
  139. package/dist/dataStructure/constraint/defaults/multipleOf.d.ts +1 -1
  140. package/dist/dataStructure/constraint/defaults/multipleOf.mjs +1 -1
  141. package/dist/dataStructure/constraint/defaults/negative.cjs +1 -1
  142. package/dist/dataStructure/constraint/defaults/negative.d.ts +1 -1
  143. package/dist/dataStructure/constraint/defaults/negative.mjs +1 -1
  144. package/dist/dataStructure/constraint/defaults/notEmpty.cjs +1 -1
  145. package/dist/dataStructure/constraint/defaults/notEmpty.d.ts +1 -1
  146. package/dist/dataStructure/constraint/defaults/notEmpty.mjs +1 -1
  147. package/dist/dataStructure/constraint/defaults/notZero.cjs +1 -1
  148. package/dist/dataStructure/constraint/defaults/notZero.d.ts +1 -1
  149. package/dist/dataStructure/constraint/defaults/notZero.mjs +1 -1
  150. package/dist/dataStructure/constraint/defaults/numberInString.cjs +13 -0
  151. package/dist/dataStructure/constraint/defaults/numberInString.d.ts +10 -0
  152. package/dist/dataStructure/constraint/defaults/numberInString.mjs +12 -0
  153. package/dist/dataStructure/constraint/defaults/odd.cjs +1 -1
  154. package/dist/dataStructure/constraint/defaults/odd.d.ts +1 -1
  155. package/dist/dataStructure/constraint/defaults/odd.mjs +1 -1
  156. package/dist/dataStructure/constraint/defaults/path.cjs +13 -0
  157. package/dist/dataStructure/constraint/defaults/path.d.ts +10 -0
  158. package/dist/dataStructure/constraint/defaults/path.mjs +12 -0
  159. package/dist/dataStructure/constraint/defaults/positive.cjs +1 -1
  160. package/dist/dataStructure/constraint/defaults/positive.d.ts +1 -1
  161. package/dist/dataStructure/constraint/defaults/positive.mjs +1 -1
  162. package/dist/dataStructure/constraint/defaults/refine.cjs +1 -1
  163. package/dist/dataStructure/constraint/defaults/refine.d.ts +1 -1
  164. package/dist/dataStructure/constraint/defaults/refine.mjs +1 -1
  165. package/dist/dataStructure/constraint/defaults/regex.cjs +13 -0
  166. package/dist/dataStructure/constraint/defaults/regex.d.ts +10 -0
  167. package/dist/dataStructure/constraint/defaults/regex.mjs +12 -0
  168. package/dist/dataStructure/constraint/defaults/safe.cjs +1 -1
  169. package/dist/dataStructure/constraint/defaults/safe.d.ts +1 -1
  170. package/dist/dataStructure/constraint/defaults/safe.mjs +1 -1
  171. package/dist/dataStructure/constraint/defaults/segmentPath.cjs +13 -0
  172. package/dist/dataStructure/constraint/defaults/segmentPath.d.ts +10 -0
  173. package/dist/dataStructure/constraint/defaults/segmentPath.mjs +12 -0
  174. package/dist/dataStructure/constraint/defaults/strictNegative.cjs +1 -1
  175. package/dist/dataStructure/constraint/defaults/strictNegative.d.ts +1 -1
  176. package/dist/dataStructure/constraint/defaults/strictNegative.mjs +1 -1
  177. package/dist/dataStructure/constraint/defaults/strictPositive.cjs +1 -1
  178. package/dist/dataStructure/constraint/defaults/strictPositive.d.ts +1 -1
  179. package/dist/dataStructure/constraint/defaults/strictPositive.mjs +1 -1
  180. package/dist/dataStructure/constraint/defaults/stringLengthEqual.cjs +1 -1
  181. package/dist/dataStructure/constraint/defaults/stringLengthEqual.d.ts +1 -1
  182. package/dist/dataStructure/constraint/defaults/stringLengthEqual.mjs +1 -1
  183. package/dist/dataStructure/constraint/defaults/trimmed.cjs +13 -0
  184. package/dist/dataStructure/constraint/defaults/trimmed.d.ts +10 -0
  185. package/dist/dataStructure/constraint/defaults/trimmed.mjs +12 -0
  186. package/dist/dataStructure/constraint/defaults/url.cjs +2 -2
  187. package/dist/dataStructure/constraint/defaults/url.d.ts +2 -3
  188. package/dist/dataStructure/constraint/defaults/url.mjs +2 -2
  189. package/dist/dataStructure/constraint/defaults/uuid.cjs +2 -4
  190. package/dist/dataStructure/constraint/defaults/uuid.d.ts +1 -3
  191. package/dist/dataStructure/constraint/defaults/uuid.mjs +4 -5
  192. package/dist/dataStructure/constraint/identifier.d.ts +3 -4
  193. package/dist/dataStructure/constraint/types/constraints.d.ts +22 -15
  194. package/dist/dataStructure/fundamentalType/base.cjs +3 -3
  195. package/dist/dataStructure/fundamentalType/base.d.ts +4 -5
  196. package/dist/dataStructure/fundamentalType/base.mjs +3 -3
  197. package/dist/dataStructure/fundamentalType/defaults/bigint.cjs +4 -2
  198. package/dist/dataStructure/fundamentalType/defaults/bigint.d.ts +4 -4
  199. package/dist/dataStructure/fundamentalType/defaults/bigint.mjs +5 -2
  200. package/dist/dataStructure/fundamentalType/defaults/boolean.cjs +4 -2
  201. package/dist/dataStructure/fundamentalType/defaults/boolean.d.ts +4 -4
  202. package/dist/dataStructure/fundamentalType/defaults/boolean.mjs +5 -2
  203. package/dist/dataStructure/fundamentalType/defaults/date.cjs +4 -2
  204. package/dist/dataStructure/fundamentalType/defaults/date.d.ts +4 -4
  205. package/dist/dataStructure/fundamentalType/defaults/date.mjs +5 -2
  206. package/dist/dataStructure/fundamentalType/defaults/null.cjs +4 -2
  207. package/dist/dataStructure/fundamentalType/defaults/null.d.ts +4 -4
  208. package/dist/dataStructure/fundamentalType/defaults/null.mjs +5 -2
  209. package/dist/dataStructure/fundamentalType/defaults/number.cjs +4 -2
  210. package/dist/dataStructure/fundamentalType/defaults/number.d.ts +4 -4
  211. package/dist/dataStructure/fundamentalType/defaults/number.mjs +5 -2
  212. package/dist/dataStructure/fundamentalType/defaults/string.cjs +4 -2
  213. package/dist/dataStructure/fundamentalType/defaults/string.d.ts +4 -4
  214. package/dist/dataStructure/fundamentalType/defaults/string.mjs +5 -2
  215. package/dist/dataStructure/fundamentalType/defaults/time.cjs +4 -2
  216. package/dist/dataStructure/fundamentalType/defaults/time.d.ts +4 -4
  217. package/dist/dataStructure/fundamentalType/defaults/time.mjs +5 -2
  218. package/dist/dataStructure/fundamentalType/defaults/undefined.cjs +4 -2
  219. package/dist/dataStructure/fundamentalType/defaults/undefined.d.ts +4 -4
  220. package/dist/dataStructure/fundamentalType/defaults/undefined.mjs +5 -2
  221. package/dist/dataStructure/fundamentalType/identifier.d.ts +3 -4
  222. package/dist/dataStructure/helpers/absolutePath.cjs +7 -0
  223. package/dist/dataStructure/helpers/absolutePath.d.ts +2 -0
  224. package/dist/dataStructure/helpers/absolutePath.mjs +7 -0
  225. package/dist/dataStructure/helpers/array.d.ts +1 -1
  226. package/dist/dataStructure/helpers/bigint.d.ts +1 -1
  227. package/dist/dataStructure/helpers/boolean.d.ts +1 -1
  228. package/dist/dataStructure/helpers/date.d.ts +1 -1
  229. package/dist/dataStructure/helpers/extend.d.ts +1 -1
  230. package/dist/dataStructure/helpers/index.d.ts +10 -1
  231. package/dist/dataStructure/helpers/isNullable.cjs +12 -0
  232. package/dist/dataStructure/helpers/isNullable.d.ts +2 -0
  233. package/dist/dataStructure/helpers/isNullable.mjs +12 -0
  234. package/dist/dataStructure/helpers/isOptional.cjs +12 -0
  235. package/dist/dataStructure/helpers/isOptional.d.ts +2 -0
  236. package/dist/dataStructure/helpers/isOptional.mjs +12 -0
  237. package/dist/dataStructure/helpers/lazy.d.ts +1 -1
  238. package/dist/dataStructure/helpers/null.d.ts +1 -1
  239. package/dist/dataStructure/helpers/nullable.cjs +5 -2
  240. package/dist/dataStructure/helpers/nullable.mjs +5 -2
  241. package/dist/dataStructure/helpers/number.d.ts +1 -1
  242. package/dist/dataStructure/helpers/numberInString.cjs +7 -0
  243. package/dist/dataStructure/helpers/numberInString.d.ts +2 -0
  244. package/dist/dataStructure/helpers/numberInString.mjs +7 -0
  245. package/dist/dataStructure/helpers/object.d.ts +1 -1
  246. package/dist/dataStructure/helpers/optional.cjs +5 -2
  247. package/dist/dataStructure/helpers/optional.mjs +5 -2
  248. package/dist/dataStructure/helpers/partial.cjs +5 -2
  249. package/dist/dataStructure/helpers/partial.mjs +5 -2
  250. package/dist/dataStructure/helpers/path.cjs +7 -0
  251. package/dist/dataStructure/helpers/path.d.ts +2 -0
  252. package/dist/dataStructure/helpers/path.mjs +7 -0
  253. package/dist/dataStructure/helpers/record.d.ts +1 -1
  254. package/dist/dataStructure/helpers/regex.cjs +7 -0
  255. package/dist/dataStructure/helpers/regex.d.ts +2 -0
  256. package/dist/dataStructure/helpers/regex.mjs +7 -0
  257. package/dist/dataStructure/helpers/required.cjs +6 -3
  258. package/dist/dataStructure/helpers/required.d.ts +2 -1
  259. package/dist/dataStructure/helpers/required.mjs +6 -3
  260. package/dist/dataStructure/helpers/segmentPath.cjs +7 -0
  261. package/dist/dataStructure/helpers/segmentPath.d.ts +2 -0
  262. package/dist/dataStructure/helpers/segmentPath.mjs +7 -0
  263. package/dist/dataStructure/helpers/string.d.ts +1 -1
  264. package/dist/dataStructure/helpers/time.d.ts +1 -1
  265. package/dist/dataStructure/helpers/trimmed.cjs +7 -0
  266. package/dist/dataStructure/helpers/trimmed.d.ts +2 -0
  267. package/dist/dataStructure/helpers/trimmed.mjs +7 -0
  268. package/dist/dataStructure/helpers/undefined.d.ts +1 -1
  269. package/dist/dataStructure/helpers/union.d.ts +1 -1
  270. package/dist/dataStructure/helpers/unwrapLazy.cjs +9 -0
  271. package/dist/dataStructure/helpers/unwrapLazy.d.ts +2 -0
  272. package/dist/dataStructure/helpers/unwrapLazy.mjs +9 -0
  273. package/dist/dataStructure/helpers/url.cjs +2 -2
  274. package/dist/dataStructure/helpers/url.d.ts +1 -2
  275. package/dist/dataStructure/helpers/url.mjs +2 -2
  276. package/dist/dataStructure/index.cjs +158 -60
  277. package/dist/dataStructure/index.mjs +80 -21
  278. package/dist/dataStructure/structure/base.cjs +22 -12
  279. package/dist/dataStructure/structure/base.d.ts +8 -5
  280. package/dist/dataStructure/structure/base.mjs +16 -6
  281. package/dist/dataStructure/structure/defaults/array.d.ts +2 -2
  282. package/dist/dataStructure/structure/defaults/array.mjs +8 -5
  283. package/dist/dataStructure/structure/defaults/index.d.ts +1 -0
  284. package/dist/dataStructure/structure/defaults/lazy.cjs +10 -3
  285. package/dist/dataStructure/structure/defaults/lazy.d.ts +2 -2
  286. package/dist/dataStructure/structure/defaults/lazy.mjs +10 -3
  287. package/dist/dataStructure/structure/defaults/nonEncodableString.cjs +17 -0
  288. package/dist/dataStructure/structure/defaults/nonEncodableString.d.ts +10 -0
  289. package/dist/dataStructure/structure/defaults/nonEncodableString.mjs +16 -0
  290. package/dist/dataStructure/structure/defaults/object.d.ts +2 -2
  291. package/dist/dataStructure/structure/defaults/object.mjs +8 -5
  292. package/dist/dataStructure/structure/defaults/record.cjs +7 -7
  293. package/dist/dataStructure/structure/defaults/record.d.ts +3 -3
  294. package/dist/dataStructure/structure/defaults/record.mjs +15 -12
  295. package/dist/dataStructure/structure/defaults/type.cjs +1 -1
  296. package/dist/dataStructure/structure/defaults/type.d.ts +2 -2
  297. package/dist/dataStructure/structure/defaults/type.mjs +2 -2
  298. package/dist/dataStructure/structure/defaults/union.cjs +23 -17
  299. package/dist/dataStructure/structure/defaults/union.d.ts +3 -3
  300. package/dist/dataStructure/structure/defaults/union.mjs +27 -18
  301. package/dist/dataStructure/structure/identifier.d.ts +3 -4
  302. package/dist/dataStructure/structure/types/constraintsValue.d.ts +1 -1
  303. package/dist/dataStructure/structure/types/structures.d.ts +2 -1
  304. package/dist/dataStructure/structure/types/value.d.ts +1 -1
  305. package/dist/dataStructure/type/base.cjs +17 -4
  306. package/dist/dataStructure/type/base.d.ts +7 -3
  307. package/dist/dataStructure/type/base.mjs +17 -4
  308. package/dist/dataStructure/type/defaults/bigint.d.ts +1 -1
  309. package/dist/dataStructure/type/defaults/bigintLiteral.cjs +1 -1
  310. package/dist/dataStructure/type/defaults/bigintLiteral.d.ts +1 -1
  311. package/dist/dataStructure/type/defaults/bigintLiteral.mjs +1 -1
  312. package/dist/dataStructure/type/defaults/boolean.d.ts +1 -1
  313. package/dist/dataStructure/type/defaults/booleanLiteral.cjs +1 -1
  314. package/dist/dataStructure/type/defaults/booleanLiteral.d.ts +1 -1
  315. package/dist/dataStructure/type/defaults/booleanLiteral.mjs +1 -1
  316. package/dist/dataStructure/type/defaults/date.d.ts +1 -1
  317. package/dist/dataStructure/type/defaults/null.d.ts +1 -1
  318. package/dist/dataStructure/type/defaults/number.d.ts +1 -1
  319. package/dist/dataStructure/type/defaults/numberLiteral.cjs +1 -1
  320. package/dist/dataStructure/type/defaults/numberLiteral.d.ts +1 -1
  321. package/dist/dataStructure/type/defaults/numberLiteral.mjs +1 -1
  322. package/dist/dataStructure/type/defaults/string.d.ts +1 -1
  323. package/dist/dataStructure/type/defaults/stringLiteral.cjs +1 -1
  324. package/dist/dataStructure/type/defaults/stringLiteral.d.ts +1 -1
  325. package/dist/dataStructure/type/defaults/stringLiteral.mjs +1 -1
  326. package/dist/dataStructure/type/defaults/time.d.ts +1 -1
  327. package/dist/dataStructure/type/defaults/undefined.d.ts +1 -1
  328. package/dist/dataStructure/type/identifier.d.ts +3 -4
  329. package/dist/either/index.cjs +30 -8
  330. package/dist/either/index.d.ts +4 -0
  331. package/dist/either/index.mjs +23 -9
  332. package/dist/either/left/index.d.ts +3 -2
  333. package/dist/either/left/none.cjs +15 -0
  334. package/dist/either/left/none.d.ts +7 -0
  335. package/dist/either/left/none.mjs +14 -0
  336. package/dist/either/matchInformationOtherwise.d.ts +1 -1
  337. package/dist/either/rewriteInformation.cjs +22 -0
  338. package/dist/either/rewriteInformation.d.ts +14 -0
  339. package/dist/either/rewriteInformation.mjs +22 -0
  340. package/dist/either/right/asyncGroup.cjs +2 -2
  341. package/dist/either/right/asyncGroup.mjs +2 -2
  342. package/dist/either/right/group.cjs +1 -1
  343. package/dist/either/right/group.mjs +1 -1
  344. package/dist/either/right/index.d.ts +6 -5
  345. package/dist/either/right/some.cjs +15 -0
  346. package/dist/either/right/some.d.ts +7 -0
  347. package/dist/either/right/some.mjs +14 -0
  348. package/dist/either/toMaybe.cjs +12 -0
  349. package/dist/either/toMaybe.d.ts +5 -0
  350. package/dist/either/toMaybe.mjs +12 -0
  351. package/dist/either/types/mayBe.d.ts +3 -0
  352. package/dist/either/unwrapOr.cjs +14 -0
  353. package/dist/either/unwrapOr.d.ts +8 -0
  354. package/dist/either/unwrapOr.mjs +14 -0
  355. package/dist/either/unwrapOtherwise.cjs +14 -0
  356. package/dist/either/unwrapOtherwise.d.ts +8 -0
  357. package/dist/either/unwrapOtherwise.mjs +14 -0
  358. package/dist/generator/asyncChunk.d.ts +3 -2
  359. package/dist/generator/chunk.d.ts +3 -2
  360. package/dist/generator/reduce.cjs +2 -1
  361. package/dist/generator/reduce.mjs +1 -1
  362. package/dist/generator/types/flat.d.ts +2 -2
  363. package/dist/index.cjs +43 -39
  364. package/dist/index.mjs +4 -2
  365. package/dist/invocation/flow/base.d.ts +8 -3
  366. package/dist/invocation/flow/controller/base.d.ts +1 -0
  367. package/dist/invocation/flow/controller/defaults/aborter.cjs +38 -0
  368. package/dist/invocation/flow/controller/defaults/aborter.d.ts +17 -0
  369. package/dist/invocation/flow/controller/defaults/aborter.mjs +36 -0
  370. package/dist/invocation/flow/controller/defaults/debounce.d.ts +1 -1
  371. package/dist/invocation/flow/controller/defaults/filter.cjs +5 -3
  372. package/dist/invocation/flow/controller/defaults/filter.d.ts +1 -1
  373. package/dist/invocation/flow/controller/defaults/filter.mjs +5 -3
  374. package/dist/invocation/flow/controller/defaults/index.d.ts +1 -0
  375. package/dist/invocation/flow/controller/defaults/retry.d.ts +1 -1
  376. package/dist/invocation/flow/controller/defaults/throttling.d.ts +1 -1
  377. package/dist/invocation/flow/controller/defaults/timeout.d.ts +1 -1
  378. package/dist/invocation/index.cjs +15 -8
  379. package/dist/invocation/index.d.ts +1 -1
  380. package/dist/invocation/index.mjs +10 -6
  381. package/dist/invocation/reader.cjs +26 -0
  382. package/dist/invocation/reader.d.ts +28 -0
  383. package/dist/invocation/reader.mjs +25 -0
  384. package/dist/kind/createIdentifier.d.ts +8 -4
  385. package/dist/kind/types/getName.d.ts +2 -0
  386. package/dist/kind/types/getNamespaceName.d.ts +3 -0
  387. package/dist/kind/types/index.d.ts +2 -0
  388. package/dist/kind/types/remove.d.ts +2 -2
  389. package/dist/modeling/entity/base.cjs +38 -11
  390. package/dist/modeling/entity/base.d.ts +25 -10
  391. package/dist/modeling/entity/base.mjs +32 -6
  392. package/dist/modeling/entity/helper.d.ts +1 -1
  393. package/dist/modeling/entity/index.d.ts +0 -1
  394. package/dist/modeling/entity/namespace.cjs +2 -2
  395. package/dist/modeling/entity/namespace.d.ts +1 -1
  396. package/dist/modeling/entity/namespace.mjs +3 -3
  397. package/dist/modeling/flag/base.cjs +1 -5
  398. package/dist/modeling/flag/base.d.ts +6 -7
  399. package/dist/modeling/flag/base.mjs +1 -5
  400. package/dist/modeling/index.cjs +45 -28
  401. package/dist/modeling/index.d.ts +1 -0
  402. package/dist/modeling/index.mjs +18 -9
  403. package/dist/modeling/newType/base.cjs +34 -13
  404. package/dist/modeling/newType/base.d.ts +9 -2
  405. package/dist/modeling/newType/base.mjs +26 -7
  406. package/dist/modeling/newType/helper.cjs +2 -2
  407. package/dist/modeling/newType/helper.d.ts +1 -1
  408. package/dist/modeling/newType/helper.mjs +2 -2
  409. package/dist/modeling/taggedObject/base.cjs +113 -0
  410. package/dist/modeling/taggedObject/base.d.ts +61 -0
  411. package/dist/modeling/taggedObject/base.mjs +110 -0
  412. package/dist/modeling/taggedObject/helper.cjs +34 -0
  413. package/dist/modeling/taggedObject/helper.d.ts +15 -0
  414. package/dist/modeling/taggedObject/helper.mjs +31 -0
  415. package/dist/modeling/taggedObject/index.d.ts +2 -0
  416. package/dist/number/betweenThan.d.ts +2 -2
  417. package/dist/number/betweenThanOrEqual.d.ts +2 -2
  418. package/dist/number/greaterThan.d.ts +1 -1
  419. package/dist/number/greaterThanOrEqual.d.ts +1 -1
  420. package/dist/number/index.cjs +0 -3
  421. package/dist/number/index.d.ts +0 -1
  422. package/dist/number/index.mjs +1 -3
  423. package/dist/number/lessThan.d.ts +1 -1
  424. package/dist/number/lessThanOrEqual.d.ts +1 -1
  425. package/dist/number/sort.d.ts +1 -1
  426. package/dist/number/types/isGreater.d.ts +5 -5
  427. package/dist/object/assign.d.ts +3 -3
  428. package/dist/object/types/assign.d.ts +2 -0
  429. package/dist/object/types/forbiddenUndefinedProps.d.ts +3 -0
  430. package/dist/object/types/index.d.ts +4 -2
  431. package/dist/object/types/override.d.ts +4 -0
  432. package/dist/object/types/split.d.ts +2 -2
  433. package/dist/path/computeRelative.cjs +5 -6
  434. package/dist/path/computeRelative.d.ts +1 -1
  435. package/dist/path/computeRelative.mjs +5 -6
  436. package/dist/path/constraints/absolute.d.ts +1 -1
  437. package/dist/path/constraints/index.d.ts +2 -1
  438. package/dist/path/constraints/segment.d.ts +3 -0
  439. package/dist/path/getBaseName.cjs +7 -7
  440. package/dist/path/getBaseName.d.ts +2 -2
  441. package/dist/path/getBaseName.mjs +7 -7
  442. package/dist/path/getExtensionName.cjs +9 -4
  443. package/dist/path/getExtensionName.d.ts +2 -2
  444. package/dist/path/getExtensionName.mjs +9 -4
  445. package/dist/path/getParentFolderPath.cjs +9 -4
  446. package/dist/path/getParentFolderPath.d.ts +1 -2
  447. package/dist/path/getParentFolderPath.mjs +9 -4
  448. package/dist/path/index.cjs +6 -3
  449. package/dist/path/index.d.ts +3 -2
  450. package/dist/path/index.mjs +5 -3
  451. package/dist/path/is.cjs +9 -4
  452. package/dist/path/is.d.ts +4 -2
  453. package/dist/path/is.mjs +9 -4
  454. package/dist/path/isAbsolute.cjs +3 -5
  455. package/dist/path/isAbsolute.d.ts +4 -2
  456. package/dist/path/isAbsolute.mjs +3 -5
  457. package/dist/path/isSegment.cjs +6 -0
  458. package/dist/path/isSegment.d.ts +4 -0
  459. package/dist/path/isSegment.mjs +6 -0
  460. package/dist/path/normalize.cjs +18 -0
  461. package/dist/path/normalize.d.ts +2 -0
  462. package/dist/path/normalize.mjs +18 -0
  463. package/dist/path/resolveFrom.cjs +4 -5
  464. package/dist/path/resolveFrom.d.ts +10 -2
  465. package/dist/path/resolveFrom.mjs +4 -5
  466. package/dist/path/resolveRelative.cjs +17 -20
  467. package/dist/path/resolveRelative.d.ts +9 -2
  468. package/dist/path/resolveRelative.mjs +17 -20
  469. package/dist/path/types/index.d.ts +6 -0
  470. package/dist/path/types/isLiteralAbsolutePath.d.ts +2 -0
  471. package/dist/path/types/isLiteralPath.d.ts +20 -0
  472. package/dist/path/types/isLiteralSegmentPath.d.ts +9 -0
  473. package/dist/path/types/requireLiteralAbsolutePath.d.ts +3 -0
  474. package/dist/path/types/requireLiteralPath.d.ts +3 -0
  475. package/dist/path/types/requireLiteralSegmentPath.d.ts +3 -0
  476. package/dist/pattern/index.cjs +12 -0
  477. package/dist/pattern/index.d.ts +4 -0
  478. package/dist/pattern/index.mjs +9 -1
  479. package/dist/pattern/matchWithEntity.cjs +12 -0
  480. package/dist/pattern/matchWithEntity.d.ts +12 -0
  481. package/dist/pattern/matchWithEntity.mjs +12 -0
  482. package/dist/pattern/matchWithEntityOtherwise.cjs +13 -0
  483. package/dist/pattern/matchWithEntityOtherwise.d.ts +14 -0
  484. package/dist/pattern/matchWithEntityOtherwise.mjs +13 -0
  485. package/dist/pattern/matchWithNumber.d.ts +4 -4
  486. package/dist/pattern/matchWithNumberOtherwise.cjs +2 -6
  487. package/dist/pattern/matchWithNumberOtherwise.d.ts +4 -4
  488. package/dist/pattern/matchWithNumberOtherwise.mjs +2 -6
  489. package/dist/pattern/matchWithString.d.ts +4 -4
  490. package/dist/pattern/matchWithStringOtherwise.cjs +2 -6
  491. package/dist/pattern/matchWithStringOtherwise.d.ts +5 -5
  492. package/dist/pattern/matchWithStringOtherwise.mjs +2 -6
  493. package/dist/pattern/matchWithTaggedObject.cjs +12 -0
  494. package/dist/pattern/matchWithTaggedObject.d.ts +12 -0
  495. package/dist/pattern/matchWithTaggedObject.mjs +12 -0
  496. package/dist/pattern/matchWithTaggedObjectOtherwise.cjs +13 -0
  497. package/dist/pattern/matchWithTaggedObjectOtherwise.d.ts +14 -0
  498. package/dist/pattern/matchWithTaggedObjectOtherwise.mjs +13 -0
  499. package/dist/string/at.d.ts +2 -2
  500. package/dist/string/constraints/allowedCharacters.d.ts +3 -3
  501. package/dist/string/constraints/index.d.ts +2 -1
  502. package/dist/string/constraints/number.d.ts +4 -0
  503. package/dist/string/first.d.ts +1 -1
  504. package/dist/string/index.cjs +6 -3
  505. package/dist/string/index.d.ts +1 -1
  506. package/dist/string/index.mjs +5 -3
  507. package/dist/string/isComposedOf.cjs +0 -1
  508. package/dist/string/isComposedOf.d.ts +5 -8
  509. package/dist/string/isComposedOf.mjs +0 -1
  510. package/dist/string/isNumber.cjs +7 -0
  511. package/dist/string/isNumber.d.ts +5 -0
  512. package/dist/string/isNumber.mjs +7 -0
  513. package/dist/string/isUrl.cjs +2 -11
  514. package/dist/string/isUrl.d.ts +1 -5
  515. package/dist/string/isUrl.mjs +2 -11
  516. package/dist/string/last.d.ts +1 -1
  517. package/dist/string/lengthEqual.d.ts +1 -1
  518. package/dist/string/maxCharacters.d.ts +1 -1
  519. package/dist/string/minCharacters.d.ts +1 -1
  520. package/dist/string/padEnd.d.ts +1 -1
  521. package/dist/string/padStart.d.ts +1 -1
  522. package/dist/string/pop.d.ts +1 -1
  523. package/dist/string/shift.d.ts +1 -1
  524. package/dist/string/slice.d.ts +1 -1
  525. package/dist/string/substring.d.ts +1 -1
  526. package/dist/string/to.d.ts +9 -2
  527. package/dist/string/trim/default.d.ts +1 -1
  528. package/dist/string/trim/end.d.ts +1 -1
  529. package/dist/string/trim/index.d.ts +1 -0
  530. package/dist/string/trim/is.cjs +6 -0
  531. package/dist/string/trim/is.d.ts +2 -0
  532. package/dist/string/trim/is.mjs +6 -0
  533. package/dist/string/trim/start.d.ts +1 -1
  534. package/dist/string/types/IsAllowedString.d.ts +5 -0
  535. package/dist/string/types/index.d.ts +5 -5
  536. package/dist/string/types/numberInString.d.ts +1 -0
  537. package/dist/string/types/split.d.ts +1 -1
  538. package/dist/tuple/from.cjs +6 -0
  539. package/dist/tuple/from.d.ts +8 -0
  540. package/dist/tuple/from.mjs +6 -0
  541. package/dist/tuple/index.cjs +6 -1
  542. package/dist/tuple/index.d.ts +1 -0
  543. package/dist/tuple/index.mjs +6 -2
  544. package/package.json +2 -2
  545. package/dist/array/infer.d.ts +0 -14
  546. package/dist/array/infer.mjs +0 -6
  547. package/dist/dataStructure/common/codec.cjs +0 -28
  548. package/dist/dataStructure/common/codec.mjs +0 -25
  549. package/dist/dataStructure/common/error.cjs +0 -53
  550. package/dist/dataStructure/common/error.d.ts +0 -30
  551. package/dist/dataStructure/common/error.mjs +0 -52
  552. package/dist/invocation/useCase.cjs +0 -26
  553. package/dist/invocation/useCase.d.ts +0 -28
  554. package/dist/invocation/useCase.mjs +0 -25
  555. package/dist/modeling/entity/entityName.cjs +0 -13
  556. package/dist/modeling/entity/entityName.d.ts +0 -13
  557. package/dist/modeling/entity/entityName.mjs +0 -13
  558. package/dist/number/infer.cjs +0 -6
  559. package/dist/number/infer.d.ts +0 -12
  560. package/dist/number/infer.mjs +0 -6
  561. package/dist/object/types/assignObjects.d.ts +0 -2
  562. package/dist/path/fix.cjs +0 -8
  563. package/dist/path/fix.d.ts +0 -1
  564. package/dist/path/fix.mjs +0 -8
  565. package/dist/string/infer.cjs +0 -6
  566. package/dist/string/infer.d.ts +0 -12
  567. package/dist/string/types/number.d.ts +0 -1
@@ -7,6 +7,6 @@ export declare const lazyStructureKind: DKind.Handler<DKind.Definition<"@Duplojs
7
7
  export interface LazyStructureDefinition<GenericConstraints extends readonly Constraint[] = readonly Constraint[]> extends StructureDefinition<GenericConstraints> {
8
8
  readonly getter: DCommon.Memoized<Structure>;
9
9
  }
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>> {
10
+ export interface LazyStructure<out GenericValue extends unknown = unknown, out GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.Forward<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,15 +1,22 @@
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";
6
+ import { structureIdentifier } from "../identifier.mjs";
4
7
  //#region scripts/dataStructure/structure/defaults/lazy.ts
5
8
  const lazyStructureKind = createKind("lazy-structure");
6
9
  const LazyStructure = createStructure(lazyStructureKind, ({ init }) => (getStructure, constraints) => init({
7
- getter: memo(getStructure),
10
+ getter: memo(() => {
11
+ const dataStructure = getStructure();
12
+ if (structureIdentifier(dataStructure, lazyStructureKind)) return dataStructure.definition.getter.value;
13
+ return dataStructure;
14
+ }),
8
15
  constraints
9
16
  }, {
10
17
  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),
18
+ executeEncode: (self, codecContext, data, errorHandler) => callThen(self.definition.getter.value.executeEncode(codecContext, data, errorHandler), (encodedData) => encodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : encodedData)),
19
+ 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
20
  isAsynchronous: (self) => self.definition.getter.value.isAsynchronous()
14
21
  }));
15
22
  //#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.Forward<Structure<String, NonEncodableStringStructureDefinition> & DKind.Kind<typeof nonEncodableStringStructureKind>> {
9
+ }
10
+ export declare const NonEncodableStringStructure: (value: string) => NoInfer<NonEncodableStringStructure>;
@@ -0,0 +1,16 @@
1
+ import { createKind } from "../../kind.mjs";
2
+ import { ErrorSymbol, SuccessSymbol } from "../../common/resultSymbol.mjs";
3
+ import { createStructure } from "../base.mjs";
4
+ //#region scripts/dataStructure/structure/defaults/nonEncodableString.ts
5
+ const nonEncodableStringStructureKind = createKind("non-encodable-string-structure");
6
+ const NonEncodableStringStructure = createStructure(nonEncodableStringStructureKind, ({ init }) => (value) => init({
7
+ value,
8
+ constraints: []
9
+ }, {
10
+ executeCheck: (self, data, errorHandler) => data === self.definition.value ? SuccessSymbol : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
11
+ executeEncode: (self, codecContext, data, errorHandler) => data === self.definition.value ? data : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
12
+ executeDecode: (self, codecContext, data, errorHandler) => data === self.definition.value ? data : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
13
+ isAsynchronous: () => false
14
+ }));
15
+ //#endregion
16
+ export { NonEncodableStringStructure, nonEncodableStringStructureKind };
@@ -25,6 +25,6 @@ export interface ObjectStructureDefinition<GenericConstraints extends readonly C
25
25
  readonly shape: DCommon.Memoized<readonly EntryShapeObjectStructure[]>;
26
26
  readonly keys: readonly string[];
27
27
  }
28
- export interface ObjectStructure<GenericValue extends Record<string, unknown> = Record<string, unknown>, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.UnionToIntersection<Structure<GenericValue, ObjectStructureDefinition<GenericConstraints>> & DKind.Kind<typeof objectStructureKind>> {
28
+ export interface ObjectStructure<out GenericValue extends Record<string, unknown> = Record<string, unknown>, out GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.Forward<Structure<GenericValue, ObjectStructureDefinition<GenericConstraints>> & DKind.Kind<typeof objectStructureKind>> {
29
29
  }
30
- export declare const ObjectStructure: <GenericShape extends ShapeObjectStructure, const GenericConstraints extends readonly Constraint<ShapeObjectStructureValue<GenericShape>>[]>(shape: GenericShape, constraints: GenericConstraints) => ObjectStructure<ShapeObjectStructureValue<GenericShape>, readonly [...GenericConstraints]>;
30
+ export declare const ObjectStructure: <GenericShape extends ShapeObjectStructure, const GenericConstraints extends readonly Constraint<ShapeObjectStructureValue<GenericShape>>[]>(shape: GenericShape, constraints: GenericConstraints) => NoInfer<ObjectStructure<ShapeObjectStructureValue<GenericShape>, readonly [...GenericConstraints]>>;
@@ -18,7 +18,8 @@ const ObjectStructure = createStructure(objectStructureKind, ({ init }) => (shap
18
18
  if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
19
19
  if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
20
20
  const pathStage = errorHandler?.().createPathStage();
21
- return callThen(self.definition.shape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeCheck(data[entry.key], errorHandler), (result) => result === ErrorSymbol || awaitedAccumulator === ErrorSymbol ? ErrorSymbol : SuccessSymbol)), SuccessSymbol), (awaitedResult) => {
21
+ const result = self.definition.shape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeCheck(data[entry.key], errorHandler), (result) => result === ErrorSymbol || awaitedAccumulator === ErrorSymbol ? ErrorSymbol : SuccessSymbol)), SuccessSymbol);
22
+ return callThen(result, (awaitedResult) => {
22
23
  pathStage?.close();
23
24
  return awaitedResult;
24
25
  });
@@ -27,21 +28,23 @@ const ObjectStructure = createStructure(objectStructureKind, ({ init }) => (shap
27
28
  if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
28
29
  if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
29
30
  const pathStage = errorHandler?.().createPathStage();
30
- return callThen(self.definition.shape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeEncode(codecContext, data[entry.key], errorHandler), (encodedData) => {
31
+ const encodedData = self.definition.shape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeEncode(codecContext, data[entry.key], errorHandler), (encodedData) => {
31
32
  if (encodedData === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
32
33
  awaitedAccumulator[entry.key] = encodedData;
33
34
  return awaitedAccumulator;
34
- })), {}), (awaitedEncodedData) => pathStage?.close() ?? (awaitedEncodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData)));
35
+ })), {});
36
+ return callThen(encodedData, (awaitedEncodedData) => pathStage?.close() ?? (awaitedEncodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData)));
35
37
  },
36
38
  executeDecode: (self, codecContext, data, errorHandler) => {
37
39
  if (!isSimple(data) || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
38
40
  if (Object.keys(data).some((value) => !self.definition.keys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
39
41
  const pathStage = errorHandler?.().createPathStage();
40
- return callThen(self.definition.shape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeDecode(codecContext, data[entry.key], errorHandler), (decodedData) => {
42
+ const decodedData = self.definition.shape.value.reduce((accumulator, entry) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(entry.key) ?? callThen(entry.value.executeDecode(codecContext, data[entry.key], errorHandler), (decodedData) => {
41
43
  if (decodedData === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
42
44
  awaitedAccumulator[entry.key] = decodedData;
43
45
  return awaitedAccumulator;
44
- })), {}), (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData)));
46
+ })), {});
47
+ return callThen(decodedData, (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData)));
45
48
  },
46
49
  isAsynchronous: (self) => self.definition.shape.value.some((entry) => entry.value.isAsynchronous())
47
50
  }));
@@ -1,6 +1,6 @@
1
1
  const require_callThen = require("../../../common/callThen.cjs");
2
2
  const require_isType = require("../../../common/isType.cjs");
3
- const require_justExec = require("../../../common/justExec.cjs");
3
+ const require_memo = require("../../../common/memo.cjs");
4
4
  const require_kind = require("../../kind.cjs");
5
5
  const require_resultSymbol = require("../../common/resultSymbol.cjs");
6
6
  const require_base = require("../base.cjs");
@@ -16,10 +16,10 @@ const RecordStructure = require_base.createStructure(recordStructureKind, ({ ini
16
16
  key,
17
17
  value,
18
18
  constraints,
19
- requiredKeys: require_justExec.justExec(() => {
19
+ requiredKeys: require_memo.memo(() => {
20
20
  if (require_identifier.structureIdentifier(key, require_union.unionStructureKind)) {
21
- if (key.definition.values.some((value) => require_identifier.structureIdentifier(value, require_type.typeStructureKind) && require_identifier$1.typeIdentifier(value.definition.type, require_string.stringTypeKind))) return null;
22
- return key.definition.values.map((value) => require_identifier.structureIdentifier(value, require_type.typeStructureKind) && require_identifier$1.typeIdentifier(value.definition.type, require_stringLiteral.stringLiteralTypeKind) ? value.definition.type.definition.value : null).filter(require_isType.isType("string"));
21
+ if (key.definition.values.value.some((value) => require_identifier.structureIdentifier(value, require_type.typeStructureKind) && require_identifier$1.typeIdentifier(value.definition.type, require_string.stringTypeKind))) return null;
22
+ return key.definition.values.value.map((value) => require_identifier.structureIdentifier(value, require_type.typeStructureKind) && require_identifier$1.typeIdentifier(value.definition.type, require_stringLiteral.stringLiteralTypeKind) ? value.definition.type.definition.value : null).filter(require_isType.isType("string"));
23
23
  }
24
24
  if (require_identifier.structureIdentifier(key, require_type.typeStructureKind) && require_identifier$1.typeIdentifier(key.definition.type, require_stringLiteral.stringLiteralTypeKind)) return [key.definition.type.definition.value];
25
25
  return null;
@@ -28,7 +28,7 @@ const RecordStructure = require_base.createStructure(recordStructureKind, ({ ini
28
28
  executeCheck: (self, data, errorHandler) => {
29
29
  if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
30
30
  const keyData = Object.keys(data);
31
- const requiredKeys = self.definition.requiredKeys;
31
+ const requiredKeys = self.definition.requiredKeys.value;
32
32
  if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
33
33
  const pathStage = errorHandler?.().createPathStage();
34
34
  const result = (requiredKeys ?? keyData).reduce((accumulator, key) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (resultKey) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeCheck(data[key], errorHandler), (resultValue) => resultValue === require_resultSymbol.ErrorSymbol || resultKey === require_resultSymbol.ErrorSymbol || awaitedAccumulator === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_resultSymbol.SuccessSymbol))), require_resultSymbol.SuccessSymbol);
@@ -40,7 +40,7 @@ const RecordStructure = require_base.createStructure(recordStructureKind, ({ ini
40
40
  executeEncode: (self, codecContext, data, errorHandler) => {
41
41
  if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
42
42
  const keyData = Object.keys(data);
43
- const requiredKeys = self.definition.requiredKeys;
43
+ const requiredKeys = self.definition.requiredKeys.value;
44
44
  if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
45
45
  const pathStage = errorHandler?.().createPathStage();
46
46
  const encodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeEncode(codecContext, data[key], errorHandler), (encodedValue) => {
@@ -53,7 +53,7 @@ const RecordStructure = require_base.createStructure(recordStructureKind, ({ ini
53
53
  executeDecode: (self, codecContext, data, errorHandler) => {
54
54
  if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
55
55
  const keyData = Object.keys(data);
56
- const requiredKeys = self.definition.requiredKeys;
56
+ const requiredKeys = self.definition.requiredKeys.value;
57
57
  if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol;
58
58
  const pathStage = errorHandler?.().createPathStage();
59
59
  const decodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => require_callThen.callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? require_callThen.callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? require_callThen.callThen(self.definition.value.executeDecode(codecContext, data[key], errorHandler), (decodedValue) => {
@@ -12,8 +12,8 @@ export declare const recordStructureKind: DKind.Handler<DKind.Definition<"@Duplo
12
12
  export interface RecordStructureDefinition<GenericConstraints extends readonly Constraint[] = readonly Constraint[]> extends StructureDefinition<GenericConstraints> {
13
13
  readonly key: UnionStructure<string> | TypeStructure<string>;
14
14
  readonly value: Structure;
15
- readonly requiredKeys: string[] | null;
15
+ readonly requiredKeys: DCommon.Memoized<string[] | null>;
16
16
  }
17
- export interface RecordStructure<GenericValue extends Record<string, unknown> = Record<string, unknown>, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.UnionToIntersection<Structure<GenericValue, RecordStructureDefinition<GenericConstraints>> & DKind.Kind<typeof recordStructureKind>> {
17
+ export interface RecordStructure<out GenericValue extends Record<string, unknown> = Record<string, unknown>, out GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.Forward<Structure<GenericValue, RecordStructureDefinition<GenericConstraints>> & DKind.Kind<typeof recordStructureKind>> {
18
18
  }
19
- export declare const RecordStructure: <GenericKey extends (UnionStructure<string> | TypeStructure<string>), GenericValueStructure extends Structure, const GenericConstraints extends readonly Constraint<RecordStructureValue<GenericKey, GenericValueStructure>>[]>(key: GenericKey, value: GenericValueStructure, constraints: GenericConstraints) => RecordStructure<RecordStructureValue<GenericKey, GenericValueStructure>, readonly [...GenericConstraints]>;
19
+ export declare const RecordStructure: <GenericKey extends (UnionStructure<string> | TypeStructure<string>), GenericValueStructure extends Structure, const GenericConstraints extends readonly Constraint<RecordStructureValue<GenericKey, GenericValueStructure>>[]>(key: GenericKey, value: GenericValueStructure, constraints: GenericConstraints) => NoInfer<RecordStructure<RecordStructureValue<GenericKey, GenericValueStructure>, readonly [...GenericConstraints]>>;
@@ -1,6 +1,6 @@
1
1
  import { callThen } from "../../../common/callThen.mjs";
2
2
  import { isType } from "../../../common/isType.mjs";
3
- import { justExec } from "../../../common/justExec.mjs";
3
+ import { memo } from "../../../common/memo.mjs";
4
4
  import { createKind } from "../../kind.mjs";
5
5
  import { ErrorSymbol, SuccessSymbol } from "../../common/resultSymbol.mjs";
6
6
  import { createStructure } from "../base.mjs";
@@ -16,10 +16,10 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
16
16
  key,
17
17
  value,
18
18
  constraints,
19
- requiredKeys: justExec(() => {
19
+ requiredKeys: memo(() => {
20
20
  if (structureIdentifier(key, unionStructureKind)) {
21
- if (key.definition.values.some((value) => structureIdentifier(value, typeStructureKind) && typeIdentifier(value.definition.type, stringTypeKind))) return null;
22
- return key.definition.values.map((value) => structureIdentifier(value, typeStructureKind) && typeIdentifier(value.definition.type, stringLiteralTypeKind) ? value.definition.type.definition.value : null).filter(isType("string"));
21
+ if (key.definition.values.value.some((value) => structureIdentifier(value, typeStructureKind) && typeIdentifier(value.definition.type, stringTypeKind))) return null;
22
+ return key.definition.values.value.map((value) => structureIdentifier(value, typeStructureKind) && typeIdentifier(value.definition.type, stringLiteralTypeKind) ? value.definition.type.definition.value : null).filter(isType("string"));
23
23
  }
24
24
  if (structureIdentifier(key, typeStructureKind) && typeIdentifier(key.definition.type, stringLiteralTypeKind)) return [key.definition.type.definition.value];
25
25
  return null;
@@ -28,10 +28,11 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
28
28
  executeCheck: (self, data, errorHandler) => {
29
29
  if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
30
30
  const keyData = Object.keys(data);
31
- const requiredKeys = self.definition.requiredKeys;
31
+ const requiredKeys = self.definition.requiredKeys.value;
32
32
  if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
33
33
  const pathStage = errorHandler?.().createPathStage();
34
- return callThen((requiredKeys ?? keyData).reduce((accumulator, key) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? callThen(self.definition.key.executeCheck(key, errorHandler), (resultKey) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? callThen(self.definition.value.executeCheck(data[key], errorHandler), (resultValue) => resultValue === ErrorSymbol || resultKey === ErrorSymbol || awaitedAccumulator === ErrorSymbol ? ErrorSymbol : SuccessSymbol))), SuccessSymbol), (awaitedResult) => {
34
+ const result = (requiredKeys ?? keyData).reduce((accumulator, key) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? callThen(self.definition.key.executeCheck(key, errorHandler), (resultKey) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? callThen(self.definition.value.executeCheck(data[key], errorHandler), (resultValue) => resultValue === ErrorSymbol || resultKey === ErrorSymbol || awaitedAccumulator === ErrorSymbol ? ErrorSymbol : SuccessSymbol))), SuccessSymbol);
35
+ return callThen(result, (awaitedResult) => {
35
36
  pathStage?.close();
36
37
  return awaitedResult;
37
38
  });
@@ -39,26 +40,28 @@ const RecordStructure = createStructure(recordStructureKind, ({ init }) => (key,
39
40
  executeEncode: (self, codecContext, data, errorHandler) => {
40
41
  if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
41
42
  const keyData = Object.keys(data);
42
- const requiredKeys = self.definition.requiredKeys;
43
+ const requiredKeys = self.definition.requiredKeys.value;
43
44
  if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
44
45
  const pathStage = errorHandler?.().createPathStage();
45
- return callThen((requiredKeys ?? keyData).reduce((accumulator, key) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? callThen(self.definition.value.executeEncode(codecContext, data[key], errorHandler), (encodedValue) => {
46
+ const encodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? callThen(self.definition.value.executeEncode(codecContext, data[key], errorHandler), (encodedValue) => {
46
47
  if (keyResult === ErrorSymbol || encodedValue === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
47
48
  awaitedAccumulator[key] = encodedValue;
48
49
  return awaitedAccumulator;
49
- }))), {}), (awaitedEncodedData) => pathStage?.close() ?? (awaitedEncodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData)));
50
+ }))), {});
51
+ return callThen(encodedData, (awaitedEncodedData) => pathStage?.close() ?? (awaitedEncodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData)));
50
52
  },
51
53
  executeDecode: (self, codecContext, data, errorHandler) => {
52
54
  if (typeof data !== "object" || data === null || data.constructor !== void 0 && data.constructor.name !== "Object" || Object.getOwnPropertySymbols(data).length !== 0) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
53
55
  const keyData = Object.keys(data);
54
- const requiredKeys = self.definition.requiredKeys;
56
+ const requiredKeys = self.definition.requiredKeys.value;
55
57
  if (requiredKeys && keyData.some((value) => !requiredKeys.includes(value))) return errorHandler?.().addIssue(self, data) ?? ErrorSymbol;
56
58
  const pathStage = errorHandler?.().createPathStage();
57
- return callThen((requiredKeys ?? keyData).reduce((accumulator, key) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? callThen(self.definition.value.executeDecode(codecContext, data[key], errorHandler), (decodedValue) => {
59
+ const decodedData = (requiredKeys ?? keyData).reduce((accumulator, key) => callThen(accumulator, (awaitedAccumulator) => pathStage?.setCurrentPath(`{record key: ${key}}`) ?? callThen(self.definition.key.executeCheck(key, errorHandler), (keyResult) => pathStage?.setCurrentPath(`{record value: ${key}}`) ?? callThen(self.definition.value.executeDecode(codecContext, data[key], errorHandler), (decodedValue) => {
58
60
  if (keyResult === ErrorSymbol || decodedValue === ErrorSymbol || awaitedAccumulator === ErrorSymbol) return ErrorSymbol;
59
61
  awaitedAccumulator[key] = decodedValue;
60
62
  return awaitedAccumulator;
61
- }))), {}), (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData)));
63
+ }))), {});
64
+ return callThen(decodedData, (awaitedDecodedData) => pathStage?.close() ?? (awaitedDecodedData === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData)));
62
65
  },
63
66
  isAsynchronous: (self) => self.definition.key.isAsynchronous() || self.definition.value.isAsynchronous()
64
67
  }));
@@ -8,7 +8,7 @@ const TypeStructure = require_base.createStructure(typeStructureKind, ({ init })
8
8
  type,
9
9
  constraints
10
10
  }, {
11
- executeCheck: (self, data, errorHandler) => self.definition.type.executeCheck(data, errorHandler),
11
+ executeCheck: (self, data, errorHandler) => require_callThen.callThen(self.definition.type.executeCheck(data), (result) => result === require_resultSymbol.ErrorSymbol ? errorHandler?.().addIssue(self, data, self.definition.type) ?? require_resultSymbol.ErrorSymbol : require_resultSymbol.SuccessSymbol),
12
12
  executeEncode: (self, codecContext, data, errorHandler) => require_callThen.callThen(self.executeCheck(data, errorHandler), (result) => {
13
13
  if (result === require_resultSymbol.ErrorSymbol) return require_resultSymbol.ErrorSymbol;
14
14
  const codec = codecContext.get(self.definition.type.fundamentalType);
@@ -7,6 +7,6 @@ export declare const typeStructureKind: DKind.Handler<DKind.Definition<"@Duplojs
7
7
  export interface TypeStructureDefinition<GenericConstraints extends readonly Constraint[] = readonly Constraint[]> extends StructureDefinition<GenericConstraints> {
8
8
  readonly type: Type;
9
9
  }
10
- export interface TypeStructure<GenericType extends unknown = unknown, GenericConstraints extends readonly Constraint<GenericType>[] = readonly Constraint<GenericType>[]> extends DCommon.UnionToIntersection<Structure<GenericType, TypeStructureDefinition<GenericConstraints>> & DKind.Kind<typeof typeStructureKind>> {
10
+ export interface TypeStructure<out GenericType extends unknown = unknown, out GenericConstraints extends readonly Constraint<GenericType>[] = readonly Constraint<GenericType>[]> extends DCommon.Forward<Structure<GenericType, TypeStructureDefinition<GenericConstraints>> & DKind.Kind<typeof typeStructureKind>> {
11
11
  }
12
- export declare const TypeStructure: <GenericType extends Type, const GenericConstraints extends readonly Constraint<TypeValue<GenericType>>[]>(type: GenericType, constraints: GenericConstraints) => TypeStructure<TypeValue<GenericType>, readonly [...GenericConstraints]>;
12
+ export declare const TypeStructure: <GenericType extends Type, const GenericConstraints extends readonly Constraint<TypeValue<GenericType>>[]>(type: GenericType, constraints: GenericConstraints) => NoInfer<TypeStructure<TypeValue<GenericType>, readonly [...GenericConstraints]>>;
@@ -1,6 +1,6 @@
1
1
  import { callThen } from "../../../common/callThen.mjs";
2
2
  import { createKind } from "../../kind.mjs";
3
- import { ErrorSymbol } from "../../common/resultSymbol.mjs";
3
+ import { ErrorSymbol, SuccessSymbol } from "../../common/resultSymbol.mjs";
4
4
  import { createStructure } from "../base.mjs";
5
5
  //#region scripts/dataStructure/structure/defaults/type.ts
6
6
  const typeStructureKind = createKind("type-structure");
@@ -8,7 +8,7 @@ const TypeStructure = createStructure(typeStructureKind, ({ init }) => (type, co
8
8
  type,
9
9
  constraints
10
10
  }, {
11
- executeCheck: (self, data, errorHandler) => self.definition.type.executeCheck(data, errorHandler),
11
+ executeCheck: (self, data, errorHandler) => callThen(self.definition.type.executeCheck(data), (result) => result === ErrorSymbol ? errorHandler?.().addIssue(self, data, self.definition.type) ?? ErrorSymbol : SuccessSymbol),
12
12
  executeEncode: (self, codecContext, data, errorHandler) => callThen(self.executeCheck(data, errorHandler), (result) => {
13
13
  if (result === ErrorSymbol) return ErrorSymbol;
14
14
  const codec = codecContext.get(self.definition.type.fundamentalType);
@@ -1,22 +1,27 @@
1
1
  const require_callThen = require("../../../common/callThen.cjs");
2
+ const require_memo = require("../../../common/memo.cjs");
2
3
  const require_kind = require("../../kind.cjs");
3
4
  const require_resultSymbol = require("../../common/resultSymbol.cjs");
4
- const require_error = require("../../common/error.cjs");
5
- const require_base = require("../base.cjs");
5
+ const require_base = require("../../common/error/base.cjs");
6
+ const require_base$1 = require("../base.cjs");
6
7
  const require_identifier = require("../identifier.cjs");
8
+ const require_lazy = require("./lazy.cjs");
7
9
  //#region scripts/dataStructure/structure/defaults/union.ts
8
10
  const unionStructureKind = require_kind.createKind("union-structure");
9
- const UnionStructure = require_base.createStructure(unionStructureKind, ({ init }) => (values, constraints) => init({
10
- values: values.flatMap((value) => require_identifier.structureIdentifier(value, unionStructureKind) ? value.definition.values : value),
11
+ const UnionStructure = require_base$1.createStructure(unionStructureKind, ({ init }) => (values, constraints) => init({
12
+ values: require_memo.memo(() => values.flatMap((value) => (function flatUnion(structure) {
13
+ if (require_identifier.structureIdentifier(structure, unionStructureKind)) return structure.definition.values.value.flatMap(flatUnion);
14
+ if (require_identifier.structureIdentifier(structure, require_lazy.lazyStructureKind)) return flatUnion(structure.definition.getter.value);
15
+ return structure;
16
+ })(value))),
11
17
  constraints
12
18
  }, {
13
19
  executeCheck: (self, data, errorHandler) => {
14
20
  const errorHandlers = errorHandler ? [] : void 0;
15
- const result = self.definition.values.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
21
+ const result = self.definition.values.value.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
16
22
  if (awaitedAccumulator === require_resultSymbol.SuccessSymbol) return awaitedAccumulator;
17
- const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler();
18
- if (errorHandler && errorHandlers && subErrorHandler) {
19
- subErrorHandler().usePath(errorHandler().currentPath);
23
+ const subErrorHandler = errorHandler === void 0 ? void 0 : require_base.createGetErrorHandler(errorHandler().currentPath);
24
+ if (errorHandlers && subErrorHandler) {
20
25
  subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
21
26
  errorHandlers.push(subErrorHandler);
22
27
  }
@@ -25,6 +30,7 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
25
30
  return require_callThen.callThen(result, (awaitedResult) => {
26
31
  if (awaitedResult === require_resultSymbol.ErrorSymbol) {
27
32
  if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
33
+ errorHandler?.().addIssue(self, data);
28
34
  return require_resultSymbol.ErrorSymbol;
29
35
  }
30
36
  return require_resultSymbol.SuccessSymbol;
@@ -32,11 +38,10 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
32
38
  },
33
39
  executeEncode: (self, codec, data, errorHandler) => {
34
40
  const errorHandlers = errorHandler ? [] : void 0;
35
- const encodedData = self.definition.values.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
41
+ const encodedData = self.definition.values.value.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
36
42
  if (awaitedAccumulator !== require_resultSymbol.ErrorSymbol) return awaitedAccumulator;
37
- const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler();
38
- if (errorHandler && errorHandlers && subErrorHandler) {
39
- subErrorHandler().usePath(errorHandler().currentPath);
43
+ const subErrorHandler = errorHandler === void 0 ? void 0 : require_base.createGetErrorHandler(errorHandler().currentPath);
44
+ if (errorHandlers && subErrorHandler) {
40
45
  subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
41
46
  errorHandlers.push(subErrorHandler);
42
47
  }
@@ -45,6 +50,7 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
45
50
  return require_callThen.callThen(encodedData, (awaitedEncodedData) => {
46
51
  if (awaitedEncodedData === require_resultSymbol.ErrorSymbol) {
47
52
  if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
53
+ errorHandler?.().addIssue(self, data);
48
54
  return require_resultSymbol.ErrorSymbol;
49
55
  }
50
56
  return require_callThen.callThen(self.executeConstraints(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedEncodedData);
@@ -52,11 +58,10 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
52
58
  },
53
59
  executeDecode: (self, codec, data, errorHandler) => {
54
60
  const errorHandlers = errorHandler ? [] : void 0;
55
- const decodedData = self.definition.values.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
61
+ const decodedData = self.definition.values.value.reduce((accumulator, value, index) => require_callThen.callThen(accumulator, (awaitedAccumulator) => {
56
62
  if (awaitedAccumulator !== require_resultSymbol.ErrorSymbol) return awaitedAccumulator;
57
- const subErrorHandler = errorHandler === void 0 ? void 0 : require_error.createGetErrorHandler();
58
- if (errorHandler && errorHandlers && subErrorHandler) {
59
- subErrorHandler().usePath(errorHandler().currentPath);
63
+ const subErrorHandler = errorHandler === void 0 ? void 0 : require_base.createGetErrorHandler(errorHandler().currentPath);
64
+ if (errorHandlers && subErrorHandler) {
60
65
  subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
61
66
  errorHandlers.push(subErrorHandler);
62
67
  }
@@ -65,12 +70,13 @@ const UnionStructure = require_base.createStructure(unionStructureKind, ({ init
65
70
  return require_callThen.callThen(decodedData, (awaitedDecodedData) => {
66
71
  if (awaitedDecodedData === require_resultSymbol.ErrorSymbol) {
67
72
  if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
73
+ errorHandler?.().addIssue(self, data);
68
74
  return require_resultSymbol.ErrorSymbol;
69
75
  }
70
76
  return require_callThen.callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedDecodedData);
71
77
  });
72
78
  },
73
- isAsynchronous: (self) => self.definition.values.some((value) => value.isAsynchronous())
79
+ isAsynchronous: (self) => self.definition.values.value.some((value) => value.isAsynchronous())
74
80
  }));
75
81
  //#endregion
76
82
  exports.UnionStructure = UnionStructure;
@@ -5,8 +5,8 @@ import type * as DKind from '../../../kind';
5
5
  import * as DCommon from '../../../common';
6
6
  export declare const unionStructureKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/union-structure", unknown>>;
7
7
  export interface UnionStructureDefinition<GenericConstraints extends readonly Constraint[] = readonly Constraint[]> extends StructureDefinition<GenericConstraints> {
8
- readonly values: DCommon.AnyTuple<Structure>;
8
+ readonly values: DCommon.Memoized<DCommon.AnyTuple<Structure>>;
9
9
  }
10
- export interface UnionStructure<GenericValue extends unknown = unknown, GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.UnionToIntersection<Structure<GenericValue, UnionStructureDefinition<GenericConstraints>> & DKind.Kind<typeof unionStructureKind>> {
10
+ export interface UnionStructure<out GenericValue extends unknown = unknown, out GenericConstraints extends readonly Constraint<GenericValue>[] = readonly Constraint<GenericValue>[]> extends DCommon.Forward<Structure<GenericValue, UnionStructureDefinition<GenericConstraints>> & DKind.Kind<typeof unionStructureKind>> {
11
11
  }
12
- export declare const UnionStructure: <GenericValues extends DCommon.AnyTuple<Structure>, const GenericConstraints extends readonly Constraint<StructureValue<GenericValues[number]>>[]>(values: GenericValues, constraints: GenericConstraints) => UnionStructure<StructureValue<GenericValues[number]>, readonly [...GenericConstraints]>;
12
+ export declare const UnionStructure: <GenericValues extends DCommon.AnyTuple<Structure>, const GenericConstraints extends readonly Constraint<StructureValue<GenericValues[number]>>[]>(values: GenericValues, constraints: GenericConstraints) => NoInfer<UnionStructure<StructureValue<GenericValues[number]>, readonly [...GenericConstraints]>>;
@@ -1,29 +1,36 @@
1
1
  import { callThen } from "../../../common/callThen.mjs";
2
+ import { memo } from "../../../common/memo.mjs";
2
3
  import { createKind } from "../../kind.mjs";
3
4
  import { ErrorSymbol, SuccessSymbol } from "../../common/resultSymbol.mjs";
4
- import { createGetErrorHandler } from "../../common/error.mjs";
5
+ import { createGetErrorHandler } from "../../common/error/base.mjs";
5
6
  import { createStructure } from "../base.mjs";
6
7
  import { structureIdentifier } from "../identifier.mjs";
8
+ import { lazyStructureKind } from "./lazy.mjs";
7
9
  //#region scripts/dataStructure/structure/defaults/union.ts
8
10
  const unionStructureKind = createKind("union-structure");
9
11
  const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values, constraints) => init({
10
- values: values.flatMap((value) => structureIdentifier(value, unionStructureKind) ? value.definition.values : value),
12
+ values: memo(() => values.flatMap((value) => (function flatUnion(structure) {
13
+ if (structureIdentifier(structure, unionStructureKind)) return structure.definition.values.value.flatMap(flatUnion);
14
+ if (structureIdentifier(structure, lazyStructureKind)) return flatUnion(structure.definition.getter.value);
15
+ return structure;
16
+ })(value))),
11
17
  constraints
12
18
  }, {
13
19
  executeCheck: (self, data, errorHandler) => {
14
20
  const errorHandlers = errorHandler ? [] : void 0;
15
- return callThen(self.definition.values.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
21
+ const result = self.definition.values.value.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
16
22
  if (awaitedAccumulator === SuccessSymbol) return awaitedAccumulator;
17
- const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler();
18
- if (errorHandler && errorHandlers && subErrorHandler) {
19
- subErrorHandler().usePath(errorHandler().currentPath);
23
+ const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler(errorHandler().currentPath);
24
+ if (errorHandlers && subErrorHandler) {
20
25
  subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
21
26
  errorHandlers.push(subErrorHandler);
22
27
  }
23
28
  return value.executeCheck(data, subErrorHandler);
24
- }), ErrorSymbol), (awaitedResult) => {
29
+ }), ErrorSymbol);
30
+ return callThen(result, (awaitedResult) => {
25
31
  if (awaitedResult === ErrorSymbol) {
26
32
  if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
33
+ errorHandler?.().addIssue(self, data);
27
34
  return ErrorSymbol;
28
35
  }
29
36
  return SuccessSymbol;
@@ -31,18 +38,19 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
31
38
  },
32
39
  executeEncode: (self, codec, data, errorHandler) => {
33
40
  const errorHandlers = errorHandler ? [] : void 0;
34
- return callThen(self.definition.values.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
41
+ const encodedData = self.definition.values.value.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
35
42
  if (awaitedAccumulator !== ErrorSymbol) return awaitedAccumulator;
36
- const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler();
37
- if (errorHandler && errorHandlers && subErrorHandler) {
38
- subErrorHandler().usePath(errorHandler().currentPath);
43
+ const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler(errorHandler().currentPath);
44
+ if (errorHandlers && subErrorHandler) {
39
45
  subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
40
46
  errorHandlers.push(subErrorHandler);
41
47
  }
42
48
  return value.executeEncode(codec, data, subErrorHandler);
43
- }), ErrorSymbol), (awaitedEncodedData) => {
49
+ }), ErrorSymbol);
50
+ return callThen(encodedData, (awaitedEncodedData) => {
44
51
  if (awaitedEncodedData === ErrorSymbol) {
45
52
  if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
53
+ errorHandler?.().addIssue(self, data);
46
54
  return ErrorSymbol;
47
55
  }
48
56
  return callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedEncodedData);
@@ -50,24 +58,25 @@ const UnionStructure = createStructure(unionStructureKind, ({ init }) => (values
50
58
  },
51
59
  executeDecode: (self, codec, data, errorHandler) => {
52
60
  const errorHandlers = errorHandler ? [] : void 0;
53
- return callThen(self.definition.values.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
61
+ const decodedData = self.definition.values.value.reduce((accumulator, value, index) => callThen(accumulator, (awaitedAccumulator) => {
54
62
  if (awaitedAccumulator !== ErrorSymbol) return awaitedAccumulator;
55
- const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler();
56
- if (errorHandler && errorHandlers && subErrorHandler) {
57
- subErrorHandler().usePath(errorHandler().currentPath);
63
+ const subErrorHandler = errorHandler === void 0 ? void 0 : createGetErrorHandler(errorHandler().currentPath);
64
+ if (errorHandlers && subErrorHandler) {
58
65
  subErrorHandler().createPathStage().setCurrentPath(`(union: ${index})`);
59
66
  errorHandlers.push(subErrorHandler);
60
67
  }
61
68
  return value.executeDecode(codec, data, subErrorHandler);
62
- }), ErrorSymbol), (awaitedDecodedData) => {
69
+ }), ErrorSymbol);
70
+ return callThen(decodedData, (awaitedDecodedData) => {
63
71
  if (awaitedDecodedData === ErrorSymbol) {
64
72
  if (errorHandlers) errorHandler?.().importIssues(errorHandlers);
73
+ errorHandler?.().addIssue(self, data);
65
74
  return ErrorSymbol;
66
75
  }
67
76
  return callThen(self.executeConstraints(awaitedDecodedData, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedDecodedData);
68
77
  });
69
78
  },
70
- isAsynchronous: (self) => self.definition.values.some((value) => value.isAsynchronous())
79
+ isAsynchronous: (self) => self.definition.values.value.some((value) => value.isAsynchronous())
71
80
  }));
72
81
  //#endregion
73
82
  export { UnionStructure, unionStructureKind };
@@ -1,5 +1,4 @@
1
1
  import { Structure } from './base';
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>;
5
- };
2
+ import { Structures } from './types';
3
+ import * as DKind from '../../kind';
4
+ export declare const structureIdentifier: DKind.KindIdentifier<Structure<unknown, import('..').StructureDefinition<readonly import('..').Constraint<unknown, unknown, import('..').ConstraintDefinition>[]>>, Structures>;
@@ -1,6 +1,6 @@
1
1
  import { ConstraintValue, Constraint } from '../../constraint';
2
2
  import type * as DCommon from '../../../common';
3
- export type StructureConstraintsValue<GenericConstraints extends Constraint> = DCommon.NeverCoalescing<Extract<DCommon.UnionToIntersection<GenericConstraints extends Constraint ? {
3
+ export type StructureConstraintsValue<GenericConstraints extends Constraint> = DCommon.IsNever<GenericConstraints> extends true ? unknown : DCommon.NeverCoalescing<Extract<DCommon.UnionToIntersection<GenericConstraints extends Constraint ? {
4
4
  value: ConstraintValue<GenericConstraints>;
5
5
  } : never>, {
6
6
  value: unknown;
@@ -1,5 +1,5 @@
1
1
  import { Structure } from '../base';
2
- import { ObjectStructure, ArrayStructure, LazyStructure, RecordStructure, UnionStructure, TypeStructure } from '../defaults';
2
+ import { ObjectStructure, ArrayStructure, LazyStructure, RecordStructure, UnionStructure, TypeStructure, NonEncodableStringStructure } from '../defaults';
3
3
  export interface StructuresStore {
4
4
  base: Structure;
5
5
  array: ArrayStructure;
@@ -8,5 +8,6 @@ export interface StructuresStore {
8
8
  record: RecordStructure;
9
9
  union: UnionStructure;
10
10
  type: TypeStructure;
11
+ nonEncodableString: NonEncodableStringStructure;
11
12
  }
12
13
  export type Structures = Extract<StructuresStore[keyof StructuresStore], Structure>;