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

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 (348) 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/insert.d.ts +3 -3
  12. package/dist/array/length.d.ts +1 -1
  13. package/dist/array/lengthEqual.d.ts +1 -1
  14. package/dist/array/map.d.ts +1 -1
  15. package/dist/array/maxElements.d.ts +1 -1
  16. package/dist/array/minElements.d.ts +1 -1
  17. package/dist/array/pop.d.ts +1 -1
  18. package/dist/array/prepend.d.ts +1 -1
  19. package/dist/array/push.d.ts +3 -3
  20. package/dist/array/reverse.d.ts +1 -1
  21. package/dist/array/shift.d.ts +1 -1
  22. package/dist/array/sort.d.ts +1 -1
  23. package/dist/array/splice/delete.d.ts +1 -1
  24. package/dist/array/splice/insert.d.ts +1 -1
  25. package/dist/array/unshift.d.ts +3 -3
  26. package/dist/common/constraint/index.d.ts +1 -0
  27. package/dist/common/constraint/remove.cjs +6 -0
  28. package/dist/common/constraint/remove.d.ts +2 -0
  29. package/dist/common/constraint/remove.mjs +6 -0
  30. package/dist/common/index.cjs +3 -0
  31. package/dist/common/index.mjs +3 -1
  32. package/dist/common/types/forward.d.ts +1 -0
  33. package/dist/common/types/index.d.ts +2 -0
  34. package/dist/common/types/splitPromise.d.ts +1 -0
  35. package/dist/dataStructure/common/codec.cjs +5 -4
  36. package/dist/dataStructure/common/codec.d.ts +3 -3
  37. package/dist/dataStructure/common/codec.mjs +5 -4
  38. package/dist/dataStructure/common/error.cjs +34 -16
  39. package/dist/dataStructure/common/error.d.ts +29 -11
  40. package/dist/dataStructure/common/error.mjs +32 -17
  41. package/dist/dataStructure/common/errorInterpreter.cjs +45 -0
  42. package/dist/dataStructure/common/errorInterpreter.d.ts +32 -0
  43. package/dist/dataStructure/common/errorInterpreter.mjs +45 -0
  44. package/dist/dataStructure/common/index.d.ts +1 -0
  45. package/dist/dataStructure/constraint/base.cjs +16 -3
  46. package/dist/dataStructure/constraint/base.d.ts +8 -4
  47. package/dist/dataStructure/constraint/base.mjs +16 -3
  48. package/dist/dataStructure/constraint/defaults/allowedCharacters.cjs +1 -1
  49. package/dist/dataStructure/constraint/defaults/allowedCharacters.d.ts +1 -1
  50. package/dist/dataStructure/constraint/defaults/allowedCharacters.mjs +1 -1
  51. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.cjs +1 -1
  52. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.d.ts +1 -1
  53. package/dist/dataStructure/constraint/defaults/arrayLengthEqual.mjs +1 -1
  54. package/dist/dataStructure/constraint/defaults/betweenThan.cjs +1 -1
  55. package/dist/dataStructure/constraint/defaults/betweenThan.d.ts +1 -1
  56. package/dist/dataStructure/constraint/defaults/betweenThan.mjs +1 -1
  57. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.cjs +1 -1
  58. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.d.ts +1 -1
  59. package/dist/dataStructure/constraint/defaults/betweenThanOrEqual.mjs +1 -1
  60. package/dist/dataStructure/constraint/defaults/email.cjs +1 -1
  61. package/dist/dataStructure/constraint/defaults/email.d.ts +1 -1
  62. package/dist/dataStructure/constraint/defaults/email.mjs +1 -1
  63. package/dist/dataStructure/constraint/defaults/even.cjs +1 -1
  64. package/dist/dataStructure/constraint/defaults/even.d.ts +1 -1
  65. package/dist/dataStructure/constraint/defaults/even.mjs +1 -1
  66. package/dist/dataStructure/constraint/defaults/greaterThan.cjs +1 -1
  67. package/dist/dataStructure/constraint/defaults/greaterThan.d.ts +1 -1
  68. package/dist/dataStructure/constraint/defaults/greaterThan.mjs +1 -1
  69. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.cjs +1 -1
  70. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.d.ts +1 -1
  71. package/dist/dataStructure/constraint/defaults/greaterThanOrEqual.mjs +1 -1
  72. package/dist/dataStructure/constraint/defaults/index.d.ts +2 -0
  73. package/dist/dataStructure/constraint/defaults/integer.cjs +1 -1
  74. package/dist/dataStructure/constraint/defaults/integer.d.ts +1 -1
  75. package/dist/dataStructure/constraint/defaults/integer.mjs +1 -1
  76. package/dist/dataStructure/constraint/defaults/lessThan.cjs +1 -1
  77. package/dist/dataStructure/constraint/defaults/lessThan.d.ts +1 -1
  78. package/dist/dataStructure/constraint/defaults/lessThan.mjs +1 -1
  79. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.cjs +1 -1
  80. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.d.ts +1 -1
  81. package/dist/dataStructure/constraint/defaults/lessThanOrEqual.mjs +1 -1
  82. package/dist/dataStructure/constraint/defaults/maxCharacters.cjs +1 -1
  83. package/dist/dataStructure/constraint/defaults/maxCharacters.d.ts +1 -1
  84. package/dist/dataStructure/constraint/defaults/maxCharacters.mjs +1 -1
  85. package/dist/dataStructure/constraint/defaults/maxElements.cjs +1 -1
  86. package/dist/dataStructure/constraint/defaults/maxElements.d.ts +1 -1
  87. package/dist/dataStructure/constraint/defaults/maxElements.mjs +1 -1
  88. package/dist/dataStructure/constraint/defaults/minCharacters.cjs +4 -4
  89. package/dist/dataStructure/constraint/defaults/minCharacters.d.ts +2 -2
  90. package/dist/dataStructure/constraint/defaults/minCharacters.mjs +4 -4
  91. package/dist/dataStructure/constraint/defaults/minElements.cjs +1 -1
  92. package/dist/dataStructure/constraint/defaults/minElements.d.ts +1 -1
  93. package/dist/dataStructure/constraint/defaults/minElements.mjs +1 -1
  94. package/dist/dataStructure/constraint/defaults/multipleOf.cjs +1 -1
  95. package/dist/dataStructure/constraint/defaults/multipleOf.d.ts +1 -1
  96. package/dist/dataStructure/constraint/defaults/multipleOf.mjs +1 -1
  97. package/dist/dataStructure/constraint/defaults/negative.cjs +1 -1
  98. package/dist/dataStructure/constraint/defaults/negative.d.ts +1 -1
  99. package/dist/dataStructure/constraint/defaults/negative.mjs +1 -1
  100. package/dist/dataStructure/constraint/defaults/notEmpty.cjs +1 -1
  101. package/dist/dataStructure/constraint/defaults/notEmpty.d.ts +1 -1
  102. package/dist/dataStructure/constraint/defaults/notEmpty.mjs +1 -1
  103. package/dist/dataStructure/constraint/defaults/notZero.cjs +1 -1
  104. package/dist/dataStructure/constraint/defaults/notZero.d.ts +1 -1
  105. package/dist/dataStructure/constraint/defaults/notZero.mjs +1 -1
  106. package/dist/dataStructure/constraint/defaults/odd.cjs +1 -1
  107. package/dist/dataStructure/constraint/defaults/odd.d.ts +1 -1
  108. package/dist/dataStructure/constraint/defaults/odd.mjs +1 -1
  109. package/dist/dataStructure/constraint/defaults/positive.cjs +1 -1
  110. package/dist/dataStructure/constraint/defaults/positive.d.ts +1 -1
  111. package/dist/dataStructure/constraint/defaults/positive.mjs +1 -1
  112. package/dist/dataStructure/constraint/defaults/refine.cjs +1 -1
  113. package/dist/dataStructure/constraint/defaults/refine.d.ts +1 -1
  114. package/dist/dataStructure/constraint/defaults/refine.mjs +1 -1
  115. package/dist/dataStructure/constraint/defaults/regex.cjs +13 -0
  116. package/dist/dataStructure/constraint/defaults/regex.d.ts +10 -0
  117. package/dist/dataStructure/constraint/defaults/regex.mjs +12 -0
  118. package/dist/dataStructure/constraint/defaults/safe.cjs +1 -1
  119. package/dist/dataStructure/constraint/defaults/safe.d.ts +1 -1
  120. package/dist/dataStructure/constraint/defaults/safe.mjs +1 -1
  121. package/dist/dataStructure/constraint/defaults/strictNegative.cjs +1 -1
  122. package/dist/dataStructure/constraint/defaults/strictNegative.d.ts +1 -1
  123. package/dist/dataStructure/constraint/defaults/strictNegative.mjs +1 -1
  124. package/dist/dataStructure/constraint/defaults/strictPositive.cjs +1 -1
  125. package/dist/dataStructure/constraint/defaults/strictPositive.d.ts +1 -1
  126. package/dist/dataStructure/constraint/defaults/strictPositive.mjs +1 -1
  127. package/dist/dataStructure/constraint/defaults/stringLengthEqual.cjs +1 -1
  128. package/dist/dataStructure/constraint/defaults/stringLengthEqual.d.ts +1 -1
  129. package/dist/dataStructure/constraint/defaults/stringLengthEqual.mjs +1 -1
  130. package/dist/dataStructure/constraint/defaults/trimmed.cjs +13 -0
  131. package/dist/dataStructure/constraint/defaults/trimmed.d.ts +10 -0
  132. package/dist/dataStructure/constraint/defaults/trimmed.mjs +12 -0
  133. package/dist/dataStructure/constraint/defaults/url.cjs +2 -2
  134. package/dist/dataStructure/constraint/defaults/url.d.ts +2 -3
  135. package/dist/dataStructure/constraint/defaults/url.mjs +2 -2
  136. package/dist/dataStructure/constraint/defaults/uuid.cjs +2 -4
  137. package/dist/dataStructure/constraint/defaults/uuid.d.ts +1 -3
  138. package/dist/dataStructure/constraint/defaults/uuid.mjs +4 -5
  139. package/dist/dataStructure/constraint/identifier.d.ts +4 -2
  140. package/dist/dataStructure/constraint/types/constraints.d.ts +18 -15
  141. package/dist/dataStructure/fundamentalType/base.cjs +3 -3
  142. package/dist/dataStructure/fundamentalType/base.d.ts +4 -5
  143. package/dist/dataStructure/fundamentalType/base.mjs +3 -3
  144. package/dist/dataStructure/fundamentalType/defaults/bigint.cjs +4 -2
  145. package/dist/dataStructure/fundamentalType/defaults/bigint.d.ts +4 -4
  146. package/dist/dataStructure/fundamentalType/defaults/bigint.mjs +5 -2
  147. package/dist/dataStructure/fundamentalType/defaults/boolean.cjs +4 -2
  148. package/dist/dataStructure/fundamentalType/defaults/boolean.d.ts +4 -4
  149. package/dist/dataStructure/fundamentalType/defaults/boolean.mjs +5 -2
  150. package/dist/dataStructure/fundamentalType/defaults/date.cjs +4 -2
  151. package/dist/dataStructure/fundamentalType/defaults/date.d.ts +4 -4
  152. package/dist/dataStructure/fundamentalType/defaults/date.mjs +5 -2
  153. package/dist/dataStructure/fundamentalType/defaults/null.cjs +4 -2
  154. package/dist/dataStructure/fundamentalType/defaults/null.d.ts +4 -4
  155. package/dist/dataStructure/fundamentalType/defaults/null.mjs +5 -2
  156. package/dist/dataStructure/fundamentalType/defaults/number.cjs +4 -2
  157. package/dist/dataStructure/fundamentalType/defaults/number.d.ts +4 -4
  158. package/dist/dataStructure/fundamentalType/defaults/number.mjs +5 -2
  159. package/dist/dataStructure/fundamentalType/defaults/string.cjs +4 -2
  160. package/dist/dataStructure/fundamentalType/defaults/string.d.ts +4 -4
  161. package/dist/dataStructure/fundamentalType/defaults/string.mjs +5 -2
  162. package/dist/dataStructure/fundamentalType/defaults/time.cjs +4 -2
  163. package/dist/dataStructure/fundamentalType/defaults/time.d.ts +4 -4
  164. package/dist/dataStructure/fundamentalType/defaults/time.mjs +5 -2
  165. package/dist/dataStructure/fundamentalType/defaults/undefined.cjs +4 -2
  166. package/dist/dataStructure/fundamentalType/defaults/undefined.d.ts +4 -4
  167. package/dist/dataStructure/fundamentalType/defaults/undefined.mjs +5 -2
  168. package/dist/dataStructure/fundamentalType/identifier.d.ts +4 -2
  169. package/dist/dataStructure/helpers/array.d.ts +1 -1
  170. package/dist/dataStructure/helpers/bigint.d.ts +1 -1
  171. package/dist/dataStructure/helpers/boolean.d.ts +1 -1
  172. package/dist/dataStructure/helpers/date.d.ts +1 -1
  173. package/dist/dataStructure/helpers/index.d.ts +2 -0
  174. package/dist/dataStructure/helpers/lazy.d.ts +1 -1
  175. package/dist/dataStructure/helpers/null.d.ts +1 -1
  176. package/dist/dataStructure/helpers/nullable.cjs +5 -2
  177. package/dist/dataStructure/helpers/nullable.mjs +5 -2
  178. package/dist/dataStructure/helpers/number.d.ts +1 -1
  179. package/dist/dataStructure/helpers/object.d.ts +1 -1
  180. package/dist/dataStructure/helpers/optional.cjs +5 -2
  181. package/dist/dataStructure/helpers/optional.mjs +5 -2
  182. package/dist/dataStructure/helpers/partial.cjs +5 -2
  183. package/dist/dataStructure/helpers/partial.mjs +5 -2
  184. package/dist/dataStructure/helpers/record.d.ts +1 -1
  185. package/dist/dataStructure/helpers/regex.cjs +7 -0
  186. package/dist/dataStructure/helpers/regex.d.ts +2 -0
  187. package/dist/dataStructure/helpers/regex.mjs +7 -0
  188. package/dist/dataStructure/helpers/required.cjs +6 -3
  189. package/dist/dataStructure/helpers/required.d.ts +2 -1
  190. package/dist/dataStructure/helpers/required.mjs +6 -3
  191. package/dist/dataStructure/helpers/string.d.ts +1 -1
  192. package/dist/dataStructure/helpers/time.d.ts +1 -1
  193. package/dist/dataStructure/helpers/trimmed.cjs +7 -0
  194. package/dist/dataStructure/helpers/trimmed.d.ts +2 -0
  195. package/dist/dataStructure/helpers/trimmed.mjs +7 -0
  196. package/dist/dataStructure/helpers/undefined.d.ts +1 -1
  197. package/dist/dataStructure/helpers/union.d.ts +1 -1
  198. package/dist/dataStructure/helpers/url.cjs +2 -2
  199. package/dist/dataStructure/helpers/url.d.ts +1 -2
  200. package/dist/dataStructure/helpers/url.mjs +2 -2
  201. package/dist/dataStructure/index.cjs +50 -6
  202. package/dist/dataStructure/index.mjs +41 -16
  203. package/dist/dataStructure/structure/base.cjs +15 -5
  204. package/dist/dataStructure/structure/base.d.ts +7 -4
  205. package/dist/dataStructure/structure/base.mjs +15 -5
  206. package/dist/dataStructure/structure/defaults/array.d.ts +2 -2
  207. package/dist/dataStructure/structure/defaults/index.d.ts +1 -0
  208. package/dist/dataStructure/structure/defaults/lazy.cjs +10 -3
  209. package/dist/dataStructure/structure/defaults/lazy.d.ts +2 -2
  210. package/dist/dataStructure/structure/defaults/lazy.mjs +10 -3
  211. package/dist/dataStructure/structure/defaults/nonEncodableString.cjs +17 -0
  212. package/dist/dataStructure/structure/defaults/nonEncodableString.d.ts +10 -0
  213. package/dist/dataStructure/structure/defaults/nonEncodableString.mjs +16 -0
  214. package/dist/dataStructure/structure/defaults/object.d.ts +2 -2
  215. package/dist/dataStructure/structure/defaults/record.cjs +7 -7
  216. package/dist/dataStructure/structure/defaults/record.d.ts +3 -3
  217. package/dist/dataStructure/structure/defaults/record.mjs +7 -7
  218. package/dist/dataStructure/structure/defaults/type.cjs +1 -1
  219. package/dist/dataStructure/structure/defaults/type.d.ts +2 -2
  220. package/dist/dataStructure/structure/defaults/type.mjs +2 -2
  221. package/dist/dataStructure/structure/defaults/union.cjs +20 -14
  222. package/dist/dataStructure/structure/defaults/union.d.ts +3 -3
  223. package/dist/dataStructure/structure/defaults/union.mjs +20 -14
  224. package/dist/dataStructure/structure/identifier.d.ts +4 -2
  225. package/dist/dataStructure/structure/types/constraintsValue.d.ts +1 -1
  226. package/dist/dataStructure/structure/types/structures.d.ts +2 -1
  227. package/dist/dataStructure/structure/types/value.d.ts +1 -1
  228. package/dist/dataStructure/type/base.cjs +17 -4
  229. package/dist/dataStructure/type/base.d.ts +7 -3
  230. package/dist/dataStructure/type/base.mjs +17 -4
  231. package/dist/dataStructure/type/defaults/bigint.d.ts +1 -1
  232. package/dist/dataStructure/type/defaults/bigintLiteral.cjs +1 -1
  233. package/dist/dataStructure/type/defaults/bigintLiteral.d.ts +1 -1
  234. package/dist/dataStructure/type/defaults/bigintLiteral.mjs +1 -1
  235. package/dist/dataStructure/type/defaults/boolean.d.ts +1 -1
  236. package/dist/dataStructure/type/defaults/booleanLiteral.cjs +1 -1
  237. package/dist/dataStructure/type/defaults/booleanLiteral.d.ts +1 -1
  238. package/dist/dataStructure/type/defaults/booleanLiteral.mjs +1 -1
  239. package/dist/dataStructure/type/defaults/date.d.ts +1 -1
  240. package/dist/dataStructure/type/defaults/null.d.ts +1 -1
  241. package/dist/dataStructure/type/defaults/number.d.ts +1 -1
  242. package/dist/dataStructure/type/defaults/numberLiteral.cjs +1 -1
  243. package/dist/dataStructure/type/defaults/numberLiteral.d.ts +1 -1
  244. package/dist/dataStructure/type/defaults/numberLiteral.mjs +1 -1
  245. package/dist/dataStructure/type/defaults/string.d.ts +1 -1
  246. package/dist/dataStructure/type/defaults/stringLiteral.cjs +1 -1
  247. package/dist/dataStructure/type/defaults/stringLiteral.d.ts +1 -1
  248. package/dist/dataStructure/type/defaults/stringLiteral.mjs +1 -1
  249. package/dist/dataStructure/type/defaults/time.d.ts +1 -1
  250. package/dist/dataStructure/type/defaults/undefined.d.ts +1 -1
  251. package/dist/dataStructure/type/identifier.d.ts +4 -2
  252. package/dist/generator/asyncChunk.d.ts +3 -2
  253. package/dist/generator/chunk.d.ts +3 -2
  254. package/dist/generator/types/flat.d.ts +2 -2
  255. package/dist/index.cjs +2 -0
  256. package/dist/index.mjs +2 -1
  257. package/dist/invocation/flow/base.d.ts +8 -3
  258. package/dist/invocation/flow/controller/base.d.ts +1 -0
  259. package/dist/invocation/flow/controller/defaults/aborter.cjs +38 -0
  260. package/dist/invocation/flow/controller/defaults/aborter.d.ts +17 -0
  261. package/dist/invocation/flow/controller/defaults/aborter.mjs +36 -0
  262. package/dist/invocation/flow/controller/defaults/debounce.d.ts +1 -1
  263. package/dist/invocation/flow/controller/defaults/filter.cjs +5 -3
  264. package/dist/invocation/flow/controller/defaults/filter.d.ts +1 -1
  265. package/dist/invocation/flow/controller/defaults/filter.mjs +5 -3
  266. package/dist/invocation/flow/controller/defaults/index.d.ts +1 -0
  267. package/dist/invocation/flow/controller/defaults/retry.d.ts +1 -1
  268. package/dist/invocation/flow/controller/defaults/throttling.d.ts +1 -1
  269. package/dist/invocation/flow/controller/defaults/timeout.d.ts +1 -1
  270. package/dist/invocation/index.cjs +7 -0
  271. package/dist/invocation/index.mjs +5 -1
  272. package/dist/kind/createIdentifier.d.ts +2 -2
  273. package/dist/kind/types/getName.d.ts +2 -0
  274. package/dist/kind/types/getNamespaceName.d.ts +3 -0
  275. package/dist/kind/types/index.d.ts +2 -0
  276. package/dist/kind/types/remove.d.ts +2 -2
  277. package/dist/modeling/entity/base.cjs +2 -2
  278. package/dist/modeling/entity/base.d.ts +12 -9
  279. package/dist/modeling/entity/base.mjs +2 -2
  280. package/dist/modeling/entity/index.d.ts +0 -1
  281. package/dist/modeling/index.cjs +17 -6
  282. package/dist/modeling/index.d.ts +1 -0
  283. package/dist/modeling/index.mjs +11 -5
  284. package/dist/modeling/newType/base.cjs +6 -3
  285. package/dist/modeling/newType/base.d.ts +1 -1
  286. package/dist/modeling/newType/base.mjs +6 -3
  287. package/dist/modeling/taggedObject/base.cjs +23 -0
  288. package/dist/modeling/taggedObject/base.d.ts +31 -0
  289. package/dist/modeling/taggedObject/base.mjs +21 -0
  290. package/dist/modeling/taggedObject/helper.cjs +29 -0
  291. package/dist/modeling/taggedObject/helper.d.ts +14 -0
  292. package/dist/modeling/taggedObject/helper.mjs +26 -0
  293. package/dist/modeling/taggedObject/index.d.ts +2 -0
  294. package/dist/number/betweenThan.d.ts +2 -2
  295. package/dist/number/betweenThanOrEqual.d.ts +2 -2
  296. package/dist/number/greaterThan.d.ts +1 -1
  297. package/dist/number/greaterThanOrEqual.d.ts +1 -1
  298. package/dist/number/lessThan.d.ts +1 -1
  299. package/dist/number/lessThanOrEqual.d.ts +1 -1
  300. package/dist/number/sort.d.ts +1 -1
  301. package/dist/pattern/index.cjs +12 -0
  302. package/dist/pattern/index.d.ts +4 -0
  303. package/dist/pattern/index.mjs +9 -1
  304. package/dist/pattern/matchWithEntity.cjs +12 -0
  305. package/dist/pattern/matchWithEntity.d.ts +12 -0
  306. package/dist/pattern/matchWithEntity.mjs +12 -0
  307. package/dist/pattern/matchWithEntityOtherwise.cjs +13 -0
  308. package/dist/pattern/matchWithEntityOtherwise.d.ts +14 -0
  309. package/dist/pattern/matchWithEntityOtherwise.mjs +13 -0
  310. package/dist/pattern/matchWithNumberOtherwise.cjs +2 -6
  311. package/dist/pattern/matchWithNumberOtherwise.mjs +2 -6
  312. package/dist/pattern/matchWithStringOtherwise.cjs +2 -6
  313. package/dist/pattern/matchWithStringOtherwise.d.ts +1 -1
  314. package/dist/pattern/matchWithStringOtherwise.mjs +2 -6
  315. package/dist/pattern/matchWithTaggedObject.cjs +12 -0
  316. package/dist/pattern/matchWithTaggedObject.d.ts +12 -0
  317. package/dist/pattern/matchWithTaggedObject.mjs +12 -0
  318. package/dist/pattern/matchWithTaggedObjectOtherwise.cjs +13 -0
  319. package/dist/pattern/matchWithTaggedObjectOtherwise.d.ts +14 -0
  320. package/dist/pattern/matchWithTaggedObjectOtherwise.mjs +13 -0
  321. package/dist/string/at.d.ts +2 -2
  322. package/dist/string/first.d.ts +1 -1
  323. package/dist/string/index.cjs +3 -0
  324. package/dist/string/index.mjs +3 -1
  325. package/dist/string/isUrl.cjs +2 -11
  326. package/dist/string/isUrl.d.ts +1 -5
  327. package/dist/string/isUrl.mjs +2 -11
  328. package/dist/string/last.d.ts +1 -1
  329. package/dist/string/lengthEqual.d.ts +1 -1
  330. package/dist/string/maxCharacters.d.ts +1 -1
  331. package/dist/string/minCharacters.d.ts +1 -1
  332. package/dist/string/padEnd.d.ts +1 -1
  333. package/dist/string/padStart.d.ts +1 -1
  334. package/dist/string/pop.d.ts +1 -1
  335. package/dist/string/shift.d.ts +1 -1
  336. package/dist/string/slice.d.ts +1 -1
  337. package/dist/string/substring.d.ts +1 -1
  338. package/dist/string/trim/default.d.ts +1 -1
  339. package/dist/string/trim/end.d.ts +1 -1
  340. package/dist/string/trim/index.d.ts +1 -0
  341. package/dist/string/trim/is.cjs +6 -0
  342. package/dist/string/trim/is.d.ts +2 -0
  343. package/dist/string/trim/is.mjs +6 -0
  344. package/dist/string/trim/start.d.ts +1 -1
  345. package/package.json +1 -1
  346. package/dist/modeling/entity/entityName.cjs +0 -13
  347. package/dist/modeling/entity/entityName.d.ts +0 -13
  348. package/dist/modeling/entity/entityName.mjs +0 -13
