@duplojs/agents-kit 0.0.0-stage → 0.1.0-beta.10
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 +81 -2
- package/dist/bin/index.d.ts +2 -0
- package/dist/bin/index.mjs +7 -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/bin/skills/index.d.ts +5 -0
- package/dist/bin/skills/index.mjs +11 -0
- package/dist/bin/skills/install.d.ts +2 -0
- package/dist/bin/skills/install.mjs +25 -0
- package/dist/bin/skills/skill.d.ts +35 -0
- package/dist/bin/skills/skill.mjs +60 -0
- package/dist/bin/skills/update.d.ts +2 -0
- package/dist/bin/skills/update.mjs +19 -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 +23 -0
- package/docs/API/10-lang/10-common/10-asyncLoopAccumulator.ts +40 -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 +18 -0
- package/docs/API/10-lang/10-common/10-loopAccumulator.ts +35 -0
- package/docs/API/10-lang/10-common/10-loopAccumulatorFrom.ts +29 -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 +244 -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 +50 -0
- package/docs/API/10-lang/10-generator/10-asyncLoopAccumulator.ts +40 -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 +46 -0
- package/docs/API/10-lang/10-generator/10-loopAccumulator.ts +33 -0
- package/docs/API/10-lang/10-generator/10-loopAccumulatorFrom.ts +30 -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 +96 -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-deepOverride.ts +35 -0
- package/docs/API/10-lang/10-object/10-discriminate.ts +102 -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 +88 -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-primitives.md +19 -0
- package/docs/API/10-lang/10-printer/10-renderLine.ts +36 -0
- package/docs/API/10-lang/10-printer/10-renderParagraph.ts +37 -0
- package/docs/API/10-lang/10-printer/index.llms.md +29 -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/20-server/10-file/10-appendFile.ts +50 -0
- package/docs/API/20-server/10-file/10-appendTextFile.ts +49 -0
- package/docs/API/20-server/10-file/10-copy.ts +50 -0
- package/docs/API/20-server/10-file/10-createEntryInterface.ts +13 -0
- package/docs/API/20-server/10-file/10-createFileInterface.ts +22 -0
- package/docs/API/20-server/10-file/10-createFolderInterface.ts +20 -0
- package/docs/API/20-server/10-file/10-createUnknownEntryInterface.ts +13 -0
- package/docs/API/20-server/10-file/10-ensureDirectory.ts +39 -0
- package/docs/API/20-server/10-file/10-ensureFile.ts +40 -0
- package/docs/API/20-server/10-file/10-exists.ts +36 -0
- package/docs/API/20-server/10-file/10-link.ts +51 -0
- package/docs/API/20-server/10-file/10-linkStat.ts +37 -0
- package/docs/API/20-server/10-file/10-makeDirectory.ts +41 -0
- package/docs/API/20-server/10-file/10-makeTemporaryDirectory.ts +35 -0
- package/docs/API/20-server/10-file/10-makeTemporaryFile.ts +40 -0
- package/docs/API/20-server/10-file/10-move.ts +51 -0
- package/docs/API/20-server/10-file/10-readDirectory.ts +52 -0
- package/docs/API/20-server/10-file/10-readFile.ts +38 -0
- package/docs/API/20-server/10-file/10-readJsonFile.ts +38 -0
- package/docs/API/20-server/10-file/10-readLink.ts +37 -0
- package/docs/API/20-server/10-file/10-readTextFile.ts +38 -0
- package/docs/API/20-server/10-file/10-realPath.ts +36 -0
- package/docs/API/20-server/10-file/10-relocate.ts +51 -0
- package/docs/API/20-server/10-file/10-remove.ts +40 -0
- package/docs/API/20-server/10-file/10-rename.ts +43 -0
- package/docs/API/20-server/10-file/10-setMode.ts +37 -0
- package/docs/API/20-server/10-file/10-setOwner.ts +38 -0
- package/docs/API/20-server/10-file/10-setTime.ts +42 -0
- package/docs/API/20-server/10-file/10-stat.ts +37 -0
- package/docs/API/20-server/10-file/10-symlink.ts +49 -0
- package/docs/API/20-server/10-file/10-truncate.ts +41 -0
- package/docs/API/20-server/10-file/10-walkDirectory.ts +75 -0
- package/docs/API/20-server/10-file/10-writeFile.ts +50 -0
- package/docs/API/20-server/10-file/10-writeJsonFile.ts +41 -0
- package/docs/API/20-server/10-file/10-writeTextFile.ts +49 -0
- package/docs/API/20-server/10-file/index.llms.md +144 -0
- package/docs/API/20-server/10-file/index.md +3 -0
- package/docs/API/20-server/20-common/10-environmentVariable.ts +57 -0
- package/docs/API/20-server/20-common/10-environmentVariableOrThrow.ts +21 -0
- package/docs/API/20-server/20-common/10-exitProcess.ts +9 -0
- package/docs/API/20-server/20-common/10-getCurrentDirectoryName.ts +10 -0
- package/docs/API/20-server/20-common/10-getCurrentWorkDirectory.ts +10 -0
- package/docs/API/20-server/20-common/10-getCurrentWorkDirectoryOrThrow.ts +10 -0
- package/docs/API/20-server/20-common/10-getProcessArguments.ts +10 -0
- package/docs/API/20-server/20-common/10-setCurrentWorkingDirectory.ts +14 -0
- package/docs/API/20-server/20-common/10-setCurrentWorkingDirectoryOrThrow.ts +12 -0
- package/docs/API/20-server/20-common/index.llms.md +40 -0
- package/docs/API/20-server/20-common/index.md +3 -0
- package/docs/API/20-server/30-dataStructure/10-file.ts +14 -0
- package/docs/API/20-server/30-dataStructure/10-fileExist.ts +27 -0
- package/docs/API/20-server/30-dataStructure/10-folder.ts +14 -0
- package/docs/API/20-server/30-dataStructure/10-folderExist.ts +14 -0
- package/docs/API/20-server/30-dataStructure/10-mimeType.ts +14 -0
- package/docs/API/20-server/30-dataStructure/10-size.ts +32 -0
- package/docs/API/20-server/30-dataStructure/index.llms.md +28 -0
- package/docs/API/20-server/30-dataStructure/index.md +3 -0
- package/docs/API/20-server/40-command/10-create.ts +39 -0
- package/docs/API/20-server/40-command/10-createArgument.ts +39 -0
- package/docs/API/20-server/40-command/10-createArrayOption.ts +36 -0
- package/docs/API/20-server/40-command/10-createBooleanOption.ts +28 -0
- package/docs/API/20-server/40-command/10-createOption.ts +46 -0
- package/docs/API/20-server/40-command/10-exec.ts +51 -0
- package/docs/API/20-server/40-command/10-execOptions.ts +30 -0
- package/docs/API/20-server/40-command/index.llms.md +32 -0
- package/docs/API/20-server/40-command/index.md +3 -0
- package/docs/API/20-server/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 +135 -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 +19 -0
- package/skills/fundamental/references/constraints-and-validation.md +24 -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/iterations.ts +112 -0
- package/skills/fundamental/references/examples/result-selection.ts +65 -0
- package/skills/fundamental/references/examples/safe-declarations.ts +25 -0
- package/skills/fundamental/references/iterations.md +24 -0
- package/skills/fundamental/references/results-and-errors.md +34 -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
package/docs/API.llms.md
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Référence API
|
|
2
|
+
|
|
3
|
+
Références des fonctions publiques de l’écosystème DuploJS, organisées par package, namespace et domaine.
|
|
4
|
+
|
|
5
|
+
# @duplojs/lang
|
|
6
|
+
|
|
7
|
+
Primitives fonctionnelles indépendantes de la plateforme pour composer des transformations, manipuler les données et préserver leurs garanties de typage.
|
|
8
|
+
|
|
9
|
+
## [DArray](API/10-lang/10-array/index.llms.md)
|
|
10
|
+
|
|
11
|
+
Opérations immuables de lecture, transformation, sélection, réduction et modification de tableaux, avec prise en compte de leurs contraintes de typage.
|
|
12
|
+
|
|
13
|
+
## [DChrono](API/10-lang/10-chrono/index.llms.md)
|
|
14
|
+
|
|
15
|
+
Création, calcul, comparaison, sérialisation et formatage des dates, heures, durées et fuseaux horaires dans les représentations Chrono de DuploJS.
|
|
16
|
+
|
|
17
|
+
## [DCommon](API/10-lang/10-common/index.llms.md)
|
|
18
|
+
|
|
19
|
+
Fonctions générales de composition, de transformation, de contrôle de flux et de manipulation des valeurs partagées par les autres domaines DuploJS.
|
|
20
|
+
|
|
21
|
+
## [DDataStructure](API/10-lang/10-dataStructure/index.llms.md)
|
|
22
|
+
|
|
23
|
+
Construction de contrats de données validables au runtime, composables et reflétés dans les types TypeScript.
|
|
24
|
+
|
|
25
|
+
## [DEither](API/10-lang/10-either/index.llms.md)
|
|
26
|
+
|
|
27
|
+
Création, discrimination, transformation et propagation des réussites ou des échecs représentés par `Either`.
|
|
28
|
+
|
|
29
|
+
## [DGenerator](API/10-lang/10-generator/index.llms.md)
|
|
30
|
+
|
|
31
|
+
Création et composition de génératrices synchrones ou asynchrones pour produire, transformer, filtrer, réduire et consommer des séquences de valeurs.
|
|
32
|
+
|
|
33
|
+
## [DNumber](API/10-lang/10-number/index.llms.md)
|
|
34
|
+
|
|
35
|
+
Prédicats et transformations fonctionnelles pour comparer, vérifier, agréger et trier des nombres tout en conservant leurs contraintes de typage.
|
|
36
|
+
|
|
37
|
+
## [DObject](API/10-lang/10-object/index.llms.md)
|
|
38
|
+
|
|
39
|
+
Fonctions fonctionnelles pour lire, discriminer, transformer, fusionner et reconstruire des objets en conservant les informations de typage utiles.
|
|
40
|
+
|
|
41
|
+
## [DPath](API/10-lang/10-path/index.llms.md)
|
|
42
|
+
|
|
43
|
+
Chemins Unix typés : déclarer des littéraux, valider et normaliser des chaînes runtime, extraire des segments, résoudre des chemins ou sélectionner des motifs glob, indépendamment du système de fichiers.
|
|
44
|
+
|
|
45
|
+
## [DPattern](API/10-lang/10-pattern/index.llms.md)
|
|
46
|
+
|
|
47
|
+
Sélectionner et traiter les variantes d’une union par identité, valeur littérale, motif structurel ou predicate, avec couverture exhaustive ou branche de repli.
|
|
48
|
+
|
|
49
|
+
## [DPrinter](API/10-lang/10-printer/index.llms.md)
|
|
50
|
+
|
|
51
|
+
Fonctions et constantes pour assembler du texte, formater des lignes et paragraphes, ajouter une indentation ou des styles ANSI.
|
|
52
|
+
|
|
53
|
+
## [DString](API/10-lang/10-string/index.llms.md)
|
|
54
|
+
|
|
55
|
+
Fonctions de manipulation, recherche, validation et transformation des chaînes de caractères, avec des formes curifiées et des contraintes de typage lorsque l'API peut les établir.
|
|
56
|
+
|
|
57
|
+
## [DTuple](API/10-lang/10-tuple/index.llms.md)
|
|
58
|
+
|
|
59
|
+
Manipulation et typage des tuples : convertir les garanties de cardinalité en positions typées, puis transformer leurs éléments en conservant leur forme.
|
|
60
|
+
|
|
61
|
+
# @duplojs/server
|
|
62
|
+
|
|
63
|
+
Capacités portables de fichiers, environnement, validation de ressources et commandes CLI.
|
|
64
|
+
|
|
65
|
+
## [File](API/20-server/10-file/index.llms.md)
|
|
66
|
+
|
|
67
|
+
Lire et modifier les ressources du système de fichiers, leurs chemins et leurs métadonnées.
|
|
68
|
+
|
|
69
|
+
## [Common](API/20-server/20-common/index.llms.md)
|
|
70
|
+
|
|
71
|
+
Accéder à la configuration, aux arguments et aux capacités du processus.
|
|
72
|
+
|
|
73
|
+
## [DataStructure](API/20-server/30-dataStructure/index.llms.md)
|
|
74
|
+
|
|
75
|
+
Décoder et valider les interfaces de fichiers et dossiers avec les contraintes serveur.
|
|
76
|
+
|
|
77
|
+
## [Command](API/20-server/40-command/index.llms.md)
|
|
78
|
+
|
|
79
|
+
Déclarer et exécuter des commandes CLI et leurs entrées typées.
|
|
80
|
+
|
|
81
|
+
# @duplojs/json-web-token
|
|
82
|
+
|
|
83
|
+
Politiques JWT réutilisables, signature, chiffrement facultatif et primitives cryptographiques.
|
|
84
|
+
|
|
85
|
+
## [TokenHandler](API/40-json-web-token/10-tokenHandler/index.llms.md)
|
|
86
|
+
|
|
87
|
+
Définir une politique et créer, décoder ou vérifier les tokens associés.
|
|
88
|
+
|
|
89
|
+
## [Signer](API/40-json-web-token/20-signer/index.llms.md)
|
|
90
|
+
|
|
91
|
+
Configurer la signature et la vérification cryptographiques.
|
|
92
|
+
|
|
93
|
+
## [Cipher](API/40-json-web-token/30-cipher/index.llms.md)
|
|
94
|
+
|
|
95
|
+
Configurer le chiffrement et le déchiffrement facultatifs des tokens.
|
|
96
|
+
|
|
97
|
+
## [Utilitaires JWT](API/40-json-web-token/40-utils/index.llms.md)
|
|
98
|
+
|
|
99
|
+
Manipuler les encodages et les primitives cryptographiques publiques.
|
|
100
|
+
|
|
101
|
+
# @duplojs/form
|
|
102
|
+
|
|
103
|
+
Construction de formulaires typés à partir de champs composables et de leurs validations.
|
|
104
|
+
|
|
105
|
+
## Form pour Vue
|
|
106
|
+
|
|
107
|
+
Fabriques de formulaires, de champs et de templates pour l'intégration Vue.
|
|
108
|
+
|
|
109
|
+
### [Construction de formulaires](API/50-form/10-vue/10-construction/index.llms.md)
|
|
110
|
+
|
|
111
|
+
Fabriques de formulaires, de champs et de templates.
|
|
112
|
+
|
|
113
|
+
### [Layouts](API/50-form/10-vue/20-layouts/index.llms.md)
|
|
114
|
+
|
|
115
|
+
Composition des champs et ajout de structure, validation, contrôle de flux et slots.
|
|
116
|
+
|
|
117
|
+
### [Design system](API/50-form/10-vue/30-designSystem/index.llms.md)
|
|
118
|
+
|
|
119
|
+
Composants et inputs prêts à l'emploi pour construire les formulaires et les commandes des templates Grid.
|
|
120
|
+
|
|
121
|
+
# @duplojs/playwright
|
|
122
|
+
|
|
123
|
+
Fabriques de site, pages et composants, interactions et assertions pour les parcours E2E.
|
|
124
|
+
|
|
125
|
+
## [Construction](API/60-playwright/10-construction/index.llms.md)
|
|
126
|
+
|
|
127
|
+
Fabriques de sites, pages, composants, interactions et wrappers de parcours.
|
|
128
|
+
|
|
129
|
+
## [Actions](API/60-playwright/20-actions/index.llms.md)
|
|
130
|
+
|
|
131
|
+
Interactions avec les éléments nommés des pages et composants.
|
|
132
|
+
|
|
133
|
+
## [Assertions](API/60-playwright/30-assertions/index.llms.md)
|
|
134
|
+
|
|
135
|
+
Vérifications de l’état des éléments nommés des pages et composants.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title Acquisition des contraintes.
|
|
3
|
+
*
|
|
4
|
+
* Vérification runtime et narrowing vers un type contraint.
|
|
5
|
+
*/
|
|
6
|
+
import * as DNumber from "@duplojs/lang/number";
|
|
7
|
+
|
|
8
|
+
// Une contrainte existe uniquement dans le typage : elle ne modifie ni ne valide la valeur.
|
|
9
|
+
// L’intersection compose ici deux garanties établies par les predicates.
|
|
10
|
+
type Age = number & DNumber.Integer & DNumber.Positive;
|
|
11
|
+
|
|
12
|
+
// @ts-expect-error Le littéral seul ne porte pas les contraintes attendues.
|
|
13
|
+
const age: Age = 12;
|
|
14
|
+
|
|
15
|
+
// Chaque vérification réussie enrichit le type sans changer la valeur runtime.
|
|
16
|
+
const maybeAge = 12;
|
|
17
|
+
if (
|
|
18
|
+
DNumber.isInteger(maybeAge)
|
|
19
|
+
&& DNumber.isPositive(maybeAge)
|
|
20
|
+
) {
|
|
21
|
+
const age: Age = maybeAge;
|
|
22
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title Composition des contraintes fournies.
|
|
3
|
+
*
|
|
4
|
+
* Réutilisation et composition des contraintes disponibles dans les domaines.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DArray from "@duplojs/lang/array";
|
|
7
|
+
import type * as DNumber from "@duplojs/lang/number";
|
|
8
|
+
import type * as DString from "@duplojs/lang/string";
|
|
9
|
+
|
|
10
|
+
// Avant de créer une contrainte, vérifier celles du domaine concerné.
|
|
11
|
+
// Une intersection cumule les garanties ; déclarer ce type ne valide aucune donnée.
|
|
12
|
+
// Nom sans espaces aux extrémités, contenant entre 5 et 35 caractères.
|
|
13
|
+
type Name = (
|
|
14
|
+
& string
|
|
15
|
+
& DString.MaxCharacters<35>
|
|
16
|
+
& DString.MinCharacters<5>
|
|
17
|
+
& DString.Trimmed
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
// Entier strictement positif, supérieur ou égal à 18 et strictement inférieur à 100.
|
|
21
|
+
type Age = (
|
|
22
|
+
& number
|
|
23
|
+
& DNumber.Integer
|
|
24
|
+
& DNumber.StrictPositive
|
|
25
|
+
& DNumber.GreaterThanOrEqual<18>
|
|
26
|
+
& DNumber.LessThan<100>
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
// Tableau de 1 à 15 éléments, dont chaque élément respecte aussi son contrat.
|
|
30
|
+
type Friends = (
|
|
31
|
+
& {
|
|
32
|
+
name: Name;
|
|
33
|
+
age: Age;
|
|
34
|
+
}[]
|
|
35
|
+
& DArray.MinElements<1>
|
|
36
|
+
& DArray.MaxElements<15>
|
|
37
|
+
);
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title Manipulation des valeurs contraintes.
|
|
3
|
+
*
|
|
4
|
+
* Exploitation des contraintes par les fonctions DuploJS pour simplifier la manipulation des valeurs.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DTuple from "@duplojs/lang/tuple";
|
|
8
|
+
import * as DString from "@duplojs/lang/string";
|
|
9
|
+
import * as DArray from "@duplojs/lang/array";
|
|
10
|
+
|
|
11
|
+
// Les primitives exploitent les garanties d’entrée pour préciser leur sortie.
|
|
12
|
+
// Une transformation conserve, adapte ou supprime les contraintes selon ce qui reste vrai.
|
|
13
|
+
declare const userEmail: string & DString.Email;
|
|
14
|
+
|
|
15
|
+
// Un email dans son format contenant obligatoirement un "@"
|
|
16
|
+
// donne forcément un tableau avec minimum 2 éléments.
|
|
17
|
+
const splitEmail = DString.split(userEmail, "@");
|
|
18
|
+
type _CheckSplitEmail = DCommon.ExpectType<typeof splitEmail, readonly string[] & DArray.MinElements<2>, "strict">;
|
|
19
|
+
|
|
20
|
+
// Le passage du tableau en tuple est fait en interprétant la contrainte
|
|
21
|
+
// DArray.MinElements<2>, ce qui garantit au moins deux éléments, sans imposer une longueur exacte.
|
|
22
|
+
const [first, second, ...maybeRest] = DTuple.from(splitEmail);
|
|
23
|
+
type _CheckFirst = DCommon.ExpectType<typeof first, string, "strict">;
|
|
24
|
+
type _CheckSecond = DCommon.ExpectType<typeof second, string, "strict">;
|
|
25
|
+
type _CheckMaybeRest = DCommon.ExpectType<typeof maybeRest, string[], "strict">;
|
|
26
|
+
|
|
27
|
+
// Les accès garantis par la cardinalité évitent le type string | undefined.
|
|
28
|
+
const firstElement = DArray.first(splitEmail);
|
|
29
|
+
type _CheckFirstElement = DCommon.ExpectType<typeof firstElement, string, "strict">;
|
|
30
|
+
|
|
31
|
+
const lastElement = DArray.last(splitEmail);
|
|
32
|
+
type _CheckLastElement = DCommon.ExpectType<typeof lastElement, string, "strict">;
|
|
33
|
+
|
|
34
|
+
const secondElement = DArray.at(splitEmail, 1);
|
|
35
|
+
type _CheckSecondElement = DCommon.ExpectType<typeof secondElement, string, "strict">;
|
|
36
|
+
|
|
37
|
+
const otherElement = DArray.at(splitEmail, 10);
|
|
38
|
+
type _CheckOtherElement = DCommon.ExpectType<typeof otherElement, string | undefined, "strict">;
|
|
39
|
+
|
|
40
|
+
// Le résultat porte une garantie de cardinalité ; les fragments ne sont plus typés Email.
|
|
41
|
+
// Privilégier les transformations immuables : une mutation pourrait invalider une garantie.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title Compatibilité statique des contraintes.
|
|
3
|
+
*
|
|
4
|
+
* Cast par implication, valeurs littérales et inférence en contexte générique.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import type * as DNumber from "@duplojs/lang/number";
|
|
8
|
+
import type * as DString from "@duplojs/lang/string";
|
|
9
|
+
|
|
10
|
+
// cast restitue la valeur sans validation runtime : TypeScript doit prouver la compatibilité.
|
|
11
|
+
// Il convertit une garantie existante, ou exploite une valeur connue statiquement.
|
|
12
|
+
// Une donnée runtime sans preuve doit d’abord être vérifiée par un predicate.
|
|
13
|
+
declare function myFunction(name: string & DString.MinCharacters<10>): void;
|
|
14
|
+
|
|
15
|
+
declare const validName: string & DString.MinCharacters<15>;
|
|
16
|
+
// Au moins 15 caractères implique au moins 10 caractères.
|
|
17
|
+
myFunction(DCommon.cast(validName));
|
|
18
|
+
|
|
19
|
+
declare const invalidName: string & DString.MinCharacters<5>;
|
|
20
|
+
// Erreur de type car la contrainte `DString.MinCharacters<5>`
|
|
21
|
+
// n'induit pas `string & DString.MinCharacters<10>`
|
|
22
|
+
// @ts-expect-error constraint error
|
|
23
|
+
myFunction(DCommon.cast(invalidName));
|
|
24
|
+
|
|
25
|
+
// De même, une borne strictement inférieure à 10 implique une borne inférieure à 20.
|
|
26
|
+
declare const belowTen: number & DNumber.LessThan<10>;
|
|
27
|
+
const belowTwenty: number & DNumber.LessThan<20> = DCommon.cast(belowTen);
|
|
28
|
+
|
|
29
|
+
// Les valeurs littérales permettent aussi de calculer la compatibilité sans validation.
|
|
30
|
+
const declaredName: string & DString.MinCharacters<10> = DCommon.cast("thisIsASuperName");
|
|
31
|
+
const declaredAge: number & DNumber.GreaterThanOrEqual<18> = DCommon.cast(20);
|
|
32
|
+
|
|
33
|
+
declare function myFunctionWithGeneric<
|
|
34
|
+
GenericName extends string & DString.MinCharacters<10>,
|
|
35
|
+
>(name: GenericName): void;
|
|
36
|
+
|
|
37
|
+
// Ici, le paramètre générique ne fournit pas à cast un type de retour assez précis.
|
|
38
|
+
// satisfies explicite la cible pour permettre le calcul de compatibilité.
|
|
39
|
+
myFunctionWithGeneric(
|
|
40
|
+
DCommon.cast("thisIsASuperName") satisfies string & DString.MinCharacters<10>,
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
// @ts-expect-error cast ne peut pas inférer ici le type de retour attendu.
|
|
44
|
+
myFunctionWithGeneric(DCommon.cast("thisIsASuperName"));
|
|
45
|
+
|
|
46
|
+
declare function createUser<
|
|
47
|
+
GenericUser extends {
|
|
48
|
+
name: string & DString.MinCharacters<10>;
|
|
49
|
+
age: number & DNumber.GreaterThanOrEqual<18>;
|
|
50
|
+
},
|
|
51
|
+
>(name: GenericUser): GenericUser;
|
|
52
|
+
|
|
53
|
+
// infer calcule les contraintes attendues tout en conservant la valeur littérale.
|
|
54
|
+
// Il est adapté aux constantes connues statiquement et ne valide rien au runtime.
|
|
55
|
+
const inferredUser = createUser({
|
|
56
|
+
name: DCommon.infer("thisIsASuperName"),
|
|
57
|
+
age: DCommon.infer(18),
|
|
58
|
+
});
|
|
59
|
+
type _CheckInferredUser = DCommon.ExpectType<
|
|
60
|
+
typeof inferredUser,
|
|
61
|
+
{
|
|
62
|
+
name: "thisIsASuperName" & DString.MinCharacters<10>;
|
|
63
|
+
age: 18 & DNumber.GreaterThanOrEqual<18>;
|
|
64
|
+
},
|
|
65
|
+
"strict"
|
|
66
|
+
>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title Contraintes personnalisées.
|
|
3
|
+
*
|
|
4
|
+
* Déclaration, predicate de validation et extension des règles de cast.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DNumber from "@duplojs/lang/number";
|
|
8
|
+
|
|
9
|
+
// Étendre Constraint avec un identifiant propre à la propriété modélisée.
|
|
10
|
+
// Cette interface n’ajoute aucun marqueur à la valeur runtime.
|
|
11
|
+
interface Adult extends DCommon.Constraint<"example-adult"> {}
|
|
12
|
+
|
|
13
|
+
// La signature du predicate doit correspondre à une vérification réelle.
|
|
14
|
+
function isAdult(input: number): input is number & Adult {
|
|
15
|
+
return DNumber.greaterThanOrEqual(input, 18);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
declare const candidate: number;
|
|
19
|
+
if (isAdult(candidate)) {
|
|
20
|
+
const adult: number & Adult = candidate;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// Les règles de cast peuvent être étendues par augmentation du module common.
|
|
24
|
+
// Cette règle reconnaît la preuve GreaterThanOrEqual<18> comme suffisante pour Adult.
|
|
25
|
+
// Elle ne couvre volontairement pas toutes les autres bornes compatibles.
|
|
26
|
+
declare module "@duplojs/lang/common" {
|
|
27
|
+
interface ComputeCastConstraintNumberRule<
|
|
28
|
+
GenericValue extends number,
|
|
29
|
+
GenericExpectedConstraint extends DCommon.BaseConstraint,
|
|
30
|
+
> {
|
|
31
|
+
exampleAdult: GenericExpectedConstraint extends Adult
|
|
32
|
+
? GenericValue extends DNumber.GreaterThanOrEqual<18>
|
|
33
|
+
? unknown
|
|
34
|
+
: DCommon.CastError<"La preuve de majorité est absente.", GenericValue, GenericExpectedConstraint>
|
|
35
|
+
: never;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// unknown accepte la compatibilité, CastError la refuse, never ignore les autres cibles.
|
|
40
|
+
// Consulter les interfaces de règles existantes pour étendre les autres domaines.
|
|
41
|
+
declare const verifiedAge: number & DNumber.GreaterThanOrEqual<18>;
|
|
42
|
+
const adultFromProof: number & Adult = DCommon.cast(verifiedAge);
|
|
43
|
+
|
|
44
|
+
// @ts-expect-error Un nombre sans preuve ne peut pas être converti en Adult.
|
|
45
|
+
const adultWithoutProof: number & Adult = DCommon.cast(candidate);
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title Currification et composition avec pipe.
|
|
3
|
+
*
|
|
4
|
+
* Configurer les opérations avant de recevoir la donnée et enchaîner ses transformations.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DArray from "@duplojs/lang/array";
|
|
8
|
+
import * as DString from "@duplojs/lang/string";
|
|
9
|
+
|
|
10
|
+
// La forme curifiée reçoit les paramètres, puis la donnée transmise par pipe.
|
|
11
|
+
// Si la fonction retournée ne déclare pas ses propres génériques, ses types sont
|
|
12
|
+
// fixés dès l'appel de configuration, même si la surcharge extérieure est générique.
|
|
13
|
+
// Écrire alors l'appel curifié directement comme étape de pipe ou asyncPipe pour
|
|
14
|
+
// fournir le contexte d'inférence attendu. Passer à un pipe une variable contenant
|
|
15
|
+
// une fonction déjà préparée ne déplace pas sa configuration dans ce contexte.
|
|
16
|
+
// Ne pas forcer cette préparation avec des génériques explicites, annotations ou casts.
|
|
17
|
+
// Formater chaque pipe sur plusieurs lignes, un argument par ligne et la fermeture
|
|
18
|
+
// sur sa propre ligne, même avec seulement une donnée et une étape.
|
|
19
|
+
// Privilégier pipe dès qu’une donnée subit plusieurs transformations,
|
|
20
|
+
// ou si le traitement est susceptible d’en accueillir d’autres.
|
|
21
|
+
// Utiliser en priorité les fonctions fournies par l’écosystème.
|
|
22
|
+
const normalizedTags = DCommon.pipe(
|
|
23
|
+
" TypeScript, DuploJS, Functional " as const,
|
|
24
|
+
// Configure le séparateur ; pipe fournit ensuite la chaîne.
|
|
25
|
+
DString.split(","),
|
|
26
|
+
// Configure la transformation ; pipe fournit le tableau.
|
|
27
|
+
DArray.map(DString.trim),
|
|
28
|
+
DArray.filter(DString.isNotEmpty),
|
|
29
|
+
DArray.map(DString.toLowerCase),
|
|
30
|
+
);
|
|
31
|
+
type _CheckNormalizedTags = DCommon.ExpectType<
|
|
32
|
+
typeof normalizedTags,
|
|
33
|
+
readonly (Lowercase<string> & DString.MinCharacters<1>)[] & DArray.MaxElements<3>,
|
|
34
|
+
"strict"
|
|
35
|
+
>;
|
|
36
|
+
// Résultat : ["typescript", "duplojs", "functional"].
|
|
37
|
+
// Chaque étape reçoit la sortie précédente ; les types suivent ces transformations.
|
|
38
|
+
// On peut ajouter, retirer ou réordonner les étapes sans restructurer le traitement.
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title Réutilisation des fonctions de l’écosystème dans les pipes.
|
|
3
|
+
*
|
|
4
|
+
* Composer les opérations fournies, sous forme curifiée ou directement compatible avec pipe.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DArray from "@duplojs/lang/array";
|
|
8
|
+
import * as DString from "@duplojs/lang/string";
|
|
9
|
+
import * as DObject from "@duplojs/lang/object";
|
|
10
|
+
import * as DNumber from "@duplojs/lang/number";
|
|
11
|
+
import * as DEither from "@duplojs/lang/either";
|
|
12
|
+
import * as DTuple from "@duplojs/lang/tuple";
|
|
13
|
+
import * as DChrono from "@duplojs/lang/chrono";
|
|
14
|
+
import * as DGenerator from "@duplojs/lang/generator";
|
|
15
|
+
import * as DPattern from "@duplojs/lang/pattern";
|
|
16
|
+
import type * as DPath from "@duplojs/lang/path";
|
|
17
|
+
import * as DSFile from "@duplojs/server/file";
|
|
18
|
+
|
|
19
|
+
// Avant d’écrire une callback ou de recourir à une API native, rechercher une opération
|
|
20
|
+
// fournie par l’écosystème : sa forme curifiée ou son unique argument peut convenir au pipe.
|
|
21
|
+
// Cette démarche s’applique à tous les packages ; les domaines ci-dessous sont des exemples.
|
|
22
|
+
|
|
23
|
+
// Les fonctions de `string` et `array` sont faites pour être composées.
|
|
24
|
+
const normalizedNames = DCommon.pipe(
|
|
25
|
+
[" John ", "", " JANE ", " Alice "],
|
|
26
|
+
DArray.map(DString.trim),
|
|
27
|
+
DArray.filter(DString.isNotEmpty),
|
|
28
|
+
DArray.map(DString.toLowerCase),
|
|
29
|
+
DArray.sort(DString.sortCompare),
|
|
30
|
+
);
|
|
31
|
+
type _CheckNormalizedNames = DCommon.ExpectType<
|
|
32
|
+
typeof normalizedNames,
|
|
33
|
+
readonly (Lowercase<string> & DString.MinCharacters<1>)[] & DArray.MaxElements<4>,
|
|
34
|
+
"strict"
|
|
35
|
+
>;
|
|
36
|
+
|
|
37
|
+
// Les prédicats de `number` peuvent directement être utilisés
|
|
38
|
+
// dans les fonctions de manipulation de tableaux.
|
|
39
|
+
const adultAges = DCommon.pipe(
|
|
40
|
+
[12, 18, 42, 8, 21],
|
|
41
|
+
DArray.filter(DNumber.greaterThanOrEqual(18)),
|
|
42
|
+
DNumber.sum,
|
|
43
|
+
);
|
|
44
|
+
type _CheckAdultAges = DCommon.ExpectType<typeof adultAges, number, "strict">;
|
|
45
|
+
|
|
46
|
+
// Les fonctions de `object` sont également prévues pour le pipe.
|
|
47
|
+
const publicUser = DCommon.pipe(
|
|
48
|
+
{
|
|
49
|
+
name: " John ",
|
|
50
|
+
password: "secret",
|
|
51
|
+
age: 24,
|
|
52
|
+
},
|
|
53
|
+
DObject.transformProperty("name", DString.trim),
|
|
54
|
+
DObject.omit(["password"]),
|
|
55
|
+
);
|
|
56
|
+
type _CheckPublicUser = DCommon.ExpectType<
|
|
57
|
+
typeof publicUser,
|
|
58
|
+
{
|
|
59
|
+
name: string & DString.Trimmed & DString.MaxCharacters<6>;
|
|
60
|
+
readonly age: 24;
|
|
61
|
+
},
|
|
62
|
+
"strict"
|
|
63
|
+
>;
|
|
64
|
+
|
|
65
|
+
// `innerPipe` permet de composer plusieurs fonctions intégrées
|
|
66
|
+
// directement à l'endroit où une callback est attendue.
|
|
67
|
+
const users = DCommon.pipe(
|
|
68
|
+
[
|
|
69
|
+
{
|
|
70
|
+
name: " John ",
|
|
71
|
+
age: 24,
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: " JANE ",
|
|
75
|
+
age: 32,
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
DArray.map(
|
|
79
|
+
DCommon.innerPipe(
|
|
80
|
+
DObject.transformProperty(
|
|
81
|
+
"name",
|
|
82
|
+
DCommon.innerPipe(
|
|
83
|
+
DString.trim,
|
|
84
|
+
DString.toLowerCase,
|
|
85
|
+
),
|
|
86
|
+
),
|
|
87
|
+
DObject.pick(["name"]),
|
|
88
|
+
),
|
|
89
|
+
),
|
|
90
|
+
);
|
|
91
|
+
type _CheckUsers = DCommon.ExpectType<
|
|
92
|
+
typeof users,
|
|
93
|
+
readonly { name: Lowercase<string> }[] & DArray.LengthEqual<2>,
|
|
94
|
+
"strict"
|
|
95
|
+
>;
|
|
96
|
+
|
|
97
|
+
// Les fonctions `Either` sont elles aussi composables avec les pipes.
|
|
98
|
+
declare const maybeName:
|
|
99
|
+
| DEither.Right<"user-found", string>
|
|
100
|
+
| DEither.Left<"user-not-found">;
|
|
101
|
+
|
|
102
|
+
const name = DCommon.pipe(
|
|
103
|
+
maybeName,
|
|
104
|
+
DEither.unwrapOr("anonymous"),
|
|
105
|
+
DString.trim,
|
|
106
|
+
DString.toLowerCase,
|
|
107
|
+
);
|
|
108
|
+
type _CheckName = DCommon.ExpectType<typeof name, Lowercase<string>, "strict">;
|
|
109
|
+
|
|
110
|
+
// `Either` possède également ses propres pipes lorsque le traitement
|
|
111
|
+
// doit continuer uniquement sur une valeur `Right`.
|
|
112
|
+
const normalizedEitherName = DEither.rightPipe(
|
|
113
|
+
maybeName,
|
|
114
|
+
DString.trim,
|
|
115
|
+
DString.toLowerCase,
|
|
116
|
+
);
|
|
117
|
+
type _CheckNormalizedEitherName = DCommon.ExpectType<typeof normalizedEitherName, DEither.Left<"user-not-found", unknown> | DEither.Success<Lowercase<string>>, "strict">;
|
|
118
|
+
|
|
119
|
+
// Les tuples disposent eux aussi de fonctions curifiées.
|
|
120
|
+
const normalizedTuple = DCommon.pipe(
|
|
121
|
+
[" John ", " Jane "] as const,
|
|
122
|
+
DTuple.map(DString.trim),
|
|
123
|
+
);
|
|
124
|
+
type _CheckNormalizedTuple = DCommon.ExpectType<typeof normalizedTuple, readonly [string & DString.Trimmed & DString.MaxCharacters<6>, string & DString.Trimmed & DString.MaxCharacters<6>], "strict">;
|
|
125
|
+
|
|
126
|
+
// Les generators permettent de construire des transformations lazy
|
|
127
|
+
// avec exactement le même modèle de composition.
|
|
128
|
+
const generatedNames = DCommon.pipe(
|
|
129
|
+
[" John ", "", " JANE ", " Alice "],
|
|
130
|
+
DGenerator.map(DString.trim),
|
|
131
|
+
DGenerator.filter(DString.isNotEmpty),
|
|
132
|
+
DGenerator.map(DString.toLowerCase),
|
|
133
|
+
DArray.from,
|
|
134
|
+
);
|
|
135
|
+
type _CheckGeneratedNames = DCommon.ExpectType<typeof generatedNames, readonly (Lowercase<string> & DString.MinCharacters<1>)[], "strict">;
|
|
136
|
+
|
|
137
|
+
// Les fonctions de date peuvent être utilisées directement dans les pipes.
|
|
138
|
+
declare const creationDate: DChrono.TheDate;
|
|
139
|
+
|
|
140
|
+
const serializedCreationDate = DCommon.pipe(
|
|
141
|
+
creationDate,
|
|
142
|
+
DChrono.formatDate(
|
|
143
|
+
"YYYY-MM-DD HH:mm:ss",
|
|
144
|
+
"Europe/Paris",
|
|
145
|
+
),
|
|
146
|
+
);
|
|
147
|
+
type _CheckSerializedCreationDate = DCommon.ExpectType<typeof serializedCreationDate, string, "strict">;
|
|
148
|
+
|
|
149
|
+
// Le pattern matching fournit également des fonctions curifiées.
|
|
150
|
+
declare const status: "draft" | "published" | "archived";
|
|
151
|
+
|
|
152
|
+
const statusLabel = DCommon.pipe(
|
|
153
|
+
status,
|
|
154
|
+
DPattern.matchWithStringOtherwise(
|
|
155
|
+
{
|
|
156
|
+
draft: () => "Draft" as const,
|
|
157
|
+
published: () => "Published" as const,
|
|
158
|
+
},
|
|
159
|
+
() => "Archived" as const,
|
|
160
|
+
),
|
|
161
|
+
);
|
|
162
|
+
type _CheckStatusLabel = DCommon.ExpectType<typeof statusLabel, "Draft" | "Published" | "Archived", "strict">;
|
|
163
|
+
|
|
164
|
+
// Les fonctions n'ont pas besoin d'être curifiées lorsqu'elles reçoivent
|
|
165
|
+
// déjà la donnée comme unique argument : elles peuvent être utilisées
|
|
166
|
+
// directement comme étape du pipe.
|
|
167
|
+
declare const filePath: string & DPath.Path;
|
|
168
|
+
|
|
169
|
+
const fileContent = await DCommon.asyncPipe(
|
|
170
|
+
filePath,
|
|
171
|
+
DSFile.readTextFile,
|
|
172
|
+
DEither.unwrapOr(""),
|
|
173
|
+
DString.trim,
|
|
174
|
+
);
|
|
175
|
+
type _CheckFileContent = DCommon.ExpectType<typeof fileContent, string & DString.Trimmed, "strict">;
|
|
176
|
+
|
|
177
|
+
// Les fonctions curifiées existent également dans `@duplojs/server`.
|
|
178
|
+
const writeResult = await DCommon.asyncPipe(
|
|
179
|
+
filePath,
|
|
180
|
+
DSFile.writeTextFile("Hello world"),
|
|
181
|
+
);
|
|
182
|
+
type _CheckWriteResult = DCommon.ExpectType<typeof writeResult, DSFile.WriteTextFileResult, "strict">;
|
|
183
|
+
|
|
184
|
+
// Cela permet de composer des traitements provenant de plusieurs packages.
|
|
185
|
+
const jsonContent = await DCommon.asyncPipe(
|
|
186
|
+
filePath,
|
|
187
|
+
DSFile.readJsonFile,
|
|
188
|
+
DEither.unwrapOr({}),
|
|
189
|
+
);
|
|
190
|
+
type _CheckJsonContent = DCommon.ExpectType<typeof jsonContent, DCommon.Json | {}, "strict">;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title Composition dans une callback.
|
|
3
|
+
*
|
|
4
|
+
* Enchaîner des transformations lorsque la fonction appelante attend une fonction.
|
|
5
|
+
*/
|
|
6
|
+
import * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DArray from "@duplojs/lang/array";
|
|
8
|
+
import * as DString from "@duplojs/lang/string";
|
|
9
|
+
import type * as DNumber from "@duplojs/lang/number";
|
|
10
|
+
|
|
11
|
+
// `innerPipe` permet d'enchaîner plusieurs transformations lorsqu'une
|
|
12
|
+
// fonction de transformation est elle-même attendue.
|
|
13
|
+
//
|
|
14
|
+
const normalizedTagsWithInnerPipe = DCommon.pipe(
|
|
15
|
+
" TypeScript, DuploJS, Functional " as const,
|
|
16
|
+
DString.split(","),
|
|
17
|
+
DArray.map(
|
|
18
|
+
DCommon.innerPipe(
|
|
19
|
+
DString.trim,
|
|
20
|
+
DString.toLowerCase,
|
|
21
|
+
),
|
|
22
|
+
),
|
|
23
|
+
DArray.filter(DString.isNotEmpty),
|
|
24
|
+
);
|
|
25
|
+
type _CheckNormalizedTagsWithInnerPipe = DCommon.ExpectType<
|
|
26
|
+
typeof normalizedTagsWithInnerPipe,
|
|
27
|
+
readonly (Lowercase<string> & DString.NotEmpty)[] & DArray.MaxElements<3>,
|
|
28
|
+
"strict"
|
|
29
|
+
>;
|
|
30
|
+
|
|
31
|
+
// `innerPipe` évite de créer une callback intermédiaire uniquement
|
|
32
|
+
// pour enchaîner plusieurs transformations.
|
|
33
|
+
//
|
|
34
|
+
const tagLengths = DCommon.pipe(
|
|
35
|
+
" TypeScript, DuploJS, Functional " as const,
|
|
36
|
+
DString.split(","),
|
|
37
|
+
DArray.map(
|
|
38
|
+
DCommon.innerPipe(
|
|
39
|
+
DString.trim,
|
|
40
|
+
DString.length,
|
|
41
|
+
),
|
|
42
|
+
),
|
|
43
|
+
);
|
|
44
|
+
type _CheckTagLengths = DCommon.ExpectType<
|
|
45
|
+
typeof tagLengths,
|
|
46
|
+
readonly (number & DNumber.Positive)[] & DArray.LengthEqual<3> & DArray.MinElements<3> & DArray.MaxElements<3>,
|
|
47
|
+
"strict"
|
|
48
|
+
>;
|