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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (561) hide show
  1. package/dist/array/at/default.d.ts +1 -1
  2. package/dist/array/chunk.d.ts +3 -2
  3. package/dist/array/concat.d.ts +1 -1
  4. package/dist/array/copyWithin.d.ts +1 -1
  5. package/dist/array/fill/all.d.ts +1 -1
  6. package/dist/array/fill/default.d.ts +3 -3
  7. package/dist/array/filter.d.ts +1 -1
  8. package/dist/array/findAndReplace.d.ts +1 -1
  9. package/dist/array/findAndSplice/delete.d.ts +1 -1
  10. package/dist/array/findAndSplice/insert.d.ts +1 -1
  11. package/dist/array/index.cjs +0 -3
  12. package/dist/array/index.d.ts +0 -1
  13. package/dist/array/index.mjs +1 -3
  14. package/dist/array/insert.d.ts +3 -3
  15. package/dist/array/length.d.ts +1 -1
  16. package/dist/array/lengthEqual.d.ts +1 -1
  17. package/dist/array/map.d.ts +1 -1
  18. package/dist/array/maxElements.d.ts +1 -1
  19. package/dist/array/minElements.d.ts +1 -1
  20. package/dist/array/pop.d.ts +1 -1
  21. package/dist/array/prepend.d.ts +1 -1
  22. package/dist/array/push.d.ts +3 -3
  23. package/dist/array/reverse.d.ts +1 -1
  24. package/dist/array/shift.d.ts +1 -1
  25. package/dist/array/sort.d.ts +1 -1
  26. package/dist/array/splice/delete.d.ts +1 -1
  27. package/dist/array/splice/insert.d.ts +1 -1
  28. package/dist/array/unshift.d.ts +3 -3
  29. package/dist/chrono/createDate.cjs +9 -9
  30. package/dist/chrono/createDate.d.ts +3 -3
  31. package/dist/chrono/createDate.mjs +9 -9
  32. package/dist/chrono/createTime.cjs +24 -13
  33. package/dist/chrono/createTime.mjs +24 -13
  34. package/dist/chrono/theDate.cjs +15 -16
  35. package/dist/chrono/theDate.d.ts +15 -15
  36. package/dist/chrono/theDate.mjs +15 -16
  37. package/dist/chrono/theTime.cjs +0 -1
  38. package/dist/chrono/theTime.mjs +0 -1
  39. package/dist/chrono/types/spoolingTime.d.ts +2 -1
  40. package/dist/common/constraint/cast/index.d.ts +3 -3
  41. package/dist/common/constraint/cast/number.d.ts +15 -0
  42. package/dist/common/constraint/cast/string.d.ts +21 -0
  43. package/dist/common/constraint/index.d.ts +2 -0
  44. package/dist/common/constraint/infer/array.d.ts +7 -0
  45. package/dist/{array/infer.cjs → common/constraint/infer/index.cjs} +1 -1
  46. package/dist/common/constraint/infer/index.d.ts +26 -0
  47. package/dist/{string/infer.mjs → common/constraint/infer/index.mjs} +1 -1
  48. package/dist/common/constraint/infer/number.d.ts +11 -0
  49. package/dist/common/constraint/infer/string.d.ts +13 -0
  50. package/dist/common/constraint/remove.cjs +6 -0
  51. package/dist/common/constraint/remove.d.ts +2 -0
  52. package/dist/common/constraint/remove.mjs +6 -0
  53. package/dist/common/index.cjs +6 -0
  54. package/dist/common/index.mjs +5 -1
  55. package/dist/common/isType.d.ts +3 -2
  56. package/dist/common/types/forward.d.ts +1 -0
  57. package/dist/common/types/index.d.ts +3 -0
  58. package/dist/common/types/isObject.d.ts +8 -0
  59. package/dist/common/types/json.d.ts +1 -1
  60. package/dist/common/types/splitPromise.d.ts +1 -0
  61. package/dist/dataStructure/common/codec/base.cjs +29 -0
  62. package/dist/dataStructure/common/{codec.d.ts → codec/base.d.ts} +8 -8
  63. package/dist/dataStructure/common/codec/base.mjs +26 -0
  64. package/dist/dataStructure/common/codec/defaults/index.d.ts +2 -0
  65. package/dist/dataStructure/common/codec/defaults/json.cjs +26 -0
  66. package/dist/dataStructure/common/codec/defaults/json.d.ts +6 -0
  67. package/dist/dataStructure/common/codec/defaults/json.mjs +26 -0
  68. package/dist/dataStructure/common/codec/defaults/string.cjs +44 -0
  69. package/dist/dataStructure/common/codec/defaults/string.d.ts +11 -0
  70. package/dist/dataStructure/common/codec/defaults/string.mjs +44 -0
  71. package/dist/dataStructure/common/codec/index.d.ts +2 -0
  72. package/dist/dataStructure/common/error/base.cjs +73 -0
  73. package/dist/dataStructure/common/error/base.d.ts +50 -0
  74. package/dist/dataStructure/common/error/base.mjs +69 -0
  75. package/dist/dataStructure/common/error/defaultInterpreter.cjs +87 -0
  76. package/dist/dataStructure/common/error/defaultInterpreter.d.ts +60 -0
  77. package/dist/dataStructure/common/error/defaultInterpreter.mjs +86 -0
  78. package/dist/dataStructure/common/error/index.d.ts +3 -0
  79. package/dist/dataStructure/common/error/interpreter.cjs +44 -0
  80. package/dist/dataStructure/common/error/interpreter.d.ts +32 -0
  81. package/dist/dataStructure/common/error/interpreter.mjs +44 -0
  82. package/dist/dataStructure/constraint/base.cjs +34 -5
  83. package/dist/dataStructure/constraint/base.d.ts +13 -4
  84. package/dist/dataStructure/constraint/base.mjs +34 -6
  85. package/dist/dataStructure/constraint/defaults/absolutePath.cjs +13 -0
  86. package/dist/dataStructure/constraint/defaults/absolutePath.d.ts +10 -0
  87. package/dist/dataStructure/constraint/defaults/absolutePath.mjs +12 -0
  88. package/dist/dataStructure/constraint/defaults/allowedCharacters.cjs +1 -1
  89. package/dist/dataStructure/constraint/defaults/allowedCharacters.d.ts +1 -3
  90. package/dist/dataStructure/constraint/defaults/allowedCharacters.mjs +1 -1
  91. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.cjs +1 -1
  92. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.d.ts +1 -1
  93. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.mjs +1 -1
  94. package/dist/dataStructure/constraint/defaults/betweenThan.cjs +1 -1
  95. package/dist/dataStructure/constraint/defaults/betweenThan.d.ts +1 -1
  96. package/dist/dataStructure/constraint/defaults/betweenThan.mjs +1 -1
  97. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.cjs +1 -1
  98. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.d.ts +1 -1
  99. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.mjs +1 -1
  100. package/dist/dataStructure/constraint/defaults/email.cjs +1 -1
  101. package/dist/dataStructure/constraint/defaults/email.d.ts +1 -1
  102. package/dist/dataStructure/constraint/defaults/email.mjs +1 -1
  103. package/dist/dataStructure/constraint/defaults/even.cjs +1 -1
  104. package/dist/dataStructure/constraint/defaults/even.d.ts +1 -1
  105. package/dist/dataStructure/constraint/defaults/even.mjs +1 -1
  106. package/dist/dataStructure/constraint/defaults/greaterThan.cjs +1 -1
  107. package/dist/dataStructure/constraint/defaults/greaterThan.d.ts +1 -1
  108. package/dist/dataStructure/constraint/defaults/greaterThan.mjs +1 -1
  109. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.cjs +1 -1
  110. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.d.ts +1 -1
  111. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.mjs +1 -1
  112. package/dist/dataStructure/constraint/defaults/index.d.ts +6 -0
  113. package/dist/dataStructure/constraint/defaults/integer.cjs +1 -1
  114. package/dist/dataStructure/constraint/defaults/integer.d.ts +1 -1
  115. package/dist/dataStructure/constraint/defaults/integer.mjs +1 -1
  116. package/dist/dataStructure/constraint/defaults/lessThan.cjs +1 -1
  117. package/dist/dataStructure/constraint/defaults/lessThan.d.ts +1 -1
  118. package/dist/dataStructure/constraint/defaults/lessThan.mjs +1 -1
  119. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.cjs +1 -1
  120. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.d.ts +1 -1
  121. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.mjs +1 -1
  122. package/dist/dataStructure/constraint/defaults/maxCharacters.cjs +1 -1
  123. package/dist/dataStructure/constraint/defaults/maxCharacters.d.ts +1 -1
  124. package/dist/dataStructure/constraint/defaults/maxCharacters.mjs +1 -1
  125. package/dist/dataStructure/constraint/defaults/maxElements.cjs +1 -1
  126. package/dist/dataStructure/constraint/defaults/maxElements.d.ts +1 -1
  127. package/dist/dataStructure/constraint/defaults/maxElements.mjs +1 -1
  128. package/dist/dataStructure/constraint/defaults/minCharacters.cjs +4 -4
  129. package/dist/dataStructure/constraint/defaults/minCharacters.d.ts +2 -2
  130. package/dist/dataStructure/constraint/defaults/minCharacters.mjs +4 -4
  131. package/dist/dataStructure/constraint/defaults/minElements.cjs +1 -1
  132. package/dist/dataStructure/constraint/defaults/minElements.d.ts +1 -1
  133. package/dist/dataStructure/constraint/defaults/minElements.mjs +1 -1
  134. package/dist/dataStructure/constraint/defaults/multipleOf.cjs +1 -1
  135. package/dist/dataStructure/constraint/defaults/multipleOf.d.ts +1 -1
  136. package/dist/dataStructure/constraint/defaults/multipleOf.mjs +1 -1
  137. package/dist/dataStructure/constraint/defaults/negative.cjs +1 -1
  138. package/dist/dataStructure/constraint/defaults/negative.d.ts +1 -1
  139. package/dist/dataStructure/constraint/defaults/negative.mjs +1 -1
  140. package/dist/dataStructure/constraint/defaults/notEmpty.cjs +1 -1
  141. package/dist/dataStructure/constraint/defaults/notEmpty.d.ts +1 -1
  142. package/dist/dataStructure/constraint/defaults/notEmpty.mjs +1 -1
  143. package/dist/dataStructure/constraint/defaults/notZero.cjs +1 -1
  144. package/dist/dataStructure/constraint/defaults/notZero.d.ts +1 -1
  145. package/dist/dataStructure/constraint/defaults/notZero.mjs +1 -1
  146. package/dist/dataStructure/constraint/defaults/numberInString.cjs +13 -0
  147. package/dist/dataStructure/constraint/defaults/numberInString.d.ts +10 -0
  148. package/dist/dataStructure/constraint/defaults/numberInString.mjs +12 -0
  149. package/dist/dataStructure/constraint/defaults/odd.cjs +1 -1
  150. package/dist/dataStructure/constraint/defaults/odd.d.ts +1 -1
  151. package/dist/dataStructure/constraint/defaults/odd.mjs +1 -1
  152. package/dist/dataStructure/constraint/defaults/path.cjs +13 -0
  153. package/dist/dataStructure/constraint/defaults/path.d.ts +10 -0
  154. package/dist/dataStructure/constraint/defaults/path.mjs +12 -0
  155. package/dist/dataStructure/constraint/defaults/positive.cjs +1 -1
  156. package/dist/dataStructure/constraint/defaults/positive.d.ts +1 -1
  157. package/dist/dataStructure/constraint/defaults/positive.mjs +1 -1
  158. package/dist/dataStructure/constraint/defaults/refine.cjs +1 -1
  159. package/dist/dataStructure/constraint/defaults/refine.d.ts +1 -1
  160. package/dist/dataStructure/constraint/defaults/refine.mjs +1 -1
  161. package/dist/dataStructure/constraint/defaults/regex.cjs +13 -0
  162. package/dist/dataStructure/constraint/defaults/regex.d.ts +10 -0
  163. package/dist/dataStructure/constraint/defaults/regex.mjs +12 -0
  164. package/dist/dataStructure/constraint/defaults/safe.cjs +1 -1
  165. package/dist/dataStructure/constraint/defaults/safe.d.ts +1 -1
  166. package/dist/dataStructure/constraint/defaults/safe.mjs +1 -1
  167. package/dist/dataStructure/constraint/defaults/segmentPath.cjs +13 -0
  168. package/dist/dataStructure/constraint/defaults/segmentPath.d.ts +10 -0
  169. package/dist/dataStructure/constraint/defaults/segmentPath.mjs +12 -0
  170. package/dist/dataStructure/constraint/defaults/strictNegative.cjs +1 -1
  171. package/dist/dataStructure/constraint/defaults/strictNegative.d.ts +1 -1
  172. package/dist/dataStructure/constraint/defaults/strictNegative.mjs +1 -1
  173. package/dist/dataStructure/constraint/defaults/strictPositive.cjs +1 -1
  174. package/dist/dataStructure/constraint/defaults/strictPositive.d.ts +1 -1
  175. package/dist/dataStructure/constraint/defaults/strictPositive.mjs +1 -1
  176. package/dist/dataStructure/constraint/defaults/stringLengthEqual.cjs +1 -1
  177. package/dist/dataStructure/constraint/defaults/stringLengthEqual.d.ts +1 -1
  178. package/dist/dataStructure/constraint/defaults/stringLengthEqual.mjs +1 -1
  179. package/dist/dataStructure/constraint/defaults/trimmed.cjs +13 -0
  180. package/dist/dataStructure/constraint/defaults/trimmed.d.ts +10 -0
  181. package/dist/dataStructure/constraint/defaults/trimmed.mjs +12 -0
  182. package/dist/dataStructure/constraint/defaults/url.cjs +2 -2
  183. package/dist/dataStructure/constraint/defaults/url.d.ts +2 -3
  184. package/dist/dataStructure/constraint/defaults/url.mjs +2 -2
  185. package/dist/dataStructure/constraint/defaults/uuid.cjs +2 -4
  186. package/dist/dataStructure/constraint/defaults/uuid.d.ts +1 -3
  187. package/dist/dataStructure/constraint/defaults/uuid.mjs +4 -5
  188. package/dist/dataStructure/constraint/identifier.d.ts +3 -4
  189. package/dist/dataStructure/constraint/types/constraints.d.ts +22 -15
  190. package/dist/dataStructure/fundamentalType/base.cjs +3 -3
  191. package/dist/dataStructure/fundamentalType/base.d.ts +4 -5
  192. package/dist/dataStructure/fundamentalType/base.mjs +3 -3
  193. package/dist/dataStructure/fundamentalType/defaults/bigint.cjs +4 -2
  194. package/dist/dataStructure/fundamentalType/defaults/bigint.d.ts +4 -4
  195. package/dist/dataStructure/fundamentalType/defaults/bigint.mjs +5 -2
  196. package/dist/dataStructure/fundamentalType/defaults/boolean.cjs +4 -2
  197. package/dist/dataStructure/fundamentalType/defaults/boolean.d.ts +4 -4
  198. package/dist/dataStructure/fundamentalType/defaults/boolean.mjs +5 -2
  199. package/dist/dataStructure/fundamentalType/defaults/date.cjs +4 -2
  200. package/dist/dataStructure/fundamentalType/defaults/date.d.ts +4 -4
  201. package/dist/dataStructure/fundamentalType/defaults/date.mjs +5 -2
  202. package/dist/dataStructure/fundamentalType/defaults/null.cjs +4 -2
  203. package/dist/dataStructure/fundamentalType/defaults/null.d.ts +4 -4
  204. package/dist/dataStructure/fundamentalType/defaults/null.mjs +5 -2
  205. package/dist/dataStructure/fundamentalType/defaults/number.cjs +4 -2
  206. package/dist/dataStructure/fundamentalType/defaults/number.d.ts +4 -4
  207. package/dist/dataStructure/fundamentalType/defaults/number.mjs +5 -2
  208. package/dist/dataStructure/fundamentalType/defaults/string.cjs +4 -2
  209. package/dist/dataStructure/fundamentalType/defaults/string.d.ts +4 -4
  210. package/dist/dataStructure/fundamentalType/defaults/string.mjs +5 -2
  211. package/dist/dataStructure/fundamentalType/defaults/time.cjs +4 -2
  212. package/dist/dataStructure/fundamentalType/defaults/time.d.ts +4 -4
  213. package/dist/dataStructure/fundamentalType/defaults/time.mjs +5 -2
  214. package/dist/dataStructure/fundamentalType/defaults/undefined.cjs +4 -2
  215. package/dist/dataStructure/fundamentalType/defaults/undefined.d.ts +4 -4
  216. package/dist/dataStructure/fundamentalType/defaults/undefined.mjs +5 -2
  217. package/dist/dataStructure/fundamentalType/identifier.d.ts +3 -4
  218. package/dist/dataStructure/helpers/absolutePath.cjs +7 -0
  219. package/dist/dataStructure/helpers/absolutePath.d.ts +2 -0
  220. package/dist/dataStructure/helpers/absolutePath.mjs +7 -0
  221. package/dist/dataStructure/helpers/array.d.ts +1 -1
  222. package/dist/dataStructure/helpers/bigint.d.ts +1 -1
  223. package/dist/dataStructure/helpers/boolean.d.ts +1 -1
  224. package/dist/dataStructure/helpers/date.d.ts +1 -1
  225. package/dist/dataStructure/helpers/extend.d.ts +1 -1
  226. package/dist/dataStructure/helpers/index.d.ts +10 -1
  227. package/dist/dataStructure/helpers/isNullable.cjs +12 -0
  228. package/dist/dataStructure/helpers/isNullable.d.ts +2 -0
  229. package/dist/dataStructure/helpers/isNullable.mjs +12 -0
  230. package/dist/dataStructure/helpers/isOptional.cjs +12 -0
  231. package/dist/dataStructure/helpers/isOptional.d.ts +2 -0
  232. package/dist/dataStructure/helpers/isOptional.mjs +12 -0
  233. package/dist/dataStructure/helpers/lazy.d.ts +1 -1
  234. package/dist/dataStructure/helpers/null.d.ts +1 -1
  235. package/dist/dataStructure/helpers/nullable.cjs +5 -2
  236. package/dist/dataStructure/helpers/nullable.mjs +5 -2
  237. package/dist/dataStructure/helpers/number.d.ts +1 -1
  238. package/dist/dataStructure/helpers/numberInString.cjs +7 -0
  239. package/dist/dataStructure/helpers/numberInString.d.ts +2 -0
  240. package/dist/dataStructure/helpers/numberInString.mjs +7 -0
  241. package/dist/dataStructure/helpers/object.d.ts +1 -1
  242. package/dist/dataStructure/helpers/optional.cjs +5 -2
  243. package/dist/dataStructure/helpers/optional.mjs +5 -2
  244. package/dist/dataStructure/helpers/partial.cjs +5 -2
  245. package/dist/dataStructure/helpers/partial.mjs +5 -2
  246. package/dist/dataStructure/helpers/path.cjs +7 -0
  247. package/dist/dataStructure/helpers/path.d.ts +2 -0
  248. package/dist/dataStructure/helpers/path.mjs +7 -0
  249. package/dist/dataStructure/helpers/record.d.ts +1 -1
  250. package/dist/dataStructure/helpers/regex.cjs +7 -0
  251. package/dist/dataStructure/helpers/regex.d.ts +2 -0
  252. package/dist/dataStructure/helpers/regex.mjs +7 -0
  253. package/dist/dataStructure/helpers/required.cjs +6 -3
  254. package/dist/dataStructure/helpers/required.d.ts +2 -1
  255. package/dist/dataStructure/helpers/required.mjs +6 -3
  256. package/dist/dataStructure/helpers/segmentPath.cjs +7 -0
  257. package/dist/dataStructure/helpers/segmentPath.d.ts +2 -0
  258. package/dist/dataStructure/helpers/segmentPath.mjs +7 -0
  259. package/dist/dataStructure/helpers/string.d.ts +1 -1
  260. package/dist/dataStructure/helpers/time.d.ts +1 -1
  261. package/dist/dataStructure/helpers/trimmed.cjs +7 -0
  262. package/dist/dataStructure/helpers/trimmed.d.ts +2 -0
  263. package/dist/dataStructure/helpers/trimmed.mjs +7 -0
  264. package/dist/dataStructure/helpers/undefined.d.ts +1 -1
  265. package/dist/dataStructure/helpers/union.d.ts +1 -1
  266. package/dist/dataStructure/helpers/unwrapLazy.cjs +9 -0
  267. package/dist/dataStructure/helpers/unwrapLazy.d.ts +2 -0
  268. package/dist/dataStructure/helpers/unwrapLazy.mjs +9 -0
  269. package/dist/dataStructure/helpers/url.cjs +2 -2
  270. package/dist/dataStructure/helpers/url.d.ts +1 -2
  271. package/dist/dataStructure/helpers/url.mjs +2 -2
  272. package/dist/dataStructure/index.cjs +158 -60
  273. package/dist/dataStructure/index.mjs +80 -21
  274. package/dist/dataStructure/structure/base.cjs +22 -12
  275. package/dist/dataStructure/structure/base.d.ts +8 -5
  276. package/dist/dataStructure/structure/base.mjs +16 -6
  277. package/dist/dataStructure/structure/defaults/array.d.ts +2 -2
  278. package/dist/dataStructure/structure/defaults/index.d.ts +1 -0
  279. package/dist/dataStructure/structure/defaults/lazy.cjs +10 -3
  280. package/dist/dataStructure/structure/defaults/lazy.d.ts +2 -2
  281. package/dist/dataStructure/structure/defaults/lazy.mjs +10 -3
  282. package/dist/dataStructure/structure/defaults/nonEncodableString.cjs +17 -0
  283. package/dist/dataStructure/structure/defaults/nonEncodableString.d.ts +10 -0
  284. package/dist/dataStructure/structure/defaults/nonEncodableString.mjs +16 -0
  285. package/dist/dataStructure/structure/defaults/object.d.ts +2 -2
  286. package/dist/dataStructure/structure/defaults/record.cjs +7 -7
  287. package/dist/dataStructure/structure/defaults/record.d.ts +3 -3
  288. package/dist/dataStructure/structure/defaults/record.mjs +7 -7
  289. package/dist/dataStructure/structure/defaults/type.cjs +1 -1
  290. package/dist/dataStructure/structure/defaults/type.d.ts +2 -2
  291. package/dist/dataStructure/structure/defaults/type.mjs +2 -2
  292. package/dist/dataStructure/structure/defaults/union.cjs +23 -17
  293. package/dist/dataStructure/structure/defaults/union.d.ts +3 -3
  294. package/dist/dataStructure/structure/defaults/union.mjs +21 -15
  295. package/dist/dataStructure/structure/identifier.d.ts +3 -4
  296. package/dist/dataStructure/structure/types/constraintsValue.d.ts +1 -1
  297. package/dist/dataStructure/structure/types/structures.d.ts +2 -1
  298. package/dist/dataStructure/structure/types/value.d.ts +1 -1
  299. package/dist/dataStructure/type/base.cjs +17 -4
  300. package/dist/dataStructure/type/base.d.ts +7 -3
  301. package/dist/dataStructure/type/base.mjs +17 -4
  302. package/dist/dataStructure/type/defaults/bigint.d.ts +1 -1
  303. package/dist/dataStructure/type/defaults/bigintLiteral.cjs +1 -1
  304. package/dist/dataStructure/type/defaults/bigintLiteral.d.ts +1 -1
  305. package/dist/dataStructure/type/defaults/bigintLiteral.mjs +1 -1
  306. package/dist/dataStructure/type/defaults/boolean.d.ts +1 -1
  307. package/dist/dataStructure/type/defaults/booleanLiteral.cjs +1 -1
  308. package/dist/dataStructure/type/defaults/booleanLiteral.d.ts +1 -1
  309. package/dist/dataStructure/type/defaults/booleanLiteral.mjs +1 -1
  310. package/dist/dataStructure/type/defaults/date.d.ts +1 -1
  311. package/dist/dataStructure/type/defaults/null.d.ts +1 -1
  312. package/dist/dataStructure/type/defaults/number.d.ts +1 -1
  313. package/dist/dataStructure/type/defaults/numberLiteral.cjs +1 -1
  314. package/dist/dataStructure/type/defaults/numberLiteral.d.ts +1 -1
  315. package/dist/dataStructure/type/defaults/numberLiteral.mjs +1 -1
  316. package/dist/dataStructure/type/defaults/string.d.ts +1 -1
  317. package/dist/dataStructure/type/defaults/stringLiteral.cjs +1 -1
  318. package/dist/dataStructure/type/defaults/stringLiteral.d.ts +1 -1
  319. package/dist/dataStructure/type/defaults/stringLiteral.mjs +1 -1
  320. package/dist/dataStructure/type/defaults/time.d.ts +1 -1
  321. package/dist/dataStructure/type/defaults/undefined.d.ts +1 -1
  322. package/dist/dataStructure/type/identifier.d.ts +3 -4
  323. package/dist/either/index.cjs +30 -8
  324. package/dist/either/index.d.ts +4 -0
  325. package/dist/either/index.mjs +23 -9
  326. package/dist/either/left/index.d.ts +3 -2
  327. package/dist/either/left/none.cjs +15 -0
  328. package/dist/either/left/none.d.ts +7 -0
  329. package/dist/either/left/none.mjs +14 -0
  330. package/dist/either/matchInformationOtherwise.d.ts +1 -1
  331. package/dist/either/rewriteInformation.cjs +22 -0
  332. package/dist/either/rewriteInformation.d.ts +14 -0
  333. package/dist/either/rewriteInformation.mjs +22 -0
  334. package/dist/either/right/asyncGroup.cjs +2 -2
  335. package/dist/either/right/asyncGroup.mjs +2 -2
  336. package/dist/either/right/group.cjs +1 -1
  337. package/dist/either/right/group.mjs +1 -1
  338. package/dist/either/right/index.d.ts +6 -5
  339. package/dist/either/right/some.cjs +15 -0
  340. package/dist/either/right/some.d.ts +7 -0
  341. package/dist/either/right/some.mjs +14 -0
  342. package/dist/either/toMaybe.cjs +12 -0
  343. package/dist/either/toMaybe.d.ts +5 -0
  344. package/dist/either/toMaybe.mjs +12 -0
  345. package/dist/either/types/mayBe.d.ts +3 -0
  346. package/dist/either/unwrapOr.cjs +14 -0
  347. package/dist/either/unwrapOr.d.ts +8 -0
  348. package/dist/either/unwrapOr.mjs +14 -0
  349. package/dist/either/unwrapOtherwise.cjs +14 -0
  350. package/dist/either/unwrapOtherwise.d.ts +8 -0
  351. package/dist/either/unwrapOtherwise.mjs +14 -0
  352. package/dist/generator/asyncChunk.d.ts +3 -2
  353. package/dist/generator/chunk.d.ts +3 -2
  354. package/dist/generator/reduce.cjs +2 -1
  355. package/dist/generator/reduce.mjs +1 -1
  356. package/dist/generator/types/flat.d.ts +2 -2
  357. package/dist/index.cjs +43 -39
  358. package/dist/index.mjs +4 -2
  359. package/dist/invocation/flow/base.d.ts +8 -3
  360. package/dist/invocation/flow/controller/base.d.ts +1 -0
  361. package/dist/invocation/flow/controller/defaults/aborter.cjs +38 -0
  362. package/dist/invocation/flow/controller/defaults/aborter.d.ts +17 -0
  363. package/dist/invocation/flow/controller/defaults/aborter.mjs +36 -0
  364. package/dist/invocation/flow/controller/defaults/debounce.d.ts +1 -1
  365. package/dist/invocation/flow/controller/defaults/filter.cjs +5 -3
  366. package/dist/invocation/flow/controller/defaults/filter.d.ts +1 -1
  367. package/dist/invocation/flow/controller/defaults/filter.mjs +5 -3
  368. package/dist/invocation/flow/controller/defaults/index.d.ts +1 -0
  369. package/dist/invocation/flow/controller/defaults/retry.d.ts +1 -1
  370. package/dist/invocation/flow/controller/defaults/throttling.d.ts +1 -1
  371. package/dist/invocation/flow/controller/defaults/timeout.d.ts +1 -1
  372. package/dist/invocation/index.cjs +15 -8
  373. package/dist/invocation/index.d.ts +1 -1
  374. package/dist/invocation/index.mjs +10 -6
  375. package/dist/invocation/reader.cjs +26 -0
  376. package/dist/invocation/reader.d.ts +28 -0
  377. package/dist/invocation/reader.mjs +25 -0
  378. package/dist/kind/createIdentifier.d.ts +8 -4
  379. package/dist/kind/types/getName.d.ts +2 -0
  380. package/dist/kind/types/getNamespaceName.d.ts +3 -0
  381. package/dist/kind/types/index.d.ts +2 -0
  382. package/dist/kind/types/remove.d.ts +2 -2
  383. package/dist/modeling/entity/base.cjs +38 -11
  384. package/dist/modeling/entity/base.d.ts +25 -10
  385. package/dist/modeling/entity/base.mjs +32 -6
  386. package/dist/modeling/entity/helper.d.ts +1 -1
  387. package/dist/modeling/entity/index.d.ts +0 -1
  388. package/dist/modeling/entity/namespace.cjs +2 -2
  389. package/dist/modeling/entity/namespace.d.ts +1 -1
  390. package/dist/modeling/entity/namespace.mjs +3 -3
  391. package/dist/modeling/flag/base.cjs +1 -5
  392. package/dist/modeling/flag/base.d.ts +6 -7
  393. package/dist/modeling/flag/base.mjs +1 -5
  394. package/dist/modeling/index.cjs +45 -28
  395. package/dist/modeling/index.d.ts +1 -0
  396. package/dist/modeling/index.mjs +18 -9
  397. package/dist/modeling/newType/base.cjs +34 -13
  398. package/dist/modeling/newType/base.d.ts +9 -2
  399. package/dist/modeling/newType/base.mjs +26 -7
  400. package/dist/modeling/newType/helper.cjs +2 -2
  401. package/dist/modeling/newType/helper.d.ts +1 -1
  402. package/dist/modeling/newType/helper.mjs +2 -2
  403. package/dist/modeling/taggedObject/base.cjs +113 -0
  404. package/dist/modeling/taggedObject/base.d.ts +61 -0
  405. package/dist/modeling/taggedObject/base.mjs +110 -0
  406. package/dist/modeling/taggedObject/helper.cjs +34 -0
  407. package/dist/modeling/taggedObject/helper.d.ts +15 -0
  408. package/dist/modeling/taggedObject/helper.mjs +31 -0
  409. package/dist/modeling/taggedObject/index.d.ts +2 -0
  410. package/dist/number/betweenThan.d.ts +2 -2
  411. package/dist/number/betweenThanOrEqual.d.ts +2 -2
  412. package/dist/number/greaterThan.d.ts +1 -1
  413. package/dist/number/greaterThanOrEqual.d.ts +1 -1
  414. package/dist/number/index.cjs +0 -3
  415. package/dist/number/index.d.ts +0 -1
  416. package/dist/number/index.mjs +1 -3
  417. package/dist/number/lessThan.d.ts +1 -1
  418. package/dist/number/lessThanOrEqual.d.ts +1 -1
  419. package/dist/number/sort.d.ts +1 -1
  420. package/dist/number/types/isGreater.d.ts +5 -5
  421. package/dist/object/assign.d.ts +3 -3
  422. package/dist/object/types/assign.d.ts +2 -0
  423. package/dist/object/types/forbiddenUndefinedProps.d.ts +3 -0
  424. package/dist/object/types/index.d.ts +4 -2
  425. package/dist/object/types/override.d.ts +4 -0
  426. package/dist/object/types/split.d.ts +2 -2
  427. package/dist/path/computeRelative.cjs +5 -6
  428. package/dist/path/computeRelative.d.ts +1 -1
  429. package/dist/path/computeRelative.mjs +5 -6
  430. package/dist/path/constraints/absolute.d.ts +1 -1
  431. package/dist/path/constraints/index.d.ts +2 -1
  432. package/dist/path/constraints/segment.d.ts +3 -0
  433. package/dist/path/getBaseName.cjs +7 -7
  434. package/dist/path/getBaseName.d.ts +2 -2
  435. package/dist/path/getBaseName.mjs +7 -7
  436. package/dist/path/getExtensionName.cjs +9 -4
  437. package/dist/path/getExtensionName.d.ts +2 -2
  438. package/dist/path/getExtensionName.mjs +9 -4
  439. package/dist/path/getParentFolderPath.cjs +9 -4
  440. package/dist/path/getParentFolderPath.d.ts +1 -2
  441. package/dist/path/getParentFolderPath.mjs +9 -4
  442. package/dist/path/index.cjs +6 -3
  443. package/dist/path/index.d.ts +3 -2
  444. package/dist/path/index.mjs +5 -3
  445. package/dist/path/is.cjs +9 -4
  446. package/dist/path/is.d.ts +4 -2
  447. package/dist/path/is.mjs +9 -4
  448. package/dist/path/isAbsolute.cjs +3 -5
  449. package/dist/path/isAbsolute.d.ts +4 -2
  450. package/dist/path/isAbsolute.mjs +3 -5
  451. package/dist/path/isSegment.cjs +6 -0
  452. package/dist/path/isSegment.d.ts +4 -0
  453. package/dist/path/isSegment.mjs +6 -0
  454. package/dist/path/normalize.cjs +18 -0
  455. package/dist/path/normalize.d.ts +2 -0
  456. package/dist/path/normalize.mjs +18 -0
  457. package/dist/path/resolveFrom.cjs +4 -5
  458. package/dist/path/resolveFrom.d.ts +10 -2
  459. package/dist/path/resolveFrom.mjs +4 -5
  460. package/dist/path/resolveRelative.cjs +17 -20
  461. package/dist/path/resolveRelative.d.ts +9 -2
  462. package/dist/path/resolveRelative.mjs +17 -20
  463. package/dist/path/types/index.d.ts +6 -0
  464. package/dist/path/types/isLiteralAbsolutePath.d.ts +2 -0
  465. package/dist/path/types/isLiteralPath.d.ts +20 -0
  466. package/dist/path/types/isLiteralSegmentPath.d.ts +9 -0
  467. package/dist/path/types/requireLiteralAbsolutePath.d.ts +3 -0
  468. package/dist/path/types/requireLiteralPath.d.ts +3 -0
  469. package/dist/path/types/requireLiteralSegmentPath.d.ts +3 -0
  470. package/dist/pattern/index.cjs +12 -0
  471. package/dist/pattern/index.d.ts +4 -0
  472. package/dist/pattern/index.mjs +9 -1
  473. package/dist/pattern/matchWithEntity.cjs +12 -0
  474. package/dist/pattern/matchWithEntity.d.ts +12 -0
  475. package/dist/pattern/matchWithEntity.mjs +12 -0
  476. package/dist/pattern/matchWithEntityOtherwise.cjs +13 -0
  477. package/dist/pattern/matchWithEntityOtherwise.d.ts +14 -0
  478. package/dist/pattern/matchWithEntityOtherwise.mjs +13 -0
  479. package/dist/pattern/matchWithNumber.d.ts +4 -4
  480. package/dist/pattern/matchWithNumberOtherwise.cjs +2 -6
  481. package/dist/pattern/matchWithNumberOtherwise.d.ts +4 -4
  482. package/dist/pattern/matchWithNumberOtherwise.mjs +2 -6
  483. package/dist/pattern/matchWithString.d.ts +4 -4
  484. package/dist/pattern/matchWithStringOtherwise.cjs +2 -6
  485. package/dist/pattern/matchWithStringOtherwise.d.ts +5 -5
  486. package/dist/pattern/matchWithStringOtherwise.mjs +2 -6
  487. package/dist/pattern/matchWithTaggedObject.cjs +12 -0
  488. package/dist/pattern/matchWithTaggedObject.d.ts +12 -0
  489. package/dist/pattern/matchWithTaggedObject.mjs +12 -0
  490. package/dist/pattern/matchWithTaggedObjectOtherwise.cjs +13 -0
  491. package/dist/pattern/matchWithTaggedObjectOtherwise.d.ts +14 -0
  492. package/dist/pattern/matchWithTaggedObjectOtherwise.mjs +13 -0
  493. package/dist/string/at.d.ts +2 -2
  494. package/dist/string/constraints/allowedCharacters.d.ts +3 -3
  495. package/dist/string/constraints/index.d.ts +2 -1
  496. package/dist/string/constraints/number.d.ts +4 -0
  497. package/dist/string/first.d.ts +1 -1
  498. package/dist/string/index.cjs +6 -3
  499. package/dist/string/index.d.ts +1 -1
  500. package/dist/string/index.mjs +5 -3
  501. package/dist/string/isComposedOf.cjs +0 -1
  502. package/dist/string/isComposedOf.d.ts +5 -8
  503. package/dist/string/isComposedOf.mjs +0 -1
  504. package/dist/string/isNumber.cjs +7 -0
  505. package/dist/string/isNumber.d.ts +5 -0
  506. package/dist/string/isNumber.mjs +7 -0
  507. package/dist/string/isUrl.cjs +2 -11
  508. package/dist/string/isUrl.d.ts +1 -5
  509. package/dist/string/isUrl.mjs +2 -11
  510. package/dist/string/last.d.ts +1 -1
  511. package/dist/string/lengthEqual.d.ts +1 -1
  512. package/dist/string/maxCharacters.d.ts +1 -1
  513. package/dist/string/minCharacters.d.ts +1 -1
  514. package/dist/string/padEnd.d.ts +1 -1
  515. package/dist/string/padStart.d.ts +1 -1
  516. package/dist/string/pop.d.ts +1 -1
  517. package/dist/string/shift.d.ts +1 -1
  518. package/dist/string/slice.d.ts +1 -1
  519. package/dist/string/substring.d.ts +1 -1
  520. package/dist/string/to.d.ts +9 -2
  521. package/dist/string/trim/default.d.ts +1 -1
  522. package/dist/string/trim/end.d.ts +1 -1
  523. package/dist/string/trim/index.d.ts +1 -0
  524. package/dist/string/trim/is.cjs +6 -0
  525. package/dist/string/trim/is.d.ts +2 -0
  526. package/dist/string/trim/is.mjs +6 -0
  527. package/dist/string/trim/start.d.ts +1 -1
  528. package/dist/string/types/IsAllowedString.d.ts +5 -0
  529. package/dist/string/types/index.d.ts +5 -5
  530. package/dist/string/types/numberInString.d.ts +1 -0
  531. package/dist/string/types/split.d.ts +1 -1
  532. package/dist/tuple/from.cjs +6 -0
  533. package/dist/tuple/from.d.ts +8 -0
  534. package/dist/tuple/from.mjs +6 -0
  535. package/dist/tuple/index.cjs +6 -1
  536. package/dist/tuple/index.d.ts +1 -0
  537. package/dist/tuple/index.mjs +6 -2
  538. package/package.json +2 -2
  539. package/dist/array/infer.d.ts +0 -14
  540. package/dist/array/infer.mjs +0 -6
  541. package/dist/dataStructure/common/codec.cjs +0 -28
  542. package/dist/dataStructure/common/codec.mjs +0 -25
  543. package/dist/dataStructure/common/error.cjs +0 -53
  544. package/dist/dataStructure/common/error.d.ts +0 -30
  545. package/dist/dataStructure/common/error.mjs +0 -52
  546. package/dist/invocation/useCase.cjs +0 -26
  547. package/dist/invocation/useCase.d.ts +0 -28
  548. package/dist/invocation/useCase.mjs +0 -25
  549. package/dist/modeling/entity/entityName.cjs +0 -13
  550. package/dist/modeling/entity/entityName.d.ts +0 -13
  551. package/dist/modeling/entity/entityName.mjs +0 -13
  552. package/dist/number/infer.cjs +0 -6
  553. package/dist/number/infer.d.ts +0 -12
  554. package/dist/number/infer.mjs +0 -6
  555. package/dist/object/types/assignObjects.d.ts +0 -2
  556. package/dist/path/fix.cjs +0 -8
  557. package/dist/path/fix.d.ts +0 -1
  558. package/dist/path/fix.mjs +0 -8
  559. package/dist/string/infer.cjs +0 -6
  560. package/dist/string/infer.d.ts +0 -12
  561. package/dist/string/types/number.d.ts +0 -1
