@duplojs/lang 0.0.1-beta.1 → 0.0.1-beta.11

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