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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (561) hide show
  1. package/dist/array/at/default.d.ts +1 -1
  2. package/dist/array/chunk.d.ts +3 -2
  3. package/dist/array/concat.d.ts +1 -1
  4. package/dist/array/copyWithin.d.ts +1 -1
  5. package/dist/array/fill/all.d.ts +1 -1
  6. package/dist/array/fill/default.d.ts +3 -3
  7. package/dist/array/filter.d.ts +1 -1
  8. package/dist/array/findAndReplace.d.ts +1 -1
  9. package/dist/array/findAndSplice/delete.d.ts +1 -1
  10. package/dist/array/findAndSplice/insert.d.ts +1 -1
  11. package/dist/array/index.cjs +0 -3
  12. package/dist/array/index.d.ts +0 -1
  13. package/dist/array/index.mjs +1 -3
  14. package/dist/array/insert.d.ts +3 -3
  15. package/dist/array/length.d.ts +1 -1
  16. package/dist/array/lengthEqual.d.ts +1 -1
  17. package/dist/array/map.d.ts +1 -1
  18. package/dist/array/maxElements.d.ts +1 -1
  19. package/dist/array/minElements.d.ts +1 -1
  20. package/dist/array/pop.d.ts +1 -1
  21. package/dist/array/prepend.d.ts +1 -1
  22. package/dist/array/push.d.ts +3 -3
  23. package/dist/array/reverse.d.ts +1 -1
  24. package/dist/array/shift.d.ts +1 -1
  25. package/dist/array/sort.d.ts +1 -1
  26. package/dist/array/splice/delete.d.ts +1 -1
  27. package/dist/array/splice/insert.d.ts +1 -1
  28. package/dist/array/unshift.d.ts +3 -3
  29. package/dist/chrono/createDate.cjs +9 -9
  30. package/dist/chrono/createDate.d.ts +3 -3
  31. package/dist/chrono/createDate.mjs +9 -9
  32. package/dist/chrono/createTime.cjs +24 -13
  33. package/dist/chrono/createTime.mjs +24 -13
  34. package/dist/chrono/theDate.cjs +15 -16
  35. package/dist/chrono/theDate.d.ts +15 -15
  36. package/dist/chrono/theDate.mjs +15 -16
  37. package/dist/chrono/theTime.cjs +0 -1
  38. package/dist/chrono/theTime.mjs +0 -1
  39. package/dist/chrono/types/spoolingTime.d.ts +2 -1
  40. package/dist/common/constraint/cast/index.d.ts +3 -3
  41. package/dist/common/constraint/cast/number.d.ts +15 -0
  42. package/dist/common/constraint/cast/string.d.ts +21 -0
  43. package/dist/common/constraint/index.d.ts +2 -0
  44. package/dist/common/constraint/infer/array.d.ts +7 -0
  45. package/dist/{array/infer.cjs → common/constraint/infer/index.cjs} +1 -1
  46. package/dist/common/constraint/infer/index.d.ts +26 -0
  47. package/dist/{string/infer.mjs → common/constraint/infer/index.mjs} +1 -1
  48. package/dist/common/constraint/infer/number.d.ts +11 -0
  49. package/dist/common/constraint/infer/string.d.ts +13 -0
  50. package/dist/common/constraint/remove.cjs +6 -0
  51. package/dist/common/constraint/remove.d.ts +2 -0
  52. package/dist/common/constraint/remove.mjs +6 -0
  53. package/dist/common/index.cjs +6 -0
  54. package/dist/common/index.mjs +5 -1
  55. package/dist/common/isType.d.ts +3 -2
  56. package/dist/common/types/forward.d.ts +1 -0
  57. package/dist/common/types/index.d.ts +3 -0
  58. package/dist/common/types/isObject.d.ts +8 -0
  59. package/dist/common/types/json.d.ts +1 -1
  60. package/dist/common/types/splitPromise.d.ts +1 -0
  61. package/dist/dataStructure/common/codec/base.cjs +29 -0
  62. package/dist/dataStructure/common/{codec.d.ts → codec/base.d.ts} +8 -8
  63. package/dist/dataStructure/common/codec/base.mjs +26 -0
  64. package/dist/dataStructure/common/codec/defaults/index.d.ts +2 -0
  65. package/dist/dataStructure/common/codec/defaults/json.cjs +26 -0
  66. package/dist/dataStructure/common/codec/defaults/json.d.ts +6 -0
  67. package/dist/dataStructure/common/codec/defaults/json.mjs +26 -0
  68. package/dist/dataStructure/common/codec/defaults/string.cjs +44 -0
  69. package/dist/dataStructure/common/codec/defaults/string.d.ts +11 -0
  70. package/dist/dataStructure/common/codec/defaults/string.mjs +44 -0
  71. package/dist/dataStructure/common/codec/index.d.ts +2 -0
  72. package/dist/dataStructure/common/error/base.cjs +73 -0
  73. package/dist/dataStructure/common/error/base.d.ts +50 -0
  74. package/dist/dataStructure/common/error/base.mjs +69 -0
  75. package/dist/dataStructure/common/error/defaultInterpreter.cjs +87 -0
  76. package/dist/dataStructure/common/error/defaultInterpreter.d.ts +60 -0
  77. package/dist/dataStructure/common/error/defaultInterpreter.mjs +86 -0
  78. package/dist/dataStructure/common/error/index.d.ts +3 -0
  79. package/dist/dataStructure/common/error/interpreter.cjs +44 -0
  80. package/dist/dataStructure/common/error/interpreter.d.ts +32 -0
  81. package/dist/dataStructure/common/error/interpreter.mjs +44 -0
  82. package/dist/dataStructure/constraint/base.cjs +34 -5
  83. package/dist/dataStructure/constraint/base.d.ts +13 -4
  84. package/dist/dataStructure/constraint/base.mjs +34 -6
  85. package/dist/dataStructure/constraint/defaults/absolutePath.cjs +13 -0
  86. package/dist/dataStructure/constraint/defaults/absolutePath.d.ts +10 -0
  87. package/dist/dataStructure/constraint/defaults/absolutePath.mjs +12 -0
  88. package/dist/dataStructure/constraint/defaults/allowedCharacters.cjs +1 -1
  89. package/dist/dataStructure/constraint/defaults/allowedCharacters.d.ts +1 -3
  90. package/dist/dataStructure/constraint/defaults/allowedCharacters.mjs +1 -1
  91. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.cjs +1 -1
  92. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.d.ts +1 -1
  93. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.mjs +1 -1
  94. package/dist/dataStructure/constraint/defaults/betweenThan.cjs +1 -1
  95. package/dist/dataStructure/constraint/defaults/betweenThan.d.ts +1 -1
  96. package/dist/dataStructure/constraint/defaults/betweenThan.mjs +1 -1
  97. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.cjs +1 -1
  98. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.d.ts +1 -1
  99. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.mjs +1 -1
  100. package/dist/dataStructure/constraint/defaults/email.cjs +1 -1
  101. package/dist/dataStructure/constraint/defaults/email.d.ts +1 -1
  102. package/dist/dataStructure/constraint/defaults/email.mjs +1 -1
  103. package/dist/dataStructure/constraint/defaults/even.cjs +1 -1
  104. package/dist/dataStructure/constraint/defaults/even.d.ts +1 -1
  105. package/dist/dataStructure/constraint/defaults/even.mjs +1 -1
  106. package/dist/dataStructure/constraint/defaults/greaterThan.cjs +1 -1
  107. package/dist/dataStructure/constraint/defaults/greaterThan.d.ts +1 -1
  108. package/dist/dataStructure/constraint/defaults/greaterThan.mjs +1 -1
  109. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.cjs +1 -1
  110. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.d.ts +1 -1
  111. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.mjs +1 -1
  112. package/dist/dataStructure/constraint/defaults/index.d.ts +6 -0
  113. package/dist/dataStructure/constraint/defaults/integer.cjs +1 -1
  114. package/dist/dataStructure/constraint/defaults/integer.d.ts +1 -1
  115. package/dist/dataStructure/constraint/defaults/integer.mjs +1 -1
  116. package/dist/dataStructure/constraint/defaults/lessThan.cjs +1 -1
  117. package/dist/dataStructure/constraint/defaults/lessThan.d.ts +1 -1
  118. package/dist/dataStructure/constraint/defaults/lessThan.mjs +1 -1
  119. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.cjs +1 -1
  120. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.d.ts +1 -1
  121. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.mjs +1 -1
  122. package/dist/dataStructure/constraint/defaults/maxCharacters.cjs +1 -1
  123. package/dist/dataStructure/constraint/defaults/maxCharacters.d.ts +1 -1
  124. package/dist/dataStructure/constraint/defaults/maxCharacters.mjs +1 -1
  125. package/dist/dataStructure/constraint/defaults/maxElements.cjs +1 -1
  126. package/dist/dataStructure/constraint/defaults/maxElements.d.ts +1 -1
  127. package/dist/dataStructure/constraint/defaults/maxElements.mjs +1 -1
  128. package/dist/dataStructure/constraint/defaults/minCharacters.cjs +4 -4
  129. package/dist/dataStructure/constraint/defaults/minCharacters.d.ts +2 -2
  130. package/dist/dataStructure/constraint/defaults/minCharacters.mjs +4 -4
  131. package/dist/dataStructure/constraint/defaults/minElements.cjs +1 -1
  132. package/dist/dataStructure/constraint/defaults/minElements.d.ts +1 -1
  133. package/dist/dataStructure/constraint/defaults/minElements.mjs +1 -1
  134. package/dist/dataStructure/constraint/defaults/multipleOf.cjs +1 -1
  135. package/dist/dataStructure/constraint/defaults/multipleOf.d.ts +1 -1
  136. package/dist/dataStructure/constraint/defaults/multipleOf.mjs +1 -1
  137. package/dist/dataStructure/constraint/defaults/negative.cjs +1 -1
  138. package/dist/dataStructure/constraint/defaults/negative.d.ts +1 -1
  139. package/dist/dataStructure/constraint/defaults/negative.mjs +1 -1
  140. package/dist/dataStructure/constraint/defaults/notEmpty.cjs +1 -1
  141. package/dist/dataStructure/constraint/defaults/notEmpty.d.ts +1 -1
  142. package/dist/dataStructure/constraint/defaults/notEmpty.mjs +1 -1
  143. package/dist/dataStructure/constraint/defaults/notZero.cjs +1 -1
  144. package/dist/dataStructure/constraint/defaults/notZero.d.ts +1 -1
  145. package/dist/dataStructure/constraint/defaults/notZero.mjs +1 -1
  146. package/dist/dataStructure/constraint/defaults/numberInString.cjs +13 -0
  147. package/dist/dataStructure/constraint/defaults/numberInString.d.ts +10 -0
  148. package/dist/dataStructure/constraint/defaults/numberInString.mjs +12 -0
  149. package/dist/dataStructure/constraint/defaults/odd.cjs +1 -1
  150. package/dist/dataStructure/constraint/defaults/odd.d.ts +1 -1
  151. package/dist/dataStructure/constraint/defaults/odd.mjs +1 -1
  152. package/dist/dataStructure/constraint/defaults/path.cjs +13 -0
  153. package/dist/dataStructure/constraint/defaults/path.d.ts +10 -0
  154. package/dist/dataStructure/constraint/defaults/path.mjs +12 -0
  155. package/dist/dataStructure/constraint/defaults/positive.cjs +1 -1
  156. package/dist/dataStructure/constraint/defaults/positive.d.ts +1 -1
  157. package/dist/dataStructure/constraint/defaults/positive.mjs +1 -1
  158. package/dist/dataStructure/constraint/defaults/refine.cjs +1 -1
  159. package/dist/dataStructure/constraint/defaults/refine.d.ts +1 -1
  160. package/dist/dataStructure/constraint/defaults/refine.mjs +1 -1
  161. package/dist/dataStructure/constraint/defaults/regex.cjs +13 -0
  162. package/dist/dataStructure/constraint/defaults/regex.d.ts +10 -0
  163. package/dist/dataStructure/constraint/defaults/regex.mjs +12 -0
  164. package/dist/dataStructure/constraint/defaults/safe.cjs +1 -1
  165. package/dist/dataStructure/constraint/defaults/safe.d.ts +1 -1
  166. package/dist/dataStructure/constraint/defaults/safe.mjs +1 -1
  167. package/dist/dataStructure/constraint/defaults/segmentPath.cjs +13 -0
  168. package/dist/dataStructure/constraint/defaults/segmentPath.d.ts +10 -0
  169. package/dist/dataStructure/constraint/defaults/segmentPath.mjs +12 -0
  170. package/dist/dataStructure/constraint/defaults/strictNegative.cjs +1 -1
  171. package/dist/dataStructure/constraint/defaults/strictNegative.d.ts +1 -1
  172. package/dist/dataStructure/constraint/defaults/strictNegative.mjs +1 -1
  173. package/dist/dataStructure/constraint/defaults/strictPositive.cjs +1 -1
  174. package/dist/dataStructure/constraint/defaults/strictPositive.d.ts +1 -1
  175. package/dist/dataStructure/constraint/defaults/strictPositive.mjs +1 -1
  176. package/dist/dataStructure/constraint/defaults/stringLengthEqual.cjs +1 -1
  177. package/dist/dataStructure/constraint/defaults/stringLengthEqual.d.ts +1 -1
  178. package/dist/dataStructure/constraint/defaults/stringLengthEqual.mjs +1 -1
  179. package/dist/dataStructure/constraint/defaults/trimmed.cjs +13 -0
  180. package/dist/dataStructure/constraint/defaults/trimmed.d.ts +10 -0
  181. package/dist/dataStructure/constraint/defaults/trimmed.mjs +12 -0
  182. package/dist/dataStructure/constraint/defaults/url.cjs +2 -2
  183. package/dist/dataStructure/constraint/defaults/url.d.ts +2 -3
  184. package/dist/dataStructure/constraint/defaults/url.mjs +2 -2
  185. package/dist/dataStructure/constraint/defaults/uuid.cjs +2 -4
  186. package/dist/dataStructure/constraint/defaults/uuid.d.ts +1 -3
  187. package/dist/dataStructure/constraint/defaults/uuid.mjs +4 -5
  188. package/dist/dataStructure/constraint/identifier.d.ts +3 -4
  189. package/dist/dataStructure/constraint/types/constraints.d.ts +22 -15
  190. package/dist/dataStructure/fundamentalType/base.cjs +3 -3
  191. package/dist/dataStructure/fundamentalType/base.d.ts +4 -5
  192. package/dist/dataStructure/fundamentalType/base.mjs +3 -3
  193. package/dist/dataStructure/fundamentalType/defaults/bigint.cjs +4 -2
  194. package/dist/dataStructure/fundamentalType/defaults/bigint.d.ts +4 -4
  195. package/dist/dataStructure/fundamentalType/defaults/bigint.mjs +5 -2
  196. package/dist/dataStructure/fundamentalType/defaults/boolean.cjs +4 -2
  197. package/dist/dataStructure/fundamentalType/defaults/boolean.d.ts +4 -4
  198. package/dist/dataStructure/fundamentalType/defaults/boolean.mjs +5 -2
  199. package/dist/dataStructure/fundamentalType/defaults/date.cjs +4 -2
  200. package/dist/dataStructure/fundamentalType/defaults/date.d.ts +4 -4
  201. package/dist/dataStructure/fundamentalType/defaults/date.mjs +5 -2
  202. package/dist/dataStructure/fundamentalType/defaults/null.cjs +4 -2
  203. package/dist/dataStructure/fundamentalType/defaults/null.d.ts +4 -4
  204. package/dist/dataStructure/fundamentalType/defaults/null.mjs +5 -2
  205. package/dist/dataStructure/fundamentalType/defaults/number.cjs +4 -2
  206. package/dist/dataStructure/fundamentalType/defaults/number.d.ts +4 -4
  207. package/dist/dataStructure/fundamentalType/defaults/number.mjs +5 -2
  208. package/dist/dataStructure/fundamentalType/defaults/string.cjs +4 -2
  209. package/dist/dataStructure/fundamentalType/defaults/string.d.ts +4 -4
  210. package/dist/dataStructure/fundamentalType/defaults/string.mjs +5 -2
  211. package/dist/dataStructure/fundamentalType/defaults/time.cjs +4 -2
  212. package/dist/dataStructure/fundamentalType/defaults/time.d.ts +4 -4
  213. package/dist/dataStructure/fundamentalType/defaults/time.mjs +5 -2
  214. package/dist/dataStructure/fundamentalType/defaults/undefined.cjs +4 -2
  215. package/dist/dataStructure/fundamentalType/defaults/undefined.d.ts +4 -4
  216. package/dist/dataStructure/fundamentalType/defaults/undefined.mjs +5 -2
  217. package/dist/dataStructure/fundamentalType/identifier.d.ts +3 -4
  218. package/dist/dataStructure/helpers/absolutePath.cjs +7 -0
  219. package/dist/dataStructure/helpers/absolutePath.d.ts +2 -0
  220. package/dist/dataStructure/helpers/absolutePath.mjs +7 -0
  221. package/dist/dataStructure/helpers/array.d.ts +1 -1
  222. package/dist/dataStructure/helpers/bigint.d.ts +1 -1
  223. package/dist/dataStructure/helpers/boolean.d.ts +1 -1
  224. package/dist/dataStructure/helpers/date.d.ts +1 -1
  225. package/dist/dataStructure/helpers/extend.d.ts +1 -1
  226. package/dist/dataStructure/helpers/index.d.ts +10 -1
  227. package/dist/dataStructure/helpers/isNullable.cjs +12 -0
  228. package/dist/dataStructure/helpers/isNullable.d.ts +2 -0
  229. package/dist/dataStructure/helpers/isNullable.mjs +12 -0
  230. package/dist/dataStructure/helpers/isOptional.cjs +12 -0
  231. package/dist/dataStructure/helpers/isOptional.d.ts +2 -0
  232. package/dist/dataStructure/helpers/isOptional.mjs +12 -0
  233. package/dist/dataStructure/helpers/lazy.d.ts +1 -1
  234. package/dist/dataStructure/helpers/null.d.ts +1 -1
  235. package/dist/dataStructure/helpers/nullable.cjs +5 -2
  236. package/dist/dataStructure/helpers/nullable.mjs +5 -2
  237. package/dist/dataStructure/helpers/number.d.ts +1 -1
  238. package/dist/dataStructure/helpers/numberInString.cjs +7 -0
  239. package/dist/dataStructure/helpers/numberInString.d.ts +2 -0
  240. package/dist/dataStructure/helpers/numberInString.mjs +7 -0
  241. package/dist/dataStructure/helpers/object.d.ts +1 -1
  242. package/dist/dataStructure/helpers/optional.cjs +5 -2
  243. package/dist/dataStructure/helpers/optional.mjs +5 -2
  244. package/dist/dataStructure/helpers/partial.cjs +5 -2
  245. package/dist/dataStructure/helpers/partial.mjs +5 -2
  246. package/dist/dataStructure/helpers/path.cjs +7 -0
  247. package/dist/dataStructure/helpers/path.d.ts +2 -0
  248. package/dist/dataStructure/helpers/path.mjs +7 -0
  249. package/dist/dataStructure/helpers/record.d.ts +1 -1
  250. package/dist/dataStructure/helpers/regex.cjs +7 -0
  251. package/dist/dataStructure/helpers/regex.d.ts +2 -0
  252. package/dist/dataStructure/helpers/regex.mjs +7 -0
  253. package/dist/dataStructure/helpers/required.cjs +6 -3
  254. package/dist/dataStructure/helpers/required.d.ts +2 -1
  255. package/dist/dataStructure/helpers/required.mjs +6 -3
  256. package/dist/dataStructure/helpers/segmentPath.cjs +7 -0
  257. package/dist/dataStructure/helpers/segmentPath.d.ts +2 -0
  258. package/dist/dataStructure/helpers/segmentPath.mjs +7 -0
  259. package/dist/dataStructure/helpers/string.d.ts +1 -1
  260. package/dist/dataStructure/helpers/time.d.ts +1 -1
  261. package/dist/dataStructure/helpers/trimmed.cjs +7 -0
  262. package/dist/dataStructure/helpers/trimmed.d.ts +2 -0
  263. package/dist/dataStructure/helpers/trimmed.mjs +7 -0
  264. package/dist/dataStructure/helpers/undefined.d.ts +1 -1
  265. package/dist/dataStructure/helpers/union.d.ts +1 -1
  266. package/dist/dataStructure/helpers/unwrapLazy.cjs +9 -0
  267. package/dist/dataStructure/helpers/unwrapLazy.d.ts +2 -0
  268. package/dist/dataStructure/helpers/unwrapLazy.mjs +9 -0
  269. package/dist/dataStructure/helpers/url.cjs +2 -2
  270. package/dist/dataStructure/helpers/url.d.ts +1 -2
  271. package/dist/dataStructure/helpers/url.mjs +2 -2
  272. package/dist/dataStructure/index.cjs +158 -60
  273. package/dist/dataStructure/index.mjs +80 -21
  274. package/dist/dataStructure/structure/base.cjs +22 -12
  275. package/dist/dataStructure/structure/base.d.ts +8 -5
  276. package/dist/dataStructure/structure/base.mjs +16 -6
  277. package/dist/dataStructure/structure/defaults/array.d.ts +2 -2
  278. package/dist/dataStructure/structure/defaults/index.d.ts +1 -0
  279. package/dist/dataStructure/structure/defaults/lazy.cjs +10 -3
  280. package/dist/dataStructure/structure/defaults/lazy.d.ts +2 -2
  281. package/dist/dataStructure/structure/defaults/lazy.mjs +10 -3
  282. package/dist/dataStructure/structure/defaults/nonEncodableString.cjs +17 -0
  283. package/dist/dataStructure/structure/defaults/nonEncodableString.d.ts +10 -0
  284. package/dist/dataStructure/structure/defaults/nonEncodableString.mjs +16 -0
  285. package/dist/dataStructure/structure/defaults/object.d.ts +2 -2
  286. package/dist/dataStructure/structure/defaults/record.cjs +7 -7
  287. package/dist/dataStructure/structure/defaults/record.d.ts +3 -3
  288. package/dist/dataStructure/structure/defaults/record.mjs +7 -7
  289. package/dist/dataStructure/structure/defaults/type.cjs +1 -1
  290. package/dist/dataStructure/structure/defaults/type.d.ts +2 -2
  291. package/dist/dataStructure/structure/defaults/type.mjs +2 -2
  292. package/dist/dataStructure/structure/defaults/union.cjs +23 -17
  293. package/dist/dataStructure/structure/defaults/union.d.ts +3 -3
  294. package/dist/dataStructure/structure/defaults/union.mjs +21 -15
  295. package/dist/dataStructure/structure/identifier.d.ts +3 -4
  296. package/dist/dataStructure/structure/types/constraintsValue.d.ts +1 -1
  297. package/dist/dataStructure/structure/types/structures.d.ts +2 -1
  298. package/dist/dataStructure/structure/types/value.d.ts +1 -1
  299. package/dist/dataStructure/type/base.cjs +17 -4
  300. package/dist/dataStructure/type/base.d.ts +7 -3
  301. package/dist/dataStructure/type/base.mjs +17 -4
  302. package/dist/dataStructure/type/defaults/bigint.d.ts +1 -1
  303. package/dist/dataStructure/type/defaults/bigintLiteral.cjs +1 -1
  304. package/dist/dataStructure/type/defaults/bigintLiteral.d.ts +1 -1
  305. package/dist/dataStructure/type/defaults/bigintLiteral.mjs +1 -1
  306. package/dist/dataStructure/type/defaults/boolean.d.ts +1 -1
  307. package/dist/dataStructure/type/defaults/booleanLiteral.cjs +1 -1
  308. package/dist/dataStructure/type/defaults/booleanLiteral.d.ts +1 -1
  309. package/dist/dataStructure/type/defaults/booleanLiteral.mjs +1 -1
  310. package/dist/dataStructure/type/defaults/date.d.ts +1 -1
  311. package/dist/dataStructure/type/defaults/null.d.ts +1 -1
  312. package/dist/dataStructure/type/defaults/number.d.ts +1 -1
  313. package/dist/dataStructure/type/defaults/numberLiteral.cjs +1 -1
  314. package/dist/dataStructure/type/defaults/numberLiteral.d.ts +1 -1
  315. package/dist/dataStructure/type/defaults/numberLiteral.mjs +1 -1
  316. package/dist/dataStructure/type/defaults/string.d.ts +1 -1
  317. package/dist/dataStructure/type/defaults/stringLiteral.cjs +1 -1
  318. package/dist/dataStructure/type/defaults/stringLiteral.d.ts +1 -1
  319. package/dist/dataStructure/type/defaults/stringLiteral.mjs +1 -1
  320. package/dist/dataStructure/type/defaults/time.d.ts +1 -1
  321. package/dist/dataStructure/type/defaults/undefined.d.ts +1 -1
  322. package/dist/dataStructure/type/identifier.d.ts +3 -4
  323. package/dist/either/index.cjs +30 -8
  324. package/dist/either/index.d.ts +4 -0
  325. package/dist/either/index.mjs +23 -9
  326. package/dist/either/left/index.d.ts +3 -2
  327. package/dist/either/left/none.cjs +15 -0
  328. package/dist/either/left/none.d.ts +7 -0
  329. package/dist/either/left/none.mjs +14 -0
  330. package/dist/either/matchInformationOtherwise.d.ts +1 -1
  331. package/dist/either/rewriteInformation.cjs +22 -0
  332. package/dist/either/rewriteInformation.d.ts +14 -0
  333. package/dist/either/rewriteInformation.mjs +22 -0
  334. package/dist/either/right/asyncGroup.cjs +2 -2
  335. package/dist/either/right/asyncGroup.mjs +2 -2
  336. package/dist/either/right/group.cjs +1 -1
  337. package/dist/either/right/group.mjs +1 -1
  338. package/dist/either/right/index.d.ts +6 -5
  339. package/dist/either/right/some.cjs +15 -0
  340. package/dist/either/right/some.d.ts +7 -0
  341. package/dist/either/right/some.mjs +14 -0
  342. package/dist/either/toMaybe.cjs +12 -0
  343. package/dist/either/toMaybe.d.ts +5 -0
  344. package/dist/either/toMaybe.mjs +12 -0
  345. package/dist/either/types/mayBe.d.ts +3 -0
  346. package/dist/either/unwrapOr.cjs +14 -0
  347. package/dist/either/unwrapOr.d.ts +8 -0
  348. package/dist/either/unwrapOr.mjs +14 -0
  349. package/dist/either/unwrapOtherwise.cjs +14 -0
  350. package/dist/either/unwrapOtherwise.d.ts +8 -0
  351. package/dist/either/unwrapOtherwise.mjs +14 -0
  352. package/dist/generator/asyncChunk.d.ts +3 -2
  353. package/dist/generator/chunk.d.ts +3 -2
  354. package/dist/generator/reduce.cjs +2 -1
  355. package/dist/generator/reduce.mjs +1 -1
  356. package/dist/generator/types/flat.d.ts +2 -2
  357. package/dist/index.cjs +43 -39
  358. package/dist/index.mjs +4 -2
  359. package/dist/invocation/flow/base.d.ts +8 -3
  360. package/dist/invocation/flow/controller/base.d.ts +1 -0
  361. package/dist/invocation/flow/controller/defaults/aborter.cjs +38 -0
  362. package/dist/invocation/flow/controller/defaults/aborter.d.ts +17 -0
  363. package/dist/invocation/flow/controller/defaults/aborter.mjs +36 -0
  364. package/dist/invocation/flow/controller/defaults/debounce.d.ts +1 -1
  365. package/dist/invocation/flow/controller/defaults/filter.cjs +5 -3
  366. package/dist/invocation/flow/controller/defaults/filter.d.ts +1 -1
  367. package/dist/invocation/flow/controller/defaults/filter.mjs +5 -3
  368. package/dist/invocation/flow/controller/defaults/index.d.ts +1 -0
  369. package/dist/invocation/flow/controller/defaults/retry.d.ts +1 -1
  370. package/dist/invocation/flow/controller/defaults/throttling.d.ts +1 -1
  371. package/dist/invocation/flow/controller/defaults/timeout.d.ts +1 -1
  372. package/dist/invocation/index.cjs +15 -8
  373. package/dist/invocation/index.d.ts +1 -1
  374. package/dist/invocation/index.mjs +10 -6
  375. package/dist/invocation/reader.cjs +26 -0
  376. package/dist/invocation/reader.d.ts +28 -0
  377. package/dist/invocation/reader.mjs +25 -0
  378. package/dist/kind/createIdentifier.d.ts +8 -4
  379. package/dist/kind/types/getName.d.ts +2 -0
  380. package/dist/kind/types/getNamespaceName.d.ts +3 -0
  381. package/dist/kind/types/index.d.ts +2 -0
  382. package/dist/kind/types/remove.d.ts +2 -2
  383. package/dist/modeling/entity/base.cjs +38 -11
  384. package/dist/modeling/entity/base.d.ts +25 -10
  385. package/dist/modeling/entity/base.mjs +32 -6
  386. package/dist/modeling/entity/helper.d.ts +1 -1
  387. package/dist/modeling/entity/index.d.ts +0 -1
  388. package/dist/modeling/entity/namespace.cjs +2 -2
  389. package/dist/modeling/entity/namespace.d.ts +1 -1
  390. package/dist/modeling/entity/namespace.mjs +3 -3
  391. package/dist/modeling/flag/base.cjs +1 -5
  392. package/dist/modeling/flag/base.d.ts +6 -7
  393. package/dist/modeling/flag/base.mjs +1 -5
  394. package/dist/modeling/index.cjs +45 -28
  395. package/dist/modeling/index.d.ts +1 -0
  396. package/dist/modeling/index.mjs +18 -9
  397. package/dist/modeling/newType/base.cjs +34 -13
  398. package/dist/modeling/newType/base.d.ts +9 -2
  399. package/dist/modeling/newType/base.mjs +26 -7
  400. package/dist/modeling/newType/helper.cjs +2 -2
  401. package/dist/modeling/newType/helper.d.ts +1 -1
  402. package/dist/modeling/newType/helper.mjs +2 -2
  403. package/dist/modeling/taggedObject/base.cjs +113 -0
  404. package/dist/modeling/taggedObject/base.d.ts +61 -0
  405. package/dist/modeling/taggedObject/base.mjs +110 -0
  406. package/dist/modeling/taggedObject/helper.cjs +34 -0
  407. package/dist/modeling/taggedObject/helper.d.ts +15 -0
  408. package/dist/modeling/taggedObject/helper.mjs +31 -0
  409. package/dist/modeling/taggedObject/index.d.ts +2 -0
  410. package/dist/number/betweenThan.d.ts +2 -2
  411. package/dist/number/betweenThanOrEqual.d.ts +2 -2
  412. package/dist/number/greaterThan.d.ts +1 -1
  413. package/dist/number/greaterThanOrEqual.d.ts +1 -1
  414. package/dist/number/index.cjs +0 -3
  415. package/dist/number/index.d.ts +0 -1
  416. package/dist/number/index.mjs +1 -3
  417. package/dist/number/lessThan.d.ts +1 -1
  418. package/dist/number/lessThanOrEqual.d.ts +1 -1
  419. package/dist/number/sort.d.ts +1 -1
  420. package/dist/number/types/isGreater.d.ts +5 -5
  421. package/dist/object/assign.d.ts +3 -3
  422. package/dist/object/types/assign.d.ts +2 -0
  423. package/dist/object/types/forbiddenUndefinedProps.d.ts +3 -0
  424. package/dist/object/types/index.d.ts +4 -2
  425. package/dist/object/types/override.d.ts +4 -0
  426. package/dist/object/types/split.d.ts +2 -2
  427. package/dist/path/computeRelative.cjs +5 -6
  428. package/dist/path/computeRelative.d.ts +1 -1
  429. package/dist/path/computeRelative.mjs +5 -6
  430. package/dist/path/constraints/absolute.d.ts +1 -1
  431. package/dist/path/constraints/index.d.ts +2 -1
  432. package/dist/path/constraints/segment.d.ts +3 -0
  433. package/dist/path/getBaseName.cjs +7 -7
  434. package/dist/path/getBaseName.d.ts +2 -2
  435. package/dist/path/getBaseName.mjs +7 -7
  436. package/dist/path/getExtensionName.cjs +9 -4
  437. package/dist/path/getExtensionName.d.ts +2 -2
  438. package/dist/path/getExtensionName.mjs +9 -4
  439. package/dist/path/getParentFolderPath.cjs +9 -4
  440. package/dist/path/getParentFolderPath.d.ts +1 -2
  441. package/dist/path/getParentFolderPath.mjs +9 -4
  442. package/dist/path/index.cjs +6 -3
  443. package/dist/path/index.d.ts +3 -2
  444. package/dist/path/index.mjs +5 -3
  445. package/dist/path/is.cjs +9 -4
  446. package/dist/path/is.d.ts +4 -2
  447. package/dist/path/is.mjs +9 -4
  448. package/dist/path/isAbsolute.cjs +3 -5
  449. package/dist/path/isAbsolute.d.ts +4 -2
  450. package/dist/path/isAbsolute.mjs +3 -5
  451. package/dist/path/isSegment.cjs +6 -0
  452. package/dist/path/isSegment.d.ts +4 -0
  453. package/dist/path/isSegment.mjs +6 -0
  454. package/dist/path/normalize.cjs +18 -0
  455. package/dist/path/normalize.d.ts +2 -0
  456. package/dist/path/normalize.mjs +18 -0
  457. package/dist/path/resolveFrom.cjs +4 -5
  458. package/dist/path/resolveFrom.d.ts +10 -2
  459. package/dist/path/resolveFrom.mjs +4 -5
  460. package/dist/path/resolveRelative.cjs +17 -20
  461. package/dist/path/resolveRelative.d.ts +9 -2
  462. package/dist/path/resolveRelative.mjs +17 -20
  463. package/dist/path/types/index.d.ts +6 -0
  464. package/dist/path/types/isLiteralAbsolutePath.d.ts +2 -0
  465. package/dist/path/types/isLiteralPath.d.ts +20 -0
  466. package/dist/path/types/isLiteralSegmentPath.d.ts +9 -0
  467. package/dist/path/types/requireLiteralAbsolutePath.d.ts +3 -0
  468. package/dist/path/types/requireLiteralPath.d.ts +3 -0
  469. package/dist/path/types/requireLiteralSegmentPath.d.ts +3 -0
  470. package/dist/pattern/index.cjs +12 -0
  471. package/dist/pattern/index.d.ts +4 -0
  472. package/dist/pattern/index.mjs +9 -1
  473. package/dist/pattern/matchWithEntity.cjs +12 -0
  474. package/dist/pattern/matchWithEntity.d.ts +12 -0
  475. package/dist/pattern/matchWithEntity.mjs +12 -0
  476. package/dist/pattern/matchWithEntityOtherwise.cjs +13 -0
  477. package/dist/pattern/matchWithEntityOtherwise.d.ts +14 -0
  478. package/dist/pattern/matchWithEntityOtherwise.mjs +13 -0
  479. package/dist/pattern/matchWithNumber.d.ts +4 -4
  480. package/dist/pattern/matchWithNumberOtherwise.cjs +2 -6
  481. package/dist/pattern/matchWithNumberOtherwise.d.ts +4 -4
  482. package/dist/pattern/matchWithNumberOtherwise.mjs +2 -6
  483. package/dist/pattern/matchWithString.d.ts +4 -4
  484. package/dist/pattern/matchWithStringOtherwise.cjs +2 -6
  485. package/dist/pattern/matchWithStringOtherwise.d.ts +5 -5
  486. package/dist/pattern/matchWithStringOtherwise.mjs +2 -6
  487. package/dist/pattern/matchWithTaggedObject.cjs +12 -0
  488. package/dist/pattern/matchWithTaggedObject.d.ts +12 -0
  489. package/dist/pattern/matchWithTaggedObject.mjs +12 -0
  490. package/dist/pattern/matchWithTaggedObjectOtherwise.cjs +13 -0
  491. package/dist/pattern/matchWithTaggedObjectOtherwise.d.ts +14 -0
  492. package/dist/pattern/matchWithTaggedObjectOtherwise.mjs +13 -0
  493. package/dist/string/at.d.ts +2 -2
  494. package/dist/string/constraints/allowedCharacters.d.ts +3 -3
  495. package/dist/string/constraints/index.d.ts +2 -1
  496. package/dist/string/constraints/number.d.ts +4 -0
  497. package/dist/string/first.d.ts +1 -1
  498. package/dist/string/index.cjs +6 -3
  499. package/dist/string/index.d.ts +1 -1
  500. package/dist/string/index.mjs +5 -3
  501. package/dist/string/isComposedOf.cjs +0 -1
  502. package/dist/string/isComposedOf.d.ts +5 -8
  503. package/dist/string/isComposedOf.mjs +0 -1
  504. package/dist/string/isNumber.cjs +7 -0
  505. package/dist/string/isNumber.d.ts +5 -0
  506. package/dist/string/isNumber.mjs +7 -0
  507. package/dist/string/isUrl.cjs +2 -11
  508. package/dist/string/isUrl.d.ts +1 -5
  509. package/dist/string/isUrl.mjs +2 -11
  510. package/dist/string/last.d.ts +1 -1
  511. package/dist/string/lengthEqual.d.ts +1 -1
  512. package/dist/string/maxCharacters.d.ts +1 -1
  513. package/dist/string/minCharacters.d.ts +1 -1
  514. package/dist/string/padEnd.d.ts +1 -1
  515. package/dist/string/padStart.d.ts +1 -1
  516. package/dist/string/pop.d.ts +1 -1
  517. package/dist/string/shift.d.ts +1 -1
  518. package/dist/string/slice.d.ts +1 -1
  519. package/dist/string/substring.d.ts +1 -1
  520. package/dist/string/to.d.ts +9 -2
  521. package/dist/string/trim/default.d.ts +1 -1
  522. package/dist/string/trim/end.d.ts +1 -1
  523. package/dist/string/trim/index.d.ts +1 -0
  524. package/dist/string/trim/is.cjs +6 -0
  525. package/dist/string/trim/is.d.ts +2 -0
  526. package/dist/string/trim/is.mjs +6 -0
  527. package/dist/string/trim/start.d.ts +1 -1
  528. package/dist/string/types/IsAllowedString.d.ts +5 -0
  529. package/dist/string/types/index.d.ts +5 -5
  530. package/dist/string/types/numberInString.d.ts +1 -0
  531. package/dist/string/types/split.d.ts +1 -1
  532. package/dist/tuple/from.cjs +6 -0
  533. package/dist/tuple/from.d.ts +8 -0
  534. package/dist/tuple/from.mjs +6 -0
  535. package/dist/tuple/index.cjs +6 -1
  536. package/dist/tuple/index.d.ts +1 -0
  537. package/dist/tuple/index.mjs +6 -2
  538. package/package.json +2 -2
  539. package/dist/array/infer.d.ts +0 -14
  540. package/dist/array/infer.mjs +0 -6
  541. package/dist/dataStructure/common/codec.cjs +0 -28
  542. package/dist/dataStructure/common/codec.mjs +0 -25
  543. package/dist/dataStructure/common/error.cjs +0 -53
  544. package/dist/dataStructure/common/error.d.ts +0 -30
  545. package/dist/dataStructure/common/error.mjs +0 -52
  546. package/dist/invocation/useCase.cjs +0 -26
  547. package/dist/invocation/useCase.d.ts +0 -28
  548. package/dist/invocation/useCase.mjs +0 -25
  549. package/dist/modeling/entity/entityName.cjs +0 -13
  550. package/dist/modeling/entity/entityName.d.ts +0 -13
  551. package/dist/modeling/entity/entityName.mjs +0 -13
  552. package/dist/number/infer.cjs +0 -6
  553. package/dist/number/infer.d.ts +0 -12
  554. package/dist/number/infer.mjs +0 -6
  555. package/dist/object/types/assignObjects.d.ts +0 -2
  556. package/dist/path/fix.cjs +0 -8
  557. package/dist/path/fix.d.ts +0 -1
  558. package/dist/path/fix.mjs +0 -8
  559. package/dist/string/infer.cjs +0 -6
  560. package/dist/string/infer.d.ts +0 -12
  561. package/dist/string/types/number.d.ts +0 -1
