@duplojs/lang 0.0.1-beta.1 → 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 (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 +84 -0
  76. package/dist/dataStructure/common/error/defaultInterpreter.d.ts +57 -0
  77. package/dist/dataStructure/common/error/defaultInterpreter.mjs +83 -0
  78. package/dist/dataStructure/common/error/index.d.ts +3 -0
  79. package/dist/dataStructure/common/error/interpreter.cjs +45 -0
  80. package/dist/dataStructure/common/error/interpreter.d.ts +36 -0
  81. package/dist/dataStructure/common/error/interpreter.mjs +45 -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,113 @@
1
+ const require_parentClass = require("../../kind/parentClass.cjs");
2
+ const require_isSimple = require("../../object/isSimple.cjs");
3
+ const require_override = require("../../object/override.cjs");
4
+ const require_create = require("../../either/left/create.cjs");
5
+ const require_is = require("../../either/left/is.cjs");
6
+ const require_create$1 = require("../../either/right/create.cjs");
7
+ const require_unwrap = require("../../either/left/unwrap.cjs");
8
+ const require_unwrap$1 = require("../../either/right/unwrap.cjs");
9
+ const require_justExec = require("../../common/justExec.cjs");
10
+ const require_resultSymbol = require("../../dataStructure/common/resultSymbol.cjs");
11
+ const require_base = require("../../dataStructure/common/error/base.cjs");
12
+ const require_base$1 = require("../../dataStructure/structure/base.cjs");
13
+ const require_nonEncodableString = require("../../dataStructure/structure/defaults/nonEncodableString.cjs");
14
+ const require_object = require("../../dataStructure/structure/defaults/object.cjs");
15
+ const require_kind = require("../kind.cjs");
16
+ const require_base$2 = require("../entity/base.cjs");
17
+ //#region scripts/modeling/taggedObject/base.ts
18
+ const objectTagKind = require_kind.createKind("object-tag");
19
+ const taggedObjectStructureKind = require_kind.createKind("tagged-object-structure");
20
+ var EncodeTaggedObjectError = class extends require_parentClass.parentClass(require_kind.createKind("encode-tagged-object-error"), Error) {
21
+ error;
22
+ constructor(error) {
23
+ super(void 0, "An error occurred while encoding a TaggedObject. This can only happen if you are bypassing the type system.");
24
+ this.error = error;
25
+ }
26
+ };
27
+ const TaggedObjectStructure = require_base$1.createStructure(taggedObjectStructureKind, ({ init }) => (name, shape) => init({
28
+ inner: require_object.ObjectStructure({
29
+ ...shape,
30
+ [objectTagKind.runTimeKey]: require_nonEncodableString.NonEncodableStringStructure(name)
31
+ }, []),
32
+ constraints: []
33
+ }, {
34
+ executeCheck: (self, data, errorHandler) => self.definition.inner.executeCheck(data, errorHandler),
35
+ executeEncode: (self, codecContext, data, errorHandler) => self.definition.inner.executeEncode(codecContext, data, errorHandler),
36
+ executeDecode: (self, codecContext, data, errorHandler) => self.definition.inner.executeDecode(codecContext, data, errorHandler),
37
+ isAsynchronous: (self) => self.definition.inner.isAsynchronous()
38
+ }, {
39
+ name,
40
+ new: (self, properties) => ({
41
+ ...properties,
42
+ [objectTagKind.runTimeKey]: name
43
+ }),
44
+ decodeMap: (self, ...args) => {
45
+ if (args.length === 1) {
46
+ const [codecs] = args;
47
+ return (value) => self.decodeMap(codecs, value);
48
+ }
49
+ const errorHandler = require_base.createGetErrorHandler();
50
+ const [codecs, data] = args;
51
+ const result = self.executeDecode(codecs.context.value, require_isSimple.isSimple(data) ? {
52
+ ...data,
53
+ [objectTagKind.runTimeKey]: name
54
+ } : data, errorHandler);
55
+ if (result instanceof Promise) return require_create.left("async-error", void 0);
56
+ if (result === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
57
+ return require_create$1.right("map-success", result);
58
+ },
59
+ map: (self, data) => {
60
+ const errorHandler = require_base.createGetErrorHandler();
61
+ const formattedData = require_isSimple.isSimple(data) ? {
62
+ ...data,
63
+ [objectTagKind.runTimeKey]: name
64
+ } : data;
65
+ const result = self.executeCheck(formattedData, errorHandler);
66
+ if (result instanceof Promise) return require_create.left("async-error", void 0);
67
+ if (result === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
68
+ return require_create$1.right("map-success", formattedData);
69
+ },
70
+ asyncDecodeMap: (self, ...args) => {
71
+ if (args.length === 1) {
72
+ const [codecs] = args;
73
+ return (value) => self.asyncDecodeMap(codecs, value);
74
+ }
75
+ return require_justExec.justExec(async () => {
76
+ const errorHandler = require_base.createGetErrorHandler();
77
+ const [codecs, data] = args;
78
+ const result = await self.executeDecode(codecs.context.value, require_isSimple.isSimple(data) ? {
79
+ ...data,
80
+ [objectTagKind.runTimeKey]: name
81
+ } : data, errorHandler);
82
+ if (result === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
83
+ return require_create$1.right("map-success", result);
84
+ });
85
+ },
86
+ asyncMap: async (self, data) => {
87
+ const errorHandler = require_base.createGetErrorHandler();
88
+ const formattedData = require_isSimple.isSimple(data) ? {
89
+ ...data,
90
+ [objectTagKind.runTimeKey]: name
91
+ } : data;
92
+ if (await self.executeCheck(formattedData, errorHandler) === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
93
+ return require_create$1.right("map-success", formattedData);
94
+ },
95
+ encodeTaggedObject: async (self, codecs, data) => {
96
+ const result = await self.asyncEncode(codecs, data);
97
+ if (require_is.isLeft(result)) throw new EncodeTaggedObjectError(require_unwrap.unwrapLeft(result));
98
+ return require_unwrap$1.unwrapRight(result);
99
+ },
100
+ update: (self, ...args) => {
101
+ if (args.length === 1) {
102
+ const [update] = args;
103
+ return (input) => self.update(input, update);
104
+ }
105
+ const [input, { [require_base$2.entityKind.runTimeKey]: __, ...update }] = args;
106
+ return require_override.override(input, update);
107
+ }
108
+ }));
109
+ //#endregion
110
+ exports.EncodeTaggedObjectError = EncodeTaggedObjectError;
111
+ exports.TaggedObjectStructure = TaggedObjectStructure;
112
+ exports.objectTagKind = objectTagKind;
113
+ exports.taggedObjectStructureKind = taggedObjectStructureKind;
@@ -0,0 +1,61 @@
1
+ import { NewType, NewTypeMap } from '../newType';
2
+ import * as DKind from '../../kind';
3
+ import * as DCommon from '../../common';
4
+ import * as DEither from '../../either';
5
+ import * as DDataStructure from '../../dataStructure';
6
+ declare module '../../dataStructure' {
7
+ interface StructuresStore {
8
+ taggedObject: TaggedObjectStructure;
9
+ }
10
+ }
11
+ declare module '../../dataStructure/common' {
12
+ interface EncodeStructure<GenericValue extends unknown, GenericCodecs extends DDataStructure.Codecs> {
13
+ taggedObject: GenericValue extends ObjectTag<infer InferredName> ? (ObjectTag<InferredName> & {
14
+ [Prop in Exclude<keyof GenericValue, DKind.KeySymbol>]: DDataStructure.EncodedValue<GenericValue[Prop], GenericCodecs>;
15
+ }) : never;
16
+ }
17
+ }
18
+ export declare const objectTagKind: DKind.Handler<DKind.Definition<"@DuplojsLangModeling/object-tag", string>>;
19
+ export interface ObjectTag<GenericValue extends string = string> extends DKind.Kind<typeof objectTagKind, GenericValue> {
20
+ }
21
+ export type GetTagValue<GenericTaggedObject extends ObjectTag> = DKind.GetValue<typeof objectTagKind, GenericTaggedObject>;
22
+ export type ExtractByTagValue<GenericValue extends unknown, GenericTagValue extends string> = GenericValue extends ObjectTag<GenericTagValue> ? GenericValue : never;
23
+ export type ShapeTaggedObjectStructure<GenericTaggedObject extends ObjectTag = ObjectTag> = {
24
+ [Prop in Extract<keyof GenericTaggedObject, string>]: DDataStructure.Structure<GenericTaggedObject[Prop]>;
25
+ };
26
+ export declare const taggedObjectStructureKind: DKind.Handler<DKind.Definition<"@DuplojsLangModeling/tagged-object-structure", unknown>>;
27
+ export interface TaggedObjectStructureDefinition extends DDataStructure.StructureDefinition<readonly []> {
28
+ readonly inner: DDataStructure.ObjectStructure;
29
+ }
30
+ export type TaggedObjectMap<GenericValue extends unknown, GenericRawValue = DCommon.RemoveConstraint<GenericValue>> = GenericRawValue extends NewType ? NewTypeMap<GenericRawValue> : GenericRawValue extends object ? DCommon.Or<[
31
+ DCommon.IsExtends<GenericRawValue, readonly any[]>,
32
+ DCommon.And<[
33
+ DCommon.IsExtends<keyof GenericRawValue, string>,
34
+ DCommon.Not<DCommon.IsExtends<DCommon.AnyFunction, GenericRawValue[keyof GenericRawValue]>>
35
+ ]>
36
+ ]> extends true ? {
37
+ [Prop in keyof GenericRawValue]: TaggedObjectMap<GenericRawValue[Prop]>;
38
+ } : GenericRawValue : GenericRawValue;
39
+ export type TaggedObjectUpdate<GenericTaggedObject extends ObjectTag, GenericNewProperties extends object> = Extract<(ObjectTag<GetTagValue<GenericTaggedObject>> & DCommon.SimplifyTopLevel<DKind.Remove<GenericTaggedObject> extends infer InferredProperties ? {
40
+ [Prop in keyof InferredProperties]: Prop extends keyof GenericNewProperties ? GenericNewProperties[Prop] extends infer InferredNewValue ? InferredNewValue extends undefined ? InferredProperties[Prop] : InferredNewValue : never : InferredProperties[Prop];
41
+ } : never>), any>;
42
+ export interface TaggedObjectStructure<out GenericTaggedObject extends ObjectTag = ObjectTag> extends DCommon.Forward<DDataStructure.Structure<GenericTaggedObject, TaggedObjectStructureDefinition> & DKind.Kind<typeof taggedObjectStructureKind>> {
43
+ readonly name: GetTagValue<GenericTaggedObject>;
44
+ "new"(properties: DCommon.SimplifyTopLevel<DKind.Remove<GenericTaggedObject>>): GenericTaggedObject;
45
+ decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>) => (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
46
+ decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>): (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
47
+ map(data: TaggedObjectMap<DKind.Remove<DDataStructure.StructureValue<this>>>): (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
48
+ asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>) => Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
49
+ asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
50
+ asyncMap(data: TaggedObjectMap<DKind.Remove<DDataStructure.StructureValue<this>>>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
51
+ encodeTaggedObject<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.StructureValue<this>): Promise<DDataStructure.EncodedValue<TaggedObjectMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>>;
52
+ update<GenericInput extends GenericTaggedObject, const GenericPayload extends Partial<DKind.Remove<GenericTaggedObject>>>(update: GenericPayload): (input: GenericInput) => TaggedObjectUpdate<GenericInput, GenericPayload>;
53
+ update<GenericInput extends GenericTaggedObject, const GenericPayload extends Partial<DKind.Remove<GenericTaggedObject>>>(input: GenericInput, update: GenericPayload): TaggedObjectUpdate<GenericInput, GenericPayload>;
54
+ }
55
+ declare const EncodeTaggedObjectError_base: DKind.KindClass<DKind.Handler<DKind.Definition<"@DuplojsLangModeling/encode-tagged-object-error", unknown>>, ErrorConstructor>;
56
+ export declare class EncodeTaggedObjectError extends EncodeTaggedObjectError_base {
57
+ error: DDataStructure.Error;
58
+ constructor(error: DDataStructure.Error);
59
+ }
60
+ export declare const TaggedObjectStructure: <GenericTaggedObject extends ObjectTag, GenericName extends string = never, GenericShape extends DDataStructure.ShapeObjectStructure = never>(name: GetTagValue<GenericTaggedObject> | GenericName, shape: ShapeTaggedObjectStructure<GenericTaggedObject> | GenericShape) => TaggedObjectStructure<ObjectTag extends GenericTaggedObject ? (ObjectTag<GenericName> & DDataStructure.ShapeObjectStructureValue<GenericShape>) : GenericTaggedObject>;
61
+ export {};
@@ -0,0 +1,110 @@
1
+ import { parentClass } from "../../kind/parentClass.mjs";
2
+ import { isSimple } from "../../object/isSimple.mjs";
3
+ import { override } from "../../object/override.mjs";
4
+ import { left } from "../../either/left/create.mjs";
5
+ import { isLeft } from "../../either/left/is.mjs";
6
+ import { right } from "../../either/right/create.mjs";
7
+ import { unwrapLeft } from "../../either/left/unwrap.mjs";
8
+ import { unwrapRight } from "../../either/right/unwrap.mjs";
9
+ import { justExec } from "../../common/justExec.mjs";
10
+ import { ErrorSymbol } from "../../dataStructure/common/resultSymbol.mjs";
11
+ import { createGetErrorHandler } from "../../dataStructure/common/error/base.mjs";
12
+ import { createStructure } from "../../dataStructure/structure/base.mjs";
13
+ import { NonEncodableStringStructure } from "../../dataStructure/structure/defaults/nonEncodableString.mjs";
14
+ import { ObjectStructure } from "../../dataStructure/structure/defaults/object.mjs";
15
+ import { createKind } from "../kind.mjs";
16
+ import { entityKind } from "../entity/base.mjs";
17
+ //#region scripts/modeling/taggedObject/base.ts
18
+ const objectTagKind = createKind("object-tag");
19
+ const taggedObjectStructureKind = createKind("tagged-object-structure");
20
+ var EncodeTaggedObjectError = class extends parentClass(createKind("encode-tagged-object-error"), Error) {
21
+ error;
22
+ constructor(error) {
23
+ super(void 0, "An error occurred while encoding a TaggedObject. This can only happen if you are bypassing the type system.");
24
+ this.error = error;
25
+ }
26
+ };
27
+ const TaggedObjectStructure = createStructure(taggedObjectStructureKind, ({ init }) => (name, shape) => init({
28
+ inner: ObjectStructure({
29
+ ...shape,
30
+ [objectTagKind.runTimeKey]: NonEncodableStringStructure(name)
31
+ }, []),
32
+ constraints: []
33
+ }, {
34
+ executeCheck: (self, data, errorHandler) => self.definition.inner.executeCheck(data, errorHandler),
35
+ executeEncode: (self, codecContext, data, errorHandler) => self.definition.inner.executeEncode(codecContext, data, errorHandler),
36
+ executeDecode: (self, codecContext, data, errorHandler) => self.definition.inner.executeDecode(codecContext, data, errorHandler),
37
+ isAsynchronous: (self) => self.definition.inner.isAsynchronous()
38
+ }, {
39
+ name,
40
+ new: (self, properties) => ({
41
+ ...properties,
42
+ [objectTagKind.runTimeKey]: name
43
+ }),
44
+ decodeMap: (self, ...args) => {
45
+ if (args.length === 1) {
46
+ const [codecs] = args;
47
+ return (value) => self.decodeMap(codecs, value);
48
+ }
49
+ const errorHandler = createGetErrorHandler();
50
+ const [codecs, data] = args;
51
+ const result = self.executeDecode(codecs.context.value, isSimple(data) ? {
52
+ ...data,
53
+ [objectTagKind.runTimeKey]: name
54
+ } : data, errorHandler);
55
+ if (result instanceof Promise) return left("async-error", void 0);
56
+ if (result === ErrorSymbol) return left("map-error", errorHandler().createError());
57
+ return right("map-success", result);
58
+ },
59
+ map: (self, data) => {
60
+ const errorHandler = createGetErrorHandler();
61
+ const formattedData = isSimple(data) ? {
62
+ ...data,
63
+ [objectTagKind.runTimeKey]: name
64
+ } : data;
65
+ const result = self.executeCheck(formattedData, errorHandler);
66
+ if (result instanceof Promise) return left("async-error", void 0);
67
+ if (result === ErrorSymbol) return left("map-error", errorHandler().createError());
68
+ return right("map-success", formattedData);
69
+ },
70
+ asyncDecodeMap: (self, ...args) => {
71
+ if (args.length === 1) {
72
+ const [codecs] = args;
73
+ return (value) => self.asyncDecodeMap(codecs, value);
74
+ }
75
+ return justExec(async () => {
76
+ const errorHandler = createGetErrorHandler();
77
+ const [codecs, data] = args;
78
+ const result = await self.executeDecode(codecs.context.value, isSimple(data) ? {
79
+ ...data,
80
+ [objectTagKind.runTimeKey]: name
81
+ } : data, errorHandler);
82
+ if (result === ErrorSymbol) return left("map-error", errorHandler().createError());
83
+ return right("map-success", result);
84
+ });
85
+ },
86
+ asyncMap: async (self, data) => {
87
+ const errorHandler = createGetErrorHandler();
88
+ const formattedData = isSimple(data) ? {
89
+ ...data,
90
+ [objectTagKind.runTimeKey]: name
91
+ } : data;
92
+ if (await self.executeCheck(formattedData, errorHandler) === ErrorSymbol) return left("map-error", errorHandler().createError());
93
+ return right("map-success", formattedData);
94
+ },
95
+ encodeTaggedObject: async (self, codecs, data) => {
96
+ const result = await self.asyncEncode(codecs, data);
97
+ if (isLeft(result)) throw new EncodeTaggedObjectError(unwrapLeft(result));
98
+ return unwrapRight(result);
99
+ },
100
+ update: (self, ...args) => {
101
+ if (args.length === 1) {
102
+ const [update] = args;
103
+ return (input) => self.update(input, update);
104
+ }
105
+ const [input, { [entityKind.runTimeKey]: __, ...update }] = args;
106
+ return override(input, update);
107
+ }
108
+ }));
109
+ //#endregion
110
+ export { EncodeTaggedObjectError, TaggedObjectStructure, objectTagKind, taggedObjectStructureKind };
@@ -0,0 +1,34 @@
1
+ const require_base = require("./base.cjs");
2
+ //#region scripts/modeling/taggedObject/helper.ts
3
+ function getTagValue(objectTag) {
4
+ return require_base.objectTagKind.getValue(objectTag);
5
+ }
6
+ function hasTagValue(...args) {
7
+ if (args.length === 1) {
8
+ const [value] = args;
9
+ return (input) => hasTagValue(input, value);
10
+ }
11
+ const [input, value] = args;
12
+ if (!require_base.objectTagKind.has(input)) return false;
13
+ const tagValue = require_base.objectTagKind.getValue(input);
14
+ return Array.isArray(value) ? value.includes(tagValue) : tagValue === value;
15
+ }
16
+ function taggedObject(tag, props) {
17
+ return {
18
+ ...props,
19
+ [require_base.objectTagKind.runTimeKey]: tag
20
+ };
21
+ }
22
+ function createTaggedObject(...args) {
23
+ if (args.length === 1) {
24
+ const [name] = args;
25
+ return (shape) => createTaggedObject(name, shape);
26
+ }
27
+ const [name, shape] = args;
28
+ return require_base.TaggedObjectStructure(name, shape);
29
+ }
30
+ //#endregion
31
+ exports.createTaggedObject = createTaggedObject;
32
+ exports.getTagValue = getTagValue;
33
+ exports.hasTagValue = hasTagValue;
34
+ exports.taggedObject = taggedObject;
@@ -0,0 +1,15 @@
1
+ import { ExtractByTagValue, GetTagValue, ShapeTaggedObjectStructure, TaggedObjectStructure, ObjectTag } from './base';
2
+ import type * as DKind from '../../kind';
3
+ import type * as DCommon from '../../common';
4
+ import type * as DDataStructure from '../../dataStructure';
5
+ import type * as DObject from '../../object';
6
+ export declare function getTagValue<GenericObjectTag extends ObjectTag>(objectTag: GenericObjectTag): GetTagValue<GenericObjectTag>;
7
+ export declare function hasTagValue<GenericInput extends unknown, GenericTagValue extends (GenericInput extends ObjectTag ? GetTagValue<GenericInput> : never)>(value: DCommon.MaybeArray<GenericTagValue>): (input: GenericInput) => input is ExtractByTagValue<GenericInput, GenericTagValue>;
8
+ export declare function hasTagValue<GenericInput extends unknown, GenericTagValue extends (GenericInput extends ObjectTag ? GetTagValue<GenericInput> : never)>(input: GenericInput, value: DCommon.MaybeArray<GenericTagValue>): input is ExtractByTagValue<GenericInput, GenericTagValue>;
9
+ export declare function taggedObject<GenericTaggedObject extends ObjectTag>(...args: GenericTaggedObject extends unknown ? [
10
+ tag: NoInfer<GetTagValue<GenericTaggedObject>>,
11
+ props: NoInfer<DCommon.SimplifyTopLevel<DKind.Remove<ExtractByTagValue<GenericTaggedObject, GetTagValue<GenericTaggedObject>>>>>
12
+ ] : never): GenericTaggedObject;
13
+ export type RequireTaggedObjectSameShape<GenericTaggedObject extends ObjectTag, GenericTaggedObjectShape extends ShapeTaggedObjectStructure> = DCommon.IsEqual<DCommon.SimplifyTopLevel<DObject.DeepReadonly<DKind.Remove<GenericTaggedObject>>>, DCommon.SimplifyTopLevel<DObject.DeepReadonly<DDataStructure.ShapeObjectStructureValue<GenericTaggedObjectShape>>>> extends true ? unknown : DCommon.ComputedTypeError<"Shape do not match.">;
14
+ export declare function createTaggedObject<GenericTaggedObject extends ObjectTag>(name: GetTagValue<GenericTaggedObject>): <GenericShape extends ShapeTaggedObjectStructure<GenericTaggedObject>>(shape: (GenericShape & RequireTaggedObjectSameShape<GenericTaggedObject, GenericShape>)) => TaggedObjectStructure<GenericTaggedObject>;
15
+ export declare function createTaggedObject<GenericTaggedObject extends ObjectTag, GenericName extends string = never, GenericShape extends DDataStructure.ShapeObjectStructure = never>(name: GetTagValue<GenericTaggedObject> | GenericName, shape: ShapeTaggedObjectStructure<GenericTaggedObject> | GenericShape): TaggedObjectStructure<ObjectTag extends GenericTaggedObject ? (ObjectTag<GenericName> & DDataStructure.ShapeObjectStructureValue<GenericShape>) : GenericTaggedObject>;
@@ -0,0 +1,31 @@
1
+ import { TaggedObjectStructure, objectTagKind } from "./base.mjs";
2
+ //#region scripts/modeling/taggedObject/helper.ts
3
+ function getTagValue(objectTag) {
4
+ return objectTagKind.getValue(objectTag);
5
+ }
6
+ function hasTagValue(...args) {
7
+ if (args.length === 1) {
8
+ const [value] = args;
9
+ return (input) => hasTagValue(input, value);
10
+ }
11
+ const [input, value] = args;
12
+ if (!objectTagKind.has(input)) return false;
13
+ const tagValue = objectTagKind.getValue(input);
14
+ return Array.isArray(value) ? value.includes(tagValue) : tagValue === value;
15
+ }
16
+ function taggedObject(tag, props) {
17
+ return {
18
+ ...props,
19
+ [objectTagKind.runTimeKey]: tag
20
+ };
21
+ }
22
+ function createTaggedObject(...args) {
23
+ if (args.length === 1) {
24
+ const [name] = args;
25
+ return (shape) => createTaggedObject(name, shape);
26
+ }
27
+ const [name, shape] = args;
28
+ return TaggedObjectStructure(name, shape);
29
+ }
30
+ //#endregion
31
+ export { createTaggedObject, getTagValue, hasTagValue, taggedObject };
@@ -0,0 +1,2 @@
1
+ export * from './base';
2
+ export * from './helper';
@@ -1,8 +1,8 @@
1
1
  import { ComputeGreaterThanCompatibility, ComputeLessThanCompatibility, GreaterThan, IsImpossibleToApplyGreaterThan, IsImpossibleToApplyLessThan, LessThan } from './constraints';
2
2
  import { RequireSimpleLiteral } from './types';
3
3
  import type * as DCommon from '../common';
4
- type ApplyGreaterThan<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThan<GenericValue, GreaterThan<GenericThreshold>> extends true ? never : ComputeGreaterThanCompatibility<GenericValue, GreaterThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult extends DCommon.CompatibilityConstraintResult<true> ? GenericValue : GenericValue & GreaterThan<GenericThreshold> : never : never;
5
- type ApplyLessThan<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThan<GenericValue, LessThan<GenericThreshold>> extends true ? never : ComputeLessThanCompatibility<GenericValue, LessThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult extends DCommon.CompatibilityConstraintResult<true> ? GenericValue : GenericValue & LessThan<GenericThreshold> : never : never;
4
+ type ApplyGreaterThan<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThan<GenericValue, GreaterThan<GenericThreshold>> extends true ? never : ComputeGreaterThanCompatibility<GenericValue, GreaterThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & GreaterThan<GenericThreshold> : never : never;
5
+ type ApplyLessThan<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThan<GenericValue, LessThan<GenericThreshold>> extends true ? never : ComputeLessThanCompatibility<GenericValue, LessThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & LessThan<GenericThreshold> : never : never;
6
6
  type BetweenThanOutput<GenericValue extends number, GenericGreater extends number, GenericLess extends number> = ApplyLessThan<ApplyGreaterThan<GenericValue, GenericGreater>, GenericLess>;
7
7
  type RequireApplyBetweenThan<GenericNumber extends number> = RequireSimpleLiteral<GenericNumber>;
8
8
  type RequireApplyBetweenThanBoolean<GenericNumber extends number> = DCommon.IsEqual<GenericNumber, number> extends true ? unknown : RequireApplyBetweenThan<GenericNumber>;
@@ -1,8 +1,8 @@
1
1
  import { ComputeGreaterThanOrEqualCompatibility, ComputeLessThanOrEqualCompatibility, GreaterThanOrEqual, IsImpossibleToApplyGreaterThanOrEqual, IsImpossibleToApplyLessThanOrEqual, LessThanOrEqual } from './constraints';
2
2
  import { RequireSimpleLiteral } from './types';
3
3
  import type * as DCommon from '../common';
4
- type ApplyGreaterThanOrEqual<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThanOrEqual<GenericValue, GreaterThanOrEqual<GenericThreshold>> extends true ? never : ComputeGreaterThanOrEqualCompatibility<GenericValue, GreaterThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult extends DCommon.CompatibilityConstraintResult<true> ? GenericValue : GenericValue & GreaterThanOrEqual<GenericThreshold> : never : never;
5
- type ApplyLessThanOrEqual<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThanOrEqual<GenericValue, LessThanOrEqual<GenericThreshold>> extends true ? never : ComputeLessThanOrEqualCompatibility<GenericValue, LessThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult extends DCommon.CompatibilityConstraintResult<true> ? GenericValue : GenericValue & LessThanOrEqual<GenericThreshold> : never : never;
4
+ type ApplyGreaterThanOrEqual<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThanOrEqual<GenericValue, GreaterThanOrEqual<GenericThreshold>> extends true ? never : ComputeGreaterThanOrEqualCompatibility<GenericValue, GreaterThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & GreaterThanOrEqual<GenericThreshold> : never : never;
5
+ type ApplyLessThanOrEqual<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThanOrEqual<GenericValue, LessThanOrEqual<GenericThreshold>> extends true ? never : ComputeLessThanOrEqualCompatibility<GenericValue, LessThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & LessThanOrEqual<GenericThreshold> : never : never;
6
6
  type BetweenThanOrEqualOutput<GenericValue extends number, GenericGreater extends number, GenericLess extends number> = ApplyLessThanOrEqual<ApplyGreaterThanOrEqual<GenericValue, GenericGreater>, GenericLess>;
7
7
  type RequireApplyBetweenThanOrEqual<GenericNumber extends number> = RequireSimpleLiteral<GenericNumber>;
8
8
  type RequireApplyBetweenThanOrEqualBoolean<GenericNumber extends number> = DCommon.IsEqual<GenericNumber, number> extends true ? unknown : RequireApplyBetweenThanOrEqual<GenericNumber>;
@@ -1,7 +1,7 @@
1
1
  import { ComputeGreaterThanCompatibility, GreaterThan, IsImpossibleToApplyGreaterThan } from './constraints';
2
2
  import { RequireSimpleLiteral } from './types';
3
3
  import type * as DCommon from '../common';
4
- type GreaterThanOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThan<GenericValue, GreaterThan<GenericThreshold>> extends true ? never : ComputeGreaterThanCompatibility<GenericValue, GreaterThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult extends DCommon.CompatibilityConstraintResult<true> ? GenericValue : GenericValue & GreaterThan<GenericThreshold> : never : never;
4
+ type GreaterThanOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThan<GenericValue, GreaterThan<GenericThreshold>> extends true ? never : ComputeGreaterThanCompatibility<GenericValue, GreaterThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & GreaterThan<GenericThreshold> : never : never;
5
5
  type RequireApplyGreaterThan<GenericThreshold extends number> = RequireSimpleLiteral<GenericThreshold>;
6
6
  type RequireApplyGreaterThanBoolean<GenericThreshold extends number> = DCommon.IsEqual<GenericThreshold, number> extends true ? unknown : RequireApplyGreaterThan<GenericThreshold>;
7
7
  export declare function greaterThan<GenericValue extends number, const GenericThreshold extends number>(threshold: GenericThreshold & RequireApplyGreaterThan<GenericThreshold>): (value: GenericValue) => value is GreaterThanOutput<GenericValue, GenericThreshold>;
@@ -1,7 +1,7 @@
1
1
  import { ComputeGreaterThanOrEqualCompatibility, GreaterThanOrEqual, IsImpossibleToApplyGreaterThanOrEqual } from './constraints';
2
2
  import { RequireSimpleLiteral } from './types';
3
3
  import type * as DCommon from '../common';
4
- type GreaterThanOrEqualOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThanOrEqual<GenericValue, GreaterThanOrEqual<GenericThreshold>> extends true ? never : ComputeGreaterThanOrEqualCompatibility<GenericValue, GreaterThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult extends DCommon.CompatibilityConstraintResult<true> ? GenericValue : GenericValue & GreaterThanOrEqual<GenericThreshold> : never : never;
4
+ type GreaterThanOrEqualOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyGreaterThanOrEqual<GenericValue, GreaterThanOrEqual<GenericThreshold>> extends true ? never : ComputeGreaterThanOrEqualCompatibility<GenericValue, GreaterThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & GreaterThanOrEqual<GenericThreshold> : never : never;
5
5
  type RequireApplyGreaterThanOrEqual<GenericThreshold extends number> = RequireSimpleLiteral<GenericThreshold>;
6
6
  type RequireApplyGreaterThanOrEqualBoolean<GenericThreshold extends number> = DCommon.IsEqual<GenericThreshold, number> extends true ? unknown : RequireApplyGreaterThanOrEqual<GenericThreshold>;
7
7
  export declare function greaterThanOrEqual<GenericValue extends number, const GenericThreshold extends number>(threshold: GenericThreshold & RequireApplyGreaterThanOrEqual<GenericThreshold>): (value: GenericValue) => value is GreaterThanOrEqualOutput<GenericValue, GenericThreshold>;
@@ -3,7 +3,6 @@ const require_betweenThan = require("./betweenThan.cjs");
3
3
  const require_betweenThanOrEqual = require("./betweenThanOrEqual.cjs");
4
4
  const require_greaterThan = require("./greaterThan.cjs");
5
5
  const require_greaterThanOrEqual = require("./greaterThanOrEqual.cjs");
6
- const require_infer = require("./infer.cjs");
7
6
  const require_isEven = require("./isEven.cjs");
8
7
  const require_isInteger = require("./isInteger.cjs");
9
8
  const require_isMultipleOf = require("./isMultipleOf.cjs");
@@ -28,7 +27,6 @@ var number_exports = /* @__PURE__ */ require_runtime.__exportAll({
28
27
  betweenThanOrEqual: () => require_betweenThanOrEqual.betweenThanOrEqual,
29
28
  greaterThan: () => require_greaterThan.greaterThan,
30
29
  greaterThanOrEqual: () => require_greaterThanOrEqual.greaterThanOrEqual,
31
- infer: () => require_infer.infer,
32
30
  isEven: () => require_isEven.isEven,
33
31
  isInteger: () => require_isInteger.isInteger,
34
32
  isMultipleOf: () => require_isMultipleOf.isMultipleOf,
@@ -53,7 +51,6 @@ exports.betweenThan = require_betweenThan.betweenThan;
53
51
  exports.betweenThanOrEqual = require_betweenThanOrEqual.betweenThanOrEqual;
54
52
  exports.greaterThan = require_greaterThan.greaterThan;
55
53
  exports.greaterThanOrEqual = require_greaterThanOrEqual.greaterThanOrEqual;
56
- exports.infer = require_infer.infer;
57
54
  exports.isEven = require_isEven.isEven;
58
55
  exports.isInteger = require_isInteger.isInteger;
59
56
  exports.isMultipleOf = require_isMultipleOf.isMultipleOf;
@@ -3,7 +3,6 @@ export * from './betweenThanOrEqual';
3
3
  export type * from './constraints';
4
4
  export * from './greaterThan';
5
5
  export * from './greaterThanOrEqual';
6
- export * from './infer';
7
6
  export * from './isEven';
8
7
  export * from './isInteger';
9
8
  export * from './isMultipleOf';
@@ -3,7 +3,6 @@ import { betweenThan } from "./betweenThan.mjs";
3
3
  import { betweenThanOrEqual } from "./betweenThanOrEqual.mjs";
4
4
  import { greaterThan } from "./greaterThan.mjs";
5
5
  import { greaterThanOrEqual } from "./greaterThanOrEqual.mjs";
6
- import { infer } from "./infer.mjs";
7
6
  import { isEven } from "./isEven.mjs";
8
7
  import { isInteger } from "./isInteger.mjs";
9
8
  import { isMultipleOf } from "./isMultipleOf.mjs";
@@ -28,7 +27,6 @@ var number_exports = /* @__PURE__ */ __exportAll({
28
27
  betweenThanOrEqual: () => betweenThanOrEqual,
29
28
  greaterThan: () => greaterThan,
30
29
  greaterThanOrEqual: () => greaterThanOrEqual,
31
- infer: () => infer,
32
30
  isEven: () => isEven,
33
31
  isInteger: () => isInteger,
34
32
  isMultipleOf: () => isMultipleOf,
@@ -49,4 +47,4 @@ var number_exports = /* @__PURE__ */ __exportAll({
49
47
  sum: () => sum
50
48
  });
51
49
  //#endregion
52
- export { betweenThan, betweenThanOrEqual, greaterThan, greaterThanOrEqual, infer, isEven, isInteger, isMultipleOf, isNegative, isNotZero, isOdd, isPositive, isSafe, isStrictNegative, isStrictPositive, lessThan, lessThanOrEqual, max, maxOf, min, minOf, number_exports, sort, sum };
50
+ export { betweenThan, betweenThanOrEqual, greaterThan, greaterThanOrEqual, isEven, isInteger, isMultipleOf, isNegative, isNotZero, isOdd, isPositive, isSafe, isStrictNegative, isStrictPositive, lessThan, lessThanOrEqual, max, maxOf, min, minOf, number_exports, sort, sum };
@@ -1,7 +1,7 @@
1
1
  import { ComputeLessThanCompatibility, IsImpossibleToApplyLessThan, LessThan } from './constraints';
2
2
  import { RequireSimpleLiteral } from './types';
3
3
  import type * as DCommon from '../common';
4
- type LessThanOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThan<GenericValue, LessThan<GenericThreshold>> extends true ? never : ComputeLessThanCompatibility<GenericValue, LessThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult extends DCommon.CompatibilityConstraintResult<true> ? GenericValue : GenericValue & LessThan<GenericThreshold> : never : never;
4
+ type LessThanOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThan<GenericValue, LessThan<GenericThreshold>> extends true ? never : ComputeLessThanCompatibility<GenericValue, LessThan<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & LessThan<GenericThreshold> : never : never;
5
5
  type RequireApplyLessThan<GenericThreshold extends number> = RequireSimpleLiteral<GenericThreshold>;
6
6
  type RequireApplyLessThanBoolean<GenericThreshold extends number> = DCommon.IsEqual<GenericThreshold, number> extends true ? unknown : RequireApplyLessThan<GenericThreshold>;
7
7
  export declare function lessThan<GenericValue extends number, const GenericThreshold extends number>(threshold: GenericThreshold & RequireApplyLessThan<GenericThreshold>): (value: GenericValue) => value is LessThanOutput<GenericValue, GenericThreshold>;
@@ -1,7 +1,7 @@
1
1
  import { ComputeLessThanOrEqualCompatibility, IsImpossibleToApplyLessThanOrEqual, LessThanOrEqual } from './constraints';
2
2
  import { RequireSimpleLiteral } from './types';
3
3
  import type * as DCommon from '../common';
4
- type LessThanOrEqualOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThanOrEqual<GenericValue, LessThanOrEqual<GenericThreshold>> extends true ? never : ComputeLessThanOrEqualCompatibility<GenericValue, LessThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? InferredResult extends DCommon.CompatibilityConstraintResult<true> ? GenericValue : GenericValue & LessThanOrEqual<GenericThreshold> : never : never;
4
+ type LessThanOrEqualOutput<GenericValue extends number, GenericThreshold extends number> = GenericValue extends unknown ? IsImpossibleToApplyLessThanOrEqual<GenericValue, LessThanOrEqual<GenericThreshold>> extends true ? never : ComputeLessThanOrEqualCompatibility<GenericValue, LessThanOrEqual<GenericThreshold>, DCommon.CompatibilityConstraintResult<false, number, number>> extends infer InferredResult ? DCommon.ContainExtends<InferredResult, DCommon.CompatibilityConstraintResult<true>> extends true ? GenericValue : GenericValue & LessThanOrEqual<GenericThreshold> : never : never;
5
5
  type RequireApplyLessThanOrEqual<GenericThreshold extends number> = RequireSimpleLiteral<GenericThreshold>;
6
6
  type RequireApplyLessThanOrEqualBoolean<GenericThreshold extends number> = DCommon.IsEqual<GenericThreshold, number> extends true ? unknown : RequireApplyLessThanOrEqual<GenericThreshold>;
7
7
  export declare function lessThanOrEqual<GenericValue extends number, const GenericThreshold extends number>(threshold: GenericThreshold & RequireApplyLessThanOrEqual<GenericThreshold>): (value: GenericValue) => value is LessThanOrEqualOutput<GenericValue, GenericThreshold>;
@@ -1,6 +1,6 @@
1
1
  import type * as DArray from '../array';
2
2
  import type * as DCommon from '../common';
3
- type SortOutput<GenericArray extends readonly number[]> = DArray.ReapplyCompatiblesConstraints<GenericArray, readonly GenericArray[number][]>;
3
+ type SortOutput<GenericArray extends readonly number[]> = GenericArray extends unknown ? DArray.ReapplyCompatiblesConstraints<GenericArray, readonly GenericArray[number][]> : never;
4
4
  export declare function sort<GenericArray extends readonly number[]>(type: DCommon.SortType): (array: GenericArray) => SortOutput<GenericArray>;
5
5
  export declare function sort<GenericArray extends readonly number[]>(array: GenericArray, type: DCommon.SortType): SortOutput<GenericArray>;
6
6
  export {};
@@ -25,13 +25,13 @@ type CheckIsGreater<GreaterSplitValue extends DCommon.AnyTuple<DString.Digit>, G
25
25
  infer InferredRestSplitValue extends DCommon.AnyTuple<DString.Digit>,
26
26
  infer InferredRestSplitReference extends DCommon.AnyTuple<FigureGreaterThanTableValue>
27
27
  ] ? CheckIsGreater<InferredRestSplitValue, InferredRestSplitReference> : never : false;
28
- type toStringDecimal<GenericValue extends number> = `${GenericValue}` extends `${DString.Number}.${DString.Number}` ? `${GenericValue}` : `${GenericValue}.0`;
28
+ type toStringDecimal<GenericValue extends number> = `${GenericValue}` extends `${DString.NumberInString}.${DString.NumberInString}` ? `${GenericValue}` : `${GenericValue}.0`;
29
29
  type PrepareValues<GenericValue extends number, GenericReference extends number> = readonly [
30
30
  toStringDecimal<GenericValue>,
31
31
  toStringDecimal<GenericReference>
32
32
  ] extends readonly [
33
- `${infer InferredValueInteger extends DString.Number}.${infer InferredValueDecimals extends DString.Number}`,
34
- `${infer InferredReferenceInteger extends DString.Number}.${infer InferredReferenceDecimals extends DString.Number}`
33
+ `${infer InferredValueInteger extends DString.NumberInString}.${infer InferredValueDecimals extends DString.NumberInString}`,
34
+ `${infer InferredReferenceInteger extends DString.NumberInString}.${infer InferredReferenceDecimals extends DString.NumberInString}`
35
35
  ] ? DCommon.And<[
36
36
  DCommon.IsEqual<InferredValueDecimals, "0">,
37
37
  DCommon.IsEqual<InferredReferenceDecimals, "0">
@@ -52,8 +52,8 @@ type PrepareValues<GenericValue extends number, GenericReference extends number>
52
52
  `${infer InferredResultReference}`
53
53
  ] ? readonly [`${InferredResultValue}`, `${InferredResultReference}`] : never : never : readonly [InferredValueInteger, InferredReferenceInteger] : never;
54
54
  type ComputeIsGreater<GenericValue extends number, GenericReference extends number> = PrepareValues<GenericValue, GenericReference> extends readonly [
55
- infer InferredValue extends DString.Number,
56
- infer InferredReference extends DString.Number
55
+ infer InferredValue extends DString.NumberInString,
56
+ infer InferredReference extends DString.NumberInString
57
57
  ] ? DCommon.And<[
58
58
  DString.Includes<InferredValue, "-">,
59
59
  DCommon.Not<DString.Includes<InferredReference, "-">>
@@ -1,4 +1,4 @@
1
- import { AssignObjects } from './types';
1
+ import { Assign } from './types';
2
2
  import type * as DCommon from '../common';
3
- export declare function assign<GenericObject extends object, GenericValue extends Partial<Record<keyof GenericObject, unknown>> & DCommon.AnyObject>(value: GenericValue): (object: GenericObject) => AssignObjects<GenericObject, GenericValue>;
4
- export declare function assign<GenericObject extends object, GenericValue extends Partial<Record<keyof GenericObject, unknown>> & DCommon.AnyObject>(object: GenericObject, value: GenericValue): AssignObjects<GenericObject, GenericValue>;
3
+ export declare function assign<GenericObject extends object, GenericValue extends Partial<Record<keyof GenericObject, unknown>> & DCommon.AnyObject>(value: GenericValue): (object: GenericObject) => Assign<GenericObject, GenericValue>;
4
+ export declare function assign<GenericObject extends object, GenericValue extends Partial<Record<keyof GenericObject, unknown>> & DCommon.AnyObject>(object: GenericObject, value: GenericValue): Assign<GenericObject, GenericValue>;
@@ -0,0 +1,2 @@
1
+ import type * as DCommon from '../../common';
2
+ export type Assign<GenericFirstObject extends object, GenericSecondObject extends object> = DCommon.SimplifyTopLevel<Omit<GenericFirstObject, keyof GenericSecondObject> & GenericSecondObject>;
@@ -0,0 +1,3 @@
1
+ import { GetPropsWithValueExtends } from './getPropsWithValueExtends';
2
+ import type * as DCommon from '../../common';
3
+ export type ForbiddenUndefinedProps<GenericObject extends object> = DCommon.IsNever<GetPropsWithValueExtends<GenericObject, undefined>> extends true ? unknown : DCommon.ComputedTypeError<"Having \"undefined\" values for properties is not allowed.">;
@@ -1,13 +1,15 @@
1
- export type * from './assignObjects';
2
- export type * from './everyCombination';
1
+ export type * from './assign';
3
2
  export type * from './deepPartial';
4
3
  export type * from './deepReadonly';
5
4
  export type * from './deepRemoveReadonly';
6
5
  export type * from './deepRequired';
6
+ export type * from './everyCombination';
7
7
  export type * from './flatObject';
8
8
  export type * from './forbiddenKey';
9
+ export type * from './forbiddenUndefinedProps';
9
10
  export type * from './getPropsWithValue';
10
11
  export type * from './getPropsWithValueExtends';
12
+ export type * from './override';
11
13
  export type * from './partialKeys';
12
14
  export type * from './requireAtLeastOne';
13
15
  export type * from './requiredKeys';
@@ -0,0 +1,4 @@
1
+ import type * as DCommon from '../../common';
2
+ export type Override<GenericInput extends object, GenericNewValue extends Partial<GenericInput>> = DCommon.SimplifyTopLevel<{
3
+ [Prop in keyof GenericInput]: Prop extends keyof GenericNewValue ? GenericNewValue[Prop] extends infer InferredNewValue ? InferredNewValue extends undefined ? GenericInput[Prop] : InferredNewValue : never : GenericInput[Prop];
4
+ }>;
@@ -2,12 +2,12 @@ import type * as DCommon from '../../common';
2
2
  type CreateShape<GenericResult extends unknown, GenericProp extends keyof any> = GenericResult extends any ? {
3
3
  [RemapProp in GenericProp]: GenericResult;
4
4
  } : never;
5
- export type Split<GenericValue extends unknown, GenericMax extends number = 10, GenericAccumulator extends readonly never[] = readonly []> = GenericValue extends object ? GenericAccumulator["length"] extends GenericMax ? GenericValue : {
5
+ export type Split<GenericValue extends unknown, GenericMax extends number = 10, GenericAccumulator extends readonly never[] = readonly []> = GenericValue extends unknown ? DCommon.IsObject<GenericValue> extends true ? GenericAccumulator["length"] extends GenericMax ? GenericValue : {
6
6
  [Prop in keyof GenericValue]: DCommon.NeverCoalescing<CreateShape<Split<GenericValue[Prop], GenericMax, [
7
7
  ...GenericAccumulator,
8
8
  never
9
9
  ]>, Prop>, {
10
10
  [RemapProp in Prop]: never;
11
11
  }>;
12
- }[keyof GenericValue] : GenericValue;
12
+ }[keyof GenericValue] : GenericValue : never;
13
13
  export {};