@duplojs/agents-kit 0.1.0-beta.3 → 0.1.0-beta.6

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 (487) hide show
  1. package/README.md +11 -11
  2. package/dist/bin/index.mjs +2 -2
  3. package/dist/bin/installSkill/index.d.ts +2 -0
  4. package/dist/bin/{install → installSkill}/index.mjs +3 -3
  5. package/dist/bin/{install → installSkill}/skill.mjs +1 -1
  6. package/dist/bin/setup/instructions.d.ts +1 -1
  7. package/docs/API/10-lang/10-array/10-at.ts +4 -4
  8. package/docs/API/10-lang/10-array/10-coalescing.ts +3 -2
  9. package/docs/API/10-lang/10-array/10-indexOf.ts +1 -1
  10. package/docs/API/10-lang/10-array/10-is.ts +17 -3
  11. package/docs/API/10-lang/10-array/10-lastIndexOf.ts +1 -1
  12. package/docs/API/10-lang/10-chrono/10-addTime.ts +1 -1
  13. package/docs/API/10-lang/10-chrono/10-closestTo.ts +5 -8
  14. package/docs/API/10-lang/10-chrono/10-isDate.ts +15 -2
  15. package/docs/API/10-lang/10-chrono/10-isSerializedTheDate.ts +16 -1
  16. package/docs/API/10-lang/10-chrono/10-isSerializedTheTime.ts +16 -1
  17. package/docs/API/10-lang/10-chrono/10-isTime.ts +15 -2
  18. package/docs/API/10-lang/10-chrono/10-maxDate.ts +4 -8
  19. package/docs/API/10-lang/10-chrono/10-maxTime.ts +4 -8
  20. package/docs/API/10-lang/10-chrono/10-minDate.ts +4 -8
  21. package/docs/API/10-lang/10-chrono/10-minTime.ts +4 -8
  22. package/docs/API/10-lang/10-chrono/10-sortDates.ts +6 -8
  23. package/docs/API/10-lang/10-chrono/10-sortTimes.ts +6 -8
  24. package/docs/API/10-lang/10-chrono/10-subtractTime.ts +1 -1
  25. package/docs/API/10-lang/10-common/10-and.ts +6 -0
  26. package/docs/API/10-lang/10-common/10-createQueue.ts +4 -3
  27. package/docs/API/10-lang/10-common/10-createTransformer.ts +1 -1
  28. package/docs/API/10-lang/10-common/10-equal.ts +6 -0
  29. package/docs/API/10-lang/10-common/10-falsy.ts +19 -0
  30. package/docs/API/10-lang/10-common/10-instanceOf.ts +14 -3
  31. package/docs/API/10-lang/10-common/10-isType.ts +6 -0
  32. package/docs/API/10-lang/10-common/10-justExec.ts +3 -3
  33. package/docs/API/10-lang/10-common/10-or.ts +17 -3
  34. package/docs/API/10-lang/10-common/10-tap.ts +28 -0
  35. package/docs/API/10-lang/10-common/10-toJSON.ts +1 -1
  36. package/docs/API/10-lang/10-common/10-toNative.ts +1 -1
  37. package/docs/API/10-lang/10-common/10-toRegExp.ts +1 -1
  38. package/docs/API/10-lang/10-common/10-truthy.ts +19 -0
  39. package/docs/API/10-lang/10-common/10-whenNot.ts +44 -13
  40. package/docs/API/10-lang/10-common/index.llms.md +4 -0
  41. package/docs/API/10-lang/10-dataStructure/10-typeStructureIdentifier.ts +2 -2
  42. package/docs/API/10-lang/10-either/10-asyncGroup.ts +1 -1
  43. package/docs/API/10-lang/10-either/10-asyncSafeCallback.ts +4 -2
  44. package/docs/API/10-lang/10-either/10-extractErrorInLeft.ts +45 -0
  45. package/docs/API/10-lang/10-either/10-forwardAssertsSelection.ts +1 -1
  46. package/docs/API/10-lang/10-either/10-group.ts +1 -1
  47. package/docs/API/10-lang/10-either/10-hasInformation.ts +6 -0
  48. package/docs/API/10-lang/10-either/10-isLeft.ts +10 -1
  49. package/docs/API/10-lang/10-either/10-isRight.ts +10 -1
  50. package/docs/API/10-lang/10-either/10-isSelected.ts +13 -1
  51. package/docs/API/10-lang/10-either/10-keepAsRightSelection.ts +1 -1
  52. package/docs/API/10-lang/10-either/10-matchInformation.ts +7 -5
  53. package/docs/API/10-lang/10-either/10-matchInformationCombination.ts +61 -0
  54. package/docs/API/10-lang/10-either/10-matchInformationCombinationOtherwise.ts +62 -0
  55. package/docs/API/10-lang/10-either/10-matchInformationOtherwise.ts +7 -5
  56. package/docs/API/10-lang/10-either/10-rightAsyncPipe.ts +2 -1
  57. package/docs/API/10-lang/10-either/10-rightPipe.ts +1 -1
  58. package/docs/API/10-lang/10-either/10-safeCallback.ts +1 -1
  59. package/docs/API/10-lang/10-either/10-unwrapOr.ts +2 -2
  60. package/docs/API/10-lang/10-either/10-unwrapOtherwise.ts +2 -2
  61. package/docs/API/10-lang/10-either/10-whenHasInformation.ts +4 -3
  62. package/docs/API/10-lang/10-either/10-whenHasInformationOtherwise.ts +5 -5
  63. package/docs/API/10-lang/10-either/10-whenIsLeft.ts +2 -2
  64. package/docs/API/10-lang/10-either/10-whenIsLeftOtherwise.ts +5 -5
  65. package/docs/API/10-lang/10-either/10-whenIsRight.ts +2 -2
  66. package/docs/API/10-lang/10-either/10-whenIsRightOtherwise.ts +7 -7
  67. package/docs/API/10-lang/10-either/10-whenIsSelected.ts +5 -5
  68. package/docs/API/10-lang/10-either/10-whenIsSelectedOtherwise.ts +5 -5
  69. package/docs/API/10-lang/10-either/index.llms.md +12 -0
  70. package/docs/API/10-lang/10-generator/10-asyncConcat.ts +7 -10
  71. package/docs/API/10-lang/10-generator/10-asyncFlat.ts +6 -6
  72. package/docs/API/10-lang/10-generator/10-concat.ts +3 -3
  73. package/docs/API/10-lang/10-generator/10-flat.ts +2 -2
  74. package/docs/API/10-lang/10-generator/10-map.ts +1 -1
  75. package/docs/API/10-lang/10-generator/10-reduce.ts +1 -1
  76. package/docs/API/10-lang/10-number/10-betweenThan.ts +43 -0
  77. package/docs/API/10-lang/10-number/10-betweenThanOrEqual.ts +43 -0
  78. package/docs/API/10-lang/10-number/10-greaterThan.ts +35 -0
  79. package/docs/API/10-lang/10-number/10-greaterThanOrEqual.ts +35 -0
  80. package/docs/API/10-lang/10-number/10-isEven.ts +33 -0
  81. package/docs/API/10-lang/10-number/10-isInteger.ts +33 -0
  82. package/docs/API/10-lang/10-number/10-isMultipleOf.ts +35 -0
  83. package/docs/API/10-lang/10-number/10-isNegative.ts +33 -0
  84. package/docs/API/10-lang/10-number/10-isNotZero.ts +33 -0
  85. package/docs/API/10-lang/10-number/10-isOdd.ts +33 -0
  86. package/docs/API/10-lang/10-number/10-isPositive.ts +33 -0
  87. package/docs/API/10-lang/10-number/10-isSafe.ts +33 -0
  88. package/docs/API/10-lang/10-number/10-isStrictNegative.ts +34 -0
  89. package/docs/API/10-lang/10-number/10-isStrictPositive.ts +33 -0
  90. package/docs/API/10-lang/10-number/10-lessThan.ts +35 -0
  91. package/docs/API/10-lang/10-number/10-lessThanOrEqual.ts +35 -0
  92. package/docs/API/10-lang/10-number/10-max.ts +19 -0
  93. package/docs/API/10-lang/10-number/10-maxOf.ts +19 -0
  94. package/docs/API/10-lang/10-number/10-min.ts +19 -0
  95. package/docs/API/10-lang/10-number/10-minOf.ts +19 -0
  96. package/docs/API/10-lang/10-number/10-sort.ts +19 -0
  97. package/docs/API/10-lang/10-number/10-sum.ts +19 -0
  98. package/docs/API/10-lang/10-number/index.llms.md +92 -0
  99. package/docs/API/10-lang/10-number/index.md +3 -0
  100. package/docs/API/10-lang/10-object/10-assign.ts +41 -0
  101. package/docs/API/10-lang/10-object/10-countKeys.ts +15 -0
  102. package/docs/API/10-lang/10-object/10-deepDiscriminate.ts +63 -0
  103. package/docs/API/10-lang/10-object/10-deepOverride.ts +35 -0
  104. package/docs/API/10-lang/10-object/10-discriminate.ts +55 -0
  105. package/docs/API/10-lang/10-object/10-discriminateEntryKey.ts +43 -0
  106. package/docs/API/10-lang/10-object/10-discriminateEntryValue.ts +44 -0
  107. package/docs/API/10-lang/10-object/10-entries.ts +19 -0
  108. package/docs/API/10-lang/10-object/10-entry.ts +17 -0
  109. package/docs/API/10-lang/10-object/10-fromEntries.ts +23 -0
  110. package/docs/API/10-lang/10-object/10-getDeepProperty.ts +26 -0
  111. package/docs/API/10-lang/10-object/10-getProperty.ts +24 -0
  112. package/docs/API/10-lang/10-object/10-hasKeys.ts +43 -0
  113. package/docs/API/10-lang/10-object/10-isSimple.ts +38 -0
  114. package/docs/API/10-lang/10-object/10-keys.ts +19 -0
  115. package/docs/API/10-lang/10-object/10-omit.ts +39 -0
  116. package/docs/API/10-lang/10-object/10-override.ts +24 -0
  117. package/docs/API/10-lang/10-object/10-pick.ts +41 -0
  118. package/docs/API/10-lang/10-object/10-to.ts +40 -0
  119. package/docs/API/10-lang/10-object/10-transformProperties.ts +43 -0
  120. package/docs/API/10-lang/10-object/10-transformProperty.ts +39 -0
  121. package/docs/API/10-lang/10-object/10-values.ts +19 -0
  122. package/docs/API/10-lang/10-object/index.llms.md +92 -0
  123. package/docs/API/10-lang/10-object/index.md +3 -0
  124. package/docs/API/10-lang/10-path/10-computeRelative.ts +19 -0
  125. package/docs/API/10-lang/10-path/10-concatSegment.ts +28 -0
  126. package/docs/API/10-lang/10-path/10-create.ts +21 -0
  127. package/docs/API/10-lang/10-path/10-createAbsolute.ts +21 -0
  128. package/docs/API/10-lang/10-path/10-createAbsoluteOrThrow.ts +16 -0
  129. package/docs/API/10-lang/10-path/10-createMatcher.ts +50 -0
  130. package/docs/API/10-lang/10-path/10-createOrThrow.ts +16 -0
  131. package/docs/API/10-lang/10-path/10-createSegment.ts +26 -0
  132. package/docs/API/10-lang/10-path/10-createSegmentOrThrow.ts +16 -0
  133. package/docs/API/10-lang/10-path/10-declareAbsolutePath.ts +15 -0
  134. package/docs/API/10-lang/10-path/10-declarePath.ts +15 -0
  135. package/docs/API/10-lang/10-path/10-declareSegment.ts +15 -0
  136. package/docs/API/10-lang/10-path/10-getBaseName.ts +22 -0
  137. package/docs/API/10-lang/10-path/10-getExtensionName.ts +22 -0
  138. package/docs/API/10-lang/10-path/10-getParentFolderPath.ts +25 -0
  139. package/docs/API/10-lang/10-path/10-is.ts +46 -0
  140. package/docs/API/10-lang/10-path/10-isAbsolute.ts +46 -0
  141. package/docs/API/10-lang/10-path/10-isSegment.ts +42 -0
  142. package/docs/API/10-lang/10-path/10-normalize.ts +26 -0
  143. package/docs/API/10-lang/10-path/10-resolveFrom.ts +37 -0
  144. package/docs/API/10-lang/10-path/10-resolveRelative.ts +23 -0
  145. package/docs/API/10-lang/10-path/index.llms.md +88 -0
  146. package/docs/API/10-lang/10-path/index.md +3 -0
  147. package/docs/API/10-lang/10-pattern/10-exhaustive.ts +26 -0
  148. package/docs/API/10-lang/10-pattern/10-isMatch.ts +72 -0
  149. package/docs/API/10-lang/10-pattern/10-match.ts +133 -0
  150. package/docs/API/10-lang/10-pattern/10-matchWithEntity.ts +49 -0
  151. package/docs/API/10-lang/10-pattern/10-matchWithEntityOtherwise.ts +55 -0
  152. package/docs/API/10-lang/10-pattern/10-matchWithError.ts +45 -0
  153. package/docs/API/10-lang/10-pattern/10-matchWithErrorOtherwise.ts +48 -0
  154. package/docs/API/10-lang/10-pattern/10-matchWithFact.ts +49 -0
  155. package/docs/API/10-lang/10-pattern/10-matchWithFactOtherwise.ts +49 -0
  156. package/docs/API/10-lang/10-pattern/10-matchWithNumber.ts +33 -0
  157. package/docs/API/10-lang/10-pattern/10-matchWithNumberOtherwise.ts +37 -0
  158. package/docs/API/10-lang/10-pattern/10-matchWithString.ts +34 -0
  159. package/docs/API/10-lang/10-pattern/10-matchWithStringOtherwise.ts +35 -0
  160. package/docs/API/10-lang/10-pattern/10-matchWithTaggedObject.ts +43 -0
  161. package/docs/API/10-lang/10-pattern/10-matchWithTaggedObjectOtherwise.ts +49 -0
  162. package/docs/API/10-lang/10-pattern/10-otherwise.ts +28 -0
  163. package/docs/API/10-lang/10-pattern/10-union.ts +47 -0
  164. package/docs/API/10-lang/10-pattern/10-when.ts +46 -0
  165. package/docs/API/10-lang/10-pattern/10-whenNot.ts +123 -0
  166. package/docs/API/10-lang/10-pattern/index.llms.md +80 -0
  167. package/docs/API/10-lang/10-pattern/index.md +3 -0
  168. package/docs/API/10-lang/10-printer/10-bold.ts +12 -0
  169. package/docs/API/10-lang/10-printer/10-colorized.ts +18 -0
  170. package/docs/API/10-lang/10-printer/10-colorizedBold.ts +18 -0
  171. package/docs/API/10-lang/10-printer/10-indent.ts +20 -0
  172. package/docs/API/10-lang/10-printer/10-primitives.md +11 -0
  173. package/docs/API/10-lang/10-printer/10-render.ts +29 -0
  174. package/docs/API/10-lang/10-printer/10-renderLine.ts +12 -0
  175. package/docs/API/10-lang/10-printer/10-renderParagraph.ts +16 -0
  176. package/docs/API/10-lang/10-printer/index.llms.md +37 -0
  177. package/docs/API/10-lang/10-printer/index.md +3 -0
  178. package/docs/API/10-lang/10-string/10-at.ts +18 -0
  179. package/docs/API/10-lang/10-string/10-capitalize.ts +18 -0
  180. package/docs/API/10-lang/10-string/10-charAt.ts +18 -0
  181. package/docs/API/10-lang/10-string/10-concat.ts +18 -0
  182. package/docs/API/10-lang/10-string/10-endsWith.ts +33 -0
  183. package/docs/API/10-lang/10-string/10-extract.ts +18 -0
  184. package/docs/API/10-lang/10-string/10-extractAll.ts +18 -0
  185. package/docs/API/10-lang/10-string/10-first.ts +17 -0
  186. package/docs/API/10-lang/10-string/10-includes.ts +33 -0
  187. package/docs/API/10-lang/10-string/10-indexOf.ts +17 -0
  188. package/docs/API/10-lang/10-string/10-isComposedOf.ts +33 -0
  189. package/docs/API/10-lang/10-string/10-isEmail.ts +56 -0
  190. package/docs/API/10-lang/10-string/10-isIn.ts +34 -0
  191. package/docs/API/10-lang/10-string/10-isKeyof.ts +37 -0
  192. package/docs/API/10-lang/10-string/10-isNotEmpty.ts +32 -0
  193. package/docs/API/10-lang/10-string/10-isNumber.ts +32 -0
  194. package/docs/API/10-lang/10-string/10-isTrimmed.ts +33 -0
  195. package/docs/API/10-lang/10-string/10-isUrl.ts +31 -0
  196. package/docs/API/10-lang/10-string/10-isUuid.ts +31 -0
  197. package/docs/API/10-lang/10-string/10-join.ts +18 -0
  198. package/docs/API/10-lang/10-string/10-last.ts +17 -0
  199. package/docs/API/10-lang/10-string/10-lastIndexOf.ts +17 -0
  200. package/docs/API/10-lang/10-string/10-length.ts +18 -0
  201. package/docs/API/10-lang/10-string/10-lengthEqual.ts +33 -0
  202. package/docs/API/10-lang/10-string/10-maxCharacters.ts +33 -0
  203. package/docs/API/10-lang/10-string/10-minCharacters.ts +33 -0
  204. package/docs/API/10-lang/10-string/10-normalize.ts +17 -0
  205. package/docs/API/10-lang/10-string/10-padEnd.ts +17 -0
  206. package/docs/API/10-lang/10-string/10-padStart.ts +17 -0
  207. package/docs/API/10-lang/10-string/10-pop.ts +17 -0
  208. package/docs/API/10-lang/10-string/10-prepend.ts +17 -0
  209. package/docs/API/10-lang/10-string/10-repeat.ts +17 -0
  210. package/docs/API/10-lang/10-string/10-replace.ts +18 -0
  211. package/docs/API/10-lang/10-string/10-replaceAll.ts +17 -0
  212. package/docs/API/10-lang/10-string/10-search.ts +17 -0
  213. package/docs/API/10-lang/10-string/10-shift.ts +17 -0
  214. package/docs/API/10-lang/10-string/10-slice.ts +17 -0
  215. package/docs/API/10-lang/10-string/10-sort.ts +19 -0
  216. package/docs/API/10-lang/10-string/10-sortCompare.ts +17 -0
  217. package/docs/API/10-lang/10-string/10-split.ts +34 -0
  218. package/docs/API/10-lang/10-string/10-startsWith.ts +33 -0
  219. package/docs/API/10-lang/10-string/10-stringify.ts +11 -0
  220. package/docs/API/10-lang/10-string/10-substring.ts +17 -0
  221. package/docs/API/10-lang/10-string/10-test.ts +17 -0
  222. package/docs/API/10-lang/10-string/10-to.ts +11 -0
  223. package/docs/API/10-lang/10-string/10-toLowerCase.ts +17 -0
  224. package/docs/API/10-lang/10-string/10-toUpperCase.ts +17 -0
  225. package/docs/API/10-lang/10-string/10-trim.ts +17 -0
  226. package/docs/API/10-lang/10-string/10-trimEnd.ts +17 -0
  227. package/docs/API/10-lang/10-string/10-trimStart.ts +17 -0
  228. package/docs/API/10-lang/10-string/10-uncapitalize.ts +17 -0
  229. package/docs/API/10-lang/10-string/index.llms.md +208 -0
  230. package/docs/API/10-lang/10-string/index.md +3 -0
  231. package/docs/API/10-lang/10-tuple/10-from.ts +50 -0
  232. package/docs/API/10-lang/10-tuple/10-map.ts +37 -0
  233. package/docs/API/10-lang/10-tuple/index.llms.md +12 -0
  234. package/docs/API/10-lang/10-tuple/index.md +3 -0
  235. package/docs/API/40-json-web-token/10-tokenHandler/10-createTokenHandler.ts +160 -0
  236. package/docs/API/40-json-web-token/10-tokenHandler/index.llms.md +8 -0
  237. package/docs/API/40-json-web-token/10-tokenHandler/index.md +3 -0
  238. package/docs/API/40-json-web-token/20-signer/10-createHS256.ts +24 -0
  239. package/docs/API/40-json-web-token/20-signer/10-createHS512.ts +24 -0
  240. package/docs/API/40-json-web-token/20-signer/10-createRS256.ts +28 -0
  241. package/docs/API/40-json-web-token/20-signer/10-createRS512.ts +28 -0
  242. package/docs/API/40-json-web-token/20-signer/10-factory.ts +29 -0
  243. package/docs/API/40-json-web-token/20-signer/index.llms.md +24 -0
  244. package/docs/API/40-json-web-token/20-signer/index.md +3 -0
  245. package/docs/API/40-json-web-token/30-cipher/10-createRSAOAEP.ts +26 -0
  246. package/docs/API/40-json-web-token/30-cipher/10-createRSAOAEP256.ts +26 -0
  247. package/docs/API/40-json-web-token/30-cipher/10-factory.ts +29 -0
  248. package/docs/API/40-json-web-token/30-cipher/index.llms.md +16 -0
  249. package/docs/API/40-json-web-token/30-cipher/index.md +3 -0
  250. package/docs/API/40-json-web-token/40-utils/10-AES_GCM.decrypt.ts +17 -0
  251. package/docs/API/40-json-web-token/40-utils/10-AES_GCM.encrypt.ts +11 -0
  252. package/docs/API/40-json-web-token/40-utils/10-AES_GCM.generateInitializationVector.ts +9 -0
  253. package/docs/API/40-json-web-token/40-utils/10-HMAC.sign.ts +13 -0
  254. package/docs/API/40-json-web-token/40-utils/10-HMAC.verify.ts +11 -0
  255. package/docs/API/40-json-web-token/40-utils/10-RSA.sign.ts +14 -0
  256. package/docs/API/40-json-web-token/40-utils/10-RSA.verify.ts +13 -0
  257. package/docs/API/40-json-web-token/40-utils/10-RSA_OAEP.decrypt.ts +13 -0
  258. package/docs/API/40-json-web-token/40-utils/10-RSA_OAEP.encrypt.ts +10 -0
  259. package/docs/API/40-json-web-token/40-utils/10-decodeBase64.ts +9 -0
  260. package/docs/API/40-json-web-token/40-utils/10-decodeBase64Url.ts +9 -0
  261. package/docs/API/40-json-web-token/40-utils/10-decodeText.ts +9 -0
  262. package/docs/API/40-json-web-token/40-utils/10-encodeBase64.ts +9 -0
  263. package/docs/API/40-json-web-token/40-utils/10-encodeBase64Url.ts +9 -0
  264. package/docs/API/40-json-web-token/40-utils/10-encodeText.ts +9 -0
  265. package/docs/API/40-json-web-token/40-utils/10-isBase64Url.ts +11 -0
  266. package/docs/API/40-json-web-token/40-utils/10-jsonParse.ts +11 -0
  267. package/docs/API/40-json-web-token/40-utils/10-pemToBinary.ts +11 -0
  268. package/docs/API/40-json-web-token/40-utils/index.llms.md +76 -0
  269. package/docs/API/40-json-web-token/40-utils/index.md +3 -0
  270. package/docs/API/40-json-web-token/index.md +3 -0
  271. package/docs/API/50-form/10-vue/10-construction/10-createForm.ts +48 -0
  272. package/docs/API/50-form/10-vue/10-construction/10-createFormField.ts +66 -0
  273. package/docs/API/50-form/10-vue/10-construction/10-createGridTemplates.ts +39 -0
  274. package/docs/API/50-form/10-vue/10-construction/10-createInput.ts +46 -0
  275. package/docs/API/50-form/10-vue/10-construction/10-createTemplate.ts +36 -0
  276. package/docs/API/50-form/10-vue/10-construction/fixtures/AddressInput.vue +19 -0
  277. package/docs/API/50-form/10-vue/10-construction/index.llms.md +24 -0
  278. package/docs/API/50-form/10-vue/10-construction/index.md +3 -0
  279. package/docs/API/50-form/10-vue/20-layouts/10-useCheckLayout.ts +40 -0
  280. package/docs/API/50-form/10-vue/20-layouts/10-useDisabledLayout.ts +34 -0
  281. package/docs/API/50-form/10-vue/20-layouts/10-useMultiLayout.ts +32 -0
  282. package/docs/API/50-form/10-vue/20-layouts/10-useRepeatLayout.ts +34 -0
  283. package/docs/API/50-form/10-vue/20-layouts/10-useSectionLayout.ts +20 -0
  284. package/docs/API/50-form/10-vue/20-layouts/10-useSlotLayout.ts +37 -0
  285. package/docs/API/50-form/10-vue/20-layouts/10-useStepLayout.ts +31 -0
  286. package/docs/API/50-form/10-vue/20-layouts/10-useUnionLayout.ts +48 -0
  287. package/docs/API/50-form/10-vue/20-layouts/index.llms.md +36 -0
  288. package/docs/API/50-form/10-vue/20-layouts/index.md +3 -0
  289. package/docs/API/50-form/10-vue/30-designSystem/10-useCheckbox.ts +13 -0
  290. package/docs/API/50-form/10-vue/30-designSystem/10-useCheckboxPolicy.ts +18 -0
  291. package/docs/API/50-form/10-vue/30-designSystem/10-useDateInput.ts +20 -0
  292. package/docs/API/50-form/10-vue/30-designSystem/10-useDualRangeInput.ts +27 -0
  293. package/docs/API/50-form/10-vue/30-designSystem/10-useFileInput.ts +23 -0
  294. package/docs/API/50-form/10-vue/30-designSystem/10-useNumberInput.ts +18 -0
  295. package/docs/API/50-form/10-vue/30-designSystem/10-useRadioGroup.ts +31 -0
  296. package/docs/API/50-form/10-vue/30-designSystem/10-useRangeDateInput.ts +23 -0
  297. package/docs/API/50-form/10-vue/30-designSystem/10-useRangeInput.ts +18 -0
  298. package/docs/API/50-form/10-vue/30-designSystem/10-useRangeTimeInput.ts +23 -0
  299. package/docs/API/50-form/10-vue/30-designSystem/10-useSelectInput.ts +31 -0
  300. package/docs/API/50-form/10-vue/30-designSystem/10-useTextInput.ts +14 -0
  301. package/docs/API/50-form/10-vue/30-designSystem/10-useTextareaInput.ts +14 -0
  302. package/docs/API/50-form/10-vue/30-designSystem/10-useTimeInput.ts +20 -0
  303. package/docs/API/50-form/10-vue/30-designSystem/20-components.md +11 -0
  304. package/docs/API/50-form/10-vue/30-designSystem/index.llms.md +65 -0
  305. package/docs/API/50-form/10-vue/30-designSystem/index.md +3 -0
  306. package/docs/API/50-form/10-vue/fixtures/templates.ts +20 -0
  307. package/docs/API/50-form/10-vue/index.md +3 -0
  308. package/docs/API/50-form/index.md +3 -0
  309. package/docs/API/60-playwright/10-construction/10-createComponent.ts +47 -0
  310. package/docs/API/60-playwright/10-construction/10-createComponentInteraction.ts +28 -0
  311. package/docs/API/60-playwright/10-construction/10-createPage.ts +34 -0
  312. package/docs/API/60-playwright/10-construction/10-createStepWrapper.ts +23 -0
  313. package/docs/API/60-playwright/10-construction/10-createWebsite.ts +57 -0
  314. package/docs/API/60-playwright/10-construction/10-initClient.ts +38 -0
  315. package/docs/API/60-playwright/10-construction/index.llms.md +28 -0
  316. package/docs/API/60-playwright/10-construction/index.md +3 -0
  317. package/docs/API/60-playwright/20-actions/10-check.ts +9 -0
  318. package/docs/API/60-playwright/20-actions/10-clear.ts +9 -0
  319. package/docs/API/60-playwright/20-actions/10-click.ts +9 -0
  320. package/docs/API/60-playwright/20-actions/10-dragTo.ts +10 -0
  321. package/docs/API/60-playwright/20-actions/10-extractContent.ts +10 -0
  322. package/docs/API/60-playwright/20-actions/10-fill.ts +9 -0
  323. package/docs/API/60-playwright/20-actions/10-focus.ts +9 -0
  324. package/docs/API/60-playwright/20-actions/10-forceClick.ts +10 -0
  325. package/docs/API/60-playwright/20-actions/10-hover.ts +9 -0
  326. package/docs/API/60-playwright/20-actions/10-press.ts +9 -0
  327. package/docs/API/60-playwright/20-actions/10-selectOption.ts +10 -0
  328. package/docs/API/60-playwright/20-actions/10-type.ts +10 -0
  329. package/docs/API/60-playwright/20-actions/10-uncheck.ts +9 -0
  330. package/docs/API/60-playwright/20-actions/10-withStep.ts +10 -0
  331. package/docs/API/60-playwright/20-actions/index.llms.md +60 -0
  332. package/docs/API/60-playwright/20-actions/index.md +3 -0
  333. package/docs/API/60-playwright/30-assertions/10-toBeBusy.ts +10 -0
  334. package/docs/API/60-playwright/30-assertions/10-toBeChecked.ts +9 -0
  335. package/docs/API/60-playwright/30-assertions/10-toBeDisabled.ts +9 -0
  336. package/docs/API/60-playwright/30-assertions/10-toBeEnabled.ts +9 -0
  337. package/docs/API/60-playwright/30-assertions/10-toBeHidden.ts +9 -0
  338. package/docs/API/60-playwright/30-assertions/10-toBeNotBusy.ts +10 -0
  339. package/docs/API/60-playwright/30-assertions/10-toBeVisible.ts +10 -0
  340. package/docs/API/60-playwright/30-assertions/10-toContainText.ts +9 -0
  341. package/docs/API/60-playwright/30-assertions/10-toHaveAttribute.ts +12 -0
  342. package/docs/API/60-playwright/30-assertions/10-toHaveClass.ts +9 -0
  343. package/docs/API/60-playwright/30-assertions/10-toHaveNoText.ts +10 -0
  344. package/docs/API/60-playwright/30-assertions/10-toHaveQuantity.ts +20 -0
  345. package/docs/API/60-playwright/30-assertions/10-toHaveText.ts +9 -0
  346. package/docs/API/60-playwright/30-assertions/10-toHaveValue.ts +9 -0
  347. package/docs/API/60-playwright/30-assertions/10-withStep.ts +10 -0
  348. package/docs/API/60-playwright/30-assertions/index.llms.md +64 -0
  349. package/docs/API/60-playwright/30-assertions/index.md +3 -0
  350. package/docs/API/60-playwright/fixtures/component.ts +44 -0
  351. package/docs/API/60-playwright/index.md +3 -0
  352. package/docs/API.llms.md +84 -0
  353. package/docs/concepts/01-fundamental/01-constraint/20-manipulation.ts +9 -6
  354. package/docs/concepts/01-fundamental/01-constraint/30-cast.ts +9 -5
  355. package/docs/concepts/01-fundamental/02-currying/01-use.ts +5 -0
  356. package/docs/concepts/01-fundamental/02-currying/10-built-in-function.ts +28 -16
  357. package/docs/concepts/01-fundamental/02-currying/20-inner-pipe.ts +11 -2
  358. package/docs/concepts/01-fundamental/02-currying/30-async-pipe.ts +11 -2
  359. package/docs/concepts/01-fundamental/03-either/10-discrimination.ts +23 -12
  360. package/docs/concepts/01-fundamental/03-either/20-exhaustive-handling.ts +27 -10
  361. package/docs/concepts/01-fundamental/03-either/30-composition.ts +18 -10
  362. package/docs/concepts/01-fundamental/03-either/40-result-adaptation.ts +10 -4
  363. package/docs/concepts/01-fundamental/03-either/50-external-results.ts +16 -3
  364. package/docs/concepts/01-fundamental/04-data-structure/10-structure.ts +110 -59
  365. package/docs/concepts/01-fundamental/04-data-structure/20-constraint.ts +20 -12
  366. package/docs/concepts/01-fundamental/04-data-structure/30-validation.ts +13 -9
  367. package/docs/concepts/01-fundamental/04-data-structure/40-codecs.ts +31 -20
  368. package/docs/concepts/01-fundamental/04-data-structure/50-recursive.ts +10 -1
  369. package/docs/concepts/01-fundamental/05-chrono/10-creation.ts +39 -13
  370. package/docs/concepts/01-fundamental/05-chrono/20-manipulation.ts +20 -4
  371. package/docs/concepts/01-fundamental/05-chrono/30-serialized.ts +22 -6
  372. package/docs/concepts/01-fundamental/05-chrono/40-timezone.ts +5 -1
  373. package/docs/concepts/01-fundamental/06-modeling/20-entity.ts +29 -42
  374. package/docs/concepts/01-fundamental/06-modeling/30-tagged-object.ts +46 -23
  375. package/docs/concepts/01-fundamental/06-modeling/40-entity-lifecycle.ts +30 -33
  376. package/docs/concepts/01-fundamental/07-discrimination/10-entity.ts +52 -20
  377. package/docs/concepts/01-fundamental/07-discrimination/20-fact.ts +54 -38
  378. package/docs/concepts/01-fundamental/07-discrimination/30-tagged-object.ts +52 -20
  379. package/docs/concepts/01-fundamental/07-discrimination/40-error.ts +26 -10
  380. package/docs/concepts/01-fundamental/07-discrimination/50-literal.ts +29 -10
  381. package/docs/concepts/01-fundamental/07-discrimination/60-shape.ts +10 -2
  382. package/docs/concepts/01-fundamental/07-discrimination/70-predicate.ts +18 -6
  383. package/docs/concepts/01-fundamental/08-kind/01-identity.md +7 -0
  384. package/docs/concepts/01-fundamental/08-kind/20-metadata.md +11 -0
  385. package/docs/concepts/01-fundamental/08-kind/30-transport.md +11 -0
  386. package/docs/concepts/01-fundamental/08-kind/index.md +3 -0
  387. package/docs/concepts/02-server/10-file/10-manipulation.ts +15 -3
  388. package/docs/concepts/02-server/10-file/20-path.ts +22 -6
  389. package/docs/concepts/02-server/20-http/10-init.ts +1 -9
  390. package/docs/concepts/02-server/20-http/20-route.ts +40 -32
  391. package/docs/concepts/02-server/20-http/30-routine.ts +12 -19
  392. package/docs/concepts/02-server/20-http/40-jwt.ts +49 -37
  393. package/docs/concepts/02-server/20-http/50-open-api.ts +44 -0
  394. package/docs/concepts/02-server/20-http/index.md +1 -1
  395. package/docs/concepts/02-server/30-environment/10-platform.ts +12 -3
  396. package/docs/concepts/02-server/30-environment/20-variable.ts +13 -7
  397. package/docs/concepts/03-client/10-http/10-init.ts +11 -23
  398. package/docs/concepts/03-client/10-http/20-request.ts +79 -69
  399. package/docs/concepts/03-client/10-http/30-hook.ts +23 -23
  400. package/docs/concepts/03-client/20-form/10-init.ts +18 -15
  401. package/docs/concepts/03-client/20-form/20-input.ts +13 -6
  402. package/docs/concepts/03-client/20-form/30-layout.ts +44 -49
  403. package/docs/concepts/03-client/20-form/40-template.ts +10 -5
  404. package/docs/concepts/03-client/20-form/50-integration.md +11 -0
  405. package/docs/concepts/03-client/20-form/examples/postModeration/ThePage.vue +32 -0
  406. package/docs/concepts/03-client/20-form/examples/postModeration/usePostModeration.ts +80 -0
  407. package/docs/concepts/05-type-driven-design/01-architecture/10-boundaries.md +23 -20
  408. package/docs/concepts/05-type-driven-design/01-architecture/index.md +1 -1
  409. package/docs/concepts/05-type-driven-design/02-domains/10-entities.md +29 -37
  410. package/docs/concepts/05-type-driven-design/02-domains/20-aggregates.md +42 -26
  411. package/docs/concepts/05-type-driven-design/02-domains/30-repositories.md +20 -26
  412. package/docs/concepts/05-type-driven-design/02-domains/40-refinements.md +30 -0
  413. package/docs/concepts/05-type-driven-design/02-domains/index.md +1 -1
  414. package/docs/concepts/05-type-driven-design/03-applications/10-use-case.md +33 -40
  415. package/docs/concepts/05-type-driven-design/03-applications/20-ports.md +49 -0
  416. package/docs/concepts/05-type-driven-design/03-applications/index.md +1 -1
  417. package/docs/concepts/05-type-driven-design/04-infrastructure/10-implementation.md +27 -36
  418. package/docs/concepts/05-type-driven-design/04-infrastructure/index.md +1 -1
  419. package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/index.ts +1 -0
  420. package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/waitingListEntry.ts +17 -0
  421. package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/clientGiveBackBook.ts +30 -12
  422. package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/clientRentBook.ts +9 -8
  423. package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/createBook.ts +7 -7
  424. package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/index.ts +2 -0
  425. package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/withdrawBook.ts +32 -0
  426. package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/clientGiveBackBook.ts +72 -13
  427. package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/clientRentBook.ts +37 -11
  428. package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/createBook.ts +29 -17
  429. package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/index.ts +1 -0
  430. package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/withdrawBook.ts +37 -0
  431. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/create.ts +4 -5
  432. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/index.ts +2 -0
  433. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/rental.ts +9 -9
  434. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/reserve.ts +37 -0
  435. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/returnBook.ts +11 -9
  436. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/withdraw.ts +21 -0
  437. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/index.ts +42 -11
  438. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/facts/giveBackBook.ts +11 -9
  439. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/facts/rentBook.ts +10 -10
  440. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/index.ts +6 -29
  441. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/index.ts +1 -0
  442. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/waitingListEntry/facts/cancel.ts +26 -0
  443. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/waitingListEntry/facts/create.ts +33 -0
  444. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/waitingListEntry/facts/index.ts +3 -0
  445. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/waitingListEntry/facts/prepare.ts +23 -0
  446. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/waitingListEntry/index.ts +79 -0
  447. package/docs/concepts/05-type-driven-design/fixtures/business/domains/index.ts +1 -0
  448. package/docs/concepts/05-type-driven-design/fixtures/business/domains/refinements/index.ts +1 -0
  449. package/docs/concepts/05-type-driven-design/fixtures/business/domains/refinements/refineLinkBetweenClientAndBorrowedBook.ts +34 -0
  450. package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/book.ts +1 -1
  451. package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/index.ts +1 -0
  452. package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/waitingListEntry.ts +19 -0
  453. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/command/clientRentBook.ts +3 -3
  454. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/checkers/bookExist.ts +2 -2
  455. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/checkers/clientExist.ts +2 -2
  456. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/routes/clientGiveBackBook.ts +23 -14
  457. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/routes/clientRentBook.ts +7 -12
  458. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/book.ts +1 -1
  459. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/index.ts +1 -0
  460. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/waitingListEntry.ts +17 -0
  461. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/useCases/index.ts +2 -1
  462. package/docs/concepts/05-type-driven-design/index.md +2 -2
  463. package/docs/concepts.llms.md +71 -25
  464. package/instructions/coding-conventions.md +2 -2
  465. package/package.json +17 -14
  466. package/skills/http-client/SKILL.md +1 -1
  467. package/skills/http-client/references/configuration.md +3 -1
  468. package/skills/http-client/references/examples/client-expectations.ts +11 -10
  469. package/skills/http-client/references/examples/client-streams.ts +2 -2
  470. package/skills/http-client/references/examples/external-client.ts +2 -2
  471. package/skills/http-client/references/responses.md +1 -1
  472. package/skills/http-server/SKILL.md +4 -9
  473. package/skills/http-server/references/examples/authentication.ts +2 -2
  474. package/skills/http-server/references/examples/inferred-client.ts +54 -0
  475. package/skills/http-server/references/examples/minimal-route.ts +2 -3
  476. package/skills/http-server/references/examples/protected-route.ts +4 -6
  477. package/skills/http-server/references/examples/rename-user-route.ts +4 -6
  478. package/skills/http-server/references/examples/user-checker.ts +2 -2
  479. package/skills/http-server/references/examples/user-route.ts +12 -5
  480. package/skills/http-server/references/initialization.md +1 -1
  481. package/skills/http-server/references/reusable-flows.md +3 -3
  482. package/skills/http-server/references/routes-and-floor.md +11 -3
  483. package/dist/bin/install/index.d.ts +0 -2
  484. package/docs/concepts/02-server/20-http/50-codegen.ts +0 -29
  485. package/skills/http-server/references/code-generation.md +0 -31
  486. package/skills/http-server/references/examples/generate-sdk.ts +0 -36
  487. /package/dist/bin/{install → installSkill}/skill.d.ts +0 -0
