@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
@@ -0,0 +1,84 @@
1
+ const require_coalescing = require("../../../array/coalescing.cjs");
2
+ const require_join = require("../../../string/join.cjs");
3
+ const require_stringify = require("../../../string/stringify.cjs");
4
+ const require_to = require("../../../string/to.cjs");
5
+ const require_json = require("../codec/defaults/json.cjs");
6
+ const require_string = require("../codec/defaults/string.cjs");
7
+ const require_base = require("./base.cjs");
8
+ //#region scripts/dataStructure/common/error/defaultInterpreter.ts
9
+ const defaultErrorInterpreterDataStructureDictionary = {
10
+ "array-structure": () => "Expected an array.",
11
+ "lazy-structure": () => "Expected a value matching the resolved structure.",
12
+ "non-encodable-string-structure": (source) => `Expected ${require_stringify.stringify(source.definition.value)}.`,
13
+ "object-structure": () => "Expected a plain object containing only the defined properties.",
14
+ "record-structure": () => "Expected a plain object matching the record definition.",
15
+ "type-structure": () => "Expected a value matching the configured type.",
16
+ "union-structure": () => "Expected a value matching at least one union member.",
17
+ "bigint-type": () => "Expected a bigint.",
18
+ "bigint-literal-type": (source) => `Expected ${require_to.to(source.definition.value)}n.`,
19
+ "boolean-type": () => "Expected a boolean.",
20
+ "boolean-literal-type": (source) => `Expected ${source.definition.value}.`,
21
+ "date-type": () => "Expected a DuploJS date.",
22
+ "null-type": () => "Expected null.",
23
+ "number-type": () => "Expected a finite number.",
24
+ "number-literal-type": (source) => `Expected ${source.definition.value}.`,
25
+ "string-type": () => "Expected a string.",
26
+ "string-literal-type": (source) => `Expected ${require_stringify.stringify(source.definition.value)}.`,
27
+ "time-type": () => "Expected a DuploJS time.",
28
+ "undefined-type": () => "Expected undefined.",
29
+ "absolute-path-constraint": () => "Expected an absolute path.",
30
+ "allowed-characters-constraint": (source) => `Expected a string containing only characters from ${require_join.join(require_coalescing.coalescing(source.definition.charactersRange), ", ")}.`,
31
+ "array-length-equal-constraint": (source) => `Expected an array containing exactly ${source.definition.length} elements.`,
32
+ "between-than-constraint": (source) => `Expected a number greater than ${source.definition.greater} and less than ${source.definition.less}.`,
33
+ "between-than-or-equal-constraint": (source) => `Expected a number greater than or equal to ${source.definition.greater} and less than or equal to ${source.definition.less}.`,
34
+ "email-constraint": () => "Expected a valid email address.",
35
+ "even-constraint": () => "Expected an even number.",
36
+ "greater-than-constraint": (source) => `Expected a number greater than ${source.definition.threshold}.`,
37
+ "greater-than-or-equal-constraint": (source) => `Expected a number greater than or equal to ${source.definition.threshold}.`,
38
+ "integer-constraint": () => "Expected an integer.",
39
+ "less-than-constraint": (source) => `Expected a number less than ${source.definition.threshold}.`,
40
+ "less-than-or-equal-constraint": (source) => `Expected a number less than or equal to ${source.definition.threshold}.`,
41
+ "max-characters-constraint": (source) => `Expected a string containing at most ${source.definition.max} characters.`,
42
+ "max-elements-constraint": (source) => `Expected an array containing at most ${source.definition.max} elements.`,
43
+ "min-characters-constraint": (source) => `Expected a string containing at least ${source.definition.min} characters.`,
44
+ "min-elements-constraint": (source) => `Expected an array containing at least ${source.definition.min} elements.`,
45
+ "multiple-of-constraint": (source) => `Expected a multiple of ${source.definition.multiple}.`,
46
+ "negative-constraint": () => "Expected a number less than or equal to zero.",
47
+ "not-empty-constraint": () => "Expected a non-empty string.",
48
+ "not-zero-constraint": () => "Expected a non-zero number.",
49
+ "number-in-string-constraint": () => "Expected a string representing a number.",
50
+ "odd-constraint": () => "Expected an odd number.",
51
+ "path-constraint": () => "Expected a valid path.",
52
+ "positive-constraint": () => "Expected a number greater than or equal to zero.",
53
+ "refine-constraint": () => "Expected a value satisfying the custom refinement.",
54
+ "regex-constraint": (source) => `Expected a string matching ${source.definition.regex.toString()}.`,
55
+ "safe-constraint": () => "Expected a number strictly between Number.MIN_SAFE_INTEGER and Number.MAX_SAFE_INTEGER.",
56
+ "segment-path-constraint": () => "Expected a valid path segment.",
57
+ "strict-negative-constraint": () => "Expected a number less than zero.",
58
+ "strict-positive-constraint": () => "Expected a number greater than zero.",
59
+ "string-length-equal-constraint": (source) => `Expected a string containing exactly ${source.definition.length} characters.`,
60
+ "trimmed-constraint": () => "Expected a string without leading or trailing whitespace.",
61
+ "url-constraint": () => "Expected a valid URL.",
62
+ "uuid-constraint": () => "Expected a valid UUID."
63
+ };
64
+ const createDefaultCodecErrorMessage = (codecName, encodedValueDescription, decodedValueDescription) => (_codec, issue) => {
65
+ if (issue.from === "predicate") return require_base.encodeIssueKind.has(issue) ? `The ${codecName} codec must produce ${encodedValueDescription}.` : `Expected ${encodedValueDescription} for the ${codecName} codec.`;
66
+ if (issue.from === "encoding") return `The ${codecName} codec could not encode ${decodedValueDescription}.`;
67
+ if (issue.from === "decoding") return `The ${codecName} codec could not decode the value as ${decodedValueDescription}.`;
68
+ return `The ${codecName} codec encountered an external error while ${require_base.encodeIssueKind.has(issue) ? "encoding" : "decoding"}.`;
69
+ };
70
+ const defaultErrorInterpreterCodecDictionary = [
71
+ [require_json.codecsJson.definition.bigint, createDefaultCodecErrorMessage("JSON bigint", "a string", "a bigint")],
72
+ [require_json.codecsJson.definition.date, createDefaultCodecErrorMessage("JSON date", "a string", "a DuploJS date")],
73
+ [require_json.codecsJson.definition.time, createDefaultCodecErrorMessage("JSON time", "a string", "a DuploJS time")],
74
+ [require_string.codecsString.definition.bigint, createDefaultCodecErrorMessage("string bigint", "a string", "a bigint")],
75
+ [require_string.codecsString.definition.boolean, createDefaultCodecErrorMessage("string boolean", "the string \"true\" or \"false\"", "a boolean")],
76
+ [require_string.codecsString.definition.date, createDefaultCodecErrorMessage("string date", "a string", "a DuploJS date")],
77
+ [require_string.codecsString.definition.null, createDefaultCodecErrorMessage("string null", "the string \"null\"", "null")],
78
+ [require_string.codecsString.definition.number, createDefaultCodecErrorMessage("string number", "a string representing a number", "a finite number")],
79
+ [require_string.codecsString.definition.time, createDefaultCodecErrorMessage("string time", "a string", "a DuploJS time")],
80
+ [require_string.codecsString.definition.undefined, createDefaultCodecErrorMessage("string undefined", "the string \"undefined\"", "undefined")]
81
+ ];
82
+ //#endregion
83
+ exports.defaultErrorInterpreterCodecDictionary = defaultErrorInterpreterCodecDictionary;
84
+ exports.defaultErrorInterpreterDataStructureDictionary = defaultErrorInterpreterDataStructureDictionary;
@@ -0,0 +1,57 @@
1
+ import * as DString from '../../../string';
2
+ export declare const defaultErrorInterpreterDataStructureDictionary: {
3
+ readonly "array-structure": () => string;
4
+ readonly "lazy-structure": () => string;
5
+ readonly "non-encodable-string-structure": (source: import('../..').NonEncodableStringStructure) => string;
6
+ readonly "object-structure": () => string;
7
+ readonly "record-structure": () => string;
8
+ readonly "type-structure": () => string;
9
+ readonly "union-structure": () => string;
10
+ readonly "bigint-type": () => string;
11
+ readonly "bigint-literal-type": (source: import('../..').BigintLiteralType<bigint>) => string;
12
+ readonly "boolean-type": () => string;
13
+ readonly "boolean-literal-type": (source: import('../..').BooleanLiteralType<boolean>) => string;
14
+ readonly "date-type": () => string;
15
+ readonly "null-type": () => string;
16
+ readonly "number-type": () => string;
17
+ readonly "number-literal-type": (source: import('../..').NumberLiteralType<number>) => string;
18
+ readonly "string-type": () => string;
19
+ readonly "string-literal-type": (source: import('../..').StringLiteralType<string>) => string;
20
+ readonly "time-type": () => string;
21
+ readonly "undefined-type": () => string;
22
+ readonly "absolute-path-constraint": () => string;
23
+ readonly "allowed-characters-constraint": (source: import('../..').AllowedCharactersConstraint<DString.CharactersRange>) => string;
24
+ readonly "array-length-equal-constraint": (source: import('../..').ArrayLengthEqualConstraint<number>) => string;
25
+ readonly "between-than-constraint": (source: import('../..').BetweenThanConstraint<number, number>) => string;
26
+ readonly "between-than-or-equal-constraint": (source: import('../..').BetweenThanOrEqualConstraint<number, number>) => string;
27
+ readonly "email-constraint": () => string;
28
+ readonly "even-constraint": () => string;
29
+ readonly "greater-than-constraint": (source: import('../..').GreaterThanConstraint<number>) => string;
30
+ readonly "greater-than-or-equal-constraint": (source: import('../..').GreaterThanOrEqualConstraint<number>) => string;
31
+ readonly "integer-constraint": () => string;
32
+ readonly "less-than-constraint": (source: import('../..').LessThanConstraint<number>) => string;
33
+ readonly "less-than-or-equal-constraint": (source: import('../..').LessThanOrEqualConstraint<number>) => string;
34
+ readonly "max-characters-constraint": (source: import('../..').MaxCharactersConstraint<number>) => string;
35
+ readonly "max-elements-constraint": (source: import('../..').MaxElementsConstraint<number>) => string;
36
+ readonly "min-characters-constraint": (source: import('../..').MinCharactersConstraint<number>) => string;
37
+ readonly "min-elements-constraint": (source: import('../..').MinElementsConstraint<number>) => string;
38
+ readonly "multiple-of-constraint": (source: import('../..').MultipleOfConstraint<number>) => string;
39
+ readonly "negative-constraint": () => string;
40
+ readonly "not-empty-constraint": () => string;
41
+ readonly "not-zero-constraint": () => string;
42
+ readonly "number-in-string-constraint": () => string;
43
+ readonly "odd-constraint": () => string;
44
+ readonly "path-constraint": () => string;
45
+ readonly "positive-constraint": () => string;
46
+ readonly "refine-constraint": () => string;
47
+ readonly "regex-constraint": (source: import('../..').RegexConstraint) => string;
48
+ readonly "safe-constraint": () => string;
49
+ readonly "segment-path-constraint": () => string;
50
+ readonly "strict-negative-constraint": () => string;
51
+ readonly "strict-positive-constraint": () => string;
52
+ readonly "string-length-equal-constraint": (source: import('../..').StringLengthEqualConstraint<number>) => string;
53
+ readonly "trimmed-constraint": () => string;
54
+ readonly "url-constraint": () => string;
55
+ readonly "uuid-constraint": () => string;
56
+ };
57
+ export declare const defaultErrorInterpreterCodecDictionary: [[import('../..').Codec<import('../..').TheBigint, string>, (codec: import('../..').Codec, issue: import('../..').EncodeIssue | import('../..').DecodeIssue) => string], [import('../..').Codec<import('../..').TheDate, string>, (codec: import('../..').Codec, issue: import('../..').EncodeIssue | import('../..').DecodeIssue) => string], [import('../..').Codec<import('../..').TheTime, string>, (codec: import('../..').Codec, issue: import('../..').EncodeIssue | import('../..').DecodeIssue) => string], [import('../..').Codec<import('../..').TheBigint, string>, (codec: import('../..').Codec, issue: import('../..').EncodeIssue | import('../..').DecodeIssue) => string], [import('../..').Codec<import('../..').TheBoolean, "true" | "false">, (codec: import('../..').Codec, issue: import('../..').EncodeIssue | import('../..').DecodeIssue) => string], [import('../..').Codec<import('../..').TheDate, string>, (codec: import('../..').Codec, issue: import('../..').EncodeIssue | import('../..').DecodeIssue) => string], [import('../..').Codec<import('../..').TheNull, "null">, (codec: import('../..').Codec, issue: import('../..').EncodeIssue | import('../..').DecodeIssue) => string], [import('../..').Codec<import('../..').TheNumber, string & DString.Number>, (codec: import('../..').Codec, issue: import('../..').EncodeIssue | import('../..').DecodeIssue) => string], [import('../..').Codec<import('../..').TheTime, string>, (codec: import('../..').Codec, issue: import('../..').EncodeIssue | import('../..').DecodeIssue) => string], [import('../..').Codec<import('../..').TheUndefined, "undefined">, (codec: import('../..').Codec, issue: import('../..').EncodeIssue | import('../..').DecodeIssue) => string]];
@@ -0,0 +1,83 @@
1
+ import { coalescing } from "../../../array/coalescing.mjs";
2
+ import { join } from "../../../string/join.mjs";
3
+ import { stringify } from "../../../string/stringify.mjs";
4
+ import { to } from "../../../string/to.mjs";
5
+ import { codecsJson } from "../codec/defaults/json.mjs";
6
+ import { codecsString } from "../codec/defaults/string.mjs";
7
+ import { encodeIssueKind } from "./base.mjs";
8
+ //#region scripts/dataStructure/common/error/defaultInterpreter.ts
9
+ const defaultErrorInterpreterDataStructureDictionary = {
10
+ "array-structure": () => "Expected an array.",
11
+ "lazy-structure": () => "Expected a value matching the resolved structure.",
12
+ "non-encodable-string-structure": (source) => `Expected ${stringify(source.definition.value)}.`,
13
+ "object-structure": () => "Expected a plain object containing only the defined properties.",
14
+ "record-structure": () => "Expected a plain object matching the record definition.",
15
+ "type-structure": () => "Expected a value matching the configured type.",
16
+ "union-structure": () => "Expected a value matching at least one union member.",
17
+ "bigint-type": () => "Expected a bigint.",
18
+ "bigint-literal-type": (source) => `Expected ${to(source.definition.value)}n.`,
19
+ "boolean-type": () => "Expected a boolean.",
20
+ "boolean-literal-type": (source) => `Expected ${source.definition.value}.`,
21
+ "date-type": () => "Expected a DuploJS date.",
22
+ "null-type": () => "Expected null.",
23
+ "number-type": () => "Expected a finite number.",
24
+ "number-literal-type": (source) => `Expected ${source.definition.value}.`,
25
+ "string-type": () => "Expected a string.",
26
+ "string-literal-type": (source) => `Expected ${stringify(source.definition.value)}.`,
27
+ "time-type": () => "Expected a DuploJS time.",
28
+ "undefined-type": () => "Expected undefined.",
29
+ "absolute-path-constraint": () => "Expected an absolute path.",
30
+ "allowed-characters-constraint": (source) => `Expected a string containing only characters from ${join(coalescing(source.definition.charactersRange), ", ")}.`,
31
+ "array-length-equal-constraint": (source) => `Expected an array containing exactly ${source.definition.length} elements.`,
32
+ "between-than-constraint": (source) => `Expected a number greater than ${source.definition.greater} and less than ${source.definition.less}.`,
33
+ "between-than-or-equal-constraint": (source) => `Expected a number greater than or equal to ${source.definition.greater} and less than or equal to ${source.definition.less}.`,
34
+ "email-constraint": () => "Expected a valid email address.",
35
+ "even-constraint": () => "Expected an even number.",
36
+ "greater-than-constraint": (source) => `Expected a number greater than ${source.definition.threshold}.`,
37
+ "greater-than-or-equal-constraint": (source) => `Expected a number greater than or equal to ${source.definition.threshold}.`,
38
+ "integer-constraint": () => "Expected an integer.",
39
+ "less-than-constraint": (source) => `Expected a number less than ${source.definition.threshold}.`,
40
+ "less-than-or-equal-constraint": (source) => `Expected a number less than or equal to ${source.definition.threshold}.`,
41
+ "max-characters-constraint": (source) => `Expected a string containing at most ${source.definition.max} characters.`,
42
+ "max-elements-constraint": (source) => `Expected an array containing at most ${source.definition.max} elements.`,
43
+ "min-characters-constraint": (source) => `Expected a string containing at least ${source.definition.min} characters.`,
44
+ "min-elements-constraint": (source) => `Expected an array containing at least ${source.definition.min} elements.`,
45
+ "multiple-of-constraint": (source) => `Expected a multiple of ${source.definition.multiple}.`,
46
+ "negative-constraint": () => "Expected a number less than or equal to zero.",
47
+ "not-empty-constraint": () => "Expected a non-empty string.",
48
+ "not-zero-constraint": () => "Expected a non-zero number.",
49
+ "number-in-string-constraint": () => "Expected a string representing a number.",
50
+ "odd-constraint": () => "Expected an odd number.",
51
+ "path-constraint": () => "Expected a valid path.",
52
+ "positive-constraint": () => "Expected a number greater than or equal to zero.",
53
+ "refine-constraint": () => "Expected a value satisfying the custom refinement.",
54
+ "regex-constraint": (source) => `Expected a string matching ${source.definition.regex.toString()}.`,
55
+ "safe-constraint": () => "Expected a number strictly between Number.MIN_SAFE_INTEGER and Number.MAX_SAFE_INTEGER.",
56
+ "segment-path-constraint": () => "Expected a valid path segment.",
57
+ "strict-negative-constraint": () => "Expected a number less than zero.",
58
+ "strict-positive-constraint": () => "Expected a number greater than zero.",
59
+ "string-length-equal-constraint": (source) => `Expected a string containing exactly ${source.definition.length} characters.`,
60
+ "trimmed-constraint": () => "Expected a string without leading or trailing whitespace.",
61
+ "url-constraint": () => "Expected a valid URL.",
62
+ "uuid-constraint": () => "Expected a valid UUID."
63
+ };
64
+ const createDefaultCodecErrorMessage = (codecName, encodedValueDescription, decodedValueDescription) => (_codec, issue) => {
65
+ if (issue.from === "predicate") return encodeIssueKind.has(issue) ? `The ${codecName} codec must produce ${encodedValueDescription}.` : `Expected ${encodedValueDescription} for the ${codecName} codec.`;
66
+ if (issue.from === "encoding") return `The ${codecName} codec could not encode ${decodedValueDescription}.`;
67
+ if (issue.from === "decoding") return `The ${codecName} codec could not decode the value as ${decodedValueDescription}.`;
68
+ return `The ${codecName} codec encountered an external error while ${encodeIssueKind.has(issue) ? "encoding" : "decoding"}.`;
69
+ };
70
+ const defaultErrorInterpreterCodecDictionary = [
71
+ [codecsJson.definition.bigint, createDefaultCodecErrorMessage("JSON bigint", "a string", "a bigint")],
72
+ [codecsJson.definition.date, createDefaultCodecErrorMessage("JSON date", "a string", "a DuploJS date")],
73
+ [codecsJson.definition.time, createDefaultCodecErrorMessage("JSON time", "a string", "a DuploJS time")],
74
+ [codecsString.definition.bigint, createDefaultCodecErrorMessage("string bigint", "a string", "a bigint")],
75
+ [codecsString.definition.boolean, createDefaultCodecErrorMessage("string boolean", "the string \"true\" or \"false\"", "a boolean")],
76
+ [codecsString.definition.date, createDefaultCodecErrorMessage("string date", "a string", "a DuploJS date")],
77
+ [codecsString.definition.null, createDefaultCodecErrorMessage("string null", "the string \"null\"", "null")],
78
+ [codecsString.definition.number, createDefaultCodecErrorMessage("string number", "a string representing a number", "a finite number")],
79
+ [codecsString.definition.time, createDefaultCodecErrorMessage("string time", "a string", "a DuploJS time")],
80
+ [codecsString.definition.undefined, createDefaultCodecErrorMessage("string undefined", "the string \"undefined\"", "undefined")]
81
+ ];
82
+ //#endregion
83
+ export { defaultErrorInterpreterCodecDictionary, defaultErrorInterpreterDataStructureDictionary };
@@ -0,0 +1,3 @@
1
+ export * from './base';
2
+ export * from './interpreter';
3
+ export * from './defaultInterpreter';
@@ -0,0 +1,45 @@
1
+ const require_base = require("../../../kind/base.cjs");
2
+ const require_entries = require("../../../object/entries.cjs");
3
+ const require_entry = require("../../../object/entry.cjs");
4
+ const require_map = require("../../../array/map.cjs");
5
+ const require_reduce = require("../../../array/reduce.cjs");
6
+ const require_pipe = require("../../../common/pipe.cjs");
7
+ const require_base$1 = require("./base.cjs");
8
+ //#region scripts/dataStructure/common/error/interpreter.ts
9
+ const kindNamespaceName = "DuplojsLangDataStructure";
10
+ function createErrorInterpreter(structureDictionary = {}, codecDictionary = []) {
11
+ const formattedStructureDictionary = require_pipe.pipe(structureDictionary, require_entries.entries, require_map.map(([key, value]) => require_entry.entry(`${require_base.keyKindPrefix}@${kindNamespaceName}/${key}`, value)));
12
+ const getInterpretedMessageStructure = (structure, issue) => require_reduce.reduce(formattedStructureDictionary, require_reduce.reduceFrom(void 0), ({ element: [key, getMessage], next, exit }) => getMessage && key in structure ? exit(getMessage(structure, issue)) : next(void 0));
13
+ const getInterpretedMessageCodec = (codec, issue) => require_reduce.reduce(codecDictionary, require_reduce.reduceFrom(void 0), ({ element: [currentCodec, message], next, exit }) => currentCodec === codec ? exit(message(codec, issue)) : next(void 0));
14
+ return (error) => require_map.map(error.issues, (issue) => {
15
+ if (require_base$1.issueKind.has(issue)) {
16
+ const source = issue.getSource();
17
+ const subSource = issue.getSubSource?.();
18
+ return {
19
+ ...issue,
20
+ interpretedMessage: {
21
+ source: source.definition.message,
22
+ subSource: subSource?.definition.message,
23
+ interpretedSource: getInterpretedMessageStructure(source, issue),
24
+ interpretedSubSource: subSource && getInterpretedMessageStructure(subSource, issue)
25
+ }
26
+ };
27
+ }
28
+ if (require_base$1.encodeIssueKind.has(issue)) return {
29
+ ...issue,
30
+ interpretedMessage: {
31
+ source: issue.message,
32
+ interpretedSource: getInterpretedMessageCodec(issue.getSource(), issue)
33
+ }
34
+ };
35
+ return {
36
+ ...issue,
37
+ interpretedMessage: {
38
+ source: issue.message,
39
+ interpretedSource: getInterpretedMessageCodec(issue.getSource(), issue)
40
+ }
41
+ };
42
+ });
43
+ }
44
+ //#endregion
45
+ exports.createErrorInterpreter = createErrorInterpreter;
@@ -0,0 +1,36 @@
1
+ import { Structure, Structures } from '../../structure';
2
+ import { createKind } from '../../kind';
3
+ import { Type, Types } from '../../type';
4
+ import { Constraint, Constraints } from '../../constraint';
5
+ import { Error, DecodeIssue, EncodeIssue, Issue } from './base';
6
+ import { Codec } from '../codec';
7
+ import * as DKind from '../../../kind';
8
+ import * as DCommon from '../../../common';
9
+ declare const kindNamespaceName: DKind.GetNamespaceName<typeof createKind>;
10
+ type RemoveNamespace<GenericString> = GenericString extends `@${typeof kindNamespaceName}/${infer InferredKindName}` ? InferredKindName : never;
11
+ export interface InterpretedMessage {
12
+ source?: string;
13
+ interpretedSource?: string;
14
+ subSource?: string;
15
+ interpretedSubSource?: string;
16
+ }
17
+ export interface InterpretedIssue extends Issue {
18
+ interpretedMessage: InterpretedMessage;
19
+ }
20
+ export interface InterpretedEncodedIssue extends EncodeIssue {
21
+ interpretedMessage: InterpretedMessage;
22
+ }
23
+ export interface InterpretedDecodedIssue extends DecodeIssue {
24
+ interpretedMessage: InterpretedMessage;
25
+ }
26
+ export type InterpretedIssues = (InterpretedIssue | InterpretedEncodedIssue | InterpretedDecodedIssue);
27
+ export type StructureDictionaryParams = DCommon.SimplifyTopLevel<Omit<{
28
+ [DataStructure in (Types | Structures | Constraints) as RemoveNamespace<DKind.GetName<DataStructure>>]?: (structure: DataStructure, issue: Issue) => string;
29
+ }, RemoveNamespace<DKind.GetName<Type>> | RemoveNamespace<DKind.GetName<Structure>> | RemoveNamespace<DKind.GetName<Constraint>>>>;
30
+ export type CodecDictionaryParams = [
31
+ Codec,
32
+ (codec: Codec, issue: EncodeIssue | DecodeIssue) => string
33
+ ][];
34
+ export declare function createErrorInterpreter(structureDictionary?: StructureDictionaryParams, codecDictionary?: CodecDictionaryParams): (error: Error) => readonly InterpretedIssues[];
35
+ export type ErrorInterpreter = ReturnType<typeof createErrorInterpreter>;
36
+ export {};
@@ -0,0 +1,45 @@
1
+ import { keyKindPrefix } from "../../../kind/base.mjs";
2
+ import { entries } from "../../../object/entries.mjs";
3
+ import { entry } from "../../../object/entry.mjs";
4
+ import { map } from "../../../array/map.mjs";
5
+ import { reduce, reduceFrom } from "../../../array/reduce.mjs";
6
+ import { pipe } from "../../../common/pipe.mjs";
7
+ import { encodeIssueKind, issueKind } from "./base.mjs";
8
+ //#region scripts/dataStructure/common/error/interpreter.ts
9
+ const kindNamespaceName = "DuplojsLangDataStructure";
10
+ function createErrorInterpreter(structureDictionary = {}, codecDictionary = []) {
11
+ const formattedStructureDictionary = pipe(structureDictionary, entries, map(([key, value]) => entry(`${keyKindPrefix}@${kindNamespaceName}/${key}`, value)));
12
+ const getInterpretedMessageStructure = (structure, issue) => reduce(formattedStructureDictionary, reduceFrom(void 0), ({ element: [key, getMessage], next, exit }) => getMessage && key in structure ? exit(getMessage(structure, issue)) : next(void 0));
13
+ const getInterpretedMessageCodec = (codec, issue) => reduce(codecDictionary, reduceFrom(void 0), ({ element: [currentCodec, message], next, exit }) => currentCodec === codec ? exit(message(codec, issue)) : next(void 0));
14
+ return (error) => map(error.issues, (issue) => {
15
+ if (issueKind.has(issue)) {
16
+ const source = issue.getSource();
17
+ const subSource = issue.getSubSource?.();
18
+ return {
19
+ ...issue,
20
+ interpretedMessage: {
21
+ source: source.definition.message,
22
+ subSource: subSource?.definition.message,
23
+ interpretedSource: getInterpretedMessageStructure(source, issue),
24
+ interpretedSubSource: subSource && getInterpretedMessageStructure(subSource, issue)
25
+ }
26
+ };
27
+ }
28
+ if (encodeIssueKind.has(issue)) return {
29
+ ...issue,
30
+ interpretedMessage: {
31
+ source: issue.message,
32
+ interpretedSource: getInterpretedMessageCodec(issue.getSource(), issue)
33
+ }
34
+ };
35
+ return {
36
+ ...issue,
37
+ interpretedMessage: {
38
+ source: issue.message,
39
+ interpretedSource: getInterpretedMessageCodec(issue.getSource(), issue)
40
+ }
41
+ };
42
+ });
43
+ }
44
+ //#endregion
45
+ export { createErrorInterpreter };
@@ -1,17 +1,46 @@
1
+ const require_bindPrototypeMethods = require("../../common/bindPrototypeMethods.cjs");
2
+ const require_simpleClone = require("../../common/simpleClone.cjs");
1
3
  //#region scripts/dataStructure/constraint/base.ts
