@duplojs/agents-kit 0.0.0-stage → 0.1.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -2
- package/dist/bin/index.d.ts +2 -0
- package/dist/bin/index.mjs +7 -0
- package/dist/bin/installSkill/index.d.ts +2 -0
- package/dist/bin/installSkill/index.mjs +25 -0
- package/dist/bin/installSkill/skill.d.ts +28 -0
- package/dist/bin/installSkill/skill.mjs +58 -0
- package/dist/bin/packagePath.d.ts +2 -0
- package/dist/bin/packagePath.mjs +12 -0
- package/dist/bin/setup/index.d.ts +12 -0
- package/dist/bin/setup/index.mjs +33 -0
- package/dist/bin/setup/instructions.d.ts +8 -0
- package/dist/bin/setup/instructions.mjs +27 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +0 -0
- package/docs/API/10-lang/10-array/10-at.ts +65 -0
- package/docs/API/10-lang/10-array/10-chunk.ts +42 -0
- package/docs/API/10-lang/10-array/10-coalescing.ts +20 -0
- package/docs/API/10-lang/10-array/10-concat.ts +34 -0
- package/docs/API/10-lang/10-array/10-copyWithin.ts +34 -0
- package/docs/API/10-lang/10-array/10-every.ts +25 -0
- package/docs/API/10-lang/10-array/10-fill.ts +34 -0
- package/docs/API/10-lang/10-array/10-fillAll.ts +34 -0
- package/docs/API/10-lang/10-array/10-filter.ts +43 -0
- package/docs/API/10-lang/10-array/10-find.ts +33 -0
- package/docs/API/10-lang/10-array/10-findAndReplace.ts +35 -0
- package/docs/API/10-lang/10-array/10-findAndSpliceDelete.ts +35 -0
- package/docs/API/10-lang/10-array/10-findAndSpliceInsert.ts +35 -0
- package/docs/API/10-lang/10-array/10-findAndSpliceReplace.ts +24 -0
- package/docs/API/10-lang/10-array/10-findDuplicates.ts +19 -0
- package/docs/API/10-lang/10-array/10-findIndex.ts +25 -0
- package/docs/API/10-lang/10-array/10-findLast.ts +33 -0
- package/docs/API/10-lang/10-array/10-findLastIndex.ts +25 -0
- package/docs/API/10-lang/10-array/10-first.ts +21 -0
- package/docs/API/10-lang/10-array/10-flat.ts +22 -0
- package/docs/API/10-lang/10-array/10-flatMap.ts +24 -0
- package/docs/API/10-lang/10-array/10-from.ts +25 -0
- package/docs/API/10-lang/10-array/10-group.ts +27 -0
- package/docs/API/10-lang/10-array/10-groupOutput.ts +30 -0
- package/docs/API/10-lang/10-array/10-includes.ts +24 -0
- package/docs/API/10-lang/10-array/10-indexOf.ts +24 -0
- package/docs/API/10-lang/10-array/10-insert.ts +34 -0
- package/docs/API/10-lang/10-array/10-is.ts +29 -0
- package/docs/API/10-lang/10-array/10-isLastIndex.ts +24 -0
- package/docs/API/10-lang/10-array/10-last.ts +21 -0
- package/docs/API/10-lang/10-array/10-lastIndexOf.ts +24 -0
- package/docs/API/10-lang/10-array/10-length.ts +28 -0
- package/docs/API/10-lang/10-array/10-lengthEqual.ts +39 -0
- package/docs/API/10-lang/10-array/10-map.ts +34 -0
- package/docs/API/10-lang/10-array/10-maxElements.ts +44 -0
- package/docs/API/10-lang/10-array/10-minElements.ts +44 -0
- package/docs/API/10-lang/10-array/10-notIncludes.ts +24 -0
- package/docs/API/10-lang/10-array/10-pop.ts +23 -0
- package/docs/API/10-lang/10-array/10-prepend.ts +34 -0
- package/docs/API/10-lang/10-array/10-push.ts +34 -0
- package/docs/API/10-lang/10-array/10-reduce.ts +28 -0
- package/docs/API/10-lang/10-array/10-reduceFrom.ts +16 -0
- package/docs/API/10-lang/10-array/10-reduceRight.ts +28 -0
- package/docs/API/10-lang/10-array/10-reverse.ts +25 -0
- package/docs/API/10-lang/10-array/10-select.ts +26 -0
- package/docs/API/10-lang/10-array/10-set.ts +24 -0
- package/docs/API/10-lang/10-array/10-shift.ts +23 -0
- package/docs/API/10-lang/10-array/10-slice.ts +24 -0
- package/docs/API/10-lang/10-array/10-some.ts +25 -0
- package/docs/API/10-lang/10-array/10-sort.ts +34 -0
- package/docs/API/10-lang/10-array/10-spliceDelete.ts +34 -0
- package/docs/API/10-lang/10-array/10-spliceInsert.ts +34 -0
- package/docs/API/10-lang/10-array/10-spliceReplace.ts +24 -0
- package/docs/API/10-lang/10-array/10-unshift.ts +34 -0
- package/docs/API/10-lang/10-array/index.llms.md +220 -0
- package/docs/API/10-lang/10-array/index.md +3 -0
- package/docs/API/10-lang/10-chrono/10-addDays.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-addHours.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-addMilliseconds.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-addMinutes.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-addMonths.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-addSeconds.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-addTime.ts +38 -0
- package/docs/API/10-lang/10-chrono/10-addWeeks.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-addYears.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-applyTimezone.ts +29 -0
- package/docs/API/10-lang/10-chrono/10-betweenThanDate.ts +27 -0
- package/docs/API/10-lang/10-chrono/10-betweenThanOrEqualDate.ts +27 -0
- package/docs/API/10-lang/10-chrono/10-betweenThanOrEqualTime.ts +27 -0
- package/docs/API/10-lang/10-chrono/10-betweenThanTime.ts +27 -0
- package/docs/API/10-lang/10-chrono/10-closestTo.ts +45 -0
- package/docs/API/10-lang/10-chrono/10-computeTime.ts +35 -0
- package/docs/API/10-lang/10-chrono/10-createDate.ts +122 -0
- package/docs/API/10-lang/10-chrono/10-createDateOrThrow.ts +39 -0
- package/docs/API/10-lang/10-chrono/10-createTime.ts +86 -0
- package/docs/API/10-lang/10-chrono/10-createTimeOrThrow.ts +28 -0
- package/docs/API/10-lang/10-chrono/10-eachDate.ts +67 -0
- package/docs/API/10-lang/10-chrono/10-equalDate.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-equalTime.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-formatDate.ts +43 -0
- package/docs/API/10-lang/10-chrono/10-formatTime.ts +37 -0
- package/docs/API/10-lang/10-chrono/10-getDayOfMonth.ts +37 -0
- package/docs/API/10-lang/10-chrono/10-getDayOfWeek.ts +30 -0
- package/docs/API/10-lang/10-chrono/10-getDayOfYear.ts +28 -0
- package/docs/API/10-lang/10-chrono/10-getDifference.ts +29 -0
- package/docs/API/10-lang/10-chrono/10-getFirstDayOfMonth.ts +24 -0
- package/docs/API/10-lang/10-chrono/10-getFirstDayOfWeek.ts +24 -0
- package/docs/API/10-lang/10-chrono/10-getHour.ts +28 -0
- package/docs/API/10-lang/10-chrono/10-getLastDayOfMonth.ts +24 -0
- package/docs/API/10-lang/10-chrono/10-getLastDayOfWeek.ts +24 -0
- package/docs/API/10-lang/10-chrono/10-getMilliseconds.ts +24 -0
- package/docs/API/10-lang/10-chrono/10-getMinute.ts +27 -0
- package/docs/API/10-lang/10-chrono/10-getMonth.ts +27 -0
- package/docs/API/10-lang/10-chrono/10-getSecond.ts +27 -0
- package/docs/API/10-lang/10-chrono/10-getTimezoneOffset.ts +28 -0
- package/docs/API/10-lang/10-chrono/10-getWeekOfYear.ts +27 -0
- package/docs/API/10-lang/10-chrono/10-getYear.ts +27 -0
- package/docs/API/10-lang/10-chrono/10-greaterThanDate.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-greaterThanOrEqualDate.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-greaterThanOrEqualTime.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-greaterThanTime.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-isDate.ts +36 -0
- package/docs/API/10-lang/10-chrono/10-isSafeTimeValue.ts +19 -0
- package/docs/API/10-lang/10-chrono/10-isSafeTimestamp.ts +19 -0
- package/docs/API/10-lang/10-chrono/10-isSerializedTheDate.ts +41 -0
- package/docs/API/10-lang/10-chrono/10-isSerializedTheTime.ts +41 -0
- package/docs/API/10-lang/10-chrono/10-isTime.ts +36 -0
- package/docs/API/10-lang/10-chrono/10-lessThanDate.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-lessThanOrEqualDate.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-lessThanOrEqualTime.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-lessThanTime.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-makeSafeTimeValue.ts +19 -0
- package/docs/API/10-lang/10-chrono/10-makeSafeTimestamp.ts +19 -0
- package/docs/API/10-lang/10-chrono/10-maxDate.ts +19 -0
- package/docs/API/10-lang/10-chrono/10-maxTime.ts +19 -0
- package/docs/API/10-lang/10-chrono/10-minDate.ts +19 -0
- package/docs/API/10-lang/10-chrono/10-minTime.ts +19 -0
- package/docs/API/10-lang/10-chrono/10-now.ts +13 -0
- package/docs/API/10-lang/10-chrono/10-round.ts +41 -0
- package/docs/API/10-lang/10-chrono/10-serialize.ts +23 -0
- package/docs/API/10-lang/10-chrono/10-sortDates.ts +30 -0
- package/docs/API/10-lang/10-chrono/10-sortTimes.ts +29 -0
- package/docs/API/10-lang/10-chrono/10-subtractDays.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-subtractHours.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-subtractMilliseconds.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-subtractMinutes.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-subtractMonths.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-subtractSeconds.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-subtractTime.ts +38 -0
- package/docs/API/10-lang/10-chrono/10-subtractWeeks.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-subtractYears.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-toDateISOString.ts +17 -0
- package/docs/API/10-lang/10-chrono/10-toNative.ts +25 -0
- package/docs/API/10-lang/10-chrono/10-toTimeValue.ts +17 -0
- package/docs/API/10-lang/10-chrono/10-toTimestamp.ts +17 -0
- package/docs/API/10-lang/10-chrono/10-today.ts +13 -0
- package/docs/API/10-lang/10-chrono/10-tomorrow.ts +13 -0
- package/docs/API/10-lang/10-chrono/10-yesterday.ts +13 -0
- package/docs/API/10-lang/10-chrono/index.llms.md +332 -0
- package/docs/API/10-lang/10-chrono/index.md +3 -0
- package/docs/API/10-lang/10-common/10-and.ts +51 -0
- package/docs/API/10-lang/10-common/10-asserts.ts +13 -0
- package/docs/API/10-lang/10-common/10-asyncInnerPipe.ts +23 -0
- package/docs/API/10-lang/10-common/10-asyncLoop.ts +25 -0
- package/docs/API/10-lang/10-common/10-asyncPipe.ts +21 -0
- package/docs/API/10-lang/10-common/10-callThen.ts +22 -0
- package/docs/API/10-lang/10-common/10-cast.ts +16 -0
- package/docs/API/10-lang/10-common/10-clone.ts +12 -0
- package/docs/API/10-lang/10-common/10-createAsyncRetry.ts +34 -0
- package/docs/API/10-lang/10-common/10-createBuilder.ts +19 -0
- package/docs/API/10-lang/10-common/10-createEnum.ts +25 -0
- package/docs/API/10-lang/10-common/10-createExternalPromise.ts +13 -0
- package/docs/API/10-lang/10-common/10-createFormData.ts +16 -0
- package/docs/API/10-lang/10-common/10-createInterpolation.ts +12 -0
- package/docs/API/10-lang/10-common/10-createQueue.ts +17 -0
- package/docs/API/10-lang/10-common/10-createTransformer.ts +16 -0
- package/docs/API/10-lang/10-common/10-detachObjectMethod.ts +20 -0
- package/docs/API/10-lang/10-common/10-equal.ts +37 -0
- package/docs/API/10-lang/10-common/10-escapeRegExp.ts +11 -0
- package/docs/API/10-lang/10-common/10-falsy.ts +31 -0
- package/docs/API/10-lang/10-common/10-forward.ts +11 -0
- package/docs/API/10-lang/10-common/10-forwardAsserts.ts +17 -0
- package/docs/API/10-lang/10-common/10-forwardLog.ts +11 -0
- package/docs/API/10-lang/10-common/10-infer.ts +16 -0
- package/docs/API/10-lang/10-common/10-innerPipe.ts +23 -0
- package/docs/API/10-lang/10-common/10-instanceOf.ts +34 -0
- package/docs/API/10-lang/10-common/10-isType.ts +35 -0
- package/docs/API/10-lang/10-common/10-justExec.ts +28 -0
- package/docs/API/10-lang/10-common/10-justReturn.ts +19 -0
- package/docs/API/10-lang/10-common/10-loop.ts +20 -0
- package/docs/API/10-lang/10-common/10-memo.ts +12 -0
- package/docs/API/10-lang/10-common/10-memoObject.ts +11 -0
- package/docs/API/10-lang/10-common/10-memoPromise.ts +16 -0
- package/docs/API/10-lang/10-common/10-or.ts +43 -0
- package/docs/API/10-lang/10-common/10-pipe.ts +21 -0
- package/docs/API/10-lang/10-common/10-pipeCall.ts +20 -0
- package/docs/API/10-lang/10-common/10-prepareAsyncPipe.ts +20 -0
- package/docs/API/10-lang/10-common/10-preparePipe.ts +20 -0
- package/docs/API/10-lang/10-common/10-promiseAll.ts +16 -0
- package/docs/API/10-lang/10-common/10-promiseObject.ts +22 -0
- package/docs/API/10-lang/10-common/10-removeConstraint.ts +13 -0
- package/docs/API/10-lang/10-common/10-shameOnYou.ts +20 -0
- package/docs/API/10-lang/10-common/10-simpleClone.ts +12 -0
- package/docs/API/10-lang/10-common/10-stringToBytes.ts +16 -0
- package/docs/API/10-lang/10-common/10-stringToMillisecond.ts +17 -0
- package/docs/API/10-lang/10-common/10-tap.ts +28 -0
- package/docs/API/10-lang/10-common/10-timeout.ts +11 -0
- package/docs/API/10-lang/10-common/10-toCurriedPredicate.ts +28 -0
- package/docs/API/10-lang/10-common/10-toJSON.ts +15 -0
- package/docs/API/10-lang/10-common/10-toNative.ts +15 -0
- package/docs/API/10-lang/10-common/10-toRegExp.ts +17 -0
- package/docs/API/10-lang/10-common/10-transformer.ts +21 -0
- package/docs/API/10-lang/10-common/10-truthy.ts +31 -0
- package/docs/API/10-lang/10-common/10-useAsyncRetry.ts +31 -0
- package/docs/API/10-lang/10-common/10-when.ts +27 -0
- package/docs/API/10-lang/10-common/10-whenElse.ts +28 -0
- package/docs/API/10-lang/10-common/10-whenNot.ts +57 -0
- package/docs/API/10-lang/10-common/index.llms.md +232 -0
- package/docs/API/10-lang/10-common/index.md +3 -0
- package/docs/API/10-lang/10-dataStructure/10-absolutePath.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-allowedCharacters.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-array.ts +23 -0
- package/docs/API/10-lang/10-dataStructure/10-arrayLengthEqual.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-betweenThan.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-betweenThanOrEqual.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-bigint.ts +22 -0
- package/docs/API/10-lang/10-dataStructure/10-boolean.ts +22 -0
- package/docs/API/10-lang/10-dataStructure/10-createCodec.ts +45 -0
- package/docs/API/10-lang/10-dataStructure/10-createCodecs.ts +134 -0
- package/docs/API/10-lang/10-dataStructure/10-createErrorInterpreter.ts +74 -0
- package/docs/API/10-lang/10-dataStructure/10-date.ts +23 -0
- package/docs/API/10-lang/10-dataStructure/10-email.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-endsWith.ts +24 -0
- package/docs/API/10-lang/10-dataStructure/10-even.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-extend.ts +27 -0
- package/docs/API/10-lang/10-dataStructure/10-greaterThan.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-greaterThanOrEqual.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-include.ts +24 -0
- package/docs/API/10-lang/10-dataStructure/10-integer.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-isNullStructure.ts +12 -0
- package/docs/API/10-lang/10-dataStructure/10-isNullable.ts +12 -0
- package/docs/API/10-lang/10-dataStructure/10-isOptional.ts +12 -0
- package/docs/API/10-lang/10-dataStructure/10-isUndefinedStructure.ts +12 -0
- package/docs/API/10-lang/10-dataStructure/10-lazy.ts +23 -0
- package/docs/API/10-lang/10-dataStructure/10-lessThan.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-lessThanOrEqual.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-literal.ts +19 -0
- package/docs/API/10-lang/10-dataStructure/10-maxCharacters.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-maxElements.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-minCharacters.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-minElements.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-multipleOf.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-negative.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-notEmpty.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-notZero.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-null.ts +22 -0
- package/docs/API/10-lang/10-dataStructure/10-nullable.ts +19 -0
- package/docs/API/10-lang/10-dataStructure/10-number.ts +22 -0
- package/docs/API/10-lang/10-dataStructure/10-numberInString.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-object.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-odd.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-optional.ts +19 -0
- package/docs/API/10-lang/10-dataStructure/10-partial.ts +23 -0
- package/docs/API/10-lang/10-dataStructure/10-path.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-positive.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-record.ts +22 -0
- package/docs/API/10-lang/10-dataStructure/10-refine.ts +27 -0
- package/docs/API/10-lang/10-dataStructure/10-regex.ts +24 -0
- package/docs/API/10-lang/10-dataStructure/10-required.ts +21 -0
- package/docs/API/10-lang/10-dataStructure/10-safe.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-segmentPath.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-startsWith.ts +24 -0
- package/docs/API/10-lang/10-dataStructure/10-strictNegative.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-strictPositive.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-string.ts +22 -0
- package/docs/API/10-lang/10-dataStructure/10-stringLengthEqual.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-time.ts +23 -0
- package/docs/API/10-lang/10-dataStructure/10-trimmed.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-typeStructureIdentifier.ts +33 -0
- package/docs/API/10-lang/10-dataStructure/10-undefined.ts +22 -0
- package/docs/API/10-lang/10-dataStructure/10-union.ts +24 -0
- package/docs/API/10-lang/10-dataStructure/10-unwrapLazy.ts +17 -0
- package/docs/API/10-lang/10-dataStructure/10-url.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/10-uuid.ts +25 -0
- package/docs/API/10-lang/10-dataStructure/index.llms.md +264 -0
- package/docs/API/10-lang/10-dataStructure/index.md +3 -0
- package/docs/API/10-lang/10-either/10-asyncGroup.ts +44 -0
- package/docs/API/10-lang/10-either/10-asyncSafeCallback.ts +25 -0
- package/docs/API/10-lang/10-either/10-error.ts +12 -0
- package/docs/API/10-lang/10-either/10-expect.ts +13 -0
- package/docs/API/10-lang/10-either/10-extractErrorInLeft.ts +45 -0
- package/docs/API/10-lang/10-either/10-fail.ts +12 -0
- package/docs/API/10-lang/10-either/10-forwardAssertsSelection.ts +28 -0
- package/docs/API/10-lang/10-either/10-group.ts +58 -0
- package/docs/API/10-lang/10-either/10-hasInformation.ts +30 -0
- package/docs/API/10-lang/10-either/10-isLeft.ts +25 -0
- package/docs/API/10-lang/10-either/10-isRight.ts +25 -0
- package/docs/API/10-lang/10-either/10-isSelected.ts +41 -0
- package/docs/API/10-lang/10-either/10-keepAsRightByInformation.ts +29 -0
- package/docs/API/10-lang/10-either/10-keepAsRightSelection.ts +23 -0
- package/docs/API/10-lang/10-either/10-left.ts +13 -0
- package/docs/API/10-lang/10-either/10-matchInformation.ts +28 -0
- package/docs/API/10-lang/10-either/10-matchInformationCombination.ts +61 -0
- package/docs/API/10-lang/10-either/10-matchInformationCombinationOtherwise.ts +62 -0
- package/docs/API/10-lang/10-either/10-matchInformationOtherwise.ts +29 -0
- package/docs/API/10-lang/10-either/10-none.ts +12 -0
- package/docs/API/10-lang/10-either/10-ok.ts +12 -0
- package/docs/API/10-lang/10-either/10-result.ts +18 -0
- package/docs/API/10-lang/10-either/10-rewriteInformation.ts +24 -0
- package/docs/API/10-lang/10-either/10-right.ts +13 -0
- package/docs/API/10-lang/10-either/10-rightAsyncPipe.ts +70 -0
- package/docs/API/10-lang/10-either/10-rightPipe.ts +72 -0
- package/docs/API/10-lang/10-either/10-safeCallback.ts +29 -0
- package/docs/API/10-lang/10-either/10-some.ts +12 -0
- package/docs/API/10-lang/10-either/10-success.ts +12 -0
- package/docs/API/10-lang/10-either/10-toMaybe.ts +53 -0
- package/docs/API/10-lang/10-either/10-unwrapByInformation.ts +20 -0
- package/docs/API/10-lang/10-either/10-unwrapByInformationOrThrow.ts +19 -0
- package/docs/API/10-lang/10-either/10-unwrapLeft.ts +14 -0
- package/docs/API/10-lang/10-either/10-unwrapLeftOrThrow.ts +17 -0
- package/docs/API/10-lang/10-either/10-unwrapOr.ts +17 -0
- package/docs/API/10-lang/10-either/10-unwrapOtherwise.ts +20 -0
- package/docs/API/10-lang/10-either/10-unwrapRight.ts +14 -0
- package/docs/API/10-lang/10-either/10-unwrapRightOrThrow.ts +17 -0
- package/docs/API/10-lang/10-either/10-unwrapSelection.ts +26 -0
- package/docs/API/10-lang/10-either/10-unwrapSelectionOrThrow.ts +19 -0
- package/docs/API/10-lang/10-either/10-whenHasInformation.ts +36 -0
- package/docs/API/10-lang/10-either/10-whenHasInformationOtherwise.ts +29 -0
- package/docs/API/10-lang/10-either/10-whenIsLeft.ts +20 -0
- package/docs/API/10-lang/10-either/10-whenIsLeftOtherwise.ts +27 -0
- package/docs/API/10-lang/10-either/10-whenIsRight.ts +20 -0
- package/docs/API/10-lang/10-either/10-whenIsRightOtherwise.ts +26 -0
- package/docs/API/10-lang/10-either/10-whenIsSelected.ts +33 -0
- package/docs/API/10-lang/10-either/10-whenIsSelectedOtherwise.ts +35 -0
- package/docs/API/10-lang/10-either/index.llms.md +196 -0
- package/docs/API/10-lang/10-either/index.md +3 -0
- package/docs/API/10-lang/10-generator/10-asyncChunk.ts +55 -0
- package/docs/API/10-lang/10-generator/10-asyncConcat.ts +43 -0
- package/docs/API/10-lang/10-generator/10-asyncFilter.ts +41 -0
- package/docs/API/10-lang/10-generator/10-asyncFlat.ts +37 -0
- package/docs/API/10-lang/10-generator/10-asyncGroup.ts +65 -0
- package/docs/API/10-lang/10-generator/10-asyncLoop.ts +59 -0
- package/docs/API/10-lang/10-generator/10-asyncMap.ts +48 -0
- package/docs/API/10-lang/10-generator/10-asyncReduce.ts +63 -0
- package/docs/API/10-lang/10-generator/10-chunk.ts +44 -0
- package/docs/API/10-lang/10-generator/10-concat.ts +37 -0
- package/docs/API/10-lang/10-generator/10-createExternalAsyncGenerator.ts +29 -0
- package/docs/API/10-lang/10-generator/10-execute.ts +44 -0
- package/docs/API/10-lang/10-generator/10-filter.ts +35 -0
- package/docs/API/10-lang/10-generator/10-flat.ts +25 -0
- package/docs/API/10-lang/10-generator/10-group.ts +44 -0
- package/docs/API/10-lang/10-generator/10-groupOutput.ts +48 -0
- package/docs/API/10-lang/10-generator/10-loop.ts +55 -0
- package/docs/API/10-lang/10-generator/10-map.ts +35 -0
- package/docs/API/10-lang/10-generator/10-reduce.ts +51 -0
- package/docs/API/10-lang/10-generator/10-reduceFrom.ts +30 -0
- package/docs/API/10-lang/10-generator/index.llms.md +84 -0
- package/docs/API/10-lang/10-generator/index.md +3 -0
- package/docs/API/10-lang/10-number/10-betweenThan.ts +43 -0
- package/docs/API/10-lang/10-number/10-betweenThanOrEqual.ts +43 -0
- package/docs/API/10-lang/10-number/10-greaterThan.ts +35 -0
- package/docs/API/10-lang/10-number/10-greaterThanOrEqual.ts +35 -0
- package/docs/API/10-lang/10-number/10-isEven.ts +33 -0
- package/docs/API/10-lang/10-number/10-isInteger.ts +33 -0
- package/docs/API/10-lang/10-number/10-isMultipleOf.ts +35 -0
- package/docs/API/10-lang/10-number/10-isNegative.ts +33 -0
- package/docs/API/10-lang/10-number/10-isNotZero.ts +33 -0
- package/docs/API/10-lang/10-number/10-isOdd.ts +33 -0
- package/docs/API/10-lang/10-number/10-isPositive.ts +33 -0
- package/docs/API/10-lang/10-number/10-isSafe.ts +33 -0
- package/docs/API/10-lang/10-number/10-isStrictNegative.ts +34 -0
- package/docs/API/10-lang/10-number/10-isStrictPositive.ts +33 -0
- package/docs/API/10-lang/10-number/10-lessThan.ts +35 -0
- package/docs/API/10-lang/10-number/10-lessThanOrEqual.ts +35 -0
- package/docs/API/10-lang/10-number/10-max.ts +19 -0
- package/docs/API/10-lang/10-number/10-maxOf.ts +19 -0
- package/docs/API/10-lang/10-number/10-min.ts +19 -0
- package/docs/API/10-lang/10-number/10-minOf.ts +19 -0
- package/docs/API/10-lang/10-number/10-sort.ts +19 -0
- package/docs/API/10-lang/10-number/10-sum.ts +19 -0
- package/docs/API/10-lang/10-number/index.llms.md +92 -0
- package/docs/API/10-lang/10-number/index.md +3 -0
- package/docs/API/10-lang/10-object/10-assign.ts +41 -0
- package/docs/API/10-lang/10-object/10-countKeys.ts +15 -0
- package/docs/API/10-lang/10-object/10-deepDiscriminate.ts +63 -0
- package/docs/API/10-lang/10-object/10-deepOverride.ts +35 -0
- package/docs/API/10-lang/10-object/10-discriminate.ts +55 -0
- package/docs/API/10-lang/10-object/10-discriminateEntryKey.ts +43 -0
- package/docs/API/10-lang/10-object/10-discriminateEntryValue.ts +44 -0
- package/docs/API/10-lang/10-object/10-entries.ts +19 -0
- package/docs/API/10-lang/10-object/10-entry.ts +17 -0
- package/docs/API/10-lang/10-object/10-fromEntries.ts +23 -0
- package/docs/API/10-lang/10-object/10-getDeepProperty.ts +26 -0
- package/docs/API/10-lang/10-object/10-getProperty.ts +24 -0
- package/docs/API/10-lang/10-object/10-hasKeys.ts +43 -0
- package/docs/API/10-lang/10-object/10-isSimple.ts +38 -0
- package/docs/API/10-lang/10-object/10-keys.ts +19 -0
- package/docs/API/10-lang/10-object/10-omit.ts +39 -0
- package/docs/API/10-lang/10-object/10-override.ts +24 -0
- package/docs/API/10-lang/10-object/10-pick.ts +41 -0
- package/docs/API/10-lang/10-object/10-to.ts +40 -0
- package/docs/API/10-lang/10-object/10-transformProperties.ts +43 -0
- package/docs/API/10-lang/10-object/10-transformProperty.ts +39 -0
- package/docs/API/10-lang/10-object/10-values.ts +19 -0
- package/docs/API/10-lang/10-object/index.llms.md +92 -0
- package/docs/API/10-lang/10-object/index.md +3 -0
- package/docs/API/10-lang/10-path/10-computeRelative.ts +19 -0
- package/docs/API/10-lang/10-path/10-concatSegment.ts +28 -0
- package/docs/API/10-lang/10-path/10-create.ts +21 -0
- package/docs/API/10-lang/10-path/10-createAbsolute.ts +21 -0
- package/docs/API/10-lang/10-path/10-createAbsoluteOrThrow.ts +16 -0
- package/docs/API/10-lang/10-path/10-createMatcher.ts +50 -0
- package/docs/API/10-lang/10-path/10-createOrThrow.ts +16 -0
- package/docs/API/10-lang/10-path/10-createSegment.ts +26 -0
- package/docs/API/10-lang/10-path/10-createSegmentOrThrow.ts +16 -0
- package/docs/API/10-lang/10-path/10-declareAbsolutePath.ts +15 -0
- package/docs/API/10-lang/10-path/10-declarePath.ts +15 -0
- package/docs/API/10-lang/10-path/10-declareSegment.ts +15 -0
- package/docs/API/10-lang/10-path/10-getBaseName.ts +22 -0
- package/docs/API/10-lang/10-path/10-getExtensionName.ts +22 -0
- package/docs/API/10-lang/10-path/10-getParentFolderPath.ts +25 -0
- package/docs/API/10-lang/10-path/10-is.ts +46 -0
- package/docs/API/10-lang/10-path/10-isAbsolute.ts +46 -0
- package/docs/API/10-lang/10-path/10-isSegment.ts +42 -0
- package/docs/API/10-lang/10-path/10-normalize.ts +26 -0
- package/docs/API/10-lang/10-path/10-resolveFrom.ts +37 -0
- package/docs/API/10-lang/10-path/10-resolveRelative.ts +23 -0
- package/docs/API/10-lang/10-path/index.llms.md +88 -0
- package/docs/API/10-lang/10-path/index.md +3 -0
- package/docs/API/10-lang/10-pattern/10-exhaustive.ts +26 -0
- package/docs/API/10-lang/10-pattern/10-isMatch.ts +72 -0
- package/docs/API/10-lang/10-pattern/10-match.ts +133 -0
- package/docs/API/10-lang/10-pattern/10-matchWithEntity.ts +49 -0
- package/docs/API/10-lang/10-pattern/10-matchWithEntityOtherwise.ts +55 -0
- package/docs/API/10-lang/10-pattern/10-matchWithError.ts +45 -0
- package/docs/API/10-lang/10-pattern/10-matchWithErrorOtherwise.ts +48 -0
- package/docs/API/10-lang/10-pattern/10-matchWithFact.ts +49 -0
- package/docs/API/10-lang/10-pattern/10-matchWithFactOtherwise.ts +49 -0
- package/docs/API/10-lang/10-pattern/10-matchWithNumber.ts +33 -0
- package/docs/API/10-lang/10-pattern/10-matchWithNumberOtherwise.ts +37 -0
- package/docs/API/10-lang/10-pattern/10-matchWithString.ts +34 -0
- package/docs/API/10-lang/10-pattern/10-matchWithStringOtherwise.ts +35 -0
- package/docs/API/10-lang/10-pattern/10-matchWithTaggedObject.ts +43 -0
- package/docs/API/10-lang/10-pattern/10-matchWithTaggedObjectOtherwise.ts +49 -0
- package/docs/API/10-lang/10-pattern/10-otherwise.ts +28 -0
- package/docs/API/10-lang/10-pattern/10-union.ts +47 -0
- package/docs/API/10-lang/10-pattern/10-when.ts +46 -0
- package/docs/API/10-lang/10-pattern/10-whenNot.ts +123 -0
- package/docs/API/10-lang/10-pattern/index.llms.md +80 -0
- package/docs/API/10-lang/10-pattern/index.md +3 -0
- package/docs/API/10-lang/10-printer/10-bold.ts +12 -0
- package/docs/API/10-lang/10-printer/10-colorized.ts +18 -0
- package/docs/API/10-lang/10-printer/10-colorizedBold.ts +18 -0
- package/docs/API/10-lang/10-printer/10-indent.ts +20 -0
- package/docs/API/10-lang/10-printer/10-primitives.md +11 -0
- package/docs/API/10-lang/10-printer/10-render.ts +29 -0
- package/docs/API/10-lang/10-printer/10-renderLine.ts +12 -0
- package/docs/API/10-lang/10-printer/10-renderParagraph.ts +16 -0
- package/docs/API/10-lang/10-printer/index.llms.md +37 -0
- package/docs/API/10-lang/10-printer/index.md +3 -0
- package/docs/API/10-lang/10-string/10-at.ts +18 -0
- package/docs/API/10-lang/10-string/10-capitalize.ts +18 -0
- package/docs/API/10-lang/10-string/10-charAt.ts +18 -0
- package/docs/API/10-lang/10-string/10-concat.ts +18 -0
- package/docs/API/10-lang/10-string/10-endsWith.ts +33 -0
- package/docs/API/10-lang/10-string/10-extract.ts +18 -0
- package/docs/API/10-lang/10-string/10-extractAll.ts +18 -0
- package/docs/API/10-lang/10-string/10-first.ts +17 -0
- package/docs/API/10-lang/10-string/10-includes.ts +33 -0
- package/docs/API/10-lang/10-string/10-indexOf.ts +17 -0
- package/docs/API/10-lang/10-string/10-isComposedOf.ts +33 -0
- package/docs/API/10-lang/10-string/10-isEmail.ts +56 -0
- package/docs/API/10-lang/10-string/10-isIn.ts +34 -0
- package/docs/API/10-lang/10-string/10-isKeyof.ts +37 -0
- package/docs/API/10-lang/10-string/10-isNotEmpty.ts +32 -0
- package/docs/API/10-lang/10-string/10-isNumber.ts +32 -0
- package/docs/API/10-lang/10-string/10-isTrimmed.ts +33 -0
- package/docs/API/10-lang/10-string/10-isUrl.ts +31 -0
- package/docs/API/10-lang/10-string/10-isUuid.ts +31 -0
- package/docs/API/10-lang/10-string/10-join.ts +18 -0
- package/docs/API/10-lang/10-string/10-last.ts +17 -0
- package/docs/API/10-lang/10-string/10-lastIndexOf.ts +17 -0
- package/docs/API/10-lang/10-string/10-length.ts +18 -0
- package/docs/API/10-lang/10-string/10-lengthEqual.ts +33 -0
- package/docs/API/10-lang/10-string/10-maxCharacters.ts +33 -0
- package/docs/API/10-lang/10-string/10-minCharacters.ts +33 -0
- package/docs/API/10-lang/10-string/10-normalize.ts +17 -0
- package/docs/API/10-lang/10-string/10-padEnd.ts +17 -0
- package/docs/API/10-lang/10-string/10-padStart.ts +17 -0
- package/docs/API/10-lang/10-string/10-pop.ts +17 -0
- package/docs/API/10-lang/10-string/10-prepend.ts +17 -0
- package/docs/API/10-lang/10-string/10-repeat.ts +17 -0
- package/docs/API/10-lang/10-string/10-replace.ts +18 -0
- package/docs/API/10-lang/10-string/10-replaceAll.ts +17 -0
- package/docs/API/10-lang/10-string/10-search.ts +17 -0
- package/docs/API/10-lang/10-string/10-shift.ts +17 -0
- package/docs/API/10-lang/10-string/10-slice.ts +17 -0
- package/docs/API/10-lang/10-string/10-sort.ts +19 -0
- package/docs/API/10-lang/10-string/10-sortCompare.ts +17 -0
- package/docs/API/10-lang/10-string/10-split.ts +34 -0
- package/docs/API/10-lang/10-string/10-startsWith.ts +33 -0
- package/docs/API/10-lang/10-string/10-stringify.ts +11 -0
- package/docs/API/10-lang/10-string/10-substring.ts +17 -0
- package/docs/API/10-lang/10-string/10-test.ts +17 -0
- package/docs/API/10-lang/10-string/10-to.ts +11 -0
- package/docs/API/10-lang/10-string/10-toLowerCase.ts +17 -0
- package/docs/API/10-lang/10-string/10-toUpperCase.ts +17 -0
- package/docs/API/10-lang/10-string/10-trim.ts +17 -0
- package/docs/API/10-lang/10-string/10-trimEnd.ts +17 -0
- package/docs/API/10-lang/10-string/10-trimStart.ts +17 -0
- package/docs/API/10-lang/10-string/10-uncapitalize.ts +17 -0
- package/docs/API/10-lang/10-string/index.llms.md +208 -0
- package/docs/API/10-lang/10-string/index.md +3 -0
- package/docs/API/10-lang/10-tuple/10-from.ts +50 -0
- package/docs/API/10-lang/10-tuple/10-map.ts +37 -0
- package/docs/API/10-lang/10-tuple/index.llms.md +12 -0
- package/docs/API/10-lang/10-tuple/index.md +3 -0
- package/docs/API/10-lang/index.md +3 -0
- package/docs/API/40-json-web-token/10-tokenHandler/10-createTokenHandler.ts +160 -0
- package/docs/API/40-json-web-token/10-tokenHandler/index.llms.md +8 -0
- package/docs/API/40-json-web-token/10-tokenHandler/index.md +3 -0
- package/docs/API/40-json-web-token/20-signer/10-createHS256.ts +24 -0
- package/docs/API/40-json-web-token/20-signer/10-createHS512.ts +24 -0
- package/docs/API/40-json-web-token/20-signer/10-createRS256.ts +28 -0
- package/docs/API/40-json-web-token/20-signer/10-createRS512.ts +28 -0
- package/docs/API/40-json-web-token/20-signer/10-factory.ts +29 -0
- package/docs/API/40-json-web-token/20-signer/index.llms.md +24 -0
- package/docs/API/40-json-web-token/20-signer/index.md +3 -0
- package/docs/API/40-json-web-token/30-cipher/10-createRSAOAEP.ts +26 -0
- package/docs/API/40-json-web-token/30-cipher/10-createRSAOAEP256.ts +26 -0
- package/docs/API/40-json-web-token/30-cipher/10-factory.ts +29 -0
- package/docs/API/40-json-web-token/30-cipher/index.llms.md +16 -0
- package/docs/API/40-json-web-token/30-cipher/index.md +3 -0
- package/docs/API/40-json-web-token/40-utils/10-AES_GCM.decrypt.ts +17 -0
- package/docs/API/40-json-web-token/40-utils/10-AES_GCM.encrypt.ts +11 -0
- package/docs/API/40-json-web-token/40-utils/10-AES_GCM.generateInitializationVector.ts +9 -0
- package/docs/API/40-json-web-token/40-utils/10-HMAC.sign.ts +13 -0
- package/docs/API/40-json-web-token/40-utils/10-HMAC.verify.ts +11 -0
- package/docs/API/40-json-web-token/40-utils/10-RSA.sign.ts +14 -0
- package/docs/API/40-json-web-token/40-utils/10-RSA.verify.ts +13 -0
- package/docs/API/40-json-web-token/40-utils/10-RSA_OAEP.decrypt.ts +13 -0
- package/docs/API/40-json-web-token/40-utils/10-RSA_OAEP.encrypt.ts +10 -0
- package/docs/API/40-json-web-token/40-utils/10-decodeBase64.ts +9 -0
- package/docs/API/40-json-web-token/40-utils/10-decodeBase64Url.ts +9 -0
- package/docs/API/40-json-web-token/40-utils/10-decodeText.ts +9 -0
- package/docs/API/40-json-web-token/40-utils/10-encodeBase64.ts +9 -0
- package/docs/API/40-json-web-token/40-utils/10-encodeBase64Url.ts +9 -0
- package/docs/API/40-json-web-token/40-utils/10-encodeText.ts +9 -0
- package/docs/API/40-json-web-token/40-utils/10-isBase64Url.ts +11 -0
- package/docs/API/40-json-web-token/40-utils/10-jsonParse.ts +11 -0
- package/docs/API/40-json-web-token/40-utils/10-pemToBinary.ts +11 -0
- package/docs/API/40-json-web-token/40-utils/index.llms.md +76 -0
- package/docs/API/40-json-web-token/40-utils/index.md +3 -0
- package/docs/API/40-json-web-token/index.md +3 -0
- package/docs/API/50-form/10-vue/10-construction/10-createForm.ts +48 -0
- package/docs/API/50-form/10-vue/10-construction/10-createFormField.ts +66 -0
- package/docs/API/50-form/10-vue/10-construction/10-createGridTemplates.ts +39 -0
- package/docs/API/50-form/10-vue/10-construction/10-createInput.ts +46 -0
- package/docs/API/50-form/10-vue/10-construction/10-createTemplate.ts +36 -0
- package/docs/API/50-form/10-vue/10-construction/fixtures/AddressInput.vue +19 -0
- package/docs/API/50-form/10-vue/10-construction/index.llms.md +24 -0
- package/docs/API/50-form/10-vue/10-construction/index.md +3 -0
- package/docs/API/50-form/10-vue/20-layouts/10-useCheckLayout.ts +40 -0
- package/docs/API/50-form/10-vue/20-layouts/10-useDisabledLayout.ts +34 -0
- package/docs/API/50-form/10-vue/20-layouts/10-useMultiLayout.ts +32 -0
- package/docs/API/50-form/10-vue/20-layouts/10-useRepeatLayout.ts +34 -0
- package/docs/API/50-form/10-vue/20-layouts/10-useSectionLayout.ts +20 -0
- package/docs/API/50-form/10-vue/20-layouts/10-useSlotLayout.ts +37 -0
- package/docs/API/50-form/10-vue/20-layouts/10-useStepLayout.ts +31 -0
- package/docs/API/50-form/10-vue/20-layouts/10-useUnionLayout.ts +48 -0
- package/docs/API/50-form/10-vue/20-layouts/index.llms.md +36 -0
- package/docs/API/50-form/10-vue/20-layouts/index.md +3 -0
- package/docs/API/50-form/10-vue/30-designSystem/10-useCheckbox.ts +13 -0
- package/docs/API/50-form/10-vue/30-designSystem/10-useCheckboxPolicy.ts +18 -0
- package/docs/API/50-form/10-vue/30-designSystem/10-useDateInput.ts +20 -0
- package/docs/API/50-form/10-vue/30-designSystem/10-useDualRangeInput.ts +27 -0
- package/docs/API/50-form/10-vue/30-designSystem/10-useFileInput.ts +23 -0
- package/docs/API/50-form/10-vue/30-designSystem/10-useNumberInput.ts +18 -0
- package/docs/API/50-form/10-vue/30-designSystem/10-useRadioGroup.ts +31 -0
- package/docs/API/50-form/10-vue/30-designSystem/10-useRangeDateInput.ts +23 -0
- package/docs/API/50-form/10-vue/30-designSystem/10-useRangeInput.ts +18 -0
- package/docs/API/50-form/10-vue/30-designSystem/10-useRangeTimeInput.ts +23 -0
- package/docs/API/50-form/10-vue/30-designSystem/10-useSelectInput.ts +31 -0
- package/docs/API/50-form/10-vue/30-designSystem/10-useTextInput.ts +14 -0
- package/docs/API/50-form/10-vue/30-designSystem/10-useTextareaInput.ts +14 -0
- package/docs/API/50-form/10-vue/30-designSystem/10-useTimeInput.ts +20 -0
- package/docs/API/50-form/10-vue/30-designSystem/20-components.md +11 -0
- package/docs/API/50-form/10-vue/30-designSystem/index.llms.md +65 -0
- package/docs/API/50-form/10-vue/30-designSystem/index.md +3 -0
- package/docs/API/50-form/10-vue/fixtures/templates.ts +20 -0
- package/docs/API/50-form/10-vue/index.md +3 -0
- package/docs/API/50-form/index.md +3 -0
- package/docs/API/60-playwright/10-construction/10-createComponent.ts +47 -0
- package/docs/API/60-playwright/10-construction/10-createComponentInteraction.ts +28 -0
- package/docs/API/60-playwright/10-construction/10-createPage.ts +34 -0
- package/docs/API/60-playwright/10-construction/10-createStepWrapper.ts +23 -0
- package/docs/API/60-playwright/10-construction/10-createWebsite.ts +57 -0
- package/docs/API/60-playwright/10-construction/10-initClient.ts +38 -0
- package/docs/API/60-playwright/10-construction/index.llms.md +28 -0
- package/docs/API/60-playwright/10-construction/index.md +3 -0
- package/docs/API/60-playwright/20-actions/10-check.ts +9 -0
- package/docs/API/60-playwright/20-actions/10-clear.ts +9 -0
- package/docs/API/60-playwright/20-actions/10-click.ts +9 -0
- package/docs/API/60-playwright/20-actions/10-dragTo.ts +10 -0
- package/docs/API/60-playwright/20-actions/10-extractContent.ts +10 -0
- package/docs/API/60-playwright/20-actions/10-fill.ts +9 -0
- package/docs/API/60-playwright/20-actions/10-focus.ts +9 -0
- package/docs/API/60-playwright/20-actions/10-forceClick.ts +10 -0
- package/docs/API/60-playwright/20-actions/10-hover.ts +9 -0
- package/docs/API/60-playwright/20-actions/10-press.ts +9 -0
- package/docs/API/60-playwright/20-actions/10-selectOption.ts +10 -0
- package/docs/API/60-playwright/20-actions/10-type.ts +10 -0
- package/docs/API/60-playwright/20-actions/10-uncheck.ts +9 -0
- package/docs/API/60-playwright/20-actions/10-withStep.ts +10 -0
- package/docs/API/60-playwright/20-actions/index.llms.md +60 -0
- package/docs/API/60-playwright/20-actions/index.md +3 -0
- package/docs/API/60-playwright/30-assertions/10-toBeBusy.ts +10 -0
- package/docs/API/60-playwright/30-assertions/10-toBeChecked.ts +9 -0
- package/docs/API/60-playwright/30-assertions/10-toBeDisabled.ts +9 -0
- package/docs/API/60-playwright/30-assertions/10-toBeEnabled.ts +9 -0
- package/docs/API/60-playwright/30-assertions/10-toBeHidden.ts +9 -0
- package/docs/API/60-playwright/30-assertions/10-toBeNotBusy.ts +10 -0
- package/docs/API/60-playwright/30-assertions/10-toBeVisible.ts +10 -0
- package/docs/API/60-playwright/30-assertions/10-toContainText.ts +9 -0
- package/docs/API/60-playwright/30-assertions/10-toHaveAttribute.ts +12 -0
- package/docs/API/60-playwright/30-assertions/10-toHaveClass.ts +9 -0
- package/docs/API/60-playwright/30-assertions/10-toHaveNoText.ts +10 -0
- package/docs/API/60-playwright/30-assertions/10-toHaveQuantity.ts +20 -0
- package/docs/API/60-playwright/30-assertions/10-toHaveText.ts +9 -0
- package/docs/API/60-playwright/30-assertions/10-toHaveValue.ts +9 -0
- package/docs/API/60-playwright/30-assertions/10-withStep.ts +10 -0
- package/docs/API/60-playwright/30-assertions/index.llms.md +64 -0
- package/docs/API/60-playwright/30-assertions/index.md +3 -0
- package/docs/API/60-playwright/fixtures/component.ts +44 -0
- package/docs/API/60-playwright/index.md +3 -0
- package/docs/API/index.md +3 -0
- package/docs/API.llms.md +115 -0
- package/docs/concepts/01-fundamental/01-constraint/01-use.ts +22 -0
- package/docs/concepts/01-fundamental/01-constraint/10-built-in-constraint.ts +37 -0
- package/docs/concepts/01-fundamental/01-constraint/20-manipulation.ts +41 -0
- package/docs/concepts/01-fundamental/01-constraint/30-cast.ts +66 -0
- package/docs/concepts/01-fundamental/01-constraint/40-custom-constraint.ts +45 -0
- package/docs/concepts/01-fundamental/01-constraint/index.md +3 -0
- package/docs/concepts/01-fundamental/02-currying/01-use.ts +38 -0
- package/docs/concepts/01-fundamental/02-currying/10-built-in-function.ts +190 -0
- package/docs/concepts/01-fundamental/02-currying/20-inner-pipe.ts +48 -0
- package/docs/concepts/01-fundamental/02-currying/30-async-pipe.ts +51 -0
- package/docs/concepts/01-fundamental/02-currying/index.md +3 -0
- package/docs/concepts/01-fundamental/03-either/01-use.ts +21 -0
- package/docs/concepts/01-fundamental/03-either/10-discrimination.ts +90 -0
- package/docs/concepts/01-fundamental/03-either/20-exhaustive-handling.ts +90 -0
- package/docs/concepts/01-fundamental/03-either/30-composition.ts +80 -0
- package/docs/concepts/01-fundamental/03-either/40-result-adaptation.ts +46 -0
- package/docs/concepts/01-fundamental/03-either/50-external-results.ts +72 -0
- package/docs/concepts/01-fundamental/03-either/60-contextual-state.ts +40 -0
- package/docs/concepts/01-fundamental/03-either/index.md +3 -0
- package/docs/concepts/01-fundamental/04-data-structure/01-use.ts +22 -0
- package/docs/concepts/01-fundamental/04-data-structure/10-structure.ts +244 -0
- package/docs/concepts/01-fundamental/04-data-structure/20-constraint.ts +86 -0
- package/docs/concepts/01-fundamental/04-data-structure/30-validation.ts +104 -0
- package/docs/concepts/01-fundamental/04-data-structure/40-codecs.ts +162 -0
- package/docs/concepts/01-fundamental/04-data-structure/50-recursive.ts +57 -0
- package/docs/concepts/01-fundamental/04-data-structure/60-interpret-error.ts +123 -0
- package/docs/concepts/01-fundamental/04-data-structure/index.md +3 -0
- package/docs/concepts/01-fundamental/05-chrono/01-use.ts +14 -0
- package/docs/concepts/01-fundamental/05-chrono/10-creation.ts +85 -0
- package/docs/concepts/01-fundamental/05-chrono/20-manipulation.ts +110 -0
- package/docs/concepts/01-fundamental/05-chrono/30-serialized.ts +89 -0
- package/docs/concepts/01-fundamental/05-chrono/40-timezone.ts +85 -0
- package/docs/concepts/01-fundamental/05-chrono/index.md +3 -0
- package/docs/concepts/01-fundamental/06-modeling/10-new-type.ts +42 -0
- package/docs/concepts/01-fundamental/06-modeling/20-entity.ts +191 -0
- package/docs/concepts/01-fundamental/06-modeling/30-tagged-object.ts +204 -0
- package/docs/concepts/01-fundamental/06-modeling/40-entity-lifecycle.ts +272 -0
- package/docs/concepts/01-fundamental/06-modeling/50-evidence.ts +94 -0
- package/docs/concepts/01-fundamental/06-modeling/60-signed-function.ts +26 -0
- package/docs/concepts/01-fundamental/06-modeling/index.md +3 -0
- package/docs/concepts/01-fundamental/07-discrimination/10-entity.ts +136 -0
- package/docs/concepts/01-fundamental/07-discrimination/20-fact.ts +158 -0
- package/docs/concepts/01-fundamental/07-discrimination/30-tagged-object.ts +137 -0
- package/docs/concepts/01-fundamental/07-discrimination/40-error.ts +73 -0
- package/docs/concepts/01-fundamental/07-discrimination/50-literal.ts +106 -0
- package/docs/concepts/01-fundamental/07-discrimination/60-shape.ts +160 -0
- package/docs/concepts/01-fundamental/07-discrimination/70-predicate.ts +101 -0
- package/docs/concepts/01-fundamental/07-discrimination/index.md +3 -0
- package/docs/concepts/01-fundamental/08-kind/01-identity.md +7 -0
- package/docs/concepts/01-fundamental/08-kind/20-metadata.md +11 -0
- package/docs/concepts/01-fundamental/08-kind/30-transport.md +11 -0
- package/docs/concepts/01-fundamental/08-kind/index.md +3 -0
- package/docs/concepts/01-fundamental/index.md +1 -0
- package/docs/concepts/02-server/10-file/10-manipulation.ts +52 -0
- package/docs/concepts/02-server/10-file/20-path.ts +72 -0
- package/docs/concepts/02-server/10-file/index.md +3 -0
- package/docs/concepts/02-server/20-http/10-init.ts +23 -0
- package/docs/concepts/02-server/20-http/20-route.ts +182 -0
- package/docs/concepts/02-server/20-http/30-routine.ts +188 -0
- package/docs/concepts/02-server/20-http/40-jwt.ts +149 -0
- package/docs/concepts/02-server/20-http/50-open-api.ts +44 -0
- package/docs/concepts/02-server/20-http/index.md +3 -0
- package/docs/concepts/02-server/30-environment/10-platform.ts +47 -0
- package/docs/concepts/02-server/30-environment/20-variable.ts +47 -0
- package/docs/concepts/02-server/30-environment/index.md +3 -0
- package/docs/concepts/02-server/40-command/10-use.ts +112 -0
- package/docs/concepts/02-server/40-command/20-sub-command.ts +48 -0
- package/docs/concepts/02-server/40-command/index.md +3 -0
- package/docs/concepts/02-server/index.md +1 -0
- package/docs/concepts/03-client/10-http/10-init.ts +52 -0
- package/docs/concepts/03-client/10-http/20-request.ts +254 -0
- package/docs/concepts/03-client/10-http/30-hook.ts +139 -0
- package/docs/concepts/03-client/10-http/index.md +3 -0
- package/docs/concepts/03-client/20-form/10-init.ts +98 -0
- package/docs/concepts/03-client/20-form/20-input.ts +103 -0
- package/docs/concepts/03-client/20-form/30-layout.ts +155 -0
- package/docs/concepts/03-client/20-form/40-template.ts +94 -0
- package/docs/concepts/03-client/20-form/50-integration.md +11 -0
- package/docs/concepts/03-client/20-form/examples/postModeration/ThePage.vue +32 -0
- package/docs/concepts/03-client/20-form/examples/postModeration/usePostModeration.ts +80 -0
- package/docs/concepts/03-client/20-form/index.md +3 -0
- package/docs/concepts/03-client/index.md +1 -0
- package/docs/concepts/04-tests/01-unit/10-either.ts +136 -0
- package/docs/concepts/04-tests/01-unit/20-server-mocking.ts +53 -0
- package/docs/concepts/04-tests/01-unit/index.md +3 -0
- package/docs/concepts/04-tests/02-e2e/10-init.ts +80 -0
- package/docs/concepts/04-tests/02-e2e/20-architecture.ts +76 -0
- package/docs/concepts/04-tests/02-e2e/30-testing.ts +90 -0
- package/docs/concepts/04-tests/02-e2e/index.md +3 -0
- package/docs/concepts/04-tests/index.md +1 -0
- package/docs/concepts/05-type-driven-design/01-architecture/10-boundaries.md +44 -0
- package/docs/concepts/05-type-driven-design/01-architecture/index.md +3 -0
- package/docs/concepts/05-type-driven-design/02-domains/10-entities.md +50 -0
- package/docs/concepts/05-type-driven-design/02-domains/20-aggregates.md +65 -0
- package/docs/concepts/05-type-driven-design/02-domains/30-repositories.md +35 -0
- package/docs/concepts/05-type-driven-design/02-domains/40-refinements.md +30 -0
- package/docs/concepts/05-type-driven-design/02-domains/index.md +3 -0
- package/docs/concepts/05-type-driven-design/03-applications/10-use-case.md +62 -0
- package/docs/concepts/05-type-driven-design/03-applications/20-ports.md +49 -0
- package/docs/concepts/05-type-driven-design/03-applications/index.md +3 -0
- package/docs/concepts/05-type-driven-design/04-infrastructure/10-implementation.md +47 -0
- package/docs/concepts/05-type-driven-design/04-infrastructure/index.md +3 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/index.ts +2 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/book.ts +10 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/client.ts +10 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/email.ts +7 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/index.ts +4 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/ports/waitingListEntry.ts +17 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/clientGiveBackBook.ts +45 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/clientRentBook.ts +31 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/createBook.ts +32 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/index.ts +4 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/withdrawBook.ts +32 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/clientGiveBackBook.ts +74 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/clientRentBook.ts +42 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/createBook.ts +33 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/index.ts +4 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/withdrawBook.ts +37 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/create.ts +33 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/index.ts +5 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/rental.ts +31 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/reserve.ts +37 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/returnBook.ts +32 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/withdraw.ts +21 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/index.ts +118 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/facts/giveBackBook.ts +35 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/facts/index.ts +2 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/facts/rentBook.ts +32 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/index.ts +59 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/index.ts +3 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/waitingListEntry/facts/cancel.ts +26 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/waitingListEntry/facts/create.ts +33 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/waitingListEntry/facts/index.ts +3 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/waitingListEntry/facts/prepare.ts +23 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/waitingListEntry/index.ts +79 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/index.ts +4 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/refinements/index.ts +1 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/refinements/refineLinkBetweenClientAndBorrowedBook.ts +34 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/book.ts +16 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/client.ts +7 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/email.ts +12 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/index.ts +4 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/repositories/waitingListEntry.ts +19 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/index.ts +2 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/command/clientRentBook.ts +62 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/command/index.ts +11 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/checkers/bookExist.ts +19 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/checkers/clientExist.ts +19 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/checkers/index.ts +2 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/main.ts +19 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/routes/clientGiveBackBook.ts +46 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/routes/clientRentBook.ts +45 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/routes/index.ts +2 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/book.ts +25 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/client.ts +7 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/email.ts +10 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/index.ts +4 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/ports/waitingListEntry.ts +17 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/useCases/index.ts +13 -0
- package/docs/concepts/05-type-driven-design/index.md +3 -0
- package/docs/concepts.llms.md +521 -0
- package/instructions/coding-conventions.md +8 -0
- package/package.json +99 -3
- package/skills/command/SKILL.md +63 -0
- package/skills/command/references/examples/cli.ts +22 -0
- package/skills/command/references/examples/options-only.ts +27 -0
- package/skills/command/references/examples/preview-command.ts +57 -0
- package/skills/command/references/execution.md +31 -0
- package/skills/command/references/inputs.md +27 -0
- package/skills/fundamental/SKILL.md +80 -0
- package/skills/fundamental/references/composition.md +35 -0
- package/skills/fundamental/references/constraints-and-validation.md +61 -0
- package/skills/fundamental/references/examples/async-composition.ts +15 -0
- package/skills/fundamental/references/examples/cast.ts +18 -0
- package/skills/fundamental/references/examples/composition.ts +40 -0
- package/skills/fundamental/references/examples/environment-initialization.ts +19 -0
- package/skills/fundamental/references/examples/error-propagation.ts +24 -0
- package/skills/fundamental/references/examples/generic-inference.ts +31 -0
- package/skills/fundamental/references/examples/guaranteed-array-access.ts +31 -0
- package/skills/fundamental/references/examples/independent-inputs.ts +18 -0
- package/skills/fundamental/references/examples/infer.ts +21 -0
- package/skills/fundamental/references/examples/input-validation.ts +37 -0
- package/skills/fundamental/references/examples/safe-declarations.ts +25 -0
- package/skills/fundamental/references/results-and-errors.md +59 -0
- package/skills/http-client/SKILL.md +50 -0
- package/skills/http-client/references/configuration.md +11 -0
- package/skills/http-client/references/examples/client-expectations.ts +85 -0
- package/skills/http-client/references/examples/client-streams.ts +74 -0
- package/skills/http-client/references/examples/external-client.ts +78 -0
- package/skills/http-client/references/hooks.md +7 -0
- package/skills/http-client/references/responses.md +39 -0
- package/skills/http-client/references/streams.md +10 -0
- package/skills/http-server/SKILL.md +61 -0
- package/skills/http-server/references/examples/authentication.ts +42 -0
- package/skills/http-server/references/examples/contracts.ts +19 -0
- package/skills/http-server/references/examples/inferred-client.ts +54 -0
- package/skills/http-server/references/examples/initialize.ts +29 -0
- package/skills/http-server/references/examples/minimal-route.ts +17 -0
- package/skills/http-server/references/examples/protected-route.ts +29 -0
- package/skills/http-server/references/examples/rename-user-route.ts +52 -0
- package/skills/http-server/references/examples/user-checker.ts +26 -0
- package/skills/http-server/references/examples/user-route.ts +45 -0
- package/skills/http-server/references/initialization.md +33 -0
- package/skills/http-server/references/reusable-flows.md +40 -0
- package/skills/http-server/references/routes-and-floor.md +46 -0
- package/skills/modeling/SKILL.md +76 -0
- package/skills/modeling/references/domain.md +33 -0
- package/skills/modeling/references/orchestration.md +36 -0
- package/skills/server/SKILL.md +55 -0
- package/skills/server/references/environment.md +30 -0
- package/skills/server/references/examples/environment.ts +41 -0
- package/skills/server/references/examples/file-structure.ts +26 -0
- package/skills/server/references/examples/files.ts +52 -0
- package/skills/server/references/files.md +38 -0
- package/skills/server/references/structures.md +15 -0
- package/skills/test/SKILL.md +70 -0
- package/skills/test/references/examples/results.ts +95 -0
- package/skills/test/references/examples/server.ts +59 -0
- package/skills/test/references/results.md +21 -0
- package/skills/test/references/server.md +17 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DEither.whenIsSelected
|
|
3
|
+
*
|
|
4
|
+
* Transformer la valeur des variantes marquées `true` dans une sélection.
|
|
5
|
+
*/
|
|
6
|
+
import * as DEither from "@duplojs/lang/either";
|
|
7
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
|
|
9
|
+
declare const input: DEither.Left<"invalid", string> | DEither.Success<"saved">;
|
|
10
|
+
|
|
11
|
+
// Appel classique : seule la variante invalid est transformée.
|
|
12
|
+
const direct = DEither.whenIsSelected(
|
|
13
|
+
input,
|
|
14
|
+
{
|
|
15
|
+
invalid: true,
|
|
16
|
+
success: false,
|
|
17
|
+
},
|
|
18
|
+
(value) => `invalid:${value}`,
|
|
19
|
+
);
|
|
20
|
+
type _CheckDirect = DCommon.ExpectType<typeof direct, `invalid:${string}` | DEither.Success<"saved">, "strict">;
|
|
21
|
+
|
|
22
|
+
// Appel curifié : la sélection et la callback sont configurées dans le pipe.
|
|
23
|
+
const piped = DCommon.pipe(
|
|
24
|
+
input,
|
|
25
|
+
DEither.whenIsSelected(
|
|
26
|
+
{
|
|
27
|
+
invalid: true,
|
|
28
|
+
success: false,
|
|
29
|
+
},
|
|
30
|
+
(value) => `invalid:${value}`,
|
|
31
|
+
),
|
|
32
|
+
);
|
|
33
|
+
type _CheckPiped = DCommon.ExpectType<typeof piped, `invalid:${string}` | DEither.Success<"saved">, "strict">;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DEither.whenIsSelectedOtherwise
|
|
3
|
+
*
|
|
4
|
+
* Transformer les variantes sélectionnées et traiter toutes les autres dans une branche de repli.
|
|
5
|
+
*/
|
|
6
|
+
import * as DEither from "@duplojs/lang/either";
|
|
7
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
|
|
9
|
+
declare const input: DEither.Left<"invalid", string> | DEither.Success<"saved">;
|
|
10
|
+
|
|
11
|
+
// Appel classique : la branche otherwise reçoit le Right non sélectionné.
|
|
12
|
+
const direct = DEither.whenIsSelectedOtherwise(
|
|
13
|
+
input,
|
|
14
|
+
{
|
|
15
|
+
invalid: true,
|
|
16
|
+
success: false,
|
|
17
|
+
},
|
|
18
|
+
(value) => `invalid:${value}`,
|
|
19
|
+
(value) => DEither.unwrapRight(value),
|
|
20
|
+
);
|
|
21
|
+
type _CheckDirect = DCommon.ExpectType<typeof direct, `invalid:${string}` | "saved", "strict">;
|
|
22
|
+
|
|
23
|
+
// Appel curifié : la sélection et les deux callbacks sont configurées dans le pipe.
|
|
24
|
+
const piped = DCommon.pipe(
|
|
25
|
+
input,
|
|
26
|
+
DEither.whenIsSelectedOtherwise(
|
|
27
|
+
{
|
|
28
|
+
invalid: true,
|
|
29
|
+
success: false,
|
|
30
|
+
},
|
|
31
|
+
(value) => `invalid:${value}`,
|
|
32
|
+
(value) => DEither.unwrapRight(value),
|
|
33
|
+
),
|
|
34
|
+
);
|
|
35
|
+
type _CheckPiped = DCommon.ExpectType<typeof piped, `invalid:${string}` | "saved", "strict">;
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
## DEither
|
|
2
|
+
|
|
3
|
+
Création, discrimination, transformation et propagation des réussites ou des échecs représentés par `Either`.
|
|
4
|
+
|
|
5
|
+
### [DEither.asyncGroup](10-asyncGroup.ts)
|
|
6
|
+
|
|
7
|
+
Regrouper séquentiellement des résultats synchrones ou asynchrones dans un Success.
|
|
8
|
+
|
|
9
|
+
### [DEither.asyncSafeCallback](10-asyncSafeCallback.ts)
|
|
10
|
+
|
|
11
|
+
Convertir une callback ou une promesse et ses exceptions en résultat asynchrone.
|
|
12
|
+
|
|
13
|
+
### [DEither.error](10-error.ts)
|
|
14
|
+
|
|
15
|
+
Créer un Left standardisé avec l’information `error`.
|
|
16
|
+
|
|
17
|
+
### [DEither.expect](10-expect.ts)
|
|
18
|
+
|
|
19
|
+
Retourner un Either sans modifier sa valeur ni son type.
|
|
20
|
+
|
|
21
|
+
### [DEither.extractErrorInLeft](10-extractErrorInLeft.ts)
|
|
22
|
+
|
|
23
|
+
Extraire d’un Left les erreurs DuploJS sélectionnées par leur identifiant.
|
|
24
|
+
|
|
25
|
+
### [DEither.fail](10-fail.ts)
|
|
26
|
+
|
|
27
|
+
Créer un Left standardisé représentant un échec sans valeur.
|
|
28
|
+
|
|
29
|
+
### [DEither.forwardAssertsSelection](10-forwardAssertsSelection.ts)
|
|
30
|
+
|
|
31
|
+
Affirmer qu’une information est sélectionnée et lever une exception sinon.
|
|
32
|
+
|
|
33
|
+
### [DEither.group](10-group.ts)
|
|
34
|
+
|
|
35
|
+
Regrouper des Right dans un Success en arrêtant au premier Left.
|
|
36
|
+
|
|
37
|
+
### [DEither.hasInformation](10-hasInformation.ts)
|
|
38
|
+
|
|
39
|
+
Tester l’information d’un Either et affiner le statut et la valeur.
|
|
40
|
+
|
|
41
|
+
### [DEither.isLeft](10-isLeft.ts)
|
|
42
|
+
|
|
43
|
+
Vérifier le statut Left et affiner le type de la valeur.
|
|
44
|
+
|
|
45
|
+
### [DEither.isRight](10-isRight.ts)
|
|
46
|
+
|
|
47
|
+
Vérifier le statut Right et affiner le type de la valeur.
|
|
48
|
+
|
|
49
|
+
### [DEither.isSelected](10-isSelected.ts)
|
|
50
|
+
|
|
51
|
+
Tester une sélection d’informations et affiner l’union d’Either.
|
|
52
|
+
|
|
53
|
+
### [DEither.keepAsRightByInformation](10-keepAsRightByInformation.ts)
|
|
54
|
+
|
|
55
|
+
Reclasser comme Right les variantes portant certaines informations.
|
|
56
|
+
|
|
57
|
+
### [DEither.keepAsRightSelection](10-keepAsRightSelection.ts)
|
|
58
|
+
|
|
59
|
+
Reclasser les variantes selon une sélection exhaustive d’informations.
|
|
60
|
+
|
|
61
|
+
### [DEither.left](10-left.ts)
|
|
62
|
+
|
|
63
|
+
Créer un résultat Left avec une information et une valeur optionnelle.
|
|
64
|
+
|
|
65
|
+
### [DEither.matchInformation](10-matchInformation.ts)
|
|
66
|
+
|
|
67
|
+
Appliquer exhaustivement une callback selon l’information du résultat.
|
|
68
|
+
|
|
69
|
+
### [DEither.matchInformationCombination](10-matchInformationCombination.ts)
|
|
70
|
+
|
|
71
|
+
Appliquer un traitement pour chaque combinaison d’informations d’une collection d’Either.
|
|
72
|
+
|
|
73
|
+
### [DEither.matchInformationCombinationOtherwise](10-matchInformationCombinationOtherwise.ts)
|
|
74
|
+
|
|
75
|
+
Traiter les combinaisons d’informations choisies et fournir un cas de repli.
|
|
76
|
+
|
|
77
|
+
### [DEither.matchInformationOtherwise](10-matchInformationOtherwise.ts)
|
|
78
|
+
|
|
79
|
+
Appliquer une callback pour certaines informations et une branche de repli pour les autres.
|
|
80
|
+
|
|
81
|
+
### [DEither.none](10-none.ts)
|
|
82
|
+
|
|
83
|
+
Créer le Left représentant l’absence d’une valeur.
|
|
84
|
+
|
|
85
|
+
### [DEither.ok](10-ok.ts)
|
|
86
|
+
|
|
87
|
+
Créer un Right standardisé représentant une réussite sans valeur.
|
|
88
|
+
|
|
89
|
+
### [DEither.result](10-result.ts)
|
|
90
|
+
|
|
91
|
+
Créer un état contextualisé de type Result, sans lui attribuer un succès ou un échec.
|
|
92
|
+
|
|
93
|
+
### [DEither.rewriteInformation](10-rewriteInformation.ts)
|
|
94
|
+
|
|
95
|
+
Renommer certaines informations en conservant le statut et la valeur.
|
|
96
|
+
|
|
97
|
+
### [DEither.right](10-right.ts)
|
|
98
|
+
|
|
99
|
+
Créer un résultat Right avec une information et une valeur optionnelle.
|
|
100
|
+
|
|
101
|
+
### [DEither.rightAsyncPipe](10-rightAsyncPipe.ts)
|
|
102
|
+
|
|
103
|
+
Enchaîner des transformations asynchrones sur la valeur d’un Right en arrêtant au premier Left.
|
|
104
|
+
|
|
105
|
+
### [DEither.rightPipe](10-rightPipe.ts)
|
|
106
|
+
|
|
107
|
+
Enchaîner des transformations sur la valeur d’un Right en arrêtant au premier Left.
|
|
108
|
+
|
|
109
|
+
### [DEither.safeCallback](10-safeCallback.ts)
|
|
110
|
+
|
|
111
|
+
Convertir une valeur ou une exception d’une callback en Either.
|
|
112
|
+
|
|
113
|
+
### [DEither.some](10-some.ts)
|
|
114
|
+
|
|
115
|
+
Créer un Right représentant une valeur présente dans un Maybe.
|
|
116
|
+
|
|
117
|
+
### [DEither.success](10-success.ts)
|
|
118
|
+
|
|
119
|
+
Créer un Right standardisé avec l’information `success`.
|
|
120
|
+
|
|
121
|
+
### [DEither.toMaybe](10-toMaybe.ts)
|
|
122
|
+
|
|
123
|
+
Convertir une valeur, une absence ou un Either en représentation Maybe.
|
|
124
|
+
|
|
125
|
+
### [DEither.unwrapByInformation](10-unwrapByInformation.ts)
|
|
126
|
+
|
|
127
|
+
Extraire les variantes portant une information donnée et transmettre les autres.
|
|
128
|
+
|
|
129
|
+
### [DEither.unwrapByInformationOrThrow](10-unwrapByInformationOrThrow.ts)
|
|
130
|
+
|
|
131
|
+
Extraire une information ciblée ou lever une exception si elle est absente.
|
|
132
|
+
|
|
133
|
+
### [DEither.unwrapLeft](10-unwrapLeft.ts)
|
|
134
|
+
|
|
135
|
+
Extraire la valeur d’un Left et laisser les autres valeurs inchangées.
|
|
136
|
+
|
|
137
|
+
### [DEither.unwrapLeftOrThrow](10-unwrapLeftOrThrow.ts)
|
|
138
|
+
|
|
139
|
+
Extraire un Left ou lever une exception lorsque le statut attendu n’est pas présent.
|
|
140
|
+
|
|
141
|
+
### [DEither.unwrapOr](10-unwrapOr.ts)
|
|
142
|
+
|
|
143
|
+
Extraire la valeur d’un Right ou fournir une valeur de remplacement.
|
|
144
|
+
|
|
145
|
+
### [DEither.unwrapOtherwise](10-unwrapOtherwise.ts)
|
|
146
|
+
|
|
147
|
+
Extraire la valeur d’un Right ou calculer une valeur de remplacement pour les autres cas.
|
|
148
|
+
|
|
149
|
+
### [DEither.unwrapRight](10-unwrapRight.ts)
|
|
150
|
+
|
|
151
|
+
Extraire la valeur d’un Right et laisser les autres valeurs inchangées.
|
|
152
|
+
|
|
153
|
+
### [DEither.unwrapRightOrThrow](10-unwrapRightOrThrow.ts)
|
|
154
|
+
|
|
155
|
+
Extraire un Right ou lever une exception lorsque le statut attendu n’est pas présent.
|
|
156
|
+
|
|
157
|
+
### [DEither.unwrapSelection](10-unwrapSelection.ts)
|
|
158
|
+
|
|
159
|
+
Extraire les variantes marquées `true` dans une sélection et transmettre les autres.
|
|
160
|
+
|
|
161
|
+
### [DEither.unwrapSelectionOrThrow](10-unwrapSelectionOrThrow.ts)
|
|
162
|
+
|
|
163
|
+
Extraire une variante sélectionnée ou lever une exception lorsqu’elle ne l’est pas.
|
|
164
|
+
|
|
165
|
+
### [DEither.whenHasInformation](10-whenHasInformation.ts)
|
|
166
|
+
|
|
167
|
+
Transformer la valeur des variantes portant une information donnée.
|
|
168
|
+
|
|
169
|
+
### [DEither.whenHasInformationOtherwise](10-whenHasInformationOtherwise.ts)
|
|
170
|
+
|
|
171
|
+
Traiter les variantes ciblées par information et fournir une branche de repli.
|
|
172
|
+
|
|
173
|
+
### [DEither.whenIsLeft](10-whenIsLeft.ts)
|
|
174
|
+
|
|
175
|
+
Transformer la valeur d’un Left et transmettre les autres résultats inchangés.
|
|
176
|
+
|
|
177
|
+
### [DEither.whenIsLeftOtherwise](10-whenIsLeftOtherwise.ts)
|
|
178
|
+
|
|
179
|
+
Traiter séparément les Left et les autres résultats.
|
|
180
|
+
|
|
181
|
+
### [DEither.whenIsRight](10-whenIsRight.ts)
|
|
182
|
+
|
|
183
|
+
Transformer la valeur d’un Right et transmettre les autres résultats inchangés.
|
|
184
|
+
|
|
185
|
+
### [DEither.whenIsRightOtherwise](10-whenIsRightOtherwise.ts)
|
|
186
|
+
|
|
187
|
+
Traiter séparément les Right et les autres résultats.
|
|
188
|
+
|
|
189
|
+
### [DEither.whenIsSelected](10-whenIsSelected.ts)
|
|
190
|
+
|
|
191
|
+
Transformer la valeur des variantes marquées `true` dans une sélection.
|
|
192
|
+
|
|
193
|
+
### [DEither.whenIsSelectedOtherwise](10-whenIsSelectedOtherwise.ts)
|
|
194
|
+
|
|
195
|
+
Transformer les variantes sélectionnées et traiter toutes les autres dans une branche de repli.
|
|
196
|
+
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DGenerator.asyncChunk
|
|
3
|
+
*
|
|
4
|
+
* Regrouper les valeurs d’un itérable asynchrone 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 = (async function *() {
|
|
11
|
+
await DCommon.timeout();
|
|
12
|
+
yield 1 as number;
|
|
13
|
+
yield 2 as number;
|
|
14
|
+
yield 3 as number;
|
|
15
|
+
})();
|
|
16
|
+
|
|
17
|
+
// Appel classique : les valeurs sont produites dans des groupes d’au plus deux éléments.
|
|
18
|
+
const result = DGenerator.asyncChunk(input, 2);
|
|
19
|
+
|
|
20
|
+
// La sortie est un AsyncGenerator qui produit [[1, 2], [3]].
|
|
21
|
+
type _CheckResult = DCommon.ExpectType<
|
|
22
|
+
typeof result,
|
|
23
|
+
AsyncGenerator<
|
|
24
|
+
& readonly number[]
|
|
25
|
+
& DArray.MinElements<1>
|
|
26
|
+
& DArray.MaxElements<2>,
|
|
27
|
+
unknown,
|
|
28
|
+
unknown
|
|
29
|
+
>,
|
|
30
|
+
"strict"
|
|
31
|
+
>;
|
|
32
|
+
|
|
33
|
+
// Appel curifié : la taille est configurée dans l’étape du pipe.
|
|
34
|
+
const piped = DCommon.pipe(
|
|
35
|
+
(async function *() {
|
|
36
|
+
await DCommon.timeout();
|
|
37
|
+
yield 1 as number;
|
|
38
|
+
yield 2 as number;
|
|
39
|
+
yield 3 as number;
|
|
40
|
+
yield 4 as number;
|
|
41
|
+
})(),
|
|
42
|
+
DGenerator.asyncChunk(3),
|
|
43
|
+
DArray.from,
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
// La promesse se résout vers [[1, 2, 3], [4]].
|
|
47
|
+
type _CheckPiped = DCommon.ExpectType<
|
|
48
|
+
typeof piped,
|
|
49
|
+
Promise<readonly (
|
|
50
|
+
& readonly number[]
|
|
51
|
+
& DArray.MinElements<1>
|
|
52
|
+
& DArray.MaxElements<3>
|
|
53
|
+
)[]>,
|
|
54
|
+
"strict"
|
|
55
|
+
>;
|
|
@@ -0,0 +1,43 @@
|
|
|
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;
|
|
13
|
+
yield 2;
|
|
14
|
+
})();
|
|
15
|
+
|
|
16
|
+
const tail = (async function *() {
|
|
17
|
+
await DCommon.timeout();
|
|
18
|
+
yield 4;
|
|
19
|
+
yield 5;
|
|
20
|
+
})();
|
|
21
|
+
|
|
22
|
+
// Appel classique : les valeurs sont produites dans l’ordre [1, 2, 3, 4, 5].
|
|
23
|
+
const result = DGenerator.asyncConcat(head, [3], 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([3, 4]),
|
|
35
|
+
DArray.from,
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
// La promesse se résout vers [1, 2, 3, 4].
|
|
39
|
+
type _CheckPiped = DCommon.ExpectType<
|
|
40
|
+
typeof piped,
|
|
41
|
+
Promise<readonly (1 | 2 | 3 | 4)[]>,
|
|
42
|
+
"strict"
|
|
43
|
+
>;
|
|
@@ -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]];
|
|
12
|
+
yield [[3]];
|
|
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<number[], void, unknown>,
|
|
21
|
+
"strict"
|
|
22
|
+
>;
|
|
23
|
+
|
|
24
|
+
const nestedInput = (async function *() {
|
|
25
|
+
await DCommon.timeout();
|
|
26
|
+
yield [[1], [2]];
|
|
27
|
+
yield [[3]];
|
|
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<number, 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
|
+
>;
|