@@ -0,0 +1,38 @@
1
+ const require_parentClass = require("../../../../kind/parentClass.cjs");
2
+ const require_create = require("../../../../either/left/create.cjs");
3
+ const require_stringToMillisecond = require("../../../../common/stringToMillisecond.cjs");
4
+ const require_kind = require("../../../kind.cjs");
5
+ const require_base = require("../base.cjs");
6
+ //#region scripts/invocation/flow/controller/defaults/aborter.ts
7
+ const flowControllerAborterKind = require_kind.createKind("flow-controller-aborter");
8
+ var AbortErrorFlowController = class extends require_parentClass.parentClass(require_kind.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 = require_base.createFlowController(flowControllerAborterKind, ({ init, exitFlow }) => (theFunction, params) => {
16
+ let aborter = void 0;
17
+ const formattedTimeout = params?.timeout === void 0 ? void 0 : require_stringToMillisecond.stringToMillisecond(params.timeout);
18
+ return init(async (previousFunction) => {
19
+ const result = previousFunction();
20
+ if (require_base.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(require_create.left("signal-aborted", currentAborter.signal.reason));
28
+ return abortResult;
29
+ } catch (error) {
30
+ if (error instanceof AbortErrorFlowController) return exitFlow(require_create.left("signal-aborted", currentAborter.signal.reason));
31
+ throw error;
32
+ }
33
+ });
34
+ });
35
+ //#endregion
36
+ exports.AbortErrorFlowController = AbortErrorFlowController;
37
+ exports.aborter = aborter;
38
+ exports.flowControllerAborterKind = flowControllerAborterKind;
@@ -0,0 +1,17 @@
1
+ import { FlowController } from '../base';
2
+ import * as DCommon from '../../../../common';
3
+ import * as DKind from '../../../../kind';
4
+ import * as DEither from '../../../../either';
5
+ export declare const flowControllerAborterKind: DKind.Handler<DKind.Definition<"@DuplojsLangInvocation/flow-controller-aborter", unknown>>;
6
+ export interface FlowControllerAborter<GenericInput extends unknown = unknown, GenericOutput extends unknown = unknown> extends DCommon.Forward<FlowController<GenericInput, Promise<Awaited<GenericOutput> | DEither.Left<"signal-aborted", AbortErrorFlowController>>> & DKind.Kind<typeof flowControllerAborterKind>> {
7
+ }
8
+ declare const AbortErrorFlowController_base: DKind.KindClass<DKind.Handler<DKind.Definition<"@DuplojsLangInvocation/abort-error-flow-controller", unknown>>, ErrorConstructor>;
9
+ export declare class AbortErrorFlowController extends AbortErrorFlowController_base {
10
+ abortController: AbortController;
11
+ constructor(abortController: AbortController);
12
+ }
13
+ export interface FlowControllerAborterParams {
14
+ timeout?: DCommon.TimeInString;
15
+ }
16
+ export declare const aborter: <GenericInput extends unknown, GenericOutput extends unknown>(theFunction: (input: GenericInput, aborter: AbortController) => GenericOutput, params?: FlowControllerAborterParams) => FlowControllerAborter<GenericInput, GenericOutput>;
17
+ export {};
@@ -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");
@@ -12,6 +13,8 @@ const require_port = require("./port.cjs");
12
13
  const require_useCase = require("./useCase.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,
@@ -21,6 +24,7 @@ var invocation_exports = /* @__PURE__ */ require_runtime.__exportAll({
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,
@@ -36,6 +40,8 @@ var invocation_exports = /* @__PURE__ */ require_runtime.__exportAll({
36
40
  wireUseCases: () => require_useCase.wireUseCases
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;
@@ -45,6 +51,7 @@ 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;
@@ -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";
@@ -12,6 +13,8 @@ import { createPort, portHandlerKind } from "./port.mjs";
12
13
  import { createUseCase, useCaseHandlerKind, wireUseCases } from "./useCase.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,
@@ -21,6 +24,7 @@ var invocation_exports = /* @__PURE__ */ __exportAll({
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,
@@ -36,4 +40,4 @@ var invocation_exports = /* @__PURE__ */ __exportAll({
36
40
  wireUseCases: () => wireUseCases
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, createUseCase, debounce, evidenceResult, filter, flow, flowControllerAborterKind, flowControllerDebounceKind, flowControllerExitKind, flowControllerFilterKind, flowControllerKind, flowControllerRetryKind, flowControllerThrottlingKind, flowControllerTimeoutKind, invocation_exports, portHandlerKind, retry, throttling, timeout, useCaseHandlerKind, wireUseCases };
@@ -2,6 +2,6 @@ import { Kind, Handler } from './base';
2
2
  import { GetHandler } from './types';
3
3
  import type * as DCommon from '../common';
4
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>);
5
+ <GenericKindHandler extends GenericChildren extends infer InferredChildren ? InferredChildren extends GenericParent ? GetHandler<InferredChildren> : never : never, GenericInput extends unknown, GenericGroupedKind extends DCommon.Forward<GenericKindHandler extends Handler ? Kind<GenericKindHandler> : never>>(kind: GenericKindHandler | GenericKindHandler[]): (input: GenericInput) => input is ((GenericInput extends GenericParent ? GenericChildren extends GenericInput ? GenericChildren extends GenericGroupedKind ? GenericChildren : never : never : never) | Extract<GenericInput, GenericGroupedKind>);
6
+ <GenericKindHandler extends GenericChildren extends infer InferredChildren ? InferredChildren extends GenericParent ? GetHandler<InferredChildren> : never : never, GenericInput extends unknown, GenericGroupedKind extends DCommon.Forward<GenericKindHandler extends Handler ? Kind<GenericKindHandler> : never>>(input: GenericInput, kind: GenericKindHandler | GenericKindHandler[]): input is ((GenericInput extends GenericParent ? GenericChildren extends GenericInput ? GenericChildren extends GenericGroupedKind ? GenericChildren : never : never : never) | Extract<GenericInput, GenericGroupedKind>);
7
7
  };
@@ -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;
@@ -6,16 +6,16 @@ const require_memo = require("../../common/memo.cjs");
6
6
  const require_resultSymbol = require("../../dataStructure/common/resultSymbol.cjs");
7
7
  const require_error = require("../../dataStructure/common/error.cjs");
8
8
  const require_base = require("../../dataStructure/structure/base.cjs");
9
+ const require_nonEncodableString = require("../../dataStructure/structure/defaults/nonEncodableString.cjs");
9
10
  const require_object = require("../../dataStructure/structure/defaults/object.cjs");
10
11
  const require_kind = require("../kind.cjs");
11
- const require_entityName = require("./entityName.cjs");
12
12
  //#region scripts/modeling/entity/base.ts
13
13
  const entityKind = require_kind.createKind("entity");
14
14
  const entityStructureKind = require_kind.createKind("entity-structure");
15
15
  const EntityStructure = require_base.createStructure(entityStructureKind, ({ init }) => (name, shape) => init({
16
16
  inner: require_memo.memo(() => require_object.ObjectStructure({
17
17
  ...shape(),
18
- [entityKind.runTimeKey]: require_entityName.EntityNameStructure(name)
18
+ [entityKind.runTimeKey]: require_nonEncodableString.NonEncodableStringStructure(name)
19
19
  }, [])),
20
20
  constraints: []
21
21
  }, {
@@ -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,11 +19,12 @@ 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>;
23
26
  }
24
- export type EntityMap<GenericValue extends unknown, GenericRawValue = DCommon.RemoveConstraint<GenericValue>> = GenericRawValue extends NewType ? NewTypeMap<GenericRawValue> : GenericRawValue extends object ? DCommon.Or<[
27
+ export type EntityMap<GenericValue extends unknown, GenericRawValue = DCommon.RemoveConstraint<GenericValue>> = GenericRawValue extends NewType ? NewTypeMap<GenericRawValue> : GenericRawValue extends Entity ? GenericRawValue : GenericRawValue extends object ? DCommon.Or<[
25
28
  DCommon.IsExtends<GenericRawValue, readonly any[]>,
26
29
  DCommon.And<[
27
30
  DCommon.IsExtends<keyof GenericRawValue, string>,
@@ -29,15 +32,15 @@ export type EntityMap<GenericValue extends unknown, GenericRawValue = DCommon.Re
29
32
  ]>
30
33
  ]> extends true ? {
31
34
  [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>> {
35
+ } : GenericRawValue : GenericRawValue;
36
+ export interface EntityStructure<GenericName extends string = string, GenericProperties extends Record<string, unknown> = Record<string, unknown>> extends DCommon.Forward<DDataStructure.Structure<Entity<GenericName> & GenericProperties, EntityStructureDefinition> & DKind.Kind<typeof entityStructureKind>> {
34
37
  readonly name: GenericName;
35
38
  "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>>;
39
+ 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>);
40
+ 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>);
41
+ 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>);
42
+ 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>>;
43
+ 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>>;
44
+ asyncMap(data: EntityMap<DKind.Remove<DDataStructure.StructureValue<this>>>): Promise<DEither.Right<"map-success", DDataStructure.StructureValue<this>> | DEither.Left<"map-error", DDataStructure.Error>>;
42
45
  }
43
46
  export declare const EntityStructure: <GenericName extends string, GenericShape extends DDataStructure.ShapeObjectStructure, const GenericProperties extends DDataStructure.ShapeObjectStructureValue<GenericShape>>(name: GenericName, shape: () => GenericShape) => EntityStructure<GenericName, GenericProperties>;
@@ -6,16 +6,16 @@ import { memo } from "../../common/memo.mjs";
6
6
  import { ErrorSymbol } from "../../dataStructure/common/resultSymbol.mjs";
7
7
  import { createGetErrorHandler } from "../../dataStructure/common/error.mjs";
8
8
  import { createStructure } from "../../dataStructure/structure/base.mjs";
9
+ import { NonEncodableStringStructure } from "../../dataStructure/structure/defaults/nonEncodableString.mjs";
9
10
  import { ObjectStructure } from "../../dataStructure/structure/defaults/object.mjs";
10
11
  import { createKind } from "../kind.mjs";
11
- import { EntityNameStructure } from "./entityName.mjs";
12
12
  //#region scripts/modeling/entity/base.ts
13
13
  const entityKind = createKind("entity");
14
14
  const entityStructureKind = createKind("entity-structure");
15
15
  const EntityStructure = createStructure(entityStructureKind, ({ init }) => (name, shape) => init({
16
16
  inner: memo(() => ObjectStructure({
17
17
  ...shape(),
18
- [entityKind.runTimeKey]: EntityNameStructure(name)
18
+ [entityKind.runTimeKey]: NonEncodableStringStructure(name)
19
19
  }, [])),
20
20
  constraints: []
21
21
  }, {
@@ -1,4 +1,3 @@
1
1
  export * from './base';
2
- export * from './entityName';
3
2
  export * from './helper';
4
3
  export * from './namespace';
@@ -1,42 +1,50 @@
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
3
  const require_base = require("./entity/base.cjs");
5
4
  const require_helper = require("./entity/helper.cjs");
6
5
  const require_base$1 = require("./newType/base.cjs");
7
6
  const require_helper$1 = require("./newType/helper.cjs");
8
7
  const require_base$2 = require("./flag/base.cjs");
9
8
  const require_namespace = require("./entity/namespace.cjs");
9
+ const require_base$3 = require("./taggedObject/base.cjs");
10
+ const require_helper$2 = require("./taggedObject/helper.cjs");
10
11
  //#region scripts/modeling/index.ts
11
12
  var modeling_exports = /* @__PURE__ */ require_runtime.__exportAll({
12
- EntityNameStructure: () => require_entityName.EntityNameStructure,
13
13
  EntityStructure: () => require_base.EntityStructure,
14
14
  NewTypeStructure: () => require_base$1.NewTypeStructure,
15
+ TaggedObjectStructure: () => require_base$3.TaggedObjectStructure,
15
16
  createEntity: () => require_helper.createEntity,
16
17
  createEntityNamespace: () => require_namespace.createEntityNamespace,
17
18
  createFlag: () => require_base$2.createFlag,
18
19
  createKind: () => require_kind.createKind,
19
20
  createNewEntity: () => require_helper$1.createNewEntity,
21
+ createTaggedObject: () => require_helper$2.createTaggedObject,
20
22
  entityKind: () => require_base.entityKind,
21
- entityNameStructureKind: () => require_entityName.entityNameStructureKind,
22
23
  entityStructureKind: () => require_base.entityStructureKind,
23
24
  flagKind: () => require_base$2.flagKind,
25
+ getTagValue: () => require_helper$2.getTagValue,
26
+ hasTagValue: () => require_helper$2.hasTagValue,
24
27
  namespaceKind: () => require_namespace.namespaceKind,
25
- newTypeStructureKind: () => require_base$1.newTypeStructureKind
28
+ newTypeStructureKind: () => require_base$1.newTypeStructureKind,
29
+ objectTagKind: () => require_base$3.objectTagKind,
30
+ taggedObject: () => require_helper$2.taggedObject,
31
+ taggedObjectStructureKind: () => require_base$3.taggedObjectStructureKind
26
32
  });
27
33
  //#endregion
28
- exports.EntityNameStructure = require_entityName.EntityNameStructure;
29
34
  exports.EntityStructure = require_base.EntityStructure;
30
35
  exports.NewTypeStructure = require_base$1.NewTypeStructure;
36
+ exports.TaggedObjectStructure = require_base$3.TaggedObjectStructure;
31
37
  exports.createEntity = require_helper.createEntity;
32
38
  exports.createEntityNamespace = require_namespace.createEntityNamespace;
33
39
  exports.createFlag = require_base$2.createFlag;
34
40
  exports.createKind = require_kind.createKind;
35
41
  exports.createNewEntity = require_helper$1.createNewEntity;
42
+ exports.createTaggedObject = require_helper$2.createTaggedObject;
36
43
  exports.entityKind = require_base.entityKind;
37
- exports.entityNameStructureKind = require_entityName.entityNameStructureKind;
38
44
  exports.entityStructureKind = require_base.entityStructureKind;
39
45
  exports.flagKind = require_base$2.flagKind;
46
+ exports.getTagValue = require_helper$2.getTagValue;
47
+ exports.hasTagValue = require_helper$2.hasTagValue;
40
48
  Object.defineProperty(exports, "modeling_exports", {
41
49
  enumerable: true,
42
50
  get: function() {
@@ -45,3 +53,6 @@ Object.defineProperty(exports, "modeling_exports", {
45
53
  });
46
54
  exports.namespaceKind = require_namespace.namespaceKind;
47
55
  exports.newTypeStructureKind = require_base$1.newTypeStructureKind;
56
+ exports.objectTagKind = require_base$3.objectTagKind;
57
+ exports.taggedObject = require_helper$2.taggedObject;
58
+ exports.taggedObjectStructureKind = require_base$3.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,34 @@
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
3
  import { EntityStructure, entityKind, entityStructureKind } from "./entity/base.mjs";
5
4
  import { createEntity } from "./entity/helper.mjs";
6
5
  import { NewTypeStructure, newTypeStructureKind } from "./newType/base.mjs";
7
6
  import { createNewEntity } from "./newType/helper.mjs";
8
7
  import { createFlag, flagKind } from "./flag/base.mjs";
9
8
  import { createEntityNamespace, namespaceKind } from "./entity/namespace.mjs";
9
+ import { TaggedObjectStructure, objectTagKind, taggedObjectStructureKind } from "./taggedObject/base.mjs";
10
+ import { createTaggedObject, getTagValue, hasTagValue, taggedObject } from "./taggedObject/helper.mjs";
10
11
  //#region scripts/modeling/index.ts
11
12
  var modeling_exports = /* @__PURE__ */ __exportAll({
12
- EntityNameStructure: () => EntityNameStructure,
13
13
  EntityStructure: () => EntityStructure,
14
14
  NewTypeStructure: () => NewTypeStructure,
15
+ TaggedObjectStructure: () => TaggedObjectStructure,
15
16
  createEntity: () => createEntity,
16
17
  createEntityNamespace: () => createEntityNamespace,
17
18
  createFlag: () => createFlag,
18
19
  createKind: () => createKind,
19
20
  createNewEntity: () => createNewEntity,
21
+ createTaggedObject: () => createTaggedObject,
20
22
  entityKind: () => entityKind,
21
- entityNameStructureKind: () => entityNameStructureKind,
22
23
  entityStructureKind: () => entityStructureKind,
23
24
  flagKind: () => flagKind,
25
+ getTagValue: () => getTagValue,
26
+ hasTagValue: () => hasTagValue,
24
27
  namespaceKind: () => namespaceKind,
25
- newTypeStructureKind: () => newTypeStructureKind
28
+ newTypeStructureKind: () => newTypeStructureKind,
29
+ objectTagKind: () => objectTagKind,
30
+ taggedObject: () => taggedObject,
31
+ taggedObjectStructureKind: () => taggedObjectStructureKind
26
32
  });
27
33
  //#endregion
28
- export { EntityNameStructure, EntityStructure, NewTypeStructure, createEntity, createEntityNamespace, createFlag, createKind, createNewEntity, entityKind, entityNameStructureKind, entityStructureKind, flagKind, modeling_exports, namespaceKind, newTypeStructureKind };
34
+ export { EntityStructure, NewTypeStructure, TaggedObjectStructure, createEntity, createEntityNamespace, createFlag, createKind, createNewEntity, createTaggedObject, entityKind, entityStructureKind, flagKind, getTagValue, hasTagValue, modeling_exports, namespaceKind, newTypeStructureKind, objectTagKind, taggedObject, taggedObjectStructureKind };
@@ -7,14 +7,17 @@ const require_error = require("../../dataStructure/common/error.cjs");
7
7
  const require_base = require("../../dataStructure/structure/base.cjs");
8
8
  //#region scripts/modeling/newType/base.ts
9
9
  const newTypeStructureKind = require("../kind.cjs").createKind("new-type-structure");
10
+ function executeNewTypeConstraints(structure, data, errorHandler) {
11
+ 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);
12
+ }
10
13
  const NewTypeStructure = require_base.createStructure(newTypeStructureKind, ({ init }) => (name, structure, newTypeConstraints) => init({
11
14
  constraints: [],
12
15
  newTypeConstraints,
13
16
  inner: structure
14
17
  }, {
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))),
18
+ 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)),
19
+ 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))),
20
+ 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
21
  isAsynchronous: (self) => self.definition.inner.isAsynchronous() || self.definition.newTypeConstraints.some((value) => value.isAsynchronous())
19
22
  }, {
20
23
  name,
@@ -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<GenericName extends string = string, GenericValue extends unknown = unknown, 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>);
@@ -8,14 +8,17 @@ import { createStructure } from "../../dataStructure/structure/base.mjs";
8
8
  import { createKind } from "../kind.mjs";
9
9
  //#region scripts/modeling/newType/base.ts
10
10
  const newTypeStructureKind = createKind("new-type-structure");
11
+ function executeNewTypeConstraints(structure, data, errorHandler) {
12
+ 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);
13
+ }
11
14
  const NewTypeStructure = createStructure(newTypeStructureKind, ({ init }) => (name, structure, newTypeConstraints) => init({
12
15
  constraints: [],
13
16
  newTypeConstraints,
14
17
  inner: structure
15
18
  }, {
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))),
19
+ executeCheck: (self, data, errorHandler) => callThen(self.definition.inner.executeCheck(data, errorHandler), (result) => result === ErrorSymbol ? ErrorSymbol : executeNewTypeConstraints(self, data, errorHandler)),
20
+ 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))),
21
+ 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
22
  isAsynchronous: (self) => self.definition.inner.isAsynchronous() || self.definition.newTypeConstraints.some((value) => value.isAsynchronous())
20
23
  }, {
21
24
  name,
@@ -0,0 +1,23 @@
1
+ const require_base = require("../../dataStructure/structure/base.cjs");
2
+ const require_nonEncodableString = require("../../dataStructure/structure/defaults/nonEncodableString.cjs");
3
+ const require_object = require("../../dataStructure/structure/defaults/object.cjs");
4
+ const require_kind = require("../kind.cjs");
5
+ //#region scripts/modeling/taggedObject/base.ts
6
+ const objectTagKind = require_kind.createKind("object-tag");
7
+ const taggedObjectStructureKind = require_kind.createKind("tagged-object-structure");
8
+ const TaggedObjectStructure = require_base.createStructure(taggedObjectStructureKind, ({ init }) => (name, shape) => init({
9
+ inner: require_object.ObjectStructure({
10
+ ...shape,
11
+ [objectTagKind.runTimeKey]: require_nonEncodableString.NonEncodableStringStructure(name)
12
+ }, []),
13
+ constraints: []
14
+ }, {
15
+ executeCheck: (self, data, errorHandler) => self.definition.inner.executeCheck(data, errorHandler),
16
+ executeEncode: (self, codecContext, data, errorHandler) => self.definition.inner.executeEncode(codecContext, data, errorHandler),
17
+ executeDecode: (self, codecContext, data, errorHandler) => self.definition.inner.executeDecode(codecContext, data, errorHandler),
18
+ isAsynchronous: (self) => self.definition.inner.isAsynchronous()
19
+ }, { name }));
20
+ //#endregion
21
+ exports.TaggedObjectStructure = TaggedObjectStructure;
22
+ exports.objectTagKind = objectTagKind;
23
+ exports.taggedObjectStructureKind = taggedObjectStructureKind;