@@ -6,12 +6,12 @@
6
6
  import * as DEither from "@duplojs/lang/either";
7
7
  import * as DCommon from "@duplojs/lang/common";
8
8
 
9
- const direct = DEither.unwrapOr(DEither.success("saved"), "fallback" as const);
9
+ const direct = DEither.unwrapOr(DEither.success("saved"), "fallback");
10
10
  type _CheckDirect = DCommon.ExpectType<typeof direct, "saved" | "fallback", "strict">;
11
11
 
12
12
  const piped = DCommon.pipe(
13
13
  DEither.left("missing"),
14
- DEither.unwrapOr("fallback" as const),
14
+ DEither.unwrapOr("fallback"),
15
15
  );
16
16
  // Le Left prend la valeur de remplacement.
17
17
  type _CheckPiped = DCommon.ExpectType<typeof piped, "fallback", "strict">;
@@ -8,13 +8,13 @@ import * as DCommon from "@duplojs/lang/common";
8
8
 
9
9
  const direct = DEither.unwrapOtherwise(
10
10
  DEither.left("missing"),
11
- () => "fallback" as const,
11
+ () => "fallback",
12
12
  );
13
13
  type _CheckDirect = DCommon.ExpectType<typeof direct, "fallback", "strict">;
14
14
 
