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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (551) 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/install/index.d.ts +2 -0
  5. package/dist/bin/install/index.mjs +25 -0
  6. package/dist/bin/install/skill.d.ts +28 -0
  7. package/dist/bin/install/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 +19 -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 +15 -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 +48 -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 +23 -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 +26 -0
  122. package/docs/API/10-lang/10-chrono/10-isSerializedTheTime.ts +26 -0
  123. package/docs/API/10-lang/10-chrono/10-isTime.ts +23 -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 +23 -0
  131. package/docs/API/10-lang/10-chrono/10-maxTime.ts +23 -0
  132. package/docs/API/10-lang/10-chrono/10-minDate.ts +23 -0
  133. package/docs/API/10-lang/10-chrono/10-minTime.ts +23 -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 +32 -0
  138. package/docs/API/10-lang/10-chrono/10-sortTimes.ts +31 -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 +45 -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 +16 -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 +31 -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 +12 -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 +23 -0
  183. package/docs/API/10-lang/10-common/10-isType.ts +29 -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 +29 -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-timeout.ts +11 -0
  203. package/docs/API/10-lang/10-common/10-toCurriedPredicate.ts +28 -0
  204. package/docs/API/10-lang/10-common/10-toJSON.ts +15 -0
  205. package/docs/API/10-lang/10-common/10-toNative.ts +15 -0
  206. package/docs/API/10-lang/10-common/10-toRegExp.ts +17 -0
  207. package/docs/API/10-lang/10-common/10-transformer.ts +21 -0
  208. package/docs/API/10-lang/10-common/10-truthy.ts +12 -0
  209. package/docs/API/10-lang/10-common/10-useAsyncRetry.ts +31 -0
  210. package/docs/API/10-lang/10-common/10-when.ts +27 -0
  211. package/docs/API/10-lang/10-common/10-whenElse.ts +28 -0
  212. package/docs/API/10-lang/10-common/10-whenNot.ts +26 -0
  213. package/docs/API/10-lang/10-common/index.llms.md +228 -0
  214. package/docs/API/10-lang/10-common/index.md +3 -0
  215. package/docs/API/10-lang/10-dataStructure/10-absolutePath.ts +25 -0
  216. package/docs/API/10-lang/10-dataStructure/10-allowedCharacters.ts +25 -0
  217. package/docs/API/10-lang/10-dataStructure/10-array.ts +23 -0
  218. package/docs/API/10-lang/10-dataStructure/10-arrayLengthEqual.ts +25 -0
  219. package/docs/API/10-lang/10-dataStructure/10-betweenThan.ts +25 -0
  220. package/docs/API/10-lang/10-dataStructure/10-betweenThanOrEqual.ts +25 -0
  221. package/docs/API/10-lang/10-dataStructure/10-bigint.ts +22 -0
  222. package/docs/API/10-lang/10-dataStructure/10-boolean.ts +22 -0
  223. package/docs/API/10-lang/10-dataStructure/10-createCodec.ts +45 -0
  224. package/docs/API/10-lang/10-dataStructure/10-createCodecs.ts +134 -0
  225. package/docs/API/10-lang/10-dataStructure/10-createErrorInterpreter.ts +74 -0
  226. package/docs/API/10-lang/10-dataStructure/10-date.ts +23 -0
  227. package/docs/API/10-lang/10-dataStructure/10-email.ts +25 -0
  228. package/docs/API/10-lang/10-dataStructure/10-endsWith.ts +24 -0
  229. package/docs/API/10-lang/10-dataStructure/10-even.ts +25 -0
  230. package/docs/API/10-lang/10-dataStructure/10-extend.ts +27 -0
  231. package/docs/API/10-lang/10-dataStructure/10-greaterThan.ts +25 -0
  232. package/docs/API/10-lang/10-dataStructure/10-greaterThanOrEqual.ts +25 -0
  233. package/docs/API/10-lang/10-dataStructure/10-include.ts +24 -0
  234. package/docs/API/10-lang/10-dataStructure/10-integer.ts +25 -0
  235. package/docs/API/10-lang/10-dataStructure/10-isNullStructure.ts +12 -0
  236. package/docs/API/10-lang/10-dataStructure/10-isNullable.ts +12 -0
  237. package/docs/API/10-lang/10-dataStructure/10-isOptional.ts +12 -0
  238. package/docs/API/10-lang/10-dataStructure/10-isUndefinedStructure.ts +12 -0
  239. package/docs/API/10-lang/10-dataStructure/10-lazy.ts +23 -0
  240. package/docs/API/10-lang/10-dataStructure/10-lessThan.ts +25 -0
  241. package/docs/API/10-lang/10-dataStructure/10-lessThanOrEqual.ts +25 -0
  242. package/docs/API/10-lang/10-dataStructure/10-literal.ts +19 -0
  243. package/docs/API/10-lang/10-dataStructure/10-maxCharacters.ts +25 -0
  244. package/docs/API/10-lang/10-dataStructure/10-maxElements.ts +25 -0
  245. package/docs/API/10-lang/10-dataStructure/10-minCharacters.ts +25 -0
  246. package/docs/API/10-lang/10-dataStructure/10-minElements.ts +25 -0
  247. package/docs/API/10-lang/10-dataStructure/10-multipleOf.ts +25 -0
  248. package/docs/API/10-lang/10-dataStructure/10-negative.ts +25 -0
  249. package/docs/API/10-lang/10-dataStructure/10-notEmpty.ts +25 -0
  250. package/docs/API/10-lang/10-dataStructure/10-notZero.ts +25 -0
  251. package/docs/API/10-lang/10-dataStructure/10-null.ts +22 -0
  252. package/docs/API/10-lang/10-dataStructure/10-nullable.ts +19 -0
  253. package/docs/API/10-lang/10-dataStructure/10-number.ts +22 -0
  254. package/docs/API/10-lang/10-dataStructure/10-numberInString.ts +25 -0
  255. package/docs/API/10-lang/10-dataStructure/10-object.ts +25 -0
  256. package/docs/API/10-lang/10-dataStructure/10-odd.ts +25 -0
  257. package/docs/API/10-lang/10-dataStructure/10-optional.ts +19 -0
  258. package/docs/API/10-lang/10-dataStructure/10-partial.ts +23 -0
  259. package/docs/API/10-lang/10-dataStructure/10-path.ts +25 -0
  260. package/docs/API/10-lang/10-dataStructure/10-positive.ts +25 -0
  261. package/docs/API/10-lang/10-dataStructure/10-record.ts +22 -0
  262. package/docs/API/10-lang/10-dataStructure/10-refine.ts +27 -0
  263. package/docs/API/10-lang/10-dataStructure/10-regex.ts +24 -0
  264. package/docs/API/10-lang/10-dataStructure/10-required.ts +21 -0
  265. package/docs/API/10-lang/10-dataStructure/10-safe.ts +25 -0
  266. package/docs/API/10-lang/10-dataStructure/10-segmentPath.ts +25 -0
  267. package/docs/API/10-lang/10-dataStructure/10-startsWith.ts +24 -0
  268. package/docs/API/10-lang/10-dataStructure/10-strictNegative.ts +25 -0
  269. package/docs/API/10-lang/10-dataStructure/10-strictPositive.ts +25 -0
  270. package/docs/API/10-lang/10-dataStructure/10-string.ts +22 -0
  271. package/docs/API/10-lang/10-dataStructure/10-stringLengthEqual.ts +25 -0
  272. package/docs/API/10-lang/10-dataStructure/10-time.ts +23 -0
  273. package/docs/API/10-lang/10-dataStructure/10-trimmed.ts +25 -0
  274. package/docs/API/10-lang/10-dataStructure/10-typeStructureIdentifier.ts +33 -0
  275. package/docs/API/10-lang/10-dataStructure/10-undefined.ts +22 -0
  276. package/docs/API/10-lang/10-dataStructure/10-union.ts +24 -0
  277. package/docs/API/10-lang/10-dataStructure/10-unwrapLazy.ts +17 -0
  278. package/docs/API/10-lang/10-dataStructure/10-url.ts +25 -0
  279. package/docs/API/10-lang/10-dataStructure/10-uuid.ts +25 -0
  280. package/docs/API/10-lang/10-dataStructure/index.llms.md +264 -0
  281. package/docs/API/10-lang/10-dataStructure/index.md +3 -0
  282. package/docs/API/10-lang/10-either/10-asyncGroup.ts +44 -0
  283. package/docs/API/10-lang/10-either/10-asyncSafeCallback.ts +23 -0
  284. package/docs/API/10-lang/10-either/10-error.ts +12 -0
  285. package/docs/API/10-lang/10-either/10-expect.ts +13 -0
  286. package/docs/API/10-lang/10-either/10-fail.ts +12 -0
  287. package/docs/API/10-lang/10-either/10-forwardAssertsSelection.ts +28 -0
  288. package/docs/API/10-lang/10-either/10-group.ts +58 -0
  289. package/docs/API/10-lang/10-either/10-hasInformation.ts +24 -0
  290. package/docs/API/10-lang/10-either/10-isLeft.ts +16 -0
  291. package/docs/API/10-lang/10-either/10-isRight.ts +16 -0
  292. package/docs/API/10-lang/10-either/10-isSelected.ts +29 -0
  293. package/docs/API/10-lang/10-either/10-keepAsRightByInformation.ts +29 -0
  294. package/docs/API/10-lang/10-either/10-keepAsRightSelection.ts +23 -0
  295. package/docs/API/10-lang/10-either/10-left.ts +13 -0
  296. package/docs/API/10-lang/10-either/10-matchInformation.ts +26 -0
  297. package/docs/API/10-lang/10-either/10-matchInformationOtherwise.ts +27 -0
  298. package/docs/API/10-lang/10-either/10-none.ts +12 -0
  299. package/docs/API/10-lang/10-either/10-ok.ts +12 -0
  300. package/docs/API/10-lang/10-either/10-result.ts +18 -0
  301. package/docs/API/10-lang/10-either/10-rewriteInformation.ts +24 -0
  302. package/docs/API/10-lang/10-either/10-right.ts +13 -0
  303. package/docs/API/10-lang/10-either/10-rightAsyncPipe.ts +69 -0
  304. package/docs/API/10-lang/10-either/10-rightPipe.ts +72 -0
  305. package/docs/API/10-lang/10-either/10-safeCallback.ts +29 -0
  306. package/docs/API/10-lang/10-either/10-some.ts +12 -0
  307. package/docs/API/10-lang/10-either/10-success.ts +12 -0
  308. package/docs/API/10-lang/10-either/10-toMaybe.ts +53 -0
  309. package/docs/API/10-lang/10-either/10-unwrapByInformation.ts +20 -0
  310. package/docs/API/10-lang/10-either/10-unwrapByInformationOrThrow.ts +19 -0
  311. package/docs/API/10-lang/10-either/10-unwrapLeft.ts +14 -0
  312. package/docs/API/10-lang/10-either/10-unwrapLeftOrThrow.ts +17 -0
  313. package/docs/API/10-lang/10-either/10-unwrapOr.ts +17 -0
  314. package/docs/API/10-lang/10-either/10-unwrapOtherwise.ts +20 -0
  315. package/docs/API/10-lang/10-either/10-unwrapRight.ts +14 -0
  316. package/docs/API/10-lang/10-either/10-unwrapRightOrThrow.ts +17 -0
  317. package/docs/API/10-lang/10-either/10-unwrapSelection.ts +26 -0
  318. package/docs/API/10-lang/10-either/10-unwrapSelectionOrThrow.ts +19 -0
  319. package/docs/API/10-lang/10-either/10-whenHasInformation.ts +35 -0
  320. package/docs/API/10-lang/10-either/10-whenHasInformationOtherwise.ts +29 -0
  321. package/docs/API/10-lang/10-either/10-whenIsLeft.ts +20 -0
  322. package/docs/API/10-lang/10-either/10-whenIsLeftOtherwise.ts +27 -0
  323. package/docs/API/10-lang/10-either/10-whenIsRight.ts +20 -0
  324. package/docs/API/10-lang/10-either/10-whenIsRightOtherwise.ts +26 -0
  325. package/docs/API/10-lang/10-either/10-whenIsSelected.ts +33 -0
  326. package/docs/API/10-lang/10-either/10-whenIsSelectedOtherwise.ts +35 -0
  327. package/docs/API/10-lang/10-either/index.llms.md +184 -0
  328. package/docs/API/10-lang/10-either/index.md +3 -0
  329. package/docs/API/10-lang/10-generator/10-asyncChunk.ts +55 -0
  330. package/docs/API/10-lang/10-generator/10-asyncConcat.ts +46 -0
  331. package/docs/API/10-lang/10-generator/10-asyncFilter.ts +41 -0
  332. package/docs/API/10-lang/10-generator/10-asyncFlat.ts +37 -0
  333. package/docs/API/10-lang/10-generator/10-asyncGroup.ts +65 -0
  334. package/docs/API/10-lang/10-generator/10-asyncLoop.ts +59 -0
  335. package/docs/API/10-lang/10-generator/10-asyncMap.ts +48 -0
  336. package/docs/API/10-lang/10-generator/10-asyncReduce.ts +63 -0
  337. package/docs/API/10-lang/10-generator/10-chunk.ts +44 -0
  338. package/docs/API/10-lang/10-generator/10-concat.ts +37 -0
  339. package/docs/API/10-lang/10-generator/10-createExternalAsyncGenerator.ts +29 -0
  340. package/docs/API/10-lang/10-generator/10-execute.ts +44 -0
  341. package/docs/API/10-lang/10-generator/10-filter.ts +35 -0
  342. package/docs/API/10-lang/10-generator/10-flat.ts +25 -0
  343. package/docs/API/10-lang/10-generator/10-group.ts +44 -0
  344. package/docs/API/10-lang/10-generator/10-groupOutput.ts +48 -0
  345. package/docs/API/10-lang/10-generator/10-loop.ts +55 -0
  346. package/docs/API/10-lang/10-generator/10-map.ts +35 -0
  347. package/docs/API/10-lang/10-generator/10-reduce.ts +51 -0
  348. package/docs/API/10-lang/10-generator/10-reduceFrom.ts +30 -0
  349. package/docs/API/10-lang/10-generator/index.llms.md +84 -0
  350. package/docs/API/10-lang/10-generator/index.md +3 -0
  351. package/docs/API/10-lang/index.md +3 -0
  352. package/docs/API/index.md +3 -0
  353. package/docs/API.llms.md +31 -0
  354. package/docs/concepts/01-fundamental/01-constraint/01-use.ts +22 -0
  355. package/docs/concepts/01-fundamental/01-constraint/10-built-in-constraint.ts +37 -0
  356. package/docs/concepts/01-fundamental/01-constraint/20-manipulation.ts +38 -0
  357. package/docs/concepts/01-fundamental/01-constraint/30-cast.ts +62 -0
  358. package/docs/concepts/01-fundamental/01-constraint/40-custom-constraint.ts +45 -0
  359. package/docs/concepts/01-fundamental/01-constraint/index.md +3 -0
  360. package/docs/concepts/01-fundamental/02-currying/01-use.ts +33 -0
  361. package/docs/concepts/01-fundamental/02-currying/10-built-in-function.ts +178 -0
  362. package/docs/concepts/01-fundamental/02-currying/20-inner-pipe.ts +39 -0
  363. package/docs/concepts/01-fundamental/02-currying/30-async-pipe.ts +42 -0
  364. package/docs/concepts/01-fundamental/02-currying/index.md +3 -0
  365. package/docs/concepts/01-fundamental/03-either/01-use.ts +21 -0
  366. package/docs/concepts/01-fundamental/03-either/10-discrimination.ts +79 -0
  367. package/docs/concepts/01-fundamental/03-either/20-exhaustive-handling.ts +73 -0
  368. package/docs/concepts/01-fundamental/03-either/30-composition.ts +72 -0
  369. package/docs/concepts/01-fundamental/03-either/40-result-adaptation.ts +40 -0
  370. package/docs/concepts/01-fundamental/03-either/50-external-results.ts +59 -0
  371. package/docs/concepts/01-fundamental/03-either/60-contextual-state.ts +40 -0
  372. package/docs/concepts/01-fundamental/03-either/index.md +3 -0
  373. package/docs/concepts/01-fundamental/04-data-structure/01-use.ts +22 -0
  374. package/docs/concepts/01-fundamental/04-data-structure/10-structure.ts +193 -0
  375. package/docs/concepts/01-fundamental/04-data-structure/20-constraint.ts +78 -0
  376. package/docs/concepts/01-fundamental/04-data-structure/30-validation.ts +100 -0
  377. package/docs/concepts/01-fundamental/04-data-structure/40-codecs.ts +151 -0
  378. package/docs/concepts/01-fundamental/04-data-structure/50-recursive.ts +48 -0
  379. package/docs/concepts/01-fundamental/04-data-structure/60-interpret-error.ts +123 -0
  380. package/docs/concepts/01-fundamental/04-data-structure/index.md +3 -0
  381. package/docs/concepts/01-fundamental/05-chrono/01-use.ts +14 -0
  382. package/docs/concepts/01-fundamental/05-chrono/10-creation.ts +59 -0
  383. package/docs/concepts/01-fundamental/05-chrono/20-manipulation.ts +94 -0
  384. package/docs/concepts/01-fundamental/05-chrono/30-serialized.ts +73 -0
  385. package/docs/concepts/01-fundamental/05-chrono/40-timezone.ts +81 -0
  386. package/docs/concepts/01-fundamental/05-chrono/index.md +3 -0
  387. package/docs/concepts/01-fundamental/06-modeling/10-new-type.ts +42 -0
  388. package/docs/concepts/01-fundamental/06-modeling/20-entity.ts +204 -0
  389. package/docs/concepts/01-fundamental/06-modeling/30-tagged-object.ts +181 -0
  390. package/docs/concepts/01-fundamental/06-modeling/40-entity-lifecycle.ts +275 -0
  391. package/docs/concepts/01-fundamental/06-modeling/50-evidence.ts +94 -0
  392. package/docs/concepts/01-fundamental/06-modeling/60-signed-function.ts +26 -0
  393. package/docs/concepts/01-fundamental/06-modeling/index.md +3 -0
  394. package/docs/concepts/01-fundamental/07-discrimination/10-entity.ts +104 -0
  395. package/docs/concepts/01-fundamental/07-discrimination/20-fact.ts +142 -0
  396. package/docs/concepts/01-fundamental/07-discrimination/30-tagged-object.ts +105 -0
  397. package/docs/concepts/01-fundamental/07-discrimination/40-error.ts +57 -0
  398. package/docs/concepts/01-fundamental/07-discrimination/50-literal.ts +87 -0
  399. package/docs/concepts/01-fundamental/07-discrimination/60-shape.ts +152 -0
  400. package/docs/concepts/01-fundamental/07-discrimination/70-predicate.ts +89 -0
  401. package/docs/concepts/01-fundamental/07-discrimination/index.md +3 -0
  402. package/docs/concepts/01-fundamental/index.md +1 -0
  403. package/docs/concepts/02-server/10-file/10-manipulation.ts +40 -0
  404. package/docs/concepts/02-server/10-file/20-path.ts +56 -0
  405. package/docs/concepts/02-server/10-file/index.md +3 -0
  406. package/docs/concepts/02-server/20-http/10-init.ts +31 -0
  407. package/docs/concepts/02-server/20-http/20-route.ts +174 -0
  408. package/docs/concepts/02-server/20-http/30-routine.ts +195 -0
  409. package/docs/concepts/02-server/20-http/40-jwt.ts +137 -0
  410. package/docs/concepts/02-server/20-http/50-codegen.ts +29 -0
  411. package/docs/concepts/02-server/20-http/index.md +3 -0
  412. package/docs/concepts/02-server/30-environment/10-platform.ts +38 -0
  413. package/docs/concepts/02-server/30-environment/20-variable.ts +41 -0
  414. package/docs/concepts/02-server/30-environment/index.md +3 -0
  415. package/docs/concepts/02-server/40-command/10-use.ts +112 -0
  416. package/docs/concepts/02-server/40-command/20-sub-command.ts +48 -0
  417. package/docs/concepts/02-server/40-command/index.md +3 -0
  418. package/docs/concepts/02-server/index.md +1 -0
  419. package/docs/concepts/03-client/10-http/10-init.ts +64 -0
  420. package/docs/concepts/03-client/10-http/20-request.ts +244 -0
  421. package/docs/concepts/03-client/10-http/30-hook.ts +139 -0
  422. package/docs/concepts/03-client/10-http/index.md +3 -0
  423. package/docs/concepts/03-client/20-form/10-init.ts +95 -0
  424. package/docs/concepts/03-client/20-form/20-input.ts +96 -0
  425. package/docs/concepts/03-client/20-form/30-layout.ts +160 -0
  426. package/docs/concepts/03-client/20-form/40-template.ts +89 -0
  427. package/docs/concepts/03-client/20-form/index.md +3 -0
  428. package/docs/concepts/03-client/index.md +1 -0
  429. package/docs/concepts/04-tests/01-unit/10-either.ts +136 -0
  430. package/docs/concepts/04-tests/01-unit/20-server-mocking.ts +53 -0
  431. package/docs/concepts/04-tests/01-unit/index.md +3 -0
  432. package/docs/concepts/04-tests/02-e2e/10-init.ts +80 -0
  433. package/docs/concepts/04-tests/02-e2e/20-architecture.ts +76 -0
  434. package/docs/concepts/04-tests/02-e2e/30-testing.ts +90 -0
  435. package/docs/concepts/04-tests/02-e2e/index.md +3 -0
  436. package/docs/concepts/04-tests/index.md +1 -0
  437. package/docs/concepts/05-type-driven-design/01-architecture/10-boundaries.md +41 -0
  438. package/docs/concepts/05-type-driven-design/01-architecture/index.md +3 -0
  439. package/docs/concepts/05-type-driven-design/02-domains/10-entities.md +58 -0
  440. package/docs/concepts/05-type-driven-design/02-domains/20-aggregates.md +49 -0
  441. package/docs/concepts/05-type-driven-design/02-domains/30-repositories.md +41 -0
  442. package/docs/concepts/05-type-driven-design/02-domains/index.md +3 -0
  443. package/docs/concepts/05-type-driven-design/03-applications/10-use-case.md +69 -0
  444. package/docs/concepts/05-type-driven-design/03-applications/index.md +3 -0
  445. package/docs/concepts/05-type-driven-design/04-infrastructure/10-implementation.md +56 -0
  446. package/docs/concepts/05-type-driven-design/04-infrastructure/index.md +3 -0
  447. package/docs/concepts/05-type-driven-design/fixtures/business/applications/index.ts +2 -0
  448. package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/book.ts +10 -0
  449. package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/client.ts +10 -0
  450. package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/email.ts +7 -0
  451. package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/index.ts +3 -0
  452. package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/clientGiveBackBook.ts +27 -0
  453. package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/clientRentBook.ts +30 -0
  454. package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/createBook.ts +32 -0
  455. package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/index.ts +2 -0
  456. package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/clientGiveBackBook.ts +15 -0
  457. package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/clientRentBook.ts +16 -0
  458. package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/createBook.ts +21 -0
  459. package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/index.ts +3 -0
  460. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/create.ts +34 -0
  461. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/index.ts +3 -0
  462. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/rental.ts +31 -0
  463. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/returnBook.ts +30 -0
  464. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/index.ts +87 -0
  465. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/facts/giveBackBook.ts +33 -0
  466. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/facts/index.ts +2 -0
  467. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/facts/rentBook.ts +32 -0
  468. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/index.ts +82 -0
  469. package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/index.ts +2 -0
  470. package/docs/concepts/05-type-driven-design/fixtures/business/domains/index.ts +3 -0
  471. package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/book.ts +16 -0
  472. package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/client.ts +7 -0
  473. package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/email.ts +12 -0
  474. package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/index.ts +3 -0
  475. package/docs/concepts/05-type-driven-design/fixtures/business/index.ts +2 -0
  476. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/command/clientRentBook.ts +62 -0
  477. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/command/index.ts +11 -0
  478. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/checkers/bookExist.ts +19 -0
  479. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/checkers/clientExist.ts +19 -0
  480. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/checkers/index.ts +2 -0
  481. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/main.ts +19 -0
  482. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/routes/clientGiveBackBook.ts +37 -0
  483. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/routes/clientRentBook.ts +50 -0
  484. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/routes/index.ts +2 -0
  485. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/book.ts +25 -0
  486. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/client.ts +7 -0
  487. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/email.ts +10 -0
  488. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/index.ts +3 -0
  489. package/docs/concepts/05-type-driven-design/fixtures/infrastructure/useCases/index.ts +12 -0
  490. package/docs/concepts/05-type-driven-design/index.md +3 -0
  491. package/docs/concepts.llms.md +475 -0
  492. package/instructions/coding-conventions.md +8 -0
  493. package/package.json +96 -3
  494. package/skills/command/SKILL.md +63 -0
  495. package/skills/command/references/examples/cli.ts +22 -0
  496. package/skills/command/references/examples/options-only.ts +27 -0
  497. package/skills/command/references/examples/preview-command.ts +57 -0
  498. package/skills/command/references/execution.md +31 -0
  499. package/skills/command/references/inputs.md +27 -0
  500. package/skills/fundamental/SKILL.md +80 -0
  501. package/skills/fundamental/references/composition.md +35 -0
  502. package/skills/fundamental/references/constraints-and-validation.md +61 -0
  503. package/skills/fundamental/references/examples/async-composition.ts +15 -0
  504. package/skills/fundamental/references/examples/cast.ts +18 -0
  505. package/skills/fundamental/references/examples/composition.ts +40 -0
  506. package/skills/fundamental/references/examples/environment-initialization.ts +19 -0
  507. package/skills/fundamental/references/examples/error-propagation.ts +24 -0
  508. package/skills/fundamental/references/examples/generic-inference.ts +31 -0
  509. package/skills/fundamental/references/examples/guaranteed-array-access.ts +31 -0
  510. package/skills/fundamental/references/examples/independent-inputs.ts +18 -0
  511. package/skills/fundamental/references/examples/infer.ts +21 -0
  512. package/skills/fundamental/references/examples/input-validation.ts +37 -0
  513. package/skills/fundamental/references/examples/safe-declarations.ts +25 -0
  514. package/skills/fundamental/references/results-and-errors.md +59 -0
  515. package/skills/http-client/SKILL.md +50 -0
  516. package/skills/http-client/references/configuration.md +9 -0
  517. package/skills/http-client/references/examples/client-expectations.ts +84 -0
  518. package/skills/http-client/references/examples/client-streams.ts +74 -0
  519. package/skills/http-client/references/examples/external-client.ts +78 -0
  520. package/skills/http-client/references/hooks.md +7 -0
  521. package/skills/http-client/references/responses.md +39 -0
  522. package/skills/http-client/references/streams.md +10 -0
  523. package/skills/http-server/SKILL.md +66 -0
  524. package/skills/http-server/references/code-generation.md +31 -0
  525. package/skills/http-server/references/examples/authentication.ts +42 -0
  526. package/skills/http-server/references/examples/contracts.ts +19 -0
  527. package/skills/http-server/references/examples/generate-sdk.ts +36 -0
  528. package/skills/http-server/references/examples/initialize.ts +29 -0
  529. package/skills/http-server/references/examples/minimal-route.ts +18 -0
  530. package/skills/http-server/references/examples/protected-route.ts +31 -0
  531. package/skills/http-server/references/examples/rename-user-route.ts +54 -0
  532. package/skills/http-server/references/examples/user-checker.ts +26 -0
  533. package/skills/http-server/references/examples/user-route.ts +38 -0
  534. package/skills/http-server/references/initialization.md +33 -0
  535. package/skills/http-server/references/reusable-flows.md +40 -0
  536. package/skills/http-server/references/routes-and-floor.md +38 -0
  537. package/skills/modeling/SKILL.md +76 -0
  538. package/skills/modeling/references/domain.md +33 -0
  539. package/skills/modeling/references/orchestration.md +36 -0
  540. package/skills/server/SKILL.md +55 -0
  541. package/skills/server/references/environment.md +30 -0
  542. package/skills/server/references/examples/environment.ts +41 -0
  543. package/skills/server/references/examples/file-structure.ts +26 -0
  544. package/skills/server/references/examples/files.ts +52 -0
  545. package/skills/server/references/files.md +38 -0
  546. package/skills/server/references/structures.md +15 -0
  547. package/skills/test/SKILL.md +70 -0
  548. package/skills/test/references/examples/results.ts +95 -0
  549. package/skills/test/references/examples/server.ts +59 -0
  550. package/skills/test/references/results.md +21 -0
  551. package/skills/test/references/server.md +17 -0
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @title DDataStructure.string
3
+ *
4
+ * Construire une structure représentant des chaînes de caractères.
5
+ */
6
+ import type * as DCommon from "@duplojs/lang/common";
7
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
8
+
9
+ const structure = DDataStructure.string();
10
+ const result = structure.check("DuploJS");
11
+
12
+ // La structure représente le type indiqué par son contrat.
13
+ type _CheckStructure = DCommon.ExpectType<
14
+ typeof structure,
15
+ DDataStructure.TypeStructure<string, readonly []>,
16
+ "strict"
17
+ >;
18
+ type _CheckStructureValue = DCommon.ExpectType<
19
+ DDataStructure.StructureValue<typeof structure>,
20
+ string,
21
+ "strict"
22
+ >;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @title DDataStructure.stringLengthEqual
3
+ *
4
+ * Construire une contrainte de longueur exacte pour une chaîne.
5
+ */
6
+ import type * as DCommon from "@duplojs/lang/common";
7
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
8
+ import type * as DString from "@duplojs/lang/string";
9
+
10
+ const constraint = DDataStructure.stringLengthEqual(3);
11
+ type _CheckConstraint = DCommon.ExpectType<
12
+ typeof constraint,
13
+ DDataStructure.StringLengthEqualConstraint<3>,
14
+ "strict"
15
+ >;
16
+
17
+ const structure = DDataStructure.string([constraint]);
18
+ const result = structure.check("abc");
19
+
20
+ // Une validation réussie expose une valeur portant le type du contrat.
21
+ type _CheckStructureValue = DCommon.ExpectType<
22
+ DDataStructure.StructureValue<typeof structure>,
23
+ string & DString.LengthEqual<3>,
24
+ "strict"
25
+ >;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @title DDataStructure.time
3
+ *
4
+ * Construire une structure représentant les heures DuploJS.
5
+ */
6
+ import type * as DCommon from "@duplojs/lang/common";
7
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
8
+ import type * as DChrono from "@duplojs/lang/chrono";
9
+
10
+ const structure = DDataStructure.time();
11
+ const result = structure.check("12:30:00.000");
12
+
13
+ // La structure représente le type indiqué par son contrat.
14
+ type _CheckStructure = DCommon.ExpectType<
15
+ typeof structure,
16
+ DDataStructure.TypeStructure<DChrono.TheTime, readonly []>,
17
+ "strict"
18
+ >;
19
+ type _CheckStructureValue = DCommon.ExpectType<
20
+ DDataStructure.StructureValue<typeof structure>,
21
+ DChrono.TheTime,
22
+ "strict"
23
+ >;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @title DDataStructure.trimmed
3
+ *
4
+ * Construire une contrainte de chaîne sans espaces périphériques.
5
+ */
6
+ import type * as DCommon from "@duplojs/lang/common";
7
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
8
+ import type * as DString from "@duplojs/lang/string";
9
+
10
+ const constraint = DDataStructure.trimmed();
11
+ type _CheckConstraint = DCommon.ExpectType<
12
+ typeof constraint,
13
+ DDataStructure.TrimmedConstraint,
14
+ "strict"
15
+ >;
16
+
17
+ const structure = DDataStructure.string([constraint]);
18
+ const result = structure.check("DuploJS");
19
+
20
+ // Une validation réussie expose une valeur portant le type du contrat.
21
+ type _CheckStructureValue = DCommon.ExpectType<
22
+ DDataStructure.StructureValue<typeof structure>,
23
+ string & DString.Trimmed,
24
+ "strict"
25
+ >;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @title DDataStructure.typeStructureIdentifier
3
+ *
4
+ * Identifier une structure de type et affiner son type TypeScript.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
8
+
9
+ declare const structure: DDataStructure.Structure;
10
+
11
+ if (DDataStructure.typeStructureIdentifier(
12
+ structure,
13
+ DDataStructure.numberTypeKind,
14
+ )) {
15
+ type _CheckStructure = DCommon.ExpectType<
16
+ typeof structure,
17
+ DDataStructure.TypeStructure<number>,
18
+ "strict"
19
+ >;
20
+ }
21
+
22
+ // La forme curifiée s’utilise comme predicate dans DCommon.when.
23
+ const result = DCommon.when(
24
+ structure,
25
+ DDataStructure.typeStructureIdentifier(DDataStructure.numberTypeKind),
26
+ (numberStructure) => numberStructure.definition.type.fundamentalType,
27
+ );
28
+
29
+ type _CheckResult = DCommon.ExpectType<
30
+ typeof result,
31
+ DDataStructure.Structure | typeof DDataStructure.TheNumber,
32
+ "one-extends-two"
33
+ >;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @title DDataStructure.undefined
3
+ *
4
+ * Construire une structure représentant la valeur `undefined`.
5
+ */
6
+ import type * as DCommon from "@duplojs/lang/common";
7
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
8
+
9
+ const structure = DDataStructure.undefined();
10
+ const result = structure.check(undefined);
11
+
12
+ // La structure représente le type indiqué par son contrat.
13
+ type _CheckStructure = DCommon.ExpectType<
14
+ typeof structure,
15
+ DDataStructure.TypeStructure<undefined, readonly []>,
16
+ "strict"
17
+ >;
18
+ type _CheckStructureValue = DCommon.ExpectType<
19
+ DDataStructure.StructureValue<typeof structure>,
20
+ undefined,
21
+ "strict"
22
+ >;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @title DDataStructure.union
3
+ *
4
+ * Construire une structure qui accepte plusieurs structures alternatives.
5
+ */
6
+ import type * as DCommon from "@duplojs/lang/common";
7
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
8
+
9
+ const structure = DDataStructure.union([
10
+ DDataStructure.string(),
11
+ DDataStructure.number(),
12
+ ]);
13
+ const result = structure.check("DuploJS");
14
+
15
+ type _CheckStructure = DCommon.ExpectType<
16
+ typeof structure,
17
+ DDataStructure.UnionStructure<string | number, readonly []>,
18
+ "strict"
19
+ >;
20
+ type _CheckStructureValue = DCommon.ExpectType<
21
+ DDataStructure.StructureValue<typeof structure>,
22
+ string | number,
23
+ "strict"
24
+ >;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @title DDataStructure.unwrapLazy
3
+ *
4
+ * Résoudre une structure lazy et retourner la structure qu’elle contient.
5
+ */
6
+ import type * as DCommon from "@duplojs/lang/common";
7
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
8
+
9
+ const inner = DDataStructure.string();
10
+ const lazyStructure = DDataStructure.lazy(() => inner);
11
+ const structure = DDataStructure.unwrapLazy(lazyStructure);
12
+
13
+ type _CheckResult = DCommon.ExpectType<
14
+ typeof structure,
15
+ DDataStructure.Structure<string>,
16
+ "strict"
17
+ >;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @title DDataStructure.url
3
+ *
4
+ * Construire une contrainte d’URL valide.
5
+ */
6
+ import type * as DCommon from "@duplojs/lang/common";
7
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
8
+ import type * as DString from "@duplojs/lang/string";
9
+
10
+ const constraint = DDataStructure.url();
11
+ type _CheckConstraint = DCommon.ExpectType<
12
+ typeof constraint,
13
+ DDataStructure.UrlConstraint,
14
+ "strict"
15
+ >;
16
+
17
+ const structure = DDataStructure.string([constraint]);
18
+ const result = structure.check("https://duplojs.dev");
19
+
20
+ // Une validation réussie expose une valeur portant le type du contrat.
21
+ type _CheckStructureValue = DCommon.ExpectType<
22
+ DDataStructure.StructureValue<typeof structure>,
23
+ string & DString.Url,
24
+ "strict"
25
+ >;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @title DDataStructure.uuid
3
+ *
4
+ * Construire une contrainte d’UUID valide.
5
+ */
6
+ import type * as DCommon from "@duplojs/lang/common";
7
+ import * as DDataStructure from "@duplojs/lang/dataStructure";
8
+ import type * as DString from "@duplojs/lang/string";
9
+
10
+ const constraint = DDataStructure.uuid();
11
+ type _CheckConstraint = DCommon.ExpectType<
12
+ typeof constraint,
13
+ DDataStructure.UuidConstraint,
14
+ "strict"
15
+ >;
16
+
17
+ const structure = DDataStructure.string([constraint]);
18
+ const result = structure.check("550e8400-e29b-41d4-a716-446655440000");
19
+
20
+ // Une validation réussie expose une valeur portant le type du contrat.
21
+ type _CheckStructureValue = DCommon.ExpectType<
22
+ DDataStructure.StructureValue<typeof structure>,
23
+ string & DString.Uuid,
24
+ "strict"
25
+ >;
@@ -0,0 +1,264 @@
1
+ ## DDataStructure
2
+
3
+ Construction de contrats de données validables au runtime, composables et reflétés dans les types TypeScript.
4
+
5
+ ### [DDataStructure.absolutePath](10-absolutePath.ts)
6
+
7
+ Construire une contrainte de chemin absolu et l’appliquer à une structure de chaîne.
8
+
9
+ ### [DDataStructure.allowedCharacters](10-allowedCharacters.ts)
10
+
11
+ Construire une contrainte de caractères autorisés et l’appliquer à une structure de chaîne.
12
+
13
+ ### [DDataStructure.array](10-array.ts)
14
+
15
+ Construire une structure de tableau à partir de la structure de ses éléments.
16
+
17
+ ### [DDataStructure.arrayLengthEqual](10-arrayLengthEqual.ts)
18
+
19
+ Construire une contrainte de longueur exacte et l’appliquer à une structure de tableau.
20
+
21
+ ### [DDataStructure.betweenThan](10-betweenThan.ts)
22
+
23
+ Construire une contrainte de nombre strictement compris entre deux bornes.
24
+
25
+ ### [DDataStructure.betweenThanOrEqual](10-betweenThanOrEqual.ts)
26
+
27
+ Construire une contrainte de nombre compris entre deux bornes inclusives.
28
+
29
+ ### [DDataStructure.bigint](10-bigint.ts)
30
+
31
+ Construire une structure représentant des valeurs `bigint`.
32
+
33
+ ### [DDataStructure.boolean](10-boolean.ts)
34
+
35
+ Construire une structure représentant des valeurs booléennes.
36
+
37
+ ### [DDataStructure.createCodec](10-createCodec.ts)
38
+
39
+ Définir la conversion entre la valeur interne d’un type fondamental et sa représentation encodée.
40
+
41
+ ### [DDataStructure.createCodecs](10-createCodecs.ts)
42
+
43
+ Regrouper des codecs dans un contexte indexé par leurs types fondamentaux.
44
+
45
+ ### [DDataStructure.createErrorInterpreter](10-createErrorInterpreter.ts)
46
+
47
+ Transformer les issues d’une erreur de validation ou de codec en messages interprétables.
48
+
49
+ ### [DDataStructure.date](10-date.ts)
50
+
51
+ Construire une structure représentant les dates DuploJS.
52
+
53
+ ### [DDataStructure.email](10-email.ts)
54
+
55
+ Construire une contrainte d’adresse email et l’appliquer à une structure de chaîne.
56
+
57
+ ### [DDataStructure.endsWith](10-endsWith.ts)
58
+
59
+ Construire une contrainte de suffixe et l’appliquer à une structure de chaîne.
60
+
61
+ ### [DDataStructure.even](10-even.ts)
62
+
63
+ Construire une contrainte de nombre pair et l’appliquer à une structure numérique.
64
+
65
+ ### [DDataStructure.extend](10-extend.ts)
66
+
67
+ Étendre une structure objet en ajoutant ou en remplaçant des propriétés.
68
+
69
+ ### [DDataStructure.greaterThan](10-greaterThan.ts)
70
+
71
+ Construire une contrainte de nombre supérieur à un seuil.
72
+
73
+ ### [DDataStructure.greaterThanOrEqual](10-greaterThanOrEqual.ts)
74
+
75
+ Construire une contrainte de nombre supérieur ou égal à un seuil.
76
+
77
+ ### [DDataStructure.include](10-include.ts)
78
+
79
+ Construire une contrainte d’inclusion et l’appliquer à une structure de chaîne.
80
+
81
+ ### [DDataStructure.integer](10-integer.ts)
82
+
83
+ Construire une contrainte de nombre entier et l’appliquer à une structure numérique.
84
+
85
+ ### [DDataStructure.isNullStructure](10-isNullStructure.ts)
86
+
87
+ Vérifier qu’une structure représente exactement le type `null`.
88
+
89
+ ### [DDataStructure.isNullable](10-isNullable.ts)
90
+
91
+ Vérifier qu’une structure accepte la valeur `null`.
92
+
93
+ ### [DDataStructure.isOptional](10-isOptional.ts)
94
+
95
+ Vérifier qu’une structure accepte la valeur `undefined`.
96
+
97
+ ### [DDataStructure.isUndefinedStructure](10-isUndefinedStructure.ts)
98
+
99
+ Vérifier qu’une structure représente exactement le type `undefined`.
100
+
101
+ ### [DDataStructure.lazy](10-lazy.ts)
102
+
103
+ Construire une structure dont la résolution est différée.
104
+
105
+ ### [DDataStructure.lessThan](10-lessThan.ts)
106
+
107
+ Construire une contrainte de nombre inférieur à un seuil.
108
+
109
+ ### [DDataStructure.lessThanOrEqual](10-lessThanOrEqual.ts)
110
+
111
+ Construire une contrainte de nombre inférieur ou égal à un seuil.
112
+
113
+ ### [DDataStructure.literal](10-literal.ts)
114
+
115
+ Construire une structure représentant une ou plusieurs valeurs littérales.
116
+
117
+ ### [DDataStructure.maxCharacters](10-maxCharacters.ts)
118
+
119
+ Construire une contrainte de longueur maximale pour une chaîne.
120
+
121
+ ### [DDataStructure.maxElements](10-maxElements.ts)
122
+
123
+ Construire une contrainte de cardinalité maximale pour un tableau.
124
+
125
+ ### [DDataStructure.minCharacters](10-minCharacters.ts)
126
+
127
+ Construire une contrainte de longueur minimale pour une chaîne.
128
+
129
+ ### [DDataStructure.minElements](10-minElements.ts)
130
+
131
+ Construire une contrainte de cardinalité minimale pour un tableau.
132
+
133
+ ### [DDataStructure.multipleOf](10-multipleOf.ts)
134
+
135
+ Construire une contrainte de multiple numérique.
136
+
137
+ ### [DDataStructure.negative](10-negative.ts)
138
+
139
+ Construire une contrainte de nombre négatif ou nul.
140
+
141
+ ### [DDataStructure.notEmpty](10-notEmpty.ts)
142
+
143
+ Construire une contrainte qui refuse les chaînes vides.
144
+
145
+ ### [DDataStructure.notZero](10-notZero.ts)
146
+
147
+ Construire une contrainte qui refuse zéro.
148
+
149
+ ### [DDataStructure.null](10-null.ts)
150
+
151
+ Construire une structure représentant la valeur `null`.
152
+
153
+ ### [DDataStructure.nullable](10-nullable.ts)
154
+
155
+ Ajouter `null` aux valeurs acceptées par une structure.
156
+
157
+ ### [DDataStructure.number](10-number.ts)
158
+
159
+ Construire une structure représentant des nombres.
160
+
161
+ ### [DDataStructure.numberInString](10-numberInString.ts)
162
+
163
+ Construire une contrainte qui exige qu’une chaîne représente un nombre.
164
+
165
+ ### [DDataStructure.object](10-object.ts)
166
+
167
+ Construire une structure objet à partir d’une forme de propriétés.
168
+
169
+ ### [DDataStructure.odd](10-odd.ts)
170
+
171
+ Construire une contrainte de nombre impair.
172
+
173
+ ### [DDataStructure.optional](10-optional.ts)
174
+
175
+ Ajouter `undefined` aux valeurs acceptées par une structure.
176
+
177
+ ### [DDataStructure.partial](10-partial.ts)
178
+
179
+ Rendre optionnelles toutes les propriétés d’une structure objet.
180
+
181
+ ### [DDataStructure.path](10-path.ts)
182
+
183
+ Construire une contrainte qui exige une chaîne représentant un chemin.
184
+
185
+ ### [DDataStructure.positive](10-positive.ts)
186
+
187
+ Construire une contrainte de nombre positif ou nul.
188
+
189
+ ### [DDataStructure.record](10-record.ts)
190
+
191
+ Construire une structure d’objet dont les clés et les valeurs sont structurées.
192
+
193
+ ### [DDataStructure.refine](10-refine.ts)
194
+
195
+ Construire une contrainte personnalisée à partir d’un predicate DuploJS.
196
+
197
+ ### [DDataStructure.regex](10-regex.ts)
198
+
199
+ Construire une contrainte de correspondance avec une expression régulière.
200
+
201
+ ### [DDataStructure.required](10-required.ts)
202
+
203
+ Rendre obligatoires les propriétés d’une structure objet qui peuvent être `undefined`.
204
+
205
+ ### [DDataStructure.safe](10-safe.ts)
206
+
207
+ Construire une contrainte d’entier sûr JavaScript.
208
+
209
+ ### [DDataStructure.segmentPath](10-segmentPath.ts)
210
+
211
+ Construire une contrainte qui exige un segment de chemin.
212
+
213
+ ### [DDataStructure.startsWith](10-startsWith.ts)
214
+
215
+ Construire une contrainte de préfixe et l’appliquer à une structure de chaîne.
216
+
217
+ ### [DDataStructure.strictNegative](10-strictNegative.ts)
218
+
219
+ Construire une contrainte de nombre strictement négatif.
220
+
221
+ ### [DDataStructure.strictPositive](10-strictPositive.ts)
222
+
223
+ Construire une contrainte de nombre strictement positif.
224
+
225
+ ### [DDataStructure.string](10-string.ts)
226
+
227
+ Construire une structure représentant des chaînes de caractères.
228
+
229
+ ### [DDataStructure.stringLengthEqual](10-stringLengthEqual.ts)
230
+
231
+ Construire une contrainte de longueur exacte pour une chaîne.
232
+
233
+ ### [DDataStructure.time](10-time.ts)
234
+
235
+ Construire une structure représentant les heures DuploJS.
236
+
237
+ ### [DDataStructure.trimmed](10-trimmed.ts)
238
+
239
+ Construire une contrainte de chaîne sans espaces périphériques.
240
+
241
+ ### [DDataStructure.typeStructureIdentifier](10-typeStructureIdentifier.ts)
242
+
243
+ Identifier une structure de type et affiner son type TypeScript.
244
+
245
+ ### [DDataStructure.undefined](10-undefined.ts)
246
+
247
+ Construire une structure représentant la valeur `undefined`.
248
+
249
+ ### [DDataStructure.union](10-union.ts)
250
+
251
+ Construire une structure qui accepte plusieurs structures alternatives.
252
+
253
+ ### [DDataStructure.unwrapLazy](10-unwrapLazy.ts)
254
+
255
+ Résoudre une structure lazy et retourner la structure qu’elle contient.
256
+
257
+ ### [DDataStructure.url](10-url.ts)
258
+
259
+ Construire une contrainte d’URL valide.
260
+
261
+ ### [DDataStructure.uuid](10-uuid.ts)
262
+
263
+ Construire une contrainte d’UUID valide.
264
+
@@ -0,0 +1,3 @@
1
+ ## DDataStructure
2
+
3
+ Construction de contrats de données validables au runtime, composables et reflétés dans les types TypeScript.
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @title DEither.asyncGroup
3
+ *
4
+ * Regrouper séquentiellement des résultats synchrones ou asynchrones dans un Success.
5
+ */
6
+ import * as DEither from "@duplojs/lang/either";
7
+ import type * as DCommon from "@duplojs/lang/common";
8
+
9
+ const objectResult = DEither.asyncGroup({
10
+ user: () => Promise.resolve(DEither.success("Alice")),
11
+ count: DEither.success(2),
12
+ });
13
+
14
+ // La sortie attend chaque entrée et regroupe les valeurs déballées dans une Promise.
15
+ type _CheckObject = DCommon.ExpectType<
16
+ typeof objectResult,
17
+ Promise<DEither.Success<{
18
+ user: "Alice";
19
+ count: 2;
20
+ }>>,
21
+ "strict"
22
+ >;
23
+
24
+ // Le premier Left est retourné et les getters placés après lui ne sont pas exécutés.
25
+ const errorResult = DEither.asyncGroup({
26
+ user: () => Promise.resolve(DEither.success("Alice")),
27
+ error: () => Promise.resolve(DEither.error("user-not-found")),
28
+ skipped: () => Promise.resolve(DEither.success(2)),
29
+ });
30
+ type _CheckError = DCommon.ExpectType<
31
+ typeof errorResult,
32
+ Promise<DEither.Error<"user-not-found"> | DEither.Success<{
33
+ user: "Alice";
34
+ error: never;
35
+ skipped: 2;
36
+ }>>,
37
+ "strict"
38
+ >;
39
+
40
+ const tupleResult = DEither.asyncGroup([
41
+ () => Promise.resolve(DEither.success("Alice")),
42
+ () => Promise.resolve(DEither.success(2)),
43
+ ] as const);
44
+ type _CheckTuple = DCommon.ExpectType<typeof tupleResult, Promise<DEither.Success<["Alice", 2]>>, "strict">;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @title DEither.asyncSafeCallback
3
+ *
4
+ * Convertir une callback ou une promesse et ses exceptions en résultat asynchrone.
5
+ */
6
+ import * as DEither from "@duplojs/lang/either";
7
+ import type * as DCommon from "@duplojs/lang/common";
8
+
9
+ const result = DEither.asyncSafeCallback(() => Promise.resolve("saved" as const));
10
+
11
+ // La sortie est toujours une Promise et inclut le Left standard des erreurs capturées.
12
+ type _CheckResult = DCommon.ExpectType<
13
+ typeof result,
14
+ Promise<DEither.SafeCallbackSuccess<"saved"> | DEither.SafeCallbackError>,
15
+ "strict"
16
+ >;
17
+
18
+ const promiseInput = DEither.asyncSafeCallback(Promise.resolve("saved" as const));
19
+ type _CheckPromiseInput = DCommon.ExpectType<
20
+ typeof promiseInput,
21
+ Promise<DEither.SafeCallbackSuccess<"saved"> | DEither.SafeCallbackError>,
22
+ "strict"
23
+ >;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @title DEither.error
3
+ *
4
+ * Créer un Left standardisé avec l’information `error`.
5
+ */
6
+ import * as DEither from "@duplojs/lang/either";
7
+ import type * as DCommon from "@duplojs/lang/common";
8
+
9
+ const result = DEither.error("connection-failed");
10
+
11
+ // La sortie est un Left portant l’information littérale "error".
12
+ type _CheckResult = DCommon.ExpectType<typeof result, DEither.Error<"connection-failed">, "strict">;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @title DEither.expect
3
+ *
4
+ * Retourner un Either sans modifier sa valeur ni son type.
5
+ */
6
+ import * as DEither from "@duplojs/lang/either";
7
+ import type * as DCommon from "@duplojs/lang/common";
8
+
9
+ const input = DEither.success("saved");
10
+ const result = DEither.expect(input);
11
+
12
+ // La sortie conserve exactement le Right fourni en entrée.
13
+ type _CheckResult = DCommon.ExpectType<typeof result, DEither.Success<"saved">, "strict">;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @title DEither.fail
3
+ *
4
+ * Créer un Left standardisé représentant un échec sans valeur.
5
+ */
6
+ import * as DEither from "@duplojs/lang/either";
7
+ import type * as DCommon from "@duplojs/lang/common";
8
+
9
+ const result = DEither.fail();
10
+
11
+ // La sortie est `Fail`, un Left dont la valeur est `undefined`.
12
+ type _CheckResult = DCommon.ExpectType<typeof result, DEither.Fail, "strict">;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @title DEither.forwardAssertsSelection
3
+ *
4
+ * Affirmer qu’une information est sélectionnée et lever une exception sinon.
5
+ */
6
+ import * as DEither from "@duplojs/lang/either";
7
+ import * as DCommon from "@duplojs/lang/common";
8
+
9
+ const input = DEither.success("saved") as DEither.Success<"saved"> | DEither.Left<"missing", Error>;
10
+
11
+ // Appel classique : le type est réduit aux informations sélectionnées.
12
+ const direct = DEither.forwardAssertsSelection(input, {
13
+ success: true,
14
+ missing: false,
15
+ });
16
+ type _CheckDirect = DCommon.ExpectType<typeof direct, DEither.Success<"saved">, "strict">;
17
+
18
+ // Appel curifié : l’affirmation est placée dans le pipe.
19
+ const piped = DCommon.pipe(
20
+ input,
21
+ DEither.forwardAssertsSelection({
22
+ success: true,
23
+ missing: false,
24
+ }),
25
+ );
26
+ type _CheckPiped = DCommon.ExpectType<typeof piped, DEither.Success<"saved">, "strict">;
27
+
28
+ // Une information marquée `false` provoque `ForwardAssertsSelectionError` au runtime.