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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (853) hide show
  1. package/README.md +73 -2
  2. package/dist/bin/index.d.ts +2 -0
  3. package/dist/bin/index.mjs +7 -0
  4. package/dist/bin/installSkill/index.d.ts +2 -0
  5. package/dist/bin/installSkill/index.mjs +25 -0
  6. package/dist/bin/installSkill/skill.d.ts +28 -0
  7. package/dist/bin/installSkill/skill.mjs +58 -0
  8. package/dist/bin/packagePath.d.ts +2 -0
  9. package/dist/bin/packagePath.mjs +12 -0
  10. package/dist/bin/setup/index.d.ts +12 -0
  11. package/dist/bin/setup/index.mjs +33 -0
  12. package/dist/bin/setup/instructions.d.ts +8 -0
  13. package/dist/bin/setup/instructions.mjs +27 -0
  14. package/dist/index.cjs +1 -0
  15. package/dist/index.d.ts +1 -0
  16. package/dist/index.mjs +0 -0
  17. package/docs/API/10-lang/10-array/10-at.ts +65 -0
  18. package/docs/API/10-lang/10-array/10-chunk.ts +42 -0
  19. package/docs/API/10-lang/10-array/10-coalescing.ts +20 -0
  20. package/docs/API/10-lang/10-array/10-concat.ts +34 -0
  21. package/docs/API/10-lang/10-array/10-copyWithin.ts +34 -0
  22. package/docs/API/10-lang/10-array/10-every.ts +25 -0
  23. package/docs/API/10-lang/10-array/10-fill.ts +34 -0
  24. package/docs/API/10-lang/10-array/10-fillAll.ts +34 -0
  25. package/docs/API/10-lang/10-array/10-filter.ts +43 -0
  26. package/docs/API/10-lang/10-array/10-find.ts +33 -0
  27. package/docs/API/10-lang/10-array/10-findAndReplace.ts +35 -0
  28. package/docs/API/10-lang/10-array/10-findAndSpliceDelete.ts +35 -0
  29. package/docs/API/10-lang/10-array/10-findAndSpliceInsert.ts +35 -0
  30. package/docs/API/10-lang/10-array/10-findAndSpliceReplace.ts +24 -0
  31. package/docs/API/10-lang/10-array/10-findDuplicates.ts +19 -0
  32. package/docs/API/10-lang/10-array/10-findIndex.ts +25 -0
  33. package/docs/API/10-lang/10-array/10-findLast.ts +33 -0
  34. package/docs/API/10-lang/10-array/10-findLastIndex.ts +25 -0
  35. package/docs/API/10-lang/10-array/10-first.ts +21 -0
  36. package/docs/API/10-lang/10-array/10-flat.ts +22 -0
  37. package/docs/API/10-lang/10-array/10-flatMap.ts +24 -0
  38. package/docs/API/10-lang/10-array/10-from.ts +25 -0
  39. package/docs/API/10-lang/10-array/10-group.ts +27 -0
  40. package/docs/API/10-lang/10-array/10-groupOutput.ts +30 -0
  41. package/docs/API/10-lang/10-array/10-includes.ts +24 -0
  42. package/docs/API/10-lang/10-array/10-indexOf.ts +24 -0
  43. package/docs/API/10-lang/10-array/10-insert.ts +34 -0
  44. package/docs/API/10-lang/10-array/10-is.ts +29 -0
  45. package/docs/API/10-lang/10-array/10-isLastIndex.ts +24 -0
  46. package/docs/API/10-lang/10-array/10-last.ts +21 -0
  47. package/docs/API/10-lang/10-array/10-lastIndexOf.ts +24 -0
  48. package/docs/API/10-lang/10-array/10-length.ts +28 -0
  49. package/docs/API/10-lang/10-array/10-lengthEqual.ts +39 -0
  50. package/docs/API/10-lang/10-array/10-map.ts +34 -0
  51. package/docs/API/10-lang/10-array/10-maxElements.ts +44 -0
  52. package/docs/API/10-lang/10-array/10-minElements.ts +44 -0
  53. package/docs/API/10-lang/10-array/10-notIncludes.ts +24 -0
  54. package/docs/API/10-lang/10-array/10-pop.ts +23 -0
  55. package/docs/API/10-lang/10-array/10-prepend.ts +34 -0
  56. package/docs/API/10-lang/10-array/10-push.ts +34 -0
  57. package/docs/API/10-lang/10-array/10-reduce.ts +28 -0
  58. package/docs/API/10-lang/10-array/10-reduceFrom.ts +16 -0
  59. package/docs/API/10-lang/10-array/10-reduceRight.ts +28 -0
  60. package/docs/API/10-lang/10-array/10-reverse.ts +25 -0
  61. package/docs/API/10-lang/10-array/10-select.ts +26 -0
  62. package/docs/API/10-lang/10-array/10-set.ts +24 -0
  63. package/docs/API/10-lang/10-array/10-shift.ts +23 -0
  64. package/docs/API/10-lang/10-array/10-slice.ts +24 -0
  65. package/docs/API/10-lang/10-array/10-some.ts +25 -0
  66. package/docs/API/10-lang/10-array/10-sort.ts +34 -0
  67. package/docs/API/10-lang/10-array/10-spliceDelete.ts +34 -0
  68. package/docs/API/10-lang/10-array/10-spliceInsert.ts +34 -0
  69. package/docs/API/10-lang/10-array/10-spliceReplace.ts +24 -0
  70. package/docs/API/10-lang/10-array/10-unshift.ts +34 -0
  71. package/docs/API/10-lang/10-array/index.llms.md +220 -0
  72. package/docs/API/10-lang/10-array/index.md +3 -0
  73. package/docs/API/10-lang/10-chrono/10-addDays.ts +25 -0
  74. package/docs/API/10-lang/10-chrono/10-addHours.ts +25 -0
  75. package/docs/API/10-lang/10-chrono/10-addMilliseconds.ts +25 -0
  76. package/docs/API/10-lang/10-chrono/10-addMinutes.ts +25 -0
  77. package/docs/API/10-lang/10-chrono/10-addMonths.ts +25 -0
  78. package/docs/API/10-lang/10-chrono/10-addSeconds.ts +25 -0
  79. package/docs/API/10-lang/10-chrono/10-addTime.ts +38 -0
  80. package/docs/API/10-lang/10-chrono/10-addWeeks.ts +25 -0
  81. package/docs/API/10-lang/10-chrono/10-addYears.ts +25 -0
  82. package/docs/API/10-lang/10-chrono/10-applyTimezone.ts +29 -0
  83. package/docs/API/10-lang/10-chrono/10-betweenThanDate.ts +27 -0
  84. package/docs/API/10-lang/10-chrono/10-betweenThanOrEqualDate.ts +27 -0
  85. package/docs/API/10-lang/10-chrono/10-betweenThanOrEqualTime.ts +27 -0
  86. package/docs/API/10-lang/10-chrono/10-betweenThanTime.ts +27 -0
  87. package/docs/API/10-lang/10-chrono/10-closestTo.ts +45 -0
  88. package/docs/API/10-lang/10-chrono/10-computeTime.ts +35 -0
  89. package/docs/API/10-lang/10-chrono/10-createDate.ts +122 -0
  90. package/docs/API/10-lang/10-chrono/10-createDateOrThrow.ts +39 -0
  91. package/docs/API/10-lang/10-chrono/10-createTime.ts +86 -0
  92. package/docs/API/10-lang/10-chrono/10-createTimeOrThrow.ts +28 -0
  93. package/docs/API/10-lang/10-chrono/10-eachDate.ts +67 -0
  94. package/docs/API/10-lang/10-chrono/10-equalDate.ts +26 -0
  95. package/docs/API/10-lang/10-chrono/10-equalTime.ts +26 -0
  96. package/docs/API/10-lang/10-chrono/10-formatDate.ts +43 -0
  97. package/docs/API/10-lang/10-chrono/10-formatTime.ts +37 -0
  98. package/docs/API/10-lang/10-chrono/10-getDayOfMonth.ts +37 -0
  99. package/docs/API/10-lang/10-chrono/10-getDayOfWeek.ts +30 -0
  100. package/docs/API/10-lang/10-chrono/10-getDayOfYear.ts +28 -0
  101. package/docs/API/10-lang/10-chrono/10-getDifference.ts +29 -0
  102. package/docs/API/10-lang/10-chrono/10-getFirstDayOfMonth.ts +24 -0
  103. package/docs/API/10-lang/10-chrono/10-getFirstDayOfWeek.ts +24 -0
  104. package/docs/API/10-lang/10-chrono/10-getHour.ts +28 -0
  105. package/docs/API/10-lang/10-chrono/10-getLastDayOfMonth.ts +24 -0
  106. package/docs/API/10-lang/10-chrono/10-getLastDayOfWeek.ts +24 -0
  107. package/docs/API/10-lang/10-chrono/10-getMilliseconds.ts +24 -0
  108. package/docs/API/10-lang/10-chrono/10-getMinute.ts +27 -0
  109. package/docs/API/10-lang/10-chrono/10-getMonth.ts +27 -0
  110. package/docs/API/10-lang/10-chrono/10-getSecond.ts +27 -0
  111. package/docs/API/10-lang/10-chrono/10-getTimezoneOffset.ts +28 -0
  112. package/docs/API/10-lang/10-chrono/10-getWeekOfYear.ts +27 -0
  113. package/docs/API/10-lang/10-chrono/10-getYear.ts +27 -0
  114. package/docs/API/10-lang/10-chrono/10-greaterThanDate.ts +26 -0
  115. package/docs/API/10-lang/10-chrono/10-greaterThanOrEqualDate.ts +26 -0
  116. package/docs/API/10-lang/10-chrono/10-greaterThanOrEqualTime.ts +26 -0
  117. package/docs/API/10-lang/10-chrono/10-greaterThanTime.ts +26 -0
  118. package/docs/API/10-lang/10-chrono/10-isDate.ts +36 -0
  119. package/docs/API/10-lang/10-chrono/10-isSafeTimeValue.ts +19 -0
  120. package/docs/API/10-lang/10-chrono/10-isSafeTimestamp.ts +19 -0
  121. package/docs/API/10-lang/10-chrono/10-isSerializedTheDate.ts +41 -0
  122. package/docs/API/10-lang/10-chrono/10-isSerializedTheTime.ts +41 -0
  123. package/docs/API/10-lang/10-chrono/10-isTime.ts +36 -0
  124. package/docs/API/10-lang/10-chrono/10-lessThanDate.ts +26 -0
  125. package/docs/API/10-lang/10-chrono/10-lessThanOrEqualDate.ts +26 -0
  126. package/docs/API/10-lang/10-chrono/10-lessThanOrEqualTime.ts +26 -0
  127. package/docs/API/10-lang/10-chrono/10-lessThanTime.ts +26 -0
  128. package/docs/API/10-lang/10-chrono/10-makeSafeTimeValue.ts +19 -0
  129. package/docs/API/10-lang/10-chrono/10-makeSafeTimestamp.ts +19 -0
  130. package/docs/API/10-lang/10-chrono/10-maxDate.ts +19 -0
  131. package/docs/API/10-lang/10-chrono/10-maxTime.ts +19 -0
  132. package/docs/API/10-lang/10-chrono/10-minDate.ts +19 -0
  133. package/docs/API/10-lang/10-chrono/10-minTime.ts +19 -0
  134. package/docs/API/10-lang/10-chrono/10-now.ts +13 -0
  135. package/docs/API/10-lang/10-chrono/10-round.ts +41 -0
  136. package/docs/API/10-lang/10-chrono/10-serialize.ts +23 -0
  137. package/docs/API/10-lang/10-chrono/10-sortDates.ts +30 -0
  138. package/docs/API/10-lang/10-chrono/10-sortTimes.ts +29 -0
  139. package/docs/API/10-lang/10-chrono/10-subtractDays.ts +25 -0
  140. package/docs/API/10-lang/10-chrono/10-subtractHours.ts +25 -0
  141. package/docs/API/10-lang/10-chrono/10-subtractMilliseconds.ts +25 -0
  142. package/docs/API/10-lang/10-chrono/10-subtractMinutes.ts +25 -0
  143. package/docs/API/10-lang/10-chrono/10-subtractMonths.ts +25 -0
  144. package/docs/API/10-lang/10-chrono/10-subtractSeconds.ts +25 -0
  145. package/docs/API/10-lang/10-chrono/10-subtractTime.ts +38 -0
  146. package/docs/API/10-lang/10-chrono/10-subtractWeeks.ts +25 -0
  147. package/docs/API/10-lang/10-chrono/10-subtractYears.ts +25 -0
  148. package/docs/API/10-lang/10-chrono/10-toDateISOString.ts +17 -0
  149. package/docs/API/10-lang/10-chrono/10-toNative.ts +25 -0
  150. package/docs/API/10-lang/10-chrono/10-toTimeValue.ts +17 -0
  151. package/docs/API/10-lang/10-chrono/10-toTimestamp.ts +17 -0
  152. package/docs/API/10-lang/10-chrono/10-today.ts +13 -0
  153. package/docs/API/10-lang/10-chrono/10-tomorrow.ts +13 -0
  154. package/docs/API/10-lang/10-chrono/10-yesterday.ts +13 -0
  155. package/docs/API/10-lang/10-chrono/index.llms.md +332 -0
  156. package/docs/API/10-lang/10-chrono/index.md +3 -0
  157. package/docs/API/10-lang/10-common/10-and.ts +51 -0
  158. package/docs/API/10-lang/10-common/10-asserts.ts +13 -0
  159. package/docs/API/10-lang/10-common/10-asyncInnerPipe.ts +23 -0
  160. package/docs/API/10-lang/10-common/10-asyncLoop.ts +25 -0
  161. package/docs/API/10-lang/10-common/10-asyncPipe.ts +21 -0
  162. package/docs/API/10-lang/10-common/10-callThen.ts +22 -0
  163. package/docs/API/10-lang/10-common/10-cast.ts +16 -0
  164. package/docs/API/10-lang/10-common/10-clone.ts +12 -0
  165. package/docs/API/10-lang/10-common/10-createAsyncRetry.ts +34 -0
  166. package/docs/API/10-lang/10-common/10-createBuilder.ts +19 -0
  167. package/docs/API/10-lang/10-common/10-createEnum.ts +25 -0
  168. package/docs/API/10-lang/10-common/10-createExternalPromise.ts +13 -0
  169. package/docs/API/10-lang/10-common/10-createFormData.ts +16 -0
  170. package/docs/API/10-lang/10-common/10-createInterpolation.ts +12 -0
  171. package/docs/API/10-lang/10-common/10-createQueue.ts +17 -0
  172. package/docs/API/10-lang/10-common/10-createTransformer.ts +16 -0
  173. package/docs/API/10-lang/10-common/10-detachObjectMethod.ts +20 -0
  174. package/docs/API/10-lang/10-common/10-equal.ts +37 -0
  175. package/docs/API/10-lang/10-common/10-escapeRegExp.ts +11 -0
  176. package/docs/API/10-lang/10-common/10-falsy.ts +31 -0
  177. package/docs/API/10-lang/10-common/10-forward.ts +11 -0
  178. package/docs/API/10-lang/10-common/10-forwardAsserts.ts +17 -0
  179. package/docs/API/10-lang/10-common/10-forwardLog.ts +11 -0
  180. package/docs/API/10-lang/10-common/10-infer.ts +16 -0
  181. package/docs/API/10-lang/10-common/10-innerPipe.ts +23 -0
  182. package/docs/API/10-lang/10-common/10-instanceOf.ts +34 -0
  183. package/docs/API/10-lang/10-common/10-isType.ts +35 -0
  184. package/docs/API/10-lang/10-common/10-justExec.ts +28 -0
  185. package/docs/API/10-lang/10-common/10-justReturn.ts +19 -0
  186. package/docs/API/10-lang/10-common/10-loop.ts +20 -0
  187. package/docs/API/10-lang/10-common/10-memo.ts +12 -0
  188. package/docs/API/10-lang/10-common/10-memoObject.ts +11 -0
  189. package/docs/API/10-lang/10-common/10-memoPromise.ts +16 -0
  190. package/docs/API/10-lang/10-common/10-or.ts +43 -0
  191. package/docs/API/10-lang/10-common/10-pipe.ts +21 -0
  192. package/docs/API/10-lang/10-common/10-pipeCall.ts +20 -0
  193. package/docs/API/10-lang/10-common/10-prepareAsyncPipe.ts +20 -0
  194. package/docs/API/10-lang/10-common/10-preparePipe.ts +20 -0
  195. package/docs/API/10-lang/10-common/10-promiseAll.ts +16 -0
  196. package/docs/API/10-lang/10-common/10-promiseObject.ts +22 -0
  197. package/docs/API/10-lang/10-common/10-removeConstraint.ts +13 -0
  198. package/docs/API/10-lang/10-common/10-shameOnYou.ts +20 -0
  199. package/docs/API/10-lang/10-common/10-simpleClone.ts +12 -0
  200. package/docs/API/10-lang/10-common/10-stringToBytes.ts +16 -0
  201. package/docs/API/10-lang/10-common/10-stringToMillisecond.ts +17 -0
  202. package/docs/API/10-lang/10-common/10-tap.ts +28 -0
  203. package/docs/API/10-lang/10-common/10-timeout.ts +11 -0
  204. package/docs/API/10-lang/10-common/10-toCurriedPredicate.ts +28 -0
  205. package/docs/API/10-lang/10-common/10-toJSON.ts +15 -0
  206. package/docs/API/10-lang/10-common/10-toNative.ts +15 -0
  207. package/docs/API/10-lang/10-common/10-toRegExp.ts +17 -0
  208. package/docs/API/10-lang/10-common/10-transformer.ts +21 -0
  209. package/docs/API/10-lang/10-common/10-truthy.ts +31 -0
  210. package/docs/API/10-lang/10-common/10-useAsyncRetry.ts +31 -0
  211. package/docs/API/10-lang/10-common/10-when.ts +27 -0
  212. package/docs/API/10-lang/10-common/10-whenElse.ts +28 -0
  213. package/docs/API/10-lang/10-common/10-whenNot.ts +57 -0
  214. package/docs/API/10-lang/10-common/index.llms.md +232 -0
  215. package/docs/API/10-lang/10-common/index.md +3 -0
  216. package/docs/API/10-lang/10-dataStructure/10-absolutePath.ts +25 -0
  217. package/docs/API/10-lang/10-dataStructure/10-allowedCharacters.ts +25 -0
  218. package/docs/API/10-lang/10-dataStructure/10-array.ts +23 -0
  219. package/docs/API/10-lang/10-dataStructure/10-arrayLengthEqual.ts +25 -0
  220. package/docs/API/10-lang/10-dataStructure/10-betweenThan.ts +25 -0
  221. package/docs/API/10-lang/10-dataStructure/10-betweenThanOrEqual.ts +25 -0
  222. package/docs/API/10-lang/10-dataStructure/10-bigint.ts +22 -0
  223. package/docs/API/10-lang/10-dataStructure/10-boolean.ts +22 -0
  224. package/docs/API/10-lang/10-dataStructure/10-createCodec.ts +45 -0
  225. package/docs/API/10-lang/10-dataStructure/10-createCodecs.ts +134 -0
  226. package/docs/API/10-lang/10-dataStructure/10-createErrorInterpreter.ts +74 -0
  227. package/docs/API/10-lang/10-dataStructure/10-date.ts +23 -0
  228. package/docs/API/10-lang/10-dataStructure/10-email.ts +25 -0
  229. package/docs/API/10-lang/10-dataStructure/10-endsWith.ts +24 -0
  230. package/docs/API/10-lang/10-dataStructure/10-even.ts +25 -0
  231. package/docs/API/10-lang/10-dataStructure/10-extend.ts +27 -0
  232. package/docs/API/10-lang/10-dataStructure/10-greaterThan.ts +25 -0
  233. package/docs/API/10-lang/10-dataStructure/10-greaterThanOrEqual.ts +25 -0
  234. package/docs/API/10-lang/10-dataStructure/10-include.ts +24 -0
  235. package/docs/API/10-lang/10-dataStructure/10-integer.ts +25 -0
  236. package/docs/API/10-lang/10-dataStructure/10-isNullStructure.ts +12 -0
  237. package/docs/API/10-lang/10-dataStructure/10-isNullable.ts +12 -0
  238. package/docs/API/10-lang/10-dataStructure/10-isOptional.ts +12 -0
  239. package/docs/API/10-lang/10-dataStructure/10-isUndefinedStructure.ts +12 -0
  240. package/docs/API/10-lang/10-dataStructure/10-lazy.ts +23 -0
  241. package/docs/API/10-lang/10-dataStructure/10-lessThan.ts +25 -0
  242. package/docs/API/10-lang/10-dataStructure/10-lessThanOrEqual.ts +25 -0
  243. package/docs/API/10-lang/10-dataStructure/10-literal.ts +19 -0
  244. package/docs/API/10-lang/10-dataStructure/10-maxCharacters.ts +25 -0
  245. package/docs/API/10-lang/10-dataStructure/10-maxElements.ts +25 -0
  246. package/docs/API/10-lang/10-dataStructure/10-minCharacters.ts +25 -0
  247. package/docs/API/10-lang/10-dataStructure/10-minElements.ts +25 -0
  248. package/docs/API/10-lang/10-dataStructure/10-multipleOf.ts +25 -0
  249. package/docs/API/10-lang/10-dataStructure/10-negative.ts +25 -0
  250. package/docs/API/10-lang/10-dataStructure/10-notEmpty.ts +25 -0
  251. package/docs/API/10-lang/10-dataStructure/10-notZero.ts +25 -0
  252. package/docs/API/10-lang/10-dataStructure/10-null.ts +22 -0
  253. package/docs/API/10-lang/10-dataStructure/10-nullable.ts +19 -0
  254. package/docs/API/10-lang/10-dataStructure/10-number.ts +22 -0
  255. package/docs/API/10-lang/10-dataStructure/10-numberInString.ts +25 -0
  256. package/docs/API/10-lang/10-dataStructure/10-object.ts +25 -0
  257. package/docs/API/10-lang/10-dataStructure/10-odd.ts +25 -0
  258. package/docs/API/10-lang/10-dataStructure/10-optional.ts +19 -0
  259. package/docs/API/10-lang/10-dataStructure/10-partial.ts +23 -0
  260. package/docs/API/10-lang/10-dataStructure/10-path.ts +25 -0
  261. package/docs/API/10-lang/10-dataStructure/10-positive.ts +25 -0
  262. package/docs/API/10-lang/10-dataStructure/10-record.ts +22 -0
  263. package/docs/API/10-lang/10-dataStructure/10-refine.ts +27 -0
  264. package/docs/API/10-lang/10-dataStructure/10-regex.ts +24 -0
  265. package/docs/API/10-lang/10-dataStructure/10-required.ts +21 -0
  266. package/docs/API/10-lang/10-dataStructure/10-safe.ts +25 -0
  267. package/docs/API/10-lang/10-dataStructure/10-segmentPath.ts +25 -0
  268. package/docs/API/10-lang/10-dataStructure/10-startsWith.ts +24 -0
  269. package/docs/API/10-lang/10-dataStructure/10-strictNegative.ts +25 -0
  270. package/docs/API/10-lang/10-dataStructure/10-strictPositive.ts +25 -0
  271. package/docs/API/10-lang/10-dataStructure/10-string.ts +22 -0
  272. package/docs/API/10-lang/10-dataStructure/10-stringLengthEqual.ts +25 -0
  273. package/docs/API/10-lang/10-dataStructure/10-time.ts +23 -0
  274. package/docs/API/10-lang/10-dataStructure/10-trimmed.ts +25 -0
  275. package/docs/API/10-lang/10-dataStructure/10-typeStructureIdentifier.ts +33 -0
  276. package/docs/API/10-lang/10-dataStructure/10-undefined.ts +22 -0
  277. package/docs/API/10-lang/10-dataStructure/10-union.ts +24 -0
  278. package/docs/API/10-lang/10-dataStructure/10-unwrapLazy.ts +17 -0
  279. package/docs/API/10-lang/10-dataStructure/10-url.ts +25 -0
  280. package/docs/API/10-lang/10-dataStructure/10-uuid.ts +25 -0
  281. package/docs/API/10-lang/10-dataStructure/index.llms.md +264 -0
  282. package/docs/API/10-lang/10-dataStructure/index.md +3 -0
  283. package/docs/API/10-lang/10-either/10-asyncGroup.ts +44 -0
  284. package/docs/API/10-lang/10-either/10-asyncSafeCallback.ts +25 -0
  285. package/docs/API/10-lang/10-either/10-error.ts +12 -0
  286. package/docs/API/10-lang/10-either/10-expect.ts +13 -0
  287. package/docs/API/10-lang/10-either/10-extractErrorInLeft.ts +45 -0
  288. package/docs/API/10-lang/10-either/10-fail.ts +12 -0
  289. package/docs/API/10-lang/10-either/10-forwardAssertsSelection.ts +28 -0
  290. package/docs/API/10-lang/10-either/10-group.ts +58 -0
  291. package/docs/API/10-lang/10-either/10-hasInformation.ts +30 -0
  292. package/docs/API/10-lang/10-either/10-isLeft.ts +25 -0
  293. package/docs/API/10-lang/10-either/10-isRight.ts +25 -0
  294. package/docs/API/10-lang/10-either/10-isSelected.ts +41 -0
  295. package/docs/API/10-lang/10-either/10-keepAsRightByInformation.ts +29 -0
  296. package/docs/API/10-lang/10-either/10-keepAsRightSelection.ts +23 -0
  297. package/docs/API/10-lang/10-either/10-left.ts +13 -0
  298. package/docs/API/10-lang/10-either/10-matchInformation.ts +28 -0
  299. package/docs/API/10-lang/10-either/10-matchInformationCombination.ts +61 -0
  300. package/docs/API/10-lang/10-either/10-matchInformationCombinationOtherwise.ts +62 -0
  301. package/docs/API/10-lang/10-either/10-matchInformationOtherwise.ts +29 -0
  302. package/docs/API/10-lang/10-either/10-none.ts +12 -0
  303. package/docs/API/10-lang/10-either/10-ok.ts +12 -0
  304. package/docs/API/10-lang/10-either/10-result.ts +18 -0
  305. package/docs/API/10-lang/10-either/10-rewriteInformation.ts +24 -0
  306. package/docs/API/10-lang/10-either/10-right.ts +13 -0
  307. package/docs/API/10-lang/10-either/10-rightAsyncPipe.ts +70 -0
  308. package/docs/API/10-lang/10-either/10-rightPipe.ts +72 -0
  309. package/docs/API/10-lang/10-either/10-safeCallback.ts +29 -0
  310. package/docs/API/10-lang/10-either/10-some.ts +12 -0
  311. package/docs/API/10-lang/10-either/10-success.ts +12 -0
  312. package/docs/API/10-lang/10-either/10-toMaybe.ts +53 -0
  313. package/docs/API/10-lang/10-either/10-unwrapByInformation.ts +20 -0
  314. package/docs/API/10-lang/10-either/10-unwrapByInformationOrThrow.ts +19 -0
  315. package/docs/API/10-lang/10-either/10-unwrapLeft.ts +14 -0
  316. package/docs/API/10-lang/10-either/10-unwrapLeftOrThrow.ts +17 -0
  317. package/docs/API/10-lang/10-either/10-unwrapOr.ts +17 -0
  318. package/docs/API/10-lang/10-either/10-unwrapOtherwise.ts +20 -0
  319. package/docs/API/10-lang/10-either/10-unwrapRight.ts +14 -0
  320. package/docs/API/10-lang/10-either/10-unwrapRightOrThrow.ts +17 -0
  321. package/docs/API/10-lang/10-either/10-unwrapSelection.ts +26 -0
  322. package/docs/API/10-lang/10-either/10-unwrapSelectionOrThrow.ts +19 -0
  323. package/docs/API/10-lang/10-either/10-whenHasInformation.ts +36 -0
  324. package/docs/API/10-lang/10-either/10-whenHasInformationOtherwise.ts +29 -0
  325. package/docs/API/10-lang/10-either/10-whenIsLeft.ts +20 -0
  326. package/docs/API/10-lang/10-either/10-whenIsLeftOtherwise.ts +27 -0
  327. package/docs/API/10-lang/10-either/10-whenIsRight.ts +20 -0
  328. package/docs/API/10-lang/10-either/10-whenIsRightOtherwise.ts +26 -0
  329. package/docs/API/10-lang/10-either/10-whenIsSelected.ts +33 -0
  330. package/docs/API/10-lang/10-either/10-whenIsSelectedOtherwise.ts +35 -0
  331. package/docs/API/10-lang/10-either/index.llms.md +196 -0
  332. package/docs/API/10-lang/10-either/index.md +3 -0
  333. package/docs/API/10-lang/10-generator/10-asyncChunk.ts +55 -0
  334. package/docs/API/10-lang/10-generator/10-asyncConcat.ts +43 -0
  335. package/docs/API/10-lang/10-generator/10-asyncFilter.ts +41 -0
  336. package/docs/API/10-lang/10-generator/10-asyncFlat.ts +37 -0
  337. package/docs/API/10-lang/10-generator/10-asyncGroup.ts +65 -0
  338. package/docs/API/10-lang/10-generator/10-asyncLoop.ts +59 -0
  339. package/docs/API/10-lang/10-generator/10-asyncMap.ts +48 -0
  340. package/docs/API/10-lang/10-generator/10-asyncReduce.ts +63 -0
  341. package/docs/API/10-lang/10-generator/10-chunk.ts +44 -0
  342. package/docs/API/10-lang/10-generator/10-concat.ts +37 -0
  343. package/docs/API/10-lang/10-generator/10-createExternalAsyncGenerator.ts +29 -0
  344. package/docs/API/10-lang/10-generator/10-execute.ts +44 -0
  345. package/docs/API/10-lang/10-generator/10-filter.ts +35 -0
  346. package/docs/API/10-lang/10-generator/10-flat.ts +25 -0
  347. package/docs/API/10-lang/10-generator/10-group.ts +44 -0
  348. package/docs/API/10-lang/10-generator/10-groupOutput.ts +48 -0
  349. package/docs/API/10-lang/10-generator/10-loop.ts +55 -0
  350. package/docs/API/10-lang/10-generator/10-map.ts +35 -0
  351. package/docs/API/10-lang/10-generator/10-reduce.ts +51 -0
  352. package/docs/API/10-lang/10-generator/10-reduceFrom.ts +30 -0
  353. package/docs/API/10-lang/10-generator/index.llms.md +84 -0
  354. package/docs/API/10-lang/10-generator/index.md +3 -0
  355. package/docs/API/10-lang/10-number/10-betweenThan.ts +43 -0
  356. package/docs/API/10-lang/10-number/10-betweenThanOrEqual.ts +43 -0
  357. package/docs/API/10-lang/10-number/10-greaterThan.ts +35 -0
  358. package/docs/API/10-lang/10-number/10-greaterThanOrEqual.ts +35 -0
  359. package/docs/API/10-lang/10-number/10-isEven.ts +33 -0
  360. package/docs/API/10-lang/10-number/10-isInteger.ts +33 -0
  361. package/docs/API/10-lang/10-number/10-isMultipleOf.ts +35 -0
  362. package/docs/API/10-lang/10-number/10-isNegative.ts +33 -0
  363. package/docs/API/10-lang/10-number/10-isNotZero.ts +33 -0
  364. package/docs/API/10-lang/10-number/10-isOdd.ts +33 -0
  365. package/docs/API/10-lang/10-number/10-isPositive.ts +33 -0
  366. package/docs/API/10-lang/10-number/10-isSafe.ts +33 -0
  367. package/docs/API/10-lang/10-number/10-isStrictNegative.ts +34 -0
  368. package/docs/API/10-lang/10-number/10-isStrictPositive.ts +33 -0
  369. package/docs/API/10-lang/10-number/10-lessThan.ts +35 -0
  370. package/docs/API/10-lang/10-number/10-lessThanOrEqual.ts +35 -0
  371. package/docs/API/10-lang/10-number/10-max.ts +19 -0
  372. package/docs/API/10-lang/10-number/10-maxOf.ts +19 -0
  373. package/docs/API/10-lang/10-number/10-min.ts +19 -0
  374. package/docs/API/10-lang/10-number/10-minOf.ts +19 -0
  375. package/docs/API/10-lang/10-number/10-sort.ts +19 -0
  376. package/docs/API/10-lang/10-number/10-sum.ts +19 -0
  377. package/docs/API/10-lang/10-number/index.llms.md +92 -0
  378. package/docs/API/10-lang/10-number/index.md +3 -0
  379. package/docs/API/10-lang/10-object/10-assign.ts +41 -0
  380. package/docs/API/10-lang/10-object/10-countKeys.ts +15 -0
  381. package/docs/API/10-lang/10-object/10-deepDiscriminate.ts +63 -0
  382. package/docs/API/10-lang/10-object/10-deepOverride.ts +35 -0
  383. package/docs/API/10-lang/10-object/10-discriminate.ts +55 -0
  384. package/docs/API/10-lang/10-object/10-discriminateEntryKey.ts +43 -0
  385. package/docs/API/10-lang/10-object/10-discriminateEntryValue.ts +44 -0
  386. package/docs/API/10-lang/10-object/10-entries.ts +19 -0
  387. package/docs/API/10-lang/10-object/10-entry.ts +17 -0
  388. package/docs/API/10-lang/10-object/10-fromEntries.ts +23 -0
  389. package/docs/API/10-lang/10-object/10-getDeepProperty.ts +26 -0
  390. package/docs/API/10-lang/10-object/10-getProperty.ts +24 -0
  391. package/docs/API/10-lang/10-object/10-hasKeys.ts +43 -0
  392. package/docs/API/10-lang/10-object/10-isSimple.ts +38 -0
  393. package/docs/API/10-lang/10-object/10-keys.ts +19 -0
  394. package/docs/API/10-lang/10-object/10-omit.ts +39 -0
  395. package/docs/API/10-lang/10-object/10-override.ts +24 -0
  396. package/docs/API/10-lang/10-object/10-pick.ts +41 -0
  397. package/docs/API/10-lang/10-object/10-to.ts +40 -0
  398. package/docs/API/10-lang/10-object/10-transformProperties.ts +43 -0
  399. package/docs/API/10-lang/10-object/10-transformProperty.ts +39 -0
  400. package/docs/API/10-lang/10-object/10-values.ts +19 -0
  401. package/docs/API/10-lang/10-object/index.llms.md +92 -0
  402. package/docs/API/10-lang/10-object/index.md +3 -0
  403. package/docs/API/10-lang/10-path/10-computeRelative.ts +19 -0
  404. package/docs/API/10-lang/10-path/10-concatSegment.ts +28 -0
  405. package/docs/API/10-lang/10-path/10-create.ts +21 -0
  406. package/docs/API/10-lang/10-path/10-createAbsolute.ts +21 -0
  407. package/docs/API/10-lang/10-path/10-createAbsoluteOrThrow.ts +16 -0
  408. package/docs/API/10-lang/10-path/10-createMatcher.ts +50 -0
  409. package/docs/API/10-lang/10-path/10-createOrThrow.ts +16 -0
  410. package/docs/API/10-lang/10-path/10-createSegment.ts +26 -0
  411. package/docs/API/10-lang/10-path/10-createSegmentOrThrow.ts +16 -0
  412. package/docs/API/10-lang/10-path/10-declareAbsolutePath.ts +15 -0
  413. package/docs/API/10-lang/10-path/10-declarePath.ts +15 -0
  414. package/docs/API/10-lang/10-path/10-declareSegment.ts +15 -0
  415. package/docs/API/10-lang/10-path/10-getBaseName.ts +22 -0
  416. package/docs/API/10-lang/10-path/10-getExtensionName.ts +22 -0
  417. package/docs/API/10-lang/10-path/10-getParentFolderPath.ts +25 -0
  418. package/docs/API/10-lang/10-path/10-is.ts +46 -0
  419. package/docs/API/10-lang/10-path/10-isAbsolute.ts +46 -0
  420. package/docs/API/10-lang/10-path/10-isSegment.ts +42 -0
  421. package/docs/API/10-lang/10-path/10-normalize.ts +26 -0
  422. package/docs/API/10-lang/10-path/10-resolveFrom.ts +37 -0
  423. package/docs/API/10-lang/10-path/10-resolveRelative.ts +23 -0
  424. package/docs/API/10-lang/10-path/index.llms.md +88 -0
  425. package/docs/API/10-lang/10-path/index.md +3 -0
  426. package/docs/API/10-lang/10-pattern/10-exhaustive.ts +26 -0
  427. package/docs/API/10-lang/10-pattern/10-isMatch.ts +72 -0
  428. package/docs/API/10-lang/10-pattern/10-match.ts +133 -0
  429. package/docs/API/10-lang/10-pattern/10-matchWithEntity.ts +49 -0
  430. package/docs/API/10-lang/10-pattern/10-matchWithEntityOtherwise.ts +55 -0
  431. package/docs/API/10-lang/10-pattern/10-matchWithError.ts +45 -0
  432. package/docs/API/10-lang/10-pattern/10-matchWithErrorOtherwise.ts +48 -0
  433. package/docs/API/10-lang/10-pattern/10-matchWithFact.ts +49 -0
  434. package/docs/API/10-lang/10-pattern/10-matchWithFactOtherwise.ts +49 -0
  435. package/docs/API/10-lang/10-pattern/10-matchWithNumber.ts +33 -0
  436. package/docs/API/10-lang/10-pattern/10-matchWithNumberOtherwise.ts +37 -0
  437. package/docs/API/10-lang/10-pattern/10-matchWithString.ts +34 -0
  438. package/docs/API/10-lang/10-pattern/10-matchWithStringOtherwise.ts +35 -0
  439. package/docs/API/10-lang/10-pattern/10-matchWithTaggedObject.ts +43 -0
  440. package/docs/API/10-lang/10-pattern/10-matchWithTaggedObjectOtherwise.ts +49 -0
  441. package/docs/API/10-lang/10-pattern/10-otherwise.ts +28 -0
  442. package/docs/API/10-lang/10-pattern/10-union.ts +47 -0
  443. package/docs/API/10-lang/10-pattern/10-when.ts +46 -0
  444. package/docs/API/10-lang/10-pattern/10-whenNot.ts +123 -0
  445. package/docs/API/10-lang/10-pattern/index.llms.md +80 -0
  446. package/docs/API/10-lang/10-pattern/index.md +3 -0
  447. package/docs/API/10-lang/10-printer/10-bold.ts +12 -0
  448. package/docs/API/10-lang/10-printer/10-colorized.ts +18 -0
  449. package/docs/API/10-lang/10-printer/10-colorizedBold.ts +18 -0
  450. package/docs/API/10-lang/10-printer/10-indent.ts +20 -0
  451. package/docs/API/10-lang/10-printer/10-primitives.md +11 -0
  452. package/docs/API/10-lang/10-printer/10-render.ts +29 -0
  453. package/docs/API/10-lang/10-printer/10-renderLine.ts +12 -0
  454. package/docs/API/10-lang/10-printer/10-renderParagraph.ts +16 -0
  455. package/docs/API/10-lang/10-printer/index.llms.md +37 -0
  456. package/docs/API/10-lang/10-printer/index.md +3 -0
  457. package/docs/API/10-lang/10-string/10-at.ts +18 -0
  458. package/docs/API/10-lang/10-string/10-capitalize.ts +18 -0
  459. package/docs/API/10-lang/10-string/10-charAt.ts +18 -0
  460. package/docs/API/10-lang/10-string/10-concat.ts +18 -0
  461. package/docs/API/10-lang/10-string/10-endsWith.ts +33 -0
  462. package/docs/API/10-lang/10-string/10-extract.ts +18 -0
  463. package/docs/API/10-lang/10-string/10-extractAll.ts +18 -0
  464. package/docs/API/10-lang/10-string/10-first.ts +17 -0
  465. package/docs/API/10-lang/10-string/10-includes.ts +33 -0
  466. package/docs/API/10-lang/10-string/10-indexOf.ts +17 -0
  467. package/docs/API/10-lang/10-string/10-isComposedOf.ts +33 -0
  468. package/docs/API/10-lang/10-string/10-isEmail.ts +56 -0
  469. package/docs/API/10-lang/10-string/10-isIn.ts +34 -0
  470. package/docs/API/10-lang/10-string/10-isKeyof.ts +37 -0
  471. package/docs/API/10-lang/10-string/10-isNotEmpty.ts +32 -0
  472. package/docs/API/10-lang/10-string/10-isNumber.ts +32 -0
  473. package/docs/API/10-lang/10-string/10-isTrimmed.ts +33 -0
  474. package/docs/API/10-lang/10-string/10-isUrl.ts +31 -0
  475. package/docs/API/10-lang/10-string/10-isUuid.ts +31 -0
  476. package/docs/API/10-lang/10-string/10-join.ts +18 -0
  477. package/docs/API/10-lang/10-string/10-last.ts +17 -0
  478. package/docs/API/10-lang/10-string/10-lastIndexOf.ts +17 -0
  479. package/docs/API/10-lang/10-string/10-length.ts +18 -0
  480. package/docs/API/10-lang/10-string/10-lengthEqual.ts +33 -0
  481. package/docs/API/10-lang/10-string/10-maxCharacters.ts +33 -0
  482. package/docs/API/10-lang/10-string/10-minCharacters.ts +33 -0
  483. package/docs/API/10-lang/10-string/10-normalize.ts +17 -0
  484. package/docs/API/10-lang/10-string/10-padEnd.ts +17 -0
  485. package/docs/API/10-lang/10-string/10-padStart.ts +17 -0
  486. package/docs/API/10-lang/10-string/10-pop.ts +17 -0
  487. package/docs/API/10-lang/10-string/10-prepend.ts +17 -0
  488. package/docs/API/10-lang/10-string/10-repeat.ts +17 -0
  489. package/docs/API/10-lang/10-string/10-replace.ts +18 -0
  490. package/docs/API/10-lang/10-string/10-replaceAll.ts +17 -0
  491. package/docs/API/10-lang/10-string/10-search.ts +17 -0
  492. package/docs/API/10-lang/10-string/10-shift.ts +17 -0
  493. package/docs/API/10-lang/10-string/10-slice.ts +17 -0
  494. package/docs/API/10-lang/10-string/10-sort.ts +19 -0
  495. package/docs/API/10-lang/10-string/10-sortCompare.ts +17 -0
  496. package/docs/API/10-lang/10-string/10-split.ts +34 -0
  497. package/docs/API/10-lang/10-string/10-startsWith.ts +33 -0
  498. package/docs/API/10-lang/10-string/10-stringify.ts +11 -0
  499. package/docs/API/10-lang/10-string/10-substring.ts +17 -0
  500. package/docs/API/10-lang/10-string/10-test.ts +17 -0
  501. package/docs/API/10-lang/10-string/10-to.ts +11 -0
  502. package/docs/API/10-lang/10-string/10-toLowerCase.ts +17 -0
  503. package/docs/API/10-lang/10-string/10-toUpperCase.ts +17 -0
  504. package/docs/API/10-lang/10-string/10-trim.ts +17 -0
  505. package/docs/API/10-lang/10-string/10-trimEnd.ts +17 -0
  506. package/docs/API/10-lang/10-string/10-trimStart.ts +17 -0
  507. package/docs/API/10-lang/10-string/10-uncapitalize.ts +17 -0
  508. package/docs/API/10-lang/10-string/index.llms.md +208 -0
  509. package/docs/API/10-lang/10-string/index.md +3 -0
  510. package/docs/API/10-lang/10-tuple/10-from.ts +50 -0
  511. package/docs/API/10-lang/10-tuple/10-map.ts +37 -0
  512. package/docs/API/10-lang/10-tuple/index.llms.md +12 -0
  513. package/docs/API/10-lang/10-tuple/index.md +3 -0
  514. package/docs/API/10-lang/index.md +3 -0
  515. package/docs/API/40-json-web-token/10-tokenHandler/10-createTokenHandler.ts +160 -0
  516. package/docs/API/40-json-web-token/10-tokenHandler/index.llms.md +8 -0
  517. package/docs/API/40-json-web-token/10-tokenHandler/index.md +3 -0
  518. package/docs/API/40-json-web-token/20-signer/10-createHS256.ts +24 -0
  519. package/docs/API/40-json-web-token/20-signer/10-createHS512.ts +24 -0
  520. package/docs/API/40-json-web-token/20-signer/10-createRS256.ts +28 -0
  521. package/docs/API/40-json-web-token/20-signer/10-createRS512.ts +28 -0
  522. package/docs/API/40-json-web-token/20-signer/10-factory.ts +29 -0
  523. package/docs/API/40-json-web-token/20-signer/index.llms.md +24 -0
  524. package/docs/API/40-json-web-token/20-signer/index.md +3 -0
  525. package/docs/API/40-json-web-token/30-cipher/10-createRSAOAEP.ts +26 -0
  526. package/docs/API/40-json-web-token/30-cipher/10-createRSAOAEP256.ts +26 -0
  527. package/docs/API/40-json-web-token/30-cipher/10-factory.ts +29 -0
  528. package/docs/API/40-json-web-token/30-cipher/index.llms.md +16 -0
  529. package/docs/API/40-json-web-token/30-cipher/index.md +3 -0
  530. package/docs/API/40-json-web-token/40-utils/10-AES_GCM.decrypt.ts +17 -0
  531. package/docs/API/40-json-web-token/40-utils/10-AES_GCM.encrypt.ts +11 -0
  532. package/docs/API/40-json-web-token/40-utils/10-AES_GCM.generateInitializationVector.ts +9 -0
  533. package/docs/API/40-json-web-token/40-utils/10-HMAC.sign.ts +13 -0
  534. package/docs/API/40-json-web-token/40-utils/10-HMAC.verify.ts +11 -0
  535. package/docs/API/40-json-web-token/40-utils/10-RSA.sign.ts +14 -0
  536. package/docs/API/40-json-web-token/40-utils/10-RSA.verify.ts +13 -0
  537. package/docs/API/40-json-web-token/40-utils/10-RSA_OAEP.decrypt.ts +13 -0
  538. package/docs/API/40-json-web-token/40-utils/10-RSA_OAEP.encrypt.ts +10 -0
  539. package/docs/API/40-json-web-token/40-utils/10-decodeBase64.ts +9 -0
  540. package/docs/API/40-json-web-token/40-utils/10-decodeBase64Url.ts +9 -0
  541. package/docs/API/40-json-web-token/40-utils/10-decodeText.ts +9 -0
  542. package/docs/API/40-json-web-token/40-utils/10-encodeBase64.ts +9 -0
  543. package/docs/API/40-json-web-token/40-utils/10-encodeBase64Url.ts +9 -0
  544. package/docs/API/40-json-web-token/40-utils/10-encodeText.ts +9 -0
  545. package/docs/API/40-json-web-token/40-utils/10-isBase64Url.ts +11 -0
  546. package/docs/API/40-json-web-token/40-utils/10-jsonParse.ts +11 -0
  547. package/docs/API/40-json-web-token/40-utils/10-pemToBinary.ts +11 -0
  548. package/docs/API/40-json-web-token/40-utils/index.llms.md +76 -0
  549. package/docs/API/40-json-web-token/40-utils/index.md +3 -0
  550. package/docs/API/40-json-web-token/index.md +3 -0
  551. package/docs/API/50-form/10-vue/10-construction/10-createForm.ts +48 -0
  552. package/docs/API/50-form/10-vue/10-construction/10-createFormField.ts +66 -0
  553. package/docs/API/50-form/10-vue/10-construction/10-createGridTemplates.ts +39 -0
  554. package/docs/API/50-form/10-vue/10-construction/10-createInput.ts +46 -0
  555. package/docs/API/50-form/10-vue/10-construction/10-createTemplate.ts +36 -0
  556. package/docs/API/50-form/10-vue/10-construction/fixtures/AddressInput.vue +19 -0
  557. package/docs/API/50-form/10-vue/10-construction/index.llms.md +24 -0
  558. package/docs/API/50-form/10-vue/10-construction/index.md +3 -0
  559. package/docs/API/50-form/10-vue/20-layouts/10-useCheckLayout.ts +40 -0
  560. package/docs/API/50-form/10-vue/20-layouts/10-useDisabledLayout.ts +34 -0
  561. package/docs/API/50-form/10-vue/20-layouts/10-useMultiLayout.ts +32 -0
  562. package/docs/API/50-form/10-vue/20-layouts/10-useRepeatLayout.ts +34 -0
  563. package/docs/API/50-form/10-vue/20-layouts/10-useSectionLayout.ts +20 -0
  564. package/docs/API/50-form/10-vue/20-layouts/10-useSlotLayout.ts +37 -0
  565. package/docs/API/50-form/10-vue/20-layouts/10-useStepLayout.ts +31 -0
  566. package/docs/API/50-form/10-vue/20-layouts/10-useUnionLayout.ts +48 -0
  567. package/docs/API/50-form/10-vue/20-layouts/index.llms.md +36 -0
  568. package/docs/API/50-form/10-vue/20-layouts/index.md +3 -0
  569. package/docs/API/50-form/10-vue/30-designSystem/10-useCheckbox.ts +13 -0
  570. package/docs/API/50-form/10-vue/30-designSystem/10-useCheckboxPolicy.ts +18 -0
  571. package/docs/API/50-form/10-vue/30-designSystem/10-useDateInput.ts +20 -0
  572. package/docs/API/50-form/10-vue/30-designSystem/10-useDualRangeInput.ts +27 -0
  573. package/docs/API/50-form/10-vue/30-designSystem/10-useFileInput.ts +23 -0
  574. package/docs/API/50-form/10-vue/30-designSystem/10-useNumberInput.ts +18 -0
  575. package/docs/API/50-form/10-vue/30-designSystem/10-useRadioGroup.ts +31 -0
  576. package/docs/API/50-form/10-vue/30-designSystem/10-useRangeDateInput.ts +23 -0
  577. package/docs/API/50-form/10-vue/30-designSystem/10-useRangeInput.ts +18 -0
  578. package/docs/API/50-form/10-vue/30-designSystem/10-useRangeTimeInput.ts +23 -0
  579. package/docs/API/50-form/10-vue/30-designSystem/10-useSelectInput.ts +31 -0
  580. package/docs/API/50-form/10-vue/30-designSystem/10-useTextInput.ts +14 -0
  581. package/docs/API/50-form/10-vue/30-designSystem/10-useTextareaInput.ts +14 -0
  582. package/docs/API/50-form/10-vue/30-designSystem/10-useTimeInput.ts +20 -0
  583. package/docs/API/50-form/10-vue/30-designSystem/20-components.md +11 -0
  584. package/docs/API/50-form/10-vue/30-designSystem/index.llms.md +65 -0
  585. package/docs/API/50-form/10-vue/30-designSystem/index.md +3 -0
  586. package/docs/API/50-form/10-vue/fixtures/templates.ts +20 -0
  587. package/docs/API/50-form/10-vue/index.md +3 -0
  588. package/docs/API/50-form/index.md +3 -0
  589. package/docs/API/60-playwright/10-construction/10-createComponent.ts +47 -0
  590. package/docs/API/60-playwright/10-construction/10-createComponentInteraction.ts +28 -0
  591. package/docs/API/60-playwright/10-construction/10-createPage.ts +34 -0
  592. package/docs/API/60-playwright/10-construction/10-createStepWrapper.ts +23 -0
  593. package/docs/API/60-playwright/10-construction/10-createWebsite.ts +57 -0
  594. package/docs/API/60-playwright/10-construction/10-initClient.ts +38 -0
  595. package/docs/API/60-playwright/10-construction/index.llms.md +28 -0
  596. package/docs/API/60-playwright/10-construction/index.md +3 -0
  597. package/docs/API/60-playwright/20-actions/10-check.ts +9 -0
  598. package/docs/API/60-playwright/20-actions/10-clear.ts +9 -0
  599. package/docs/API/60-playwright/20-actions/10-click.ts +9 -0
  600. package/docs/API/60-playwright/20-actions/10-dragTo.ts +10 -0
  601. package/docs/API/60-playwright/20-actions/10-extractContent.ts +10 -0
  602. package/docs/API/60-playwright/20-actions/10-fill.ts +9 -0
  603. package/docs/API/60-playwright/20-actions/10-focus.ts +9 -0
  604. package/docs/API/60-playwright/20-actions/10-forceClick.ts +10 -0
  605. package/docs/API/60-playwright/20-actions/10-hover.ts +9 -0
  606. package/docs/API/60-playwright/20-actions/10-press.ts +9 -0
  607. package/docs/API/60-playwright/20-actions/10-selectOption.ts +10 -0
  608. package/docs/API/60-playwright/20-actions/10-type.ts +10 -0
  609. package/docs/API/60-playwright/20-actions/10-uncheck.ts +9 -0
  610. package/docs/API/60-playwright/20-actions/10-withStep.ts +10 -0
  611. package/docs/API/60-playwright/20-actions/index.llms.md +60 -0
  612. package/docs/API/60-playwright/20-actions/index.md +3 -0
  613. package/docs/API/60-playwright/30-assertions/10-toBeBusy.ts +10 -0
  614. package/docs/API/60-playwright/30-assertions/10-toBeChecked.ts +9 -0
  615. package/docs/API/60-playwright/30-assertions/10-toBeDisabled.ts +9 -0
  616. package/docs/API/60-playwright/30-assertions/10-toBeEnabled.ts +9 -0
  617. package/docs/API/60-playwright/30-assertions/10-toBeHidden.ts +9 -0
  618. package/docs/API/60-playwright/30-assertions/10-toBeNotBusy.ts +10 -0
  619. package/docs/API/60-playwright/30-assertions/10-toBeVisible.ts +10 -0
  620. package/docs/API/60-playwright/30-assertions/10-toContainText.ts +9 -0
  621. package/docs/API/60-playwright/30-assertions/10-toHaveAttribute.ts +12 -0
  622. package/docs/API/60-playwright/30-assertions/10-toHaveClass.ts +9 -0
  623. package/docs/API/60-playwright/30-assertions/10-toHaveNoText.ts +10 -0
  624. package/docs/API/60-playwright/30-assertions/10-toHaveQuantity.ts +20 -0
  625. package/docs/API/60-playwright/30-assertions/10-toHaveText.ts +9 -0
  626. package/docs/API/60-playwright/30-assertions/10-toHaveValue.ts +9 -0
  627. package/docs/API/60-playwright/30-assertions/10-withStep.ts +10 -0
  628. package/docs/API/60-playwright/30-assertions/index.llms.md +64 -0
  629. package/docs/API/60-playwright/30-assertions/index.md +3 -0
  630. package/docs/API/60-playwright/fixtures/component.ts +44 -0
  631. package/docs/API/60-playwright/index.md +3 -0
  632. package/docs/API/index.md +3 -0
  633. package/docs/API.llms.md +115 -0
  634. package/docs/concepts/01-fundamental/01-constraint/01-use.ts +22 -0
  635. package/docs/concepts/01-fundamental/01-constraint/10-built-in-constraint.ts +37 -0
  636. package/docs/concepts/01-fundamental/01-constraint/20-manipulation.ts +41 -0
  637. package/docs/concepts/01-fundamental/01-constraint/30-cast.ts +66 -0
  638. package/docs/concepts/01-fundamental/01-constraint/40-custom-constraint.ts +45 -0
  639. package/docs/concepts/01-fundamental/01-constraint/index.md +3 -0
  640. package/docs/concepts/01-fundamental/02-currying/01-use.ts +38 -0
  641. package/docs/concepts/01-fundamental/02-currying/10-built-in-function.ts +190 -0
  642. package/docs/concepts/01-fundamental/02-currying/20-inner-pipe.ts +48 -0
  643. package/docs/concepts/01-fundamental/02-currying/30-async-pipe.ts +51 -0
  644. package/docs/concepts/01-fundamental/02-currying/index.md +3 -0
  645. package/docs/concepts/01-fundamental/03-either/01-use.ts +21 -0
  646. package/docs/concepts/01-fundamental/03-either/10-discrimination.ts +90 -0
  647. package/docs/concepts/01-fundamental/03-either/20-exhaustive-handling.ts +90 -0
  648. package/docs/concepts/01-fundamental/03-either/30-composition.ts +80 -0
  649. package/docs/concepts/01-fundamental/03-either/40-result-adaptation.ts +46 -0
  650. package/docs/concepts/01-fundamental/03-either/50-external-results.ts +72 -0
  651. package/docs/concepts/01-fundamental/03-either/60-contextual-state.ts +40 -0
  652. package/docs/concepts/01-fundamental/03-either/index.md +3 -0
  653. package/docs/concepts/01-fundamental/04-data-structure/01-use.ts +22 -0
  654. package/docs/concepts/01-fundamental/04-data-structure/10-structure.ts +244 -0
  655. package/docs/concepts/01-fundamental/04-data-structure/20-constraint.ts +86 -0
  656. package/docs/concepts/01-fundamental/04-data-structure/30-validation.ts +104 -0
  657. package/docs/concepts/01-fundamental/04-data-structure/40-codecs.ts +162 -0
  658. package/docs/concepts/01-fundamental/04-data-structure/50-recursive.ts +57 -0
  659. package/docs/concepts/01-fundamental/04-data-structure/60-interpret-error.ts +123 -0
  660. package/docs/concepts/01-fundamental/04-data-structure/index.md +3 -0
  661. package/docs/concepts/01-fundamental/05-chrono/01-use.ts +14 -0
  662. package/docs/concepts/01-fundamental/05-chrono/10-creation.ts +85 -0
  663. package/docs/concepts/01-fundamental/05-chrono/20-manipulation.ts +110 -0
  664. package/docs/concepts/01-fundamental/05-chrono/30-serialized.ts +89 -0
  665. package/docs/concepts/01-fundamental/05-chrono/40-timezone.ts +85 -0
  666. package/docs/concepts/01-fundamental/05-chrono/index.md +3 -0
  667. package/docs/concepts/01-fundamental/06-modeling/10-new-type.ts +42 -0
  668. package/docs/concepts/01-fundamental/06-modeling/20-entity.ts +191 -0
  669. package/docs/concepts/01-fundamental/06-modeling/30-tagged-object.ts +204 -0
  670. package/docs/concepts/01-fundamental/06-modeling/40-entity-lifecycle.ts +272 -0
  671. package/docs/concepts/01-fundamental/06-modeling/50-evidence.ts +94 -0
  672. package/docs/concepts/01-fundamental/06-modeling/60-signed-function.ts +26 -0
  673. package/docs/concepts/01-fundamental/06-modeling/index.md +3 -0
  674. package/docs/concepts/01-fundamental/07-discrimination/10-entity.ts +136 -0
  675. package/docs/concepts/01-fundamental/07-discrimination/20-fact.ts +158 -0
  676. package/docs/concepts/01-fundamental/07-discrimination/30-tagged-object.ts +137 -0
  677. package/docs/concepts/01-fundamental/07-discrimination/40-error.ts +73 -0
  678. package/docs/concepts/01-fundamental/07-discrimination/50-literal.ts +106 -0
  679. package/docs/concepts/01-fundamental/07-discrimination/60-shape.ts +160 -0
  680. package/docs/concepts/01-fundamental/07-discrimination/70-predicate.ts +101 -0
  681. package/docs/concepts/01-fundamental/07-discrimination/index.md +3 -0
  682. package/docs/concepts/01-fundamental/08-kind/01-identity.md +7 -0
  683. package/docs/concepts/01-fundamental/08-kind/20-metadata.md +11 -0
  684. package/docs/concepts/01-fundamental/08-kind/30-transport.md +11 -0
  685. package/docs/concepts/01-fundamental/08-kind/index.md +3 -0
  686. package/docs/concepts/01-fundamental/index.md +1 -0
  687. package/docs/concepts/02-server/10-file/10-manipulation.ts +52 -0
  688. package/docs/concepts/02-server/10-file/20-path.ts +72 -0
  689. package/docs/concepts/02-server/10-file/index.md +3 -0
  690. package/docs/concepts/02-server/20-http/10-init.ts +23 -0
  691. package/docs/concepts/02-server/20-http/20-route.ts +182 -0
  692. package/docs/concepts/02-server/20-http/30-routine.ts +188 -0
  693. package/docs/concepts/02-server/20-http/40-jwt.ts +149 -0
  694. package/docs/concepts/02-server/20-http/50-open-api.ts +44 -0
  695. package/docs/concepts/02-server/20-http/index.md +3 -0
  696. package/docs/concepts/02-server/30-environment/10-platform.ts +47 -0
  697. package/docs/concepts/02-server/30-environment/20-variable.ts +47 -0
  698. package/docs/concepts/02-server/30-environment/index.md +3 -0
  699. package/docs/concepts/02-server/40-command/10-use.ts +112 -0
  700. package/docs/concepts/02-server/40-command/20-sub-command.ts +48 -0
  701. package/docs/concepts/02-server/40-command/index.md +3 -0
  702. package/docs/concepts/02-server/index.md +1 -0
  703. package/docs/concepts/03-client/10-http/10-init.ts +52 -0
  704. package/docs/concepts/03-client/10-http/20-request.ts +254 -0
  705. package/docs/concepts/03-client/10-http/30-hook.ts +139 -0
  706. package/docs/concepts/03-client/10-http/index.md +3 -0
  707. package/docs/concepts/03-client/20-form/10-init.ts +98 -0
  708. package/docs/concepts/03-client/20-form/20-input.ts +103 -0
  709. package/docs/concepts/03-client/20-form/30-layout.ts +155 -0
  710. package/docs/concepts/03-client/20-form/40-template.ts +94 -0
  711. package/docs/concepts/03-client/20-form/50-integration.md +11 -0
  712. package/docs/concepts/03-client/20-form/examples/postModeration/ThePage.vue +32 -0
  713. package/docs/concepts/03-client/20-form/examples/postModeration/usePostModeration.ts +80 -0
  714. package/docs/concepts/03-client/20-form/index.md +3 -0
  715. package/docs/concepts/03-client/index.md +1 -0
  716. package/docs/concepts/04-tests/01-unit/10-either.ts +136 -0
  717. package/docs/concepts/04-tests/01-unit/20-server-mocking.ts +53 -0
  718. package/docs/concepts/04-tests/01-unit/index.md +3 -0
  719. package/docs/concepts/04-tests/02-e2e/10-init.ts +80 -0
  720. package/docs/concepts/04-tests/02-e2e/20-architecture.ts +76 -0
  721. package/docs/concepts/04-tests/02-e2e/30-testing.ts +90 -0
  722. package/docs/concepts/04-tests/02-e2e/index.md +3 -0
  723. package/docs/concepts/04-tests/index.md +1 -0
  724. package/docs/concepts/05-type-driven-design/01-architecture/10-boundaries.md +44 -0
  725. package/docs/concepts/05-type-driven-design/01-architecture/index.md +3 -0
  726. package/docs/concepts/05-type-driven-design/02-domains/10-entities.md +50 -0
  727. package/docs/concepts/05-type-driven-design/02-domains/20-aggregates.md +65 -0
  728. package/docs/concepts/05-type-driven-design/02-domains/30-repositories.md +35 -0
  729. package/docs/concepts/05-type-driven-design/02-domains/40-refinements.md +30 -0
  730. package/docs/concepts/05-type-driven-design/02-domains/index.md +3 -0
  731. package/docs/concepts/05-type-driven-design/03-applications/10-use-case.md +62 -0
  732. package/docs/concepts/05-type-driven-design/03-applications/20-ports.md +49 -0
  733. package/docs/concepts/05-type-driven-design/03-applications/index.md +3 -0
  734. package/docs/concepts/05-type-driven-design/04-infrastructure/10-implementation.md +47 -0
  735. package/docs/concepts/05-type-driven-design/04-infrastructure/index.md +3 -0
  736. package/docs/concepts/05-type-driven-design/fixtures/business/applications/index.ts +2 -0
  737. package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/book.ts +10 -0
  738. package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/client.ts +10 -0
  739. package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/email.ts +7 -0
  740. package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/index.ts +4 -0
  741. package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/waitingListEntry.ts +17 -0
  742. package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/clientGiveBackBook.ts +45 -0
  743. package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/clientRentBook.ts +31 -0
  744. package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/createBook.ts +32 -0
  745. package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/index.ts +4 -0
  746. package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/withdrawBook.ts +32 -0
  747. package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/clientGiveBackBook.ts +74 -0
  748. package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/clientRentBook.ts +42 -0
  749. package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/createBook.ts +33 -0
  750. package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/index.ts +4 -0
  751. package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/withdrawBook.ts +37 -0
  752. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/create.ts +33 -0
  753. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/index.ts +5 -0
  754. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/rental.ts +31 -0
  755. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/reserve.ts +37 -0
  756. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/returnBook.ts +32 -0
  757. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/withdraw.ts +21 -0
  758. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/index.ts +118 -0
  759. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/facts/giveBackBook.ts +35 -0
  760. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/facts/index.ts +2 -0
  761. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/facts/rentBook.ts +32 -0
  762. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/index.ts +59 -0
  763. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/index.ts +3 -0
  764. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/waitingListEntry/facts/cancel.ts +26 -0
  765. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/waitingListEntry/facts/create.ts +33 -0
  766. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/waitingListEntry/facts/index.ts +3 -0
  767. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/waitingListEntry/facts/prepare.ts +23 -0
  768. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/waitingListEntry/index.ts +79 -0
  769. package/docs/concepts/05-type-driven-design/fixtures/business/domains/index.ts +4 -0
  770. package/docs/concepts/05-type-driven-design/fixtures/business/domains/refinements/index.ts +1 -0
  771. package/docs/concepts/05-type-driven-design/fixtures/business/domains/refinements/refineLinkBetweenClientAndBorrowedBook.ts +34 -0
  772. package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/book.ts +16 -0
  773. package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/client.ts +7 -0
  774. package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/email.ts +12 -0
  775. package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/index.ts +4 -0
  776. package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/waitingListEntry.ts +19 -0
  777. package/docs/concepts/05-type-driven-design/fixtures/business/index.ts +2 -0
  778. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/command/clientRentBook.ts +62 -0
  779. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/command/index.ts +11 -0
  780. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/checkers/bookExist.ts +19 -0
  781. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/checkers/clientExist.ts +19 -0
  782. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/checkers/index.ts +2 -0
  783. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/main.ts +19 -0
  784. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/routes/clientGiveBackBook.ts +46 -0
  785. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/routes/clientRentBook.ts +45 -0
  786. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/routes/index.ts +2 -0
  787. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/book.ts +25 -0
  788. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/client.ts +7 -0
  789. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/email.ts +10 -0
  790. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/index.ts +4 -0
  791. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/waitingListEntry.ts +17 -0
  792. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/useCases/index.ts +13 -0
  793. package/docs/concepts/05-type-driven-design/index.md +3 -0
  794. package/docs/concepts.llms.md +521 -0
  795. package/instructions/coding-conventions.md +8 -0
  796. package/package.json +99 -3
  797. package/skills/command/SKILL.md +63 -0
  798. package/skills/command/references/examples/cli.ts +22 -0
  799. package/skills/command/references/examples/options-only.ts +27 -0
  800. package/skills/command/references/examples/preview-command.ts +57 -0
  801. package/skills/command/references/execution.md +31 -0
  802. package/skills/command/references/inputs.md +27 -0
  803. package/skills/fundamental/SKILL.md +80 -0
  804. package/skills/fundamental/references/composition.md +35 -0
  805. package/skills/fundamental/references/constraints-and-validation.md +61 -0
  806. package/skills/fundamental/references/examples/async-composition.ts +15 -0
  807. package/skills/fundamental/references/examples/cast.ts +18 -0
  808. package/skills/fundamental/references/examples/composition.ts +40 -0
  809. package/skills/fundamental/references/examples/environment-initialization.ts +19 -0
  810. package/skills/fundamental/references/examples/error-propagation.ts +24 -0
  811. package/skills/fundamental/references/examples/generic-inference.ts +31 -0
  812. package/skills/fundamental/references/examples/guaranteed-array-access.ts +31 -0
  813. package/skills/fundamental/references/examples/independent-inputs.ts +18 -0
  814. package/skills/fundamental/references/examples/infer.ts +21 -0
  815. package/skills/fundamental/references/examples/input-validation.ts +37 -0
  816. package/skills/fundamental/references/examples/safe-declarations.ts +25 -0
  817. package/skills/fundamental/references/results-and-errors.md +59 -0
  818. package/skills/http-client/SKILL.md +50 -0
  819. package/skills/http-client/references/configuration.md +11 -0
  820. package/skills/http-client/references/examples/client-expectations.ts +85 -0
  821. package/skills/http-client/references/examples/client-streams.ts +74 -0
  822. package/skills/http-client/references/examples/external-client.ts +78 -0
  823. package/skills/http-client/references/hooks.md +7 -0
  824. package/skills/http-client/references/responses.md +39 -0
  825. package/skills/http-client/references/streams.md +10 -0
  826. package/skills/http-server/SKILL.md +61 -0
  827. package/skills/http-server/references/examples/authentication.ts +42 -0
  828. package/skills/http-server/references/examples/contracts.ts +19 -0
  829. package/skills/http-server/references/examples/inferred-client.ts +54 -0
  830. package/skills/http-server/references/examples/initialize.ts +29 -0
  831. package/skills/http-server/references/examples/minimal-route.ts +17 -0
  832. package/skills/http-server/references/examples/protected-route.ts +29 -0
  833. package/skills/http-server/references/examples/rename-user-route.ts +52 -0
  834. package/skills/http-server/references/examples/user-checker.ts +26 -0
  835. package/skills/http-server/references/examples/user-route.ts +45 -0
  836. package/skills/http-server/references/initialization.md +33 -0
  837. package/skills/http-server/references/reusable-flows.md +40 -0
  838. package/skills/http-server/references/routes-and-floor.md +46 -0
  839. package/skills/modeling/SKILL.md +76 -0
  840. package/skills/modeling/references/domain.md +33 -0
  841. package/skills/modeling/references/orchestration.md +36 -0
  842. package/skills/server/SKILL.md +55 -0
  843. package/skills/server/references/environment.md +30 -0
  844. package/skills/server/references/examples/environment.ts +41 -0
  845. package/skills/server/references/examples/file-structure.ts +26 -0
  846. package/skills/server/references/examples/files.ts +52 -0
  847. package/skills/server/references/files.md +38 -0
  848. package/skills/server/references/structures.md +15 -0
  849. package/skills/test/SKILL.md +70 -0
  850. package/skills/test/references/examples/results.ts +95 -0
  851. package/skills/test/references/examples/server.ts +59 -0
  852. package/skills/test/references/results.md +21 -0
  853. package/skills/test/references/server.md +17 -0
