@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,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DPattern.matchWithError
|
|
3
|
+
*
|
|
4
|
+
* Traiter chaque variante d’une union d’erreurs DuploJS selon son identifiant typé.
|
|
5
|
+
*/
|
|
6
|
+
import * as DPattern from "@duplojs/lang/pattern";
|
|
7
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
|
|
9
|
+
class ValidationError extends DCommon.DuploJSError.parentClass("validation") {}
|
|
10
|
+
class StorageError extends DCommon.DuploJSError.parentClass("storage") {}
|
|
11
|
+
declare const error: ValidationError | StorageError;
|
|
12
|
+
|
|
13
|
+
// Appel direct : chaque nom de l’union exige une branche, sans clé étrangère.
|
|
14
|
+
const result = DPattern.matchWithError(error, {
|
|
15
|
+
validation: (value) => {
|
|
16
|
+
type _CheckValue = DCommon.ExpectType<typeof value, ValidationError, "strict">;
|
|
17
|
+
return value.message;
|
|
18
|
+
},
|
|
19
|
+
storage: (value) => {
|
|
20
|
+
type _CheckValue = DCommon.ExpectType<typeof value, StorageError, "strict">;
|
|
21
|
+
return value.message;
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
// La sortie est le message de l’erreur sélectionnée.
|
|
25
|
+
type _CheckResult = DCommon.ExpectType<typeof result, string, "strict">;
|
|
26
|
+
|
|
27
|
+
// Appel curifié : configurer les branches directement dans le pipe.
|
|
28
|
+
const piped = DCommon.pipe(
|
|
29
|
+
error,
|
|
30
|
+
DPattern.matchWithError({
|
|
31
|
+
validation: (value) => {
|
|
32
|
+
type _CheckValue = DCommon.ExpectType<typeof value, ValidationError, "strict">;
|
|
33
|
+
return value.message;
|
|
34
|
+
},
|
|
35
|
+
storage: (value) => {
|
|
36
|
+
type _CheckValue = DCommon.ExpectType<typeof value, StorageError, "strict">;
|
|
37
|
+
return value.message;
|
|
38
|
+
},
|
|
39
|
+
}),
|
|
40
|
+
);
|
|
41
|
+
// Même sélection : le message de l’erreur sélectionnée.
|
|
42
|
+
type _CheckPiped = DCommon.ExpectType<typeof piped, string, "strict">;
|
|
43
|
+
|
|
44
|
+
// Les clés sont les identifiants fixés par parentClass, pas le nom de classe
|
|
45
|
+
// ni le message. Un Error natif ne porte pas ce contrat de discrimination.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DPattern.matchWithErrorOtherwise
|
|
3
|
+
*
|
|
4
|
+
* Traiter certains identifiants d’erreur et transmettre au fallback l’union d’erreurs non couverte.
|
|
5
|
+
*/
|
|
6
|
+
import * as DPattern from "@duplojs/lang/pattern";
|
|
7
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
|
|
9
|
+
class ValidationError extends DCommon.DuploJSError.parentClass("validation") {}
|
|
10
|
+
class StorageError extends DCommon.DuploJSError.parentClass("storage") {}
|
|
11
|
+
class NetworkError extends DCommon.DuploJSError.parentClass("network") {}
|
|
12
|
+
declare const error: ValidationError | StorageError | NetworkError;
|
|
13
|
+
|
|
14
|
+
// Appel direct : traiter certains noms ; le repli reçoit uniquement le reste.
|
|
15
|
+
const result = DPattern.matchWithErrorOtherwise(
|
|
16
|
+
error,
|
|
17
|
+
{
|
|
18
|
+
validation: (value) => {
|
|
19
|
+
type _CheckValue = DCommon.ExpectType<typeof value, ValidationError, "strict">;
|
|
20
|
+
return value.message;
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
(value) => {
|
|
24
|
+
type _CheckRemaining = DCommon.ExpectType<typeof value, StorageError | NetworkError, "strict">;
|
|
25
|
+
return value.message;
|
|
26
|
+
},
|
|
27
|
+
);
|
|
28
|
+
// validation produit son résultat ; les autres variantes fournissent leur message.
|
|
29
|
+
type _CheckResult = DCommon.ExpectType<typeof result, string, "strict">;
|
|
30
|
+
|
|
31
|
+
// Appel curifié dans un pipe : le repli conserve le même affinement.
|
|
32
|
+
const piped = DCommon.pipe(
|
|
33
|
+
error,
|
|
34
|
+
DPattern.matchWithErrorOtherwise(
|
|
35
|
+
{
|
|
36
|
+
validation: (value) => {
|
|
37
|
+
type _CheckValue = DCommon.ExpectType<typeof value, ValidationError, "strict">;
|
|
38
|
+
return value.message;
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
(value) => {
|
|
42
|
+
type _CheckRemaining = DCommon.ExpectType<typeof value, StorageError | NetworkError, "strict">;
|
|
43
|
+
return value.message;
|
|
44
|
+
},
|
|
45
|
+
),
|
|
46
|
+
);
|
|
47
|
+
// validation produit son résultat ; les autres variantes fournissent leur message.
|
|
48
|
+
type _CheckPiped = DCommon.ExpectType<typeof piped, string, "strict">;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DPattern.matchWithFact
|
|
3
|
+
*
|
|
4
|
+
* Router des facts par nom et exposer leur valeur ainsi que leur payload typé.
|
|
5
|
+
*/
|
|
6
|
+
import * as DPattern from "@duplojs/lang/pattern";
|
|
7
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
import type * as DModeling from "@duplojs/lang/modeling";
|
|
9
|
+
|
|
10
|
+
interface Created extends DModeling.Fact<"Created", { title: string }> {}
|
|
11
|
+
interface Deleted extends DModeling.Fact<"Deleted", { reason: string }> {}
|
|
12
|
+
declare const event: Created | Deleted;
|
|
13
|
+
|
|
14
|
+
// Appel direct : chaque nom de l’union exige une branche, sans clé étrangère.
|
|
15
|
+
// Le nom de Fact, et non celui d’Entity, sélectionne la branche.
|
|
16
|
+
// Le second argument de chaque callback contient le payload.
|
|
17
|
+
const result = DPattern.matchWithFact(event, {
|
|
18
|
+
Created: (value, payload) => {
|
|
19
|
+
type _CheckValue = DCommon.ExpectType<typeof value, Created, "strict">;
|
|
20
|
+
type _CheckPayload = DCommon.ExpectType<typeof payload, { title: string }, "strict">;
|
|
21
|
+
return payload.title;
|
|
22
|
+
},
|
|
23
|
+
Deleted: (value, payload) => {
|
|
24
|
+
type _CheckValue = DCommon.ExpectType<typeof value, Deleted, "strict">;
|
|
25
|
+
type _CheckPayload = DCommon.ExpectType<typeof payload, { reason: string }, "strict">;
|
|
26
|
+
return payload.reason;
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
// La sortie est le titre de Created ou la raison de Deleted.
|
|
30
|
+
type _CheckResult = DCommon.ExpectType<typeof result, string, "strict">;
|
|
31
|
+
|
|
32
|
+
// Appel curifié : configurer les branches directement dans le pipe.
|
|
33
|
+
const piped = DCommon.pipe(
|
|
34
|
+
event,
|
|
35
|
+
DPattern.matchWithFact({
|
|
36
|
+
Created: (value, payload) => {
|
|
37
|
+
type _CheckValue = DCommon.ExpectType<typeof value, Created, "strict">;
|
|
38
|
+
type _CheckPayload = DCommon.ExpectType<typeof payload, { title: string }, "strict">;
|
|
39
|
+
return payload.title;
|
|
40
|
+
},
|
|
41
|
+
Deleted: (value, payload) => {
|
|
42
|
+
type _CheckValue = DCommon.ExpectType<typeof value, Deleted, "strict">;
|
|
43
|
+
type _CheckPayload = DCommon.ExpectType<typeof payload, { reason: string }, "strict">;
|
|
44
|
+
return payload.reason;
|
|
45
|
+
},
|
|
46
|
+
}),
|
|
47
|
+
);
|
|
48
|
+
// Même sélection : le titre de Created ou la raison de Deleted.
|
|
49
|
+
type _CheckPiped = DCommon.ExpectType<typeof piped, string, "strict">;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DPattern.matchWithFactOtherwise
|
|
3
|
+
*
|
|
4
|
+
* Router les facts choisis et traiter les autres noms avec un callback recevant le fact restant.
|
|
5
|
+
*/
|
|
6
|
+
import * as DPattern from "@duplojs/lang/pattern";
|
|
7
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
import type * as DModeling from "@duplojs/lang/modeling";
|
|
9
|
+
|
|
10
|
+
interface Created extends DModeling.Fact<"Created", { title: string }> {}
|
|
11
|
+
interface Deleted extends DModeling.Fact<"Deleted", { reason: string }> {}
|
|
12
|
+
interface Renamed extends DModeling.Fact<"Renamed", { title: string }> {}
|
|
13
|
+
declare const event: Created | Deleted | Renamed;
|
|
14
|
+
|
|
15
|
+
// Appel direct : traiter certains noms ; le repli reçoit uniquement le reste.
|
|
16
|
+
const result = DPattern.matchWithFactOtherwise(
|
|
17
|
+
event,
|
|
18
|
+
{
|
|
19
|
+
Created: (value, payload) => {
|
|
20
|
+
type _CheckValue = DCommon.ExpectType<typeof value, Created, "strict">;
|
|
21
|
+
return payload.title;
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
(value) => {
|
|
25
|
+
type _CheckRemaining = DCommon.ExpectType<typeof value, Deleted | Renamed, "strict">;
|
|
26
|
+
return value;
|
|
27
|
+
},
|
|
28
|
+
);
|
|
29
|
+
// Created produit son résultat ; les autres variantes fournissent leur valeur complète.
|
|
30
|
+
type _CheckResult = DCommon.ExpectType<typeof result, string | Deleted | Renamed, "strict">;
|
|
31
|
+
|
|
32
|
+
// Appel curifié dans un pipe : le repli conserve le même affinement.
|
|
33
|
+
const piped = DCommon.pipe(
|
|
34
|
+
event,
|
|
35
|
+
DPattern.matchWithFactOtherwise(
|
|
36
|
+
{
|
|
37
|
+
Created: (value, payload) => {
|
|
38
|
+
type _CheckValue = DCommon.ExpectType<typeof value, Created, "strict">;
|
|
39
|
+
return payload.title;
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
(value) => {
|
|
43
|
+
type _CheckRemaining = DCommon.ExpectType<typeof value, Deleted | Renamed, "strict">;
|
|
44
|
+
return value;
|
|
45
|
+
},
|
|
46
|
+
),
|
|
47
|
+
);
|
|
48
|
+
// Created produit son résultat ; les autres variantes fournissent leur valeur complète.
|
|
49
|
+
type _CheckPiped = DCommon.ExpectType<typeof piped, string | Deleted | Renamed, "strict">;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DPattern.matchWithNumber
|
|
3
|
+
*
|
|
4
|
+
* Associer chaque nombre littéral possible à un callback spécialisé pour cette valeur.
|
|
5
|
+
*/
|
|
6
|
+
import * as DPattern from "@duplojs/lang/pattern";
|
|
7
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
|
|
9
|
+
declare const responseCode: 200 | 404;
|
|
10
|
+
|
|
11
|
+
const result = DPattern.matchWithNumber(responseCode, {
|
|
12
|
+
200: (code) => {
|
|
13
|
+
type _CheckValue = DCommon.ExpectType<typeof code, 200, "strict">;
|
|
14
|
+
return `success ${code}`;
|
|
15
|
+
},
|
|
16
|
+
404: (code) => {
|
|
17
|
+
type _CheckValue = DCommon.ExpectType<typeof code, 404, "strict">;
|
|
18
|
+
return `missing ${code}`;
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
// Le handler sélectionné retourne le libellé de réussite ou d’absence.
|
|
22
|
+
type _CheckResult = DCommon.ExpectType<typeof result, string, "strict">;
|
|
23
|
+
|
|
24
|
+
// Appel curifié : toutes les valeurs de l’union sont couvertes dans le pipe.
|
|
25
|
+
const piped = DCommon.pipe(
|
|
26
|
+
responseCode,
|
|
27
|
+
DPattern.matchWithNumber({
|
|
28
|
+
200: () => true,
|
|
29
|
+
404: () => false,
|
|
30
|
+
}),
|
|
31
|
+
);
|
|
32
|
+
// La sortie vaut true pour 200, false pour 404.
|
|
33
|
+
type _CheckPiped = DCommon.ExpectType<typeof piped, boolean, "strict">;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DPattern.matchWithNumberOtherwise
|
|
3
|
+
*
|
|
4
|
+
* Traiter certains nombres littéraux et recevoir les autres valeurs dans un fallback.
|
|
5
|
+
*/
|
|
6
|
+
import * as DPattern from "@duplojs/lang/pattern";
|
|
7
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
|
|
9
|
+
declare const responseCode: 200 | 404 | 503;
|
|
10
|
+
|
|
11
|
+
const label = DPattern.matchWithNumberOtherwise(
|
|
12
|
+
responseCode,
|
|
13
|
+
{
|
|
14
|
+
200: () => "success",
|
|
15
|
+
404: () => "missing",
|
|
16
|
+
},
|
|
17
|
+
(code) => {
|
|
18
|
+
type _CheckRemaining = DCommon.ExpectType<typeof code, 503, "strict">;
|
|
19
|
+
return `retry ${code}`;
|
|
20
|
+
},
|
|
21
|
+
);
|
|
22
|
+
// Les codes 200 et 404 ont leurs libellés ; 503 fournit « retry 503 » au fallback.
|
|
23
|
+
type _CheckLabel = DCommon.ExpectType<typeof label, string, "strict">;
|
|
24
|
+
|
|
25
|
+
// Appel curifié : seul 200 est traité ; le repli conserve 404 | 503.
|
|
26
|
+
const piped = DCommon.pipe(
|
|
27
|
+
responseCode,
|
|
28
|
+
DPattern.matchWithNumberOtherwise(
|
|
29
|
+
{ 200: () => "success" },
|
|
30
|
+
(code) => {
|
|
31
|
+
type _CheckRemaining = DCommon.ExpectType<typeof code, 404 | 503, "strict">;
|
|
32
|
+
return code;
|
|
33
|
+
},
|
|
34
|
+
),
|
|
35
|
+
);
|
|
36
|
+
// La sortie vaut "success" pour 200, sinon le code d’origine.
|
|
37
|
+
type _CheckPiped = DCommon.ExpectType<typeof piped, string | 404 | 503, "strict">;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DPattern.matchWithString
|
|
3
|
+
*
|
|
4
|
+
* Associer chaque chaîne littérale possible à un callback dont le paramètre est cette valeur exacte.
|
|
5
|
+
*/
|
|
6
|
+
import * as DPattern from "@duplojs/lang/pattern";
|
|
7
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
import * as DString from "@duplojs/lang/string";
|
|
9
|
+
|
|
10
|
+
declare const status: "queued" | "sent";
|
|
11
|
+
|
|
12
|
+
// Tous les littéraux de l’union ont leur branche ; chaque callback reçoit sa clé comme type.
|
|
13
|
+
const message = DPattern.matchWithString(status, {
|
|
14
|
+
queued: (value) => {
|
|
15
|
+
type _CheckValue = DCommon.ExpectType<typeof value, "queued", "strict">;
|
|
16
|
+
return DString.prepend(value, "Waiting: ");
|
|
17
|
+
},
|
|
18
|
+
sent: (value) => {
|
|
19
|
+
type _CheckValue = DCommon.ExpectType<typeof value, "sent", "strict">;
|
|
20
|
+
return DString.prepend(value, "Delivered: ");
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
// La sortie vaut « Waiting: queued » ou « Delivered: sent » selon le statut.
|
|
24
|
+
type _CheckMessage = DCommon.ExpectType<typeof message, "Waiting: queued" | "Delivered: sent", "strict">;
|
|
25
|
+
|
|
26
|
+
const piped = DCommon.pipe(
|
|
27
|
+
status,
|
|
28
|
+
DPattern.matchWithString({
|
|
29
|
+
queued: () => 0,
|
|
30
|
+
sent: () => 1,
|
|
31
|
+
}),
|
|
32
|
+
);
|
|
33
|
+
// Le code de sortie vaut 0 pour queued et 1 pour sent.
|
|
34
|
+
type _CheckPiped = DCommon.ExpectType<typeof piped, number, "strict">;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DPattern.matchWithStringOtherwise
|
|
3
|
+
*
|
|
4
|
+
* Traiter certains littéraux de chaîne et transmettre au fallback l’union non couverte.
|
|
5
|
+
*/
|
|
6
|
+
import * as DPattern from "@duplojs/lang/pattern";
|
|
7
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
import * as DString from "@duplojs/lang/string";
|
|
9
|
+
|
|
10
|
+
declare const status: "queued" | "sent" | "cancelled";
|
|
11
|
+
|
|
12
|
+
const description = DPattern.matchWithStringOtherwise(
|
|
13
|
+
status,
|
|
14
|
+
{
|
|
15
|
+
queued: () => "Waiting",
|
|
16
|
+
sent: () => "Delivered",
|
|
17
|
+
},
|
|
18
|
+
(value) => {
|
|
19
|
+
type _CheckRemaining = DCommon.ExpectType<typeof value, "cancelled", "strict">;
|
|
20
|
+
return DString.prepend(value, "Stopped: ");
|
|
21
|
+
},
|
|
22
|
+
);
|
|
23
|
+
// Le statut sélectionné fournit son libellé ; cancelled donne « Stopped: cancelled ».
|
|
24
|
+
type _CheckDescription = DCommon.ExpectType<typeof description, string, "strict">;
|
|
25
|
+
|
|
26
|
+
// La forme curifiée fixe les handlers avant de recevoir le statut dans un pipe.
|
|
27
|
+
const piped = DCommon.pipe(
|
|
28
|
+
status,
|
|
29
|
+
DPattern.matchWithStringOtherwise(
|
|
30
|
+
{ sent: () => 200 },
|
|
31
|
+
DString.toUpperCase,
|
|
32
|
+
),
|
|
33
|
+
);
|
|
34
|
+
// Sent retourne un code ; queued et cancelled sont convertis en majuscules.
|
|
35
|
+
type _CheckPiped = DCommon.ExpectType<typeof piped, number | "QUEUED" | "CANCELLED", "strict">;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DPattern.matchWithTaggedObject
|
|
3
|
+
*
|
|
4
|
+
* Router une union d’objets marqués vers un callback par valeur de tag.
|
|
5
|
+
*/
|
|
6
|
+
import * as DPattern from "@duplojs/lang/pattern";
|
|
7
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
import type * as DModeling from "@duplojs/lang/modeling";
|
|
9
|
+
|
|
10
|
+
interface Success extends DModeling.ObjectTag<"success"> { value: number }
|
|
11
|
+
interface Failure extends DModeling.ObjectTag<"failure"> { reason: string }
|
|
12
|
+
declare const outcome: Success | Failure;
|
|
13
|
+
|
|
14
|
+
// Appel direct : chaque nom de l’union exige une branche, sans clé étrangère.
|
|
15
|
+
const result = DPattern.matchWithTaggedObject(outcome, {
|
|
16
|
+
success: (value) => {
|
|
17
|
+
type _CheckValue = DCommon.ExpectType<typeof value, Success, "strict">;
|
|
18
|
+
return value.value;
|
|
19
|
+
},
|
|
20
|
+
failure: (value) => {
|
|
21
|
+
type _CheckValue = DCommon.ExpectType<typeof value, Failure, "strict">;
|
|
22
|
+
return value.reason;
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
// La sortie est le nombre de réussite ou la raison du refus.
|
|
26
|
+
type _CheckResult = DCommon.ExpectType<typeof result, number | string, "strict">;
|
|
27
|
+
|
|
28
|
+
// Appel curifié : configurer les branches directement dans le pipe.
|
|
29
|
+
const piped = DCommon.pipe(
|
|
30
|
+
outcome,
|
|
31
|
+
DPattern.matchWithTaggedObject({
|
|
32
|
+
success: (value) => {
|
|
33
|
+
type _CheckValue = DCommon.ExpectType<typeof value, Success, "strict">;
|
|
34
|
+
return value.value;
|
|
35
|
+
},
|
|
36
|
+
failure: (value) => {
|
|
37
|
+
type _CheckValue = DCommon.ExpectType<typeof value, Failure, "strict">;
|
|
38
|
+
return value.reason;
|
|
39
|
+
},
|
|
40
|
+
}),
|
|
41
|
+
);
|
|
42
|
+
// Même sélection : le nombre de réussite ou la raison du refus.
|
|
43
|
+
type _CheckPiped = DCommon.ExpectType<typeof piped, number | string, "strict">;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DPattern.matchWithTaggedObjectOtherwise
|
|
3
|
+
*
|
|
4
|
+
* Router les tags explicitement traités et transmettre les variantes restantes au fallback.
|
|
5
|
+
*/
|
|
6
|
+
import * as DPattern from "@duplojs/lang/pattern";
|
|
7
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
import type * as DModeling from "@duplojs/lang/modeling";
|
|
9
|
+
|
|
10
|
+
interface Success extends DModeling.ObjectTag<"success"> { value: number }
|
|
11
|
+
interface Failure extends DModeling.ObjectTag<"failure"> { reason: string }
|
|
12
|
+
interface Pending extends DModeling.ObjectTag<"pending"> { task: string }
|
|
13
|
+
declare const outcome: Success | Failure | Pending;
|
|
14
|
+
|
|
15
|
+
// Appel direct : traiter certains noms ; le repli reçoit uniquement le reste.
|
|
16
|
+
const result = DPattern.matchWithTaggedObjectOtherwise(
|
|
17
|
+
outcome,
|
|
18
|
+
{
|
|
19
|
+
success: (value) => {
|
|
20
|
+
type _CheckValue = DCommon.ExpectType<typeof value, Success, "strict">;
|
|
21
|
+
return value.value;
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
(value) => {
|
|
25
|
+
type _CheckRemaining = DCommon.ExpectType<typeof value, Failure | Pending, "strict">;
|
|
26
|
+
return value;
|
|
27
|
+
},
|
|
28
|
+
);
|
|
29
|
+
// success produit son résultat ; les autres variantes fournissent leur objet complet.
|
|
30
|
+
type _CheckResult = DCommon.ExpectType<typeof result, number | Failure | Pending, "strict">;
|
|
31
|
+
|
|
32
|
+
// Appel curifié dans un pipe : le repli conserve le même affinement.
|
|
33
|
+
const piped = DCommon.pipe(
|
|
34
|
+
outcome,
|
|
35
|
+
DPattern.matchWithTaggedObjectOtherwise(
|
|
36
|
+
{
|
|
37
|
+
success: (value) => {
|
|
38
|
+
type _CheckValue = DCommon.ExpectType<typeof value, Success, "strict">;
|
|
39
|
+
return value.value;
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
(value) => {
|
|
43
|
+
type _CheckRemaining = DCommon.ExpectType<typeof value, Failure | Pending, "strict">;
|
|
44
|
+
return value;
|
|
45
|
+
},
|
|
46
|
+
),
|
|
47
|
+
);
|
|
48
|
+
// success produit son résultat ; les autres variantes fournissent leur objet complet.
|
|
49
|
+
type _CheckPiped = DCommon.ExpectType<typeof piped, number | Failure | Pending, "strict">;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DPattern.otherwise
|
|
3
|
+
*
|
|
4
|
+
* Traiter la valeur non reconnue restante ou déballer un résultat déjà traité.
|
|
5
|
+
*/
|
|
6
|
+
import * as DPattern from "@duplojs/lang/pattern";
|
|
7
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
|
|
9
|
+
type Input = {
|
|
10
|
+
kind: "ready";
|
|
11
|
+
value: number;
|
|
12
|
+
} | {
|
|
13
|
+
kind: "pending";
|
|
14
|
+
task: string;
|
|
15
|
+
};
|
|
16
|
+
declare const input: Input;
|
|
17
|
+
const output = DCommon.pipe(
|
|
18
|
+
input,
|
|
19
|
+
DPattern.when(
|
|
20
|
+
DPattern.isMatch({ kind: "ready" }),
|
|
21
|
+
(value) => value.value,
|
|
22
|
+
),
|
|
23
|
+
DPattern.otherwise(
|
|
24
|
+
(remaining) => remaining.task,
|
|
25
|
+
),
|
|
26
|
+
);
|
|
27
|
+
// La branche déjà traitée fournit un nombre ; pending fournit son identifiant de tâche.
|
|
28
|
+
type _CheckOutput = DCommon.ExpectType<typeof output, number | string, "strict">;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DPattern.union
|
|
3
|
+
*
|
|
4
|
+
* Combiner plusieurs motifs en un seul motif correspondant à l’un d’eux.
|
|
5
|
+
*/
|
|
6
|
+
import * as DPattern from "@duplojs/lang/pattern";
|
|
7
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
import * as DString from "@duplojs/lang/string";
|
|
9
|
+
|
|
10
|
+
type Input = {
|
|
11
|
+
kind: "draft";
|
|
12
|
+
id: number;
|
|
13
|
+
} | {
|
|
14
|
+
kind: "published";
|
|
15
|
+
id: number;
|
|
16
|
+
} | {
|
|
17
|
+
kind: "archived";
|
|
18
|
+
id: number;
|
|
19
|
+
};
|
|
20
|
+
declare const input: Input;
|
|
21
|
+
const result = DCommon.pipe(
|
|
22
|
+
input,
|
|
23
|
+
DPattern.when(
|
|
24
|
+
DPattern.isMatch(DPattern.union({ kind: "draft" }, { kind: "published" })),
|
|
25
|
+
(value) => value.id,
|
|
26
|
+
),
|
|
27
|
+
DPattern.otherwise(
|
|
28
|
+
(value) => value.id,
|
|
29
|
+
),
|
|
30
|
+
);
|
|
31
|
+
// Draft, published et archived fournissent leur id numérique.
|
|
32
|
+
type _CheckResult = DCommon.ExpectType<typeof result, number, "strict">;
|
|
33
|
+
|
|
34
|
+
// Motifs de valeurs : union exprime un OU, y compris avec un predicate fourni.
|
|
35
|
+
declare const status: "ready" | "draft" | "archived";
|
|
36
|
+
const label = DCommon.pipe(
|
|
37
|
+
status,
|
|
38
|
+
DPattern.match(
|
|
39
|
+
DPattern.union("ready", DString.startsWith("draft")),
|
|
40
|
+
DString.toUpperCase,
|
|
41
|
+
),
|
|
42
|
+
DPattern.otherwise(
|
|
43
|
+
(value) => value,
|
|
44
|
+
),
|
|
45
|
+
);
|
|
46
|
+
// Ready et draft donnent leur majuscule ; archived reste inchangé.
|
|
47
|
+
type _CheckLabel = DCommon.ExpectType<typeof label, "READY" | "DRAFT" | "archived", "strict">;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DPattern.when
|
|
3
|
+
*
|
|
4
|
+
* Exécuter un traitement lorsque le predicate correspond, en laissant la branche sinon inchangée.
|
|
5
|
+
*/
|
|
6
|
+
import * as DPattern from "@duplojs/lang/pattern";
|
|
7
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
import * as DString from "@duplojs/lang/string";
|
|
9
|
+
import * as DNumber from "@duplojs/lang/number";
|
|
10
|
+
|
|
11
|
+
type Input = {
|
|
12
|
+
kind: "number";
|
|
13
|
+
value: number;
|
|
14
|
+
} | {
|
|
15
|
+
kind: "text";
|
|
16
|
+
value: string;
|
|
17
|
+
};
|
|
18
|
+
// Les PatternResult issus d’une étape précédente sont transmis sans nouveau test.
|
|
19
|
+
declare const input: Input;
|
|
20
|
+
const result = DCommon.pipe(
|
|
21
|
+
input,
|
|
22
|
+
DPattern.when(
|
|
23
|
+
DPattern.isMatch({ kind: "number" }),
|
|
24
|
+
(value) => DNumber.sum([value.value, 1]),
|
|
25
|
+
),
|
|
26
|
+
DPattern.otherwise(
|
|
27
|
+
(value) => value.value,
|
|
28
|
+
),
|
|
29
|
+
);
|
|
30
|
+
// La branche number fournit son résultat ; otherwise récupère la valeur et traite le cas text.
|
|
31
|
+
type _CheckResult = DCommon.ExpectType<typeof result, number | string, "strict">;
|
|
32
|
+
|
|
33
|
+
// Predicate booléen : le test RegExp ne permet pas d’éliminer une variante du type.
|
|
34
|
+
declare const text: string;
|
|
35
|
+
const conditional = DCommon.pipe(
|
|
36
|
+
text,
|
|
37
|
+
DPattern.when(
|
|
38
|
+
DString.test(/^ready/),
|
|
39
|
+
DString.toUpperCase,
|
|
40
|
+
),
|
|
41
|
+
DPattern.otherwise(
|
|
42
|
+
DString.toUpperCase,
|
|
43
|
+
),
|
|
44
|
+
);
|
|
45
|
+
// Les textes commençant par ready sont mis en majuscules ; les autres restent inchangés.
|
|
46
|
+
type _CheckConditional = DCommon.ExpectType<typeof conditional, Uppercase<string>, "strict">;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DPattern.whenNot
|
|
3
|
+
*
|
|
4
|
+
* Exécuter un traitement pour les valeurs refusées par le predicate et laisser les autres non traitées.
|
|
5
|
+
*/
|
|
6
|
+
import * as DPattern from "@duplojs/lang/pattern";
|
|
7
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
import * as DString from "@duplojs/lang/string";
|
|
9
|
+
import * as DNumber from "@duplojs/lang/number";
|
|
10
|
+
|
|
11
|
+
type Input = {
|
|
12
|
+
kind: "known";
|
|
13
|
+
id: number;
|
|
14
|
+
} | {
|
|
15
|
+
kind: "other";
|
|
16
|
+
value: string;
|
|
17
|
+
};
|
|
18
|
+
declare const input: Input;
|
|
19
|
+
|
|
20
|
+
// Appel classique : traiter la branche other et conserver known pour la suite.
|
|
21
|
+
const selected = DPattern.whenNot(input, DPattern.isMatch({ kind: "known" }), (value) => {
|
|
22
|
+
type _CheckValue = DCommon.ExpectType<typeof value, {
|
|
23
|
+
kind: "other";
|
|
24
|
+
value: string;
|
|
25
|
+
}, "strict">;
|
|
26
|
+
|
|
27
|
+
return DString.toUpperCase(value.value);
|
|
28
|
+
});
|
|
29
|
+
// Other produit un texte enveloppé ; known reste une valeur non traitée.
|
|
30
|
+
type _CheckSelected = DCommon.ExpectType<
|
|
31
|
+
typeof selected,
|
|
32
|
+
{
|
|
33
|
+
kind: "known";
|
|
34
|
+
id: number;
|
|
35
|
+
} | DPattern.PatternResult<Uppercase<string>>,
|
|
36
|
+
"strict"
|
|
37
|
+
>;
|
|
38
|
+
|
|
39
|
+
// Appel curifié : préserver les résultats précédents, puis terminer les cas restants.
|
|
40
|
+
declare const partiallyHandled: Input | DPattern.PatternResult<Uppercase<string>>;
|
|
41
|
+
const piped = DCommon.pipe(
|
|
42
|
+
partiallyHandled,
|
|
43
|
+
DPattern.whenNot(
|
|
44
|
+
DPattern.isMatch({ kind: "known" }),
|
|
45
|
+
(value) => DString.toUpperCase(value.value),
|
|
46
|
+
),
|
|
47
|
+
DPattern.otherwise(
|
|
48
|
+
(value) => value.id,
|
|
49
|
+
),
|
|
50
|
+
);
|
|
51
|
+
// Les résultats précédents sont transmis ; other est normalisé et known fournit son id.
|
|
52
|
+
// otherwise déballe le résultat final : aucun PatternResult ne subsiste dans la sortie.
|
|
53
|
+
type _CheckPiped = DCommon.ExpectType<typeof piped, Uppercase<string> | number, "strict">;
|
|
54
|
+
|
|
55
|
+
// Predicates imbriqués : étiqueter les états tout en conservant leurs littéraux.
|
|
56
|
+
declare const state: "ready" | "queued" | "blocked";
|
|
57
|
+
const pendingState = DPattern.whenNot(
|
|
58
|
+
state,
|
|
59
|
+
DCommon.or([DCommon.equal("ready"), DCommon.equal("queued")]),
|
|
60
|
+
DString.prepend("Attention : "),
|
|
61
|
+
);
|
|
62
|
+
type _CheckPendingState = DCommon.ExpectType<
|
|
63
|
+
typeof pendingState,
|
|
64
|
+
"ready" | "queued" | DPattern.PatternResult<"Attention : blocked">,
|
|
65
|
+
"strict"
|
|
66
|
+
>;
|
|
67
|
+
|
|
68
|
+
const labeledState = DCommon.pipe(
|
|
69
|
+
pendingState,
|
|
70
|
+
DPattern.when(
|
|
71
|
+
DCommon.equal("ready"),
|
|
72
|
+
DString.toUpperCase,
|
|
73
|
+
),
|
|
74
|
+
DPattern.otherwise(
|
|
75
|
+
DString.prepend("En attente : "),
|
|
76
|
+
),
|
|
77
|
+
);
|
|
78
|
+
// Une branche déjà enveloppée n'est pas traitée une seconde fois par les étapes suivantes.
|
|
79
|
+
type _CheckLabeledState = DCommon.ExpectType<
|
|
80
|
+
typeof labeledState,
|
|
81
|
+
"Attention : blocked" | "READY" | "En attente : queued",
|
|
82
|
+
"strict"
|
|
83
|
+
>;
|
|
84
|
+
|
|
85
|
+
// Test booléen : ajouter les frais de livraison seulement sous un seuil dynamique.
|
|
86
|
+
declare const orderTotal: number;
|
|
87
|
+
declare const freeShippingThreshold: number;
|
|
88
|
+
declare const shippingFee: number;
|
|
89
|
+
const shippingApplied = DPattern.whenNot(
|
|
90
|
+
orderTotal,
|
|
91
|
+
DNumber.greaterThanOrEqual(freeShippingThreshold),
|
|
92
|
+
(value) => {
|
|
93
|
+
type _CheckValue = DCommon.ExpectType<typeof value, number, "strict">;
|
|
94
|
+
|
|
95
|
+
return DNumber.sum([value, shippingFee]);
|
|
96
|
+
},
|
|
97
|
+
);
|
|
98
|
+
// Les petites commandes sont enveloppées après ajout des frais ; les autres restent brutes.
|
|
99
|
+
type _CheckShippingApplied = DCommon.ExpectType<
|
|
100
|
+
typeof shippingApplied,
|
|
101
|
+
number | DPattern.PatternResult<number>,
|
|
102
|
+
"strict"
|
|
103
|
+
>;
|
|
104
|
+
|
|
105
|
+
const pricedTotal = DCommon.pipe(
|
|
106
|
+
shippingApplied,
|
|
107
|
+
DPattern.otherwise(
|
|
108
|
+
DCommon.forward,
|
|
109
|
+
),
|
|
110
|
+
);
|
|
111
|
+
// otherwise conserve le total des commandes sans frais ou déballe le total avec frais.
|
|
112
|
+
// Le test booléen laisse number parmi les cas restants : exhaustive ne conviendrait pas.
|
|
113
|
+
type _CheckPricedTotal = DCommon.ExpectType<typeof pricedTotal, number, "strict">;
|
|
114
|
+
|
|
115
|
+
// Contrainte préservée : signaler les découverts et garder les soldes positifs ou nuls.
|
|
116
|
+
declare const balance: number;
|
|
117
|
+
const checkedBalance = DPattern.whenNot(balance, DNumber.isPositive, DCommon.justReturn("à découvert"));
|
|
118
|
+
// Un solde négatif donne un PatternResult ; zéro et les soldes positifs restent des nombres.
|
|
119
|
+
type _CheckCheckedBalance = DCommon.ExpectType<
|
|
120
|
+
typeof checkedBalance,
|
|
121
|
+
(number & DNumber.Positive) | DPattern.PatternResult<"à découvert">,
|
|
122
|
+
"strict"
|
|
123
|
+
>;
|