2
4
  const constraintKind = require("../kind.cjs").createKind("constraint");
5
+ var ConstraintBase = class ConstraintBase {
6
+ constructor() {}
7
+ static init(params) {
8
+ const self = new ConstraintBase();
9
+ require_bindPrototypeMethods.bindPrototypeMethods(self);
10
+ for (const key in params) self[key] = params[key];
11
+ return self;
12
+ }
13
+ static addToPrototype(prop, value) {
14
+ ConstraintBase.prototype[prop] = typeof value === "function" ? function(...args) {
15
+ return value(this, ...args);
16
+ } : value;
17
+ }
18
+ };
3
19
  function createConstraint(kindHandler, createConstructor) {
4
- return createConstructor({ init: (definition, { executeCheck, isAsynchronous }) => {
5
- const self = {
20
+ const init = (definition, { executeCheck, isAsynchronous }) => {
21
+ const self = ConstraintBase.init({
6
22
  definition,
7
- executeCheck: (data, errorHandler) => executeCheck(self, data, errorHandler),
23
+ executeCheck: (data) => executeCheck(self, data),
8
24
  isAsynchronous: () => isAsynchronous(self),
25
+ clone: () => init(require_simpleClone.simpleClone(definition), {
26
+ executeCheck,
27
+ isAsynchronous
28
+ }),
29
+ setMessage: (message) => {
30
+ self.definition.message = message;
31
+ return self;
32
+ },
33
+ addMessage: (message) => {
34
+ return self.clone().setMessage(message);
35
+ },
9
36
  [constraintKind.runTimeKey]: null,
10
37
  [kindHandler.runTimeKey]: null
11
- };
38
+ });
12
39
  return self;
13
- } });
40
+ };
41
+ return createConstructor({ init });
14
42
  }