15
15
  const piped = DCommon.pipe(
16
16
  DEither.success("saved"),
17
- DEither.unwrapOtherwise(() => "fallback" as const),
17
+ DEither.unwrapOtherwise(() => "fallback"),
18
18
  );
19
19
  // La callback de remplacement n’est pas utilisée pour un Right.
20
20
  type _CheckPiped = DCommon.ExpectType<typeof piped, "saved" | "fallback", "strict">;
@@ -12,7 +12,7 @@ const input = DEither.left("invalid", "bad-input");
12
12
  const direct = DEither.whenHasInformation(
13
13
  input,
14
14
  "invalid",
15
- (value) => `reason:${value}` as const,
15
+ (value) => `reason:${value}`,
16
16
  );
17
17
  type _CheckDirect = DCommon.ExpectType<typeof direct, "reason:bad-input", "strict">;
18
18
 
@@ -21,13 +21,14 @@ const piped = DCommon.pipe(
21
21
  input,
22
22
  DEither.whenHasInformation(
23
23
  "invalid",
24
- (value) => `reason:${value}` as const,
24
+ (value) => `reason:${value}`,
25
25
  ),
26
26
  );
27
27
  type _CheckPiped = DCommon.ExpectType<typeof piped, "reason:bad-input", "strict">;