@@ -1,21 +1,34 @@
1
+ import { parentClass } from "../../kind/parentClass.mjs";
1
2
  import { isSimple } from "../../object/isSimple.mjs";
3
+ import { override } from "../../object/override.mjs";
2
4
  import { left } from "../../either/left/create.mjs";
5
+ import { isLeft } from "../../either/left/is.mjs";
3
6
  import { right } from "../../either/right/create.mjs";
7
+ import { unwrapLeft } from "../../either/left/unwrap.mjs";
8
+ import { unwrapRight } from "../../either/right/unwrap.mjs";
4
9
  import { justExec } from "../../common/justExec.mjs";
5
10
  import { memo } from "../../common/memo.mjs";
6
11
  import { ErrorSymbol } from "../../dataStructure/common/resultSymbol.mjs";
7
- import { createGetErrorHandler } from "../../dataStructure/common/error.mjs";
12
+ import { createGetErrorHandler } from "../../dataStructure/common/error/base.mjs";
8
13
  import { createStructure } from "../../dataStructure/structure/base.mjs";
14
+ import { NonEncodableStringStructure } from "../../dataStructure/structure/defaults/nonEncodableString.mjs";
9
15
  import { ObjectStructure } from "../../dataStructure/structure/defaults/object.mjs";
10
16
  import { createKind } from "../kind.mjs";