@@ -0,0 +1,36 @@
1
+ import { parentClass } from "../../../../kind/parentClass.mjs";
2
+ import { left } from "../../../../either/left/create.mjs";
3
+ import { stringToMillisecond } from "../../../../common/stringToMillisecond.mjs";
4
+ import { createKind } from "../../../kind.mjs";
5
+ import { createFlowController, flowControllerExitKind } from "../base.mjs";
6
+ //#region scripts/invocation/flow/controller/defaults/aborter.ts
7
+ const flowControllerAborterKind = createKind("flow-controller-aborter");
8
+ var AbortErrorFlowController = class extends parentClass(createKind("abort-error-flow-controller"), Error) {
9
+ abortController;
10
+ constructor(abortController) {
11
+ super(null, "Flow is aborted by FlowControllerAborter.");
12
+ this.abortController = abortController;
13
+ }
14
+ };
15
+ const aborter = createFlowController(flowControllerAborterKind, ({ init, exitFlow }) => (theFunction, params) => {
16
+ let aborter = void 0;
17
+ const formattedTimeout = params?.timeout === void 0 ? void 0 : stringToMillisecond(params.timeout);
18
+ return init(async (previousFunction) => {
19
+ const result = previousFunction();
20
+ if (flowControllerExitKind.has(result)) return result;
21
+ aborter?.abort(new AbortErrorFlowController(aborter));
22
+ const currentAborter = new AbortController();
23
+ aborter = currentAborter;
24
+ if (formattedTimeout !== void 0) setTimeout(() => void currentAborter.abort(new AbortErrorFlowController(currentAborter)), formattedTimeout);
25
+ try {
26
+ const abortResult = await theFunction(result, currentAborter);
27
+ if (currentAborter.signal.aborted === true) return exitFlow(left("signal-aborted", currentAborter.signal.reason));
28
+ return abortResult;
29
+ } catch (error) {
30
+ if (error instanceof AbortErrorFlowController) return exitFlow(left("signal-aborted", currentAborter.signal.reason));
31
+ throw error;
32
+ }
33
+ });
34
+ });
35
+ //#endregion
36
+ export { AbortErrorFlowController, aborter, flowControllerAborterKind };
@@ -3,6 +3,6 @@ import * as DCommon from '../../../../common';
3
3
  import type * as DKind from '../../../../kind';