28
28
 
29
+ declare const mixedInput: DEither.Success<"saved"> | DEither.Left<"invalid", string>;
29
30
  const unchanged = DEither.whenHasInformation(
30
- DEither.success("saved") as DEither.Success<"saved"> | DEither.Left<"invalid", string>,
31
+ mixedInput,
31
32
  ["invalid"],
32
33
  (value) => value,
33
34
  );
@@ -6,24 +6,24 @@
6
6
  import * as DEither from "@duplojs/lang/either";
7
7
  import * as DCommon from "@duplojs/lang/common";
8
8
 
9
- const input = DEither.left("invalid", "bad-input") as DEither.Left<"invalid", string> | DEither.Success<"saved">;
9
+ declare const input: DEither.Left<"invalid", string> | DEither.Success<"saved">;
10
10
 
11
11
  // Appel classique : la branche otherwise reçoit le résultat non ciblé.
12
12
  const direct = DEither.whenHasInformationOtherwise(
13
13
  input,
14
14
  "invalid",
15
- (value) => `invalid:${value}` as const,
15
+ (value) => `invalid:${value}`,
16
16
  (value) => DEither.unwrapRight(value),
17
17
  );
18
- type _CheckDirect = DCommon.ExpectType<typeof direct, "invalid:bad-input" | "saved", "one-extends-two">;
18
+ type _CheckDirect = DCommon.ExpectType<typeof direct, `invalid:${string}` | "saved", "strict">;
19
19
 
