@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
@@ -1,21 +1,35 @@
1
+ import { parentClass } from "../../kind/parentClass.mjs";
1
2
  import { callThen } from "../../common/callThen.mjs";
2
3
  import { left } from "../../either/left/create.mjs";
4
+ import { isLeft } from "../../either/left/is.mjs";
3
5
  import { right } from "../../either/right/create.mjs";
6
+ import { unwrapLeft } from "../../either/left/unwrap.mjs";
7
+ import { unwrapRight } from "../../either/right/unwrap.mjs";
4
8
  import { justExec } from "../../common/justExec.mjs";
5
9
  import { ErrorSymbol, SuccessSymbol } from "../../dataStructure/common/resultSymbol.mjs";
6
- import { createGetErrorHandler } from "../../dataStructure/common/error.mjs";
10
+ import { createGetErrorHandler } from "../../dataStructure/common/error/base.mjs";
7
11
  import { createStructure } from "../../dataStructure/structure/base.mjs";
8
12
  import { createKind } from "../kind.mjs";
9
13
  //#region scripts/modeling/newType/base.ts
10
14
  const newTypeStructureKind = createKind("new-type-structure");
15
+ var EncodeNewTypeError = class extends parentClass(createKind("encode-new-type-error"), Error) {
16
+ error;
17
+ constructor(error) {
18
+ super(void 0, "An error occurred while encoding a NewType. This can only happen if you are bypassing the type system.");
19
+ this.error = error;
20
+ }
21
+ };
22
+ function executeNewTypeConstraints(structure, data, errorHandler) {
23
+ return structure.definition.newTypeConstraints.reduce((accumulator, constraint) => callThen(accumulator, (result) => result === ErrorSymbol ? ErrorSymbol : callThen(constraint.executeCheck(data), (constraintResult) => constraintResult === ErrorSymbol ? errorHandler?.().addIssue(structure, data, constraint) ?? ErrorSymbol : SuccessSymbol)), SuccessSymbol);
24
+ }
11
25
  const NewTypeStructure = createStructure(newTypeStructureKind, ({ init }) => (name, structure, newTypeConstraints) => init({
12
26
  constraints: [],
13
27
  newTypeConstraints,
14
28
  inner: structure
15
29
  }, {
16
- executeCheck: (self, data, errorHandler) => callThen(self.definition.inner.executeCheck(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : self.definition.newTypeConstraints.reduce((accumulator, constraint) => callThen(accumulator, (result) => result === ErrorSymbol ? ErrorSymbol : constraint.executeCheck(data, errorHandler)), SuccessSymbol)),
17
- executeEncode: (self, codec, data, errorHandler) => callThen(self.definition.inner.executeEncode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === ErrorSymbol ? ErrorSymbol : callThen(self.definition.newTypeConstraints.reduce((accumulator, constraint) => callThen(accumulator, (result) => result === ErrorSymbol ? ErrorSymbol : constraint.executeCheck(data, errorHandler)), SuccessSymbol), (result) => result === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedInnerResult))),
18
- executeDecode: (self, codec, data, errorHandler) => callThen(self.definition.inner.executeDecode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === ErrorSymbol ? ErrorSymbol : callThen(self.definition.newTypeConstraints.reduce((accumulator, constraint) => callThen(accumulator, (result) => result === ErrorSymbol ? ErrorSymbol : constraint.executeCheck(awaitedInnerResult, errorHandler)), SuccessSymbol), (result) => result === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedInnerResult, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedInnerResult))),
30
+ executeCheck: (self, data, errorHandler) => callThen(self.definition.inner.executeCheck(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : executeNewTypeConstraints(self, data, errorHandler)),
31
+ executeEncode: (self, codec, data, errorHandler) => callThen(self.definition.inner.executeEncode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === ErrorSymbol ? ErrorSymbol : callThen(executeNewTypeConstraints(self, data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedInnerResult))),
32
+ executeDecode: (self, codec, data, errorHandler) => callThen(self.definition.inner.executeDecode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === ErrorSymbol ? ErrorSymbol : callThen(executeNewTypeConstraints(self, awaitedInnerResult, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : callThen(self.executeConstraints(awaitedInnerResult, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : awaitedInnerResult))),
19
33
  isAsynchronous: (self) => self.definition.inner.isAsynchronous() || self.definition.newTypeConstraints.some((value) => value.isAsynchronous())
20
34
  }, {
21
35
  name,
@@ -51,11 +65,16 @@ const NewTypeStructure = createStructure(newTypeStructureKind, ({ init }) => (na
51
65
  return right("map-success", result);
52
66
  });
53
67
  },
54
- asyncMap: (self, data) => justExec(async () => {
68
+ asyncMap: async (self, data) => {
55
69
  const errorHandler = createGetErrorHandler();
56
70
  if (await self.executeCheck(data, errorHandler) === ErrorSymbol) return left("map-error", errorHandler().createError());
57
71
  return right("map-success", data);
58
- })
72
+ },
73
+ encodeNewType: async (self, codec, data) => {
74
+ const result = await self.asyncEncode(codec, data);
75
+ if (isLeft(result)) throw new EncodeNewTypeError(unwrapLeft(result));
76
+ return unwrapRight(result);
77
+ }
59
78
  }));
60
79
  //#endregion
61
- export { NewTypeStructure, newTypeStructureKind };
80
+ export { EncodeNewTypeError, NewTypeStructure, newTypeStructureKind };
@@ -1,7 +1,7 @@
1
1
  const require_base = require("./base.cjs");
2
2
  //#region scripts/modeling/newType/helper.ts
3
- function createNewEntity(name, structure, newTypeConstraints = []) {
3
+ function createNewType(name, structure, newTypeConstraints = []) {
4
4
  return require_base.NewTypeStructure(name, structure, newTypeConstraints);
5
5
  }
6
6
  //#endregion
7
- exports.createNewEntity = createNewEntity;
7
+ exports.createNewType = createNewType;
@@ -2,4 +2,4 @@ import { NewType, NewTypeStructure } from './base';
2
2
  import type * as DCommon from '../../common';
3
3
  import type * as DDataStructure from '../../dataStructure';
4
4
  export type ForbiddenTopLevelNewType<GenericValue extends unknown> = GenericValue extends NewType ? DCommon.ComputedTypeError<"NewType on top level of NewType declaration is forbidden."> : never;
5
- export declare function createNewEntity<GenericName extends Capitalize<string>, GenericStructure extends DDataStructure.Structure, const GenericNewTypeConstraint extends readonly DDataStructure.Constraint<DDataStructure.StructureValue<GenericStructure>>[] = readonly []>(name: (GenericName & DCommon.NeverCoalescing<ForbiddenTopLevelNewType<DDataStructure.StructureValue<GenericStructure>>, unknown>), structure: GenericStructure, newTypeConstraints?: GenericNewTypeConstraint): NewTypeStructure<GenericName & DCommon.NeverCoalescing<ForbiddenTopLevelNewType<DDataStructure.StructureValue<GenericStructure>>, unknown>, DDataStructure.StructureValue<GenericStructure>, GenericNewTypeConstraint>;
5
+ export declare function createNewType<GenericName extends Capitalize<string>, GenericStructure extends DDataStructure.Structure, const GenericNewTypeConstraint extends readonly DDataStructure.Constraint<DDataStructure.StructureValue<GenericStructure>>[] = readonly []>(name: (GenericName & DCommon.NeverCoalescing<ForbiddenTopLevelNewType<DDataStructure.StructureValue<GenericStructure>>, unknown>), structure: GenericStructure, newTypeConstraints?: GenericNewTypeConstraint): NewTypeStructure<GenericName & DCommon.NeverCoalescing<ForbiddenTopLevelNewType<DDataStructure.StructureValue<GenericStructure>>, unknown>, DDataStructure.StructureValue<GenericStructure>, GenericNewTypeConstraint>;
@@ -1,7 +1,7 @@
1
1
  import { NewTypeStructure } from "./base.mjs";
2
2
  //#region scripts/modeling/newType/helper.ts
3
- function createNewEntity(name, structure, newTypeConstraints = []) {
3
+ function createNewType(name, structure, newTypeConstraints = []) {
4
4
  return NewTypeStructure(name, structure, newTypeConstraints);
5
5
  }
6
6
  //#endregion
7
- export { createNewEntity };
7
+ export { createNewType };
@@ -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 {};