@@ -0,0 +1,90 @@
1
+ /**
2
+ * @title Décisions exhaustives sur les résultats.
3
+ *
4
+ * Sélection et traitement de chaque variante pour détecter les évolutions du contrat.
5
+ */
6
+ import * as DEither from "@duplojs/lang/either";
7
+ import * as DCommon from "@duplojs/lang/common";
8
+
9
+ declare const myResult: (
10
+ | DEither.Success<"result">
11
+ | DEither.Left<"fail-task", Error>
12
+ | DEither.Fail
13
+ | DEither.Error<Error>
14
+ );
15
+
16
+ // Sélectionner plusieurs variantes avec une décision explicite pour chacune.
17
+ const resultWhenIsSelected = DCommon.pipe(
18
+ myResult,
19
+ DEither.whenIsSelected(
20
+ {
21
+ "fail-task": false,
22
+ error: true,
23
+ fail: false,
24
+ success: true,
25
+ },
26
+ (value) => "test" as const,
27
+ ),
28
+ );
29
+ type _CheckResultWhenIsSelected = DCommon.ExpectType<
30
+ typeof resultWhenIsSelected,
31
+ DEither.Left<"fail-task", Error> | DEither.Fail | "test",
32
+ "strict"
33
+ >;
34
+ const resultUnwrapSelection = DCommon.pipe(
35
+ myResult,
36
+ DEither.unwrapSelection(
37
+ {
38
+ "fail-task": false,
39
+ error: true,
40
+ fail: false,
41
+ success: false,
42
+ },
43
+ ),
44
+ );
45
+ type _CheckResultUnwrapSelection = DCommon.ExpectType<
46
+ typeof resultUnwrapSelection,
47
+ DEither.Success<"result"> | Error | DEither.Left<"fail-task", Error> | DEither.Fail,
48
+ "strict"
49
+ >;
50
+ // Chaque information doit apparaître dans le sélecteur, même lorsqu’elle vaut false.
51
+ // Ajouter une variante au contrat oblige à réviser la sélection à cet endroit.
52
+ // Cela place la décision dans la couche qui doit la prendre, plutôt que de transmettre
53
+ // involontairement un nouveau résultat à une couche qui ne sait pas le traiter.
54
+
55
+ // matchInformation impose une callback pour chaque information.
56
+ // Chaque callback reçoit la valeur contenue dans la variante correspondante.
57
+ // "fail-task" | "success" | "fail" | "error"
58
+ const resultMatchInformation = DCommon.pipe(
59
+ myResult,
60
+ DEither.matchInformation(
61
+ {
62
+ "fail-task": (value) => {
63
+ type _CheckFailTaskValue = DCommon.ExpectType<typeof value, Error, "strict">;
64
+ return "fail-task" as const;
65
+ },
66
+ error: (value) => {
67
+ type _CheckErrorValue = DCommon.ExpectType<typeof value, Error, "strict">;
68
+ return "error" as const;
69
+ },
70
+ fail: (value) => {
71
+ type _CheckFailValue = DCommon.ExpectType<typeof value, void, "strict">;
72
+ return "fail" as const;
73
+ },
74
+ success: (value) => {
75
+ type _CheckSuccessValue = DCommon.ExpectType<typeof value, "result", "strict">;
76
+ return "success" as const;
77
+ },
78
+ },
79
+ ),
80
+ );
81
+ type _CheckResultMatchInformation = DCommon.ExpectType<typeof resultMatchInformation, "fail-task" | "success" | "fail" | "error", "strict">;
82
+ // matchInformationOtherwise autorise un traitement partiel avec une branche de repli.
83
+ const resultWithFallback = DCommon.pipe(
84
+ myResult,
85
+ DEither.matchInformationOtherwise(
86
+ { success: (value) => value },
87
+ (otherResult) => "unhandled" as const,
88
+ ),
89
+ );
90
+ // Les fonctions whenIsSelected disposent aussi d’une variante Otherwise.
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @title Composition avec propagation des échecs.
3
+ *
4
+ * Enchaîner ou regrouper des opérations en arrêtant le traitement au premier Left.
5
+ */
6
+ import type * as DCommon from "@duplojs/lang/common";
7
+ import * as DEither from "@duplojs/lang/either";
8
+ import * as DArray from "@duplojs/lang/array";
9
+ import * as DString from "@duplojs/lang/string";
10
+
11
+ declare const myResult: (
12
+ | DEither.Success<"result">
13
+ | DEither.Left<"fail-task", Error>
14
+ | DEither.Fail
15
+ | DEither.Error<Error>
16
+ );
17
+
18
+ // `rightPipe` transmet aux étapes la valeur contenue par les Right, jamais le
19
+ // wrapper `Right` lui-même. Dès qu’un Left apparaît, les étapes suivantes sont
20
+ // ignorées et ce Left est retourné. Une valeur finale brute est enveloppée dans
21
+ // Success ; un Right final est conservé.
22
+ const resultRightPipe = DEither.rightPipe(
23
+ myResult,
24
+ DString.split(""),
25
+ (value) => {
26
+ const elementAt = DArray.at(value, 10);
27
+ if (!elementAt) {
28
+ return DEither.left("wrong");
29
+ }
30
+
31
+ return DEither.success(elementAt);
32
+ },
33
+ // Cette étape reçoit la string du Success retourné ci-dessus, pas son wrapper.
34
+ DString.toUpperCase,
35
+ );
36
+ type _CheckResultRightPipe = DCommon.ExpectType<
37
+ typeof resultRightPipe,
38
+ DEither.Left<"fail-task", Error> | DEither.Fail | DEither.Error<Error> | DEither.Left<"wrong", undefined> | DEither.Success<Uppercase<string>>,
39
+ "strict"
40
+ >;
41
+ // `rightAsyncPipe` applique le même arrêt sur Left et attend chaque étape
42
+ // asynchrone. Une étape peut retourner un Either : s’il s’agit d’un Right,
43
+ // l’étape suivante reçoit encore sa valeur déballée ; s’il s’agit d’un Left,
44
+ // la suite est ignorée.
45
+ const asyncResult = DEither.rightAsyncPipe(
46
+ Promise.resolve(myResult),
47
+ (value) => Promise.resolve(DEither.right("normalized", value)),
48
+ DString.toLowerCase,
49
+ );
50
+ type _CheckAsyncResult = DCommon.ExpectType<
51
+ typeof asyncResult,
52
+ Promise<DEither.Left<"fail-task", Error> | DEither.Fail | DEither.Error<Error> | DEither.Success<"result">>,
53
+ "strict"
54
+ >;
55
+ // La dernière callback retourne une string brute : `asyncResult` est donc un
56
+ // `Success<"result">`, tandis que le `Right<"normalized", ...>` intermédiaire
57
+ // n’est pas transmis comme wrapper à la callback suivante.
58
+ // Si une étape intermédiaire produit un `Result` dont une information doit être
59
+ // sélectionnée, composez sa sélection dans cette même callback avec
60
+ // `DCommon.asyncPipe`. Une étape séparée de `rightAsyncPipe` recevrait la valeur
61
+ // du `Right`, et non le `Result` qui porte l’information.
62
+
63
+ // group rassemble les valeurs des Right dans un Success, ou retourne le premier Left.
64
+ // Les getters sont appelés dans l’ordre et ceux placés après un Left ne sont pas exécutés.
65
+ // Les valeurs déjà calculées avant l’appel à group ne peuvent pas être annulées.
66
+ const groupResult = DEither.group({
67
+ result1: () => myResult,
68
+ result2: DEither.success("mySuperResult"),
69
+ result3: DEither.error("errorDeLaMort"),
70
+ });
71
+ type _CheckGroupResult = DCommon.ExpectType<typeof groupResult, DEither.Left<"fail-task", Error> | DEither.Fail | DEither.Error<Error> | DEither.Error<"errorDeLaMort"> | DEither.Success<{
72
+ result1: "result";
73
+ result2: "mySuperResult";
74
+ result3: never;
75
+ }>, "strict">;
76
+ // asyncGroup attend chaque résultat dans l’ordre, sans lancer les getters en parallèle.
77
+ const asyncGroupResult = DEither.asyncGroup({
78
+ result1: () => Promise.resolve(myResult),
79
+ result2: () => Promise.resolve(DEither.success("mySuperResult")),
80
+ });
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @title Adaptation des résultats au contexte.
3
+ *
4
+ * Reclasser les statuts et renommer les informations en conservant les valeurs.
5
+ */
6
+ import * as DEither from "@duplojs/lang/either";
7
+ import * as DCommon from "@duplojs/lang/common";
8
+
9
+ declare const myResult: (
10
+ | DEither.Success<"result">
11
+ | DEither.Left<"fail-task", Error>
12
+ | DEither.Fail
13
+ | DEither.Error<Error>
14
+ );
15
+
16
+ // Réinterpréter les statuts selon le contexte : true donne Right, false donne Left.
17
+ // L’information et la valeur sont conservées ; le sélecteur couvre toutes les variantes.
18
+ const resultKeepAsRightSelection = DCommon.pipe(
19
+ myResult,
20
+ DEither.keepAsRightSelection({
21
+ "fail-task": true,
22
+ error: false,
23
+ fail: false,
24
+ success: false,
25
+ }),
26
+ );
27
+ type _CheckResultKeepAsRightSelection = DCommon.ExpectType<
28
+ typeof resultKeepAsRightSelection,
29
+ DEither.Left<"fail", void> | DEither.Left<"error", Error> | DEither.Left<"success", "result"> | DEither.Right<"fail-task", Error>,
30
+ "strict"
31
+ >;
32
+ // keepAsRightByInformation sélectionne seulement les informations à considérer comme Right.
33
+ // Toutes les autres deviennent Left, sans imposer de sélecteur exhaustif.
34
+ const resultByInformation = DEither.keepAsRightByInformation(myResult, "fail-task");
35
+
36
+ // Renommer une information adapte le vocabulaire du résultat au contexte appelant.
37
+ // rewriteInformation conserve le statut et la valeur ; les variantes non ciblées restent identiques.
38
+ const resultRewriteInformation = DCommon.pipe(
39
+ myResult,
40
+ DEither.rewriteInformation({ success: "new-information" }),
41
+ );
42
+ type _CheckResultRewriteInformation = DCommon.ExpectType<
43
+ typeof resultRewriteInformation,
44
+ DEither.Fail | DEither.Error<Error> | DEither.Left<"fail-task", Error> | DEither.Right<"new-information", "result">,
45
+ "strict"
46
+ >;
@@ -0,0 +1,72 @@
1
+ /**
2
+ * @title Conversion des absences et exceptions en résultats.
3
+ *
4
+ * Distinguer les refus prévisibles des défaillances d'environnement et adapter les absences ou exceptions en résultats.
5
+ */
6
+ import * as DEither from "@duplojs/lang/either";
7
+ import * as DCommon from "@duplojs/lang/common";
8
+
9
+ // Une issue prévisible et exploitable par le traitement appartient à son contrat
10
+ // de résultat : donnée invalide, absence ou refus d'une manipulation. Cela vaut
11
+ // aussi pour les opérations techniques ; toute vérification de donnée externe
12
+ // produit un Either pour laisser l'appelant décider de la suite.
13
+ // Lors d'une défaillance imprévue de l'environnement, les dépendances ou le runtime
14
+ // peuvent déjà lever une exception. Elle remonte implicitement à travers les appels ;
15
+ // le code applicatif n'ajoute pas de throw dans les fonctions réutilisables.
16
+ // Un throw explicite ou une conversion par OrThrow appartient à la consommation
17
+ // finale du résultat, lorsque la frontière d'exécution décide de sa conséquence.
18
+ // La distinction dépend du rôle de l'échec, pas de sa rareté ni du coût de propagation.
19
+ // Le seul fait d'accéder à une ressource extérieure ne transforme pas une absence
20
+ // prévue par l'opération en défaillance de l'environnement.
21
+
22
+ // Maybe représente une présence ou une absence : Some<Value> est un Right, None est un Left.
23
+ // toMaybe convertit null et undefined en None et les valeurs présentes en Some.
24
+ // Un Either déjà construit est transmis tel quel.
25
+
26
+ declare function someFunction(): string | number | null | undefined;
27
+
28
+ const resultToMaybe = DEither.toMaybe(someFunction());
29
+ type _CheckResultToMaybeLine29 = DCommon.ExpectType<
30
+ typeof resultToMaybe,
31
+ DEither.None | DEither.Some<string> | DEither.Some<number>,
32
+ "strict"
33
+ >;
34
+
35
+ interface User {
36
+ name: string;
37
+ }
38
+ declare function findUser(): DEither.Maybe<User>;
39
+
40
+ // Une transformation sur Some reçoit le User ; None est transmis sans exécuter la callback.
41
+ const userName = DCommon.pipe(
42
+ findUser(),
43
+ DEither.whenIsRight((user) => DEither.success(user.name)),
44
+ );
45
+ type _CheckUserName = DCommon.ExpectType<typeof userName, DEither.None | DEither.Success<string>, "strict">;
46
+
47
+ // Une API qui lève sur un refus prévisible doit être adaptée pour le rendre
48
+ // exploitable comme résultat. Ne pas déduire la nature de l'échec du choix de cette API.
49
+ // safeCallback transforme une exception en SafeCallbackError, dont la valeur est unknown.
50
+ // Une valeur brute devient SafeCallbackSuccess ; un Either retourné est conservé.
51
+ // La capture est large : distinguer le refus documenté d'une cause technique.
52
+ // Conserver cette cause dans le résultat jusqu'à sa consommation finale, sans
53
+ // la requalifier en refus métier ni la relancer depuis une fonction réutilisable.
54
+ const resultSafeCallback = DEither.safeCallback(
55
+ () => "test" as const,
56
+ );
57
+ type _CheckSafeCallback = DCommon.ExpectType<
58
+ typeof resultSafeCallback,
59
+ DEither.SafeCallbackError | DEither.SafeCallbackSuccess<"test">,
60
+ "strict"
61
+ >;
62
+ // asyncSafeCallback capture aussi les rejets et retourne toujours une Promise de résultat.
63
+ declare function loadValue(): Promise<string>;
64
+ const asyncSafeResult = DEither.asyncSafeCallback(loadValue);
65
+ type _CheckAsyncSafeResult = DCommon.ExpectType<
66
+ typeof asyncSafeResult,
67
+ Promise<DEither.SafeCallbackError | DEither.SafeCallbackSuccess<string>>,
68
+ "strict"
69
+ >;
70
+
71
+ // safeCallback gère aussi les promesses, mais une exception synchrone peut produire
72
+ // directement un Left : préférer asyncSafeCallback pour un retour toujours asynchrone.
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @title États contextualisés avec Result.
3
+ *
4
+ * Décrire et discriminer des états sans leur attribuer un sens de succès ou d’échec.
5
+ */
6
+ import * as DEither from "@duplojs/lang/either";
7
+ import * as DString from "@duplojs/lang/string";
8
+
9
+ // Result<Information, Value> étend Right et porte un marqueur Result supplémentaire.
10
+ // Il exprime un constat : l’appelant décide du sens de cet état dans son contexte.
11
+ // Une fonction peut ainsi renvoyer uniquement des Result, sans branche Left.
12
+ type EmailState = (
13
+ | DEither.Result<"valid-email", string & DString.Email>
14
+ | DEither.Result<"invalid-email", string>
15
+ );
16
+
17
+ // Le format est vérifié, mais la fonction ne décide pas si l’état observé est un échec.
18
+ // Un format invalide peut être précisément l’état recherché lors d’un nettoyage de données.
19
+ function classifyEmail(input: string): EmailState {
20
+ if (DString.isEmail(input)) {
21
+ return DEither.result("valid-email", input);
22
+ }
23
+
24
+ return DEither.result("invalid-email", input);
25
+ }
26
+
27
+ declare const input: string;
28
+ const state = classifyEmail(input);
29
+
30
+ // Les deux variantes sont Right : isRight ne permet pas de distinguer ces états.
31
+ // La discrimination repose sur l’information et affine aussi le type de la valeur.
32
+ if (DEither.hasInformation(state, "valid-email")) {
33
+ const email: string & DString.Email = DEither.unwrapRight(state);
34
+ }
35
+
36
+ // Les outils Either restent disponibles, notamment pour traiter chaque état explicitement.
37
+ const description = DEither.matchInformation(state, {
38
+ "valid-email": (email) => `Format reconnu : ${email}`,
39
+ "invalid-email": (value) => `Format à corriger : ${value}`,
40
+ });
@@ -0,0 +1,3 @@
1
+ ## Either
2
+
3
+ Résultats et états contextualisés : représentation, discrimination, traitement exhaustif, propagation des échecs et adaptation des contrats.
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @title Contrats de données avec DataStructure.
3
+ *
4
+ * Décrire les données attendues et obtenir des valeurs typées après validation.
5
+ */
6
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
7
+ import * as DEither from "@duplojs/lang/either";
8
+
9
+ // Une structure porte le même contrat dans TypeScript et au runtime.
10
+ // L’utiliser aux frontières du logiciel pour vérifier les données encore inconnues.
11
+ const userStructure = DDataStructure.object({
12
+ name: DDataStructure.string(),
13
+ email: DDataStructure.string([DDataStructure.email()]),
14
+ });
15
+ type User = DDataStructure.StructureValue<typeof userStructure>;
16
+
17
+ declare const input: unknown;
18
+ const result = userStructure.check(input);
19
+ if (DEither.isRight(result)) {
20
+ const user: User = DEither.unwrapRight(result);
21
+ }
22
+ // Un Left conserve une erreur structurée lorsque la validation échoue.
@@ -0,0 +1,244 @@
1
+ /**
2
+ * @title Composition des contrats de données.
3
+ *
4
+ * Construire et réutiliser des structures pour décrire des données simples ou composées.
5
+ */
6
+ import type * as DCommon from "@duplojs/lang/common";
7
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
8
+
9
+ // Une Structure associe un type TypeScript à une représentation capable de vérifier la donnée.
10
+ // Une TypeStructure repose sur un Type ; les autres structures composent plusieurs contrats.
11
+
12
+ const nameStructure = DDataStructure.string();
13
+ type _CheckNameStructure = DCommon.ExpectType<DDataStructure.StructureValue<typeof nameStructure>, string, "strict">;
14
+
15
+ const ageStructure = DDataStructure.number();
16
+ type _CheckAgeStructure = DCommon.ExpectType<DDataStructure.StructureValue<typeof ageStructure>, number, "strict">;
17
+
18
+ const activeStructure = DDataStructure.boolean();
19
+ type _CheckActiveStructure = DCommon.ExpectType<
20
+ DDataStructure.StructureValue<typeof activeStructure>,
21
+ boolean,
22
+ "strict"
23
+ >;
24
+
25
+ // Les structures simples comme `string`, `number` ou `boolean` sont des
26
+ // `TypeStructure`. Elles représentent directement un type fondamental.
27
+
28
+ const userKindStructure = DDataStructure.literal("user");
29
+ type _CheckUserKindStructure = DCommon.ExpectType<
30
+ DDataStructure.StructureValue<typeof userKindStructure>,
31
+ "user",
32
+ "strict"
33
+ >;
34
+
35
+ // `literal` produit également une `TypeStructure` lorsqu'une seule valeur
36
+ // est représentée.
37
+
38
+ const roleStructure = DDataStructure.literal([
39
+ "admin",
40
+ "member",
41
+ "guest",
42
+ ]);
43
+ type _CheckRoleStructure = DCommon.ExpectType<DDataStructure.StructureValue<typeof roleStructure>, "admin" | "member" | "guest", "strict">;
44
+
45
+ // Lorsque plusieurs valeurs sont représentées, `literal` construit une
46
+ // `UnionStructure` composée de plusieurs `TypeStructure`.
47
+
48
+ const addressStructure = DDataStructure.object({
49
+ street: DDataStructure.string(),
50
+ city: DDataStructure.string(),
51
+ zipCode: DDataStructure.string(),
52
+ });
53
+ type _CheckAddressStructure = DCommon.ExpectType<
54
+ DDataStructure.StructureValue<typeof addressStructure>,
55
+ {
56
+ readonly street: string;
57
+ readonly city: string;
58
+ readonly zipCode: string;
59
+ },
60
+ "strict"
61
+ >;
62
+
63
+ // `ObjectStructure` compose plusieurs structures pour représenter les
64
+ // propriétés d'un objet.
65
+
66
+ const userStructure = DDataStructure.object({
67
+ name: nameStructure,
68
+ age: ageStructure,
69
+ active: activeStructure,
70
+ role: roleStructure,
71
+ address: addressStructure,
72
+ });
73
+ type _CheckUserStructure = DCommon.ExpectType<
74
+ DDataStructure.StructureValue<typeof userStructure>,
75
+ {
76
+ readonly name: string;
77
+ readonly age: number;
78
+ readonly active: boolean;
79
+ readonly role: "admin" | "member" | "guest";
80
+ readonly address: DDataStructure.StructureValue<typeof addressStructure>;
81
+ },
82
+ "strict"
83
+ >;
84
+
85
+ // Une structure déjà définie peut et doit être réutilisée pour construire
86
+ // des structures plus complexes.
87
+
88
+ const usersStructure = DDataStructure.array(
89
+ userStructure,
90
+ );
91
+ type _CheckUsersStructure = DCommon.ExpectType<
92
+ DDataStructure.StructureValue<typeof usersStructure>,
93
+ readonly DDataStructure.StructureValue<typeof userStructure>[],
94
+ "strict"
95
+ >;
96
+
97
+ // `array` applique une même structure à chaque élément du tableau.
98
+
99
+ const profileStructure = DDataStructure.object({
100
+ name: DDataStructure.string(),
101
+ bio: DDataStructure.optional(
102
+ DDataStructure.string(),
103
+ ),
104
+ });
105
+ type _CheckProfileStructure = DCommon.ExpectType<
106
+ DDataStructure.StructureValue<typeof profileStructure>,
107
+ {
108
+ readonly name: string;
109
+ readonly bio?: string | undefined;
110
+ },
111
+ "strict"
112
+ >;
113
+
114
+ type Profile = DDataStructure.StructureValue<typeof profileStructure>;
115
+
116
+ // `optional` ajoute `undefined` à une structure.
117
+ // Dans un `ObjectStructure`, cela permet également d'omettre la propriété.
118
+
119
+ const sessionStructure = DDataStructure.object({
120
+ user: DDataStructure.nullable(
121
+ userStructure,
122
+ ),
123
+ });
124
+ type _CheckSessionStructure = DCommon.ExpectType<
125
+ DDataStructure.StructureValue<typeof sessionStructure>,
126
+ { readonly user: DDataStructure.StructureValue<typeof userStructure> | null },
127
+ "strict"
128
+ >;
129
+
130
+ // `nullable` ajoute `null` à une structure sans rendre la propriété optionnelle.
131
+
132
+ const identifierStructure = DDataStructure.union([
133
+ DDataStructure.string(),
134
+ DDataStructure.number(),
135
+ ]);
136
+ type _CheckIdentifierStructure = DCommon.ExpectType<
137
+ DDataStructure.StructureValue<typeof identifierStructure>,
138
+ string | number,
139
+ "strict"
140
+ >;
141
+
142
+ // `union` représente plusieurs structures possibles.
143
+
144
+ const eventStructure = DDataStructure.union([
145
+ DDataStructure.object({
146
+ type: DDataStructure.literal("user-created"),
147
+ user: userStructure,
148
+ }),
149
+ DDataStructure.object({
150
+ type: DDataStructure.literal("user-deleted"),
151
+ userId: identifierStructure,
152
+ }),
153
+ ]);
154
+ interface UserCreatedEvent {
155
+ readonly type: "user-created";
156
+ readonly user: DDataStructure.StructureValue<typeof userStructure>;
157
+ }
158
+ interface UserDeletedEvent {
159
+ readonly type: "user-deleted";
160
+ readonly userId: string | number;
161
+ }
162
+ type _CheckEventStructure = DCommon.ExpectType<
163
+ DDataStructure.StructureValue<typeof eventStructure>,
164
+ UserCreatedEvent | UserDeletedEvent,
165
+ "strict"
166
+ >;
167
+
168
+ // Les unions peuvent représenter plusieurs formes d'objets.
169
+ // Des valeurs littérales peuvent être utilisées pour créer une union discriminée.
170
+
171
+ const translationsStructure = DDataStructure.record(
172
+ DDataStructure.literal([
173
+ "fr",
174
+ "en",
175
+ ]),
176
+ DDataStructure.string(),
177
+ );
178
+ type _CheckTranslationsStructure = DCommon.ExpectType<
179
+ DDataStructure.StructureValue<typeof translationsStructure>,
180
+ {
181
+ readonly fr: string;
182
+ readonly en: string;
183
+ },
184
+ "strict"
185
+ >;
186
+
187
+ // `record` représente un objet dont les clés possibles et les valeurs
188
+ // sont elles-mêmes décrites par des structures.
189
+
190
+ const updateUserStructure = DDataStructure.partial(
191
+ userStructure,
192
+ );
193
+ type _CheckUpdateUserStructure = DCommon.ExpectType<
194
+ DDataStructure.StructureValue<typeof updateUserStructure>,
195
+ {
196
+ readonly name?: string | undefined;
197
+ readonly age?: number | undefined;
198
+ readonly active?: boolean | undefined;
199
+ readonly role?: "admin" | "member" | "guest" | undefined;
200
+ readonly address?: DDataStructure.StructureValue<typeof addressStructure> | undefined;
201
+ },
202
+ "strict"
203
+ >;
204
+
205
+ // `partial` transforme toutes les propriétés d'un `ObjectStructure`
206
+ // en propriétés optionnelles.
207
+
208
+ const requiredProfileStructure = DDataStructure.required(
209
+ profileStructure,
210
+ );
211
+ type _CheckRequiredProfileStructure = DCommon.ExpectType<
212
+ DDataStructure.StructureValue<typeof requiredProfileStructure>,
213
+ {
214
+ readonly name: string;
215
+ readonly bio: string;
216
+ },
217
+ "strict"
218
+ >;
219
+
220
+ // `required` réalise l'opération inverse et rend les propriétés obligatoires.
221
+
222
+ const persistedUserStructure = DDataStructure.extend(
223
+ userStructure,
224
+ {
225
+ id: identifierStructure,
226
+ createdAt: DDataStructure.string(),
227
+ },
228
+ );
229
+ type _CheckPersistedUserStructure = DCommon.ExpectType<
230
+ DDataStructure.StructureValue<typeof persistedUserStructure>,
231
+ {
232
+ readonly name: string;
233
+ readonly age: number;
234
+ readonly active: boolean;
235
+ readonly role: "admin" | "member" | "guest";
236
+ readonly address: DDataStructure.StructureValue<typeof addressStructure>;
237
+ readonly id: string | number;
238
+ readonly createdAt: string;
239
+ },
240
+ "strict"
241
+ >;
242
+
243
+ // `extend` crée un nouvel `ObjectStructure` en ajoutant des propriétés
244
+ // à une structure objet existante.