20
20
  // Appel curifié : les deux traitements sont configurés dans le pipe.
21
21
  const piped = DCommon.pipe(
22
22
  input,
23
23
  DEither.whenHasInformationOtherwise(
24
24
  "invalid",
25
- (value) => `invalid:${value}` as const,
25
+ (value) => `invalid:${value}`,
26
26
  (value) => DEither.unwrapRight(value),
27
27
  ),
28
28
  );
29
- type _CheckPiped = DCommon.ExpectType<typeof piped, "invalid:bad-input" | "saved", "one-extends-two">;
29
+ type _CheckPiped = DCommon.ExpectType<typeof piped, `invalid:${string}` | "saved", "strict">;
@@ -9,12 +9,12 @@ import * as DCommon from "@duplojs/lang/common";
9
9
  const input = DEither.left("invalid", "bad-input");
10
10
 
11
11
  // Appel classique : la callback ne reçoit que la valeur du Left.
12
- const direct = DEither.whenIsLeft(input, (value) => `reason:${value}` as const);
12
+ const direct = DEither.whenIsLeft(input, (value) => `reason:${value}`);
13
13
  type _CheckDirect = DCommon.ExpectType<typeof direct, "reason:bad-input", "strict">;
14
14
 
15
15
  // Appel curifié : la transformation est directement placée dans le pipe.
