@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,46 @@
1
+ /**
2
+ * @title DGenerator.asyncConcat
3
+ *
4
+ * Enchaîner plusieurs itérables synchrones ou asynchrones dans un générateur asynchrone.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import * as DArray from "@duplojs/lang/array";
8
+ import * as DGenerator from "@duplojs/lang/generator";
9
+
10
+ const head = (async function *() {
11
+ await DCommon.timeout();
12
+ yield 1 as const;
13
+ yield 2 as const;
14
+ })();
15
+
16
+ const tail = (async function *() {
17
+ await DCommon.timeout();
18
+ yield 4 as const;
19
+ yield 5 as const;
20
+ })();
21
+
22
+ // Appel classique : les valeurs sont produites dans l’ordre [1, 2, 3, 4, 5].
23
+ const result = DGenerator.asyncConcat(head, [3] as const, tail);
24
+
25
+ type _CheckResult = DCommon.ExpectType<
26
+ typeof result,
27
+ AsyncGenerator<1 | 2 | 3 | 4 | 5, unknown, unknown>,
28
+ "strict"
29
+ >;
30
+
31
+ // Appel curifié : les itérables ajoutés sont configurés dans l’étape du pipe.
32
+ const piped = DCommon.pipe(
33
+ [1, 2],
34
+ DGenerator.asyncConcat(([
35
+ 3,
36
+ 4,
37
+ ] as number[])),
38
+ DArray.from,
39
+ );
40
+
41
+ // La promesse se résout vers [1, 2, 3, 4].
42
+ type _CheckPiped = DCommon.ExpectType<
43
+ typeof piped,
44
+ Promise<readonly number[]>,
45
+ "strict"
46
+ >;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @title DGenerator.asyncFilter
3
+ *
4
+ * Conserver dans un générateur asynchrone les valeurs acceptées par un prédicat.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import * as DArray from "@duplojs/lang/array";
8
+ import * as DGenerator from "@duplojs/lang/generator";
9
+ import * as DNumber from "@duplojs/lang/number";
10
+
11
+ const input = (async function *() {
12
+ await DCommon.timeout();
13
+ yield 1 as number;
14
+ yield 2 as number;
15
+ yield 3 as number;
16
+ yield 4 as number;
17
+ })();
18
+
19
+ // Appel classique : seuls les nombres supérieurs à deux sont produits.
20
+ const result = DGenerator.asyncFilter(input, DNumber.greaterThan(2));
21
+
22
+ // La sortie est un AsyncGenerator qui produit [3, 4].
23
+ type _CheckResult = DCommon.ExpectType<
24
+ typeof result,
25
+ AsyncGenerator<number & DNumber.GreaterThan<2>, unknown, unknown>,
26
+ "strict"
27
+ >;
28
+
29
+ // Appel curifié : le prédicat est configuré dans l’étape du pipe.
30
+ const piped = DCommon.pipe(
31
+ [1, 2, 3, 4] as number[],
32
+ DGenerator.asyncFilter(DNumber.isEven),
33
+ DArray.from,
34
+ );
35
+
36
+ // La promesse se résout vers [2, 4].
37
+ type _CheckPiped = DCommon.ExpectType<
38
+ typeof piped,
39
+ Promise<readonly (number & DNumber.Even)[]>,
40
+ "strict"
41
+ >;
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @title DGenerator.asyncFlat
3
+ *
4
+ * Aplatir récursivement les valeurs itérables d’un générateur asynchrone jusqu’à une profondeur donnée.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import * as DGenerator from "@duplojs/lang/generator";
8
+
9
+ const input = (async function *() {
10
+ await DCommon.timeout();
11
+ yield [[1], [2]] as const;
12
+ yield [[3]] as const;
13
+ })();
14
+
15
+ // Profondeur par défaut : un seul niveau est aplati, donc la sortie contient [[1], [2], [3]].
16
+ const result = DGenerator.asyncFlat(input);
17
+
18
+ type _CheckResult = DCommon.ExpectType<
19
+ typeof result,
20
+ AsyncGenerator<readonly [1] | readonly [2] | readonly [3], void, unknown>,
21
+ "strict"
22
+ >;
23
+
24
+ const nestedInput = (async function *() {
25
+ await DCommon.timeout();
26
+ yield [[1], [2]] as const;
27
+ yield [[3]] as const;
28
+ })();
29
+
30
+ // Une profondeur de deux aplati également les tuples internes : la sortie contient [1, 2, 3].
31
+ const deeplyFlattened = DGenerator.asyncFlat(nestedInput, 2);
32
+
33
+ type _CheckDeeplyFlattened = DCommon.ExpectType<
34
+ typeof deeplyFlattened,
35
+ AsyncGenerator<1 | 2 | 3, void, unknown>,
36
+ "strict"
37
+ >;
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @title DGenerator.asyncGroup
3
+ *
4
+ * Regrouper les valeurs d’un itérable asynchrone selon les sorties nommées d’une callback.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import * as DGenerator from "@duplojs/lang/generator";
8
+ import * as DNumber from "@duplojs/lang/number";
9
+ import * as DString from "@duplojs/lang/string";
10
+
11
+ const input = (async function *() {
12
+ await DCommon.timeout();
13
+ yield 1 as number;
14
+ yield 2 as number;
15
+ yield 3 as number;
16
+ })();
17
+
18
+ // Appel classique : chaque valeur est ajoutée au groupe dont le nom dépend de sa parité.
19
+ // Le ternaire porte sur la structure entière : `group` devient un discriminant littéral.
20
+ const result = DGenerator.asyncGroup(
21
+ input,
22
+ (item, params) => DNumber.isEven(item)
23
+ ? params.output("even", item)
24
+ : params.output("odd", item),
25
+ );
26
+
27
+ // La promesse se résout vers { odd: [1, 3], even: [2] }.
28
+ type _CheckResult = DCommon.ExpectType<
29
+ typeof result,
30
+ Promise<{
31
+ readonly even?: readonly [number & DNumber.Even, ...(number & DNumber.Even)[]] | undefined;
32
+ readonly odd?: readonly [number, ...number[]] | undefined;
33
+ }>,
34
+ "strict"
35
+ >;
36
+
37
+ // Appel curifié : le regroupement est configuré dans l’étape du pipe.
38
+ const values: string[] = ["a", "bb", "c"];
39
+
40
+ const piped = DCommon.pipe(
41
+ values,
42
+ DGenerator.asyncMap(async(item) => {
43
+ await DCommon.timeout();
44
+ return item;
45
+ }),
46
+ DGenerator.asyncGroup(async(item, params) => {
47
+ await DCommon.timeout();
48
+ return DString.lengthEqual(item, 1)
49
+ ? params.output("short", item)
50
+ : params.output("long", item);
51
+ }),
52
+ );
53
+
54
+ // La promesse se résout vers { short: ["a", "c"], long: ["bb"] }.
55
+ type _CheckPiped = DCommon.ExpectType<
56
+ typeof piped,
57
+ Promise<{
58
+ readonly long?: readonly [string, ...string[]] | undefined;
59
+ readonly short?: readonly [
60
+ string & DString.LengthEqual<1>,
61
+ ...(string & DString.LengthEqual<1>)[],
62
+ ] | undefined;
63
+ }>,
64
+ "strict"
65
+ >;
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @title DGenerator.asyncLoop
3
+ *
4
+ * Produire une séquence asynchrone dans un pipe en distinguant l’arrêt avec ou sans dernière valeur émise.
5
+ */
6
+ import * as DArray from "@duplojs/lang/array";
7
+ import * as DCommon from "@duplojs/lang/common";
8
+ import * as DGenerator from "@duplojs/lang/generator";
9
+ import * as DNumber from "@duplojs/lang/number";
10
+
11
+ // Arrêt sans dernière valeur : `exit()` termine la boucle asynchrone sans émettre d’élément supplémentaire.
12
+ const withoutExitValue = DCommon.pipe(
13
+ DGenerator.asyncLoop(async({ previousOutput, next, exit }: DGenerator.LoopParams<number>) => {
14
+ await DCommon.timeout();
15
+
16
+ if (previousOutput === 3) {
17
+ return exit();
18
+ }
19
+
20
+ return next(
21
+ previousOutput === undefined
22
+ ? 1
23
+ : DNumber.sum([previousOutput, 1]),
24
+ );
25
+ }),
26
+ DArray.from,
27
+ );
28
+
29
+ // La promesse se résout vers [1, 2, 3] : `exit()` n’émet aucune dernière valeur.
30
+ type _CheckWithoutExitValue = DCommon.ExpectType<
31
+ typeof withoutExitValue,
32
+ Promise<readonly number[]>,
33
+ "strict"
34
+ >;
35
+
36
+ // Arrêt avec dernière valeur : `exit("done")` termine la boucle en l’émettant.
37
+ const withExitValue = DCommon.pipe(
38
+ DGenerator.asyncLoop(async({ previousOutput, next, exit }: DGenerator.LoopParams<number>) => {
39
+ await DCommon.timeout();
40
+
41
+ if (previousOutput === 3) {
42
+ return exit("done");
43
+ }
44
+
45
+ return next(
46
+ previousOutput === undefined
47
+ ? 1
48
+ : DNumber.sum([previousOutput, 1]),
49
+ );
50
+ }),
51
+ DArray.from,
52
+ );
53
+
54
+ // La promesse se résout vers [1, 2, 3, "done"] : la valeur de `exit` est émise comme dernier élément.
55
+ type _CheckWithExitValue = DCommon.ExpectType<
56
+ typeof withExitValue,
57
+ Promise<readonly (number | "done")[]>,
58
+ "strict"
59
+ >;
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @title DGenerator.asyncMap
3
+ *
4
+ * Transformer chaque valeur dans un générateur asynchrone, en autorisant une callback synchrone ou asynchrone.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import * as DArray from "@duplojs/lang/array";
8
+ import * as DGenerator from "@duplojs/lang/generator";
9
+ import * as DNumber from "@duplojs/lang/number";
10
+
11
+ const input = (async function *() {
12
+ await DCommon.timeout();
13
+ yield 1;
14
+ yield 2;
15
+ })();
16
+
17
+ // Appel classique : chaque valeur est doublée après l’exécution de la callback asynchrone.
18
+ const result = DGenerator.asyncMap(
19
+ input,
20
+ async(item) => {
21
+ await DCommon.timeout();
22
+ return DNumber.sum([item, item]);
23
+ },
24
+ );
25
+
26
+ // La sortie est un AsyncGenerator qui produit [2, 4].
27
+ type _CheckResult = DCommon.ExpectType<
28
+ typeof result,
29
+ AsyncGenerator<number, unknown, unknown>,
30
+ "strict"
31
+ >;
32
+
33
+ // Appel curifié : la transformation est configurée dans l’étape du pipe.
34
+ const piped = DCommon.pipe(
35
+ [1, 2, 3],
36
+ DGenerator.asyncMap(async(item) => {
37
+ await DCommon.timeout();
38
+ return DNumber.sum([item, item, item]);
39
+ }),
40
+ DArray.from,
41
+ );
42
+
43
+ // La promesse se résout vers [3, 6, 9].
44
+ type _CheckPiped = DCommon.ExpectType<
45
+ typeof piped,
46
+ Promise<readonly number[]>,
47
+ "strict"
48
+ >;
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @title DGenerator.asyncReduce
3
+ *
4
+ * Réduire un itérable avec un accumulateur et des sorties next ou exit dans une promesse.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import * as DGenerator from "@duplojs/lang/generator";
8
+ import * as DNumber from "@duplojs/lang/number";
9
+
10
+ const input = (async function *() {
11
+ await DCommon.timeout();
12
+ yield 1;
13
+ yield 2;
14
+ yield 3;
15
+ })();
16
+
17
+ // Appel classique : le nombre initial est directement inféré comme accumulateur numérique.
18
+ const result = DGenerator.asyncReduce(
19
+ input,
20
+ 0,
21
+ async({ lastValue, item, next }) => {
22
+ await DCommon.timeout();
23
+ return next(DNumber.sum([lastValue, item]));
24
+ },
25
+ );
26
+
27
+ // La promesse se résout vers 6 et l’accumulateur est inféré comme number.
28
+ type _CheckResult = DCommon.ExpectType<typeof result, Promise<number>, "strict">;
29
+
30
+ type Accumulator =
31
+ | { total: number }
32
+ | { values: readonly number[] };
33
+
34
+ // Appel curifié : le générique porté par reduceFrom décrit une union sans utiliser `as`.
35
+ const piped = DCommon.pipe(
36
+ [1, 2, 3],
37
+ DGenerator.asyncReduce(DGenerator.reduceFrom<Accumulator>({ total: 0 }), async({ lastValue, next }) => {
38
+ await DCommon.timeout();
39
+ return next(lastValue);
40
+ }),
41
+ );
42
+
43
+ // La promesse conserve l’union { total: number } | { values: readonly number[] }.
44
+ type _CheckPiped = DCommon.ExpectType<
45
+ typeof piped,
46
+ Promise<Accumulator>,
47
+ "strict"
48
+ >;
49
+
50
+ // Une sortie exit interrompt la réduction : son type string est indépendant de l’accumulateur number.
51
+ const stopped = DGenerator.asyncReduce(
52
+ [1, 2, 3],
53
+ 0,
54
+ ({ item, lastValue, next, exit }) => item === 2
55
+ ? exit("stop")
56
+ : next(DNumber.sum([lastValue, item])),
57
+ );
58
+
59
+ type _CheckStopped = DCommon.ExpectType<
60
+ typeof stopped,
61
+ Promise<number | string>,
62
+ "strict"
63
+ >;
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @title DGenerator.chunk
3
+ *
4
+ * Regrouper les valeurs d’un itérable en sous-itérables de taille bornée.
5
+ */
6
+ import * as DArray from "@duplojs/lang/array";
7
+ import * as DCommon from "@duplojs/lang/common";
8
+ import * as DGenerator from "@duplojs/lang/generator";
9
+
10
+ const input: number[] = [1, 2, 3, 4, 5];
11
+
12
+ // Appel classique : les valeurs sont produites dans des groupes d’au plus deux éléments.
13
+ const result = DGenerator.chunk(input, 2);
14
+
15
+ // La sortie est un générateur qui produit [[1, 2], [3, 4], [5]].
16
+ type _CheckResult = DCommon.ExpectType<
17
+ typeof result,
18
+ Generator<
19
+ & readonly number[]
20
+ & DArray.MinElements<1>
21
+ & DArray.MaxElements<2>,
22
+ unknown,
23
+ unknown
24
+ >,
25
+ "strict"
26
+ >;
27
+
28
+ // Appel curifié : la taille est configurée dans l’étape du pipe.
29
+ const piped = DCommon.pipe(
30
+ input,
31
+ DGenerator.chunk(3),
32
+ DArray.from,
33
+ );
34
+
35
+ // La sortie vaut [[1, 2, 3], [4, 5]].
36
+ type _CheckPiped = DCommon.ExpectType<
37
+ typeof piped,
38
+ readonly (
39
+ & readonly number[]
40
+ & DArray.MinElements<1>
41
+ & DArray.MaxElements<3>
42
+ )[],
43
+ "strict"
44
+ >;
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @title DGenerator.concat
3
+ *
4
+ * Enchaîner plusieurs itérables dans un générateur synchrone.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import * as DArray from "@duplojs/lang/array";
8
+ import * as DGenerator from "@duplojs/lang/generator";
9
+
10
+ // Appel classique : les valeurs sont produites dans l’ordre [1, 2, 3, 4].
11
+ const result = DGenerator.concat(
12
+ [1, 2] as const,
13
+ [3] as const,
14
+ [4] as const,
15
+ );
16
+
17
+ type _CheckResult = DCommon.ExpectType<
18
+ typeof result,
19
+ Generator<1 | 2 | 3 | 4, unknown, unknown>,
20
+ "strict"
21
+ >;
22
+
23
+ const tail: Iterable<number> = [3, 4];
24
+
25
+ // Appel curifié : les itérables ajoutés sont configurés dans l’étape du pipe.
26
+ const piped = DCommon.pipe(
27
+ [1, 2],
28
+ DGenerator.concat(tail),
29
+ DArray.from,
30
+ );
31
+
32
+ // La sortie vaut [1, 2, 3, 4].
33
+ type _CheckPiped = DCommon.ExpectType<
34
+ typeof piped,
35
+ readonly number[],
36
+ "strict"
37
+ >;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @title DGenerator.createExternalAsyncGenerator
3
+ *
4
+ * Créer un générateur asynchrone dont la prochaine valeur ou la fin sont déclenchées de l’extérieur.
5
+ */
6
+ import type * as DCommon from "@duplojs/lang/common";
7
+ import * as DGenerator from "@duplojs/lang/generator";
8
+
9
+ const external = DGenerator.createExternalAsyncGenerator<number>();
10
+
11
+ // L’itérateur attend un appel à `next` et produira ensuite la valeur fournie.
12
+ const nextResult = external.next(12);
13
+
14
+ type _CheckNext = DCommon.ExpectType<typeof nextResult, undefined, "strict">;
15
+
16
+ // `exit` termine l’itérateur sans produire de valeur.
17
+ const exitResult = external.exit();
18
+
19
+ type _CheckExit = DCommon.ExpectType<typeof exitResult, undefined, "strict">;
20
+
21
+ type _CheckExternal = DCommon.ExpectType<
22
+ typeof external,
23
+ {
24
+ asyncGenerator: AsyncGenerator<number, void, unknown>;
25
+ next(item: number): undefined;
26
+ exit(): undefined;
27
+ },
28
+ "strict"
29
+ >;
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @title DGenerator.execute
3
+ *
4
+ * Consommer une génératrice jusqu’à sa fin, en retournant une promesse pour les génératrices asynchrones.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import * as DGenerator from "@duplojs/lang/generator";
8
+
9
+ // Appel synchrone : `loop` rappelle sa callback comme une boucle `while`,
10
+ // puis `map` traite chaque valeur avant qu’`execute` ne consomme la génératrice.
11
+ const result = DCommon.pipe(
12
+ DGenerator.loop(({ count, next, exit }: DGenerator.LoopParams<number>) => {
13
+ if (count === 3) {
14
+ return exit();
15
+ }
16
+
17
+ return next(count);
18
+ }),
19
+ DGenerator.map(DCommon.forwardLog),
20
+ DGenerator.execute,
21
+ );
22
+
23
+ // La génératrice est consommée jusqu’à sa fin et chaque valeur est transmise à `forwardLog`.
24
+ type _CheckResult = DCommon.ExpectType<typeof result, void, "strict">;
25
+
26
+ // Appel asynchrone : `asyncLoop` produit une génératrice asynchrone,
27
+ // et `execute` retourne une promesse résolue après le traitement de chaque valeur.
28
+ const asyncResult = DCommon.pipe(
29
+ DGenerator.asyncLoop(async({ count, next, exit }: DGenerator.LoopParams<number>) => {
30
+ await DCommon.timeout();
31
+
32
+ return count === 3
33
+ ? exit()
34
+ : next(count);
35
+ }),
36
+ DGenerator.asyncMap(DCommon.forwardLog),
37
+ DGenerator.execute,
38
+ );
39
+
40
+ type _CheckAsyncResult = DCommon.ExpectType<
41
+ typeof asyncResult,
42
+ Promise<void>,
43
+ "strict"
44
+ >;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @title DGenerator.filter
3
+ *
4
+ * Conserver dans un générateur les valeurs acceptées par un prédicat.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import * as DArray from "@duplojs/lang/array";
8
+ import * as DGenerator from "@duplojs/lang/generator";
9
+ import * as DNumber from "@duplojs/lang/number";
10
+
11
+ const input: number[] = [1, 2, 3, 4];
12
+
13
+ // Appel classique : seuls les nombres supérieurs à deux sont produits.
14
+ const result = DGenerator.filter(input, DNumber.greaterThan(2));
15
+
16
+ // La sortie est un générateur qui produit [3, 4] et conserve l’affinement du prédicat.
17
+ type _CheckResult = DCommon.ExpectType<
18
+ typeof result,
19
+ Generator<number & DNumber.GreaterThan<2>, unknown, unknown>,
20
+ "strict"
21
+ >;
22
+
23
+ // Appel curifié : le prédicat est configuré dans l’étape du pipe.
24
+ const piped = DCommon.pipe(
25
+ input,
26
+ DGenerator.filter(DNumber.isEven),
27
+ DArray.from,
28
+ );
29
+
30
+ // La sortie vaut [2, 4].
31
+ type _CheckPiped = DCommon.ExpectType<
32
+ typeof piped,
33
+ readonly (number & DNumber.Even)[],
34
+ "strict"
35
+ >;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @title DGenerator.flat
3
+ *
4
+ * Aplatir récursivement les valeurs itérables jusqu’à une profondeur donnée.
5
+ */
6
+ import type * as DCommon from "@duplojs/lang/common";
7
+ import * as DGenerator from "@duplojs/lang/generator";
8
+
9
+ // Profondeur par défaut : un seul niveau est aplati et la sortie contient [1, 2, 3].
10
+ const result = DGenerator.flat([[1, 2], [3]] as const);
11
+
12
+ type _CheckResult = DCommon.ExpectType<
13
+ typeof result,
14
+ Generator<1 | 2 | 3, void, unknown>,
15
+ "strict"
16
+ >;
17
+
18
+ // Une profondeur de deux aplati deux niveaux et produit également [1, 2, 3].
19
+ const deeplyFlattened = DGenerator.flat([[[1], [2]], [[3]]] as const, 2);
20
+
21
+ type _CheckDeeplyFlattened = DCommon.ExpectType<
22
+ typeof deeplyFlattened,
23
+ Generator<1 | 2 | 3, void, unknown>,
24
+ "strict"
25
+ >;
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @title DGenerator.group
3
+ *
4
+ * Regrouper les valeurs d’un itérable selon les sorties nommées d’une callback.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import * as DGenerator from "@duplojs/lang/generator";
8
+ import * as DString from "@duplojs/lang/string";
9
+
10
+ const input: string[] = ["a", "bb", "c"];
11
+
12
+ // Appel classique : chaque valeur est ajoutée au groupe dont le nom dépend de sa longueur.
13
+ // Le ternaire porte sur la structure entière : `group` devient un discriminant littéral.
14
+ const result = DGenerator.group(
15
+ input,
16
+ (item, params) => DString.lengthEqual(item, 1)
17
+ ? params.output("short", item)
18
+ : params.output("long", item),
19
+ );
20
+
21
+ // La sortie vaut { short: ["a", "c"], long: ["bb"] }.
22
+ type _CheckResult = DCommon.ExpectType<
23
+ typeof result,
24
+ {
25
+ readonly long?: readonly [string, ...string[]] | undefined;
26
+ readonly short?: readonly [string & DString.LengthEqual<1>, ...(string & DString.LengthEqual<1>)[]] | undefined;
27
+ },
28
+ "strict"
29
+ >;
30
+
31
+ // Appel curifié : le regroupement est configuré dans l’étape du pipe.
32
+ const piped = DCommon.pipe(
33
+ input,
34
+ DGenerator.group((item, params) => params.output("value", item)),
35
+ );
36
+
37
+ // La sortie vaut { value: ["a", "bb", "c"] }.
38
+ type _CheckPiped = DCommon.ExpectType<
39
+ typeof piped,
40
+ {
41
+ readonly value?: readonly [string, ...string[]] | undefined;
42
+ },
43
+ "strict"
44
+ >;
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @title DGenerator.groupOutput
3
+ *
4
+ * Construire une sortie nommée destinée à la fonction de regroupement.
5
+ */
6
+ import * as DCommon from "@duplojs/lang/common";
7
+ import * as DGenerator from "@duplojs/lang/generator";
8
+ import * as DPattern from "@duplojs/lang/pattern";
9
+ import * as DString from "@duplojs/lang/string";
10
+
11
+ declare const value: number;
12
+
13
+ // Appel classique : associer directement la valeur au groupe `even`.
14
+ const result = DGenerator.groupOutput("even", value);
15
+
16
+ // La sortie associe le groupe `even` à la valeur fournie.
17
+ type _CheckResult = DCommon.ExpectType<
18
+ typeof result,
19
+ DGenerator.GroupOutputResult<"even", number>,
20
+ "strict"
21
+ >;
22
+
23
+ // Composition dans un pipe : le pattern `when` sélectionne le premier groupe,
24
+ // puis `otherwise` traite le reste sans ouvrir de callback intermédiaire.
25
+ const input: string[] = ["a", "bb", "c"];
26
+
27
+ const piped = DCommon.pipe(
28
+ input,
29
+ DGenerator.group(
30
+ DCommon.innerPipe(
31
+ DPattern.when(
32
+ DString.lengthEqual(1),
33
+ DGenerator.groupOutput("short"),
34
+ ),
35
+ DPattern.otherwise(DGenerator.groupOutput("long")),
36
+ ),
37
+ ),
38
+ );
39
+
40
+ // La sortie vaut { short: ["a", "c"], long: ["bb"] }.
41
+ type _CheckPiped = DCommon.ExpectType<
42
+ typeof piped,
43
+ {
44
+ readonly long?: readonly [string, ...string[]] | undefined;
45
+ readonly short?: readonly [string & DString.LengthEqual<1>, ...(string & DString.LengthEqual<1>)[]] | undefined;
46
+ },
47
+ "strict"
48
+ >;