@duplojs/lang 0.0.1-beta.8 → 0.1.0-beta.1
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/dist/array/concat.d.ts +2 -2
- package/dist/array/flat.d.ts +1 -1
- package/dist/array/flatMap.d.ts +2 -2
- package/dist/array/from.d.ts +1 -1
- package/dist/array/length.d.ts +3 -2
- package/dist/array/push.d.ts +4 -2
- package/dist/chrono/operators/addTime.d.ts +2 -4
- package/dist/common/constraint/cast/index.d.ts +5 -5
- package/dist/common/constraint/cast/string.d.ts +4 -0
- package/dist/common/constraint/infer/index.d.ts +2 -1
- package/dist/common/constraint/infer/string.d.ts +1 -0
- package/dist/common/constraint/types/index.d.ts +1 -0
- package/dist/common/constraint/types/maybe.d.ts +2 -0
- package/dist/common/formData.d.ts +2 -1
- package/dist/common/memo.cjs +3 -2
- package/dist/common/memo.mjs +3 -2
- package/dist/common/memoPromise.cjs +3 -2
- package/dist/common/memoPromise.mjs +3 -2
- package/dist/common/timeout.cjs +2 -2
- package/dist/common/timeout.d.ts +1 -1
- package/dist/common/timeout.mjs +2 -2
- package/dist/common/types/applyPromiseIf.d.ts +1 -0
- package/dist/common/types/index.d.ts +2 -0
- package/dist/common/types/isObject.d.ts +8 -0
- package/dist/common/types/json.d.ts +12 -1
- package/dist/dataStructure/common/codec/base.cjs +2 -2
- package/dist/dataStructure/common/codec/base.mjs +2 -2
- package/dist/dataStructure/common/codec/defaults/string.cjs +1 -1
- package/dist/dataStructure/common/codec/defaults/string.d.ts +1 -1
- package/dist/dataStructure/common/codec/defaults/string.mjs +1 -1
- package/dist/dataStructure/common/{error.cjs → error/base.cjs} +22 -5
- package/dist/dataStructure/common/{error.d.ts → error/base.d.ts} +18 -9
- package/dist/dataStructure/common/{error.mjs → error/base.mjs} +21 -6
- package/dist/dataStructure/common/error/defaultInterpreter.cjs +87 -0
- package/dist/dataStructure/common/error/defaultInterpreter.d.ts +60 -0
- package/dist/dataStructure/common/error/defaultInterpreter.mjs +86 -0
- package/dist/dataStructure/common/error/index.d.ts +3 -0
- package/dist/dataStructure/common/error/interpreter.cjs +44 -0
- package/dist/dataStructure/common/error/interpreter.d.ts +32 -0
- package/dist/dataStructure/common/error/interpreter.mjs +44 -0
- package/dist/dataStructure/common/index.d.ts +0 -1
- package/dist/dataStructure/constraint/defaults/allowedCharacters.d.ts +1 -3
- package/dist/dataStructure/constraint/types/constraints.d.ts +1 -0
- package/dist/dataStructure/fundamentalType/types/fundamentalTypes.d.ts +1 -0
- package/dist/dataStructure/helpers/extend.cjs +1 -1
- package/dist/dataStructure/helpers/extend.d.ts +1 -1
- package/dist/dataStructure/helpers/extend.mjs +1 -1
- package/dist/dataStructure/helpers/index.d.ts +6 -2
- package/dist/dataStructure/helpers/isNullable.cjs +12 -0
- package/dist/dataStructure/helpers/isNullable.d.ts +2 -0
- package/dist/dataStructure/helpers/isNullable.mjs +12 -0
- package/dist/dataStructure/helpers/isOptional.cjs +12 -0
- package/dist/dataStructure/helpers/isOptional.d.ts +2 -0
- package/dist/dataStructure/helpers/isOptional.mjs +12 -0
- package/dist/dataStructure/helpers/partial.cjs +1 -1
- package/dist/dataStructure/helpers/partial.mjs +1 -1
- package/dist/dataStructure/helpers/required.cjs +1 -1
- package/dist/dataStructure/helpers/required.mjs +1 -1
- package/dist/dataStructure/helpers/typeStructureIdentifier.cjs +14 -0
- package/dist/dataStructure/helpers/typeStructureIdentifier.d.ts +6 -0
- package/dist/dataStructure/helpers/typeStructureIdentifier.mjs +14 -0
- package/dist/dataStructure/helpers/unwrapLazy.cjs +9 -0
- package/dist/dataStructure/helpers/unwrapLazy.d.ts +2 -0
- package/dist/dataStructure/helpers/unwrapLazy.mjs +9 -0
- package/dist/dataStructure/index.cjs +56 -35
- package/dist/dataStructure/index.mjs +18 -5
- package/dist/dataStructure/structure/base.cjs +31 -19
- package/dist/dataStructure/structure/base.d.ts +16 -16
- package/dist/dataStructure/structure/base.mjs +25 -13
- package/dist/dataStructure/structure/defaults/array.cjs +10 -0
- package/dist/dataStructure/structure/defaults/array.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/array.mjs +10 -0
- package/dist/dataStructure/structure/defaults/lazy.cjs +1 -0
- package/dist/dataStructure/structure/defaults/lazy.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/lazy.mjs +1 -0
- package/dist/dataStructure/structure/defaults/nonEncodableString.cjs +1 -0
- package/dist/dataStructure/structure/defaults/nonEncodableString.mjs +1 -0
- package/dist/dataStructure/structure/defaults/object.cjs +18 -7
- package/dist/dataStructure/structure/defaults/object.d.ts +3 -2
- package/dist/dataStructure/structure/defaults/object.mjs +18 -7
- package/dist/dataStructure/structure/defaults/record.cjs +20 -7
- package/dist/dataStructure/structure/defaults/record.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/record.mjs +20 -7
- package/dist/dataStructure/structure/defaults/type.cjs +1 -0
- package/dist/dataStructure/structure/defaults/type.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/type.mjs +1 -0
- package/dist/dataStructure/structure/defaults/union.cjs +26 -6
- package/dist/dataStructure/structure/defaults/union.d.ts +1 -1
- package/dist/dataStructure/structure/defaults/union.mjs +21 -1
- package/dist/dataStructure/structure/types/value.d.ts +2 -0
- package/dist/dataStructure/type/types/types.d.ts +1 -0
- package/dist/either/index.cjs +29 -7
- package/dist/either/index.d.ts +4 -0
- package/dist/either/index.mjs +22 -8
- package/dist/either/left/create.d.ts +2 -1
- package/dist/either/left/index.d.ts +3 -2
- package/dist/either/left/none.cjs +15 -0
- package/dist/either/left/none.d.ts +7 -0
- package/dist/either/left/none.mjs +14 -0
- package/dist/either/matchInformationOtherwise.d.ts +1 -1
- package/dist/either/rewriteInformation.cjs +22 -0
- package/dist/either/rewriteInformation.d.ts +14 -0
- package/dist/either/rewriteInformation.mjs +22 -0
- package/dist/either/right/asyncGroup.cjs +2 -2
- package/dist/either/right/asyncGroup.mjs +2 -2
- package/dist/either/right/create.d.ts +2 -1
- package/dist/either/right/group.cjs +1 -1
- package/dist/either/right/group.mjs +1 -1
- package/dist/either/right/index.d.ts +6 -5
- package/dist/either/right/some.cjs +15 -0
- package/dist/either/right/some.d.ts +7 -0
- package/dist/either/right/some.mjs +14 -0
- package/dist/either/toMaybe.cjs +12 -0
- package/dist/either/toMaybe.d.ts +5 -0
- package/dist/either/toMaybe.mjs +12 -0
- package/dist/either/types/index.d.ts +1 -0
- package/dist/either/types/mayBe.d.ts +3 -0
- package/dist/either/unwrapOr.cjs +14 -0
- package/dist/either/unwrapOr.d.ts +8 -0
- package/dist/either/unwrapOr.mjs +14 -0
- package/dist/either/unwrapOtherwise.cjs +14 -0
- package/dist/either/unwrapOtherwise.d.ts +8 -0
- package/dist/either/unwrapOtherwise.mjs +14 -0
- package/dist/generator/reduce.cjs +2 -1
- package/dist/generator/reduce.mjs +1 -1
- package/dist/invocation/evidence.d.ts +1 -1
- package/dist/invocation/flow/base.cjs +4 -4
- package/dist/invocation/flow/base.d.ts +1 -1
- package/dist/invocation/flow/base.mjs +4 -4
- package/dist/invocation/flow/controller/defaults/debounce.cjs +1 -1
- package/dist/invocation/flow/controller/defaults/debounce.mjs +1 -1
- package/dist/invocation/flow/controller/defaults/throttling.cjs +1 -1
- package/dist/invocation/flow/controller/defaults/throttling.mjs +1 -1
- package/dist/invocation/index.cjs +18 -8
- package/dist/invocation/index.d.ts +3 -1
- package/dist/invocation/index.mjs +12 -6
- package/dist/invocation/reader.cjs +30 -0
- package/dist/invocation/reader.d.ts +30 -0
- package/dist/invocation/reader.mjs +29 -0
- package/dist/invocation/resolver.cjs +31 -0
- package/dist/invocation/resolver.d.ts +14 -0
- package/dist/invocation/resolver.mjs +31 -0
- package/dist/invocation/signature.cjs +8 -0
- package/dist/invocation/signature.d.ts +7 -0
- package/dist/invocation/signature.mjs +8 -0
- package/dist/modeling/entity/base.cjs +22 -11
- package/dist/modeling/entity/base.d.ts +16 -8
- package/dist/modeling/entity/base.mjs +16 -5
- package/dist/modeling/entity/helper.d.ts +6 -8
- package/dist/modeling/entity/namespace.cjs +0 -2
- package/dist/modeling/entity/namespace.d.ts +0 -2
- package/dist/modeling/entity/namespace.mjs +0 -2
- package/dist/modeling/fact/base.cjs +36 -0
- package/dist/modeling/fact/base.d.ts +29 -0
- package/dist/modeling/fact/base.mjs +35 -0
- package/dist/modeling/fact/index.d.ts +1 -0
- package/dist/modeling/flag/base.cjs +2 -6
- package/dist/modeling/flag/base.d.ts +10 -11
- package/dist/modeling/flag/base.mjs +2 -6
- package/dist/modeling/index.cjs +17 -12
- package/dist/modeling/index.d.ts +1 -0
- package/dist/modeling/index.mjs +5 -2
- package/dist/modeling/newType/base.cjs +12 -11
- package/dist/modeling/newType/base.d.ts +8 -8
- package/dist/modeling/newType/base.mjs +6 -5
- package/dist/modeling/taggedObject/base.cjs +22 -11
- package/dist/modeling/taggedObject/base.d.ts +12 -7
- package/dist/modeling/taggedObject/base.mjs +16 -5
- package/dist/object/assign.d.ts +3 -3
- package/dist/object/deepOverride.cjs +33 -0
- package/dist/object/deepOverride.d.ts +20 -0
- package/dist/object/deepOverride.mjs +33 -0
- package/dist/object/entries.d.ts +3 -3
- package/dist/object/index.cjs +4 -1
- package/dist/object/index.d.ts +1 -0
- package/dist/object/index.mjs +4 -2
- package/dist/object/isSimple.cjs +1 -1
- package/dist/object/isSimple.mjs +1 -1
- package/dist/object/keys.d.ts +1 -1
- package/dist/object/override.cjs +1 -1
- package/dist/object/override.d.ts +5 -2
- package/dist/object/override.mjs +1 -1
- package/dist/object/types/assign.d.ts +2 -0
- package/dist/object/types/forbiddenKey.d.ts +1 -1
- package/dist/object/types/forbiddenUndefinedProps.d.ts +3 -0
- package/dist/object/types/hasKeySignature.d.ts +1 -0
- package/dist/object/types/index.d.ts +6 -2
- package/dist/object/types/keyofWithoutSignature.d.ts +3 -0
- package/dist/object/types/override.d.ts +4 -0
- package/dist/object/types/split.d.ts +2 -2
- package/dist/object/values.d.ts +1 -1
- package/dist/path/create.cjs +11 -0
- package/dist/path/create.d.ts +3 -0
- package/dist/path/create.mjs +11 -0
- package/dist/path/createAbsolute.cjs +12 -0
- package/dist/path/createAbsolute.d.ts +3 -0
- package/dist/path/createAbsolute.mjs +12 -0
- package/dist/path/createAbsoluteOrThrow.cjs +22 -0
- package/dist/path/createAbsoluteOrThrow.d.ts +9 -0
- package/dist/path/createAbsoluteOrThrow.mjs +21 -0
- package/dist/path/createOrThrow.cjs +22 -0
- package/dist/path/createOrThrow.d.ts +9 -0
- package/dist/path/createOrThrow.mjs +21 -0
- package/dist/path/createSegment.cjs +12 -0
- package/dist/path/createSegment.d.ts +3 -0
- package/dist/path/createSegment.mjs +12 -0
- package/dist/path/createSegmentOrThrow.cjs +22 -0
- package/dist/path/createSegmentOrThrow.d.ts +9 -0
- package/dist/path/createSegmentOrThrow.mjs +21 -0
- package/dist/path/declareAbsolutePath.cjs +6 -0
- package/dist/path/declareAbsolutePath.d.ts +3 -0
- package/dist/path/declareAbsolutePath.mjs +6 -0
- package/dist/path/declarePath.cjs +6 -0
- package/dist/path/declarePath.d.ts +3 -0
- package/dist/path/declarePath.mjs +6 -0
- package/dist/path/declareSegment.cjs +6 -0
- package/dist/path/declareSegment.d.ts +3 -0
- package/dist/path/declareSegment.mjs +6 -0
- package/dist/path/index.cjs +39 -3
- package/dist/path/index.d.ts +10 -0
- package/dist/path/index.mjs +27 -4
- package/dist/path/kind.cjs +4 -0
- package/dist/path/kind.d.ts +2 -0
- package/dist/path/kind.mjs +5 -0
- package/dist/pattern/index.cjs +6 -0
- package/dist/pattern/index.d.ts +2 -0
- package/dist/pattern/index.mjs +5 -1
- package/dist/pattern/match/builder.cjs +1 -1
- package/dist/pattern/match/builder.mjs +1 -1
- package/dist/pattern/matchWithEntityOtherwise.d.ts +2 -2
- package/dist/pattern/matchWithFact.cjs +12 -0
- package/dist/pattern/matchWithFact.d.ts +12 -0
- package/dist/pattern/matchWithFact.mjs +12 -0
- package/dist/pattern/matchWithFactOtherwise.cjs +13 -0
- package/dist/pattern/matchWithFactOtherwise.d.ts +14 -0
- package/dist/pattern/matchWithFactOtherwise.mjs +13 -0
- package/dist/pattern/matchWithNumber.d.ts +4 -4
- package/dist/pattern/matchWithNumberOtherwise.d.ts +4 -4
- package/dist/pattern/matchWithString.d.ts +4 -4
- package/dist/pattern/matchWithStringOtherwise.d.ts +4 -4
- package/dist/pattern/matchWithTaggedObjectOtherwise.d.ts +2 -2
- package/dist/pattern/types/complexUnMatchedValue/getIncompleteUnion.d.ts +8 -8
- package/dist/string/capitalize.d.ts +1 -1
- package/dist/string/concat.d.ts +2 -2
- package/dist/string/constraints/allowedCharacters.d.ts +3 -3
- package/dist/string/isComposedOf.cjs +0 -1
- package/dist/string/isComposedOf.d.ts +5 -8
- package/dist/string/isComposedOf.mjs +0 -1
- package/dist/string/prepend.d.ts +2 -2
- package/dist/string/split.cjs +1 -0
- package/dist/string/split.d.ts +3 -3
- package/dist/string/split.mjs +1 -0
- package/dist/string/toLowerCase.d.ts +1 -1
- package/dist/string/toUpperCase.d.ts +1 -1
- package/dist/string/types/IsAllowedString.d.ts +5 -0
- package/dist/string/types/index.d.ts +1 -0
- package/dist/string/uncapitalize.d.ts +1 -1
- package/dist/tuple/types/map.d.ts +1 -1
- package/package.json +16 -30
- package/dist/dataStructure/common/errorInterpreter.cjs +0 -45
- package/dist/dataStructure/common/errorInterpreter.d.ts +0 -32
- package/dist/dataStructure/common/errorInterpreter.mjs +0 -45
- package/dist/invocation/useCase.cjs +0 -26
- package/dist/invocation/useCase.d.ts +0 -28
- package/dist/invocation/useCase.mjs +0 -25
- package/dist/object/types/assignObjects.d.ts +0 -2
- /package/{README.md → README} +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type * as DCommon from '../common';
|
|
2
2
|
import type * as DNumber from '../number/types';
|
|
3
3
|
import type * as DObject from '../object';
|
|
4
|
-
type ComputeMatcher<GenericInput extends number> = {
|
|
4
|
+
type ComputeMatcher<GenericInput extends number> = DCommon.SimplifyType<{
|
|
5
5
|
[Prop in GenericInput]?: (value: Prop) => unknown;
|
|
6
|
-
}
|
|
6
|
+
}>;
|
|
7
7
|
type ForbiddenMoreKey<GenericInput extends number, GenericMatcher extends ComputeMatcher<GenericInput>> = Exclude<keyof GenericMatcher, GenericInput> extends infer InferredKey ? DCommon.IsEqual<InferredKey, never> extends true ? unknown : DCommon.ComputedTypeError<`Key "${Extract<InferredKey, number>}" is forbidden.`> : never;
|
|
8
8
|
type HandledKeys<GenericMatcher extends object> = Extract<DObject.GetPropsWithValueExtends<GenericMatcher, DCommon.AnyFunction>, number>;
|
|
9
|
-
export declare function matchWithNumberOtherwise<GenericInput extends number, GenericMatcher extends ComputeMatcher<
|
|
10
|
-
export declare function matchWithNumberOtherwise<GenericInput extends number, GenericMatcher extends ComputeMatcher<
|
|
9
|
+
export declare function matchWithNumberOtherwise<GenericInput extends number, GenericClearInput extends Extract<DCommon.RemoveConstraint<GenericInput>, number>, GenericMatcher extends ComputeMatcher<GenericClearInput>, GenericOutput extends unknown>(matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericClearInput>, GenericMatcher> & ForbiddenMoreKey<GenericClearInput, GenericMatcher>), otherwise: (value: DCommon.BreakGenericLink<Exclude<GenericInput, HandledKeys<GenericMatcher>>>) => GenericOutput): (input: GenericInput & DNumber.RequireSimpleLiteral<GenericClearInput>) => (ReturnType<Extract<GenericMatcher[keyof GenericMatcher], DCommon.AnyFunction>> | GenericOutput);
|
|
10
|
+
export declare function matchWithNumberOtherwise<GenericInput extends number, GenericClearInput extends Extract<DCommon.RemoveConstraint<GenericInput>, number>, GenericMatcher extends ComputeMatcher<GenericClearInput>, GenericOutput extends unknown>(input: GenericInput & DNumber.RequireSimpleLiteral<GenericClearInput>, matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericClearInput>, GenericMatcher> & ForbiddenMoreKey<GenericClearInput, GenericMatcher>), otherwise: (value: DCommon.BreakGenericLink<Exclude<GenericInput, HandledKeys<GenericMatcher>>>) => GenericOutput): (ReturnType<Extract<GenericMatcher[keyof GenericMatcher], DCommon.AnyFunction>> | GenericOutput);
|
|
11
11
|
export {};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type * as DCommon from '../common';
|
|
2
2
|
import type * as DObject from '../object';
|
|
3
3
|
import type * as DString from '../string/types';
|
|
4
|
-
type ComputeMatcher<GenericInput extends string> = {
|
|
4
|
+
type ComputeMatcher<GenericInput extends string> = DCommon.SimplifyType<{
|
|
5
5
|
[Prop in GenericInput]: (value: Prop) => unknown;
|
|
6
|
-
}
|
|
6
|
+
}>;
|
|
7
7
|
type ForbiddenMoreKey<GenericInput extends string, GenericMatcher extends ComputeMatcher<GenericInput>> = DObject.ForbiddenKey<GenericMatcher, Extract<Exclude<keyof GenericMatcher, GenericInput>, string>>;
|
|
8
|
-
export declare function matchWithString<GenericInput extends string, GenericMatcher extends ComputeMatcher<
|
|
9
|
-
export declare function matchWithString<GenericInput extends string, GenericMatcher extends ComputeMatcher<
|
|
8
|
+
export declare function matchWithString<GenericInput extends string, GenericClearInput extends Extract<DCommon.RemoveConstraint<GenericInput>, string>, GenericMatcher extends ComputeMatcher<GenericClearInput>>(matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericClearInput>, GenericMatcher> & ForbiddenMoreKey<GenericClearInput, GenericMatcher>)): (input: GenericInput & DString.RequireSimpleLiteral<GenericClearInput>) => ReturnType<GenericMatcher[keyof GenericMatcher]>;
|
|
9
|
+
export declare function matchWithString<GenericInput extends string, GenericClearInput extends Extract<DCommon.RemoveConstraint<GenericInput>, string>, GenericMatcher extends ComputeMatcher<GenericClearInput>>(input: GenericInput & DString.RequireSimpleLiteral<GenericClearInput>, matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericClearInput>, GenericMatcher> & ForbiddenMoreKey<GenericClearInput, GenericMatcher>)): ReturnType<GenericMatcher[keyof GenericMatcher]>;
|
|
10
10
|
export {};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type * as DCommon from '../common';
|
|
2
2
|
import type * as DObject from '../object';
|
|
3
3
|
import type * as DString from '../string';
|
|
4
|
-
type ComputeMatcher<GenericInput extends string> = {
|
|
4
|
+
type ComputeMatcher<GenericInput extends string> = DCommon.SimplifyType<{
|
|
5
5
|
[Prop in GenericInput]?: (value: Prop) => unknown;
|
|
6
|
-
}
|
|
6
|
+
}>;
|
|
7
7
|
type ForbiddenMoreKey<GenericInput extends string, GenericMatcher extends ComputeMatcher<GenericInput>> = DObject.ForbiddenKey<GenericMatcher, Extract<Exclude<keyof GenericMatcher, GenericInput>, string>>;
|
|
8
8
|
type HandledKeys<GenericMatcher extends object> = Extract<DObject.GetPropsWithValueExtends<GenericMatcher, DCommon.AnyFunction>, string>;
|
|
9
|
-
export declare function matchWithStringOtherwise<GenericInput extends string, GenericMatcher extends ComputeMatcher<
|
|
10
|
-
export declare function matchWithStringOtherwise<GenericInput extends string, GenericMatcher extends ComputeMatcher<
|
|
9
|
+
export declare function matchWithStringOtherwise<GenericInput extends string, GenericClearInput extends Extract<DCommon.RemoveConstraint<GenericInput>, string>, GenericMatcher extends ComputeMatcher<GenericClearInput>, GenericOutput extends unknown>(matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericClearInput>, GenericMatcher> & ForbiddenMoreKey<GenericClearInput, GenericMatcher>), otherwise: (value: DCommon.BreakGenericLink<Exclude<GenericInput, HandledKeys<GenericMatcher>>>) => GenericOutput): (input: GenericInput & DString.RequireSimpleLiteral<GenericClearInput>) => (ReturnType<Extract<GenericMatcher[keyof GenericMatcher], DCommon.AnyFunction>> | GenericOutput);
|
|
10
|
+
export declare function matchWithStringOtherwise<GenericInput extends string, GenericClearInput extends Extract<DCommon.RemoveConstraint<GenericInput>, string>, GenericMatcher extends ComputeMatcher<GenericClearInput>, GenericOutput extends unknown>(input: GenericInput & DString.RequireSimpleLiteral<GenericClearInput>, matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericClearInput>, GenericMatcher> & ForbiddenMoreKey<GenericClearInput, GenericMatcher>), otherwise: (value: DCommon.BreakGenericLink<Exclude<GenericInput, HandledKeys<GenericMatcher>>>) => GenericOutput): (ReturnType<Extract<GenericMatcher[keyof GenericMatcher], DCommon.AnyFunction>> | GenericOutput);
|
|
11
11
|
export {};
|
|
@@ -9,6 +9,6 @@ type ForbiddenMoreKey<GenericTaggedObject extends DModeling.ObjectTag, GenericMa
|
|
|
9
9
|
type HandledKeys<GenericMatcher extends object> = Extract<DObject.GetPropsWithValueExtends<GenericMatcher, DCommon.AnyFunction>, string>;
|
|
10
10
|
type UnhandledTaggedObject<GenericTaggedObject extends DModeling.ObjectTag, GenericMatcher extends object> = Exclude<GenericTaggedObject, DModeling.ObjectTag<HandledKeys<GenericMatcher>>>;
|
|
11
11
|
type RequireLiteralTag<GenericTaggedObject extends DModeling.ObjectTag> = DString.RequireSimpleLiteral<DModeling.GetTagValue<GenericTaggedObject>>;
|
|
12
|
-
export declare function matchWithTaggedObjectOtherwise<GenericTaggedObject extends DModeling.ObjectTag, GenericMatcher extends ComputeMatcher<GenericTaggedObject>, GenericOutput>(matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericTaggedObject>, GenericMatcher> & ForbiddenMoreKey<NoInfer<GenericTaggedObject>, GenericMatcher>), otherwise: (value: UnhandledTaggedObject<GenericTaggedObject, GenericMatcher
|
|
13
|
-
export declare function matchWithTaggedObjectOtherwise<GenericTaggedObject extends DModeling.ObjectTag, GenericMatcher extends ComputeMatcher<GenericTaggedObject>, GenericOutput>(input: GenericTaggedObject & RequireLiteralTag<GenericTaggedObject>, matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericTaggedObject>, GenericMatcher> & ForbiddenMoreKey<GenericTaggedObject, GenericMatcher>), otherwise: (value: UnhandledTaggedObject<GenericTaggedObject, GenericMatcher
|
|
12
|
+
export declare function matchWithTaggedObjectOtherwise<GenericTaggedObject extends DModeling.ObjectTag, GenericMatcher extends ComputeMatcher<GenericTaggedObject>, GenericOutput>(matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericTaggedObject>, GenericMatcher> & ForbiddenMoreKey<NoInfer<GenericTaggedObject>, GenericMatcher>), otherwise: (value: DCommon.BreakGenericLink<UnhandledTaggedObject<GenericTaggedObject, GenericMatcher>>) => GenericOutput): (input: GenericTaggedObject & RequireLiteralTag<GenericTaggedObject>) => (ReturnType<Extract<NoInfer<GenericMatcher>[keyof GenericMatcher], DCommon.AnyFunction>> | GenericOutput);
|
|
13
|
+
export declare function matchWithTaggedObjectOtherwise<GenericTaggedObject extends DModeling.ObjectTag, GenericMatcher extends ComputeMatcher<GenericTaggedObject>, GenericOutput>(input: GenericTaggedObject & RequireLiteralTag<GenericTaggedObject>, matcher: (DCommon.FixDeepFunctionInfer<ComputeMatcher<GenericTaggedObject>, GenericMatcher> & ForbiddenMoreKey<GenericTaggedObject, GenericMatcher>), otherwise: (value: DCommon.BreakGenericLink<UnhandledTaggedObject<GenericTaggedObject, GenericMatcher>>) => GenericOutput): (ReturnType<Extract<GenericMatcher[keyof GenericMatcher], DCommon.AnyFunction>> | GenericOutput);
|
|
14
14
|
export {};
|
|
@@ -19,7 +19,7 @@ export type GetIncompleteUnion<GenericInput extends unknown, GenericPatternValue
|
|
|
19
19
|
[SubProp in Prop]: any;
|
|
20
20
|
}>[Prop]>;
|
|
21
21
|
}> : DCommon.IsEqual<InferredInput, never> extends true ? {} : {
|
|
22
|
-
"@duplojs/
|
|
22
|
+
"@duplojs/lang/{object}": true;
|
|
23
23
|
} : never) | ([
|
|
24
24
|
DTuple.Unmatched<Extract<GenericInput, DCommon.AnyTuple>, Extract<GenericPatternValue, readonly any[]>>,
|
|
25
25
|
Extract<GenericPatternValue, DCommon.AnyTuple | readonly []>
|
|
@@ -33,10 +33,10 @@ export type GetIncompleteUnion<GenericInput extends unknown, GenericPatternValue
|
|
|
33
33
|
readonly [infer InferredInputFirst, ...infer InferredInputRest],
|
|
34
34
|
readonly [infer InferredPatternValueFirst, ...infer InferredPatternValueRest]
|
|
35
35
|
] ? GetIncompleteUnion<InferredInputFirst, InferredPatternValueFirst> extends infer InferredResultFirst ? DObject.FlatObject<{
|
|
36
|
-
"@duplojs/
|
|
37
|
-
"@duplojs/
|
|
36
|
+
"@duplojs/lang/[tuple.first": InferredResultFirst;
|
|
37
|
+
"@duplojs/lang/tuple.rest]": GetIncompleteUnion<InferredInputRest, InferredPatternValueRest>;
|
|
38
38
|
}> : never : never : DCommon.IsEqual<InferredInput, never> extends true ? {} : {
|
|
39
|
-
"@duplojs/
|
|
39
|
+
"@duplojs/lang/[tuple]": true;
|
|
40
40
|
} : never) | ([
|
|
41
41
|
Exclude<Extract<GenericInput, readonly any[]>, DCommon.AnyTuple>,
|
|
42
42
|
Extract<GenericPatternValue, DCommon.AnyTuple>
|
|
@@ -50,8 +50,8 @@ export type GetIncompleteUnion<GenericInput extends unknown, GenericPatternValue
|
|
|
50
50
|
infer InferredPatternValueFirst,
|
|
51
51
|
...infer InferredPatternValueRest
|
|
52
52
|
] ? GetIncompleteUnion<InferredInput[number], InferredPatternValueFirst> extends infer InferredResultFirst ? DObject.FlatObject<{
|
|
53
|
-
"@duplojs/
|
|
54
|
-
"@duplojs/
|
|
53
|
+
"@duplojs/lang/[array.first": InferredResultFirst;
|
|
54
|
+
"@duplojs/lang/array.rest]": DCommon.IsEqual<InferredResultFirst, {}> extends true ? GetIncompleteUnion<InferredInput, InferredPatternValueRest> : never;
|
|
55
55
|
}> : {} : {} : never) | ([
|
|
56
56
|
Exclude<Extract<GenericInput, readonly any[]>, DCommon.AnyTuple>,
|
|
57
57
|
Exclude<Extract<GenericPatternValue, readonly any[]>, DCommon.AnyTuple>
|
|
@@ -62,9 +62,9 @@ export type GetIncompleteUnion<GenericInput extends unknown, GenericPatternValue
|
|
|
62
62
|
DCommon.IsEqual<InferredPatternValue, never>,
|
|
63
63
|
DCommon.IsEqual<InferredInput, never>
|
|
64
64
|
]> extends true ? never : DCommon.IsEqual<Exclude<InferredInput[number], InferredPatternValue[number]>, never> extends true ? {} : {
|
|
65
|
-
"@duplojs/
|
|
65
|
+
"@duplojs/lang/[array]": true;
|
|
66
66
|
} : never) | (Extract<GenericPatternValue, PatternValueMaybeAll> extends infer InferredPatternValue ? DCommon.IsEqual<InferredPatternValue, never> extends true ? never : {
|
|
67
|
-
"@duplojs/
|
|
67
|
+
"@duplojs/lang/{maybeAll}": true;
|
|
68
68
|
} : never) | ([
|
|
69
69
|
Extract<GenericInput, readonly any[]>,
|
|
70
70
|
Extract<GenericPatternValue, readonly []>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReapplyCompatiblesConstraints } from './constraints';
|
|
2
2
|
import type * as DCommon from '../common';
|
|
3
3
|
type CapitalizeOutput<GenericString extends string> = GenericString extends unknown ? ReapplyCompatiblesConstraints<GenericString, Capitalize<Extract<DCommon.RemoveConstraint<GenericString>, string>>, "minCharacters" | "lengthEqual"> : never;
|
|
4
|
-
export declare function capitalize<GenericString extends string
|
|
4
|
+
export declare function capitalize<GenericString extends string>(string: GenericString): CapitalizeOutput<GenericString>;
|
|
5
5
|
export {};
|
package/dist/string/concat.d.ts
CHANGED
|
@@ -9,6 +9,6 @@ type RemoveStringConstraints<GenericStrings extends readonly string[]> = Generic
|
|
|
9
9
|
...RemoveStringConstraints<InferredRest>
|
|
10
10
|
] : string[];
|
|
11
11
|
type ConcatOutput<GenericString extends string, GenericElement extends string, GenericElementsRest extends readonly string[] = []> = ReapplyCompatiblesConstraints<GenericString, `${Extract<DCommon.RemoveConstraint<GenericString>, string>}${Extract<DCommon.RemoveConstraint<GenericElement>, string>}${Join<RemoveStringConstraints<GenericElementsRest>>}`, "minCharacters">;
|
|
12
|
-
export declare function concat<GenericString extends string, GenericElement extends string
|
|
13
|
-
export declare function concat<GenericString extends string, GenericElement extends string, GenericElementsRest extends readonly string[]
|
|
12
|
+
export declare function concat<GenericString extends string, GenericElement extends string>(element: GenericElement): (string: GenericString) => DCommon.BreakGenericLink<ConcatOutput<GenericString, GenericElement>>;
|
|
13
|
+
export declare function concat<GenericString extends string, GenericElement extends string, GenericElementsRest extends readonly string[]>(string: GenericString, element: GenericElement, ...elementsRest: GenericElementsRest): DCommon.BreakGenericLink<ConcatOutput<GenericString, GenericElement, GenericElementsRest>>;
|
|
14
14
|
export {};
|
|
@@ -2,8 +2,8 @@ import type * as DCommon from '../../common';
|
|
|
2
2
|
import type * as DObject from '../../object';
|
|
3
3
|
export interface CharactersRangeStore {
|
|
4
4
|
}
|
|
5
|
-
export type CharactersRange = Extract<DObject.
|
|
5
|
+
export type CharactersRange = Extract<DObject.GetPropsWithValueExtends<CharactersRangeStore, string>, string>;
|
|
6
6
|
export type AllowedCharactersConstraintName = "string-allowed-characters";
|
|
7
|
-
export interface AllowedCharacters<GenericCharactersRange extends CharactersRange = never> extends DCommon.Constraint<AllowedCharactersConstraintName, Record<GenericCharactersRange,
|
|
7
|
+
export interface AllowedCharacters<GenericCharactersRange extends CharactersRange = never> extends DCommon.Constraint<AllowedCharactersConstraintName, () => Partial<Record<GenericCharactersRange, GenericCharactersRange>>> {
|
|
8
8
|
}
|
|
9
|
-
export type ExtractAllowedCharacters<GenericConstraint extends unknown, GenericDefault extends unknown = never> = GenericConstraint extends AllowedCharacters ? (keyof GenericConstraint[DCommon.ConstraintSymbol][AllowedCharactersConstraintName]) extends infer InferredResult extends CharactersRange ? DCommon.UnionToIntersection<InferredResult extends any ? AllowedCharacters<InferredResult> : never> : GenericDefault : GenericDefault;
|
|
9
|
+
export type ExtractAllowedCharacters<GenericConstraint extends unknown, GenericDefault extends unknown = never> = GenericConstraint extends AllowedCharacters ? (keyof ReturnType<GenericConstraint[DCommon.ConstraintSymbol][AllowedCharactersConstraintName]>) extends infer InferredResult extends CharactersRange ? DCommon.UnionToIntersection<InferredResult extends any ? DCommon.IsNever<InferredResult> extends true ? AllowedCharacters : AllowedCharacters<InferredResult> : never> : GenericDefault : GenericDefault;
|
|
@@ -2,13 +2,10 @@ import { AllowedCharacters, CharactersRange } from './constraints';
|
|
|
2
2
|
import type * as DCommon from '../common';
|
|
3
3
|
declare module "./constraints" {
|
|
4
4
|
interface CharactersRangeStore {
|
|
5
|
-
"a-z":
|
|
6
|
-
"A-Z":
|
|
7
|
-
"
|
|
8
|
-
"0-9": true;
|
|
5
|
+
"a-z": "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z";
|
|
6
|
+
"A-Z": "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z";
|
|
7
|
+
"0-9": "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";
|
|
9
8
|
}
|
|
10
9
|
}
|
|
11
|
-
|
|
12
|
-
export declare function isComposedOf<
|
|
13
|
-
export declare function isComposedOf<GenericValue extends string, GenericCharactersRange extends CharactersRange>(value: GenericValue, charactersRange: DCommon.MaybeArray<GenericCharactersRange>): value is ContainsIsComposedOf<GenericValue, GenericCharactersRange>;
|
|
14
|
-
export {};
|
|
10
|
+
export declare function isComposedOf<GenericCharactersRange extends CharactersRange>(charactersRange: DCommon.MaybeArray<GenericCharactersRange>): (value: string) => value is string & AllowedCharacters<GenericCharactersRange>;
|
|
11
|
+
export declare function isComposedOf<GenericCharactersRange extends CharactersRange>(value: string, charactersRange: DCommon.MaybeArray<GenericCharactersRange>): value is string & AllowedCharacters<GenericCharactersRange>;
|
package/dist/string/prepend.d.ts
CHANGED
|
@@ -9,6 +9,6 @@ type RemoveStringConstraints<GenericStrings extends readonly string[]> = Generic
|
|
|
9
9
|
...RemoveStringConstraints<InferredRest>
|
|
10
10
|
] : string[];
|
|
11
11
|
type PrependOutput<GenericString extends string, GenericElement extends string, GenericElementsRest extends readonly string[] = []> = ReapplyCompatiblesConstraints<GenericString, `${Extract<DCommon.RemoveConstraint<GenericElement>, string>}${Join<RemoveStringConstraints<GenericElementsRest>>}${Extract<DCommon.RemoveConstraint<GenericString>, string>}`, "minCharacters">;
|
|
12
|
-
export declare function prepend<GenericString extends string, GenericElement extends string
|
|
13
|
-
export declare function prepend<GenericString extends string, GenericElement extends string, GenericElementsRest extends readonly string[]
|
|
12
|
+
export declare function prepend<GenericString extends string, GenericElement extends string>(element: GenericElement): (string: GenericString) => PrependOutput<GenericString, GenericElement>;
|
|
13
|
+
export declare function prepend<GenericString extends string, GenericElement extends string, GenericElementsRest extends readonly string[]>(string: GenericString, element: GenericElement, ...elementsRest: GenericElementsRest): PrependOutput<GenericString, GenericElement, GenericElementsRest>;
|
|
14
14
|
export {};
|
package/dist/string/split.cjs
CHANGED
package/dist/string/split.d.ts
CHANGED
|
@@ -19,8 +19,8 @@ type ComputeSplitOutput<GenericString extends string, GenericSeparator extends s
|
|
|
19
19
|
DCommon.IsEqual<GenericString, string>,
|
|
20
20
|
DCommon.IsEqual<GenericSeparator, "">,
|
|
21
21
|
IsKeyPattern<GenericSeparator>
|
|
22
|
-
]> extends true ? string[] & DArray.MinElements<ApplySplitLimit<1, GenericLimit>> : CountSplitGroups<GenericString, GenericSeparator> extends infer InferredGroupNumber extends number ? ApplySplitLimit<InferredGroupNumber, GenericLimit> extends infer InferredOutputLength extends number ? (string[] & DArray.MinElements<InferredOutputLength> & (IsKeyPattern<GenericString> extends true ? unknown : (DArray.LengthEqual<InferredOutputLength> & DArray.MaxElements<InferredOutputLength>))) : never : never;
|
|
22
|
+
]> extends true ? readonly string[] & DArray.MinElements<ApplySplitLimit<1, GenericLimit>> : CountSplitGroups<GenericString, GenericSeparator> extends infer InferredGroupNumber extends number ? ApplySplitLimit<InferredGroupNumber, GenericLimit> extends infer InferredOutputLength extends number ? (readonly string[] & DArray.MinElements<InferredOutputLength> & (IsKeyPattern<GenericString> extends true ? unknown : (DArray.LengthEqual<InferredOutputLength> & DArray.MaxElements<InferredOutputLength>))) : never : never;
|
|
23
23
|
type SplitOutput<GenericString extends string, GenericSeparator extends string, GenericLimit extends number = number> = GenericString extends Format<string> ? ComputeSplitOutput<Extract<DCommon.RemoveConstraint<ApplyFormat<GenericString>>, string>, GenericSeparator, GenericLimit> : ComputeSplitOutput<Extract<DCommon.RemoveConstraint<GenericString>, string>, GenericSeparator, GenericLimit>;
|
|
24
|
-
export declare function split<GenericString extends string, GenericSeparator extends string
|
|
25
|
-
export declare function split<GenericString extends string, GenericSeparator extends string, GenericLimit extends number
|
|
24
|
+
export declare function split<GenericString extends string, GenericSeparator extends string>(separator: GenericSeparator | RegExp): (string: GenericString) => SplitOutput<GenericString, GenericSeparator>;
|
|
25
|
+
export declare function split<GenericString extends string, GenericSeparator extends string, GenericLimit extends number>(string: GenericString, separator: GenericSeparator | RegExp, params?: SplitParams<GenericLimit>): SplitOutput<GenericString, GenericSeparator, GenericLimit>;
|
|
26
26
|
export {};
|
package/dist/string/split.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReapplyCompatiblesConstraints } from './constraints';
|
|
2
2
|
import type * as DCommon from '../common';
|
|
3
3
|
type ToLowerCaseOutput<GenericString extends string> = ReapplyCompatiblesConstraints<GenericString, Lowercase<Extract<DCommon.RemoveConstraint<GenericString>, string>>, "minCharacters">;
|
|
4
|
-
export declare function toLowerCase<GenericString extends string
|
|
4
|
+
export declare function toLowerCase<GenericString extends string>(string: GenericString): ToLowerCaseOutput<GenericString>;
|
|
5
5
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReapplyCompatiblesConstraints } from './constraints';
|
|
2
2
|
import type * as DCommon from '../common';
|
|
3
3
|
type ToUpperCaseOutput<GenericString extends string> = ReapplyCompatiblesConstraints<GenericString, Uppercase<Extract<DCommon.RemoveConstraint<GenericString>, string>>, "minCharacters">;
|
|
4
|
-
export declare function toUpperCase<GenericString extends string
|
|
4
|
+
export declare function toUpperCase<GenericString extends string>(string: GenericString): ToUpperCaseOutput<GenericString>;
|
|
5
5
|
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { IsLiteral } from './isLiteral';
|
|
2
|
+
type _IsAllowedTail<GenericValue extends string, GenericAllowed extends string> = GenericValue extends `${infer Char}${infer Rest}` ? Char extends GenericAllowed ? _IsAllowedTail<Rest, GenericAllowed> : false : true;
|
|
3
|
+
type _IsAllowedString<GenericValue extends string, GenericAllowed extends string> = GenericValue extends `${infer InferredA}${infer InferredB}${infer InferredC}${infer InferredD}${infer InferredE}${infer InferredF}${infer InferredG}${infer InferredH}${infer InferredRest}` ? (InferredA | InferredB | InferredC | InferredD | InferredE | InferredF | InferredG | InferredH) extends GenericAllowed ? IsAllowedString<InferredRest, GenericAllowed> : false : _IsAllowedTail<GenericValue, GenericAllowed>;
|
|
4
|
+
export type IsAllowedString<GenericValue extends string, GenericAllowed extends string> = IsLiteral<GenericValue> extends true ? _IsAllowedString<GenericValue, GenericAllowed> : false;
|
|
5
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReapplyCompatiblesConstraints } from './constraints';
|
|
2
2
|
import type * as DCommon from '../common';
|
|
3
3
|
type UncapitalizeOutput<GenericString extends string> = ReapplyCompatiblesConstraints<GenericString, Uncapitalize<Extract<DCommon.RemoveConstraint<GenericString>, string>>, "minCharacters">;
|
|
4
|
-
export declare function uncapitalize<GenericString extends string
|
|
4
|
+
export declare function uncapitalize<GenericString extends string>(string: GenericString): UncapitalizeOutput<GenericString>;
|
|
5
5
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type Map<GenericArray extends readonly unknown[], GenericOutput extends unknown> = GenericArray extends readonly [] ? [] : GenericArray extends readonly [infer _InferredFirst, ...infer InferredRest] ? Map<InferredRest, GenericOutput> extends infer InferredResult extends readonly any[] ? [GenericOutput, ...InferredResult] : never : GenericOutput[];
|
|
1
|
+
export type Map<GenericArray extends readonly unknown[], GenericOutput extends unknown> = GenericArray extends readonly [] ? readonly [] : GenericArray extends readonly [infer _InferredFirst, ...infer InferredRest] ? Map<InferredRest, GenericOutput> extends infer InferredResult extends readonly any[] ? readonly [GenericOutput, ...InferredResult] : never : readonly GenericOutput[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@duplojs/lang",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0-beta.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": {
|
|
@@ -11,18 +11,11 @@
|
|
|
11
11
|
"homepage": "https://lang.duplojs.dev/",
|
|
12
12
|
"repository": {
|
|
13
13
|
"type": "git",
|
|
14
|
-
"url": "git+https://github.com/duplojs/
|
|
14
|
+
"url": "git+https://github.com/duplojs/ecosystem.git",
|
|
15
|
+
"directory": "packages/lang"
|
|
15
16
|
},
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"test:ut": "./.commands/test-ut.sh",
|
|
19
|
-
"test:ut:watch": "./.commands/test-ut.sh --watch",
|
|
20
|
-
"test:ut:update": "./.commands/test-ut.sh --update",
|
|
21
|
-
"test:types": "./.commands/test-types.sh",
|
|
22
|
-
"test:types:target": "./.commands/test-types-target.sh",
|
|
23
|
-
"test:lint": "./.commands/test-lint.sh",
|
|
24
|
-
"test:lint:fix": "./.commands/test-lint.sh --fix",
|
|
25
|
-
"prepare": "husky"
|
|
17
|
+
"bugs": {
|
|
18
|
+
"url": "https://github.com/duplojs/ecosystem/issues"
|
|
26
19
|
},
|
|
27
20
|
"sideEffects": false,
|
|
28
21
|
"types": "./dist/index.d.ts",
|
|
@@ -114,26 +107,12 @@
|
|
|
114
107
|
}
|
|
115
108
|
},
|
|
116
109
|
"devDependencies": {
|
|
117
|
-
"@duplojs/code-config": "0.1.0",
|
|
118
|
-
"@types/node": "24.
|
|
119
|
-
"husky": "9.1.7",
|
|
120
|
-
"rolldown": "1.2.4",
|
|
121
|
-
"unplugin-dts": "1.0.3",
|
|
122
|
-
"@typescript/typescript6": "6.0.2",
|
|
123
|
-
"tslib": "2.8.1",
|
|
124
|
-
"tsx": "4.23.12",
|
|
125
|
-
"tscw-config": "1.1.2",
|
|
126
|
-
"typescript": "7.0.2",
|
|
127
|
-
"vitest": "4.1.10",
|
|
128
|
-
"@vitest/coverage-istanbul": "4.1.10"
|
|
110
|
+
"@duplojs/code-config": "0.1.0-beta.1",
|
|
111
|
+
"@types/node": "24.13.3"
|
|
129
112
|
},
|
|
130
|
-
"workspaces": [
|
|
131
|
-
"integrations",
|
|
132
|
-
"docs"
|
|
133
|
-
],
|
|
134
113
|
"files": [
|
|
135
114
|
"dist",
|
|
136
|
-
"README
|
|
115
|
+
"README"
|
|
137
116
|
],
|
|
138
117
|
"keywords": [
|
|
139
118
|
"typescript",
|
|
@@ -156,5 +135,12 @@
|
|
|
156
135
|
],
|
|
157
136
|
"engines": {
|
|
158
137
|
"node": ">=24.18.0"
|
|
138
|
+
},
|
|
139
|
+
"scripts": {
|
|
140
|
+
"build": "./.commands/build.sh",
|
|
141
|
+
"test:types": "./.commands/test-types.sh",
|
|
142
|
+
"test:types:target": "./.commands/test-types-target.sh",
|
|
143
|
+
"test:lint": "./.commands/test-lint.sh",
|
|
144
|
+
"test:lint:fix": "./.commands/test-lint.sh --fix"
|
|
159
145
|
}
|
|
160
|
-
}
|
|
146
|
+
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
const require_base = require("../../kind/base.cjs");
|
|
2
|
-
const require_entries = require("../../object/entries.cjs");
|
|
3
|
-
const require_entry = require("../../object/entry.cjs");
|
|
4
|
-
const require_map = require("../../array/map.cjs");
|
|
5
|
-
const require_reduce = require("../../array/reduce.cjs");
|
|
6
|
-
const require_pipe = require("../../common/pipe.cjs");
|
|
7
|
-
const require_error = require("./error.cjs");
|
|
8
|
-
//#region scripts/dataStructure/common/errorInterpreter.ts
|
|
9
|
-
const kindNamespaceName = "DuplojsLangDataStructure";
|
|
10
|
-
function createErrorInterpreter(structureDictionary = {}, codecDictionary = []) {
|
|
11
|
-
const formattedStructureDictionary = require_pipe.pipe(structureDictionary, require_entries.entries, require_map.map(([key, value]) => require_entry.entry(`${require_base.keyKindPrefix}@${kindNamespaceName}/${key}`, value)));
|
|
12
|
-
const getInterpretedMessageStructure = (structure) => require_reduce.reduce(formattedStructureDictionary, require_reduce.reduceFrom(void 0), ({ element: [key, getMessage], next, exit }) => getMessage && key in structure ? exit(getMessage(structure)) : next(void 0));
|
|
13
|
-
const getInterpretedMessageCodec = (codec) => require_reduce.reduce(codecDictionary, require_reduce.reduceFrom(void 0), ({ element: [currentCodec, message], next, exit }) => currentCodec === codec ? exit(message) : next(void 0));
|
|
14
|
-
return (error) => require_map.map(error.issues, (issue) => {
|
|
15
|
-
if (require_error.issueKind.has(issue)) {
|
|
16
|
-
const source = issue.getSource();
|
|
17
|
-
const subSource = issue.getSubSource?.();
|
|
18
|
-
return {
|
|
19
|
-
...issue,
|
|
20
|
-
interpretedMessage: {
|
|
21
|
-
source: source.definition.message,
|
|
22
|
-
subSource: subSource?.definition.message,
|
|
23
|
-
interpretedSource: getInterpretedMessageStructure(source),
|
|
24
|
-
interpretedSubSource: subSource && getInterpretedMessageStructure(subSource)
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
if (require_error.encodeIssueKind.has(issue)) return {
|
|
29
|
-
...issue,
|
|
30
|
-
interpretedMessage: {
|
|
31
|
-
source: issue.message,
|
|
32
|
-
interpretedSource: getInterpretedMessageCodec(issue.getSource())
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
return {
|
|
36
|
-
...issue,
|
|
37
|
-
interpretedMessage: {
|
|
38
|
-
source: issue.message,
|
|
39
|
-
interpretedSource: getInterpretedMessageCodec(issue.getSource())
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
//#endregion
|
|
45
|
-
exports.createErrorInterpreter = createErrorInterpreter;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Structure, Structures } from '../structure';
|
|
2
|
-
import { createKind } from '../kind';
|
|
3
|
-
import { Type, Types } from '../type';
|
|
4
|
-
import { Constraint, Constraints } from '../constraint';
|
|
5
|
-
import { Error, DecodeIssue, EncodeIssue, Issue } from './error';
|
|
6
|
-
import { Codec } from './codec';
|
|
7
|
-
import * as DKind from '../../kind';
|
|
8
|
-
import * as DCommon from '../../common';
|
|
9
|
-
declare const kindNamespaceName: DKind.GetNamespaceName<typeof createKind>;
|
|
10
|
-
type RemoveNamespace<GenericString> = GenericString extends `@${typeof kindNamespaceName}/${infer InferredKindName}` ? InferredKindName : never;
|
|
11
|
-
export interface InterpretedMessage {
|
|
12
|
-
source?: string;
|
|
13
|
-
interpretedSource?: string;
|
|
14
|
-
subSource?: string;
|
|
15
|
-
interpretedSubSource?: string;
|
|
16
|
-
}
|
|
17
|
-
export interface InterpretedIssue extends Issue {
|
|
18
|
-
interpretedMessage: InterpretedMessage;
|
|
19
|
-
}
|
|
20
|
-
export interface InterpretedEncodedIssue extends EncodeIssue {
|
|
21
|
-
interpretedMessage: InterpretedMessage;
|
|
22
|
-
}
|
|
23
|
-
export interface InterpretedDecodedIssue extends DecodeIssue {
|
|
24
|
-
interpretedMessage: InterpretedMessage;
|
|
25
|
-
}
|
|
26
|
-
export type InterpretedIssues = (InterpretedIssue | InterpretedEncodedIssue | InterpretedDecodedIssue);
|
|
27
|
-
type CreateDictionaryParams = DCommon.SimplifyTopLevel<Omit<{
|
|
28
|
-
[DataStructure in (Types | Structures | Constraints) as RemoveNamespace<DKind.GetName<DataStructure>>]?: (structure: DataStructure) => string;
|
|
29
|
-
}, RemoveNamespace<DKind.GetName<Type>> | RemoveNamespace<DKind.GetName<Structure>> | RemoveNamespace<DKind.GetName<Constraint>>>>;
|
|
30
|
-
export declare function createErrorInterpreter(structureDictionary?: CreateDictionaryParams, codecDictionary?: [Codec, string][]): (error: Error) => readonly InterpretedIssues[];
|
|
31
|
-
export type ErrorInterpreter = ReturnType<typeof createErrorInterpreter>;
|
|
32
|
-
export {};
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { keyKindPrefix } from "../../kind/base.mjs";
|
|
2
|
-
import { entries } from "../../object/entries.mjs";
|
|
3
|
-
import { entry } from "../../object/entry.mjs";
|
|
4
|
-
import { map } from "../../array/map.mjs";
|
|
5
|
-
import { reduce, reduceFrom } from "../../array/reduce.mjs";
|
|
6
|
-
import { pipe } from "../../common/pipe.mjs";
|
|
7
|
-
import { encodeIssueKind, issueKind } from "./error.mjs";
|
|
8
|
-
//#region scripts/dataStructure/common/errorInterpreter.ts
|
|
9
|
-
const kindNamespaceName = "DuplojsLangDataStructure";
|
|
10
|
-
function createErrorInterpreter(structureDictionary = {}, codecDictionary = []) {
|
|
11
|
-
const formattedStructureDictionary = pipe(structureDictionary, entries, map(([key, value]) => entry(`${keyKindPrefix}@${kindNamespaceName}/${key}`, value)));
|
|
12
|
-
const getInterpretedMessageStructure = (structure) => reduce(formattedStructureDictionary, reduceFrom(void 0), ({ element: [key, getMessage], next, exit }) => getMessage && key in structure ? exit(getMessage(structure)) : next(void 0));
|
|
13
|
-
const getInterpretedMessageCodec = (codec) => reduce(codecDictionary, reduceFrom(void 0), ({ element: [currentCodec, message], next, exit }) => currentCodec === codec ? exit(message) : next(void 0));
|
|
14
|
-
return (error) => map(error.issues, (issue) => {
|
|
15
|
-
if (issueKind.has(issue)) {
|
|
16
|
-
const source = issue.getSource();
|
|
17
|
-
const subSource = issue.getSubSource?.();
|
|
18
|
-
return {
|
|
19
|
-
...issue,
|
|
20
|
-
interpretedMessage: {
|
|
21
|
-
source: source.definition.message,
|
|
22
|
-
subSource: subSource?.definition.message,
|
|
23
|
-
interpretedSource: getInterpretedMessageStructure(source),
|
|
24
|
-
interpretedSubSource: subSource && getInterpretedMessageStructure(subSource)
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
if (encodeIssueKind.has(issue)) return {
|
|
29
|
-
...issue,
|
|
30
|
-
interpretedMessage: {
|
|
31
|
-
source: issue.message,
|
|
32
|
-
interpretedSource: getInterpretedMessageCodec(issue.getSource())
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
return {
|
|
36
|
-
...issue,
|
|
37
|
-
interpretedMessage: {
|
|
38
|
-
source: issue.message,
|
|
39
|
-
interpretedSource: getInterpretedMessageCodec(issue.getSource())
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
//#endregion
|
|
45
|
-
export { createErrorInterpreter };
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
const require_entries = require("../object/entries.cjs");
|
|
2
|
-
const require_entry = require("../object/entry.cjs");
|
|
3
|
-
const require_fromEntries = require("../object/fromEntries.cjs");
|
|
4
|
-
const require_map = require("../array/map.cjs");
|
|
5
|
-
const require_forward = require("../common/forward.cjs");
|
|
6
|
-
const require_pipe = require("../common/pipe.cjs");
|
|
7
|
-
const require_uncapitalize = require("../string/uncapitalize.cjs");
|
|
8
|
-
//#region scripts/invocation/useCase.ts
|
|
9
|
-
const useCaseHandlerKind = require("./kind.cjs").createKind("use-case-handler");
|
|
10
|
-
function createUseCase(dependencies, getUseCase) {
|
|
11
|
-
return {
|
|
12
|
-
dependencies,
|
|
13
|
-
getUseCase: (injectedDependencies) => getUseCase(require_pipe.pipe(require_forward.forward(dependencies), require_entries.entries, require_map.map(([key, value]) => {
|
|
14
|
-
const formattedKey = require_uncapitalize.uncapitalize(key);
|
|
15
|
-
return require_entry.entry(formattedKey, useCaseHandlerKind.has(value) && !injectedDependencies[formattedKey] ? value.getUseCase(injectedDependencies) : injectedDependencies[formattedKey]);
|
|
16
|
-
}), require_fromEntries.fromEntries)),
|
|
17
|
-
[useCaseHandlerKind.runTimeKey]: null
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
function wireUseCases(useCases, ports) {
|
|
21
|
-
return require_pipe.pipe(useCases, require_entries.entries, require_map.map(([key, useCase]) => require_entry.entry(require_uncapitalize.uncapitalize(key), useCase.getUseCase(ports))), require_fromEntries.fromEntries);
|
|
22
|
-
}
|
|
23
|
-
//#endregion
|
|
24
|
-
exports.createUseCase = createUseCase;
|
|
25
|
-
exports.useCaseHandlerKind = useCaseHandlerKind;
|
|
26
|
-
exports.wireUseCases = wireUseCases;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { PortHandler } from './port';
|
|
2
|
-
import * as DCommon from '../common';
|
|
3
|
-
import type * as DKind from '../kind';
|
|
4
|
-
export type UseCaseDependencies = Record<string, UseCaseHandler | PortHandler>;
|
|
5
|
-
export type UseCaseDependenciesValue<GenericDependencies extends UseCaseDependencies> = DCommon.SimplifyTopLevel<{
|
|
6
|
-
[Prop in keyof GenericDependencies as Uncapitalize<Extract<Prop, string>>]: GenericDependencies[Prop] extends PortHandler ? ReturnType<GenericDependencies[Prop]["createImplementation"]> : GenericDependencies[Prop] extends UseCaseHandler ? ReturnType<GenericDependencies[Prop]["getUseCase"]> : never;
|
|
7
|
-
}>;
|
|
8
|
-
export type GetAllPorts<GenericDependenciesValue extends UseCaseDependencies> = GenericDependenciesValue extends any ? ({
|
|
9
|
-
[Prop in keyof GenericDependenciesValue]: (GenericDependenciesValue[Prop] extends PortHandler ? [
|
|
10
|
-
Uncapitalize<Extract<Prop, string>>,
|
|
11
|
-
ReturnType<GenericDependenciesValue[Prop]["createImplementation"]>
|
|
12
|
-
] : GenericDependenciesValue[Prop] extends UseCaseHandler ? GetAllPorts<GenericDependenciesValue[Prop]["dependencies"]> : never);
|
|
13
|
-
})[keyof GenericDependenciesValue] : never;
|
|
14
|
-
export declare const useCaseHandlerKind: DKind.Handler<DKind.Definition<"@DuplojsLangInvocation/use-case-handler", unknown>>;
|
|
15
|
-
export interface UseCaseHandler<GenericDependencies extends UseCaseDependencies = any, GenericUseCase extends (input: any) => any = any> extends DKind.Kind<typeof useCaseHandlerKind> {
|
|
16
|
-
dependencies: GenericDependencies;
|
|
17
|
-
getUseCase(ports: DCommon.SimplifyTopLevel<(GetAllPorts<GenericDependencies> extends infer InferredEntriesDependenciesValue extends DCommon.ObjectEntry ? {
|
|
18
|
-
[Entry in InferredEntriesDependenciesValue as Entry[0]]: Entry[1];
|
|
19
|
-
} : never) & ({
|
|
20
|
-
[Prop in keyof GenericDependencies as GenericDependencies[Prop] extends UseCaseHandler ? Uncapitalize<Extract<Prop, string>> : never]?: GenericDependencies[Prop] extends UseCaseHandler ? ReturnType<GenericDependencies[Prop]["getUseCase"]> : never;
|
|
21
|
-
})>): GenericUseCase;
|
|
22
|
-
}
|
|
23
|
-
export declare function createUseCase<const GenericDependencies extends UseCaseDependencies, GenericUseCase extends (...args: any[]) => any>(dependencies: GenericDependencies, getUseCase: (dependenciesValue: UseCaseDependenciesValue<GenericDependencies>) => GenericUseCase): UseCaseHandler<GenericDependencies, GenericUseCase>;
|
|
24
|
-
export declare function wireUseCases<GenericUseCases extends Record<string, UseCaseHandler>>(useCases: GenericUseCases, ports: DCommon.SimplifyTopLevel<DCommon.UnionToIntersection<{
|
|
25
|
-
[Prop in keyof GenericUseCases]: GetAllPorts<GenericUseCases[Prop]["dependencies"]> extends infer InferredEntriesDependenciesValue extends DCommon.ObjectEntry ? {
|
|
26
|
-
[Entry in InferredEntriesDependenciesValue as Entry[0]]: Entry[1];
|
|
27
|
-
} : never;
|
|
28
|
-
}[keyof GenericUseCases]>>): UseCaseDependenciesValue<GenericUseCases>;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { entries } from "../object/entries.mjs";
|
|
2
|
-
import { entry } from "../object/entry.mjs";
|
|
3
|
-
import { fromEntries } from "../object/fromEntries.mjs";
|
|
4
|
-
import { map } from "../array/map.mjs";
|
|
5
|
-
import { forward } from "../common/forward.mjs";
|
|
6
|
-
import { pipe } from "../common/pipe.mjs";
|
|
7
|
-
import { uncapitalize } from "../string/uncapitalize.mjs";
|
|
8
|
-
import { createKind } from "./kind.mjs";
|
|
9
|
-
//#region scripts/invocation/useCase.ts
|
|
10
|
-
const useCaseHandlerKind = createKind("use-case-handler");
|
|
11
|
-
function createUseCase(dependencies, getUseCase) {
|
|
12
|
-
return {
|
|
13
|
-
dependencies,
|
|
14
|
-
getUseCase: (injectedDependencies) => getUseCase(pipe(forward(dependencies), entries, map(([key, value]) => {
|
|
15
|
-
const formattedKey = uncapitalize(key);
|
|
16
|
-
return entry(formattedKey, useCaseHandlerKind.has(value) && !injectedDependencies[formattedKey] ? value.getUseCase(injectedDependencies) : injectedDependencies[formattedKey]);
|
|
17
|
-
}), fromEntries)),
|
|
18
|
-
[useCaseHandlerKind.runTimeKey]: null
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
function wireUseCases(useCases, ports) {
|
|
22
|
-
return pipe(useCases, entries, map(([key, useCase]) => entry(uncapitalize(key), useCase.getUseCase(ports))), fromEntries);
|
|
23
|
-
}
|
|
24
|
-
//#endregion
|
|
25
|
-
export { createUseCase, useCaseHandlerKind, wireUseCases };
|
/package/{README.md → README}
RENAMED
|
File without changes
|