16
16
  const piped = DCommon.pipe(
17
17
  input,
18
- DEither.whenIsLeft((value) => `reason:${value}` as const),
18
+ DEither.whenIsLeft((value) => `reason:${value}`),
19
19
  );
20
20
  type _CheckPiped = DCommon.ExpectType<typeof piped, "reason:bad-input", "strict">;
@@ -6,22 +6,22 @@
6
6
  import * as DEither from "@duplojs/lang/either";
7
7
  import * as DCommon from "@duplojs/lang/common";
8
8
 
9
- const input = DEither.success("saved") as DEither.Success<"saved"> | DEither.Left<"invalid", string>;
9
+ declare const input: DEither.Success<"saved"> | DEither.Left<"invalid", string>;
10
10
 
11
11
  // Appel classique : la seconde callback reçoit le résultat lorsqu’il n’est pas Left.
12
12
  const direct = DEither.whenIsLeftOtherwise(
13
13
  input,
14
- (value) => `left:${value}` as const,
14
+ (value) => `left:${value}`,
15
15
  (value) => DEither.unwrapRight(value),
16
16
  );
17
- type _CheckDirect = DCommon.ExpectType<typeof direct, "left:invalid" | "saved", "one-extends-two">;
17
+ type _CheckDirect = DCommon.ExpectType<typeof direct, `left:${string}` | "saved", "strict">;
18
18
 
19
19
  // Appel curifié : les deux branches sont configurées avant l’entrée du pipe.
20
20
  const piped = DCommon.pipe(
21
21
  input,
22
22
  DEither.whenIsLeftOtherwise(
23
- (value) => `left:${value}` as const,
23
+ (value) => `left:${value}`,
24
24
  (value) => DEither.unwrapRight(value),
25
25
  ),
26
26
  );
27
- type _CheckPiped = DCommon.ExpectType<typeof piped, "left:invalid" | "saved", "one-extends-two">;
27
+ type _CheckPiped = DCommon.ExpectType<typeof piped, `left:${string}` | "saved", "strict">;
@@ -9,12 +9,12 @@ import * as DCommon from "@duplojs/lang/common";
9
9
  const input = DEither.success("saved");
10
10
 
11
11
  // Appel classique : la callback ne reçoit que la valeur du Right.
12
- const direct = DEither.whenIsRight(input, (value) => `status:${value}` as const);
12
+ const direct = DEither.whenIsRight(input, (value) => `status:${value}`);
13
13
  type _CheckDirect = DCommon.ExpectType<typeof direct, "status:saved", "strict">;
14
14
 
15
15
  // Appel curifié : la transformation est directement placée dans le pipe.
16
16
  const piped = DCommon.pipe(
17
17
  input,
18
- DEither.whenIsRight((value) => `status:${value}` as const),
18
+ DEither.whenIsRight((value) => `status:${value}`),
19
19
  );
20
20
  type _CheckPiped = DCommon.ExpectType<typeof piped, "status:saved", "strict">;
@@ -6,21 +6,21 @@
6
6
  import * as DEither from "@duplojs/lang/either";
7
7
  import * as DCommon from "@duplojs/lang/common";
8
8
 
9
- const input = DEither.success("saved") as DEither.Success<"saved"> | DEither.Left<"missing", string>;
9
+ declare const input: DEither.Success<"saved"> | DEither.Left<"missing", string>;
10
10
 
11
11
  const direct = DEither.whenIsRightOtherwise(
12
12
  input,
13
- (value) => `right:${value}` as const,
14
- (value) => `left:${DEither.unwrapLeft(value)}` as const,
13
+ (value) => `right:${value}`,
14
+ (value) => `left:${DEither.unwrapLeft(value)}`,
15
15
  );
16
- type _CheckDirect = DCommon.ExpectType<typeof direct, "right:saved" | "left:missing", "one-extends-two">;
16
+ type _CheckDirect = DCommon.ExpectType<typeof direct, "right:saved" | `left:${string}`, "strict">;
17
17
 
18
18
  // Appel curifié : les deux branches sont configurées avant l’entrée du pipe.
19
19
  const piped = DCommon.pipe(
20
20
  input,
21
21
  DEither.whenIsRightOtherwise(
22
- (value) => `right:${value}` as const,
23
- (value) => `left:${DEither.unwrapLeft(value)}` as const,
22
+ (value) => `right:${value}`,
23
+ (value) => `left:${DEither.unwrapLeft(value)}`,
24
24
  ),
25
25
  );
26
- type _CheckPiped = DCommon.ExpectType<typeof piped, "right:saved" | "left:missing", "one-extends-two">;
26
+ type _CheckPiped = DCommon.ExpectType<typeof piped, "right:saved" | `left:${string}`, "strict">;
@@ -6,7 +6,7 @@
6
6
  import * as DEither from "@duplojs/lang/either";
7
7
  import * as DCommon from "@duplojs/lang/common";
8
8
 
9
- const input = DEither.left("invalid", "bad-input") as DEither.Left<"invalid", string> | DEither.Success<"saved">;
9
+ declare const input: DEither.Left<"invalid", string> | DEither.Success<"saved">;
10
10
 
11
11
  // Appel classique : seule la variante invalid est transformée.
12
12
  const direct = DEither.whenIsSelected(
@@ -15,9 +15,9 @@ const direct = DEither.whenIsSelected(
15
15
  invalid: true,
16
16
  success: false,
17
17
  },
18
- (value) => `invalid:${value}` as const,
18
+ (value) => `invalid:${value}`,
19
19
  );
20
- type _CheckDirect = DCommon.ExpectType<typeof direct, "invalid:bad-input" | DEither.Success<"saved">, "one-extends-two">;
20
+ type _CheckDirect = DCommon.ExpectType<typeof direct, `invalid:${string}` | DEither.Success<"saved">, "strict">;
21
21
 
22
22
  // Appel curifié : la sélection et la callback sont configurées dans le pipe.
23
23
  const piped = DCommon.pipe(
@@ -27,7 +27,7 @@ const piped = DCommon.pipe(
27
27
  invalid: true,
28
28
  success: false,
29
29
  },
30
- (value) => `invalid:${value}` as const,
30
+ (value) => `invalid:${value}`,
31
31
  ),
32
32
  );
33
- type _CheckPiped = DCommon.ExpectType<typeof piped, "invalid:bad-input" | DEither.Success<"saved">, "one-extends-two">;
33
+ type _CheckPiped = DCommon.ExpectType<typeof piped, `invalid:${string}` | DEither.Success<"saved">, "strict">;
@@ -6,7 +6,7 @@
6
6
  import * as DEither from "@duplojs/lang/either";
7
7
  import * as DCommon from "@duplojs/lang/common";
8
8
 
9
- const input = DEither.left("invalid", "bad-input") as DEither.Left<"invalid", string> | DEither.Success<"saved">;
9
+ declare const input: DEither.Left<"invalid", string> | DEither.Success<"saved">;
10
10
 
11
11
  // Appel classique : la branche otherwise reçoit le Right non sélectionné.