15
43
  //#endregion
44
+ exports.ConstraintBase = ConstraintBase;
16
45
  exports.constraintKind = constraintKind;
17
46
  exports.createConstraint = createConstraint;
@@ -1,20 +1,29 @@
1
- import { SuccessSymbol, ErrorSymbol, GetErrorHandler } from '../common';
1
+ import { SuccessSymbol, ErrorSymbol } from '../common';
2
2
  import type * as DKind from '../../kind';
3
- import type * as DCommon from '../../common';
3
+ import * as DCommon from '../../common';
4
4
  export declare const constraintKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/constraint", unknown>>;
5
5
  export interface ConstraintDefinition {
6
+ readonly message?: string;
6
7
  }
7
8
  declare const BivariousSymbol: unique symbol;
8
9
  export interface Constraint<GenericInput extends unknown = unknown, GenericChecked extends GenericInput = GenericInput, GenericDefinition extends ConstraintDefinition = ConstraintDefinition> extends DKind.Kind<typeof constraintKind, DCommon.IsEqual<GenericInput, GenericChecked> extends true ? any : GenericChecked> {
9
10
  readonly definition: GenericDefinition;
10
11
  readonly [BivariousSymbol]?: DCommon.IsUnion<GenericInput> extends true ? (input: GenericInput) => void : unknown;
11
- executeCheck(data: GenericInput, errorHandler?: GetErrorHandler): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
12
+ executeCheck(data: GenericInput): 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 CreateConstraintInitParams<GenericConstraint extends Constraint = Constraint> {
15
- executeCheck(self: GenericConstraint, data: Parameters<GenericConstraint["executeCheck"]>[0], errorHandler?: GetErrorHandler): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
19
+ executeCheck(self: GenericConstraint, data: Parameters<GenericConstraint["executeCheck"]>[0]): DCommon.MaybePromise<SuccessSymbol | ErrorSymbol>;
16
20
  isAsynchronous(self: GenericConstraint): boolean;
17
21
  }
22
+ export declare class ConstraintBase {
23
+ private constructor();
24
+ static init(params: DKind.Remove<Constraint>): Constraint;
25
+ static addToPrototype<GenericProp extends keyof Constraint>(prop: GenericProp, value: Constraint[GenericProp] extends infer InferredValue ? InferredValue extends DCommon.AnyFunction ? (self: Constraint, ...rest: Parameters<InferredValue>) => ReturnType<InferredValue> : Constraint[GenericProp] : never): void;
26
+ }
18
27
  export interface CreateConstraintConstructorParams<GenericKindHandler extends DKind.Handler = DKind.Handler> {
19
28
  init<GenericConstraint extends (Constraint & DKind.Kind<GenericKindHandler>)>(definition: GenericConstraint["definition"], params: CreateConstraintInitParams<GenericConstraint>): GenericConstraint;
20
29
  }
@@ -1,17 +1,45 @@
1
+ import { bindPrototypeMethods } from "../../common/bindPrototypeMethods.mjs";
2
+ import { simpleClone } from "../../common/simpleClone.mjs";
1
3
  import { createKind } from "../kind.mjs";
2
4
  //#region scripts/dataStructure/constraint/base.ts
3
5
  const constraintKind = createKind("constraint");
6
+ var ConstraintBase = class ConstraintBase {
7
+ constructor() {}
8
+ static init(params) {
9
+ const self = new ConstraintBase();
10
+ bindPrototypeMethods(self);
11
+ for (const key in params) self[key] = params[key];
12
+ return self;
13
+ }
14
+ static addToPrototype(prop, value) {
15
+ ConstraintBase.prototype[prop] = typeof value === "function" ? function(...args) {
16
+ return value(this, ...args);
17
+ } : value;
18
+ }
19
+ };
4
20
  function createConstraint(kindHandler, createConstructor) {
5
- return createConstructor({ init: (definition, { executeCheck, isAsynchronous }) => {
6
- const self = {
21
+ const init = (definition, { executeCheck, isAsynchronous }) => {
22
+ const self = ConstraintBase.init({
7
23
  definition,
8
- executeCheck: (data, errorHandler) => executeCheck(self, data, errorHandler),
24
+ executeCheck: (data) => executeCheck(self, data),
9
25
  isAsynchronous: () => isAsynchronous(self),
26
+ clone: () => init(simpleClone(definition), {
27
+ executeCheck,
28
+ isAsynchronous
29
+ }),
30
+ setMessage: (message) => {
31
+ self.definition.message = message;
32
+ return self;
33
+ },
34
+ addMessage: (message) => {
35
+ return self.clone().setMessage(message);
36
+ },
10
37
  [constraintKind.runTimeKey]: null,
11
38
  [kindHandler.runTimeKey]: null
12
- };
39
+ });
13
40
  return self;
14
- } });
41
+ };
42
+ return createConstructor({ init });
15
43
  }
16
44
  //#endregion
17
- export { constraintKind, createConstraint };
45
+ export { ConstraintBase, constraintKind, createConstraint };
@@ -0,0 +1,13 @@
1
+ const require_kind = require("../../kind.cjs");
2
+ const require_resultSymbol = require("../../common/resultSymbol.cjs");
3
+ const require_base = require("../base.cjs");
4
+ const require_isAbsolute = require("../../../path/isAbsolute.cjs");
5
+ //#region scripts/dataStructure/constraint/defaults/absolutePath.ts
6
+ const absolutePathConstraintKind = require_kind.createKind("absolute-path-constraint");
7
+ const AbsolutePathConstraint = require_base.createConstraint(absolutePathConstraintKind, ({ init }) => () => init({}, {
8
+ executeCheck: (_self, data) => require_isAbsolute.isAbsolute(data) ? require_resultSymbol.SuccessSymbol : require_resultSymbol.ErrorSymbol,
9
+ isAsynchronous: () => false
10
+ }));
11
+ //#endregion
12
+ exports.AbsolutePathConstraint = AbsolutePathConstraint;
13
+ exports.absolutePathConstraintKind = absolutePathConstraintKind;
@@ -0,0 +1,10 @@
1
+ import { ConstraintDefinition, Constraint } from '../base';
2
+ import type * as DCommon from '../../../common';
3
+ import type * as DKind from '../../../kind';
4
+ import * as DPath from '../../../path';
5
+ export declare const absolutePathConstraintKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/absolute-path-constraint", unknown>>;
6
+ export interface AbsolutePathConstraintDefinition extends ConstraintDefinition {
7
+ }
8
+ export interface AbsolutePathConstraint extends DCommon.Forward<Constraint<string, string & DPath.Absolute, AbsolutePathConstraintDefinition> & DKind.Kind<typeof absolutePathConstraintKind>> {
9
+ }
10
+ export declare const AbsolutePathConstraint: () => AbsolutePathConstraint;
@@ -0,0 +1,12 @@
1
+ import { createKind } from "../../kind.mjs";
2
+ import { ErrorSymbol, SuccessSymbol } from "../../common/resultSymbol.mjs";
3
+ import { createConstraint } from "../base.mjs";
4
+ import { isAbsolute } from "../../../path/isAbsolute.mjs";
5
+ //#region scripts/dataStructure/constraint/defaults/absolutePath.ts
6
+ const absolutePathConstraintKind = createKind("absolute-path-constraint");
7
+ const AbsolutePathConstraint = createConstraint(absolutePathConstraintKind, ({ init }) => () => init({}, {
8
+ executeCheck: (_self, data) => isAbsolute(data) ? SuccessSymbol : ErrorSymbol,
9
+ isAsynchronous: () => false
10
+ }));
11
+ //#endregion
12
+ export { AbsolutePathConstraint, absolutePathConstraintKind };
@@ -5,7 +5,7 @@ const require_base = require("../base.cjs");
5
5
  //#region scripts/dataStructure/constraint/defaults/allowedCharacters.ts
6
6
  const allowedCharactersConstraintKind = require_kind.createKind("allowed-characters-constraint");
7
7
  const AllowedCharactersConstraint = require_base.createConstraint(allowedCharactersConstraintKind, ({ init }) => (charactersRange) => init({ charactersRange }, {
8
- executeCheck: (self, data, errorHandler) => require_isComposedOf.isComposedOf(data, self.definition.charactersRange) ? require_resultSymbol.SuccessSymbol : errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol,
8
+ executeCheck: (self, data) => require_isComposedOf.isComposedOf(data, self.definition.charactersRange) ? require_resultSymbol.SuccessSymbol : require_resultSymbol.ErrorSymbol,
9
9
  isAsynchronous: () => false
10
10
  }));
11
11
  //#endregion
@@ -3,11 +3,9 @@ import type * as DCommon from '../../../common';
3
3
  import type * as DKind from '../../../kind';
4
4
  import * as DString from '../../../string';
5
5
  export declare const allowedCharactersConstraintKind: DKind.Handler<DKind.Definition<"@DuplojsLangDataStructure/allowed-characters-constraint", unknown>>;
6
- type AllowedCharactersConstraintValue<GenericCharactersRange extends DString.CharactersRange> = string & DCommon.UnionToIntersection<GenericCharactersRange extends any ? DString.AllowedCharacters<GenericCharactersRange> : never>;
7
6
  export interface AllowedCharactersConstraintDefinition<GenericCharactersRange extends DString.CharactersRange = DString.CharactersRange> extends ConstraintDefinition {
8
7
  readonly charactersRange: DCommon.MaybeArray<GenericCharactersRange>;
9
8
  }
10
- export interface AllowedCharactersConstraint<GenericCharactersRange extends DString.CharactersRange = DString.CharactersRange> extends DCommon.UnionToIntersection<Constraint<string, AllowedCharactersConstraintValue<GenericCharactersRange>, AllowedCharactersConstraintDefinition<GenericCharactersRange>> & DKind.Kind<typeof allowedCharactersConstraintKind>> {
9
+ export interface AllowedCharactersConstraint<GenericCharactersRange extends DString.CharactersRange = DString.CharactersRange> extends DCommon.Forward<Constraint<string, string & DString.AllowedCharacters<GenericCharactersRange>, AllowedCharactersConstraintDefinition<GenericCharactersRange>> & DKind.Kind<typeof allowedCharactersConstraintKind>> {
11
10
  }
12
11
  export declare const AllowedCharactersConstraint: <GenericCharactersRange extends DString.CharactersRange>(charactersRange: DCommon.MaybeArray<GenericCharactersRange>) => AllowedCharactersConstraint<GenericCharactersRange>;
13
- export {};
@@ -5,7 +5,7 @@ import { createConstraint } from "../base.mjs";
5
5
  //#region scripts/dataStructure/constraint/defaults/allowedCharacters.ts
6
6
  const allowedCharactersConstraintKind = createKind("allowed-characters-constraint");
7
7
  const AllowedCharactersConstraint = createConstraint(allowedCharactersConstraintKind, ({ init }) => (charactersRange) => init({ charactersRange }, {
8
- executeCheck: (self, data, errorHandler) => isComposedOf(data, self.definition.charactersRange) ? SuccessSymbol : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
8
+ executeCheck: (self, data) => isComposedOf(data, self.definition.charactersRange) ? SuccessSymbol : ErrorSymbol,
9
9
  isAsynchronous: () => false
10
10
  }));
11
11
  //#endregion
@@ -6,7 +6,7 @@ const require_base = require("../base.cjs");
6
6
  //#region scripts/dataStructure/constraint/defaults/arrayLengthEqual.ts
7
7
  const arrayLengthEqualConstraintKind = require_kind.createKind("array-length-equal-constraint");
8
8
  const ArrayLengthEqualConstraint = require_base.createConstraint(arrayLengthEqualConstraintKind, ({ init }) => (length) => init({ length }, {
9
- executeCheck: (self, data, errorHandler) => require_lengthEqual.lengthEqual(data, require_forward.forward(self.definition.length)) ? require_resultSymbol.SuccessSymbol : errorHandler?.().addIssue(self, data) ?? require_resultSymbol.ErrorSymbol,
9
+ executeCheck: (self, data) => require_lengthEqual.lengthEqual(data, require_forward.forward(self.definition.length)) ? require_resultSymbol.SuccessSymbol : require_resultSymbol.ErrorSymbol,
10
10
  isAsynchronous: () => false
11
11
  }));
12
12
  //#endregion
@@ -6,6 +6,6 @@ export declare const arrayLengthEqualConstraintKind: DKind.Handler<DKind.Definit
6
6
  export interface ArrayLengthEqualConstraintDefinition<GenericLength extends number = number> extends ConstraintDefinition {
7
7
  readonly length: GenericLength;
8
8
  }
9
- export interface ArrayLengthEqualConstraint<GenericLength extends number = number> extends DCommon.UnionToIntersection<Constraint<readonly unknown[], readonly unknown[] & DArray.LengthEqual<GenericLength>, ArrayLengthEqualConstraintDefinition<GenericLength>> & DKind.Kind<typeof arrayLengthEqualConstraintKind>> {
9
+ export interface ArrayLengthEqualConstraint<GenericLength extends number = number> extends DCommon.Forward<Constraint<readonly unknown[], readonly unknown[] & DArray.LengthEqual<GenericLength>, ArrayLengthEqualConstraintDefinition<GenericLength>> & DKind.Kind<typeof arrayLengthEqualConstraintKind>> {
10
10
  }
11
11
  export declare const ArrayLengthEqualConstraint: <GenericLength extends number>(length: GenericLength) => ArrayLengthEqualConstraint<GenericLength>;
@@ -6,7 +6,7 @@ import { createConstraint } from "../base.mjs";
6
6
  //#region scripts/dataStructure/constraint/defaults/arrayLengthEqual.ts
7
7
  const arrayLengthEqualConstraintKind = createKind("array-length-equal-constraint");
8
8
  const ArrayLengthEqualConstraint = createConstraint(arrayLengthEqualConstraintKind, ({ init }) => (length) => init({ length }, {
9
- executeCheck: (self, data, errorHandler) => lengthEqual(data, forward(self.definition.length)) ? SuccessSymbol : errorHandler?.().addIssue(self, data) ?? ErrorSymbol,
9
+ executeCheck: (self, data) => lengthEqual(data, forward(self.definition.length)) ? SuccessSymbol : ErrorSymbol,
10
10
  isAsynchronous: () => false
11
11
  }));
12
12
  //#endregion