@duplojs/agents-kit 0.0.0-stage → 0.1.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -2
- package/dist/bin/index.d.ts +2 -0
- package/dist/bin/index.mjs +7 -0
- package/dist/bin/install/index.d.ts +2 -0
- package/dist/bin/install/index.mjs +25 -0
- package/dist/bin/install/skill.d.ts +28 -0
- package/dist/bin/install/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 +19 -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 +15 -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 +48 -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 +23 -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 +26 -0
- package/docs/API/10-lang/10-chrono/10-isSerializedTheTime.ts +26 -0
- package/docs/API/10-lang/10-chrono/10-isTime.ts +23 -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 +23 -0
- package/docs/API/10-lang/10-chrono/10-maxTime.ts +23 -0
- package/docs/API/10-lang/10-chrono/10-minDate.ts +23 -0
- package/docs/API/10-lang/10-chrono/10-minTime.ts +23 -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 +32 -0
- package/docs/API/10-lang/10-chrono/10-sortTimes.ts +31 -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 +45 -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 +16 -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 +31 -0
- package/docs/API/10-lang/10-common/10-escapeRegExp.ts +11 -0
- package/docs/API/10-lang/10-common/10-falsy.ts +12 -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 +23 -0
- package/docs/API/10-lang/10-common/10-isType.ts +29 -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 +29 -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-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 +12 -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 +26 -0
- package/docs/API/10-lang/10-common/index.llms.md +228 -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 +23 -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-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 +24 -0
- package/docs/API/10-lang/10-either/10-isLeft.ts +16 -0
- package/docs/API/10-lang/10-either/10-isRight.ts +16 -0
- package/docs/API/10-lang/10-either/10-isSelected.ts +29 -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 +26 -0
- package/docs/API/10-lang/10-either/10-matchInformationOtherwise.ts +27 -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 +69 -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 +35 -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 +184 -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 +46 -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/index.md +3 -0
- package/docs/API/index.md +3 -0
- package/docs/API.llms.md +31 -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 +38 -0
- package/docs/concepts/01-fundamental/01-constraint/30-cast.ts +62 -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 +33 -0
- package/docs/concepts/01-fundamental/02-currying/10-built-in-function.ts +178 -0
- package/docs/concepts/01-fundamental/02-currying/20-inner-pipe.ts +39 -0
- package/docs/concepts/01-fundamental/02-currying/30-async-pipe.ts +42 -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 +79 -0
- package/docs/concepts/01-fundamental/03-either/20-exhaustive-handling.ts +73 -0
- package/docs/concepts/01-fundamental/03-either/30-composition.ts +72 -0
- package/docs/concepts/01-fundamental/03-either/40-result-adaptation.ts +40 -0
- package/docs/concepts/01-fundamental/03-either/50-external-results.ts +59 -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 +193 -0
- package/docs/concepts/01-fundamental/04-data-structure/20-constraint.ts +78 -0
- package/docs/concepts/01-fundamental/04-data-structure/30-validation.ts +100 -0
- package/docs/concepts/01-fundamental/04-data-structure/40-codecs.ts +151 -0
- package/docs/concepts/01-fundamental/04-data-structure/50-recursive.ts +48 -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 +59 -0
- package/docs/concepts/01-fundamental/05-chrono/20-manipulation.ts +94 -0
- package/docs/concepts/01-fundamental/05-chrono/30-serialized.ts +73 -0
- package/docs/concepts/01-fundamental/05-chrono/40-timezone.ts +81 -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 +204 -0
- package/docs/concepts/01-fundamental/06-modeling/30-tagged-object.ts +181 -0
- package/docs/concepts/01-fundamental/06-modeling/40-entity-lifecycle.ts +275 -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 +104 -0
- package/docs/concepts/01-fundamental/07-discrimination/20-fact.ts +142 -0
- package/docs/concepts/01-fundamental/07-discrimination/30-tagged-object.ts +105 -0
- package/docs/concepts/01-fundamental/07-discrimination/40-error.ts +57 -0
- package/docs/concepts/01-fundamental/07-discrimination/50-literal.ts +87 -0
- package/docs/concepts/01-fundamental/07-discrimination/60-shape.ts +152 -0
- package/docs/concepts/01-fundamental/07-discrimination/70-predicate.ts +89 -0
- package/docs/concepts/01-fundamental/07-discrimination/index.md +3 -0
- package/docs/concepts/01-fundamental/index.md +1 -0
- package/docs/concepts/02-server/10-file/10-manipulation.ts +40 -0
- package/docs/concepts/02-server/10-file/20-path.ts +56 -0
- package/docs/concepts/02-server/10-file/index.md +3 -0
- package/docs/concepts/02-server/20-http/10-init.ts +31 -0
- package/docs/concepts/02-server/20-http/20-route.ts +174 -0
- package/docs/concepts/02-server/20-http/30-routine.ts +195 -0
- package/docs/concepts/02-server/20-http/40-jwt.ts +137 -0
- package/docs/concepts/02-server/20-http/50-codegen.ts +29 -0
- package/docs/concepts/02-server/20-http/index.md +3 -0
- package/docs/concepts/02-server/30-environment/10-platform.ts +38 -0
- package/docs/concepts/02-server/30-environment/20-variable.ts +41 -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 +64 -0
- package/docs/concepts/03-client/10-http/20-request.ts +244 -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 +95 -0
- package/docs/concepts/03-client/20-form/20-input.ts +96 -0
- package/docs/concepts/03-client/20-form/30-layout.ts +160 -0
- package/docs/concepts/03-client/20-form/40-template.ts +89 -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 +41 -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 +58 -0
- package/docs/concepts/05-type-driven-design/02-domains/20-aggregates.md +49 -0
- package/docs/concepts/05-type-driven-design/02-domains/30-repositories.md +41 -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 +69 -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 +56 -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 +3 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/clientGiveBackBook.ts +27 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/applications/useCases/clientRentBook.ts +30 -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 +2 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/clientGiveBackBook.ts +15 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/clientRentBook.ts +16 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/createBook.ts +21 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/aggregates/index.ts +3 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/create.ts +34 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/facts/index.ts +3 -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/returnBook.ts +30 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/book/index.ts +87 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/client/facts/giveBackBook.ts +33 -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 +82 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/entities/index.ts +2 -0
- package/docs/concepts/05-type-driven-design/fixtures/business/domains/index.ts +3 -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 +3 -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 +37 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/http/routes/clientRentBook.ts +50 -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 +3 -0
- package/docs/concepts/05-type-driven-design/fixtures/infrastructure/useCases/index.ts +12 -0
- package/docs/concepts/05-type-driven-design/index.md +3 -0
- package/docs/concepts.llms.md +475 -0
- package/instructions/coding-conventions.md +8 -0
- package/package.json +96 -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 +9 -0
- package/skills/http-client/references/examples/client-expectations.ts +84 -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 +66 -0
- package/skills/http-server/references/code-generation.md +31 -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/generate-sdk.ts +36 -0
- package/skills/http-server/references/examples/initialize.ts +29 -0
- package/skills/http-server/references/examples/minimal-route.ts +18 -0
- package/skills/http-server/references/examples/protected-route.ts +31 -0
- package/skills/http-server/references/examples/rename-user-route.ts +54 -0
- package/skills/http-server/references/examples/user-checker.ts +26 -0
- package/skills/http-server/references/examples/user-route.ts +38 -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 +38 -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,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.maxElements
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte de cardinalité maximale pour un tableau.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DArray from "@duplojs/lang/array";
|
|
7
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.maxElements(3);
|
|
11
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
12
|
+
typeof constraint,
|
|
13
|
+
DDataStructure.MaxElementsConstraint<3>,
|
|
14
|
+
"strict"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
const structure = DDataStructure.array(DDataStructure.number(), [constraint]);
|
|
18
|
+
const result = structure.check([1, 2]);
|
|
19
|
+
|
|
20
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
21
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
22
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
23
|
+
readonly number[] & DArray.MaxElements<3>,
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.minCharacters
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte de longueur minimale pour une chaîne.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
import type * as DString from "@duplojs/lang/string";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.minCharacters(3);
|
|
11
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
12
|
+
typeof constraint,
|
|
13
|
+
DDataStructure.MinCharactersConstraint<3>,
|
|
14
|
+
"strict"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
const structure = DDataStructure.string([constraint]);
|
|
18
|
+
const result = structure.check("abc");
|
|
19
|
+
|
|
20
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
21
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
22
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
23
|
+
string & DString.MinCharacters<3>,
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.minElements
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte de cardinalité minimale pour un tableau.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DArray from "@duplojs/lang/array";
|
|
7
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
8
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.minElements(3);
|
|
11
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
12
|
+
typeof constraint,
|
|
13
|
+
DDataStructure.MinElementsConstraint<3>,
|
|
14
|
+
"strict"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
const structure = DDataStructure.array(DDataStructure.number(), [constraint]);
|
|
18
|
+
const result = structure.check([1, 2, 3]);
|
|
19
|
+
|
|
20
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
21
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
22
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
23
|
+
readonly number[] & DArray.MinElements<3>,
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.multipleOf
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte de multiple numérique.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
import type * as DNumber from "@duplojs/lang/number";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.multipleOf(3);
|
|
11
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
12
|
+
typeof constraint,
|
|
13
|
+
DDataStructure.MultipleOfConstraint<3>,
|
|
14
|
+
"strict"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
const structure = DDataStructure.number([constraint]);
|
|
18
|
+
const result = structure.check(6);
|
|
19
|
+
|
|
20
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
21
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
22
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
23
|
+
number & DNumber.MultipleOf<3>,
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.negative
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte de nombre négatif ou nul.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
import type * as DNumber from "@duplojs/lang/number";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.negative();
|
|
11
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
12
|
+
typeof constraint,
|
|
13
|
+
DDataStructure.NegativeConstraint,
|
|
14
|
+
"strict"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
const structure = DDataStructure.number([constraint]);
|
|
18
|
+
const result = structure.check(-1);
|
|
19
|
+
|
|
20
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
21
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
22
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
23
|
+
number & DNumber.Negative,
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.notEmpty
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte qui refuse les chaînes vides.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
import type * as DString from "@duplojs/lang/string";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.notEmpty();
|
|
11
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
12
|
+
typeof constraint,
|
|
13
|
+
DDataStructure.NotEmptyConstraint,
|
|
14
|
+
"strict"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
const structure = DDataStructure.string([constraint]);
|
|
18
|
+
const result = structure.check("DuploJS");
|
|
19
|
+
|
|
20
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
21
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
22
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
23
|
+
string & DString.NotEmpty,
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.notZero
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte qui refuse zéro.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
import type * as DNumber from "@duplojs/lang/number";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.notZero();
|
|
11
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
12
|
+
typeof constraint,
|
|
13
|
+
DDataStructure.NotZeroConstraint,
|
|
14
|
+
"strict"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
const structure = DDataStructure.number([constraint]);
|
|
18
|
+
const result = structure.check(1);
|
|
19
|
+
|
|
20
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
21
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
22
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
23
|
+
number & DNumber.NotZero,
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.null
|
|
3
|
+
*
|
|
4
|
+
* Construire une structure représentant la valeur `null`.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
|
|
9
|
+
const structure = DDataStructure.null();
|
|
10
|
+
const result = structure.check(null);
|
|
11
|
+
|
|
12
|
+
// La structure représente le type indiqué par son contrat.
|
|
13
|
+
type _CheckStructure = DCommon.ExpectType<
|
|
14
|
+
typeof structure,
|
|
15
|
+
DDataStructure.TypeStructure<null, readonly []>,
|
|
16
|
+
"strict"
|
|
17
|
+
>;
|
|
18
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
19
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
20
|
+
null,
|
|
21
|
+
"strict"
|
|
22
|
+
>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.nullable
|
|
3
|
+
*
|
|
4
|
+
* Ajouter `null` aux valeurs acceptées par une structure.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
import type * as DString from "@duplojs/lang/string";
|
|
9
|
+
|
|
10
|
+
const structure = DDataStructure.nullable(
|
|
11
|
+
DDataStructure.string([DDataStructure.email()]),
|
|
12
|
+
);
|
|
13
|
+
const result = structure.check(null);
|
|
14
|
+
|
|
15
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
16
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
17
|
+
string & DString.Email | null,
|
|
18
|
+
"strict"
|
|
19
|
+
>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.number
|
|
3
|
+
*
|
|
4
|
+
* Construire une structure représentant des nombres.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
|
|
9
|
+
const structure = DDataStructure.number();
|
|
10
|
+
const result = structure.check(42);
|
|
11
|
+
|
|
12
|
+
// La structure représente le type indiqué par son contrat.
|
|
13
|
+
type _CheckStructure = DCommon.ExpectType<
|
|
14
|
+
typeof structure,
|
|
15
|
+
DDataStructure.TypeStructure<number, readonly []>,
|
|
16
|
+
"strict"
|
|
17
|
+
>;
|
|
18
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
19
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
20
|
+
number,
|
|
21
|
+
"strict"
|
|
22
|
+
>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.numberInString
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte qui exige qu’une chaîne représente un nombre.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
import type * as DString from "@duplojs/lang/string";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.numberInString();
|
|
11
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
12
|
+
typeof constraint,
|
|
13
|
+
DDataStructure.NumberInStringConstraint,
|
|
14
|
+
"strict"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
const structure = DDataStructure.string([constraint]);
|
|
18
|
+
const result = structure.check("42");
|
|
19
|
+
|
|
20
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
21
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
22
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
23
|
+
string & DString.Number,
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.object
|
|
3
|
+
*
|
|
4
|
+
* Construire une structure objet à partir d’une forme de propriétés.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
|
|
9
|
+
const structure = DDataStructure.object({
|
|
10
|
+
name: DDataStructure.string(),
|
|
11
|
+
age: DDataStructure.number(),
|
|
12
|
+
});
|
|
13
|
+
const result = structure.check({
|
|
14
|
+
name: "Jane",
|
|
15
|
+
age: 30,
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
19
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
20
|
+
{
|
|
21
|
+
readonly name: string;
|
|
22
|
+
readonly age: number;
|
|
23
|
+
},
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.odd
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte de nombre impair.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
import type * as DNumber from "@duplojs/lang/number";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.odd();
|
|
11
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
12
|
+
typeof constraint,
|
|
13
|
+
DDataStructure.OddConstraint,
|
|
14
|
+
"strict"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
const structure = DDataStructure.number([constraint]);
|
|
18
|
+
const result = structure.check(7);
|
|
19
|
+
|
|
20
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
21
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
22
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
23
|
+
number & DNumber.Odd,
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.optional
|
|
3
|
+
*
|
|
4
|
+
* Ajouter `undefined` aux valeurs acceptées par une structure.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
import type * as DString from "@duplojs/lang/string";
|
|
9
|
+
|
|
10
|
+
const structure = DDataStructure.optional(
|
|
11
|
+
DDataStructure.string([DDataStructure.email()]),
|
|
12
|
+
);
|
|
13
|
+
const result = structure.check(undefined);
|
|
14
|
+
|
|
15
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
16
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
17
|
+
string & DString.Email | undefined,
|
|
18
|
+
"strict"
|
|
19
|
+
>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.partial
|
|
3
|
+
*
|
|
4
|
+
* Rendre optionnelles toutes les propriétés d’une structure objet.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
|
|
9
|
+
const source = DDataStructure.object({
|
|
10
|
+
name: DDataStructure.string(),
|
|
11
|
+
age: DDataStructure.number(),
|
|
12
|
+
});
|
|
13
|
+
const structure = DDataStructure.partial(source);
|
|
14
|
+
const result = structure.check({ name: "Jane" });
|
|
15
|
+
|
|
16
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
17
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
18
|
+
{
|
|
19
|
+
readonly name?: string;
|
|
20
|
+
readonly age?: number;
|
|
21
|
+
},
|
|
22
|
+
"strict"
|
|
23
|
+
>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.path
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte qui exige une chaîne représentant un chemin.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
import type * as DPath from "@duplojs/lang/path";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.path();
|
|
11
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
12
|
+
typeof constraint,
|
|
13
|
+
DDataStructure.PathConstraint,
|
|
14
|
+
"strict"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
const structure = DDataStructure.string([constraint]);
|
|
18
|
+
const result = structure.check("src/index.ts");
|
|
19
|
+
|
|
20
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
21
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
22
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
23
|
+
string & DPath.Path,
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.positive
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte de nombre positif ou nul.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
import type * as DNumber from "@duplojs/lang/number";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.positive();
|
|
11
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
12
|
+
typeof constraint,
|
|
13
|
+
DDataStructure.PositiveConstraint,
|
|
14
|
+
"strict"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
const structure = DDataStructure.number([constraint]);
|
|
18
|
+
const result = structure.check(1);
|
|
19
|
+
|
|
20
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
21
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
22
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
23
|
+
number & DNumber.Positive,
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.record
|
|
3
|
+
*
|
|
4
|
+
* Construire une structure d’objet dont les clés et les valeurs sont structurées.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
|
|
9
|
+
const structure = DDataStructure.record(
|
|
10
|
+
DDataStructure.string(),
|
|
11
|
+
DDataStructure.number(),
|
|
12
|
+
);
|
|
13
|
+
const result = structure.check({
|
|
14
|
+
first: 1,
|
|
15
|
+
second: 2,
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
19
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
20
|
+
Partial<{ readonly [Prop in string]: number }>,
|
|
21
|
+
"strict"
|
|
22
|
+
>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.refine
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte personnalisée à partir d’un predicate DuploJS.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
import * as DString from "@duplojs/lang/string";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.refine(
|
|
11
|
+
DString.startsWith("user:"),
|
|
12
|
+
);
|
|
13
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
14
|
+
typeof constraint,
|
|
15
|
+
DDataStructure.RefineConstraint<string, `user:${string}`>,
|
|
16
|
+
"strict"
|
|
17
|
+
>;
|
|
18
|
+
|
|
19
|
+
const structure = DDataStructure.string([constraint]);
|
|
20
|
+
const result = structure.check("user:42");
|
|
21
|
+
|
|
22
|
+
// Le predicate affine la valeur validée vers le format du préfixe.
|
|
23
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
24
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
25
|
+
`user:${string}`,
|
|
26
|
+
"strict"
|
|
27
|
+
>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.regex
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte de correspondance avec une expression régulière.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
|
|
9
|
+
const constraint = DDataStructure.regex(/^user:[0-9]+$/);
|
|
10
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
11
|
+
typeof constraint,
|
|
12
|
+
DDataStructure.RegexConstraint,
|
|
13
|
+
"strict"
|
|
14
|
+
>;
|
|
15
|
+
|
|
16
|
+
const structure = DDataStructure.string([constraint]);
|
|
17
|
+
const result = structure.check("user:42");
|
|
18
|
+
|
|
19
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
20
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
21
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
22
|
+
string,
|
|
23
|
+
"strict"
|
|
24
|
+
>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.required
|
|
3
|
+
*
|
|
4
|
+
* Rendre obligatoires les propriétés d’une structure objet qui peuvent être `undefined`.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
|
|
9
|
+
const source = DDataStructure.object({
|
|
10
|
+
name: DDataStructure.optional(DDataStructure.string()),
|
|
11
|
+
});
|
|
12
|
+
const structure = DDataStructure.required(source);
|
|
13
|
+
const result = structure.check({ name: "Jane" });
|
|
14
|
+
|
|
15
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
16
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
17
|
+
{
|
|
18
|
+
readonly name: string;
|
|
19
|
+
},
|
|
20
|
+
"strict"
|
|
21
|
+
>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.safe
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte d’entier sûr JavaScript.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
import type * as DNumber from "@duplojs/lang/number";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.safe();
|
|
11
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
12
|
+
typeof constraint,
|
|
13
|
+
DDataStructure.SafeConstraint,
|
|
14
|
+
"strict"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
const structure = DDataStructure.number([constraint]);
|
|
18
|
+
const result = structure.check(42);
|
|
19
|
+
|
|
20
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
21
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
22
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
23
|
+
number & DNumber.Safe,
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.segmentPath
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte qui exige un segment de chemin.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
import type * as DPath from "@duplojs/lang/path";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.segmentPath();
|
|
11
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
12
|
+
typeof constraint,
|
|
13
|
+
DDataStructure.SegmentPathConstraint,
|
|
14
|
+
"strict"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
const structure = DDataStructure.string([constraint]);
|
|
18
|
+
const result = structure.check("index.ts");
|
|
19
|
+
|
|
20
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
21
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
22
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
23
|
+
string & DPath.Segment,
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.startsWith
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte de préfixe et l’appliquer à une structure de chaîne.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
|
|
9
|
+
const constraint = DDataStructure.startsWith("user:");
|
|
10
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
11
|
+
typeof constraint,
|
|
12
|
+
DDataStructure.StartsWithConstraint<"user:">,
|
|
13
|
+
"strict"
|
|
14
|
+
>;
|
|
15
|
+
|
|
16
|
+
const structure = DDataStructure.string([constraint]);
|
|
17
|
+
const result = structure.check("user:42");
|
|
18
|
+
|
|
19
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
20
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
21
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
22
|
+
`user:${string}`,
|
|
23
|
+
"strict"
|
|
24
|
+
>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.strictNegative
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte de nombre strictement négatif.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
import type * as DNumber from "@duplojs/lang/number";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.strictNegative();
|
|
11
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
12
|
+
typeof constraint,
|
|
13
|
+
DDataStructure.StrictNegativeConstraint,
|
|
14
|
+
"strict"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
const structure = DDataStructure.number([constraint]);
|
|
18
|
+
const result = structure.check(-1);
|
|
19
|
+
|
|
20
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
21
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
22
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
23
|
+
number & DNumber.StrictNegative,
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title DDataStructure.strictPositive
|
|
3
|
+
*
|
|
4
|
+
* Construire une contrainte de nombre strictement positif.
|
|
5
|
+
*/
|
|
6
|
+
import type * as DCommon from "@duplojs/lang/common";
|
|
7
|
+
import * as DDataStructure from "@duplojs/lang/dataStructure";
|
|
8
|
+
import type * as DNumber from "@duplojs/lang/number";
|
|
9
|
+
|
|
10
|
+
const constraint = DDataStructure.strictPositive();
|
|
11
|
+
type _CheckConstraint = DCommon.ExpectType<
|
|
12
|
+
typeof constraint,
|
|
13
|
+
DDataStructure.StrictPositiveConstraint,
|
|
14
|
+
"strict"
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
const structure = DDataStructure.number([constraint]);
|
|
18
|
+
const result = structure.check(1);
|
|
19
|
+
|
|
20
|
+
// Une validation réussie expose une valeur portant le type du contrat.
|
|
21
|
+
type _CheckStructureValue = DCommon.ExpectType<
|
|
22
|
+
DDataStructure.StructureValue<typeof structure>,
|
|
23
|
+
number & DNumber.StrictPositive,
|
|
24
|
+
"strict"
|
|
25
|
+
>;
|