12
12
  const direct = DEither.whenIsSelectedOtherwise(
@@ -15,10 +15,10 @@ const direct = DEither.whenIsSelectedOtherwise(
15
15
  invalid: true,
16
16
  success: false,
17
17
  },
18
- (value) => `invalid:${value}` as const,
18
+ (value) => `invalid:${value}`,
19
19
  (value) => DEither.unwrapRight(value),
20
20
  );
21
- type _CheckDirect = DCommon.ExpectType<typeof direct, "invalid:bad-input" | "saved", "one-extends-two">;
21
+ type _CheckDirect = DCommon.ExpectType<typeof direct, `invalid:${string}` | "saved", "strict">;
22
22
 
23
23
  // Appel curifié : la sélection et les deux callbacks sont configurées dans le pipe.
24
24
  const piped = DCommon.pipe(
@@ -28,8 +28,8 @@ const piped = DCommon.pipe(
28
28
  invalid: true,
29
29
  success: false,
30
30
  },
31
- (value) => `invalid:${value}` as const,
31
+ (value) => `invalid:${value}`,
32
32
  (value) => DEither.unwrapRight(value),
33
33
  ),
34
34
  );
35
- type _CheckPiped = DCommon.ExpectType<typeof piped, "invalid:bad-input" | "saved", "one-extends-two">;
35
+ type _CheckPiped = DCommon.ExpectType<typeof piped, `invalid:${string}` | "saved", "strict">;
@@ -18,6 +18,10 @@ Créer un Left standardisé avec l’information `error`.
18
18
 
19
19
  Retourner un Either sans modifier sa valeur ni son type.
20
20
 
21
+ ### [DEither.extractErrorInLeft](10-extractErrorInLeft.ts)
22
+
23
+ Extraire d’un Left les erreurs DuploJS sélectionnées par leur identifiant.
24
+
21
25
  ### [DEither.fail](10-fail.ts)
22
26
 
23
27
  Créer un Left standardisé représentant un échec sans valeur.
@@ -62,6 +66,14 @@ Créer un résultat Left avec une information et une valeur optionnelle.
62
66
 
63
67
  Appliquer exhaustivement une callback selon l’information du résultat.
64
68
 
69
+ ### [DEither.matchInformationCombination](10-matchInformationCombination.ts)
70
+
71
+ Appliquer un traitement pour chaque combinaison d’informations d’une collection d’Either.
72
+
73
+ ### [DEither.matchInformationCombinationOtherwise](10-matchInformationCombinationOtherwise.ts)
74
+
75
+ Traiter les combinaisons d’informations choisies et fournir un cas de repli.
76
+
65
77
  ### [DEither.matchInformationOtherwise](10-matchInformationOtherwise.ts)
66
78
 
67
79
  Appliquer une callback pour certaines informations et une branche de repli pour les autres.
@@ -9,18 +9,18 @@ import * as DGenerator from "@duplojs/lang/generator";
9
9
 
10
10
  const head = (async function *() {
11
11
  await DCommon.timeout();
12
- yield 1 as const;
13
- yield 2 as const;
12
+ yield 1;
13
+ yield 2;
14
14
  })();
15
15
 
16
16
  const tail = (async function *() {
17
17
  await DCommon.timeout();
18
- yield 4 as const;
19
- yield 5 as const;
18
+ yield 4;
19
+ yield 5;
20
20
  })();
21
21
 
22
22
  // Appel classique : les valeurs sont produites dans l’ordre [1, 2, 3, 4, 5].
23
- const result = DGenerator.asyncConcat(head, [3] as const, tail);
23
+ const result = DGenerator.asyncConcat(head, [3], tail);
24
24
 
25
25
  type _CheckResult = DCommon.ExpectType<
26
26
  typeof result,
@@ -31,16 +31,13 @@ type _CheckResult = DCommon.ExpectType<
31
31
  // Appel curifié : les itérables ajoutés sont configurés dans l’étape du pipe.
32
32
  const piped = DCommon.pipe(
33
33
  [1, 2],
34
- DGenerator.asyncConcat(([
35
- 3,
36
- 4,
37
- ] as number[])),
34
+ DGenerator.asyncConcat([3, 4]),
38
35
  DArray.from,
39
36
  );
40
37
 
41
38
  // La promesse se résout vers [1, 2, 3, 4].
42
39
  type _CheckPiped = DCommon.ExpectType<
43
40
  typeof piped,
44
- Promise<readonly number[]>,
41
+ Promise<readonly (1 | 2 | 3 | 4)[]>,
45
42
  "strict"
46
43
  >;
@@ -8,8 +8,8 @@ import * as DGenerator from "@duplojs/lang/generator";
8
8
 
9
9
  const input = (async function *() {
10
10
  await DCommon.timeout();
11
- yield [[1], [2]] as const;
12
- yield [[3]] as const;
11
+ yield [[1], [2]];
12
+ yield [[3]];
13
13
  })();
14
14
 
15
15
  // Profondeur par défaut : un seul niveau est aplati, donc la sortie contient [[1], [2], [3]].
@@ -17,14 +17,14 @@ const result = DGenerator.asyncFlat(input);
17
17
 
18
18
  type _CheckResult = DCommon.ExpectType<
19
19
  typeof result,
20
- AsyncGenerator<readonly [1] | readonly [2] | readonly [3], void, unknown>,
20
+ AsyncGenerator<number[], void, unknown>,
21
21
  "strict"
22
22
  >;
23
23
 
24
24
  const nestedInput = (async function *() {
25
25
  await DCommon.timeout();
26
- yield [[1], [2]] as const;
27
- yield [[3]] as const;
26
+ yield [[1], [2]];
27
+ yield [[3]];
28
28
  })();
29
29
 
30
30
  // Une profondeur de deux aplati également les tuples internes : la sortie contient [1, 2, 3].
@@ -32,6 +32,6 @@ const deeplyFlattened = DGenerator.asyncFlat(nestedInput, 2);
32
32
 
33
33
  type _CheckDeeplyFlattened = DCommon.ExpectType<
34
34
  typeof deeplyFlattened,
35
- AsyncGenerator<1 | 2 | 3, void, unknown>,
35
+ AsyncGenerator<number, void, unknown>,
36
36
  "strict"
37
37
  >;
@@ -9,9 +9,9 @@ import * as DGenerator from "@duplojs/lang/generator";
9
9
 
10
10
  // Appel classique : les valeurs sont produites dans l’ordre [1, 2, 3, 4].
11
11
  const result = DGenerator.concat(
12
- [1, 2] as const,
13
- [3] as const,
14
- [4] as const,
12
+ [1, 2],
13
+ [3],
14
+ [4],
15
15
  );
16
16
 
17
17
  type _CheckResult = DCommon.ExpectType<
@@ -7,7 +7,7 @@ import type * as DCommon from "@duplojs/lang/common";
7
7
  import * as DGenerator from "@duplojs/lang/generator";
8
8
 
9
9
  // Profondeur par défaut : un seul niveau est aplati et la sortie contient [1, 2, 3].
10
- const result = DGenerator.flat([[1, 2], [3]] as const);
10
+ const result = DGenerator.flat([[1, 2], [3]]);
11
11
 
12
12
  type _CheckResult = DCommon.ExpectType<
13
13
  typeof result,
@@ -16,7 +16,7 @@ type _CheckResult = DCommon.ExpectType<
16
16
  >;
17
17
 
18
18
  // Une profondeur de deux aplati deux niveaux et produit également [1, 2, 3].
19
- const deeplyFlattened = DGenerator.flat([[[1], [2]], [[3]]] as const, 2);
19
+ const deeplyFlattened = DGenerator.flat([[[1], [2]], [[3]]], 2);
20
20
 
21
21
  type _CheckDeeplyFlattened = DCommon.ExpectType<
22
22
  typeof deeplyFlattened,
@@ -8,7 +8,7 @@ import * as DArray from "@duplojs/lang/array";
8
8
  import * as DGenerator from "@duplojs/lang/generator";
9
9
  import * as DNumber from "@duplojs/lang/number";
10
10
 
11
- const input = [1, 2, 3] as const;
11
+ const input = [1, 2, 3];
12
12
 
13
13
  // Appel classique : chaque nombre est doublé.
14
14
  const result = DGenerator.map(input, (item) => DNumber.sum([item, item]));
@@ -7,7 +7,7 @@ import * as DCommon from "@duplojs/lang/common";
7
7
  import * as DGenerator from "@duplojs/lang/generator";
8
8
  import * as DNumber from "@duplojs/lang/number";
9
9
 
10
- const input = [1, 2, 3] as const;
10
+ const input = [1, 2, 3];
11
11
 
12
12
  // Appel classique : le nombre initial est directement inféré comme accumulateur numérique.