4
4
  import * as DEither from '../../../../either';
5
5
  export declare const flowControllerDebounceKind: DKind.Handler<DKind.Definition<"@DuplojsLangInvocation/flow-controller-debounce", unknown>>;
6
- export interface FlowControllerDebounce<GenericInput extends unknown = unknown> extends DCommon.UnionToIntersection<FlowController<GenericInput, Promise<FlowControllerExit<DEither.Left<"debounce-reject">>>> & DKind.Kind<typeof flowControllerDebounceKind>> {
6
+ export interface FlowControllerDebounce<GenericInput extends unknown = unknown> extends DCommon.Forward<FlowController<GenericInput, Promise<FlowControllerExit<DEither.Left<"debounce-reject">>>> & DKind.Kind<typeof flowControllerDebounceKind>> {
7
7
  }
8
8
  export declare const debounce: <GenericInput extends unknown = unknown>(debounce: DCommon.TimeInString) => FlowControllerDebounce<GenericInput>;
@@ -7,9 +7,11 @@ const require_base = require("../base.cjs");
7
7
  const flowControllerFilterKind = require_kind.createKind("flow-controller-filter");
8
8
  const filter = require_base.createFlowController(flowControllerFilterKind, ({ init, exitFlow }) => (filterFunction) => init((previousFunction) => require_callThen.callThen(previousFunction(), (result) => {
9
9
  if (require_base.flowControllerExitKind.has(result)) return result;
10
- const filterResult = require_unwrap.unwrapRight(filterFunction(result));
11
- if (require_is.isLeft(filterResult)) return exitFlow(filterResult);
12
- return filterResult;
10
+ return require_callThen.callThen(filterFunction(result), (filterResult) => {
11
+ const result = require_unwrap.unwrapRight(filterResult);
12
+ if (require_is.isLeft(result)) return exitFlow(result);
13
+ return result;
14
+ });
13
15
  })));
14
16
  //#endregion
15
17
  exports.filter = filter;
@@ -3,6 +3,6 @@ import * as DCommon from '../../../../common';
3
3
  import type * as DKind from '../../../../kind';
4
4
  import * as DEither from '../../../../either';
5
5
  export declare const flowControllerFilterKind: DKind.Handler<DKind.Definition<"@DuplojsLangInvocation/flow-controller-filter", unknown>>;
6
- export interface FlowControllerFilter<GenericInput extends unknown = unknown, GenericOutput extends unknown = unknown> extends DCommon.UnionToIntersection<FlowController<GenericInput, GenericOutput extends DEither.Left ? FlowControllerExit<GenericOutput> : GenericOutput extends DEither.Right ? DEither.GetValue<GenericOutput> : GenericOutput> & DKind.Kind<typeof flowControllerFilterKind>> {
6
+ export interface FlowControllerFilter<GenericInput extends unknown = unknown, GenericOutput extends unknown = unknown> extends DCommon.Forward<FlowController<GenericInput, DCommon.SplitPromise<GenericOutput> extends infer InferredOutput ? InferredOutput extends unknown ? Awaited<InferredOutput> extends infer InferredAwaited ? (InferredAwaited extends DEither.Left ? FlowControllerExit<InferredAwaited> : InferredAwaited extends DEither.Right ? DEither.GetValue<InferredAwaited> : InferredAwaited) extends infer InferredResult ? InferredOutput extends Promise<unknown> ? Promise<InferredResult> : InferredResult : never : never : never : never> & DKind.Kind<typeof flowControllerFilterKind>> {
7
7
  }
8
8
  export declare const filter: <GenericInput extends unknown, GenericOutput extends unknown>(filterFunction: (input: GenericInput) => GenericOutput) => FlowControllerFilter<GenericInput, GenericOutput>;
@@ -7,9 +7,11 @@ import { createFlowController, flowControllerExitKind } from "../base.mjs";
7
7
  const flowControllerFilterKind = createKind("flow-controller-filter");
8
8
  const filter = createFlowController(flowControllerFilterKind, ({ init, exitFlow }) => (filterFunction) => init((previousFunction) => callThen(previousFunction(), (result) => {
9
9
  if (flowControllerExitKind.has(result)) return result;
10
- const filterResult = unwrapRight(filterFunction(result));
11
- if (isLeft(filterResult)) return exitFlow(filterResult);
12
- return filterResult;
10
+ return callThen(filterFunction(result), (filterResult) => {
11
+ const result = unwrapRight(filterResult);
12
+ if (isLeft(result)) return exitFlow(result);
13
+ return result;
14
+ });
13
15
  })));
14
16
  //#endregion
15
17
  export { filter, flowControllerFilterKind };
@@ -1,3 +1,4 @@
1
+ export * from './aborter';
1
2
  export * from './debounce';
2
3
  export * from './filter';
3
4
  export * from './retry';
@@ -2,7 +2,7 @@ import { FlowController } from '../base';
2
2
  import * as DCommon from '../../../../common';
3
3
  import type * as DKind from '../../../../kind';
4
4
  export declare const flowControllerRetryKind: DKind.Handler<DKind.Definition<"@DuplojsLangInvocation/flow-controller-retry", unknown>>;
5
- export interface FlowControllerRetry<GenericInput extends unknown = unknown> extends DCommon.UnionToIntersection<FlowController<GenericInput, Promise<never>> & DKind.Kind<typeof flowControllerRetryKind>> {
5
+ export interface FlowControllerRetry<GenericInput extends unknown = unknown> extends DCommon.Forward<FlowController<GenericInput, Promise<never>> & DKind.Kind<typeof flowControllerRetryKind>> {
6
6
  }
7
7
  export interface RetryParams {
8
8
  times?: number;
@@ -3,6 +3,6 @@ import * as DCommon from '../../../../common';
3
3
  import type * as DKind from '../../../../kind';
4
4
  import * as DEither from '../../../../either';
5
5
  export declare const flowControllerThrottlingKind: DKind.Handler<DKind.Definition<"@DuplojsLangInvocation/flow-controller-throttling", unknown>>;
6
- export interface FlowControllerThrottling<GenericInput extends unknown = unknown> extends DCommon.UnionToIntersection<FlowController<GenericInput, Promise<FlowControllerExit<DEither.Left<"throttling-reject">>>> & DKind.Kind<typeof flowControllerThrottlingKind>> {
6
+ export interface FlowControllerThrottling<GenericInput extends unknown = unknown> extends DCommon.Forward<FlowController<GenericInput, Promise<FlowControllerExit<DEither.Left<"throttling-reject">>>> & DKind.Kind<typeof flowControllerThrottlingKind>> {
7
7
  }
8
8
  export declare const throttling: <GenericInput extends unknown = unknown>(throttling: DCommon.TimeInString) => FlowControllerThrottling<GenericInput>;
@@ -2,6 +2,6 @@ import { FlowController } from '../base';
2
2
  import * as DCommon from '../../../../common';
3
3
  import type * as DKind from '../../../../kind';
4
4
  export declare const flowControllerTimeoutKind: DKind.Handler<DKind.Definition<"@DuplojsLangInvocation/flow-controller-timeout", unknown>>;
5
- export interface FlowControllerTimeout<GenericInput extends unknown = unknown> extends DCommon.UnionToIntersection<FlowController<GenericInput, Promise<never>> & DKind.Kind<typeof flowControllerTimeoutKind>> {
5
+ export interface FlowControllerTimeout<GenericInput extends unknown = unknown> extends DCommon.Forward<FlowController<GenericInput, Promise<never>> & DKind.Kind<typeof flowControllerTimeoutKind>> {
6
6
  }
7
7
  export declare const timeout: <GenericInput extends unknown = unknown>(timeout: DCommon.TimeInString) => FlowControllerTimeout<GenericInput>;
@@ -2,6 +2,7 @@ const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
2
  const require_evidence = require("./evidence.cjs");
3
3
  const require_kind = require("./kind.cjs");
4
4
  const require_base = require("./flow/controller/base.cjs");
5
+ const require_aborter = require("./flow/controller/defaults/aborter.cjs");
5
6
  const require_debounce = require("./flow/controller/defaults/debounce.cjs");
6
7
  const require_filter = require("./flow/controller/defaults/filter.cjs");
7
8
  const require_retry = require("./flow/controller/defaults/retry.cjs");
@@ -9,18 +10,21 @@ const require_throttling = require("./flow/controller/defaults/throttling.cjs");
9
10
  const require_timeout = require("./flow/controller/defaults/timeout.cjs");
10
11
  const require_base$1 = require("./flow/base.cjs");
11
12
  const require_port = require("./port.cjs");
12
- const require_useCase = require("./useCase.cjs");
13
+ const require_reader = require("./reader.cjs");
13
14
  //#region scripts/invocation/index.ts
14
15
  var invocation_exports = /* @__PURE__ */ require_runtime.__exportAll({
16
+ AbortErrorFlowController: () => require_aborter.AbortErrorFlowController,
17
+ aborter: () => require_aborter.aborter,
15
18
  appendEvidence: () => require_evidence.appendEvidence,
16
19
  createFlowController: () => require_base.createFlowController,
17
20
  createKind: () => require_kind.createKind,
18
21
  createPort: () => require_port.createPort,
19
- createUseCase: () => require_useCase.createUseCase,
22
+ createReader: () => require_reader.createReader,
20
23
  debounce: () => require_debounce.debounce,
21
24
  evidenceResult: () => require_evidence.evidenceResult,
22
25
  filter: () => require_filter.filter,
23
26
  flow: () => require_base$1.flow,
27
+ flowControllerAborterKind: () => require_aborter.flowControllerAborterKind,
24
28
  flowControllerDebounceKind: () => require_debounce.flowControllerDebounceKind,
25
29
  flowControllerExitKind: () => require_base.flowControllerExitKind,
26
30
  flowControllerFilterKind: () => require_filter.flowControllerFilterKind,
@@ -29,22 +33,25 @@ var invocation_exports = /* @__PURE__ */ require_runtime.__exportAll({
29
33
  flowControllerThrottlingKind: () => require_throttling.flowControllerThrottlingKind,
30
34
  flowControllerTimeoutKind: () => require_timeout.flowControllerTimeoutKind,
31
35
  portHandlerKind: () => require_port.portHandlerKind,
36
+ readerKind: () => require_reader.readerKind,
37
+ resolveReaders: () => require_reader.resolveReaders,
32
38
  retry: () => require_retry.retry,
33
39
  throttling: () => require_throttling.throttling,
34
- timeout: () => require_timeout.timeout,
35
- useCaseHandlerKind: () => require_useCase.useCaseHandlerKind,
36
- wireUseCases: () => require_useCase.wireUseCases
40
+ timeout: () => require_timeout.timeout
37
41
  });
38
42
  //#endregion
43
+ exports.AbortErrorFlowController = require_aborter.AbortErrorFlowController;
44
+ exports.aborter = require_aborter.aborter;
39
45
  exports.appendEvidence = require_evidence.appendEvidence;
40
46
  exports.createFlowController = require_base.createFlowController;
41
47
  exports.createKind = require_kind.createKind;
42
48
  exports.createPort = require_port.createPort;
43
- exports.createUseCase = require_useCase.createUseCase;
49
+ exports.createReader = require_reader.createReader;
44
50
  exports.debounce = require_debounce.debounce;
45
51
  exports.evidenceResult = require_evidence.evidenceResult;
46
52
  exports.filter = require_filter.filter;
47
53
  exports.flow = require_base$1.flow;
54
+ exports.flowControllerAborterKind = require_aborter.flowControllerAborterKind;
48
55
  exports.flowControllerDebounceKind = require_debounce.flowControllerDebounceKind;
49
56
  exports.flowControllerExitKind = require_base.flowControllerExitKind;
50
57
  exports.flowControllerFilterKind = require_filter.flowControllerFilterKind;
@@ -59,8 +66,8 @@ Object.defineProperty(exports, "invocation_exports", {
59
66
  }
60
67
  });
61
68
  exports.portHandlerKind = require_port.portHandlerKind;
69
+ exports.readerKind = require_reader.readerKind;
70
+ exports.resolveReaders = require_reader.resolveReaders;
62
71
  exports.retry = require_retry.retry;
63
72
  exports.throttling = require_throttling.throttling;
64
73
  exports.timeout = require_timeout.timeout;
65
- exports.useCaseHandlerKind = require_useCase.useCaseHandlerKind;
66
- exports.wireUseCases = require_useCase.wireUseCases;
@@ -2,4 +2,4 @@ export * from './evidence';
2
2
  export * from './flow';
3
3
  export * from './kind';
4
4
  export * from './port';
5
- export * from './useCase';
5
+ export * from './reader';
@@ -2,6 +2,7 @@ import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
2
2
  import { appendEvidence, evidenceResult } from "./evidence.mjs";
3
3
  import { createKind } from "./kind.mjs";
4
4
  import { createFlowController, flowControllerExitKind, flowControllerKind } from "./flow/controller/base.mjs";
5
+ import { AbortErrorFlowController, aborter, flowControllerAborterKind } from "./flow/controller/defaults/aborter.mjs";
5
6
  import { debounce, flowControllerDebounceKind } from "./flow/controller/defaults/debounce.mjs";
6
7
  import { filter, flowControllerFilterKind } from "./flow/controller/defaults/filter.mjs";
7
8
  import { flowControllerRetryKind, retry } from "./flow/controller/defaults/retry.mjs";
@@ -9,18 +10,21 @@ import { flowControllerThrottlingKind, throttling } from "./flow/controller/defa
9
10
  import { flowControllerTimeoutKind, timeout } from "./flow/controller/defaults/timeout.mjs";
10
11
  import { flow } from "./flow/base.mjs";
11
12
  import { createPort, portHandlerKind } from "./port.mjs";
12
- import { createUseCase, useCaseHandlerKind, wireUseCases } from "./useCase.mjs";
13
+ import { createReader, readerKind, resolveReaders } from "./reader.mjs";
13
14
  //#region scripts/invocation/index.ts
14
15
  var invocation_exports = /* @__PURE__ */ __exportAll({
16
+ AbortErrorFlowController: () => AbortErrorFlowController,
17
+ aborter: () => aborter,
15
18
  appendEvidence: () => appendEvidence,
16
19
  createFlowController: () => createFlowController,
17
20
  createKind: () => createKind,
18
21
  createPort: () => createPort,
19
- createUseCase: () => createUseCase,
22
+ createReader: () => createReader,
20
23
  debounce: () => debounce,
21
24
  evidenceResult: () => evidenceResult,
22
25
  filter: () => filter,
23
26
  flow: () => flow,
27
+ flowControllerAborterKind: () => flowControllerAborterKind,
24
28
  flowControllerDebounceKind: () => flowControllerDebounceKind,
25
29
  flowControllerExitKind: () => flowControllerExitKind,
26
30
  flowControllerFilterKind: () => flowControllerFilterKind,
@@ -29,11 +33,11 @@ var invocation_exports = /* @__PURE__ */ __exportAll({
29
33
  flowControllerThrottlingKind: () => flowControllerThrottlingKind,
30
34
  flowControllerTimeoutKind: () => flowControllerTimeoutKind,
31
35
  portHandlerKind: () => portHandlerKind,
36
+ readerKind: () => readerKind,
37
+ resolveReaders: () => resolveReaders,
32
38
  retry: () => retry,
33
39
  throttling: () => throttling,
34
- timeout: () => timeout,
35
- useCaseHandlerKind: () => useCaseHandlerKind,
36
- wireUseCases: () => wireUseCases
40
+ timeout: () => timeout
37
41
  });
38
42
  //#endregion
39
- export { appendEvidence, createFlowController, createKind, createPort, createUseCase, debounce, evidenceResult, filter, flow, flowControllerDebounceKind, flowControllerExitKind, flowControllerFilterKind, flowControllerKind, flowControllerRetryKind, flowControllerThrottlingKind, flowControllerTimeoutKind, invocation_exports, portHandlerKind, retry, throttling, timeout, useCaseHandlerKind, wireUseCases };
43
+ export { AbortErrorFlowController, aborter, appendEvidence, createFlowController, createKind, createPort, createReader, debounce, evidenceResult, filter, flow, flowControllerAborterKind, flowControllerDebounceKind, flowControllerExitKind, flowControllerFilterKind, flowControllerKind, flowControllerRetryKind, flowControllerThrottlingKind, flowControllerTimeoutKind, invocation_exports, portHandlerKind, readerKind, resolveReaders, retry, throttling, timeout };
@@ -0,0 +1,26 @@
1
+ const require_entries = require("../object/entries.cjs");
2
+ const require_entry = require("../object/entry.cjs");
3
+ const require_fromEntries = require("../object/fromEntries.cjs");
4
+ const require_map = require("../array/map.cjs");
5
+ const require_forward = require("../common/forward.cjs");
6
+ const require_pipe = require("../common/pipe.cjs");
7
+ const require_uncapitalize = require("../string/uncapitalize.cjs");
8
+ //#region scripts/invocation/reader.ts
9
+ const readerKind = require("./kind.cjs").createKind("reader");
10
+ function createReader(dependencies, read) {
11
+ return {
12
+ dependencies,
13
+ run: (injectedDependencies) => read(require_pipe.pipe(require_forward.forward(dependencies), require_entries.entries, require_map.map(([key, value]) => {
14
+ const formattedKey = require_uncapitalize.uncapitalize(key);
15
+ return require_entry.entry(formattedKey, readerKind.has(value) && !injectedDependencies[formattedKey] ? value.run(injectedDependencies) : injectedDependencies[formattedKey]);
16
+ }), require_fromEntries.fromEntries)),
17
+ [readerKind.runTimeKey]: null
18
+ };
19
+ }
20
+ function resolveReaders(readers, ports) {
21
+ return require_pipe.pipe(readers, require_entries.entries, require_map.map(([key, reader]) => require_entry.entry(require_uncapitalize.uncapitalize(key), reader.run(ports))), require_fromEntries.fromEntries);
22
+ }
23
+ //#endregion
24
+ exports.createReader = createReader;
25
+ exports.readerKind = readerKind;
26
+ exports.resolveReaders = resolveReaders;
@@ -0,0 +1,28 @@
1
+ import { PortHandler } from './port';
2
+ import * as DCommon from '../common';
3
+ import type * as DKind from '../kind';
4
+ export type ReaderDependencies = Record<string, Reader | PortHandler>;
5
+ export type ReaderDependenciesValue<GenericDependencies extends ReaderDependencies> = DCommon.SimplifyTopLevel<{
6
+ [Prop in keyof GenericDependencies as Uncapitalize<Extract<Prop, string>>]: GenericDependencies[Prop] extends PortHandler ? ReturnType<GenericDependencies[Prop]["createImplementation"]> : GenericDependencies[Prop] extends Reader ? ReturnType<GenericDependencies[Prop]["run"]> : never;
7
+ }>;
8
+ export type GetAllPorts<GenericDependenciesValue extends ReaderDependencies> = GenericDependenciesValue extends any ? ({
9
+ [Prop in keyof GenericDependenciesValue]: (GenericDependenciesValue[Prop] extends PortHandler ? [
10
+ Uncapitalize<Extract<Prop, string>>,
11
+ ReturnType<GenericDependenciesValue[Prop]["createImplementation"]>
12
+ ] : GenericDependenciesValue[Prop] extends Reader ? GetAllPorts<GenericDependenciesValue[Prop]["dependencies"]> : never);
13
+ })[keyof GenericDependenciesValue] : never;
14
+ export declare const readerKind: DKind.Handler<DKind.Definition<"@DuplojsLangInvocation/reader", unknown>>;
15
+ export interface Reader<GenericDependencies extends ReaderDependencies = any, GenericOutput extends unknown = unknown> extends DKind.Kind<typeof readerKind> {
16
+ dependencies: GenericDependencies;
17
+ run(ports: DCommon.SimplifyTopLevel<(GetAllPorts<GenericDependencies> extends infer InferredEntriesDependenciesValue extends DCommon.ObjectEntry ? {
18
+ [Entry in InferredEntriesDependenciesValue as Entry[0]]: Entry[1];
19
+ } : never) & ({
20
+ [Prop in keyof GenericDependencies as GenericDependencies[Prop] extends Reader ? Uncapitalize<Extract<Prop, string>> : never]?: GenericDependencies[Prop] extends Reader ? ReturnType<GenericDependencies[Prop]["run"]> : never;
21
+ })>): GenericOutput;
22
+ }
23
+ export declare function createReader<const GenericDependencies extends ReaderDependencies, GenericOutput extends unknown>(dependencies: GenericDependencies, read: (dependenciesValue: ReaderDependenciesValue<GenericDependencies>) => GenericOutput): Reader<GenericDependencies, GenericOutput>;
24
+ export declare function resolveReaders<GenericReaders extends Record<string, Reader>>(readers: GenericReaders, ports: DCommon.SimplifyTopLevel<DCommon.UnionToIntersection<{
25
+ [Prop in keyof GenericReaders]: GetAllPorts<GenericReaders[Prop]["dependencies"]> extends infer InferredEntriesDependenciesValue extends DCommon.ObjectEntry ? {
26
+ [Entry in InferredEntriesDependenciesValue as Entry[0]]: Entry[1];
27
+ } : never;
28
+ }[keyof GenericReaders]>>): ReaderDependenciesValue<GenericReaders>;
@@ -0,0 +1,25 @@
1
+ import { entries } from "../object/entries.mjs";
2
+ import { entry } from "../object/entry.mjs";
3
+ import { fromEntries } from "../object/fromEntries.mjs";
4
+ import { map } from "../array/map.mjs";
5
+ import { forward } from "../common/forward.mjs";
6
+ import { pipe } from "../common/pipe.mjs";
7
+ import { uncapitalize } from "../string/uncapitalize.mjs";
8
+ import { createKind } from "./kind.mjs";
9
+ //#region scripts/invocation/reader.ts
10
+ const readerKind = createKind("reader");
11
+ function createReader(dependencies, read) {
12
+ return {
13
+ dependencies,
14
+ run: (injectedDependencies) => read(pipe(forward(dependencies), entries, map(([key, value]) => {
15
+ const formattedKey = uncapitalize(key);
16
+ return entry(formattedKey, readerKind.has(value) && !injectedDependencies[formattedKey] ? value.run(injectedDependencies) : injectedDependencies[formattedKey]);
17
+ }), fromEntries)),
18
+ [readerKind.runTimeKey]: null
19
+ };
20
+ }
21
+ function resolveReaders(readers, ports) {
22
+ return pipe(readers, entries, map(([key, reader]) => entry(uncapitalize(key), reader.run(ports))), fromEntries);
23
+ }
24
+ //#endregion
25
+ export { createReader, readerKind, resolveReaders };
@@ -1,7 +1,11 @@
1
1
  import { Kind, Handler } from './base';
2
2
  import { GetHandler } from './types';
3
3
  import type * as DCommon from '../common';
4
- export declare function createKindIdentifier<GenericParent extends Kind<Handler>, GenericChildren extends GenericParent>(): {
5
- <GenericKindHandler extends GenericChildren extends infer InferredChildren ? InferredChildren extends GenericParent ? GetHandler<InferredChildren> : never : never, GenericInput extends unknown, GenericGroupedKind extends DCommon.UnionToIntersection<GenericKindHandler extends Handler ? Kind<GenericKindHandler> : never>>(kind: GenericKindHandler | GenericKindHandler[]): (input: GenericInput) => input is ((DCommon.UnionContain<GenericInput, GenericParent> extends true ? Extract<GenericChildren, GenericGroupedKind> : never) | Extract<GenericInput, GenericGroupedKind>);
6
- <GenericKindHandler extends GenericChildren extends infer InferredChildren ? InferredChildren extends GenericParent ? GetHandler<InferredChildren> : never : never, GenericInput extends unknown, GenericGroupedKind extends DCommon.UnionToIntersection<GenericKindHandler extends Handler ? Kind<GenericKindHandler> : never>>(input: GenericInput, kind: GenericKindHandler | GenericKindHandler[]): input is ((DCommon.UnionContain<GenericInput, GenericParent> extends true ? Extract<GenericChildren, GenericGroupedKind> : never) | Extract<GenericInput, GenericGroupedKind>);
7
- };
4
+ type KindIdentifierHandlers<GenericParent extends Kind<Handler>, GenericChildren extends GenericParent> = GenericChildren extends infer InferredChildren ? InferredChildren extends GenericParent ? GetHandler<InferredChildren> : never : never;
5
+ type KindIdentifierResult<GenericParent extends Kind<Handler>, GenericChildren extends GenericParent, GenericInput extends unknown, GenericGroupedKind extends unknown> = ((GenericInput extends GenericParent ? GenericChildren extends GenericInput ? GenericChildren extends GenericGroupedKind ? GenericChildren : never : never : never) | Extract<GenericInput, GenericGroupedKind>);
6
+ export interface KindIdentifier<GenericParent extends Kind<Handler>, GenericChildren extends GenericParent> {
7
+ <GenericKindHandler extends KindIdentifierHandlers<GenericParent, GenericChildren>, GenericInput extends unknown, GenericGroupedKind extends DCommon.Forward<GenericKindHandler extends Handler ? Kind<GenericKindHandler> : never>>(kind: GenericKindHandler | GenericKindHandler[]): (input: GenericInput) => input is KindIdentifierResult<GenericParent, GenericChildren, GenericInput, GenericGroupedKind>;
8
+ <GenericKindHandler extends KindIdentifierHandlers<GenericParent, GenericChildren>, GenericInput extends unknown, GenericGroupedKind extends DCommon.Forward<GenericKindHandler extends Handler ? Kind<GenericKindHandler> : never>>(input: GenericInput, kind: GenericKindHandler | GenericKindHandler[]): input is KindIdentifierResult<GenericParent, GenericChildren, GenericInput, GenericGroupedKind>;
9
+ }
10
+ export declare function createKindIdentifier<GenericParent extends Kind<Handler>, GenericChildren extends GenericParent>(): KindIdentifier<GenericParent, GenericChildren>;
11
+ export {};
@@ -0,0 +1,2 @@
1
+ import { Definition, Handler, Kind } from '../base';
2
+ export type GetName<GenericValue extends Kind<Handler>> = GenericValue extends Kind<Handler<Definition<infer InferredKindName>>> ? InferredKindName : never;
@@ -0,0 +1,3 @@
1
+ import { Definition, Handler } from '../base';
2
+ import { createNamespace } from '../namespace';
3
+ export type GetNamespaceName<GenericKindConstructor extends ReturnType<typeof createNamespace>> = ReturnType<GenericKindConstructor> extends Handler<Definition<`@${infer InferredName}/${string}`>> ? InferredName : never;
@@ -1,3 +1,5 @@
1
1
  export type * from './getHandler';
2
+ export type * from './getName';
3
+ export type * from './getNamespaceName';
2
4
  export type * from './getValue';
3
5
  export type * from './remove';
@@ -1,2 +1,2 @@
1
- import { KeySymbol, Kind } from '../base';
2
- export type Remove<GenericObject extends Kind<any>> = Omit<GenericObject, KeySymbol>;
1
+ import { Kind, KeySymbol } from '../base';
2
+ export type Remove<GenericObject extends object> = GenericObject extends Kind<any> ? Omit<GenericObject, KeySymbol> : GenericObject;
@@ -1,21 +1,34 @@
1
+ const require_parentClass = require("../../kind/parentClass.cjs");
1
2
  const require_isSimple = require("../../object/isSimple.cjs");
3
+ const require_override = require("../../object/override.cjs");
2
4
  const require_create = require("../../either/left/create.cjs");
5
+ const require_is = require("../../either/left/is.cjs");
3
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");
4
9
  const require_justExec = require("../../common/justExec.cjs");
5
10
  const require_memo = require("../../common/memo.cjs");
6
11
  const require_resultSymbol = require("../../dataStructure/common/resultSymbol.cjs");
7
- const require_error = require("../../dataStructure/common/error.cjs");
8
- const require_base = require("../../dataStructure/structure/base.cjs");
12
+ const require_base = require("../../dataStructure/common/error/base.cjs");
13
+ const require_base$1 = require("../../dataStructure/structure/base.cjs");
14
+ const require_nonEncodableString = require("../../dataStructure/structure/defaults/nonEncodableString.cjs");
9
15
  const require_object = require("../../dataStructure/structure/defaults/object.cjs");
10
16
  const require_kind = require("../kind.cjs");
11
- const require_entityName = require("./entityName.cjs");
17
+ const require_base$2 = require("../taggedObject/base.cjs");
12
18
  //#region scripts/modeling/entity/base.ts
13
19
  const entityKind = require_kind.createKind("entity");
14
20
  const entityStructureKind = require_kind.createKind("entity-structure");
15
- const EntityStructure = require_base.createStructure(entityStructureKind, ({ init }) => (name, shape) => init({
21
+ var EncodeEntityError = class extends require_parentClass.parentClass(require_kind.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
+ };
28
+ const EntityStructure = require_base$1.createStructure(entityStructureKind, ({ init }) => (name, shape) => init({
16
29
  inner: require_memo.memo(() => require_object.ObjectStructure({
17
30
  ...shape(),
18
- [entityKind.runTimeKey]: require_entityName.EntityNameStructure(name)
31
+ [entityKind.runTimeKey]: require_nonEncodableString.NonEncodableStringStructure(name)
19
32
  }, [])),
20
33
  constraints: []
21
34
  }, {
@@ -34,7 +47,7 @@ const EntityStructure = require_base.createStructure(entityStructureKind, ({ ini
34
47
  const [codecs] = args;
35
48
  return (value) => self.decodeMap(codecs, value);
36
49
  }
37
- const errorHandler = require_error.createGetErrorHandler();
50
+ const errorHandler = require_base.createGetErrorHandler();
38
51
  const [codecs, data] = args;
39
52
  const result = self.executeDecode(codecs.context.value, require_isSimple.isSimple(data) ? {
40
53
  ...data,
@@ -45,7 +58,7 @@ const EntityStructure = require_base.createStructure(entityStructureKind, ({ ini
45
58
  return require_create$1.right("map-success", result);
46
59
  },
47
60
  map: (self, data) => {
48
- const errorHandler = require_error.createGetErrorHandler();
61
+ const errorHandler = require_base.createGetErrorHandler();
49
62
  const formattedData = require_isSimple.isSimple(data) ? {
50
63
  ...data,
51
64
  [entityKind.runTimeKey]: name
@@ -61,7 +74,7 @@ const EntityStructure = require_base.createStructure(entityStructureKind, ({ ini
61
74
  return (value) => self.asyncDecodeMap(codecs, value);
62
75
  }
63
76
  return require_justExec.justExec(async () => {
64
- const errorHandler = require_error.createGetErrorHandler();
77
+ const errorHandler = require_base.createGetErrorHandler();
65
78
  const [codecs, data] = args;
66
79
  const result = await self.executeDecode(codecs.context.value, require_isSimple.isSimple(data) ? {
67
80
  ...data,
@@ -71,17 +84,31 @@ const EntityStructure = require_base.createStructure(entityStructureKind, ({ ini
71
84
  return require_create$1.right("map-success", result);
72
85
  });
73
86
  },
74
- asyncMap: (self, data) => require_justExec.justExec(async () => {
75
- const errorHandler = require_error.createGetErrorHandler();
87
+ asyncMap: async (self, data) => {
88
+ const errorHandler = require_base.createGetErrorHandler();
76
89
  const formattedData = require_isSimple.isSimple(data) ? {
77
90
  ...data,
78
91
  [entityKind.runTimeKey]: name
79
92
  } : data;
80
93
  if (await self.executeCheck(formattedData, errorHandler) === require_resultSymbol.ErrorSymbol) return require_create.left("map-error", errorHandler().createError());
81
94
  return require_create$1.right("map-success", formattedData);
82
- })
95
+ },
96
+ encodeEntity: async (self, codecs, data) => {
97
+ const result = await self.asyncEncode(codecs, data);
98
+ if (require_is.isLeft(result)) throw new EncodeEntityError(require_unwrap.unwrapLeft(result));
99
+ return require_unwrap$1.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, { [require_base$2.objectTagKind.runTimeKey]: __, ...update }] = args;
107
+ return require_override.override(input, update);
108
+ }
83
109
  }));
84
110
  //#endregion
111
+ exports.EncodeEntityError = EncodeEntityError;
85
112
  exports.EntityStructure = EntityStructure;
86
113
  exports.entityKind = entityKind;
87
114
  exports.entityStructureKind = entityStructureKind;
@@ -1,5 +1,5 @@
1
1
  import { NewType, NewTypeMap } from '../newType';
2
- import type * as DKind from '../../kind';
2
+ import * as DKind from '../../kind';
3
3
  import * as DCommon from '../../common';
4
4
  import * as DDataStructure from '../../dataStructure';
5
5
  import * as DEither from '../../either';
@@ -7,6 +7,8 @@ declare module '../../dataStructure' {
7
7
  interface StructuresStore {
8
8
  entity: EntityStructure;
9
9
  }
10
+ }
11
+ declare module '../../dataStructure/common' {
10
12
  interface EncodeStructure<GenericValue extends unknown, GenericCodecs extends DDataStructure.Codecs> {
11
13
  entity: GenericValue extends Entity<infer InferredName> ? (Entity<InferredName> & {
12
14
  [Prop in Exclude<keyof GenericValue, DKind.KeySymbol>]: DDataStructure.EncodedValue<GenericValue[Prop], GenericCodecs>;
@@ -17,6 +19,7 @@ export declare const entityKind: DKind.Handler<DKind.Definition<"@DuplojsLangMod
17
19
  export interface Entity<GenericName extends string = string> extends DKind.Kind<typeof entityKind, GenericName> {
18
20
  }
19
21
  export type GetEntityName<GenericEntity extends Entity> = GenericEntity extends Entity<infer InferredName> ? InferredName : never;
22
+ export type ExtractByEntityName<GenericValue extends unknown, GenericEntityName extends string> = GenericValue extends Entity<GenericEntityName> ? GenericValue : never;
20
23
  export declare const entityStructureKind: DKind.Handler<DKind.Definition<"@DuplojsLangModeling/entity-structure", unknown>>;
21
24
  export interface EntityStructureDefinition extends DDataStructure.StructureDefinition<readonly []> {
22
25
  readonly inner: DCommon.Memoized<DDataStructure.ObjectStructure>;
@@ -28,16 +31,28 @@ export type EntityMap<GenericValue extends unknown, GenericRawValue = DCommon.Re
28
31
  DCommon.Not<DCommon.IsExtends<DCommon.AnyFunction, GenericRawValue[keyof GenericRawValue]>>
29
32
  ]>
30
33
  ]> extends true ? {
31
- [Prop in keyof GenericRawValue]: NewTypeMap<GenericRawValue[Prop]>;
32
- } : GenericRawValue extends Entity ? EntityMap<DKind.Remove<GenericRawValue>> : GenericRawValue : GenericRawValue;
33
- export interface EntityStructure<GenericName extends string = string, GenericProperties extends Record<string, unknown> = Record<string, unknown>> extends DCommon.UnionToIntersection<DDataStructure.Structure<Entity<GenericName> & GenericProperties, EntityStructureDefinition> & DKind.Kind<typeof entityStructureKind>> {
34
+ [Prop in keyof GenericRawValue]: EntityMap<GenericRawValue[Prop]>;
35
+ } : GenericRawValue : GenericRawValue;
36
+ export type EntityUpdate<GenericEntity extends Entity, GenericNewProperties extends object> = Extract<(Entity<GetEntityName<GenericEntity>> & DCommon.SimplifyTopLevel<DKind.Remove<GenericEntity> extends infer InferredProperties ? {
37
+ [Prop in keyof InferredProperties]: Prop extends keyof GenericNewProperties ? GenericNewProperties[Prop] extends infer InferredNewValue ? InferredNewValue extends undefined ? InferredProperties[Prop] : InferredNewValue : never : InferredProperties[Prop];
38
+ } : never>), any>;
39
+ export interface EntityStructure<out GenericName extends string = string, out GenericProperties extends Record<string, unknown> = Record<string, unknown>> extends DCommon.Forward<DDataStructure.Structure<Entity<GenericName> & GenericProperties, EntityStructureDefinition> & DKind.Kind<typeof entityStructureKind>> {
34
40
  readonly name: GenericName;
35
41
  "new"<GenericNewProperties extends GenericProperties>(properties: GenericNewProperties): (Entity<GenericName> & GenericNewProperties);
36
- decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<EntityMap<DDataStructure.StructureValue<this>>, GenericCodecs>) => (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
37
- decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<EntityMap<DDataStructure.StructureValue<this>>, GenericCodecs>): (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
38
- map(data: EntityMap<DDataStructure.StructureValue<this>>): (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
39
- asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<EntityMap<DDataStructure.StructureValue<this>>, GenericCodecs>) => Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
40
- asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<EntityMap<DDataStructure.StructureValue<this>>, GenericCodecs>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
41
- asyncMap(data: EntityMap<DDataStructure.StructureValue<this>>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
42
+ decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<EntityMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>) => (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
43
+ decodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<EntityMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>): (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
44
+ map(data: EntityMap<DKind.Remove<DDataStructure.StructureValue<this>>>): (DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"async-error", undefined> | DEither.Left<"map-error", DDataStructure.Error>);
45
+ asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs): (data: DDataStructure.EncodedValue<EntityMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>) => Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
46
+ asyncDecodeMap<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.EncodedValue<EntityMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
47
+ asyncMap(data: EntityMap<DKind.Remove<DDataStructure.StructureValue<this>>>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
48
+ encodeEntity<GenericCodecs extends DDataStructure.Codecs>(codecs: GenericCodecs, data: DDataStructure.StructureValue<this>): Promise<DDataStructure.EncodedValue<EntityMap<DKind.Remove<DDataStructure.StructureValue<this>>>, GenericCodecs>>;
49
+ update<GenericInputEntity extends (Entity<GenericName> & GenericProperties), const GenericPayload extends Partial<GenericProperties>>(update: GenericPayload): (input: GenericInputEntity) => EntityUpdate<GenericInputEntity, GenericPayload>;
50
+ update<GenericInputEntity extends (Entity<GenericName> & GenericProperties), const GenericPayload extends Partial<GenericProperties>>(input: GenericInputEntity, update: GenericPayload): EntityUpdate<GenericInputEntity, GenericPayload>;
51
+ }
52
+ declare const EncodeEntityError_base: DKind.KindClass<DKind.Handler<DKind.Definition<"@DuplojsLangModeling/encode-entity-error", unknown>>, ErrorConstructor>;
53
+ export declare class EncodeEntityError extends EncodeEntityError_base {
54
+ error: DDataStructure.Error;
55
+ constructor(error: DDataStructure.Error);
42
56
  }
43
57
  export declare const EntityStructure: <GenericName extends string, GenericShape extends DDataStructure.ShapeObjectStructure, const GenericProperties extends DDataStructure.ShapeObjectStructureValue<GenericShape>>(name: GenericName, shape: () => GenericShape) => EntityStructure<GenericName, GenericProperties>;
58
+ export {};