11
- import { EntityNameStructure } from "./entityName.mjs";
17
+ import { objectTagKind } from "../taggedObject/base.mjs";
12
18
  //#region scripts/modeling/entity/base.ts
13
19
  const entityKind = createKind("entity");
14
20
  const entityStructureKind = createKind("entity-structure");
21
+ var EncodeEntityError = class extends parentClass(createKind("encode-entity-error"), Error) {
22
+ error;
23
+ constructor(error) {
24
+ super(void 0, "An error occurred while encoding an Entity. This can only happen if you are bypassing the type system.");
25
+ this.error = error;
26
+ }
27
+ };
15
28
  const EntityStructure = createStructure(entityStructureKind, ({ init }) => (name, shape) => init({
16
29
  inner: memo(() => ObjectStructure({
17
30
  ...shape(),
18
- [entityKind.runTimeKey]: EntityNameStructure(name)
31
+ [entityKind.runTimeKey]: NonEncodableStringStructure(name)
19
32
  }, [])),
20
33
  constraints: []
21
34
  }, {
@@ -71,7 +84,7 @@ const EntityStructure = createStructure(entityStructureKind, ({ init }) => (name
71
84
  return right("map-success", result);
72
85
  });
73
86
  },
74
- asyncMap: (self, data) => justExec(async () => {
87
+ asyncMap: async (self, data) => {
75
88
  const errorHandler = createGetErrorHandler();
76
89
  const formattedData = isSimple(data) ? {
77
90
  ...data,
@@ -79,7 +92,20 @@ const EntityStructure = createStructure(entityStructureKind, ({ init }) => (name
79
92
  } : data;
80
93
  if (await self.executeCheck(formattedData, errorHandler) === ErrorSymbol) return left("map-error", errorHandler().createError());
81
94
  return right("map-success", formattedData);
82
- })
95
+ },
96
+ encodeEntity: async (self, codecs, data) => {
97
+ const result = await self.asyncEncode(codecs, data);
98
+ if (isLeft(result)) throw new EncodeEntityError(unwrapLeft(result));
99
+ return unwrapRight(result);
100
+ },
101
+ update: (self, ...args) => {
102
+ if (args.length === 1) {
103
+ const [update] = args;
104
+ return (input) => self.update(input, update);
105
+ }
106
+ const [input, { [objectTagKind.runTimeKey]: __, ...update }] = args;
107
+ return override(input, update);
108
+ }
83
109
  }));
84
110
  //#endregion
85
- export { EntityStructure, entityKind, entityStructureKind };
111
+ export { EncodeEntityError, EntityStructure, entityKind, entityStructureKind };
@@ -3,7 +3,7 @@ import { NewType } from '../newType';
3
3
  import type * as DCommon from '../../common';
4
4
  import type * as DDataStructure from '../../dataStructure';
5
5
  import type * as DString from '../../string';
6
- export type ForbiddenMissingNewTypeInEntityShape<GenericValue extends unknown, GenericPath extends readonly string[] = readonly []> = GenericValue extends NewType ? never : GenericValue extends object ? DCommon.Or<[
6
+ export type ForbiddenMissingNewTypeInEntityShape<GenericValue extends unknown, GenericPath extends readonly string[] = readonly []> = GenericValue extends NewType | null ? never : GenericValue extends object ? DCommon.Or<[
7
7
  DCommon.IsExtends<GenericValue, readonly any[]>,
8
8
  DCommon.And<[
9
9
  DCommon.IsExtends<keyof GenericValue, string>,
@@ -1,4 +1,3 @@
1
1
  export * from './base';
2
- export * from './entityName';
3
2
  export * from './helper';
4
3
  export * from './namespace';
@@ -7,9 +7,9 @@ const namespaceKind = require_kind.createKind("namespace");
7
7
  function createEntityNamespace(entityName) {
8
8
  return {
9
9
  name: entityName,
10
- createNewType: (name, structure, newTypeConstraints = []) => require_helper$1.createNewEntity(`${entityName}${name}`, structure, newTypeConstraints),
10
+ createNewType: (name, structure, newTypeConstraints = []) => require_helper$1.createNewType(`${entityName}${name}`, structure, newTypeConstraints),
11
11
  createEntity: (shape) => require_helper.createEntity(entityName, shape),
12
- createFlag: (entityStructure, name, valueStructure) => require_base.createFlag(entityStructure, `${entityName}${name}`, valueStructure),
12
+ createFlag: (name) => require_base.createFlag(`${entityName}${name}`),
13
13
  [namespaceKind.runTimeKey]: null
14
14
  };
15
15
  }
@@ -10,6 +10,6 @@ export interface EntityNamespace<GenericEntityName extends Capitalize<string> =
10
10
  readonly name: GenericEntityName;
11
11
  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<`${GenericEntityName}${GenericName}`, DDataStructure.StructureValue<GenericStructure>, GenericNewTypeConstraint>;
12
12
  createEntity<GenericShape extends DDataStructure.ShapeObjectStructure>(shape: () => (GenericShape & DCommon.NeverCoalescing<ForbiddenMissingNewTypeInEntityShape<DDataStructure.ShapeObjectStructureValue<GenericShape>>, unknown>)): EntityStructure<GenericEntityName, DDataStructure.ShapeObjectStructureValue<GenericShape>>;
13
- createFlag<GenericEntityStructure extends EntityStructure<GenericEntityName>, GenericName extends Capitalize<string>, GenericValueStructure extends DDataStructure.Structure>(entityStructure: GenericEntityStructure, name: GenericName, valueStructure: GenericValueStructure): FlagHandler<DDataStructure.StructureValue<GenericEntityStructure>, `${GenericEntityName}${GenericName}`, DDataStructure.StructureValue<GenericValueStructure>>;
13
+ createFlag<GenericName extends Capitalize<string>, GenericEntityStructure extends EntityStructure<GenericEntityName>, GenericPayload extends unknown = {}>(name: DCommon.IsEqual<GenericName, Capitalize<string>> extends true ? never : NoInfer<GenericName>): FlagHandler<`${GenericEntityName}${GenericName}`, DDataStructure.StructureValue<GenericEntityStructure>, GenericPayload>;
14
14
  }
15
15
  export declare function createEntityNamespace<GenericName extends Capitalize<string>>(entityName: GenericName): EntityNamespace<GenericName>;
@@ -1,15 +1,15 @@
1
1
  import { createKind } from "../kind.mjs";
2
2
  import { createEntity } from "./helper.mjs";
3
- import { createNewEntity } from "../newType/helper.mjs";
3
+ import { createNewType } from "../newType/helper.mjs";
4
4
  import { createFlag } from "../flag/base.mjs";
5
5
  //#region scripts/modeling/entity/namespace.ts
6
6
  const namespaceKind = createKind("namespace");
7
7
  function createEntityNamespace(entityName) {
8
8
  return {
9
9
  name: entityName,
10
- createNewType: (name, structure, newTypeConstraints = []) => createNewEntity(`${entityName}${name}`, structure, newTypeConstraints),
10
+ createNewType: (name, structure, newTypeConstraints = []) => createNewType(`${entityName}${name}`, structure, newTypeConstraints),
11
11
  createEntity: (shape) => createEntity(entityName, shape),
12
- createFlag: (entityStructure, name, valueStructure) => createFlag(entityStructure, `${entityName}${name}`, valueStructure),
12
+ createFlag: (name) => createFlag(`${entityName}${name}`),
13
13
  [namespaceKind.runTimeKey]: null
14
14
  };
15
15
  }
@@ -1,10 +1,8 @@
1
- const require_type = require("../../dataStructure/structure/defaults/type.cjs");
2
- const require_null = require("../../dataStructure/type/defaults/null.cjs");
3
1
  const require_kind = require("../kind.cjs");
4
2
  //#region scripts/modeling/flag/base.ts
5
3
  const flagKind = require_kind.createKind("flag");
6
4
  const flagHandlerKind = require_kind.createKind("flag-handler");
7
- function createFlag(entityStructure, name, valueStructure = require_type.TypeStructure(require_null.NullType(), [])) {
5
+ function createFlag(name) {
8
6
  function append(...args) {
9
7
  if (args.length === 1) {
10
8
  const [value] = args;
@@ -19,8 +17,6 @@ function createFlag(entityStructure, name, valueStructure = require_type.TypeStr
19
17
  }
20
18
  return {
21
19
  name,
22
- entityStructure,
23
- valueStructure,
24
20
  append,
25
21
  getValue(entity) {
26
22
  return flagKind.getValue(entity)[name];
@@ -1,19 +1,18 @@
1
- import { EntityStructure, Entity, GetEntityName } from '../entity';
1
+ import { EntityStructure, Entity } from '../entity';
2
+ import type * as DCommon from '../../common';
2
3
  import type * as DKind from '../../kind';
3
- import * as DDataStructure from '../../dataStructure';
4
+ import type * as DDataStructure from '../../dataStructure';
4
5
  export declare const flagKind: DKind.Handler<DKind.Definition<"@DuplojsLangModeling/flag", Record<string, unknown>>>;
5
6
  export interface Flag<GenericName extends string = string, GenericValue extends unknown = never> extends DKind.Kind<typeof flagKind, Record<GenericName, GenericValue>> {
6
7
  }
7
8
  declare const flagHandlerKind: DKind.Handler<DKind.Definition<"@DuplojsLangModeling/flag-handler", unknown>>;
8
- export interface FlagHandler<GenericEntity extends Entity = Entity, GenericName extends string = string, GenericValue extends unknown = unknown> extends DKind.Kind<typeof flagHandlerKind> {
9
+ export interface FlagHandler<GenericName extends string = string, GenericEntity extends Entity = Entity, GenericValue extends unknown = unknown> extends DKind.Kind<typeof flagHandlerKind> {
9
10
  readonly name: GenericName;
10
- readonly entityStructure: EntityStructure<GetEntityName<GenericEntity>, Omit<GenericEntity, DKind.KeySymbol>>;
11
- readonly valueStructure: DDataStructure.Structure<GenericValue>;
12
11
  append<GenericInputEntity extends GenericEntity, const GenericInputValue extends GenericValue>(value: GenericInputValue): (entity: GenericInputEntity) => (GenericInputEntity & Flag<GenericName, GenericInputValue>);
13
12
  append<GenericInputEntity extends GenericEntity, const GenericInputValue extends GenericValue>(entity: GenericInputEntity, value: GenericInputValue): (GenericInputEntity & Flag<GenericName, GenericInputValue>);
14
13
  getValue<GenericInputEntity extends GenericEntity & Flag<GenericName, GenericValue>>(entity: GenericInputEntity): DKind.GetValue<typeof flagKind, GenericInputEntity>[GenericName];
15
14
  has<GenericInputEntity extends GenericEntity>(entity: GenericInputEntity): entity is Extract<GenericInputEntity, Flag<GenericName, any>>;
16
15
  }
17
- export declare function createFlag<GenericEntityStructure extends EntityStructure, GenericName extends Capitalize<string>, GenericValueStructure extends DDataStructure.Structure = DDataStructure.Structure<null>>(entityStructure: GenericEntityStructure, name: GenericName, valueStructure?: GenericValueStructure): FlagHandler<DDataStructure.StructureValue<GenericEntityStructure>, GenericName, DDataStructure.StructureValue<GenericValueStructure>>;
18
- export type GetFlag<GenericHandler extends FlagHandler<any, any, any>> = GenericHandler extends FlagHandler<any, infer InferredName, infer InferredValue> ? Flag<InferredName, InferredValue> : never;
16
+ export declare function createFlag<GenericName extends Capitalize<string>, GenericEntityStructure extends EntityStructure, GenericPayload extends unknown = {}>(name: DCommon.IsEqual<GenericName, Capitalize<string>> extends true ? never : NoInfer<GenericName>): FlagHandler<GenericName, DDataStructure.StructureValue<GenericEntityStructure>, GenericPayload>;
17
+ export type GetFlag<GenericHandler extends FlagHandler<any, any, any>> = GenericHandler extends FlagHandler<infer InferredName, any, infer InferredValue> ? Flag<InferredName, InferredValue> : never;
19
18
  export {};
@@ -1,10 +1,8 @@
1
- import { TypeStructure } from "../../dataStructure/structure/defaults/type.mjs";
2
- import { NullType } from "../../dataStructure/type/defaults/null.mjs";
3
1
  import { createKind } from "../kind.mjs";
4
2
  //#region scripts/modeling/flag/base.ts
5
3
  const flagKind = createKind("flag");
6
4
  const flagHandlerKind = createKind("flag-handler");
7
- function createFlag(entityStructure, name, valueStructure = TypeStructure(NullType(), [])) {
5
+ function createFlag(name) {
8
6
  function append(...args) {
9
7
  if (args.length === 1) {
10
8
  const [value] = args;
@@ -19,8 +17,6 @@ function createFlag(entityStructure, name, valueStructure = TypeStructure(NullTy
19
17
  }
20
18
  return {
21
19
  name,
22
- entityStructure,
23
- valueStructure,
24
20
  append,
25
21
  getValue(entity) {
26
22
  return flagKind.getValue(entity)[name];
@@ -1,42 +1,56 @@
1
1
  const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
2
  const require_kind = require("./kind.cjs");
3
- const require_entityName = require("./entity/entityName.cjs");
4
- const require_base = require("./entity/base.cjs");
5
- const require_helper = require("./entity/helper.cjs");
6
- const require_base$1 = require("./newType/base.cjs");
7
- const require_helper$1 = require("./newType/helper.cjs");
8
- const require_base$2 = require("./flag/base.cjs");
3
+ const require_base = require("./taggedObject/base.cjs");
4
+ const require_helper = require("./taggedObject/helper.cjs");
5
+ const require_base$1 = require("./entity/base.cjs");
6
+ const require_helper$1 = require("./entity/helper.cjs");
7
+ const require_base$2 = require("./newType/base.cjs");
8
+ const require_helper$2 = require("./newType/helper.cjs");
9
+ const require_base$3 = require("./flag/base.cjs");
9
10
  const require_namespace = require("./entity/namespace.cjs");
10
11
  //#region scripts/modeling/index.ts
11
12
  var modeling_exports = /* @__PURE__ */ require_runtime.__exportAll({
12
- EntityNameStructure: () => require_entityName.EntityNameStructure,
13
- EntityStructure: () => require_base.EntityStructure,
14
- NewTypeStructure: () => require_base$1.NewTypeStructure,
15
- createEntity: () => require_helper.createEntity,
13
+ EncodeEntityError: () => require_base$1.EncodeEntityError,
14
+ EncodeNewTypeError: () => require_base$2.EncodeNewTypeError,
15
+ EncodeTaggedObjectError: () => require_base.EncodeTaggedObjectError,
16
+ EntityStructure: () => require_base$1.EntityStructure,
17
+ NewTypeStructure: () => require_base$2.NewTypeStructure,
18
+ TaggedObjectStructure: () => require_base.TaggedObjectStructure,
19
+ createEntity: () => require_helper$1.createEntity,
16
20
  createEntityNamespace: () => require_namespace.createEntityNamespace,
17
- createFlag: () => require_base$2.createFlag,
21
+ createFlag: () => require_base$3.createFlag,
18
22
  createKind: () => require_kind.createKind,
19
- createNewEntity: () => require_helper$1.createNewEntity,
20
- entityKind: () => require_base.entityKind,
21
- entityNameStructureKind: () => require_entityName.entityNameStructureKind,
22
- entityStructureKind: () => require_base.entityStructureKind,
23
- flagKind: () => require_base$2.flagKind,
23
+ createNewType: () => require_helper$2.createNewType,
24
+ createTaggedObject: () => require_helper.createTaggedObject,
25
+ entityKind: () => require_base$1.entityKind,
26
+ entityStructureKind: () => require_base$1.entityStructureKind,
27
+ flagKind: () => require_base$3.flagKind,
28
+ getTagValue: () => require_helper.getTagValue,
29
+ hasTagValue: () => require_helper.hasTagValue,
24
30
  namespaceKind: () => require_namespace.namespaceKind,
25
- newTypeStructureKind: () => require_base$1.newTypeStructureKind
31
+ newTypeStructureKind: () => require_base$2.newTypeStructureKind,
32
+ objectTagKind: () => require_base.objectTagKind,
33
+ taggedObject: () => require_helper.taggedObject,
34
+ taggedObjectStructureKind: () => require_base.taggedObjectStructureKind
26
35
  });
27
36
  //#endregion
28
- exports.EntityNameStructure = require_entityName.EntityNameStructure;
29
- exports.EntityStructure = require_base.EntityStructure;
30
- exports.NewTypeStructure = require_base$1.NewTypeStructure;
31
- exports.createEntity = require_helper.createEntity;
37
+ exports.EncodeEntityError = require_base$1.EncodeEntityError;
38
+ exports.EncodeNewTypeError = require_base$2.EncodeNewTypeError;
39
+ exports.EncodeTaggedObjectError = require_base.EncodeTaggedObjectError;
40
+ exports.EntityStructure = require_base$1.EntityStructure;
41
+ exports.NewTypeStructure = require_base$2.NewTypeStructure;
42
+ exports.TaggedObjectStructure = require_base.TaggedObjectStructure;
43
+ exports.createEntity = require_helper$1.createEntity;
32
44
  exports.createEntityNamespace = require_namespace.createEntityNamespace;
33
- exports.createFlag = require_base$2.createFlag;
45
+ exports.createFlag = require_base$3.createFlag;
34
46
  exports.createKind = require_kind.createKind;
35
- exports.createNewEntity = require_helper$1.createNewEntity;
36
- exports.entityKind = require_base.entityKind;
37
- exports.entityNameStructureKind = require_entityName.entityNameStructureKind;
38
- exports.entityStructureKind = require_base.entityStructureKind;
39
- exports.flagKind = require_base$2.flagKind;
47
+ exports.createNewType = require_helper$2.createNewType;
48
+ exports.createTaggedObject = require_helper.createTaggedObject;
49
+ exports.entityKind = require_base$1.entityKind;
50
+ exports.entityStructureKind = require_base$1.entityStructureKind;
51
+ exports.flagKind = require_base$3.flagKind;
52
+ exports.getTagValue = require_helper.getTagValue;
53
+ exports.hasTagValue = require_helper.hasTagValue;
40
54
  Object.defineProperty(exports, "modeling_exports", {
41
55
  enumerable: true,
42
56
  get: function() {
@@ -44,4 +58,7 @@ Object.defineProperty(exports, "modeling_exports", {
44
58
  }
45
59
  });
46
60
  exports.namespaceKind = require_namespace.namespaceKind;
47
- exports.newTypeStructureKind = require_base$1.newTypeStructureKind;
61
+ exports.newTypeStructureKind = require_base$2.newTypeStructureKind;
62
+ exports.objectTagKind = require_base.objectTagKind;
63
+ exports.taggedObject = require_helper.taggedObject;
64
+ exports.taggedObjectStructureKind = require_base.taggedObjectStructureKind;
@@ -2,3 +2,4 @@ export * from './entity';
2
2
  export * from './flag';
3
3
  export * from './kind';
4
4
  export * from './newType';
5
+ export * from './taggedObject';
@@ -1,28 +1,37 @@
1
1
  import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
2
2
  import { createKind } from "./kind.mjs";
3
- import { EntityNameStructure, entityNameStructureKind } from "./entity/entityName.mjs";
4
- import { EntityStructure, entityKind, entityStructureKind } from "./entity/base.mjs";
3
+ import { EncodeTaggedObjectError, TaggedObjectStructure, objectTagKind, taggedObjectStructureKind } from "./taggedObject/base.mjs";
4
+ import { createTaggedObject, getTagValue, hasTagValue, taggedObject } from "./taggedObject/helper.mjs";
5
+ import { EncodeEntityError, EntityStructure, entityKind, entityStructureKind } from "./entity/base.mjs";
5
6
  import { createEntity } from "./entity/helper.mjs";
6
- import { NewTypeStructure, newTypeStructureKind } from "./newType/base.mjs";
7
- import { createNewEntity } from "./newType/helper.mjs";
7
+ import { EncodeNewTypeError, NewTypeStructure, newTypeStructureKind } from "./newType/base.mjs";
8
+ import { createNewType } from "./newType/helper.mjs";
8
9
  import { createFlag, flagKind } from "./flag/base.mjs";
9
10
  import { createEntityNamespace, namespaceKind } from "./entity/namespace.mjs";
10
11
  //#region scripts/modeling/index.ts
11
12
  var modeling_exports = /* @__PURE__ */ __exportAll({
12
- EntityNameStructure: () => EntityNameStructure,
13
+ EncodeEntityError: () => EncodeEntityError,
14
+ EncodeNewTypeError: () => EncodeNewTypeError,
15
+ EncodeTaggedObjectError: () => EncodeTaggedObjectError,
13
16
  EntityStructure: () => EntityStructure,
14
17
  NewTypeStructure: () => NewTypeStructure,
18
+ TaggedObjectStructure: () => TaggedObjectStructure,
15
19
  createEntity: () => createEntity,
16
20
  createEntityNamespace: () => createEntityNamespace,
17
21
  createFlag: () => createFlag,
18
22
  createKind: () => createKind,
19
- createNewEntity: () => createNewEntity,
23
+ createNewType: () => createNewType,
24
+ createTaggedObject: () => createTaggedObject,
20
25
  entityKind: () => entityKind,
21
- entityNameStructureKind: () => entityNameStructureKind,
22
26
  entityStructureKind: () => entityStructureKind,
23
27
  flagKind: () => flagKind,
28
+ getTagValue: () => getTagValue,
29
+ hasTagValue: () => hasTagValue,
24
30
  namespaceKind: () => namespaceKind,
25
- newTypeStructureKind: () => newTypeStructureKind
31
+ newTypeStructureKind: () => newTypeStructureKind,
32
+ objectTagKind: () => objectTagKind,
33
+ taggedObject: () => taggedObject,
34
+ taggedObjectStructureKind: () => taggedObjectStructureKind
26
35
  });
27
36
  //#endregion
28
- export { EntityNameStructure, EntityStructure, NewTypeStructure, createEntity, createEntityNamespace, createFlag, createKind, createNewEntity, entityKind, entityNameStructureKind, entityStructureKind, flagKind, modeling_exports, namespaceKind, newTypeStructureKind };
37
+ export { EncodeEntityError, EncodeNewTypeError, EncodeTaggedObjectError, EntityStructure, NewTypeStructure, TaggedObjectStructure, createEntity, createEntityNamespace, createFlag, createKind, createNewType, createTaggedObject, entityKind, entityStructureKind, flagKind, getTagValue, hasTagValue, modeling_exports, namespaceKind, newTypeStructureKind, objectTagKind, taggedObject, taggedObjectStructureKind };
@@ -1,20 +1,35 @@
1
+ const require_parentClass = require("../../kind/parentClass.cjs");
1
2
  const require_callThen = require("../../common/callThen.cjs");
2
3
  const require_create = require("../../either/left/create.cjs");
4
+ const require_is = require("../../either/left/is.cjs");
3
5
  const require_create$1 = require("../../either/right/create.cjs");
6
+ const require_unwrap = require("../../either/left/unwrap.cjs");
7
+ const require_unwrap$1 = require("../../either/right/unwrap.cjs");
4
8
  const require_justExec = require("../../common/justExec.cjs");
5
9
  const require_resultSymbol = require("../../dataStructure/common/resultSymbol.cjs");
6
- const require_error = require("../../dataStructure/common/error.cjs");
7
- const require_base = require("../../dataStructure/structure/base.cjs");
10
+ const require_base = require("../../dataStructure/common/error/base.cjs");
11
+ const require_base$1 = require("../../dataStructure/structure/base.cjs");
12
+ const require_kind = require("../kind.cjs");
8
13
  //#region scripts/modeling/newType/base.ts
9
- const newTypeStructureKind = require("../kind.cjs").createKind("new-type-structure");
10
- const NewTypeStructure = require_base.createStructure(newTypeStructureKind, ({ init }) => (name, structure, newTypeConstraints) => init({
14
+ const newTypeStructureKind = require_kind.createKind("new-type-structure");
15
+ var EncodeNewTypeError = class extends require_parentClass.parentClass(require_kind.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) => require_callThen.callThen(accumulator, (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(constraint.executeCheck(data), (constraintResult) => constraintResult === require_resultSymbol.ErrorSymbol ? errorHandler?.().addIssue(structure, data, constraint) ?? require_resultSymbol.ErrorSymbol : require_resultSymbol.SuccessSymbol)), require_resultSymbol.SuccessSymbol);
24
+ }
25
+ const NewTypeStructure = require_base$1.createStructure(newTypeStructureKind, ({ init }) => (name, structure, newTypeConstraints) => init({
11
26
  constraints: [],
12
27
  newTypeConstraints,
13
28
  inner: structure
14
29
  }, {
15
- executeCheck: (self, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeCheck(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : self.definition.newTypeConstraints.reduce((accumulator, constraint) => require_callThen.callThen(accumulator, (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : constraint.executeCheck(data, errorHandler)), require_resultSymbol.SuccessSymbol)),
16
- executeEncode: (self, codec, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeEncode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.definition.newTypeConstraints.reduce((accumulator, constraint) => require_callThen.callThen(accumulator, (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : constraint.executeCheck(data, errorHandler)), require_resultSymbol.SuccessSymbol), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedInnerResult))),
17
- executeDecode: (self, codec, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeDecode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.definition.newTypeConstraints.reduce((accumulator, constraint) => require_callThen.callThen(accumulator, (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : constraint.executeCheck(awaitedInnerResult, errorHandler)), require_resultSymbol.SuccessSymbol), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(awaitedInnerResult, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedInnerResult))),
30
+ executeCheck: (self, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeCheck(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : executeNewTypeConstraints(self, data, errorHandler)),
31
+ executeEncode: (self, codec, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeEncode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(executeNewTypeConstraints(self, data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(data, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedInnerResult))),
32
+ executeDecode: (self, codec, data, errorHandler) => require_callThen.callThen(self.definition.inner.executeDecode(codec, data, errorHandler), (awaitedInnerResult) => awaitedInnerResult === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(executeNewTypeConstraints(self, awaitedInnerResult, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : require_callThen.callThen(self.executeConstraints(awaitedInnerResult, errorHandler), (result) => result === require_resultSymbol.ErrorSymbol ? require_resultSymbol.ErrorSymbol : awaitedInnerResult))),
18
33
  isAsynchronous: (self) => self.definition.inner.isAsynchronous() || self.definition.newTypeConstraints.some((value) => value.isAsynchronous())
19
34
  }, {
20
35
  name,
@@ -23,7 +38,7 @@ const NewTypeStructure = require_base.createStructure(newTypeStructureKind, ({ i
23
38
  const [codecs] = args;
24
39
  return (value) => self.decodeMap(codecs, value);
25
40
  }
26
- const errorHandler = require_error.createGetErrorHandler();
41
+ const errorHandler = require_base.createGetErrorHandler();
27
42
  const [codecs, data] = args;
28
43
  const result = self.executeDecode(codecs.context.value, data, errorHandler);
29
44
  if (result instanceof Promise) return require_create.left("async-error", void 0);
@@ -31,7 +46,7 @@ const NewTypeStructure = require_base.createStructure(newTypeStructureKind, ({ i
31
46
  return require_create$1.right("map-success", result);
32
47
  },
33
48
  map: (self, data) => {
34
- const errorHandler = require_error.createGetErrorHandler();
49
+ const errorHandler = require_base.createGetErrorHandler();
35
50
  const result = self.executeCheck(data, errorHandler);
36
51
  if (result instanceof Promise) return require_create.left("async-error", void 0);
37
52
  if (result === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
@@ -43,19 +58,25 @@ const NewTypeStructure = require_base.createStructure(newTypeStructureKind, ({ i
43
58
  return (value) => self.asyncDecodeMap(codecs, value);
44
59
  }
45
60
  return require_justExec.justExec(async () => {
46
- const errorHandler = require_error.createGetErrorHandler();
61
+ const errorHandler = require_base.createGetErrorHandler();
47
62
  const [codecs, data] = args;
48
63
  const result = await self.executeDecode(codecs.context.value, data, errorHandler);
49
64
  if (result === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
50
65
  return require_create$1.right("map-success", result);
51
66
  });
52
67
  },
53
- asyncMap: (self, data) => require_justExec.justExec(async () => {
54
- const errorHandler = require_error.createGetErrorHandler();
68
+ asyncMap: async (self, data) => {
69
+ const errorHandler = require_base.createGetErrorHandler();
55
70
  if (await self.executeCheck(data, errorHandler) === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
56
71
  return require_create$1.right("map-success", data);
57
- })
72
+ },
73
+ encodeNewType: async (self, codec, data) => {
74
+ const result = await self.asyncEncode(codec, data);
75
+ if (require_is.isLeft(result)) throw new EncodeNewTypeError(require_unwrap.unwrapLeft(result));
76
+ return require_unwrap$1.unwrapRight(result);
77
+ }
58
78
  }));
59
79
  //#endregion
80
+ exports.EncodeNewTypeError = EncodeNewTypeError;
60
81
  exports.NewTypeStructure = NewTypeStructure;
61
82
  exports.newTypeStructureKind = newTypeStructureKind;
@@ -1,4 +1,4 @@
1
- import type * as DKind from '../../kind';
1
+ import * as DKind from '../../kind';
2
2
  import * as DCommon from '../../common';
3
3
  import type * as DArray from '../../array';
4
4
  import * as DEither from '../../either';
@@ -25,7 +25,7 @@ export interface NewTypeStructureDefinition<GenericNewTypeConstraint extends rea
25
25
  readonly newTypeConstraints: GenericNewTypeConstraint;
26
26
  }
27
27
  export type ComputeNewType<GenericName extends string, GenericValue extends unknown, GenericNewTypeConstraint extends readonly DDataStructure.Constraint<GenericValue>[], GenericIntersectionConstraintValue = DDataStructure.ConstraintValue<DArray.Unwrap<GenericNewTypeConstraint>>, GenericClearValue = DCommon.NeverCoalescing<DCommon.RemoveConstraint<GenericIntersectionConstraintValue>, unknown>> = (GenericValue & GenericClearValue & NewType<GenericName, GenericIntersectionConstraintValue extends (GenericClearValue & infer InferredConstraint extends DCommon.BaseConstraint) ? InferredConstraint : never>);
28
- export interface NewTypeStructure<GenericName extends string = string, GenericValue extends unknown = unknown, GenericNewTypeConstraint extends readonly DDataStructure.Constraint<GenericValue>[] = readonly DDataStructure.Constraint<GenericValue>[]> extends DCommon.UnionToIntersection<DDataStructure.Structure<ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>, NewTypeStructureDefinition<GenericNewTypeConstraint>> & DKind.Kind<typeof newTypeStructureKind>> {
28
+ export interface NewTypeStructure<out GenericName extends string = string, out GenericValue extends unknown = unknown, out GenericNewTypeConstraint extends readonly DDataStructure.Constraint<GenericValue>[] = readonly DDataStructure.Constraint<GenericValue>[]> extends DCommon.Forward<DDataStructure.Structure<ComputeNewType<GenericName, GenericValue, GenericNewTypeConstraint>, NewTypeStructureDefinition<GenericNewTypeConstraint>> & DKind.Kind<typeof newTypeStructureKind>> {
29
29
  readonly name: GenericName;
30
30
  decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<NewTypeMap<DDataStructure.StructureValue<this>>, GenericCodecs>) => (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
31
31
  decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<NewTypeMap<DDataStructure.StructureValue<this>>, GenericCodecs>): (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
@@ -33,5 +33,12 @@ export interface NewTypeStructure<GenericName extends string = string, GenericVa
33
33
  asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<NewTypeMap<DDataStructure.StructureValue<this>>, GenericCodecs>) => Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
34
34
  asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<NewTypeMap<DDataStructure.StructureValue<this>>, GenericCodecs>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
35
35
  asyncMap(data: NewTypeMap<DDataStructure.StructureValue<this>>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
36
+ encodeNewType<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.StructureValue<this>): Promise<DDataStructure.EncodedValue<NewTypeMap<DDataStructure.StructureValue<this>>, GenericCodecs>>;
37
+ }
38
+ declare const EncodeNewTypeError_base: DKind.KindClass<DKind.Handler<DKind.Definition<"@DuplojsLangModeling/encode-new-type-error", unknown>>, ErrorConstructor>;
39
+ export declare class EncodeNewTypeError extends EncodeNewTypeError_base {
40
+ error: DDataStructure.Error;
41
+ constructor(error: DDataStructure.Error);
36
42
  }
37
43
  export declare const NewTypeStructure: <GenericName extends string, GenericStructure extends DDataStructure.Structure, const GenericNewTypeConstraint extends readonly DDataStructure.Constraint<DDataStructure.StructureValue<GenericStructure>>[]>(name: GenericName, structure: GenericStructure, newTypeConstraints: GenericNewTypeConstraint) => NewTypeStructure<GenericName, DDataStructure.StructureValue<GenericStructure>, GenericNewTypeConstraint>;
44
+ export {};
@@ -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 };