13
13
  const result = DGenerator.reduce(
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @title DNumber.betweenThan
3
+ *
4
+ * Vérifier qu’un nombre est strictement compris entre deux bornes.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import * as DNumber from "@duplojs/lang/number";
8
+
9
+ const result = DNumber.betweenThan(5, 1, 10);
10
+ // Appel classique : tester directement une valeur.
11
+ // La valeur obtenue est true, car 5 est strictement entre 1 et 10.
12
+ type _CheckResult = DCommon.ExpectType<typeof result, boolean, "strict">;
13
+
14
+ declare const value: number;
15
+
16
+ if (DNumber.betweenThan(value, 1, 10)) {
17
+ type _CheckIfValue = DCommon.ExpectType<
18
+ typeof value,
19
+ number & DNumber.GreaterThan<1> & DNumber.LessThan<10>,
20
+ "strict"
21
+ >;
22
+ const sum = DNumber.sum([value]);
23
+ type _CheckSum = DCommon.ExpectType<typeof sum, number, "strict">;
24
+ }
25
+
26
+ // Appel curifié : passer le predicate directement à DCommon.when.
27
+ const transformed = DCommon.pipe(
28
+ value,
29
+ DCommon.when(
30
+ DNumber.betweenThan(1, 10),
31
+ (value) => {
32
+ type _CheckValue = DCommon.ExpectType<
33
+ typeof value,
34
+ number & DNumber.GreaterThan<1> & DNumber.LessThan<10>,
35
+ "strict"
36
+ >;
37
+
38
+ return DNumber.sum([value]);
39
+ },
40
+ ),
41
+ );
42
+ // La valeur est le nombre d’entrée lorsqu’il satisfait l’intervalle.
43
+ type _CheckTransformed = DCommon.ExpectType<typeof transformed, number, "strict">;
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @title DNumber.betweenThanOrEqual
3
+ *
4
+ * Vérifier qu’un nombre appartient à un intervalle fermé.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import * as DNumber from "@duplojs/lang/number";
8
+
9
+ const result = DNumber.betweenThanOrEqual(5, 5, 10);
10
+ // Appel classique : tester directement une valeur.
11
+ // La valeur obtenue est true, car les bornes sont inclusives.
12
+ type _CheckResult = DCommon.ExpectType<typeof result, boolean, "strict">;
13
+
14
+ declare const value: number;
15
+
16
+ if (DNumber.betweenThanOrEqual(value, 5, 10)) {
17
+ type _CheckIfValue = DCommon.ExpectType<
18
+ typeof value,
19
+ number & DNumber.GreaterThanOrEqual<5> & DNumber.LessThanOrEqual<10>,
20
+ "strict"
21
+ >;
22
+ const sum = DNumber.sum([value]);
23
+ type _CheckSum = DCommon.ExpectType<typeof sum, number, "strict">;
24
+ }
25
+
26
+ // Appel curifié : passer le predicate directement à DCommon.when.
27
+ const transformed = DCommon.pipe(
28
+ value,
29
+ DCommon.when(
30
+ DNumber.betweenThanOrEqual(5, 10),
31
+ (value) => {
32
+ type _CheckValue = DCommon.ExpectType<
33
+ typeof value,
34
+ number & DNumber.GreaterThanOrEqual<5> & DNumber.LessThanOrEqual<10>,
35
+ "strict"
36
+ >;
37
+
38
+ return DNumber.sum([value]);
39
+ },
40
+ ),
41
+ );
42
+ // La valeur est le nombre d’entrée lorsqu’il satisfait l’intervalle.
43
+ type _CheckTransformed = DCommon.ExpectType<typeof transformed, number, "strict">;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @title DNumber.greaterThan
3
+ *
4
+ * Tester ou établir qu’un nombre est strictement supérieur à une borne.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import * as DNumber from "@duplojs/lang/number";
8
+
9
+ const result = DNumber.greaterThan(8, 5);
10
+ // Appel classique : tester directement une valeur.
11
+ // La valeur obtenue est true.
12
+ type _CheckResult = DCommon.ExpectType<typeof result, boolean, "strict">;
13
+
14
+ declare const value: number;
15
+
16
+ if (DNumber.greaterThan(value, 5)) {
17
+ type _CheckIfValue = DCommon.ExpectType<typeof value, number & DNumber.GreaterThan<5>, "strict">;
18
+ const sum = DNumber.sum([value]);
19
+ type _CheckSum = DCommon.ExpectType<typeof sum, number, "strict">;
20
+ }
21
+
22
+ // Appel curifié : passer le predicate directement à DCommon.when.
23
+ const transformed = DCommon.pipe(
24
+ value,
25
+ DCommon.when(
26
+ DNumber.greaterThan(5),
27
+ (value) => {
28
+ type _CheckValue = DCommon.ExpectType<typeof value, number & DNumber.GreaterThan<5>, "strict">;
29
+
30
+ return DNumber.sum([value]);
31
+ },
32
+ ),
33
+ );
34
+ // La valeur est le nombre d’entrée lorsqu’il est supérieur à 5.
35
+ type _CheckTransformed = DCommon.ExpectType<typeof transformed, number, "strict">;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @title DNumber.greaterThanOrEqual
3
+ *
4
+ * Tester ou établir qu’un nombre est supérieur ou égal à une borne.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import * as DNumber from "@duplojs/lang/number";
8
+
9
+ const result = DNumber.greaterThanOrEqual(5, 5);
10
+ // Appel classique : tester directement une valeur.
11
+ // La valeur obtenue est true, car l’égalité est acceptée.
12
+ type _CheckResult = DCommon.ExpectType<typeof result, boolean, "strict">;
13
+
14
+ declare const value: number;
15
+
16
+ if (DNumber.greaterThanOrEqual(value, 5)) {
17
+ type _CheckIfValue = DCommon.ExpectType<typeof value, number & DNumber.GreaterThanOrEqual<5>, "strict">;
18
+ const sum = DNumber.sum([value]);
19
+ type _CheckSum = DCommon.ExpectType<typeof sum, number, "strict">;
20
+ }
21
+
22
+ // Appel curifié : passer le predicate directement à DCommon.when.
23
+ const transformed = DCommon.pipe(
24
+ value,
25
+ DCommon.when(
26
+ DNumber.greaterThanOrEqual(5),
27
+ (value) => {
28
+ type _CheckValue = DCommon.ExpectType<typeof value, number & DNumber.GreaterThanOrEqual<5>, "strict">;
29
+
30
+ return DNumber.sum([value]);
31
+ },
32
+ ),
33
+ );
34
+ // La valeur est le nombre d’entrée lorsqu’il est supérieur ou égal à 5.
35
+ type _CheckTransformed = DCommon.ExpectType<typeof transformed, number, "strict">;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @title DNumber.isEven
3
+ *
4
+ * Vérifier qu’un nombre est pair et établir cette contrainte dans le type.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import * as DNumber from "@duplojs/lang/number";
8
+
9
+ declare const value: number;
10
+
11
+ // Appel classique : le test réussi affine la valeur avec la contrainte Even.
12
+ if (DNumber.isEven(value)) {
13
+ type _CheckValue = DCommon.ExpectType<typeof value, number & DNumber.Even, "strict">;
14
+ }
15
+
16
+ const result = DNumber.isEven(4);
17
+ // La valeur obtenue est true.
18
+ type _CheckResult = DCommon.ExpectType<typeof result, boolean, "strict">;
19
+
20
+ // Le même predicate peut servir d’étape unaire dans un pipe.
21
+ const sum = DCommon.pipe(
22
+ value,
23
+ DCommon.when(
24
+ DNumber.isEven,
25
+ (number) => {
26
+ type _CheckNumber = DCommon.ExpectType<typeof number, number & DNumber.Even, "strict">;
27
+
28
+ return DNumber.sum([number]);
29
+ },
30
+ ),
31
+ );
32
+ // La contrainte a servi à accepter l’entrée ; la somme n’en porte pas la preuve.
33
+ type _CheckSum = DCommon.ExpectType<typeof sum, number, "strict">;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @title DNumber.isInteger
3
+ *
4
+ * Vérifier qu’un nombre est entier et établir cette contrainte dans le type.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import * as DNumber from "@duplojs/lang/number";
8
+
9
+ declare const value: number;
10
+
11
+ // Appel classique : le test réussi affine la valeur avec la contrainte Integer.
12
+ if (DNumber.isInteger(value)) {
13
+ type _CheckValue = DCommon.ExpectType<typeof value, number & DNumber.Integer, "strict">;
14
+ }
15
+
16
+ const result = DNumber.isInteger(4);
17
+ // La valeur obtenue est true.
18
+ type _CheckResult = DCommon.ExpectType<typeof result, boolean, "strict">;
19
+
20
+ // Le même predicate peut servir d’étape unaire dans un pipe.
21
+ const sum = DCommon.pipe(
22
+ value,
23
+ DCommon.when(
24
+ DNumber.isInteger,
25
+ (number) => {
26
+ type _CheckNumber = DCommon.ExpectType<typeof number, number & DNumber.Integer, "strict">;
27
+
28
+ return DNumber.sum([number]);
29
+ },
30
+ ),
31
+ );
32
+ // La contrainte a servi à accepter l’entrée ; la somme n’en porte pas la preuve.
33
+ type _CheckSum = DCommon.ExpectType<typeof sum, number, "strict">;