@duplojs/agents-kit 0.0.0-stage → 0.1.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (929) hide show
  1. package/README.md +81 -2
  2. package/dist/bin/index.d.ts +2 -0
  3. package/dist/bin/index.mjs +7 -0
  4. package/dist/bin/packagePath.d.ts +2 -0
  5. package/dist/bin/packagePath.mjs +12 -0
  6. package/dist/bin/setup/index.d.ts +12 -0
  7. package/dist/bin/setup/index.mjs +33 -0
  8. package/dist/bin/setup/instructions.d.ts +8 -0
  9. package/dist/bin/setup/instructions.mjs +27 -0
  10. package/dist/bin/skills/index.d.ts +5 -0
  11. package/dist/bin/skills/index.mjs +11 -0
  12. package/dist/bin/skills/install.d.ts +2 -0
  13. package/dist/bin/skills/install.mjs +25 -0
  14. package/dist/bin/skills/skill.d.ts +35 -0
  15. package/dist/bin/skills/skill.mjs +60 -0
  16. package/dist/bin/skills/update.d.ts +2 -0
  17. package/dist/bin/skills/update.mjs +19 -0
  18. package/dist/index.cjs +1 -0
  19. package/dist/index.d.ts +1 -0
  20. package/dist/index.mjs +0 -0
  21. package/docs/API/10-lang/10-array/10-at.ts +65 -0
  22. package/docs/API/10-lang/10-array/10-chunk.ts +42 -0
  23. package/docs/API/10-lang/10-array/10-coalescing.ts +20 -0
  24. package/docs/API/10-lang/10-array/10-concat.ts +34 -0
  25. package/docs/API/10-lang/10-array/10-copyWithin.ts +34 -0
  26. package/docs/API/10-lang/10-array/10-every.ts +25 -0
  27. package/docs/API/10-lang/10-array/10-fill.ts +34 -0
  28. package/docs/API/10-lang/10-array/10-fillAll.ts +34 -0
  29. package/docs/API/10-lang/10-array/10-filter.ts +43 -0
  30. package/docs/API/10-lang/10-array/10-find.ts +33 -0
  31. package/docs/API/10-lang/10-array/10-findAndReplace.ts +35 -0
  32. package/docs/API/10-lang/10-array/10-findAndSpliceDelete.ts +35 -0
  33. package/docs/API/10-lang/10-array/10-findAndSpliceInsert.ts +35 -0
  34. package/docs/API/10-lang/10-array/10-findAndSpliceReplace.ts +24 -0
  35. package/docs/API/10-lang/10-array/10-findDuplicates.ts +19 -0
  36. package/docs/API/10-lang/10-array/10-findIndex.ts +25 -0
  37. package/docs/API/10-lang/10-array/10-findLast.ts +33 -0
  38. package/docs/API/10-lang/10-array/10-findLastIndex.ts +25 -0
  39. package/docs/API/10-lang/10-array/10-first.ts +21 -0
  40. package/docs/API/10-lang/10-array/10-flat.ts +22 -0
  41. package/docs/API/10-lang/10-array/10-flatMap.ts +24 -0
  42. package/docs/API/10-lang/10-array/10-from.ts +25 -0
  43. package/docs/API/10-lang/10-array/10-group.ts +27 -0
  44. package/docs/API/10-lang/10-array/10-groupOutput.ts +30 -0
  45. package/docs/API/10-lang/10-array/10-includes.ts +24 -0
  46. package/docs/API/10-lang/10-array/10-indexOf.ts +24 -0
  47. package/docs/API/10-lang/10-array/10-insert.ts +34 -0
  48. package/docs/API/10-lang/10-array/10-is.ts +29 -0
  49. package/docs/API/10-lang/10-array/10-isLastIndex.ts +24 -0
  50. package/docs/API/10-lang/10-array/10-last.ts +21 -0
  51. package/docs/API/10-lang/10-array/10-lastIndexOf.ts +24 -0
  52. package/docs/API/10-lang/10-array/10-length.ts +28 -0
  53. package/docs/API/10-lang/10-array/10-lengthEqual.ts +39 -0
  54. package/docs/API/10-lang/10-array/10-map.ts +34 -0
  55. package/docs/API/10-lang/10-array/10-maxElements.ts +44 -0
  56. package/docs/API/10-lang/10-array/10-minElements.ts +44 -0
  57. package/docs/API/10-lang/10-array/10-notIncludes.ts +24 -0
  58. package/docs/API/10-lang/10-array/10-pop.ts +23 -0
  59. package/docs/API/10-lang/10-array/10-prepend.ts +34 -0
  60. package/docs/API/10-lang/10-array/10-push.ts +34 -0
  61. package/docs/API/10-lang/10-array/10-reduce.ts +28 -0
  62. package/docs/API/10-lang/10-array/10-reduceFrom.ts +16 -0
  63. package/docs/API/10-lang/10-array/10-reduceRight.ts +28 -0
  64. package/docs/API/10-lang/10-array/10-reverse.ts +25 -0
  65. package/docs/API/10-lang/10-array/10-select.ts +26 -0
  66. package/docs/API/10-lang/10-array/10-set.ts +24 -0
  67. package/docs/API/10-lang/10-array/10-shift.ts +23 -0
  68. package/docs/API/10-lang/10-array/10-slice.ts +24 -0
  69. package/docs/API/10-lang/10-array/10-some.ts +25 -0
  70. package/docs/API/10-lang/10-array/10-sort.ts +34 -0
  71. package/docs/API/10-lang/10-array/10-spliceDelete.ts +34 -0
  72. package/docs/API/10-lang/10-array/10-spliceInsert.ts +34 -0
  73. package/docs/API/10-lang/10-array/10-spliceReplace.ts +24 -0
  74. package/docs/API/10-lang/10-array/10-unshift.ts +34 -0
  75. package/docs/API/10-lang/10-array/index.llms.md +220 -0
  76. package/docs/API/10-lang/10-array/index.md +3 -0
  77. package/docs/API/10-lang/10-chrono/10-addDays.ts +25 -0
  78. package/docs/API/10-lang/10-chrono/10-addHours.ts +25 -0
  79. package/docs/API/10-lang/10-chrono/10-addMilliseconds.ts +25 -0
  80. package/docs/API/10-lang/10-chrono/10-addMinutes.ts +25 -0
  81. package/docs/API/10-lang/10-chrono/10-addMonths.ts +25 -0
  82. package/docs/API/10-lang/10-chrono/10-addSeconds.ts +25 -0
  83. package/docs/API/10-lang/10-chrono/10-addTime.ts +38 -0
  84. package/docs/API/10-lang/10-chrono/10-addWeeks.ts +25 -0
  85. package/docs/API/10-lang/10-chrono/10-addYears.ts +25 -0
  86. package/docs/API/10-lang/10-chrono/10-applyTimezone.ts +29 -0
  87. package/docs/API/10-lang/10-chrono/10-betweenThanDate.ts +27 -0
  88. package/docs/API/10-lang/10-chrono/10-betweenThanOrEqualDate.ts +27 -0
  89. package/docs/API/10-lang/10-chrono/10-betweenThanOrEqualTime.ts +27 -0
  90. package/docs/API/10-lang/10-chrono/10-betweenThanTime.ts +27 -0
  91. package/docs/API/10-lang/10-chrono/10-closestTo.ts +45 -0
  92. package/docs/API/10-lang/10-chrono/10-computeTime.ts +35 -0
  93. package/docs/API/10-lang/10-chrono/10-createDate.ts +122 -0
  94. package/docs/API/10-lang/10-chrono/10-createDateOrThrow.ts +39 -0
  95. package/docs/API/10-lang/10-chrono/10-createTime.ts +86 -0
  96. package/docs/API/10-lang/10-chrono/10-createTimeOrThrow.ts +28 -0
  97. package/docs/API/10-lang/10-chrono/10-eachDate.ts +67 -0
  98. package/docs/API/10-lang/10-chrono/10-equalDate.ts +26 -0
  99. package/docs/API/10-lang/10-chrono/10-equalTime.ts +26 -0
  100. package/docs/API/10-lang/10-chrono/10-formatDate.ts +43 -0
  101. package/docs/API/10-lang/10-chrono/10-formatTime.ts +37 -0
  102. package/docs/API/10-lang/10-chrono/10-getDayOfMonth.ts +37 -0
  103. package/docs/API/10-lang/10-chrono/10-getDayOfWeek.ts +30 -0
  104. package/docs/API/10-lang/10-chrono/10-getDayOfYear.ts +28 -0
  105. package/docs/API/10-lang/10-chrono/10-getDifference.ts +29 -0
  106. package/docs/API/10-lang/10-chrono/10-getFirstDayOfMonth.ts +24 -0
  107. package/docs/API/10-lang/10-chrono/10-getFirstDayOfWeek.ts +24 -0
  108. package/docs/API/10-lang/10-chrono/10-getHour.ts +28 -0
  109. package/docs/API/10-lang/10-chrono/10-getLastDayOfMonth.ts +24 -0
  110. package/docs/API/10-lang/10-chrono/10-getLastDayOfWeek.ts +24 -0
  111. package/docs/API/10-lang/10-chrono/10-getMilliseconds.ts +24 -0
  112. package/docs/API/10-lang/10-chrono/10-getMinute.ts +27 -0
  113. package/docs/API/10-lang/10-chrono/10-getMonth.ts +27 -0
  114. package/docs/API/10-lang/10-chrono/10-getSecond.ts +27 -0
  115. package/docs/API/10-lang/10-chrono/10-getTimezoneOffset.ts +28 -0
  116. package/docs/API/10-lang/10-chrono/10-getWeekOfYear.ts +27 -0
  117. package/docs/API/10-lang/10-chrono/10-getYear.ts +27 -0
  118. package/docs/API/10-lang/10-chrono/10-greaterThanDate.ts +26 -0
  119. package/docs/API/10-lang/10-chrono/10-greaterThanOrEqualDate.ts +26 -0
  120. package/docs/API/10-lang/10-chrono/10-greaterThanOrEqualTime.ts +26 -0
  121. package/docs/API/10-lang/10-chrono/10-greaterThanTime.ts +26 -0
  122. package/docs/API/10-lang/10-chrono/10-isDate.ts +36 -0
  123. package/docs/API/10-lang/10-chrono/10-isSafeTimeValue.ts +19 -0
  124. package/docs/API/10-lang/10-chrono/10-isSafeTimestamp.ts +19 -0
  125. package/docs/API/10-lang/10-chrono/10-isSerializedTheDate.ts +41 -0
  126. package/docs/API/10-lang/10-chrono/10-isSerializedTheTime.ts +41 -0
  127. package/docs/API/10-lang/10-chrono/10-isTime.ts +36 -0
  128. package/docs/API/10-lang/10-chrono/10-lessThanDate.ts +26 -0
  129. package/docs/API/10-lang/10-chrono/10-lessThanOrEqualDate.ts +26 -0
  130. package/docs/API/10-lang/10-chrono/10-lessThanOrEqualTime.ts +26 -0
  131. package/docs/API/10-lang/10-chrono/10-lessThanTime.ts +26 -0
  132. package/docs/API/10-lang/10-chrono/10-makeSafeTimeValue.ts +19 -0
  133. package/docs/API/10-lang/10-chrono/10-makeSafeTimestamp.ts +19 -0
  134. package/docs/API/10-lang/10-chrono/10-maxDate.ts +19 -0
  135. package/docs/API/10-lang/10-chrono/10-maxTime.ts +19 -0
  136. package/docs/API/10-lang/10-chrono/10-minDate.ts +19 -0
  137. package/docs/API/10-lang/10-chrono/10-minTime.ts +19 -0
  138. package/docs/API/10-lang/10-chrono/10-now.ts +13 -0
  139. package/docs/API/10-lang/10-chrono/10-round.ts +41 -0
  140. package/docs/API/10-lang/10-chrono/10-serialize.ts +23 -0
  141. package/docs/API/10-lang/10-chrono/10-sortDates.ts +30 -0
  142. package/docs/API/10-lang/10-chrono/10-sortTimes.ts +29 -0
  143. package/docs/API/10-lang/10-chrono/10-subtractDays.ts +25 -0
  144. package/docs/API/10-lang/10-chrono/10-subtractHours.ts +25 -0
  145. package/docs/API/10-lang/10-chrono/10-subtractMilliseconds.ts +25 -0
  146. package/docs/API/10-lang/10-chrono/10-subtractMinutes.ts +25 -0
  147. package/docs/API/10-lang/10-chrono/10-subtractMonths.ts +25 -0
  148. package/docs/API/10-lang/10-chrono/10-subtractSeconds.ts +25 -0
  149. package/docs/API/10-lang/10-chrono/10-subtractTime.ts +38 -0
  150. package/docs/API/10-lang/10-chrono/10-subtractWeeks.ts +25 -0
  151. package/docs/API/10-lang/10-chrono/10-subtractYears.ts +25 -0
  152. package/docs/API/10-lang/10-chrono/10-toDateISOString.ts +17 -0
  153. package/docs/API/10-lang/10-chrono/10-toNative.ts +25 -0
  154. package/docs/API/10-lang/10-chrono/10-toTimeValue.ts +17 -0
  155. package/docs/API/10-lang/10-chrono/10-toTimestamp.ts +17 -0
  156. package/docs/API/10-lang/10-chrono/10-today.ts +13 -0
  157. package/docs/API/10-lang/10-chrono/10-tomorrow.ts +13 -0
  158. package/docs/API/10-lang/10-chrono/10-yesterday.ts +13 -0
  159. package/docs/API/10-lang/10-chrono/index.llms.md +332 -0
  160. package/docs/API/10-lang/10-chrono/index.md +3 -0
  161. package/docs/API/10-lang/10-common/10-and.ts +51 -0
  162. package/docs/API/10-lang/10-common/10-asserts.ts +13 -0
  163. package/docs/API/10-lang/10-common/10-asyncInnerPipe.ts +23 -0
  164. package/docs/API/10-lang/10-common/10-asyncLoop.ts +23 -0
  165. package/docs/API/10-lang/10-common/10-asyncLoopAccumulator.ts +40 -0
  166. package/docs/API/10-lang/10-common/10-asyncPipe.ts +21 -0
  167. package/docs/API/10-lang/10-common/10-callThen.ts +22 -0
  168. package/docs/API/10-lang/10-common/10-cast.ts +16 -0
  169. package/docs/API/10-lang/10-common/10-clone.ts +12 -0
  170. package/docs/API/10-lang/10-common/10-createAsyncRetry.ts +34 -0
  171. package/docs/API/10-lang/10-common/10-createBuilder.ts +19 -0
  172. package/docs/API/10-lang/10-common/10-createEnum.ts +25 -0
  173. package/docs/API/10-lang/10-common/10-createExternalPromise.ts +13 -0
  174. package/docs/API/10-lang/10-common/10-createFormData.ts +16 -0
  175. package/docs/API/10-lang/10-common/10-createInterpolation.ts +12 -0
  176. package/docs/API/10-lang/10-common/10-createQueue.ts +17 -0
  177. package/docs/API/10-lang/10-common/10-createTransformer.ts +16 -0
  178. package/docs/API/10-lang/10-common/10-detachObjectMethod.ts +20 -0
  179. package/docs/API/10-lang/10-common/10-equal.ts +37 -0
  180. package/docs/API/10-lang/10-common/10-escapeRegExp.ts +11 -0
  181. package/docs/API/10-lang/10-common/10-falsy.ts +31 -0
  182. package/docs/API/10-lang/10-common/10-forward.ts +11 -0
  183. package/docs/API/10-lang/10-common/10-forwardAsserts.ts +17 -0
  184. package/docs/API/10-lang/10-common/10-forwardLog.ts +11 -0
  185. package/docs/API/10-lang/10-common/10-infer.ts +16 -0
  186. package/docs/API/10-lang/10-common/10-innerPipe.ts +23 -0
  187. package/docs/API/10-lang/10-common/10-instanceOf.ts +34 -0
  188. package/docs/API/10-lang/10-common/10-isType.ts +35 -0
  189. package/docs/API/10-lang/10-common/10-justExec.ts +28 -0
  190. package/docs/API/10-lang/10-common/10-justReturn.ts +19 -0
  191. package/docs/API/10-lang/10-common/10-loop.ts +18 -0
  192. package/docs/API/10-lang/10-common/10-loopAccumulator.ts +35 -0
  193. package/docs/API/10-lang/10-common/10-loopAccumulatorFrom.ts +29 -0
  194. package/docs/API/10-lang/10-common/10-memo.ts +12 -0
  195. package/docs/API/10-lang/10-common/10-memoObject.ts +11 -0
  196. package/docs/API/10-lang/10-common/10-memoPromise.ts +16 -0
  197. package/docs/API/10-lang/10-common/10-or.ts +43 -0
  198. package/docs/API/10-lang/10-common/10-pipe.ts +21 -0
  199. package/docs/API/10-lang/10-common/10-pipeCall.ts +20 -0
  200. package/docs/API/10-lang/10-common/10-prepareAsyncPipe.ts +20 -0
  201. package/docs/API/10-lang/10-common/10-preparePipe.ts +20 -0
  202. package/docs/API/10-lang/10-common/10-promiseAll.ts +16 -0
  203. package/docs/API/10-lang/10-common/10-promiseObject.ts +22 -0
  204. package/docs/API/10-lang/10-common/10-removeConstraint.ts +13 -0
  205. package/docs/API/10-lang/10-common/10-shameOnYou.ts +20 -0
  206. package/docs/API/10-lang/10-common/10-simpleClone.ts +12 -0
  207. package/docs/API/10-lang/10-common/10-stringToBytes.ts +16 -0
  208. package/docs/API/10-lang/10-common/10-stringToMillisecond.ts +17 -0
  209. package/docs/API/10-lang/10-common/10-tap.ts +28 -0
  210. package/docs/API/10-lang/10-common/10-timeout.ts +11 -0
  211. package/docs/API/10-lang/10-common/10-toCurriedPredicate.ts +28 -0
  212. package/docs/API/10-lang/10-common/10-toJSON.ts +15 -0
  213. package/docs/API/10-lang/10-common/10-toNative.ts +15 -0
  214. package/docs/API/10-lang/10-common/10-toRegExp.ts +17 -0
  215. package/docs/API/10-lang/10-common/10-transformer.ts +21 -0
  216. package/docs/API/10-lang/10-common/10-truthy.ts +31 -0
  217. package/docs/API/10-lang/10-common/10-useAsyncRetry.ts +31 -0
  218. package/docs/API/10-lang/10-common/10-when.ts +27 -0
  219. package/docs/API/10-lang/10-common/10-whenElse.ts +28 -0
  220. package/docs/API/10-lang/10-common/10-whenNot.ts +57 -0
  221. package/docs/API/10-lang/10-common/index.llms.md +244 -0
  222. package/docs/API/10-lang/10-common/index.md +3 -0
  223. package/docs/API/10-lang/10-dataStructure/10-absolutePath.ts +25 -0
  224. package/docs/API/10-lang/10-dataStructure/10-allowedCharacters.ts +25 -0
  225. package/docs/API/10-lang/10-dataStructure/10-array.ts +23 -0
  226. package/docs/API/10-lang/10-dataStructure/10-arrayLengthEqual.ts +25 -0
  227. package/docs/API/10-lang/10-dataStructure/10-betweenThan.ts +25 -0
  228. package/docs/API/10-lang/10-dataStructure/10-betweenThanOrEqual.ts +25 -0
  229. package/docs/API/10-lang/10-dataStructure/10-bigint.ts +22 -0
  230. package/docs/API/10-lang/10-dataStructure/10-boolean.ts +22 -0
  231. package/docs/API/10-lang/10-dataStructure/10-createCodec.ts +45 -0
  232. package/docs/API/10-lang/10-dataStructure/10-createCodecs.ts +134 -0
  233. package/docs/API/10-lang/10-dataStructure/10-createErrorInterpreter.ts +74 -0
  234. package/docs/API/10-lang/10-dataStructure/10-date.ts +23 -0
  235. package/docs/API/10-lang/10-dataStructure/10-email.ts +25 -0
  236. package/docs/API/10-lang/10-dataStructure/10-endsWith.ts +24 -0
  237. package/docs/API/10-lang/10-dataStructure/10-even.ts +25 -0
  238. package/docs/API/10-lang/10-dataStructure/10-extend.ts +27 -0
  239. package/docs/API/10-lang/10-dataStructure/10-greaterThan.ts +25 -0
  240. package/docs/API/10-lang/10-dataStructure/10-greaterThanOrEqual.ts +25 -0
  241. package/docs/API/10-lang/10-dataStructure/10-include.ts +24 -0
  242. package/docs/API/10-lang/10-dataStructure/10-integer.ts +25 -0
  243. package/docs/API/10-lang/10-dataStructure/10-isNullStructure.ts +12 -0
  244. package/docs/API/10-lang/10-dataStructure/10-isNullable.ts +12 -0
  245. package/docs/API/10-lang/10-dataStructure/10-isOptional.ts +12 -0
  246. package/docs/API/10-lang/10-dataStructure/10-isUndefinedStructure.ts +12 -0
  247. package/docs/API/10-lang/10-dataStructure/10-lazy.ts +23 -0
  248. package/docs/API/10-lang/10-dataStructure/10-lessThan.ts +25 -0
  249. package/docs/API/10-lang/10-dataStructure/10-lessThanOrEqual.ts +25 -0
  250. package/docs/API/10-lang/10-dataStructure/10-literal.ts +19 -0
  251. package/docs/API/10-lang/10-dataStructure/10-maxCharacters.ts +25 -0
  252. package/docs/API/10-lang/10-dataStructure/10-maxElements.ts +25 -0
  253. package/docs/API/10-lang/10-dataStructure/10-minCharacters.ts +25 -0
  254. package/docs/API/10-lang/10-dataStructure/10-minElements.ts +25 -0
  255. package/docs/API/10-lang/10-dataStructure/10-multipleOf.ts +25 -0
  256. package/docs/API/10-lang/10-dataStructure/10-negative.ts +25 -0
  257. package/docs/API/10-lang/10-dataStructure/10-notEmpty.ts +25 -0
  258. package/docs/API/10-lang/10-dataStructure/10-notZero.ts +25 -0
  259. package/docs/API/10-lang/10-dataStructure/10-null.ts +22 -0
  260. package/docs/API/10-lang/10-dataStructure/10-nullable.ts +19 -0
  261. package/docs/API/10-lang/10-dataStructure/10-number.ts +22 -0
  262. package/docs/API/10-lang/10-dataStructure/10-numberInString.ts +25 -0
  263. package/docs/API/10-lang/10-dataStructure/10-object.ts +25 -0
  264. package/docs/API/10-lang/10-dataStructure/10-odd.ts +25 -0
  265. package/docs/API/10-lang/10-dataStructure/10-optional.ts +19 -0
  266. package/docs/API/10-lang/10-dataStructure/10-partial.ts +23 -0
  267. package/docs/API/10-lang/10-dataStructure/10-path.ts +25 -0
  268. package/docs/API/10-lang/10-dataStructure/10-positive.ts +25 -0
  269. package/docs/API/10-lang/10-dataStructure/10-record.ts +22 -0
  270. package/docs/API/10-lang/10-dataStructure/10-refine.ts +27 -0
  271. package/docs/API/10-lang/10-dataStructure/10-regex.ts +24 -0
  272. package/docs/API/10-lang/10-dataStructure/10-required.ts +21 -0
  273. package/docs/API/10-lang/10-dataStructure/10-safe.ts +25 -0
  274. package/docs/API/10-lang/10-dataStructure/10-segmentPath.ts +25 -0
  275. package/docs/API/10-lang/10-dataStructure/10-startsWith.ts +24 -0
  276. package/docs/API/10-lang/10-dataStructure/10-strictNegative.ts +25 -0
  277. package/docs/API/10-lang/10-dataStructure/10-strictPositive.ts +25 -0
  278. package/docs/API/10-lang/10-dataStructure/10-string.ts +22 -0
  279. package/docs/API/10-lang/10-dataStructure/10-stringLengthEqual.ts +25 -0
  280. package/docs/API/10-lang/10-dataStructure/10-time.ts +23 -0
  281. package/docs/API/10-lang/10-dataStructure/10-trimmed.ts +25 -0
  282. package/docs/API/10-lang/10-dataStructure/10-typeStructureIdentifier.ts +33 -0
  283. package/docs/API/10-lang/10-dataStructure/10-undefined.ts +22 -0
  284. package/docs/API/10-lang/10-dataStructure/10-union.ts +24 -0
  285. package/docs/API/10-lang/10-dataStructure/10-unwrapLazy.ts +17 -0
  286. package/docs/API/10-lang/10-dataStructure/10-url.ts +25 -0
  287. package/docs/API/10-lang/10-dataStructure/10-uuid.ts +25 -0
  288. package/docs/API/10-lang/10-dataStructure/index.llms.md +264 -0
  289. package/docs/API/10-lang/10-dataStructure/index.md +3 -0
  290. package/docs/API/10-lang/10-either/10-asyncGroup.ts +44 -0
  291. package/docs/API/10-lang/10-either/10-asyncSafeCallback.ts +25 -0
  292. package/docs/API/10-lang/10-either/10-error.ts +12 -0
  293. package/docs/API/10-lang/10-either/10-expect.ts +13 -0
  294. package/docs/API/10-lang/10-either/10-extractErrorInLeft.ts +45 -0
  295. package/docs/API/10-lang/10-either/10-fail.ts +12 -0
  296. package/docs/API/10-lang/10-either/10-forwardAssertsSelection.ts +28 -0
  297. package/docs/API/10-lang/10-either/10-group.ts +58 -0
  298. package/docs/API/10-lang/10-either/10-hasInformation.ts +30 -0
  299. package/docs/API/10-lang/10-either/10-isLeft.ts +25 -0
  300. package/docs/API/10-lang/10-either/10-isRight.ts +25 -0
  301. package/docs/API/10-lang/10-either/10-isSelected.ts +41 -0
  302. package/docs/API/10-lang/10-either/10-keepAsRightByInformation.ts +29 -0
  303. package/docs/API/10-lang/10-either/10-keepAsRightSelection.ts +23 -0
  304. package/docs/API/10-lang/10-either/10-left.ts +13 -0
  305. package/docs/API/10-lang/10-either/10-matchInformation.ts +28 -0
  306. package/docs/API/10-lang/10-either/10-matchInformationCombination.ts +61 -0
  307. package/docs/API/10-lang/10-either/10-matchInformationCombinationOtherwise.ts +62 -0
  308. package/docs/API/10-lang/10-either/10-matchInformationOtherwise.ts +29 -0
  309. package/docs/API/10-lang/10-either/10-none.ts +12 -0
  310. package/docs/API/10-lang/10-either/10-ok.ts +12 -0
  311. package/docs/API/10-lang/10-either/10-result.ts +18 -0
  312. package/docs/API/10-lang/10-either/10-rewriteInformation.ts +24 -0
  313. package/docs/API/10-lang/10-either/10-right.ts +13 -0
  314. package/docs/API/10-lang/10-either/10-rightAsyncPipe.ts +70 -0
  315. package/docs/API/10-lang/10-either/10-rightPipe.ts +72 -0
  316. package/docs/API/10-lang/10-either/10-safeCallback.ts +29 -0
  317. package/docs/API/10-lang/10-either/10-some.ts +12 -0
  318. package/docs/API/10-lang/10-either/10-success.ts +12 -0
  319. package/docs/API/10-lang/10-either/10-toMaybe.ts +53 -0
  320. package/docs/API/10-lang/10-either/10-unwrapByInformation.ts +20 -0
  321. package/docs/API/10-lang/10-either/10-unwrapByInformationOrThrow.ts +19 -0
  322. package/docs/API/10-lang/10-either/10-unwrapLeft.ts +14 -0
  323. package/docs/API/10-lang/10-either/10-unwrapLeftOrThrow.ts +17 -0
  324. package/docs/API/10-lang/10-either/10-unwrapOr.ts +17 -0
  325. package/docs/API/10-lang/10-either/10-unwrapOtherwise.ts +20 -0
  326. package/docs/API/10-lang/10-either/10-unwrapRight.ts +14 -0
  327. package/docs/API/10-lang/10-either/10-unwrapRightOrThrow.ts +17 -0
  328. package/docs/API/10-lang/10-either/10-unwrapSelection.ts +26 -0
  329. package/docs/API/10-lang/10-either/10-unwrapSelectionOrThrow.ts +19 -0
  330. package/docs/API/10-lang/10-either/10-whenHasInformation.ts +36 -0
  331. package/docs/API/10-lang/10-either/10-whenHasInformationOtherwise.ts +29 -0
  332. package/docs/API/10-lang/10-either/10-whenIsLeft.ts +20 -0
  333. package/docs/API/10-lang/10-either/10-whenIsLeftOtherwise.ts +27 -0
  334. package/docs/API/10-lang/10-either/10-whenIsRight.ts +20 -0
  335. package/docs/API/10-lang/10-either/10-whenIsRightOtherwise.ts +26 -0
  336. package/docs/API/10-lang/10-either/10-whenIsSelected.ts +33 -0
  337. package/docs/API/10-lang/10-either/10-whenIsSelectedOtherwise.ts +35 -0
  338. package/docs/API/10-lang/10-either/index.llms.md +196 -0
  339. package/docs/API/10-lang/10-either/index.md +3 -0
  340. package/docs/API/10-lang/10-generator/10-asyncChunk.ts +55 -0
  341. package/docs/API/10-lang/10-generator/10-asyncConcat.ts +43 -0
  342. package/docs/API/10-lang/10-generator/10-asyncFilter.ts +41 -0
  343. package/docs/API/10-lang/10-generator/10-asyncFlat.ts +37 -0
  344. package/docs/API/10-lang/10-generator/10-asyncGroup.ts +65 -0
  345. package/docs/API/10-lang/10-generator/10-asyncLoop.ts +50 -0
  346. package/docs/API/10-lang/10-generator/10-asyncLoopAccumulator.ts +40 -0
  347. package/docs/API/10-lang/10-generator/10-asyncMap.ts +48 -0
  348. package/docs/API/10-lang/10-generator/10-asyncReduce.ts +63 -0
  349. package/docs/API/10-lang/10-generator/10-chunk.ts +44 -0
  350. package/docs/API/10-lang/10-generator/10-concat.ts +37 -0
  351. package/docs/API/10-lang/10-generator/10-createExternalAsyncGenerator.ts +29 -0
  352. package/docs/API/10-lang/10-generator/10-execute.ts +44 -0
  353. package/docs/API/10-lang/10-generator/10-filter.ts +35 -0
  354. package/docs/API/10-lang/10-generator/10-flat.ts +25 -0
  355. package/docs/API/10-lang/10-generator/10-group.ts +44 -0
  356. package/docs/API/10-lang/10-generator/10-groupOutput.ts +48 -0
  357. package/docs/API/10-lang/10-generator/10-loop.ts +46 -0
  358. package/docs/API/10-lang/10-generator/10-loopAccumulator.ts +33 -0
  359. package/docs/API/10-lang/10-generator/10-loopAccumulatorFrom.ts +30 -0
  360. package/docs/API/10-lang/10-generator/10-map.ts +35 -0
  361. package/docs/API/10-lang/10-generator/10-reduce.ts +51 -0
  362. package/docs/API/10-lang/10-generator/10-reduceFrom.ts +30 -0
  363. package/docs/API/10-lang/10-generator/index.llms.md +96 -0
  364. package/docs/API/10-lang/10-generator/index.md +3 -0
  365. package/docs/API/10-lang/10-number/10-betweenThan.ts +43 -0
  366. package/docs/API/10-lang/10-number/10-betweenThanOrEqual.ts +43 -0
  367. package/docs/API/10-lang/10-number/10-greaterThan.ts +35 -0
  368. package/docs/API/10-lang/10-number/10-greaterThanOrEqual.ts +35 -0
  369. package/docs/API/10-lang/10-number/10-isEven.ts +33 -0
  370. package/docs/API/10-lang/10-number/10-isInteger.ts +33 -0
  371. package/docs/API/10-lang/10-number/10-isMultipleOf.ts +35 -0
  372. package/docs/API/10-lang/10-number/10-isNegative.ts +33 -0
  373. package/docs/API/10-lang/10-number/10-isNotZero.ts +33 -0
  374. package/docs/API/10-lang/10-number/10-isOdd.ts +33 -0
  375. package/docs/API/10-lang/10-number/10-isPositive.ts +33 -0
  376. package/docs/API/10-lang/10-number/10-isSafe.ts +33 -0
  377. package/docs/API/10-lang/10-number/10-isStrictNegative.ts +34 -0
  378. package/docs/API/10-lang/10-number/10-isStrictPositive.ts +33 -0
  379. package/docs/API/10-lang/10-number/10-lessThan.ts +35 -0
  380. package/docs/API/10-lang/10-number/10-lessThanOrEqual.ts +35 -0
  381. package/docs/API/10-lang/10-number/10-max.ts +19 -0
  382. package/docs/API/10-lang/10-number/10-maxOf.ts +19 -0
  383. package/docs/API/10-lang/10-number/10-min.ts +19 -0
  384. package/docs/API/10-lang/10-number/10-minOf.ts +19 -0
  385. package/docs/API/10-lang/10-number/10-sort.ts +19 -0
  386. package/docs/API/10-lang/10-number/10-sum.ts +19 -0
  387. package/docs/API/10-lang/10-number/index.llms.md +92 -0
  388. package/docs/API/10-lang/10-number/index.md +3 -0
  389. package/docs/API/10-lang/10-object/10-assign.ts +41 -0
  390. package/docs/API/10-lang/10-object/10-countKeys.ts +15 -0
  391. package/docs/API/10-lang/10-object/10-deepOverride.ts +35 -0
  392. package/docs/API/10-lang/10-object/10-discriminate.ts +102 -0
  393. package/docs/API/10-lang/10-object/10-discriminateEntryKey.ts +43 -0
  394. package/docs/API/10-lang/10-object/10-discriminateEntryValue.ts +44 -0
  395. package/docs/API/10-lang/10-object/10-entries.ts +19 -0
  396. package/docs/API/10-lang/10-object/10-entry.ts +17 -0
  397. package/docs/API/10-lang/10-object/10-fromEntries.ts +23 -0
  398. package/docs/API/10-lang/10-object/10-getDeepProperty.ts +26 -0
  399. package/docs/API/10-lang/10-object/10-getProperty.ts +24 -0
  400. package/docs/API/10-lang/10-object/10-hasKeys.ts +43 -0
  401. package/docs/API/10-lang/10-object/10-isSimple.ts +38 -0
  402. package/docs/API/10-lang/10-object/10-keys.ts +19 -0
  403. package/docs/API/10-lang/10-object/10-omit.ts +39 -0
  404. package/docs/API/10-lang/10-object/10-override.ts +24 -0
  405. package/docs/API/10-lang/10-object/10-pick.ts +41 -0
  406. package/docs/API/10-lang/10-object/10-to.ts +40 -0
  407. package/docs/API/10-lang/10-object/10-transformProperties.ts +43 -0
  408. package/docs/API/10-lang/10-object/10-transformProperty.ts +39 -0
  409. package/docs/API/10-lang/10-object/10-values.ts +19 -0
  410. package/docs/API/10-lang/10-object/index.llms.md +88 -0
  411. package/docs/API/10-lang/10-object/index.md +3 -0
  412. package/docs/API/10-lang/10-path/10-computeRelative.ts +19 -0
  413. package/docs/API/10-lang/10-path/10-concatSegment.ts +28 -0
  414. package/docs/API/10-lang/10-path/10-create.ts +21 -0
  415. package/docs/API/10-lang/10-path/10-createAbsolute.ts +21 -0
  416. package/docs/API/10-lang/10-path/10-createAbsoluteOrThrow.ts +16 -0
  417. package/docs/API/10-lang/10-path/10-createMatcher.ts +50 -0
  418. package/docs/API/10-lang/10-path/10-createOrThrow.ts +16 -0
  419. package/docs/API/10-lang/10-path/10-createSegment.ts +26 -0
  420. package/docs/API/10-lang/10-path/10-createSegmentOrThrow.ts +16 -0
  421. package/docs/API/10-lang/10-path/10-declareAbsolutePath.ts +15 -0
  422. package/docs/API/10-lang/10-path/10-declarePath.ts +15 -0
  423. package/docs/API/10-lang/10-path/10-declareSegment.ts +15 -0
  424. package/docs/API/10-lang/10-path/10-getBaseName.ts +22 -0
  425. package/docs/API/10-lang/10-path/10-getExtensionName.ts +22 -0
  426. package/docs/API/10-lang/10-path/10-getParentFolderPath.ts +25 -0
  427. package/docs/API/10-lang/10-path/10-is.ts +46 -0
  428. package/docs/API/10-lang/10-path/10-isAbsolute.ts +46 -0
  429. package/docs/API/10-lang/10-path/10-isSegment.ts +42 -0
  430. package/docs/API/10-lang/10-path/10-normalize.ts +26 -0
  431. package/docs/API/10-lang/10-path/10-resolveFrom.ts +37 -0
  432. package/docs/API/10-lang/10-path/10-resolveRelative.ts +23 -0
  433. package/docs/API/10-lang/10-path/index.llms.md +88 -0
  434. package/docs/API/10-lang/10-path/index.md +3 -0
  435. package/docs/API/10-lang/10-pattern/10-exhaustive.ts +26 -0
  436. package/docs/API/10-lang/10-pattern/10-isMatch.ts +72 -0
  437. package/docs/API/10-lang/10-pattern/10-match.ts +133 -0
  438. package/docs/API/10-lang/10-pattern/10-matchWithEntity.ts +49 -0
  439. package/docs/API/10-lang/10-pattern/10-matchWithEntityOtherwise.ts +55 -0
  440. package/docs/API/10-lang/10-pattern/10-matchWithError.ts +45 -0
  441. package/docs/API/10-lang/10-pattern/10-matchWithErrorOtherwise.ts +48 -0
  442. package/docs/API/10-lang/10-pattern/10-matchWithFact.ts +49 -0
  443. package/docs/API/10-lang/10-pattern/10-matchWithFactOtherwise.ts +49 -0
  444. package/docs/API/10-lang/10-pattern/10-matchWithNumber.ts +33 -0
  445. package/docs/API/10-lang/10-pattern/10-matchWithNumberOtherwise.ts +37 -0
  446. package/docs/API/10-lang/10-pattern/10-matchWithString.ts +34 -0
  447. package/docs/API/10-lang/10-pattern/10-matchWithStringOtherwise.ts +35 -0
  448. package/docs/API/10-lang/10-pattern/10-matchWithTaggedObject.ts +43 -0
  449. package/docs/API/10-lang/10-pattern/10-matchWithTaggedObjectOtherwise.ts +49 -0
  450. package/docs/API/10-lang/10-pattern/10-otherwise.ts +28 -0
  451. package/docs/API/10-lang/10-pattern/10-union.ts +47 -0
  452. package/docs/API/10-lang/10-pattern/10-when.ts +46 -0
  453. package/docs/API/10-lang/10-pattern/10-whenNot.ts +123 -0
  454. package/docs/API/10-lang/10-pattern/index.llms.md +80 -0
  455. package/docs/API/10-lang/10-pattern/index.md +3 -0
  456. package/docs/API/10-lang/10-printer/10-bold.ts +12 -0
  457. package/docs/API/10-lang/10-printer/10-colorized.ts +18 -0
  458. package/docs/API/10-lang/10-printer/10-colorizedBold.ts +18 -0
  459. package/docs/API/10-lang/10-printer/10-primitives.md +19 -0
  460. package/docs/API/10-lang/10-printer/10-renderLine.ts +36 -0
  461. package/docs/API/10-lang/10-printer/10-renderParagraph.ts +37 -0
  462. package/docs/API/10-lang/10-printer/index.llms.md +29 -0
  463. package/docs/API/10-lang/10-printer/index.md +3 -0
  464. package/docs/API/10-lang/10-string/10-at.ts +18 -0
  465. package/docs/API/10-lang/10-string/10-capitalize.ts +18 -0
  466. package/docs/API/10-lang/10-string/10-charAt.ts +18 -0
  467. package/docs/API/10-lang/10-string/10-concat.ts +18 -0
  468. package/docs/API/10-lang/10-string/10-endsWith.ts +33 -0
  469. package/docs/API/10-lang/10-string/10-extract.ts +18 -0
  470. package/docs/API/10-lang/10-string/10-extractAll.ts +18 -0
  471. package/docs/API/10-lang/10-string/10-first.ts +17 -0
  472. package/docs/API/10-lang/10-string/10-includes.ts +33 -0
  473. package/docs/API/10-lang/10-string/10-indexOf.ts +17 -0
  474. package/docs/API/10-lang/10-string/10-isComposedOf.ts +33 -0
  475. package/docs/API/10-lang/10-string/10-isEmail.ts +56 -0
  476. package/docs/API/10-lang/10-string/10-isIn.ts +34 -0
  477. package/docs/API/10-lang/10-string/10-isKeyof.ts +37 -0
  478. package/docs/API/10-lang/10-string/10-isNotEmpty.ts +32 -0
  479. package/docs/API/10-lang/10-string/10-isNumber.ts +32 -0
  480. package/docs/API/10-lang/10-string/10-isTrimmed.ts +33 -0
  481. package/docs/API/10-lang/10-string/10-isUrl.ts +31 -0
  482. package/docs/API/10-lang/10-string/10-isUuid.ts +31 -0
  483. package/docs/API/10-lang/10-string/10-join.ts +18 -0
  484. package/docs/API/10-lang/10-string/10-last.ts +17 -0
  485. package/docs/API/10-lang/10-string/10-lastIndexOf.ts +17 -0
  486. package/docs/API/10-lang/10-string/10-length.ts +18 -0
  487. package/docs/API/10-lang/10-string/10-lengthEqual.ts +33 -0
  488. package/docs/API/10-lang/10-string/10-maxCharacters.ts +33 -0
  489. package/docs/API/10-lang/10-string/10-minCharacters.ts +33 -0
  490. package/docs/API/10-lang/10-string/10-normalize.ts +17 -0
  491. package/docs/API/10-lang/10-string/10-padEnd.ts +17 -0
  492. package/docs/API/10-lang/10-string/10-padStart.ts +17 -0
  493. package/docs/API/10-lang/10-string/10-pop.ts +17 -0
  494. package/docs/API/10-lang/10-string/10-prepend.ts +17 -0
  495. package/docs/API/10-lang/10-string/10-repeat.ts +17 -0
  496. package/docs/API/10-lang/10-string/10-replace.ts +18 -0
  497. package/docs/API/10-lang/10-string/10-replaceAll.ts +17 -0
  498. package/docs/API/10-lang/10-string/10-search.ts +17 -0
  499. package/docs/API/10-lang/10-string/10-shift.ts +17 -0
  500. package/docs/API/10-lang/10-string/10-slice.ts +17 -0
  501. package/docs/API/10-lang/10-string/10-sort.ts +19 -0
  502. package/docs/API/10-lang/10-string/10-sortCompare.ts +17 -0
  503. package/docs/API/10-lang/10-string/10-split.ts +34 -0
  504. package/docs/API/10-lang/10-string/10-startsWith.ts +33 -0
  505. package/docs/API/10-lang/10-string/10-stringify.ts +11 -0
  506. package/docs/API/10-lang/10-string/10-substring.ts +17 -0
  507. package/docs/API/10-lang/10-string/10-test.ts +17 -0
  508. package/docs/API/10-lang/10-string/10-to.ts +11 -0
  509. package/docs/API/10-lang/10-string/10-toLowerCase.ts +17 -0
  510. package/docs/API/10-lang/10-string/10-toUpperCase.ts +17 -0
  511. package/docs/API/10-lang/10-string/10-trim.ts +17 -0
  512. package/docs/API/10-lang/10-string/10-trimEnd.ts +17 -0
  513. package/docs/API/10-lang/10-string/10-trimStart.ts +17 -0
  514. package/docs/API/10-lang/10-string/10-uncapitalize.ts +17 -0
  515. package/docs/API/10-lang/10-string/index.llms.md +208 -0
  516. package/docs/API/10-lang/10-string/index.md +3 -0
  517. package/docs/API/10-lang/10-tuple/10-from.ts +50 -0
  518. package/docs/API/10-lang/10-tuple/10-map.ts +37 -0
  519. package/docs/API/10-lang/10-tuple/index.llms.md +12 -0
  520. package/docs/API/10-lang/10-tuple/index.md +3 -0
  521. package/docs/API/10-lang/index.md +3 -0
  522. package/docs/API/20-server/10-file/10-appendFile.ts +50 -0
  523. package/docs/API/20-server/10-file/10-appendTextFile.ts +49 -0
  524. package/docs/API/20-server/10-file/10-copy.ts +50 -0
  525. package/docs/API/20-server/10-file/10-createEntryInterface.ts +13 -0
  526. package/docs/API/20-server/10-file/10-createFileInterface.ts +22 -0
  527. package/docs/API/20-server/10-file/10-createFolderInterface.ts +20 -0
  528. package/docs/API/20-server/10-file/10-createUnknownEntryInterface.ts +13 -0
  529. package/docs/API/20-server/10-file/10-ensureDirectory.ts +39 -0
  530. package/docs/API/20-server/10-file/10-ensureFile.ts +40 -0
  531. package/docs/API/20-server/10-file/10-exists.ts +36 -0
  532. package/docs/API/20-server/10-file/10-link.ts +51 -0
  533. package/docs/API/20-server/10-file/10-linkStat.ts +37 -0
  534. package/docs/API/20-server/10-file/10-makeDirectory.ts +41 -0
  535. package/docs/API/20-server/10-file/10-makeTemporaryDirectory.ts +35 -0
  536. package/docs/API/20-server/10-file/10-makeTemporaryFile.ts +40 -0
  537. package/docs/API/20-server/10-file/10-move.ts +51 -0
  538. package/docs/API/20-server/10-file/10-readDirectory.ts +52 -0
  539. package/docs/API/20-server/10-file/10-readFile.ts +38 -0
  540. package/docs/API/20-server/10-file/10-readJsonFile.ts +38 -0
  541. package/docs/API/20-server/10-file/10-readLink.ts +37 -0
  542. package/docs/API/20-server/10-file/10-readTextFile.ts +38 -0
  543. package/docs/API/20-server/10-file/10-realPath.ts +36 -0
  544. package/docs/API/20-server/10-file/10-relocate.ts +51 -0
  545. package/docs/API/20-server/10-file/10-remove.ts +40 -0
  546. package/docs/API/20-server/10-file/10-rename.ts +43 -0
  547. package/docs/API/20-server/10-file/10-setMode.ts +37 -0
  548. package/docs/API/20-server/10-file/10-setOwner.ts +38 -0
  549. package/docs/API/20-server/10-file/10-setTime.ts +42 -0
  550. package/docs/API/20-server/10-file/10-stat.ts +37 -0
  551. package/docs/API/20-server/10-file/10-symlink.ts +49 -0
  552. package/docs/API/20-server/10-file/10-truncate.ts +41 -0
  553. package/docs/API/20-server/10-file/10-walkDirectory.ts +75 -0
  554. package/docs/API/20-server/10-file/10-writeFile.ts +50 -0
  555. package/docs/API/20-server/10-file/10-writeJsonFile.ts +41 -0
  556. package/docs/API/20-server/10-file/10-writeTextFile.ts +49 -0
  557. package/docs/API/20-server/10-file/index.llms.md +144 -0
  558. package/docs/API/20-server/10-file/index.md +3 -0
  559. package/docs/API/20-server/20-common/10-environmentVariable.ts +57 -0
  560. package/docs/API/20-server/20-common/10-environmentVariableOrThrow.ts +21 -0
  561. package/docs/API/20-server/20-common/10-exitProcess.ts +9 -0
  562. package/docs/API/20-server/20-common/10-getCurrentDirectoryName.ts +10 -0
  563. package/docs/API/20-server/20-common/10-getCurrentWorkDirectory.ts +10 -0
  564. package/docs/API/20-server/20-common/10-getCurrentWorkDirectoryOrThrow.ts +10 -0
  565. package/docs/API/20-server/20-common/10-getProcessArguments.ts +10 -0
  566. package/docs/API/20-server/20-common/10-setCurrentWorkingDirectory.ts +14 -0
  567. package/docs/API/20-server/20-common/10-setCurrentWorkingDirectoryOrThrow.ts +12 -0
  568. package/docs/API/20-server/20-common/index.llms.md +40 -0
  569. package/docs/API/20-server/20-common/index.md +3 -0
  570. package/docs/API/20-server/30-dataStructure/10-file.ts +14 -0
  571. package/docs/API/20-server/30-dataStructure/10-fileExist.ts +27 -0
  572. package/docs/API/20-server/30-dataStructure/10-folder.ts +14 -0
  573. package/docs/API/20-server/30-dataStructure/10-folderExist.ts +14 -0
  574. package/docs/API/20-server/30-dataStructure/10-mimeType.ts +14 -0
  575. package/docs/API/20-server/30-dataStructure/10-size.ts +32 -0
  576. package/docs/API/20-server/30-dataStructure/index.llms.md +28 -0
  577. package/docs/API/20-server/30-dataStructure/index.md +3 -0
  578. package/docs/API/20-server/40-command/10-create.ts +39 -0
  579. package/docs/API/20-server/40-command/10-createArgument.ts +39 -0
  580. package/docs/API/20-server/40-command/10-createArrayOption.ts +36 -0
  581. package/docs/API/20-server/40-command/10-createBooleanOption.ts +28 -0
  582. package/docs/API/20-server/40-command/10-createOption.ts +46 -0
  583. package/docs/API/20-server/40-command/10-exec.ts +51 -0
  584. package/docs/API/20-server/40-command/10-execOptions.ts +30 -0
  585. package/docs/API/20-server/40-command/index.llms.md +32 -0
  586. package/docs/API/20-server/40-command/index.md +3 -0
  587. package/docs/API/20-server/index.md +3 -0
  588. package/docs/API/40-json-web-token/10-tokenHandler/10-createTokenHandler.ts +160 -0
  589. package/docs/API/40-json-web-token/10-tokenHandler/index.llms.md +8 -0
  590. package/docs/API/40-json-web-token/10-tokenHandler/index.md +3 -0
  591. package/docs/API/40-json-web-token/20-signer/10-createHS256.ts +24 -0
  592. package/docs/API/40-json-web-token/20-signer/10-createHS512.ts +24 -0
  593. package/docs/API/40-json-web-token/20-signer/10-createRS256.ts +28 -0
  594. package/docs/API/40-json-web-token/20-signer/10-createRS512.ts +28 -0
  595. package/docs/API/40-json-web-token/20-signer/10-factory.ts +29 -0
  596. package/docs/API/40-json-web-token/20-signer/index.llms.md +24 -0
  597. package/docs/API/40-json-web-token/20-signer/index.md +3 -0
  598. package/docs/API/40-json-web-token/30-cipher/10-createRSAOAEP.ts +26 -0
  599. package/docs/API/40-json-web-token/30-cipher/10-createRSAOAEP256.ts +26 -0
  600. package/docs/API/40-json-web-token/30-cipher/10-factory.ts +29 -0
  601. package/docs/API/40-json-web-token/30-cipher/index.llms.md +16 -0
  602. package/docs/API/40-json-web-token/30-cipher/index.md +3 -0
  603. package/docs/API/40-json-web-token/40-utils/10-AES_GCM.decrypt.ts +17 -0
  604. package/docs/API/40-json-web-token/40-utils/10-AES_GCM.encrypt.ts +11 -0
  605. package/docs/API/40-json-web-token/40-utils/10-AES_GCM.generateInitializationVector.ts +9 -0
  606. package/docs/API/40-json-web-token/40-utils/10-HMAC.sign.ts +13 -0
  607. package/docs/API/40-json-web-token/40-utils/10-HMAC.verify.ts +11 -0
  608. package/docs/API/40-json-web-token/40-utils/10-RSA.sign.ts +14 -0
  609. package/docs/API/40-json-web-token/40-utils/10-RSA.verify.ts +13 -0
  610. package/docs/API/40-json-web-token/40-utils/10-RSA_OAEP.decrypt.ts +13 -0
  611. package/docs/API/40-json-web-token/40-utils/10-RSA_OAEP.encrypt.ts +10 -0
  612. package/docs/API/40-json-web-token/40-utils/10-decodeBase64.ts +9 -0
  613. package/docs/API/40-json-web-token/40-utils/10-decodeBase64Url.ts +9 -0
  614. package/docs/API/40-json-web-token/40-utils/10-decodeText.ts +9 -0
  615. package/docs/API/40-json-web-token/40-utils/10-encodeBase64.ts +9 -0
  616. package/docs/API/40-json-web-token/40-utils/10-encodeBase64Url.ts +9 -0
  617. package/docs/API/40-json-web-token/40-utils/10-encodeText.ts +9 -0
  618. package/docs/API/40-json-web-token/40-utils/10-isBase64Url.ts +11 -0
  619. package/docs/API/40-json-web-token/40-utils/10-jsonParse.ts +11 -0
  620. package/docs/API/40-json-web-token/40-utils/10-pemToBinary.ts +11 -0
  621. package/docs/API/40-json-web-token/40-utils/index.llms.md +76 -0
  622. package/docs/API/40-json-web-token/40-utils/index.md +3 -0
  623. package/docs/API/40-json-web-token/index.md +3 -0
  624. package/docs/API/50-form/10-vue/10-construction/10-createForm.ts +48 -0
  625. package/docs/API/50-form/10-vue/10-construction/10-createFormField.ts +66 -0
  626. package/docs/API/50-form/10-vue/10-construction/10-createGridTemplates.ts +39 -0
  627. package/docs/API/50-form/10-vue/10-construction/10-createInput.ts +46 -0
  628. package/docs/API/50-form/10-vue/10-construction/10-createTemplate.ts +36 -0
  629. package/docs/API/50-form/10-vue/10-construction/fixtures/AddressInput.vue +19 -0
  630. package/docs/API/50-form/10-vue/10-construction/index.llms.md +24 -0
  631. package/docs/API/50-form/10-vue/10-construction/index.md +3 -0
  632. package/docs/API/50-form/10-vue/20-layouts/10-useCheckLayout.ts +40 -0
  633. package/docs/API/50-form/10-vue/20-layouts/10-useDisabledLayout.ts +34 -0
  634. package/docs/API/50-form/10-vue/20-layouts/10-useMultiLayout.ts +32 -0
  635. package/docs/API/50-form/10-vue/20-layouts/10-useRepeatLayout.ts +34 -0
  636. package/docs/API/50-form/10-vue/20-layouts/10-useSectionLayout.ts +20 -0
  637. package/docs/API/50-form/10-vue/20-layouts/10-useSlotLayout.ts +37 -0
  638. package/docs/API/50-form/10-vue/20-layouts/10-useStepLayout.ts +31 -0
  639. package/docs/API/50-form/10-vue/20-layouts/10-useUnionLayout.ts +48 -0
  640. package/docs/API/50-form/10-vue/20-layouts/index.llms.md +36 -0
  641. package/docs/API/50-form/10-vue/20-layouts/index.md +3 -0
  642. package/docs/API/50-form/10-vue/30-designSystem/10-useCheckbox.ts +13 -0
  643. package/docs/API/50-form/10-vue/30-designSystem/10-useCheckboxPolicy.ts +18 -0
  644. package/docs/API/50-form/10-vue/30-designSystem/10-useDateInput.ts +20 -0
  645. package/docs/API/50-form/10-vue/30-designSystem/10-useDualRangeInput.ts +27 -0
  646. package/docs/API/50-form/10-vue/30-designSystem/10-useFileInput.ts +23 -0
  647. package/docs/API/50-form/10-vue/30-designSystem/10-useNumberInput.ts +18 -0
  648. package/docs/API/50-form/10-vue/30-designSystem/10-useRadioGroup.ts +31 -0
  649. package/docs/API/50-form/10-vue/30-designSystem/10-useRangeDateInput.ts +23 -0
  650. package/docs/API/50-form/10-vue/30-designSystem/10-useRangeInput.ts +18 -0
  651. package/docs/API/50-form/10-vue/30-designSystem/10-useRangeTimeInput.ts +23 -0
  652. package/docs/API/50-form/10-vue/30-designSystem/10-useSelectInput.ts +31 -0
  653. package/docs/API/50-form/10-vue/30-designSystem/10-useTextInput.ts +14 -0
  654. package/docs/API/50-form/10-vue/30-designSystem/10-useTextareaInput.ts +14 -0
  655. package/docs/API/50-form/10-vue/30-designSystem/10-useTimeInput.ts +20 -0
  656. package/docs/API/50-form/10-vue/30-designSystem/20-components.md +11 -0
  657. package/docs/API/50-form/10-vue/30-designSystem/index.llms.md +65 -0
  658. package/docs/API/50-form/10-vue/30-designSystem/index.md +3 -0
  659. package/docs/API/50-form/10-vue/fixtures/templates.ts +20 -0
  660. package/docs/API/50-form/10-vue/index.md +3 -0
  661. package/docs/API/50-form/index.md +3 -0
  662. package/docs/API/60-playwright/10-construction/10-createComponent.ts +47 -0
  663. package/docs/API/60-playwright/10-construction/10-createComponentInteraction.ts +28 -0
  664. package/docs/API/60-playwright/10-construction/10-createPage.ts +34 -0
  665. package/docs/API/60-playwright/10-construction/10-createStepWrapper.ts +23 -0
  666. package/docs/API/60-playwright/10-construction/10-createWebsite.ts +57 -0
  667. package/docs/API/60-playwright/10-construction/10-initClient.ts +38 -0
  668. package/docs/API/60-playwright/10-construction/index.llms.md +28 -0
  669. package/docs/API/60-playwright/10-construction/index.md +3 -0
  670. package/docs/API/60-playwright/20-actions/10-check.ts +9 -0
  671. package/docs/API/60-playwright/20-actions/10-clear.ts +9 -0
  672. package/docs/API/60-playwright/20-actions/10-click.ts +9 -0
  673. package/docs/API/60-playwright/20-actions/10-dragTo.ts +10 -0
  674. package/docs/API/60-playwright/20-actions/10-extractContent.ts +10 -0
  675. package/docs/API/60-playwright/20-actions/10-fill.ts +9 -0
  676. package/docs/API/60-playwright/20-actions/10-focus.ts +9 -0
  677. package/docs/API/60-playwright/20-actions/10-forceClick.ts +10 -0
  678. package/docs/API/60-playwright/20-actions/10-hover.ts +9 -0
  679. package/docs/API/60-playwright/20-actions/10-press.ts +9 -0
  680. package/docs/API/60-playwright/20-actions/10-selectOption.ts +10 -0
  681. package/docs/API/60-playwright/20-actions/10-type.ts +10 -0
  682. package/docs/API/60-playwright/20-actions/10-uncheck.ts +9 -0
  683. package/docs/API/60-playwright/20-actions/10-withStep.ts +10 -0
  684. package/docs/API/60-playwright/20-actions/index.llms.md +60 -0
  685. package/docs/API/60-playwright/20-actions/index.md +3 -0
  686. package/docs/API/60-playwright/30-assertions/10-toBeBusy.ts +10 -0
  687. package/docs/API/60-playwright/30-assertions/10-toBeChecked.ts +9 -0
  688. package/docs/API/60-playwright/30-assertions/10-toBeDisabled.ts +9 -0
  689. package/docs/API/60-playwright/30-assertions/10-toBeEnabled.ts +9 -0
  690. package/docs/API/60-playwright/30-assertions/10-toBeHidden.ts +9 -0
  691. package/docs/API/60-playwright/30-assertions/10-toBeNotBusy.ts +10 -0
  692. package/docs/API/60-playwright/30-assertions/10-toBeVisible.ts +10 -0
  693. package/docs/API/60-playwright/30-assertions/10-toContainText.ts +9 -0
  694. package/docs/API/60-playwright/30-assertions/10-toHaveAttribute.ts +12 -0
  695. package/docs/API/60-playwright/30-assertions/10-toHaveClass.ts +9 -0
  696. package/docs/API/60-playwright/30-assertions/10-toHaveNoText.ts +10 -0
  697. package/docs/API/60-playwright/30-assertions/10-toHaveQuantity.ts +20 -0
  698. package/docs/API/60-playwright/30-assertions/10-toHaveText.ts +9 -0
  699. package/docs/API/60-playwright/30-assertions/10-toHaveValue.ts +9 -0
  700. package/docs/API/60-playwright/30-assertions/10-withStep.ts +10 -0
  701. package/docs/API/60-playwright/30-assertions/index.llms.md +64 -0
  702. package/docs/API/60-playwright/30-assertions/index.md +3 -0
  703. package/docs/API/60-playwright/fixtures/component.ts +44 -0
  704. package/docs/API/60-playwright/index.md +3 -0
  705. package/docs/API/index.md +3 -0
  706. package/docs/API.llms.md +135 -0
  707. package/docs/concepts/01-fundamental/01-constraint/01-use.ts +22 -0
  708. package/docs/concepts/01-fundamental/01-constraint/10-built-in-constraint.ts +37 -0
  709. package/docs/concepts/01-fundamental/01-constraint/20-manipulation.ts +41 -0
  710. package/docs/concepts/01-fundamental/01-constraint/30-cast.ts +66 -0
  711. package/docs/concepts/01-fundamental/01-constraint/40-custom-constraint.ts +45 -0
  712. package/docs/concepts/01-fundamental/01-constraint/index.md +3 -0
  713. package/docs/concepts/01-fundamental/02-currying/01-use.ts +38 -0
  714. package/docs/concepts/01-fundamental/02-currying/10-built-in-function.ts +190 -0
  715. package/docs/concepts/01-fundamental/02-currying/20-inner-pipe.ts +48 -0
  716. package/docs/concepts/01-fundamental/02-currying/30-async-pipe.ts +51 -0
  717. package/docs/concepts/01-fundamental/02-currying/index.md +3 -0
  718. package/docs/concepts/01-fundamental/03-either/01-use.ts +21 -0
  719. package/docs/concepts/01-fundamental/03-either/10-discrimination.ts +90 -0
  720. package/docs/concepts/01-fundamental/03-either/20-exhaustive-handling.ts +90 -0
  721. package/docs/concepts/01-fundamental/03-either/30-composition.ts +80 -0
  722. package/docs/concepts/01-fundamental/03-either/40-result-adaptation.ts +46 -0
  723. package/docs/concepts/01-fundamental/03-either/50-external-results.ts +72 -0
  724. package/docs/concepts/01-fundamental/03-either/60-contextual-state.ts +40 -0
  725. package/docs/concepts/01-fundamental/03-either/index.md +3 -0
  726. package/docs/concepts/01-fundamental/04-data-structure/01-use.ts +22 -0
  727. package/docs/concepts/01-fundamental/04-data-structure/10-structure.ts +244 -0
  728. package/docs/concepts/01-fundamental/04-data-structure/20-constraint.ts +86 -0
  729. package/docs/concepts/01-fundamental/04-data-structure/30-validation.ts +104 -0
  730. package/docs/concepts/01-fundamental/04-data-structure/40-codecs.ts +162 -0
  731. package/docs/concepts/01-fundamental/04-data-structure/50-recursive.ts +57 -0
  732. package/docs/concepts/01-fundamental/04-data-structure/60-interpret-error.ts +123 -0
  733. package/docs/concepts/01-fundamental/04-data-structure/index.md +3 -0
  734. package/docs/concepts/01-fundamental/05-chrono/01-use.ts +14 -0
  735. package/docs/concepts/01-fundamental/05-chrono/10-creation.ts +85 -0
  736. package/docs/concepts/01-fundamental/05-chrono/20-manipulation.ts +110 -0
  737. package/docs/concepts/01-fundamental/05-chrono/30-serialized.ts +89 -0
  738. package/docs/concepts/01-fundamental/05-chrono/40-timezone.ts +85 -0
  739. package/docs/concepts/01-fundamental/05-chrono/index.md +3 -0
  740. package/docs/concepts/01-fundamental/06-modeling/10-new-type.ts +42 -0
  741. package/docs/concepts/01-fundamental/06-modeling/20-entity.ts +191 -0
  742. package/docs/concepts/01-fundamental/06-modeling/30-tagged-object.ts +204 -0
  743. package/docs/concepts/01-fundamental/06-modeling/40-entity-lifecycle.ts +272 -0
  744. package/docs/concepts/01-fundamental/06-modeling/50-evidence.ts +94 -0
  745. package/docs/concepts/01-fundamental/06-modeling/60-signed-function.ts +26 -0
  746. package/docs/concepts/01-fundamental/06-modeling/index.md +3 -0
  747. package/docs/concepts/01-fundamental/07-discrimination/10-entity.ts +136 -0
  748. package/docs/concepts/01-fundamental/07-discrimination/20-fact.ts +158 -0
  749. package/docs/concepts/01-fundamental/07-discrimination/30-tagged-object.ts +137 -0
  750. package/docs/concepts/01-fundamental/07-discrimination/40-error.ts +73 -0
  751. package/docs/concepts/01-fundamental/07-discrimination/50-literal.ts +106 -0
  752. package/docs/concepts/01-fundamental/07-discrimination/60-shape.ts +160 -0
  753. package/docs/concepts/01-fundamental/07-discrimination/70-predicate.ts +101 -0
  754. package/docs/concepts/01-fundamental/07-discrimination/index.md +3 -0
  755. package/docs/concepts/01-fundamental/08-kind/01-identity.md +7 -0
  756. package/docs/concepts/01-fundamental/08-kind/20-metadata.md +11 -0
  757. package/docs/concepts/01-fundamental/08-kind/30-transport.md +11 -0
  758. package/docs/concepts/01-fundamental/08-kind/index.md +3 -0
  759. package/docs/concepts/01-fundamental/index.md +1 -0
  760. package/docs/concepts/02-server/10-file/10-manipulation.ts +52 -0
  761. package/docs/concepts/02-server/10-file/20-path.ts +72 -0
  762. package/docs/concepts/02-server/10-file/index.md +3 -0
  763. package/docs/concepts/02-server/20-http/10-init.ts +23 -0
  764. package/docs/concepts/02-server/20-http/20-route.ts +182 -0
  765. package/docs/concepts/02-server/20-http/30-routine.ts +188 -0
  766. package/docs/concepts/02-server/20-http/40-jwt.ts +149 -0
  767. package/docs/concepts/02-server/20-http/50-open-api.ts +44 -0
  768. package/docs/concepts/02-server/20-http/index.md +3 -0
  769. package/docs/concepts/02-server/30-environment/10-platform.ts +47 -0
  770. package/docs/concepts/02-server/30-environment/20-variable.ts +47 -0
  771. package/docs/concepts/02-server/30-environment/index.md +3 -0
  772. package/docs/concepts/02-server/40-command/10-use.ts +112 -0
  773. package/docs/concepts/02-server/40-command/20-sub-command.ts +48 -0
  774. package/docs/concepts/02-server/40-command/index.md +3 -0
  775. package/docs/concepts/02-server/index.md +1 -0
  776. package/docs/concepts/03-client/10-http/10-init.ts +52 -0
  777. package/docs/concepts/03-client/10-http/20-request.ts +254 -0
  778. package/docs/concepts/03-client/10-http/30-hook.ts +139 -0
  779. package/docs/concepts/03-client/10-http/index.md +3 -0
  780. package/docs/concepts/03-client/20-form/10-init.ts +98 -0
  781. package/docs/concepts/03-client/20-form/20-input.ts +103 -0
  782. package/docs/concepts/03-client/20-form/30-layout.ts +155 -0
  783. package/docs/concepts/03-client/20-form/40-template.ts +94 -0
  784. package/docs/concepts/03-client/20-form/50-integration.md +11 -0
  785. package/docs/concepts/03-client/20-form/examples/postModeration/ThePage.vue +32 -0
  786. package/docs/concepts/03-client/20-form/examples/postModeration/usePostModeration.ts +80 -0
  787. package/docs/concepts/03-client/20-form/index.md +3 -0
  788. package/docs/concepts/03-client/index.md +1 -0
  789. package/docs/concepts/04-tests/01-unit/10-either.ts +136 -0
  790. package/docs/concepts/04-tests/01-unit/20-server-mocking.ts +53 -0
  791. package/docs/concepts/04-tests/01-unit/index.md +3 -0
  792. package/docs/concepts/04-tests/02-e2e/10-init.ts +80 -0
  793. package/docs/concepts/04-tests/02-e2e/20-architecture.ts +76 -0
  794. package/docs/concepts/04-tests/02-e2e/30-testing.ts +90 -0
  795. package/docs/concepts/04-tests/02-e2e/index.md +3 -0
  796. package/docs/concepts/04-tests/index.md +1 -0
  797. package/docs/concepts/05-type-driven-design/01-architecture/10-boundaries.md +44 -0
  798. package/docs/concepts/05-type-driven-design/01-architecture/index.md +3 -0
  799. package/docs/concepts/05-type-driven-design/02-domains/10-entities.md +50 -0
  800. package/docs/concepts/05-type-driven-design/02-domains/20-aggregates.md +65 -0
  801. package/docs/concepts/05-type-driven-design/02-domains/30-repositories.md +35 -0
  802. package/docs/concepts/05-type-driven-design/02-domains/40-refinements.md +30 -0
  803. package/docs/concepts/05-type-driven-design/02-domains/index.md +3 -0
  804. package/docs/concepts/05-type-driven-design/03-applications/10-use-case.md +62 -0
  805. package/docs/concepts/05-type-driven-design/03-applications/20-ports.md +49 -0
  806. package/docs/concepts/05-type-driven-design/03-applications/index.md +3 -0
  807. package/docs/concepts/05-type-driven-design/04-infrastructure/10-implementation.md +47 -0
  808. package/docs/concepts/05-type-driven-design/04-infrastructure/index.md +3 -0
  809. package/docs/concepts/05-type-driven-design/fixtures/business/applications/index.ts +2 -0
  810. package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/book.ts +10 -0
  811. package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/client.ts +10 -0
  812. package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/email.ts +7 -0
  813. package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/index.ts +4 -0
  814. package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/waitingListEntry.ts +17 -0
  815. package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/clientGiveBackBook.ts +45 -0
  816. package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/clientRentBook.ts +31 -0
  817. package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/createBook.ts +32 -0
  818. package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/index.ts +4 -0
  819. package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/withdrawBook.ts +32 -0
  820. package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/clientGiveBackBook.ts +74 -0
  821. package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/clientRentBook.ts +42 -0
  822. package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/createBook.ts +33 -0
  823. package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/index.ts +4 -0
  824. package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/withdrawBook.ts +37 -0
  825. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/create.ts +33 -0
  826. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/index.ts +5 -0
  827. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/rental.ts +31 -0
  828. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/reserve.ts +37 -0
  829. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/returnBook.ts +32 -0
  830. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/withdraw.ts +21 -0
  831. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/index.ts +118 -0
  832. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/facts/giveBackBook.ts +35 -0
  833. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/facts/index.ts +2 -0
  834. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/facts/rentBook.ts +32 -0
  835. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/index.ts +59 -0
  836. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/index.ts +3 -0
  837. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/waitingListEntry/facts/cancel.ts +26 -0
  838. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/waitingListEntry/facts/create.ts +33 -0
  839. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/waitingListEntry/facts/index.ts +3 -0
  840. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/waitingListEntry/facts/prepare.ts +23 -0
  841. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/waitingListEntry/index.ts +79 -0
  842. package/docs/concepts/05-type-driven-design/fixtures/business/domains/index.ts +4 -0
  843. package/docs/concepts/05-type-driven-design/fixtures/business/domains/refinements/index.ts +1 -0
  844. package/docs/concepts/05-type-driven-design/fixtures/business/domains/refinements/refineLinkBetweenClientAndBorrowedBook.ts +34 -0
  845. package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/book.ts +16 -0
  846. package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/client.ts +7 -0
  847. package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/email.ts +12 -0
  848. package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/index.ts +4 -0
  849. package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/waitingListEntry.ts +19 -0
  850. package/docs/concepts/05-type-driven-design/fixtures/business/index.ts +2 -0
  851. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/command/clientRentBook.ts +62 -0
  852. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/command/index.ts +11 -0
  853. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/checkers/bookExist.ts +19 -0
  854. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/checkers/clientExist.ts +19 -0
  855. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/checkers/index.ts +2 -0
  856. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/main.ts +19 -0
  857. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/routes/clientGiveBackBook.ts +46 -0
  858. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/routes/clientRentBook.ts +45 -0
  859. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/routes/index.ts +2 -0
  860. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/book.ts +25 -0
  861. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/client.ts +7 -0
  862. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/email.ts +10 -0
  863. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/index.ts +4 -0
  864. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/waitingListEntry.ts +17 -0
  865. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/useCases/index.ts +13 -0
  866. package/docs/concepts/05-type-driven-design/index.md +3 -0
  867. package/docs/concepts.llms.md +521 -0
  868. package/instructions/coding-conventions.md +8 -0
  869. package/package.json +99 -3
  870. package/skills/command/SKILL.md +63 -0
  871. package/skills/command/references/examples/cli.ts +22 -0
  872. package/skills/command/references/examples/options-only.ts +27 -0
  873. package/skills/command/references/examples/preview-command.ts +57 -0
  874. package/skills/command/references/execution.md +31 -0
  875. package/skills/command/references/inputs.md +27 -0
  876. package/skills/fundamental/SKILL.md +80 -0
  877. package/skills/fundamental/references/composition.md +19 -0
  878. package/skills/fundamental/references/constraints-and-validation.md +24 -0
  879. package/skills/fundamental/references/examples/async-composition.ts +15 -0
  880. package/skills/fundamental/references/examples/cast.ts +18 -0
  881. package/skills/fundamental/references/examples/composition.ts +40 -0
  882. package/skills/fundamental/references/examples/environment-initialization.ts +19 -0
  883. package/skills/fundamental/references/examples/error-propagation.ts +24 -0
  884. package/skills/fundamental/references/examples/generic-inference.ts +31 -0
  885. package/skills/fundamental/references/examples/guaranteed-array-access.ts +31 -0
  886. package/skills/fundamental/references/examples/independent-inputs.ts +18 -0
  887. package/skills/fundamental/references/examples/infer.ts +21 -0
  888. package/skills/fundamental/references/examples/input-validation.ts +37 -0
  889. package/skills/fundamental/references/examples/iterations.ts +112 -0
  890. package/skills/fundamental/references/examples/result-selection.ts +65 -0
  891. package/skills/fundamental/references/examples/safe-declarations.ts +25 -0
  892. package/skills/fundamental/references/iterations.md +24 -0
  893. package/skills/fundamental/references/results-and-errors.md +34 -0
  894. package/skills/http-client/SKILL.md +50 -0
  895. package/skills/http-client/references/configuration.md +11 -0
  896. package/skills/http-client/references/examples/client-expectations.ts +85 -0
  897. package/skills/http-client/references/examples/client-streams.ts +74 -0
  898. package/skills/http-client/references/examples/external-client.ts +78 -0
  899. package/skills/http-client/references/hooks.md +7 -0
  900. package/skills/http-client/references/responses.md +39 -0
  901. package/skills/http-client/references/streams.md +10 -0
  902. package/skills/http-server/SKILL.md +61 -0
  903. package/skills/http-server/references/examples/authentication.ts +42 -0
  904. package/skills/http-server/references/examples/contracts.ts +19 -0
  905. package/skills/http-server/references/examples/inferred-client.ts +54 -0
  906. package/skills/http-server/references/examples/initialize.ts +29 -0
  907. package/skills/http-server/references/examples/minimal-route.ts +17 -0
  908. package/skills/http-server/references/examples/protected-route.ts +29 -0
  909. package/skills/http-server/references/examples/rename-user-route.ts +52 -0
  910. package/skills/http-server/references/examples/user-checker.ts +26 -0
  911. package/skills/http-server/references/examples/user-route.ts +45 -0
  912. package/skills/http-server/references/initialization.md +33 -0
  913. package/skills/http-server/references/reusable-flows.md +40 -0
  914. package/skills/http-server/references/routes-and-floor.md +46 -0
  915. package/skills/modeling/SKILL.md +76 -0
  916. package/skills/modeling/references/domain.md +33 -0
  917. package/skills/modeling/references/orchestration.md +36 -0
  918. package/skills/server/SKILL.md +55 -0
  919. package/skills/server/references/environment.md +30 -0
  920. package/skills/server/references/examples/environment.ts +41 -0
  921. package/skills/server/references/examples/file-structure.ts +26 -0
  922. package/skills/server/references/examples/files.ts +52 -0
  923. package/skills/server/references/files.md +38 -0
  924. package/skills/server/references/structures.md +15 -0
  925. package/skills/test/SKILL.md +70 -0
  926. package/skills/test/references/examples/results.ts +95 -0
  927. package/skills/test/references/examples/server.ts +59 -0
  928. package/skills/test/references/results.md +21 -0
  929. package/skills/test/references/server.md +17 -0
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: duplojs-command
3
+ description: "Créer, modifier ou corriger une interface en ligne de commande avec @duplojs/server/command : arguments et options typés, sous-commandes, aide et point d'entrée exécutable."
4
+ ---
5
+
6
+ # Commandes DuploJS
7
+
8
+ ## Trouver les concepts
9
+
10
+ Appliquer la démarche du skill et lire les ressources indiquées lorsque leur condition est rencontrée. Pour rechercher un concept ou un mécanisme non couvert, consulter `docs/concepts.llms.md` du package `@duplojs/agents-kit`.
11
+
12
+ Le setup indique ce chemin dans `AGENTS.md` ou `CLAUDE.md`, relativement à leur dossier. Les chemins `docs/` partent du package installé, même avec `--copy`. Les références du skill partent de son dossier ; les liens d'un document se résolvent depuis ce document.
13
+
14
+ Si le chemin du routeur manque, le retrouver depuis le projet consommateur :
15
+
16
+ ```sh
17
+ node --input-type=module -e 'import { fileURLToPath } from "node:url"; console.log(fileURLToPath(import.meta.resolve("@duplojs/agents-kit/docs/concepts.llms.md")))'
18
+ ```
19
+
20
+ ## Choisir la forme de la commande
21
+
22
+ Importer le domaine sous le namespace `DSCommand` depuis `@duplojs/server/command`, et les schémas sous `DDataStructure` depuis `@duplojs/lang/dataStructure`.
23
+
24
+ | Besoin | Construction |
25
+ | --- | --- |
26
+ | Exécuter une commande racine avec ses entrées | `DSCommand.exec` lit les arguments du processus et appelle le callback après validation. |
27
+ | Assembler plusieurs actions nommées | `DSCommand.create` définit les sous-commandes, placées dans les `subjects` du parent exécuté avec `exec`. |
28
+ | Lire uniquement les options d'un script | `DSCommand.execOptions` retourne le résultat du parsing ; le script décide ensuite de lancer le traitement. |
29
+
30
+ Identifier les entrées et leurs contraintes, déclarer leur contrat, puis écrire le callback avec les `args` et `options` inférés. Exécuter la racine une seule fois au point d'entrée. Pour une racine simple, lire la première déclaration de `docs/concepts/02-server/40-command/10-use.ts` ; pour un script sans arguments positionnels, suivre l'[exemple à options seules](references/examples/options-only.ts).
31
+
32
+ ## Déclarer les entrées
33
+
34
+ Les entrées du terminal sont externes : les faire décoder et valider par les data structures intégrées aux déclarations. Décrire les contraintes utiles, comme un entier borné ou un choix de littéraux ; ne pas remplacer cette validation par un cast ou une conversion manuelle dans le callback.
35
+
36
+ | Entrée | Déclaration et garantie |
37
+ | --- | --- |
38
+ | Valeur positionnelle | `createArgument` dans `subjects`, obligatoire par défaut. Placer les arguments `optional: true` après les obligatoires. |
39
+ | Option à valeur | `createOption` dans `options`, facultative par défaut : absence en `undefined`. `required: true` la rend obligatoire ; une présence sans valeur reste invalide. |
40
+ | Flag de présence | `createBooleanOption`, `false` si absent et `true` si présent ; ne reçoit pas de valeur. |
41
+ | Liste | `createArrayOption`, facultative par défaut ; son schéma décrit un élément. Les bornes ne rendent pas la liste obligatoire. |
42
+
43
+ Les noms doivent être uniques dans chaque ensemble d'options ou de sujets. Choisir aussi des alias sans collision et conserver `help` / `h` pour l'aide intégrée.
44
+
45
+ Pour créer ou modifier une entrée, lire [Entrées et garanties](references/inputs.md) avant de choisir sa syntaxe et son schéma. L'[exemple complet](references/examples/preview-command.ts) combine arguments, options, flag et liste bornée ; reprendre les constructions nécessaires au contrat de la commande.
46
+
47
+ ## Assembler et exécuter
48
+
49
+ Un même `subjects` contient soit des arguments, soit des sous-commandes. Le premier argument sélectionne la sous-commande ; le callback du parent ne s'exécute pas comme une étape préalable. Déclarer les options nécessaires sur chaque commande qui les consomme ; celles du parent ne sont pas héritées.
50
+
51
+ Décrire les commandes et leurs entrées pour alimenter l'aide intégrée `--help` / `-h`. Choisir `displayName` sur la racine pour identifier le programme dans l'aide et les diagnostics.
52
+
53
+ Si la tâche ajoute un arbre, modifie l'exécution ou expose un binaire, lire [Arbre, aide et résultat d'exécution](references/execution.md). L'[exemple avec sous-commande](references/examples/cli.ts) montre l'assemblage et le code de sortie sur erreur de validation.
54
+
55
+ ## Raccorder l'application et vérifier
56
+
57
+ Le callback est un point d'entrée d'infrastructure : il adapte les données validées, appelle l'application et interprète ses résultats pour le terminal. Il retourne `void` ou une promesse de `void` ; lui retourner un `Either` métier ne propage pas cet échec à `exec`. Garder l'orchestration métier dans l'application et choisir le diagnostic et la conséquence finale dans le callback.
58
+
59
+ Une erreur de validation empêche l'appel du callback ; `exec` retourne cette erreur après son affichage, sans fixer à lui seul un code de sortie d'échec. Avec `execOptions`, sélectionner l'information `success` avant de lancer le travail : l'aide est aussi un `Right`, sous `log-help`.
60
+
61
+ Pour les opérations sur les fichiers, la configuration d'environnement et les capacités du processus appelées depuis une commande, consulter le skill `duplojs-server`.
62
+
63
+ Vérifier le typage du projet, puis exercer l'aide, un appel valide, une entrée invalide et l'absence d'une entrée obligatoire. Pour un arbre, vérifier aussi le chemin complet vers la sous-commande. Utiliser des opérations sans effet ou des dépendances de test lorsque la commande agit sur l'environnement ; vérifier le code de sortie attendu en cas d'échec.
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env node
2
+
3
+ import * as DSCommand from "@duplojs/server/command";
4
+ import * as DSCommon from "@duplojs/server/common";
5
+ import * as DEither from "@duplojs/lang/either";
6
+ import { previewCommand } from "./preview-command";
7
+
8
+ const result = await DSCommand.exec(
9
+ {
10
+ displayName: "my-cli",
11
+ description: "Preview application operations",
12
+ subjects: [previewCommand],
13
+ },
14
+ () => {
15
+ console.log("Use my-cli preview --help to inspect export parameters.");
16
+ },
17
+ );
18
+
19
+ // Les diagnostics de validation ont déjà été affichés par exec.
20
+ if (DEither.isLeft(result)) {
21
+ DSCommon.exitProcess(1);
22
+ }
@@ -0,0 +1,27 @@
1
+ import * as DSCommand from "@duplojs/server/command";
2
+ import * as DSCommon from "@duplojs/server/common";
3
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
4
+ import * as DEither from "@duplojs/lang/either";
5
+ import type * as DCommon from "@duplojs/lang/common";
6
+
7
+ const result = await DSCommand.execOptions([
8
+ DSCommand.createOption("format", DDataStructure.literal(["json", "text"])),
9
+ DSCommand.createBooleanOption("verbose"),
10
+ ]);
11
+
12
+ if (DEither.isLeft(result)) {
13
+ DSCommon.exitProcess(1);
14
+ } else if (DEither.hasInformation(result, "success")) {
15
+ const options = DEither.unwrapRight(result);
16
+ type _CheckOptions = DCommon.ExpectType<
17
+ typeof options,
18
+ {
19
+ readonly format: "json" | "text" | undefined;
20
+ readonly verbose: boolean;
21
+ },
22
+ "strict"
23
+ >;
24
+
25
+ console.log(options);
26
+ }
27
+ // La branche log-help ne déclenche aucun traitement après l'aide.
@@ -0,0 +1,57 @@
1
+ import * as DSCommand from "@duplojs/server/command";
2
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
3
+ import type * as DCommon from "@duplojs/lang/common";
4
+ import * as DArray from "@duplojs/lang/array";
5
+
6
+ export const previewCommand = DSCommand.create(
7
+ "preview",
8
+ {
9
+ description: "Preview export parameters without writing files",
10
+ subjects: [
11
+ DSCommand.createArgument("source", DDataStructure.string()),
12
+ DSCommand.createArgument("destination", DDataStructure.string(), { optional: true }),
13
+ ],
14
+ options: [
15
+ DSCommand.createOption("format", DDataStructure.literal(["json", "text"]), {
16
+ required: true,
17
+ aliases: ["f"],
18
+ description: "Export format",
19
+ }),
20
+ DSCommand.createOption("limit", DDataStructure.number([
21
+ DDataStructure.integer(),
22
+ DDataStructure.greaterThanOrEqual(1),
23
+ DDataStructure.lessThanOrEqual(100),
24
+ ]), { description: "Maximum number of entries" }),
25
+ DSCommand.createBooleanOption("overwrite", { description: "Allow replacement" }),
26
+ DSCommand.createArrayOption("include", DDataStructure.string(), {
27
+ required: true,
28
+ min: 1,
29
+ max: 5,
30
+ description: "Comma-separated entries to include",
31
+ }),
32
+ ],
33
+ },
34
+ ({ args, options }) => {
35
+ type _CheckArgs = DCommon.ExpectType<
36
+ typeof args,
37
+ {
38
+ readonly source: string;
39
+ readonly destination: string | undefined;
40
+ },
41
+ "strict"
42
+ >;
43
+ type _CheckFormat = DCommon.ExpectType<typeof options.format, "json" | "text", "strict">;
44
+ type _CheckFlag = DCommon.ExpectType<typeof options.overwrite, boolean, "strict">;
45
+
46
+ // La liste obligatoire et son minimum garantissent l'accès sans absence.
47
+ const firstEntry = DArray.first(options.include);
48
+ type _CheckFirstEntry = DCommon.ExpectType<typeof firstEntry, string, "strict">;
49
+
50
+ console.log({
51
+ ...args,
52
+ ...options,
53
+ limit: options.limit ?? 20,
54
+ firstEntry,
55
+ });
56
+ },
57
+ );
@@ -0,0 +1,31 @@
1
+ # Arbre, aide et résultat d'exécution
2
+
3
+ ## Commandes nommées et racine
4
+
5
+ Une commande créée par `DSCommand.create` est une valeur à exporter puis importer dans le module qui assemble le parent. La placer dans les `subjects` du parent ; il n'y a pas de découverte automatique des fichiers. L'[exemple CLI](examples/cli.ts) importe explicitement sa sous-commande.
6
+
7
+ La sélection descend immédiatement vers la sous-commande lorsque le premier argument correspond à son nom. Le parent ne constitue donc ni un middleware ni une source d'options communes. Pour appeler `my-cli preview ...`, placer les options de `preview` après son nom et les déclarer sur cette commande. Mutualiser au besoin les déclarations d'options, puis les inclure dans les commandes concernées.
8
+
9
+ Le callback du parent traite son invocation sans sous-commande. Lui donner un comportement utile selon le projet, par exemple indiquer les actions disponibles. L'aide intégrée répond à `my-cli --help` et `my-cli preview --help` sans exécuter les callbacks correspondants.
10
+
11
+ ## Résultats et erreurs
12
+
13
+ `DSCommand.exec` lit les arguments du processus. Une erreur de décodage ou de validation est déjà affichée et revient dans un `DEither.Error<DSCommand.Error>` ; le callback de la commande sélectionnée ne s'exécute pas. Une exécution réussie, y compris l'affichage de l'aide, renvoie `DEither.Ok`.
14
+
15
+ Ce résultat ne fixe pas à lui seul un code de sortie d'échec. À la frontière du programme, le discriminer avec `DEither.isLeft` et, si le contrat du binaire le demande, terminer avec `DSCommon.exitProcess(1)` depuis `@duplojs/server/common`, comme dans l'exemple CLI. Éviter d'afficher une seconde fois le même diagnostic.
16
+
17
+ Les échecs métier restent à interpréter dans le callback qui consomme l'application : afficher le message adapté et choisir la conséquence pour le programme. Le callback attend une valeur `void` ou une promesse de `void` ; lui retourner un `Either` métier ne constitue pas un mécanisme de propagation. `exec` ne convertit pas les exceptions du callback en erreurs de validation.
18
+
19
+ Pour adapter les messages des data structures, `exec` et `execOptions` acceptent `dataStructureErrorInterpreter`.
20
+
21
+ ## Script recevant uniquement des options
22
+
23
+ `DSCommand.execOptions` renvoie un résultat à trois branches : `success` contient les options validées, `log-help` indique que l'aide a déjà été affichée, et un `Left` porte l'erreur déjà affichée. Discriminer le succès avec `DEither.hasInformation(result, "success")` avant de déballer et de lancer le travail ; une aide est aussi un `Right`.
24
+
25
+ Lire l'[exemple de script](examples/options-only.ts). Réserver cette forme aux scripts sans arguments positionnels ni arbre de commandes : elle ne vérifie pas les arguments restants après extraction des options.
26
+
27
+ ## Exposer le binaire
28
+
29
+ Réutiliser le mode d'exécution du projet. Pour un package compilé sous Node, placer un shebang `#!/usr/bin/env node` au début du point d'entrée généré et faire pointer le champ `bin` du `package.json` vers ce fichier exécutable. L'exemple `cli.ts` suppose une compilation qui conserve ce shebang. Si le projet exécute directement du TypeScript, utiliser son interpréteur et le shebang correspondants plutôt que pointer Node sur un TypeScript non pris en charge par sa configuration.
30
+
31
+ Vérifier que le fichier déclaré dans `bin` est produit, inclus dans le package distribué et exécutable. Tester ensuite la commande depuis un projet consommateur ou une installation locale du package.
@@ -0,0 +1,27 @@
1
+ # Entrées et garanties
2
+
3
+ Lire l'[exemple de prévisualisation](examples/preview-command.ts) pour combiner arguments, option obligatoire, option numérique facultative, flag et liste bornée. Les assertions `DCommon.ExpectType` y vérifient les garanties reçues dans le callback.
4
+
5
+ ## Valeurs du terminal
6
+
7
+ `createArgument` reçoit le nom, la data structure et les paramètres éventuels. L'ordre dans `subjects` fixe l'ordre des valeurs positionnelles. Une déclaration facultative ajoute `undefined` à la valeur reçue ; la data structure décrit la valeur présente.
8
+
9
+ `createOption` reçoit également un nom et une data structure. La syntaxe accepte `--format=json` et `--format json`, ainsi qu'un alias déclaré comme `-f json`. Déclarer les noms et les alias sans tirets. Le décodage depuis les chaînes est intégré, y compris vers un nombre : une data structure numérique peut donc valider un entier et ses bornes avant le callback.
10
+
11
+ Ne pas confondre une option facultative avec une valeur par défaut : appliquer la valeur de repli au résultat validé, ou rendre l'option obligatoire selon le contrat attendu.
12
+
13
+ ## Flags et listes
14
+
15
+ `createBooleanOption` modélise la présence : `--overwrite` active le flag. `--overwrite=false` est invalide ; ne pas le proposer comme syntaxe de désactivation.
16
+
17
+ `createArrayOption` reçoit le schéma d'un **élément**, puis décode les éléments d'une valeur séparée par des virgules par défaut : `--include=src,tests`. Utiliser `separator` pour changer ce séparateur. Ne pas supposer qu'une répétition du flag accumule les valeurs.
18
+
19
+ `min` et `max` contraignent la longueur d'une liste présente. Ils ne rendent pas l'option obligatoire : ajouter `required: true` si son absence doit échouer. Avec un `min` littéral de `1`, une liste obligatoire garantit un premier élément ; exploiter cette garantie sans assertion ni garde d'absence redondante.
20
+
21
+ Exemple d'appel de la sous-commande exposée par [cli.ts](examples/cli.ts) :
22
+
23
+ ```sh
24
+ my-cli preview ./src ./out --format=json --limit=20 --include=src,tests --overwrite
25
+ ```
26
+
27
+ L'exemple affiche les paramètres d'une prévisualisation ; il n'écrit aucun fichier. L'argument `destination` et l'option `limit` peuvent être omis, tandis que `source`, `format` et `include` sont requis.
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: duplojs-fundamental
3
+ description: "Appliquer les API et la philosophie fonctionnelle DuploJS pour toute tâche impliquant du code TypeScript, quel que soit le contexte d'exécution."
4
+ ---
5
+
6
+ # Fondamentaux DuploJS
7
+
8
+ ## Trouver les concepts
9
+
10
+ Appliquer la démarche du skill et lire les ressources indiquées lorsque leur condition est rencontrée. Pour rechercher un concept ou un mécanisme non couvert, consulter `docs/concepts.llms.md` du package `@duplojs/agents-kit`.
11
+
12
+ Le setup indique ce chemin dans `AGENTS.md` ou `CLAUDE.md`, relativement à leur dossier. Les chemins `docs/` partent du package installé, même avec `--copy`. Les références du skill partent de son dossier ; les liens d'un document se résolvent depuis ce document.
13
+
14
+ Si le chemin du routeur manque, le retrouver depuis le projet consommateur :
15
+
16
+ ```sh
17
+ node --input-type=module -e 'import { fileURLToPath } from "node:url"; console.log(fileURLToPath(import.meta.resolve("@duplojs/agents-kit/docs/concepts.llms.md")))'
18
+ ```
19
+
20
+ ## Utiliser les API DuploJS
21
+
22
+ Utiliser obligatoirement l'équivalent DuploJS avant une API native, tierce ou un nouvel utilitaire, y compris dans les tests. Chercher dans `lang` pour les primitives indépendantes de la plateforme, dans `server` pour les interactions avec l'environnement, puis dans les packages spécialisés.
23
+
24
+ Importer le sous-export du domaine avec son namespace long, comme dans les exemples des références.
25
+
26
+ ## Modifier à l'endroit responsable
27
+
28
+ Lire les contrats, définitions et appelants concernés ; intégrer le besoin dans la fonction, le modèle ou le module responsable. Limiter le remaniement au besoin, adapter les usages et vérifier les garanties conservées.
29
+
30
+ Privilégier fonctions pures, immutabilité et transformations explicites ; isoler les interactions avec l'environnement.
31
+
32
+ ## Laisser les types s'inférer
33
+
34
+ Laisser TypeScript inférer les valeurs et les retours des implémentations. Annoter un retour uniquement pour résoudre une récursivité ; les signatures d'interfaces et les déclarations de fonctions décrivent des contrats, pas cette annotation dans l'implémentation.
35
+
36
+ ## Composer les transformations
37
+
38
+ Si la fonction retournée par une forme curifiée ne déclare pas ses propres génériques, écrire l'appel de configuration directement dans l'étape de `DCommon.pipe` ou `asyncPipe` : son contexte permet l'inférence. Ne pas préparer cette étape dans une variable ni forcer son typage par génériques, annotations ou casts. Lire [Composition](references/composition.md) lors de l'emploi d'une forme curifiée pour distinguer les deux niveaux de génériques.
39
+
40
+ Écrire chaque argument du pipe sur sa propre ligne, avec virgule finale et fermeture séparée, même pour une donnée et une seule étape. Un appel simple peut rester direct ; préparer séparément les données de sources indépendantes avant de les combiner.
41
+
42
+ Choisir `DCommon.asyncPipe` pour attendre les étapes, ou `DEither.rightPipe` / `rightAsyncPipe` pour transmettre les valeurs des `Right` et arrêter au premier `Left`. À toute étape produisant des états à sélectionner, composer production et sélection dans un pipe interne à sa callback, avant le déballage par le pipe extérieur. Lire [Composition](references/composition.md) pour ces enchaînements de résultats.
43
+
44
+ ## Remplacer les boucles impératives
45
+
46
+ Ne pas écrire de `for`, de `while` ni leurs variantes. Utiliser :
47
+
48
+ - `DArray.reduce` pour parcourir un tableau avec un accumulateur ; `DGenerator.reduce` pour un autre itérable.
49
+ - `DGenerator.asyncReduce` pour un parcours asynchrone, y compris sur un tableau.
50
+ - `DCommon.loop` pour une répétition conditionnelle ; `DCommon.asyncLoop` en asynchrone.
51
+ - `DCommon.loopAccumulator` et `DCommon.asyncLoopAccumulator` pour transporter un accumulateur entre les tours d’une répétition conditionnelle.
52
+ - `DGenerator.loop` et `DGenerator.asyncLoop` pour produire une séquence ; leurs variantes `loopAccumulator` transportent aussi un accumulateur.
53
+
54
+ Dans les variantes `loopAccumulator`, transmettre l'état avec `next(nouvelAccumulateur)` ; `DGenerator.loop` et `DGenerator.asyncLoop` utilisent `next` pour émettre des valeurs. Dans `DCommon.loop` et `DCommon.asyncLoop`, `next` poursuit la boucle sans transmettre son argument au tour suivant. Terminer avec `exit`. Avant de créer ou remplacer une boucle, lire [Itérations](references/iterations.md) pour les contrats de ces callbacks. Pour une simple transformation ou sélection, utiliser directement `DArray.map` ou `DArray.filter`.
55
+
56
+ ## Valider les entrées et conserver les garanties
57
+
58
+ Valider les données externes avec une `DDataStructure`, via l'intégration du module récepteur lorsqu'elle existe. Décrire les contraintes utiles : bornes, entier, format ou longueur. Une contrainte déclarée ne valide rien au runtime ; dans les traitements internes, réutiliser les garanties établies.
59
+
60
+ Choisir selon la preuve disponible :
61
+
62
+ - **Littéral ou garantie compatible** : déclaration sûre ou `DCommon.cast` ; `DCommon.infer` pour conserver aussi le littéral. Ces fonctions calculent une compatibilité statique, sans validation runtime.
63
+ - **Valeur runtime sans preuve** : validation ou fabrique sûre, puis traitement du `Either`.
64
+ - **Refus du compilateur** : vérifier l'inférence et l'origine de la garantie ; ne pas la fabriquer avec `as`, `!` ou un helper sans preuve.
65
+
66
+ Lire [Contraintes et validation](references/constraints-and-validation.md) pour construire un contrat, une valeur contrainte ou résoudre un refus de compatibilité. Après chaque transformation, suivre les garanties restantes et exploiter les accès garantis sans garde redondante.
67
+
68
+ ## Représenter les résultats et propager les erreurs
69
+
70
+ Utiliser `DEither.result` lorsqu'une fonction doit établir des états sans décider de leur caractère favorable ou défavorable. L'information distingue les états ; la valeur porte leur contexte. Tous ces `Result` sont des `Right` : `isRight` ne choisit pas un état particulier.
71
+
72
+ Lorsque la fonction décide d'une réussite ou d'un refus prévisible, les exprimer en `Right` ou `Left`, y compris pour les absences et refus techniques. Si une branche renvoie un `Either`, toutes en renvoient un ; utiliser `DEither.ok()` pour une réussite sans valeur.
73
+
74
+ Chez le consommateur, sélectionner les issues qui autorisent la suite avec `keepAsRightByInformation` ; les autres deviennent des `Left` en conservant information et valeur. Utiliser un sélecteur exhaustif comme `keepAsRightSelection` ou `matchInformation` lorsqu'une nouvelle variante doit obliger à réexaminer la décision.
75
+
76
+ `unwrapRight` extrait les valeurs des `Right` et conserve les `Left` : le pattern sélection → `unwrapRight` → garde `isLeft` permet un retour anticipé sûr. Propager ou adapter les refus dans les fonctions réutilisables. Lire [Résultats et erreurs](references/results-and-errors.md) pour choisir la sélection et l'extraction.
77
+
78
+ Les exceptions imprévues des dépendances ou du runtime remontent implicitement. Réserver les `throw` explicites et `OrThrow` à la consommation finale du résultat par la frontière d'exécution. Une fonction réutilisable n'ajoute pas de `throw`, même appelée depuis cette frontière. La rareté du refus ou son coût de propagation ne changent pas cette règle.
79
+
80
+ Avant d'adapter une API qui lève sur un refus prévisible ou d'introduire `OrThrow`, lire [Résultats et erreurs](references/results-and-errors.md). Préférer les déclarations sûres pour les constantes connues.
@@ -0,0 +1,19 @@
1
+ # Composition
2
+
3
+ ## Configurer dans le contexte du pipe
4
+
5
+ La forme directe reçoit donnée et paramètres ; la forme curifiée configure les paramètres puis reçoit la donnée. Une fonction déjà unaire peut être passée directement.
6
+
7
+ Si la fonction retournée ne déclare pas ses propres génériques, ses types sont fixés à la configuration. Écrire cet appel dans l'étape du pipe apporte le contexte d'inférence ; passer ensuite une variable déjà configurée à un pipe ne le rétablit pas. Ne pas forcer cette préparation par génériques, annotations ou casts.
8
+
9
+ Pour réutiliser le traitement, écrire une fonction recevant la donnée et construisant son pipe, ou utiliser la forme directe. L'[exemple de composition](examples/composition.ts) montre les deux formes, le format multiligne et une préparation à éviter.
10
+
11
+ Préparer les données de sources indépendantes avant de les combiner ; les configurations curifiées restent dans leur pipe. Voir [deux sources indépendantes](examples/independent-inputs.ts).
12
+
13
+ ## Asynchronisme et résultats
14
+
15
+ `DCommon.asyncPipe` attend chaque étape ; un seul `await` final suffit. Voir l'[exemple asynchrone](examples/async-composition.ts).
16
+
17
+ `DEither.rightPipe` et `rightAsyncPipe` transmettent les valeurs des `Right` et arrêtent au premier `Left`. Un pipe ordinaire ne s'arrête pas automatiquement sur un `Left`. Pour sélectionner un état produit par une étape, composer production et sélection dans un `innerPipe` ou `asyncInnerPipe`, avant de rendre le résultat au pipe extérieur. Une callback construisant un `pipe` ou `asyncPipe` convient aussi.
18
+
19
+ Ce montage s'applique à toute étape ou callback imbriquée. À l'étape extérieure suivante, le `Right` serait déjà déballé, sans son information. Voir la [sélection intermédiaire](examples/result-selection.ts).
@@ -0,0 +1,24 @@
1
+ # Contraintes et validation
2
+
3
+ ## Établir la garantie
4
+
5
+ Une contrainte exprime une propriété dans les types : borne, longueur ou format. Les intersections cumulent ces garanties ; leur déclaration seule ne valide ni ne transforme une valeur.
6
+
7
+ Aux frontières, décrire le contrat complet avec une `DDataStructure` et les contraintes du besoin. Fournir cette structure au module récepteur lorsqu'il propose une intégration ; sinon, valider explicitement et traiter le `Either`. Réutiliser ensuite les garanties établies. Voir [le contrat d'entrée](examples/input-validation.ts).
8
+
9
+ ## Choisir la construction
10
+
11
+ - **Valeur connue statiquement ou garantie compatible** : `DCommon.cast` calcule les implications statiques que TypeScript ne déduit pas seul. La cible vient du type attendu ; aucune validation runtime n'est effectuée. Voir [les conversions](examples/cast.ts).
12
+ - **Littéral à conserver** : `DCommon.infer` conserve aussi le type littéral et exige une entrée littérale. Voir [une propriété littérale](examples/infer.ts).
13
+ - **Valeur runtime sans preuve** : validation par une structure, un prédicat ou une fabrique sûre. Une simple `string` ou un simple `number` ne prouve pas de contrainte.
14
+ - **Constante spécialisée** : chercher une déclaration sûre du domaine avant `OrThrow`. Vérifier la surcharge : selon l'argument, elle peut retourner une valeur ou un `Either`. Voir [les chemins et Chrono](examples/safe-declarations.ts).
15
+
16
+ Un refus de `cast` indique une compatibilité non établie : vérifier l'inférence ou le support du calcul pour une contrainte personnalisée, puis choisir une validation si nécessaire. Ne pas fabriquer la preuve avec une assertion ou un helper.
17
+
18
+ Si un paramètre générique direct ne fournit pas la cible de `cast` ou `infer`, l'expliciter avec `satisfies` après l'appel. Ce contexte ne valide rien et n'est pas nécessaire partout : comparer [le paramètre générique](examples/generic-inference.ts) et [la propriété littérale](examples/infer.ts).
19
+
20
+ ## Exploiter les garanties restantes
21
+
22
+ Suivre ce que chaque transformation préserve ou perd. Une longueur minimale garantit certains accès ; l'exploiter sans garde redondante. Elle ne garantit pas les indices au-delà du minimum, et n'enlève pas `undefined` du type propre aux éléments. Un filtre peut perdre cette garantie de longueur.
23
+
24
+ Voir [les accès garantis](examples/guaranteed-array-access.ts) pour distinguer présence prouvée et accès incertain.
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @title Composer des étapes asynchrones.
3
+ *
4
+ * Attendre le résultat final avec asyncPipe.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import * as DString from "@duplojs/lang/string";
8
+
9
+ declare function loadName(): Promise<string>;
10
+
11
+ const name = await DCommon.asyncPipe(
12
+ loadName(),
13
+ DString.trim,
14
+ DString.toLowerCase,
15
+ );
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @title Établir la compatibilité des contraintes.
3
+ *
4
+ * Convertir une garantie existante ou déclarer une valeur littérale.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import type * as DNumber from "@duplojs/lang/number";
8
+ import type * as DPath from "@duplojs/lang/path";
9
+
10
+ declare const belowTen: number & DNumber.LessThan<10>;
11
+ const belowTwentyFive: number & DNumber.LessThan<25> = DCommon.cast(belowTen);
12
+
13
+ const age: number & DNumber.GreaterThanOrEqual<18> = DCommon.cast(20);
14
+ const path: string & DPath.Path = DCommon.cast("resources/config.json");
15
+
16
+ // Une valeur incompatible ne peut pas acquérir la contrainte par cast.
17
+ // @ts-expect-error 10 ne respecte pas la borne minimale de 18.
18
+ const invalidAge: number & DNumber.GreaterThanOrEqual<18> = DCommon.cast(10);
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @title Composer une transformation.
3
+ *
4
+ * Appels curifiés dans un pipe multiligne, avec inférence depuis la donnée.
5
+ */
6
+ import * as DArray from "@duplojs/lang/array";
7
+ import * as DCommon from "@duplojs/lang/common";
8
+
9
+ declare const users: readonly {
10
+ enabled: boolean;
11
+ name: string;
12
+ }[];
13
+
14
+ const enabledUsers = DArray.filter(users, (user) => user.enabled);
15
+
16
+ // Même avec deux arguments, le pipe place la donnée et l'étape sur deux lignes.
17
+ // L'appel curifié est écrit ici, dans le contexte fourni par le pipe.
18
+ const names = DCommon.pipe(
19
+ users,
20
+ DArray.map((user) => user.name),
21
+ );
22
+
23
+ type _CheckNames = DCommon.ExpectType<typeof names, readonly string[], "strict">;
24
+
25
+ // Plusieurs transformations s'enchaînent avec leurs appels curifiés à leur place.
26
+ const enabledNames = DCommon.pipe(
27
+ users,
28
+ DArray.filter((user) => user.enabled),
29
+ DArray.map((user) => user.name),
30
+ );
31
+
32
+ type _CheckEnabledNames = DCommon.ExpectType<typeof enabledNames, readonly string[], "strict">;
33
+
34
+ // À éviter : les génériques explicites rendent la préparation typable, mais le
35
+ // pipe ajouté ensuite ne déplace pas l'appel de configuration dans son contexte.
36
+ const preparedNames = DArray.map<typeof users, string>((user) => user.name);
37
+ const namesFromPreparedStep = DCommon.pipe(
38
+ users,
39
+ preparedNames,
40
+ );
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @title Valider la configuration au démarrage.
3
+ *
4
+ * Utiliser une exception au point d’initialisation du programme.
5
+ */
6
+ import * as DSCommon from "@duplojs/server/common";
7
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
8
+
9
+ // Initialisation du programme, avant de commencer les traitements.
10
+ const environment = await DSCommon.environmentVariableOrThrow({
11
+ PORT: DDataStructure.number([
12
+ DDataStructure.integer(),
13
+ DDataStructure.greaterThanOrEqual(1),
14
+ DDataStructure.lessThanOrEqual(65535),
15
+ ]),
16
+ });
17
+
18
+ // Ici, l'initialisation exige un dossier de travail accessible pour démarrer.
19
+ const currentDirectory = DSCommon.getCurrentWorkDirectoryOrThrow();
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @title Propager les échecs dans le contrat de retour.
3
+ *
4
+ * Conserver les Left d’une opération dans une fonction réutilisable.
5
+ */
6
+ import * as DEither from "@duplojs/lang/either";
7
+ import type * as DCommon from "@duplojs/lang/common";
8
+ import * as DSFile from "@duplojs/server/file";
9
+ import type * as DPath from "@duplojs/lang/path";
10
+
11
+ async function loadText(path: string & DPath.Path) {
12
+ const result = await DSFile.readTextFile(path);
13
+ if (DEither.isLeft(result)) {
14
+ return result;
15
+ }
16
+
17
+ return DEither.right("text-loaded", DEither.unwrapRight(result));
18
+ }
19
+
20
+ type _CheckResult = DCommon.ExpectType<
21
+ Awaited<ReturnType<typeof loadText>>,
22
+ Exclude<DSFile.ReadTextFileResult, DEither.Right> | DEither.Right<"text-loaded", string>,
23
+ "strict"
24
+ >;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @title Fournir une cible de calcul en contexte générique.
3
+ *
4
+ * Utiliser satisfies avec cast et infer sur un paramètre générique direct.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import type * as DString from "@duplojs/lang/string";
8
+
9
+ declare function defineName<GenericName extends string & DString.MinCharacters<3>>(
10
+ name: GenericName,
11
+ ): GenericName;
12
+
13
+ const name = defineName(
14
+ DCommon.cast("Alice") satisfies string & DString.MinCharacters<3>,
15
+ );
16
+
17
+ const literalName = defineName(
18
+ DCommon.infer("Alice") satisfies string & DString.MinCharacters<3>,
19
+ );
20
+
21
+ type _CheckName = DCommon.ExpectType<
22
+ typeof name,
23
+ string & DString.MinCharacters<3>,
24
+ "strict"
25
+ >;
26
+
27
+ type _CheckLiteralName = DCommon.ExpectType<
28
+ typeof literalName,
29
+ "Alice" & DString.MinCharacters<3>,
30
+ "strict"
31
+ >;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @title Exploiter une taille minimale de tableau.
3
+ *
4
+ * Distinguer les indices garantis et les accès potentiellement absents.
5
+ */
6
+ import * as DArray from "@duplojs/lang/array";
7
+ import type * as DCommon from "@duplojs/lang/common";
8
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
9
+ import * as DEither from "@duplojs/lang/either";
10
+
11
+ const namesStructure = DDataStructure.array(
12
+ DDataStructure.string(),
13
+ [DDataStructure.minElements(2)],
14
+ );
15
+
16
+ declare const input: unknown;
17
+ const result = namesStructure.check(input);
18
+ if (DEither.isRight(result)) {
19
+ const names = DEither.unwrapRight(result);
20
+ const first = DArray.first(names);
21
+ const last = DArray.last(names);
22
+ const atZero = DArray.at(names, 0);
23
+ const atOne = DArray.at(names, 1);
24
+ const atTwo = DArray.at(names, 2);
25
+
26
+ type _CheckAccess = DCommon.ExpectType<
27
+ [typeof first, typeof last, typeof atZero, typeof atOne, typeof atTwo],
28
+ [string, string, string, string, string | undefined],
29
+ "strict"
30
+ >;
31
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @title Combiner des sources indépendantes.
3
+ *
4
+ * Préparer les arguments séparément avant leur combinaison.
5
+ */
6
+ import * as DArray from "@duplojs/lang/array";
7
+ import * as DString from "@duplojs/lang/string";
8
+
9
+ declare const users: readonly {
10
+ enabled: boolean;
11
+ name: string;
12
+ }[];
13
+ declare const rawSearch: string;
14
+ declare function searchUsers(names: readonly string[], search: string): readonly string[];
15
+
16
+ const names = DArray.map(users, (user) => user.name);
17
+ const search = DString.trim(rawSearch);
18
+ const matches = searchUsers(names, search);
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @title Conserver une valeur littérale contrainte.
3
+ *
4
+ * Garder le littéral lors de la déclaration d’une propriété.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import type * as DString from "@duplojs/lang/string";
8
+
9
+ declare function defineSettings<GenericSettings extends {
10
+ name: string & DString.MinCharacters<3>;
11
+ }>(settings: GenericSettings): GenericSettings;
12
+
13
+ const settings = defineSettings({
14
+ name: DCommon.infer("Alice"),
15
+ });
16
+
17
+ type _CheckName = DCommon.ExpectType<
18
+ typeof settings.name,
19
+ "Alice" & DString.MinCharacters<3>,
20
+ "strict"
21
+ >;
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @title Valider un contrat de données.
3
+ *
4
+ * Décrire les contraintes puis discriminer le résultat de validation.
5
+ */
6
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
7
+ import * as DEither from "@duplojs/lang/either";
8
+ import type * as DCommon from "@duplojs/lang/common";
9
+
10
+ const requestStructure = DDataStructure.object({
11
+ name: DDataStructure.string([
12
+ DDataStructure.minCharacters(3),
13
+ DDataStructure.maxCharacters(40),
14
+ ]),
15
+ age: DDataStructure.number([
16
+ DDataStructure.integer(),
17
+ DDataStructure.greaterThanOrEqual(18),
18
+ ]),
19
+ tags: DDataStructure.array(
20
+ DDataStructure.string(),
21
+ [DDataStructure.minElements(2)],
22
+ ),
23
+ });
24
+
25
+ type Request = DDataStructure.StructureValue<typeof requestStructure>;
26
+
27
+ function validateRequest(input: unknown) {
28
+ return requestStructure.check(input);
29
+ }
30
+
31
+ declare const input: unknown;
32
+ const result = validateRequest(input);
33
+ if (DEither.isRight(result)) {
34
+ const request = DEither.unwrapRight(result);
35
+
36
+ type _CheckRequest = DCommon.ExpectType<typeof request, Request, "strict">;
37
+ }