@thisisagile/easy 18.13.0 → 18.14.0
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/{chunk-NWUALPMB.mjs → chunk-255VBKTY.mjs} +2 -2
- package/dist/{chunk-3HEPK3TC.mjs → chunk-2A2VVRKY.mjs} +2 -2
- package/dist/{chunk-HWR7EEVI.mjs → chunk-2YLKDL3N.mjs} +3 -3
- package/dist/{chunk-WJGWSFCJ.mjs → chunk-3MEMRALH.mjs} +3 -3
- package/dist/{chunk-SATFIUWH.mjs → chunk-3ZE2G4HB.mjs} +2 -2
- package/dist/{chunk-MH4VLBIT.mjs → chunk-5MBUYLFK.mjs} +4 -4
- package/dist/{chunk-AHSUQCHS.mjs → chunk-62BBBQYU.mjs} +4 -4
- package/dist/{chunk-CB3LF3XW.mjs → chunk-7SFPVYRU.mjs} +5 -5
- package/dist/{chunk-5LVVM522.mjs → chunk-CF4JGPMH.mjs} +7 -7
- package/dist/{chunk-DMOWSGD3.mjs → chunk-CJSI5MAE.mjs} +2 -2
- package/dist/{chunk-4SO7UI5S.mjs → chunk-CMLKFSSN.mjs} +2 -2
- package/dist/{chunk-UIL3XRCV.mjs → chunk-F2Q6WJQX.mjs} +3 -3
- package/dist/{chunk-F2W64HKC.mjs → chunk-FBCVFM4R.mjs} +2 -2
- package/dist/{chunk-M6I5JHJC.mjs → chunk-FL6A4QWU.mjs} +2 -2
- package/dist/{chunk-PFLWEHXS.mjs → chunk-FLNCIKYW.mjs} +2 -2
- package/dist/{chunk-NTK2UCHO.mjs → chunk-HLOV3PMY.mjs} +5 -5
- package/dist/{chunk-HI4ZNU6Z.mjs → chunk-IDWBCCDW.mjs} +2 -2
- package/dist/{chunk-NOZLL54Z.mjs → chunk-IN65OZB4.mjs} +2 -2
- package/dist/{chunk-W3LNVDFV.mjs → chunk-IRNBNWCM.mjs} +2 -2
- package/dist/{chunk-P2ZMGAQP.mjs → chunk-K2HJJNJP.mjs} +2 -2
- package/dist/{chunk-6I4ZNNVM.mjs → chunk-KLGORPEU.mjs} +2 -2
- package/dist/{chunk-D5U4D63E.mjs → chunk-L3VPYEDN.mjs} +4 -4
- package/dist/{chunk-7VJ3E3GP.mjs → chunk-MCRJNXS2.mjs} +2 -2
- package/dist/{chunk-Z37TBPTK.mjs → chunk-NPXVRI7V.mjs} +2 -2
- package/dist/{chunk-OLL5B5NN.mjs → chunk-NS5U2ZJ2.mjs} +3 -3
- package/dist/{chunk-T773NDGK.mjs → chunk-OLRXTHEG.mjs} +2 -2
- package/dist/{chunk-23ZFESSO.mjs → chunk-QX4UPTRI.mjs} +3 -3
- package/dist/{chunk-BS5KUNX2.mjs → chunk-ROXEHSW3.mjs} +791 -787
- package/dist/chunk-ROXEHSW3.mjs.map +1 -0
- package/dist/{chunk-T7YVWWJF.mjs → chunk-SW5UXAUU.mjs} +4 -4
- package/dist/{chunk-S5J3TYAZ.mjs → chunk-U7LVNVLH.mjs} +3 -3
- package/dist/{chunk-EPCIQ4J3.mjs → chunk-UIGXOZBD.mjs} +2 -2
- package/dist/{chunk-QMIBOIAF.mjs → chunk-VEHGATCM.mjs} +2 -2
- package/dist/{chunk-3JALCI3D.mjs → chunk-VIBUGFSC.mjs} +3 -3
- package/dist/{chunk-NL464DQQ.mjs → chunk-VNGHCDPU.mjs} +3 -3
- package/dist/{chunk-TN6LYAFX.mjs → chunk-ZWLHFGMK.mjs} +2 -2
- package/dist/data/Condition.mjs +3 -3
- package/dist/data/Database.mjs +2 -2
- package/dist/data/Field.mjs +3 -3
- package/dist/data/InMemoryGateway.mjs +3 -3
- package/dist/domain/Audit.mjs +7 -7
- package/dist/domain/Child.mjs +4 -4
- package/dist/domain/DateTime.mjs +3 -3
- package/dist/domain/Entity.mjs +9 -9
- package/dist/domain/Repo.mjs +3 -3
- package/dist/domain/Struct.mjs +3 -3
- package/dist/domain/Typo.mjs +3 -3
- package/dist/http/CacheControl.mjs +3 -3
- package/dist/http/ContentType.mjs +2 -2
- package/dist/http/HttpStatus.mjs +2 -2
- package/dist/http/HttpVerb.mjs +2 -2
- package/dist/http/LocalRequestStore.mjs +1 -1
- package/dist/http/RequestOptions.mjs +3 -3
- package/dist/http/RestResult.mjs +3 -3
- package/dist/http/toResponse.mjs +4 -4
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/process/App.mjs +2 -2
- package/dist/process/Manage.mjs +3 -3
- package/dist/process/Scope.mjs +2 -2
- package/dist/process/Search.mjs +3 -3
- package/dist/process/UseCase.mjs +1 -1
- package/dist/resources/Req.mjs +2 -2
- package/dist/services/Api.mjs +11 -11
- package/dist/services/ApiGateway.mjs +14 -14
- package/dist/services/AxiosProvider.mjs +9 -9
- package/dist/services/MappedRouteGateway.mjs +18 -18
- package/dist/services/RouteGateway.mjs +15 -15
- package/dist/services/ViewRouteGateway.mjs +17 -17
- package/dist/sql/Column.mjs +2 -2
- package/dist/sql/Count.mjs +4 -4
- package/dist/sql/Delete.mjs +3 -3
- package/dist/sql/Insert.mjs +3 -3
- package/dist/sql/Select.mjs +3 -3
- package/dist/sql/SqlQuery.mjs +2 -2
- package/dist/sql/Table.mjs +14 -14
- package/dist/sql/TableGateway.mjs +3 -3
- package/dist/sql/Update.mjs +3 -3
- package/dist/types/Cache.mjs +1 -1
- package/dist/types/CacheAge.mjs +3 -3
- package/dist/types/Case.mjs +1 -1
- package/dist/types/Context.mjs +1 -1
- package/dist/types/Enum.mjs +1 -1
- package/dist/types/Environment.mjs +1 -1
- package/dist/types/ErrorOrigin.mjs +1 -1
- package/dist/types/Exception.mjs +1 -1
- package/dist/types/Gateway.mjs +2 -2
- package/dist/types/IsEqual.mjs +1 -1
- package/dist/types/Json.mjs +2 -2
- package/dist/types/List.mjs +1 -1
- package/dist/types/Meta.mjs +1 -1
- package/dist/types/Number.mjs +2 -2
- package/dist/types/Object.mjs +1 -1
- package/dist/types/PageList.mjs +2 -2
- package/dist/types/Parser.mjs +1 -1
- package/dist/types/Repository.mjs +2 -2
- package/dist/types/Result.mjs +1 -1
- package/dist/types/Results.mjs +1 -1
- package/dist/types/Tag.mjs +1 -1
- package/dist/types/Template.mjs +1 -1
- package/dist/types/ToText.mjs +1 -1
- package/dist/types/Try.mjs +1 -1
- package/dist/types/Uri.mjs +1 -1
- package/dist/utils/If.d.ts +3 -0
- package/dist/utils/If.mjs +3 -1
- package/dist/utils/Mapper.mjs +3 -3
- package/dist/utils/Period.mjs +3 -3
- package/dist/utils/Promise.mjs +1 -1
- package/dist/utils/Seconds.mjs +2 -2
- package/dist/utils/Sentence.mjs +1 -1
- package/dist/utils/View.mjs +4 -4
- package/dist/validation/Contraints.mjs +2 -2
- package/dist/validation/Validate.mjs +1 -1
- package/dist/validation/When.mjs +1 -1
- package/package.json +1 -1
- package/src/utils/If.ts +8 -1
- package/dist/chunk-BS5KUNX2.mjs.map +0 -1
- /package/dist/{chunk-NWUALPMB.mjs.map → chunk-255VBKTY.mjs.map} +0 -0
- /package/dist/{chunk-3HEPK3TC.mjs.map → chunk-2A2VVRKY.mjs.map} +0 -0
- /package/dist/{chunk-HWR7EEVI.mjs.map → chunk-2YLKDL3N.mjs.map} +0 -0
- /package/dist/{chunk-WJGWSFCJ.mjs.map → chunk-3MEMRALH.mjs.map} +0 -0
- /package/dist/{chunk-SATFIUWH.mjs.map → chunk-3ZE2G4HB.mjs.map} +0 -0
- /package/dist/{chunk-MH4VLBIT.mjs.map → chunk-5MBUYLFK.mjs.map} +0 -0
- /package/dist/{chunk-AHSUQCHS.mjs.map → chunk-62BBBQYU.mjs.map} +0 -0
- /package/dist/{chunk-CB3LF3XW.mjs.map → chunk-7SFPVYRU.mjs.map} +0 -0
- /package/dist/{chunk-5LVVM522.mjs.map → chunk-CF4JGPMH.mjs.map} +0 -0
- /package/dist/{chunk-DMOWSGD3.mjs.map → chunk-CJSI5MAE.mjs.map} +0 -0
- /package/dist/{chunk-4SO7UI5S.mjs.map → chunk-CMLKFSSN.mjs.map} +0 -0
- /package/dist/{chunk-UIL3XRCV.mjs.map → chunk-F2Q6WJQX.mjs.map} +0 -0
- /package/dist/{chunk-F2W64HKC.mjs.map → chunk-FBCVFM4R.mjs.map} +0 -0
- /package/dist/{chunk-M6I5JHJC.mjs.map → chunk-FL6A4QWU.mjs.map} +0 -0
- /package/dist/{chunk-PFLWEHXS.mjs.map → chunk-FLNCIKYW.mjs.map} +0 -0
- /package/dist/{chunk-NTK2UCHO.mjs.map → chunk-HLOV3PMY.mjs.map} +0 -0
- /package/dist/{chunk-HI4ZNU6Z.mjs.map → chunk-IDWBCCDW.mjs.map} +0 -0
- /package/dist/{chunk-NOZLL54Z.mjs.map → chunk-IN65OZB4.mjs.map} +0 -0
- /package/dist/{chunk-W3LNVDFV.mjs.map → chunk-IRNBNWCM.mjs.map} +0 -0
- /package/dist/{chunk-P2ZMGAQP.mjs.map → chunk-K2HJJNJP.mjs.map} +0 -0
- /package/dist/{chunk-6I4ZNNVM.mjs.map → chunk-KLGORPEU.mjs.map} +0 -0
- /package/dist/{chunk-D5U4D63E.mjs.map → chunk-L3VPYEDN.mjs.map} +0 -0
- /package/dist/{chunk-7VJ3E3GP.mjs.map → chunk-MCRJNXS2.mjs.map} +0 -0
- /package/dist/{chunk-Z37TBPTK.mjs.map → chunk-NPXVRI7V.mjs.map} +0 -0
- /package/dist/{chunk-OLL5B5NN.mjs.map → chunk-NS5U2ZJ2.mjs.map} +0 -0
- /package/dist/{chunk-T773NDGK.mjs.map → chunk-OLRXTHEG.mjs.map} +0 -0
- /package/dist/{chunk-23ZFESSO.mjs.map → chunk-QX4UPTRI.mjs.map} +0 -0
- /package/dist/{chunk-T7YVWWJF.mjs.map → chunk-SW5UXAUU.mjs.map} +0 -0
- /package/dist/{chunk-S5J3TYAZ.mjs.map → chunk-U7LVNVLH.mjs.map} +0 -0
- /package/dist/{chunk-EPCIQ4J3.mjs.map → chunk-UIGXOZBD.mjs.map} +0 -0
- /package/dist/{chunk-QMIBOIAF.mjs.map → chunk-VEHGATCM.mjs.map} +0 -0
- /package/dist/{chunk-3JALCI3D.mjs.map → chunk-VIBUGFSC.mjs.map} +0 -0
- /package/dist/{chunk-NL464DQQ.mjs.map → chunk-VNGHCDPU.mjs.map} +0 -0
- /package/dist/{chunk-TN6LYAFX.mjs.map → chunk-ZWLHFGMK.mjs.map} +0 -0
package/dist/types/PageList.mjs
CHANGED
|
@@ -5,8 +5,8 @@ import {
|
|
|
5
5
|
toFilter,
|
|
6
6
|
toPageList,
|
|
7
7
|
toShortFilter
|
|
8
|
-
} from "../chunk-
|
|
9
|
-
import "../chunk-
|
|
8
|
+
} from "../chunk-IDWBCCDW.mjs";
|
|
9
|
+
import "../chunk-ROXEHSW3.mjs";
|
|
10
10
|
import "../chunk-EBIF6AMC.mjs";
|
|
11
11
|
import "../chunk-KCY4RPFR.mjs";
|
|
12
12
|
import "../chunk-SSROJBD5.mjs";
|
package/dist/types/Parser.mjs
CHANGED
package/dist/types/Result.mjs
CHANGED
package/dist/types/Results.mjs
CHANGED
package/dist/types/Tag.mjs
CHANGED
package/dist/types/Template.mjs
CHANGED
package/dist/types/ToText.mjs
CHANGED
package/dist/types/Try.mjs
CHANGED
package/dist/types/Uri.mjs
CHANGED
package/dist/utils/If.d.ts
CHANGED
|
@@ -10,6 +10,9 @@ export declare function ifDefined<Out, In = unknown>(o: Optional<In>, f: Constru
|
|
|
10
10
|
export declare function ifNotEmpty<Out, In = unknown>(o: In, f: Construct<Out, NonNullable<In>>, alt: Construct<Out>): Out;
|
|
11
11
|
export declare function ifNotEmpty<Out, In = unknown>(o: In, f?: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;
|
|
12
12
|
export declare function ifNotEmpty<Out, In = unknown>(o: In, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;
|
|
13
|
+
export declare function ifEmpty<Out, In = unknown>(o: In, f: Construct<Out, NonNullable<In>>, alt: Construct<Out>): Out;
|
|
14
|
+
export declare function ifEmpty<Out, In = unknown>(o: In, f?: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;
|
|
15
|
+
export declare function ifEmpty<Out, In = unknown>(o: In, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;
|
|
13
16
|
export declare function ifEqual<Out>(one: unknown, another: unknown, f: Construct<Out>, alt: Construct<Out>): Out;
|
|
14
17
|
export declare function ifEqual<Out>(one: unknown, another: unknown, f: Construct<Out>, alt?: Construct<Out>): Optional<Out>;
|
|
15
18
|
export declare function ifEither<Out, In = unknown>(os: OneOrMore<In>, f: Construct<Out, NonNullable<In>>, alt: Construct<Out>): Out;
|
package/dist/utils/If.mjs
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ifDefined,
|
|
3
3
|
ifEither,
|
|
4
|
+
ifEmpty,
|
|
4
5
|
ifEqual,
|
|
5
6
|
ifFalse,
|
|
6
7
|
ifNotEmpty,
|
|
7
8
|
ifTrue
|
|
8
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-ROXEHSW3.mjs";
|
|
9
10
|
import "../chunk-EBIF6AMC.mjs";
|
|
10
11
|
import "../chunk-KCY4RPFR.mjs";
|
|
11
12
|
import "../chunk-SSROJBD5.mjs";
|
|
@@ -21,6 +22,7 @@ import "../chunk-4N72FQFX.mjs";
|
|
|
21
22
|
export {
|
|
22
23
|
ifDefined,
|
|
23
24
|
ifEither,
|
|
25
|
+
ifEmpty,
|
|
24
26
|
ifEqual,
|
|
25
27
|
ifFalse,
|
|
26
28
|
ifNotEmpty,
|
package/dist/utils/Mapper.mjs
CHANGED
|
@@ -2,12 +2,12 @@ import {
|
|
|
2
2
|
Mapper,
|
|
3
3
|
isMapping,
|
|
4
4
|
mappings
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-NS5U2ZJ2.mjs";
|
|
6
6
|
import "../chunk-FOVQUHHL.mjs";
|
|
7
7
|
import "../chunk-IMJHOYU3.mjs";
|
|
8
8
|
import "../chunk-MJAB7NZV.mjs";
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-K2HJJNJP.mjs";
|
|
10
|
+
import "../chunk-ROXEHSW3.mjs";
|
|
11
11
|
import "../chunk-EBIF6AMC.mjs";
|
|
12
12
|
import "../chunk-KCY4RPFR.mjs";
|
|
13
13
|
import "../chunk-SSROJBD5.mjs";
|
package/dist/utils/Period.mjs
CHANGED
|
@@ -3,12 +3,12 @@ import {
|
|
|
3
3
|
} from "../chunk-O3UNRTSC.mjs";
|
|
4
4
|
import {
|
|
5
5
|
DateTime
|
|
6
|
-
} from "../chunk-
|
|
7
|
-
import "../chunk-
|
|
6
|
+
} from "../chunk-2YLKDL3N.mjs";
|
|
7
|
+
import "../chunk-MCRJNXS2.mjs";
|
|
8
8
|
import "../chunk-ADJAEGCT.mjs";
|
|
9
9
|
import {
|
|
10
10
|
choose
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-ROXEHSW3.mjs";
|
|
12
12
|
import "../chunk-EBIF6AMC.mjs";
|
|
13
13
|
import "../chunk-KCY4RPFR.mjs";
|
|
14
14
|
import "../chunk-SSROJBD5.mjs";
|
package/dist/utils/Promise.mjs
CHANGED
package/dist/utils/Seconds.mjs
CHANGED
package/dist/utils/Sentence.mjs
CHANGED
package/dist/utils/View.mjs
CHANGED
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
toViewer,
|
|
5
5
|
view,
|
|
6
6
|
views
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-L3VPYEDN.mjs";
|
|
8
|
+
import "../chunk-IDWBCCDW.mjs";
|
|
9
|
+
import "../chunk-K2HJJNJP.mjs";
|
|
10
|
+
import "../chunk-ROXEHSW3.mjs";
|
|
11
11
|
import "../chunk-EBIF6AMC.mjs";
|
|
12
12
|
import "../chunk-KCY4RPFR.mjs";
|
|
13
13
|
import "../chunk-SSROJBD5.mjs";
|
|
@@ -18,9 +18,9 @@ import {
|
|
|
18
18
|
required,
|
|
19
19
|
rule,
|
|
20
20
|
valid
|
|
21
|
-
} from "../chunk-
|
|
21
|
+
} from "../chunk-OLRXTHEG.mjs";
|
|
22
22
|
import "../chunk-ADJAEGCT.mjs";
|
|
23
|
-
import "../chunk-
|
|
23
|
+
import "../chunk-ROXEHSW3.mjs";
|
|
24
24
|
import "../chunk-EBIF6AMC.mjs";
|
|
25
25
|
import "../chunk-KCY4RPFR.mjs";
|
|
26
26
|
import "../chunk-SSROJBD5.mjs";
|
package/dist/validation/When.mjs
CHANGED
package/package.json
CHANGED
package/src/utils/If.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isDefined, isNotEmpty, isPresent, isTrue } from '../types/Is';
|
|
1
|
+
import { isDefined, isEmpty, isNotEmpty, isPresent, isTrue } from '../types/Is';
|
|
2
2
|
import { Optional } from '../types/Types';
|
|
3
3
|
import { Construct, ofConstruct, use } from '../types/Constructor';
|
|
4
4
|
import { OneOrMore } from '../types/Array';
|
|
@@ -30,6 +30,13 @@ export function ifNotEmpty<Out, In = unknown>(o: In, f: Construct<Out, NonNullab
|
|
|
30
30
|
return isNotEmpty(o) ? ofConstruct(f, o) : ofConstruct(alt, o);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
export function ifEmpty<Out, In = unknown>(o: In, f: Construct<Out, NonNullable<In>>, alt: Construct<Out>): Out;
|
|
34
|
+
export function ifEmpty<Out, In = unknown>(o: In, f?: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;
|
|
35
|
+
export function ifEmpty<Out, In = unknown>(o: In, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;
|
|
36
|
+
export function ifEmpty<Out, In = unknown>(o: In, f: Construct<Out, NonNullable<In>> = o => o as Out, alt?: Construct<Out>): Optional<Out> {
|
|
37
|
+
return isEmpty(o) ? ofConstruct(f, o) : ofConstruct(alt, o);
|
|
38
|
+
}
|
|
39
|
+
|
|
33
40
|
export function ifEqual<Out>(one: unknown, another: unknown, f: Construct<Out>, alt: Construct<Out>): Out;
|
|
34
41
|
export function ifEqual<Out>(one: unknown, another: unknown, f: Construct<Out>, alt?: Construct<Out>): Optional<Out>;
|
|
35
42
|
export function ifEqual<Out>(one: unknown, another: unknown, f: Construct<Out>, alt?: Construct<Out>): Optional<Out> {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/Case.ts","../src/types/IsEqual.ts","../src/utils/If.ts","../src/types/List.ts","../src/types/Object.ts","../src/utils/Promise.ts","../src/types/Meta.ts","../src/types/Enum.ts","../src/types/Template.ts","../src/types/ToText.ts","../src/types/Exception.ts","../src/validation/When.ts","../src/types/Context.ts","../src/types/Result.ts","../src/types/Results.ts","../src/validation/Validate.ts","../src/types/Try.ts"],"sourcesContent":["import { Get, ofGet, Predicate } from './Get';\nimport { TypeGuard } from './TypeGuard';\nimport { Func } from './Func';\nimport { isDefined, isEmpty } from './Is';\nimport { validate } from '../validation/Validate';\nimport { tryTo } from './Try';\n\nclass CaseBuilder<V> {\n is = {\n true: <T>(pred: Predicate<V>, out: Get<T, V>): Case<T, V> => this.case(pred, out),\n false: <T>(pred: Predicate<V>, out: Get<T, V>): Case<T, V> => this.case(!ofGet(pred, this.v), out),\n truthy: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => this.case(!!prop(this.v), out),\n falsy: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => this.case(!prop(this.v), out),\n defined: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => this.case(isDefined(prop(this.v)), out),\n empty: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => this.case(isEmpty(prop(this.v)), out),\n valid: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => this.case(validate(prop(this.v)).isValid, out),\n in: <T>(prop: Get<Array<V>, V>, out: Get<T, V>): Case<T, V> => this.case(ofGet(prop, this.v).includes(this.v), out),\n type: <T, U = unknown>(guard: TypeGuard<U>, out: Func<T, U>): Case<T, V> => this.type<T, U>(guard, out),\n not: {\n true: <T>(pred: Predicate<V>, out: Get<T, V>): Case<T, V> => this.case(!ofGet(pred, this.v), out),\n false: <T>(pred: Predicate<V>, out: Get<T, V>): Case<T, V> => this.case(pred, out),\n truthy: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => this.case(!prop(this.v), out),\n falsy: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => this.case(!!prop(this.v), out),\n defined: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => this.case(!isDefined(prop(this.v)), out),\n empty: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => this.case(!isEmpty(prop(this.v)), out),\n valid: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => this.case(!validate(prop(this.v)).isValid, out),\n in: <T>(prop: Get<Array<V>, V>, out: Get<T, V>): Case<T, V> => this.case(!ofGet(prop, this.v).includes(this.v), out),\n type: <T, U = unknown>(guard: TypeGuard<U>, out: Get<T, V>): Case<T, V> => this.case(v => !guard(v as unknown), out),\n },\n };\n if = this.is;\n\n constructor(readonly v: V) {}\n\n case<T>(pred: Predicate<V>, out: Get<T, V>): Case<T, V> {\n return new Case<T, V>(this.v).case(pred, out);\n }\n\n type<T, U = unknown>(guard: TypeGuard<U>, out: Func<T, U>): Case<T, V> {\n return new Case<T, V>(this.v).type<U>(guard, out);\n }\n\n equals<T>(value: V, out: Get<T, V>): Case<T, V> {\n return new Case<T, V>(this.v).equals(value, out);\n }\n}\n\nclass Case<T, V = unknown> {\n is = {\n true: (pred: Predicate<V>, out: Get<T, V>): Case<T, V> => this.case(pred, out),\n false: (pred: Predicate<V>, out: Get<T, V>): Case<T, V> => this.case(!ofGet(pred, this.value), out),\n truthy: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => this.case(!!prop(this.value), out),\n falsy: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => this.case(!prop(this.value), out),\n defined: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => this.case(isDefined(prop(this.value)), out),\n empty: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => this.case(isEmpty(prop(this.value)), out),\n valid: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => this.case(validate(prop(this.value)).isValid, out),\n in: (prop: Get<Array<V>, V>, out: Get<T, V>): Case<T, V> => this.case(ofGet(prop, this.value).includes(this.value), out),\n type: <U>(guard: TypeGuard<U>, out: Func<T, U>): Case<T, V> => this.type<U>(guard, out),\n not: {\n true: (pred: Predicate<V>, out: Get<T, V>): Case<T, V> => this.case(!ofGet(pred, this.value), out),\n false: (pred: Predicate<V>, out: Get<T, V>): Case<T, V> => this.case(pred, out),\n truthy: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => this.case(!prop(this.value), out),\n falsy: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => this.case(!!prop(this.value), out),\n defined: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => this.case(!isDefined(prop(this.value)), out),\n empty: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => this.case(!isEmpty(prop(this.value)), out),\n valid: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => this.case(!validate(prop(this.value)).isValid, out),\n in: (prop: Get<Array<V>, V>, out: Get<T, V>): Case<T, V> => this.case(!ofGet(prop, this.value).includes(this.value), out),\n type: <U>(guard: TypeGuard<U>, out: Get<T, V>): Case<T, V> => this.case(v => !guard(v as unknown), out),\n },\n };\n if = this.is;\n\n constructor(\n protected value: V,\n protected outcome?: T\n ) {}\n\n case(pred: Predicate<V>, out: Get<T, V>): Case<T, V> {\n return tryTo(pred, this.value)\n .is.true()\n .map(() => ofGet(out, this.value))\n .map(res => new Found(this.value, res) as Case<T, V>)\n .or(this);\n }\n\n type<U>(guard: TypeGuard<U>, out: Func<T, U>): Case<T, V> {\n return tryTo(guard, this.value)\n .is.true()\n .map(() => out(this.value as unknown as U))\n .map(res => new Found(this.value, res) as Case<T, V>)\n .or(this);\n }\n\n equals(value: V, out: Get<T, V>): Case<T, V> {\n return this.case(this.value === value, out);\n }\n\n else(alt: Get<T, V>): T {\n return ofGet<T, V>(alt, this.value);\n }\n}\n\nclass Found<T, V> extends Case<T, V> {\n constructor(\n protected value: V,\n protected outcome: T\n ) {\n super(value, outcome);\n }\n\n case(pred: Predicate<V>, out: Get<T, V>): this {\n return this;\n }\n\n type<U>(guard: TypeGuard<U>, out: Func<T, U>): Case<T, V> {\n return this;\n }\n\n equals(value: V, out: Get<T, V>): Case<T, V> {\n return this;\n }\n\n else(alt: Get<T, V>): T {\n return this.outcome;\n }\n}\n\nexport const choose = <V>(value: V) => new CaseBuilder<V>(value);\n","import { isArray, isObject } from './Is';\nimport { choose } from './Case';\n\nconst isEqualArray = (one: unknown[], another: unknown[]): boolean =>\n choose([one, another])\n .case(([o, a]) => !isArray(o) || !isArray(a), false)\n .case(([o, a]) => o?.length !== a?.length, false)\n .else(([o, a]) => !o.some((v, i) => !isEqual(v, a[i])));\n\nconst isEqualObject = (one: any, another: any): boolean =>\n choose([Object.keys(one), Object.keys(another)])\n .case(([keysO, keysA]) => keysO.length !== keysA.length, false)\n .case(([keysO, keysA]) => keysO.some(k => !keysA.includes(k)), false)\n .case(([keysO]) => keysO.some(k => !isEqual(one[k], another[k])), false)\n .else(true);\n\nexport const isEqual = (one?: unknown, another?: unknown): boolean =>\n choose([one, another])\n .case(([o, a]) => o === a, true)\n .case(\n ([o, a]) => isArray(o) || isArray(a),\n ([o, a]) => isEqualArray(o as [], a as [])\n )\n .case(\n ([o, a]) => o == null || a == null || (!isObject(o) && !isObject(a)),\n ([o, a]) => o !== o && a !== a\n )\n .else(([o, a]) => isEqualObject(o, a));\n","import { isDefined, isNotEmpty, isPresent, isTrue } from '../types/Is';\nimport { Optional } from '../types/Types';\nimport { Construct, ofConstruct, use } from '../types/Constructor';\nimport { OneOrMore } from '../types/Array';\nimport { toList } from '../types/List';\nimport { isEqual } from '../types/IsEqual';\n\nexport function ifTrue<Out, In = unknown>(o: unknown, f: Construct<Out, NonNullable<In>>, alt: Construct<Out>): Out;\nexport function ifTrue<Out, In = unknown>(o: unknown, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;\nexport function ifTrue<Out, In = unknown>(o: unknown, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out> {\n return isTrue(o) ? ofConstruct(f, o) : ofConstruct(alt, o);\n}\n\nexport function ifFalse<Out, In = unknown>(o: unknown, f: Construct<Out, NonNullable<In>>, alt: Construct<Out>): Out;\nexport function ifFalse<Out, In = unknown>(o: unknown, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;\nexport function ifFalse<Out, In = unknown>(o: unknown, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out> {\n return !isTrue(o) ? ofConstruct(f, o) : ofConstruct(alt, o);\n}\n\nexport function ifDefined<Out, In = unknown>(o: Optional<In>, f: Construct<Out, NonNullable<In>>, alt: Construct<Out>): Out;\nexport function ifDefined<Out, In = unknown>(o: Optional<In>, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;\nexport function ifDefined<Out, In = unknown>(o: Optional<In>, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out> {\n return isDefined(o) ? ofConstruct(f, o) : ofConstruct(alt);\n}\n\nexport function ifNotEmpty<Out, In = unknown>(o: In, f: Construct<Out, NonNullable<In>>, alt: Construct<Out>): Out;\nexport function ifNotEmpty<Out, In = unknown>(o: In, f?: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;\nexport function ifNotEmpty<Out, In = unknown>(o: In, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;\nexport function ifNotEmpty<Out, In = unknown>(o: In, f: Construct<Out, NonNullable<In>> = o => o as Out, alt?: Construct<Out>): Optional<Out> {\n return isNotEmpty(o) ? ofConstruct(f, o) : ofConstruct(alt, o);\n}\n\nexport function ifEqual<Out>(one: unknown, another: unknown, f: Construct<Out>, alt: Construct<Out>): Out;\nexport function ifEqual<Out>(one: unknown, another: unknown, f: Construct<Out>, alt?: Construct<Out>): Optional<Out>;\nexport function ifEqual<Out>(one: unknown, another: unknown, f: Construct<Out>, alt?: Construct<Out>): Optional<Out> {\n return isEqual(one, another) ? ofConstruct(f) : ofConstruct(alt);\n}\n\nexport function ifEither<Out, In = unknown>(os: OneOrMore<In>, f: Construct<Out, NonNullable<In>>, alt: Construct<Out>): Out;\nexport function ifEither<Out, In = unknown>(os: OneOrMore<In>, f?: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;\nexport function ifEither<Out, In = unknown>(os: OneOrMore<In>, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;\nexport function ifEither<Out, In = unknown>(os: OneOrMore<In>, f: Construct<Out, NonNullable<In>> = o => o as Out, alt?: Construct<Out>): Optional<Out> {\n return use(\n toList(os).first(o => isPresent(o)),\n o => (isDefined(o) ? ofConstruct(f, o) : ofConstruct(alt, o))\n );\n}\n","import { ArrayLike, toArray } from './Array';\nimport { Constructor, on, use } from './Constructor';\nimport type { Json } from './Json';\nimport { isArray, isDefined, isEmpty } from './Is';\nimport { isA } from './IsA';\nimport { Get, GetProperty, ofGet, ofProperty } from './Get';\nimport type { Id } from './Id';\nimport { equals } from './Text';\nimport { Optional } from './Types';\nimport { ifDefined, ifTrue } from '../utils/If';\nimport { AnyKey } from './AnyKey';\nimport { traverse } from '../utils/Traverse';\nimport { Indexed } from './Indexed';\n\ntype Pred<T> = (value: T, index: number, obj: T[]) => unknown;\n\nexport class List<T = unknown> extends Array<T> {\n get ids(): List<Id> {\n return this.mapDefined(i => (i as any).id as Id);\n }\n\n get indexed(): List<Indexed<T>> {\n return this.map((v, index) => ({ ...v, index }));\n }\n\n isSubSetOf(...items: ArrayLike<T>): boolean {\n return this.diff(items).length === 0;\n }\n\n isSuperSetOf(...items: ArrayLike<T>): boolean {\n return this.length > items.length && toList(...items).isSubSetOf(...this);\n }\n\n isIntersectingWith(...items: ArrayLike<T>): boolean {\n return this.intersect(items).length > 0;\n }\n\n isDisjointWith(...items: ArrayLike<T>): boolean {\n return !this.isIntersectingWith(...items);\n }\n\n areEqual(...items: ArrayLike<T>): boolean {\n return this.isSubSetOf(...items) && toList(...items).isSubSetOf(...this);\n }\n\n asc(p: GetProperty<T, any>): List<T> {\n return toList<T>(...this).sort((e1, e2) => (ofProperty(e1, p) > ofProperty(e2, p) ? 1 : -1));\n }\n\n desc(p: GetProperty<T, any>): List<T> {\n return toList<T>(...this).sort((e1, e2) => (ofProperty(e1, p) < ofProperty(e2, p) ? 1 : -1));\n }\n\n first(p?: Pred<T>, params?: unknown): T {\n return (p ? this.find(p, params) : this[0]) as T;\n }\n\n firstValue<V>(f: (t: T) => V, alt?: Get<V, T>): Optional<V> {\n return ifDefined(\n this.first(t => !!f(t)),\n f,\n v => ofGet(alt, v)\n );\n }\n\n isFirst(value: T): boolean {\n return value === this.first();\n }\n\n next(p?: Pred<T>, params?: unknown): T {\n return p ? this[this.findIndex(p, params) + 1] : this[0];\n }\n\n prev(p?: Pred<T>, params?: unknown): T {\n return p ? this[this.findIndex(p, params) - 1] : this[0];\n }\n\n last(p?: Pred<T>, params?: unknown): T {\n return p ? this.filter(p, params).last() : this[this.length - 1];\n }\n\n isLast(value: T): boolean {\n return value === this.last();\n }\n\n overlaps(...items: ArrayLike<T>): boolean {\n return toList<T>(...items).some(i => this.some(t => i === t));\n }\n\n diff(others: ArrayLike<T>): List<T> {\n return this.filter(i => !others.includes(i));\n }\n\n diffByKey<U = T>(others: ArrayLike<U>, key: keyof T & keyof U): List<T> {\n return this.filter((i: any) => !others.some((o: any) => o[key] === i[key]));\n }\n\n symmetricDiff(others: ArrayLike<T>): List<T> {\n return this.diff(others).concat(toList<T>(...others).diff(this));\n }\n\n symmetricDiffByKey(others: ArrayLike<T>, key: keyof T): List<T> {\n return this.diffByKey(others, key).concat(toList<T>(...others).diffByKey(this, key));\n }\n\n intersect(others: ArrayLike<T>): List<T> {\n return this.filter(i => others.includes(i));\n }\n\n intersectByKey<U>(others: ArrayLike<U>, key: keyof T & keyof U): List<T> {\n return this.filter((i: any) => others.some((o: any) => o[key] === i[key]));\n }\n\n intersectBy<U>(others: ArrayLike<U>, f: (value: T, value2: U) => boolean): List<T> {\n return this.filter(i => others.some(o => f(i, o as U)));\n }\n\n accumulate(...keys: (keyof T)[]): List<T> {\n return this.map((d, i, arr) => {\n const acc = keys.reduce((acc, v) => {\n (acc as any)[v] = i === 0 ? d[v] : (arr[i - 1][v] as number) + (d[v] as number);\n return acc;\n }, d);\n arr[i] = acc;\n return acc;\n });\n }\n\n toJSON(): Json[] {\n return this.reduce((a, i) => {\n a.push(JSON.parse(JSON.stringify(i ?? {})));\n return a;\n }, new Array<Json>());\n }\n\n map<U>(f: (value: T, index: number, array: T[]) => U, params?: unknown): List<U> {\n return toList<U>(super.map(f, params));\n }\n\n flatMap<U, This = unknown>(f: (this: This, value: T, index: number, array: T[]) => ReadonlyArray<U> | U, params?: This): List<U> {\n return toList<U>(super.flatMap(f, params));\n }\n\n mapDefined<U>(f: (value: T, index: number, array: T[]) => U, params?: unknown): List<NonNullable<U>> {\n return this.map(f, params).defined();\n }\n\n mapAsync<U = T>(f: (i: T) => Promise<U>): Promise<List<U>> {\n return Promise.all(super.map(e => f(e))).then(a => toList<U>(a));\n }\n\n mapSerial<U>(f: (i: T) => Promise<U>): Promise<List<U>> {\n return super.reduce((p, item) => p.then(results => on(results, async r => r.push(await f(item)))), Promise.resolve(toList<U>()));\n }\n\n distinct(): List<T> {\n return this.filter((i, index) => this.indexOf(i) === index);\n }\n\n distinctByKey(key: keyof T): List<T> {\n const seen = new Set<T[keyof T]>();\n return this.filter(item => !seen.has(item[key]) && seen.add(item[key]));\n }\n\n distinctByValue(): List<T> {\n const seen = new Set<string>();\n return this.filter(item => !seen.has(JSON.stringify(item)) && seen.add(JSON.stringify(item)));\n }\n\n filter(p: Pred<T>, params?: unknown): List<T> {\n return toList<T>(super.filter(p, params));\n }\n\n sum(p: (t: T) => number): number {\n return this.reduce((sum: number, i) => sum + p(i), 0);\n }\n\n max(p: (value: T) => any): T;\n\n max(key: keyof T): T;\n\n max(p: keyof T | ((value: T) => any)): T {\n return this.desc(p).first();\n }\n\n min(key: keyof T): T;\n\n min(p: (value: T) => any): T;\n\n min(p: keyof T | ((value: T) => any)): T {\n return this.asc(p).first();\n }\n\n byId(id: Id): T {\n return this.first(i => equals((i as any).id, id));\n }\n\n byKey(key: keyof T, value: unknown): T {\n return this.first(i => i[key] == value);\n }\n\n add(...items: ArrayLike<T>): this {\n super.push(...toArray(...items));\n return this;\n }\n\n concat(...items: ConcatArray<T>[]): List<T>;\n\n concat(...items: (T | ConcatArray<T>)[]): List<T>;\n\n concat(...items: (T | ConcatArray<T>)[]): List<T> {\n return toList<T>(super.concat(...items));\n }\n\n reverse(): List<T> {\n return toList<T>(super.reverse());\n }\n\n splice(start: number, deleteCount?: number): List<T>;\n\n splice(start: number, deleteCount: number, ...items: T[]): List<T>;\n\n splice(start: number, deleteCount: number, ...items: T[]): List<T> {\n return toList<T>(super.splice(start, deleteCount, ...items));\n }\n\n remove(item: T): List<T> {\n const index = this.indexOf(item);\n if (index > -1) {\n this.splice(index, 1);\n }\n return this;\n }\n\n move(sourceId: Id, destinationId: Id): List<T> {\n return this.moveOn('id' as keyof T, sourceId, destinationId);\n }\n\n moveOn(key: keyof T, sourceId: Id, destinationId: Id): List<T> {\n const source = this.findIndex(i => equals(i[key], sourceId));\n const dest = this.findIndex(i => equals(i[key], destinationId));\n return on(toList<T>(...this), r => r.splice(dest, 0, ...r.splice(source, 1)));\n }\n\n replace(key: keyof T, item: T): List<T> {\n const index = this.findIndex(i => i[key] === item?.[key]);\n ifTrue(index != -1, () => this.splice(index, 1, item));\n return this;\n }\n\n switch(item: T): List<T> {\n return this.includes(item) ? this.remove(item) : this.add(item);\n }\n\n switchOn<U = T>(item: U, on: AnyKey<U>): List<T>;\n\n switchOn<T>(item: T, on: Pred<T>): List<T>;\n\n switchOn<U = T>(item: T, on: AnyKey<U> | Pred<T>): List<T> {\n return use(typeof on === 'function' ? this.find(on) : use(traverse(item, on), v => this.find(i => traverse(i, on) === v)), i =>\n i ? this.remove(i) : this.add(item)\n );\n }\n\n defined(): List<NonNullable<T>> {\n return this.reduce((l, v) => (isDefined(v) ? l.add(v) : l), toList<NonNullable<T>>());\n }\n\n toObject(key: keyof T, options: { deleteKey?: boolean } = {}): Record<string | number | symbol, T> {\n return this.reduce((o: any, i) => {\n o[i[key]] = i;\n if (options.deleteKey) delete o[i[key]][key];\n return o;\n }, {});\n }\n\n toObjectList(key: keyof T): Record<string | number | symbol, List<T>> {\n return this.reduce(\n (a, t) => {\n const k = t[key] as unknown as string | number | symbol;\n a[k] = a[k] ?? toList();\n a[k].push(t);\n return a;\n },\n {} as Record<string | number | symbol, List<T>>\n );\n }\n\n orElse(...alt: ArrayLike<T>): Optional<List<T>> {\n return !isEmpty(this) ? this : !isEmpty(...alt) ? toList<T>(...alt) : undefined;\n }\n\n weave(insertFrom: T[], interval: number): this {\n for (let i = interval, n = 0; i <= this.length && n < insertFrom.length; i += interval + 1) {\n this.splice(i, 0, insertFrom[n++]);\n }\n return this;\n }\n\n slice(start?: number, end?: number): List<T> {\n return toList(super.slice(start, end));\n }\n\n none(p: (t: T) => boolean): boolean {\n return !this.some(p);\n }\n\n chunk(chunkSize: number): List<List<T>> {\n return this.reduce((acc, _, index) => (index % chunkSize === 0 ? on(acc, a => a.push(this.slice(index, index + chunkSize))) : acc), toList<List<T>>());\n }\n\n //we needed to add U because of a Typescript issue with generics\n update<U = T>(p: Pred<T>, val: T | ((v: U) => T)): List<T> {\n return this.map((v, i, a) => (p(v, i, a) ? ofGet<T>(val, v, i, a) : v));\n }\n\n updateFirst<U = T>(p: Pred<T>, val: T | ((v: U) => T)) {\n const index = this.findIndex(p);\n return this.update((t, i) => p(t, i, this) && i == index, val);\n }\n\n updateFirstById<U = T>(id: Id, val: T | ((v: U) => T)) {\n return this.updateFirst(i => equals((i as any)?.id, id), val);\n }\n\n updateById<U = T>(id: Id, val: T | ((v: U) => T)) {\n return this.update(i => equals((i as any)?.id, id), val);\n }\n\n groupBy(by: Pred<T>): List<List<T>> {\n return toList(\n Array.from(this.reduce((m, v, i, a) => use(by(v, i, a), key => m.set(key, (m.get(key) ?? toList<T>()).add(v))), new Map<unknown, List<T>>()).values())\n );\n }\n}\n\nexport const toList = <T = unknown>(...items: ArrayLike<T>): List<T> => new List<T>().add(...items);\n\nexport const isList = <T>(l?: unknown): l is List<T> => isDefined(l) && isArray(l) && isA<List<T>>(l, 'first', 'last', 'asc', 'desc');\n\nexport const asList = <T>(c: Constructor<T>, items: unknown = []): List<T> => toList<T>(toArray(items).map(i => new c(i)));\n\nexport const maxValue = <T>(l: List<T>, key: keyof T): T[keyof T] | undefined => l.desc(key).first()?.[key];\n\nexport const minValue = <T>(l: List<T>, key: keyof T): T[keyof T] | undefined => l.asc(key).first()?.[key];\n","import { List, toList } from './List';\nimport { ifDefined } from '../utils/If';\n\nexport type Entry<T = unknown> = [key: string, value: T];\n\nexport function entries<T = unknown>(subject: { [p: string]: T } | ArrayLike<T>): List<Entry<T>> {\n return ifDefined(\n subject,\n () => toList<Entry<T>>([...Object.entries(subject), ...Object.entries(Object.getPrototypeOf(subject) ?? {})] as Entry<T>[]),\n () => toList<Entry<T>>()\n );\n}\n\nexport function values<T = unknown>(subject: { [p: string]: T } | ArrayLike<T>): List<T> {\n return toList([...Object.values<T>(subject), ...Object.values<T>(Object.getPrototypeOf(subject) ?? {})]);\n}\n\nexport function keys<T = unknown>(subject: { [p: string]: T } | ArrayLike<T>): List<string> {\n return toList([...Object.keys(subject), ...Object.keys(Object.getPrototypeOf(subject) ?? {})]);\n}\n\nexport function extractKeys<T extends Record<string | number, unknown>, K extends keyof T>(\n obj: T,\n keys: K[] | readonly (keyof T)[]\n): {\n keys: Pick<T, K>;\n} & Omit<T, K> {\n return keys\n .filter((k): k is K => k in obj)\n .reduce(\n (acc, key) => {\n (acc.keys as T)[key] = obj[key];\n delete acc[key];\n return acc;\n },\n { keys: {} as Pick<T, K>, ...obj }\n );\n}\n","import { toArray } from '../types/Array';\nimport { ErrorOrigin } from '../types/ErrorOrigin';\nimport { List, toList } from '../types/List';\nimport { asString } from '../types/Text';\nimport { on, use } from '../types/Constructor';\nimport { keys, values } from '../types/Object';\n\ntype Pro<A> = A | PromiseLike<A>;\ntype Aw<A> = Awaited<A>;\n\nexport const resolve = <S = unknown>(subject: S | PromiseLike<S>): Promise<S> => Promise.resolve(subject);\nexport const reject = <S = never>(e: ErrorOrigin): Promise<S> => Promise.reject(e);\n\nexport const tuple = {\n 2: <F, S>(first: Pro<F>, second: Pro<S>): Promise<[Aw<F>, Aw<S>]> => Promise.all([first, second]),\n 3: <F, S, T>(first: Pro<F>, second: Pro<S>, third: Pro<T>): Promise<[Aw<F>, Aw<S>, Aw<T>]> => Promise.all([first, second, third]),\n 4: <F, S, T, Fo>(first: Pro<F>, second: Pro<S>, third: Pro<T>, forth: Pro<Fo>): Promise<[Aw<F>, Aw<S>, Aw<T>, Aw<Fo>]> =>\n Promise.all([first, second, third, forth]),\n 5: <F, S, T, Fo, Fi>(first: Pro<F>, second: Pro<S>, third: Pro<T>, forth: Pro<Fo>, fifth: Pro<Fi>): Promise<[Aw<F>, Aw<S>, Aw<T>, Aw<Fo>, Aw<Fi>]> =>\n Promise.all([first, second, third, forth, fifth]),\n all: <F, S>(first: Pro<F>, second: Pro<S>[]): Promise<[Aw<F>, Aw<S[]>]> => Promise.all([first, Promise.all(second)]),\n spread: <F, S>(first: Pro<F>, ...second: Pro<S>[]): Promise<[Aw<F>, Aw<S[]>]> => Promise.all([first, Promise.all(toArray(second))]),\n list: <T>(list: Pro<T>[]): Promise<List<Aw<T>>> => Promise.all([...list]).then(toList),\n settled: <T>(list: Pro<T>[]): Promise<{ fulfilled: List<Aw<T>>; rejected: List<string> }> =>\n Promise.allSettled([...list]).then(rs => ({\n fulfilled: toList(...rs.filter(r => r.status === 'fulfilled').map(r => r.value)),\n rejected: toList(...rs.filter(r => r.status === 'rejected').map(r => asString(r.reason))),\n })),\n object: <T extends Record<string, unknown>>(obj: T): Promise<{ [K in keyof T]: Aw<T[K]> }> =>\n use(keys(obj), ks => tuple.list(values(obj)).then(vs => vs.reduce((acc: any, v, i) => on(acc, a => (a[ks[i]] = v)), {}) as { [K in keyof T]: Aw<T[K]> })),\n};\n\nexport const tuple2 = tuple[2];\nexport const tuple3 = tuple[3];\nexport const tuple4 = tuple[4];\nexport const tuple5 = tuple[5];\nexport const tupleO = tuple.object;\nexport const settled = tuple.settled;\n","import 'reflect-metadata';\nimport { List, toList } from './List';\nimport { isDefined } from './Is';\nimport { on, use } from './Constructor';\nimport { Optional } from './Types';\nimport { Entry, entries, values } from './Object';\n\ntype MetaParseOptions = { initial?: any; skipUndefined?: boolean };\n\nclass ClassMeta {\n constructor(\n readonly subject: any,\n private readonly data: any = (subject.prototype ?? subject).constructor\n ) {}\n\n get = <T>(key: string): T => Reflect.getMetadata(key, this.data) as T;\n\n set = <T>(key: string, value: T): T => {\n Reflect.defineMetadata(key, value, this.data);\n return value;\n };\n\n entries = <T = unknown>(): List<Entry<T>> => entries<T>(this.subject);\n\n parse = <Out, Value>(f: (v: Value) => Out, options: MetaParseOptions = {}): Record<string, Out> => {\n const { initial = {}, skipUndefined = false } = options;\n return this.entries<Value>().reduce((a, [k, val]) => use(f(val), v => (isDefined(v) || !skipUndefined ? on(a, a => (a[k] = v)) : a)), initial);\n };\n\n properties = (key?: string): List<PropertyMeta> =>\n toList([...Object.getOwnPropertyNames(this.subject), ...Object.getOwnPropertyNames(Object.getPrototypeOf(this.subject))])\n .map(p => this.property(p))\n .filter(p => (key ? p.get(key) : p));\n\n keys = <T = any>(key: string): List<T> =>\n this.properties()\n .map(p => p.get<T>(key))\n .reduce((list, u) => (u ? list.add(u) : list), toList<T>());\n\n values = <T = unknown>(): List<T> => values<T>(this.subject);\n\n property = (property: string | symbol): PropertyMeta => new PropertyMeta(this.subject, property);\n}\n\nclass PropertyMeta {\n constructor(\n readonly subject: any,\n readonly property: string | symbol,\n private readonly data = Reflect.getMetadata(property, subject)\n ) {}\n\n get value(): any {\n return this.subject[this.property];\n }\n\n get = <T>(key: string): Optional<T> => (isDefined(this.data) && isDefined(this.data[key]) ? (this.data[key] as T) : undefined);\n\n set = <T>(key: string, value: T): T => {\n Reflect.defineMetadata(this.property, { ...this.data, [key]: value }, this.subject);\n return value;\n };\n}\n\nexport const meta = (subject: unknown): ClassMeta => new ClassMeta(subject ?? {});\n","import { Id } from './Id';\nimport { List, toList } from './List';\nimport { isAn } from './IsA';\nimport { meta } from './Meta';\nimport { isDefined, isFunction } from './Is';\nimport { Validatable } from './Validatable';\nimport { JsonValue } from './Json';\nimport { Get, ofGet } from './Get';\nimport { TypeGuard } from './TypeGuard';\n\nexport type EnumConstructor<E = unknown> = {\n all<E extends Enum>(): List<E>;\n byIds<E extends Enum>(ids: Id[]): List<E>;\n byId<E extends Enum>(id: Id, alt?: Get<E, unknown>): E;\n isEnum: boolean;\n};\n\nexport const isEnumConstructor = <E = unknown>(c: unknown): c is EnumConstructor<E> => isFunction(c) && (c as any).isEnum;\n\nexport abstract class Enum implements Validatable {\n static isEnum = true;\n\n protected constructor(\n readonly name: string,\n readonly id: Id = name.toLowerCase(),\n readonly code: string = id.toString()\n ) {}\n\n get isValid(): boolean {\n return isDefined(this.id);\n }\n\n static all<E extends Enum>(): List<E> {\n return meta(this.allTuple<E>()).values<E>();\n }\n\n static filter<E extends Enum>(p: (value: E, index: number, array: E[]) => unknown, params?: unknown): List<E> {\n return this.all<E>().filter(p, params);\n }\n\n static first<E extends Enum>(p?: (value: E, index: number, array: E[]) => unknown, params?: unknown): E {\n return this.all<E>().first(p, params);\n }\n\n static byIds<E extends Enum>(ids: Id[] = []): List<E> {\n return toList(ids)\n .mapDefined(id => this.byId<E>(id))\n .distinct();\n }\n\n static byId<E extends Enum>(id: Id, alt?: Get<E, unknown>): E {\n return this.allTuple<E>()[id] ?? ofGet(alt);\n }\n\n protected static allTuple<E extends Enum>(): Record<Id, E> {\n return meta(this).get(`all-${this.name}`) ?? meta(this).set(`all-${this.name}`, meta(this).values<E>().filter(isEnum).toObject('id'));\n }\n\n equals<E extends Enum>(other: E | Id): other is E {\n return this.id === (isEnum(other) ? other.id : other);\n }\n\n isIn<E extends Enum>(...items: E[] | Id[]): boolean {\n return items.some(i => this.equals(i));\n }\n\n toJSON(): JsonValue {\n return this.id;\n }\n\n toString(): string {\n return this.id.toString();\n }\n}\n\nexport const isEnum: TypeGuard<Enum> = (e?: unknown): e is Enum => isDefined(e) && e instanceof Enum && isAn<Enum>(e, 'name', 'id', 'code');\n","import { List, toList } from './List';\nimport { asString, Text } from './Text';\nimport { toName } from './Constructor';\nimport { entries } from './Object';\nimport { text, textValue } from './ToText';\nimport { tryTo } from './Try';\n\nexport type TemplateOptions = { typeof?: Text; property?: Text; actual?: Text; subject?: Text };\n\nexport class Template implements Text {\n private knownPrefixes = new Set(['typeof', 'property', 'actual', 'subject']);\n\n constructor(\n private readonly template: string,\n private readonly subject: unknown = {},\n private readonly options: TemplateOptions = {}\n ) {}\n\n toString = (): string => {\n return entries(this.options)\n .reduce((t, [k]) => this.option(t, k), this.object())\n .replace(' ', ' ');\n };\n\n private readonly props = (tmpl: string, key: string, result: List<string> = toList()): string[] => {\n const i1 = tmpl.indexOf(`{${key}`);\n if (i1 < 0) {\n return result;\n }\n const i2 = tmpl.indexOf('}', i1);\n return this.props(tmpl.slice(i2 + 1), key, result.add(tmpl.substring(i1 + 1, i2)));\n };\n\n private readonly object = (): string =>\n tryTo(() => this.template.replace(/\\{this\\./g, '{'))\n .map(t => t.replace(/\\{([^{}]+)}/g, (match, p) => (this.knownPrefixes.has(p.split('.')[0]) ? match : textValue(this.subject, p))))\n .or('');\n\n private readonly option = (tmpl: string, prop: string): string => {\n return this.props(tmpl, prop).reduce((t: string, p) => t.replace(`{${p}}`, textValue(this.options, p)), tmpl);\n };\n}\n\nexport function template(tmpl: Text, subject: unknown, options: TemplateOptions = {}): Text {\n return new Template(asString(tmpl), subject, {\n typeof: toName(subject),\n subject: text(JSON.stringify(subject)),\n ...options,\n });\n}\n","import { asString, capitalize, replaceAll, Text } from './Text';\nimport { toName } from './Constructor';\nimport { Optional } from './Types';\nimport { Get, ofGet } from './Get';\nimport { isEmpty, isNotEmpty } from './Is';\nimport { List, toList } from './List';\nimport { JsonValue } from './Json';\nimport { template } from './Template';\n\nexport class ToText implements Text {\n constructor(readonly subject: string) {}\n\n get cap(): ToText {\n return this.map(s => capitalize(s?.toLowerCase()));\n }\n\n get capFirst(): ToText {\n return this.map(s => capitalize(s));\n }\n\n get title(): ToText {\n return this.map(s =>\n s\n .split(' ')\n .map(w => text(w).cap)\n .join(' ')\n );\n }\n\n get pascal(): ToText {\n return this.title.replace(' ', '');\n }\n\n get lower(): ToText {\n return this.map(s => s.toLowerCase());\n }\n\n get upper(): ToText {\n return this.map(s => s.toUpperCase());\n }\n\n get camel(): ToText {\n return this.title.trim.map(s => `${s.charAt(0).toLowerCase()}${s.slice(1)}`);\n }\n\n get kebab(): ToText {\n return this.lower.replace(' ', '-');\n }\n\n get strictKebab(): ToText {\n return this.map(s => s.replace(/[^a-z\\d]+/gi, ' ').trim()).kebab;\n }\n\n get slug(): ToText {\n return this.map(s =>\n s\n .replace(/ß/g, 'ss')\n .normalize('NFKD')\n .replace(/[\\u0300-\\u036F]/g, '')\n .toLowerCase()\n .replace(/[^a-z\\d]+/g, '-')\n .replace(/(^-)|(-$)/g, '')\n );\n }\n\n get snake(): ToText {\n return this.upper.replace(' ', '_');\n }\n\n get plural(): ToText {\n return this.ifLike('') ?? this.add('s');\n }\n\n get space(): ToText {\n return this.map(s => s.replace(/([a-z0-9])([A-Z])/g, '$1 $2').replace(/[_-]/g, ' '));\n }\n\n get sentence(): ToText {\n return this.isEmpty ? this : this.map(s => `${s.charAt(0).toUpperCase()}${s.slice(1)}.`);\n }\n\n get initials(): ToText {\n return this.map(s =>\n s\n .split(' ')\n .map(w => w[0])\n .join('')\n );\n }\n\n get trim(): ToText {\n return this.map(s => s.replace(/[- ,_#]/g, ''));\n }\n\n get trimSentence(): ToText {\n return this.map(s =>\n s\n .replace(/[\\u200B-\\u200D\\uFEFF]/g, '')\n .replace(/[\\s\\u00A0]+/g, ' ')\n .replace(/\\s+([.,;:!?])/g, '$1')\n .trim()\n );\n }\n\n get isEmpty(): boolean {\n return isEmpty(this.toString());\n }\n\n parse = (subject: unknown, options = {}): ToText => text(template(this.subject, subject, { typeof: toName(subject), ...options }));\n\n is = (...others: unknown[]): boolean => others.some(o => this.toString() === text(o).toString());\n\n equals = this.is;\n\n like = (...others: unknown[]): boolean => others.some(o => this.trim.lower.toString().includes(text(o).trim.lower.toString()));\n\n isLike = (...others: unknown[]): boolean => others.some(o => this.trim.lower.is(text(o).trim.lower));\n\n ifLike = (...others: unknown[]): Optional<this> => (this.isLike(...others) ? this : undefined);\n\n endsWith = (end?: unknown): boolean => this.subject.endsWith(asString(end));\n\n startsWith = (end?: unknown): boolean => this.subject.startsWith(asString(end));\n\n first = (n: number): ToText => this.map(s => s.substring(0, n));\n\n last = (n: number): ToText => this.map(s => s.substring(s.length - n));\n\n map = (func: Get<string, string>): ToText => text(ofGet(func, this.subject));\n\n replace = (search: Text, replace: Text): ToText => this.map(s => replaceAll(s, search, replace));\n\n add = (add?: unknown, separator = ''): ToText => this.map(s => (isNotEmpty(add) ? `${s}${separator}${text(add)}` : s));\n\n with = (separator: string, ...other: unknown[]): ToText =>\n this.map(s =>\n toList(s)\n .add(...other.map(u => text(u).toString()))\n .filter(s => isNotEmpty(s))\n .join(separator)\n );\n\n split = (separator: string = ' '): List<string> => toList(this.subject.split(separator));\n\n toString(): string {\n return this.subject;\n }\n\n toJSON(): JsonValue {\n return this.subject;\n }\n}\n\nexport function text(subject?: unknown, alt = ''): ToText {\n const sub = subject ? asString(subject) : alt;\n return new ToText(sub !== '[object Object]' ? sub : '');\n}\n\nexport function textValue(subject: any, prop: string): string {\n const p = prop.split('.');\n const root = subject?.[p[0]];\n const initial = typeof root === 'object' && root !== null ? root : text(root);\n return (\n p\n .splice(1)\n .reduce((t, s) => (typeof t === 'object' && t !== null ? t : text(t))?.[s], initial)\n ?.toString() ?? ''\n );\n}\n","import { asString, Text } from './Text';\nimport { Enum } from './Enum';\nimport { isDefined } from './Is';\nimport { Id } from './Id';\n\nimport { text } from './ToText';\n\nexport class Exception extends Enum {\n static readonly AlreadyExists = new Exception('Subject already exists');\n static readonly DoesNotExist = new Exception('Does not exist');\n static readonly IsMissingId = new Exception('Subject is missing an id');\n static readonly IsNotImplemented = new Exception('Is not implemented');\n static readonly IsNotValid = new Exception('Is not valid');\n static readonly Unknown = new Exception('Unknown error');\n\n constructor(\n readonly message: string,\n id?: Id,\n readonly reason?: Text\n ) {\n super(message, id ?? text(message).pascal.toString());\n }\n\n static readonly CouldNotExecute = (target: Text): Exception => new Exception(`Could not execute ${target}.`, 'CouldNotExecute');\n\n static readonly CouldNotValidate = (target: Text): Exception => new Exception(`Could not validate ${target}.`, 'CouldNotValidate');\n\n static readonly EnvironmentVariableNotFound = (variable: Text): Exception =>\n new Exception(`Environment variable ${text(variable).upper} could not be found.`, 'EnvironmentVariableNotFound');\n\n because = (reason: Text): Exception => new Exception(this.message, this.id, reason);\n}\n\nexport const isException = (e?: unknown, t?: Text): e is Exception => e instanceof Exception && (isDefined(t) ? e.equals(asString(t)) : true);\nexport const isDoesNotExist = (e?: unknown): e is Exception => e instanceof Exception && Exception.DoesNotExist.equals(e);\n","import { validate } from './Validate';\nimport { Results } from '../types/Results';\nimport { Constructor } from '../types/Constructor';\nimport { Get, ofGet, Predicate } from '../types/Get';\nimport { isDefined, isEmpty, isIn } from '../types/Is';\nimport { toArray } from '../types/Array';\nimport { ErrorOrigin } from '../types/ErrorOrigin';\nimport { reject, resolve } from '../utils/Promise';\nimport { Exception } from '../types/Exception';\n\nexport class When<W> {\n constructor(\n readonly subject: W,\n readonly valid = true,\n private results?: Results\n ) {}\n\n get not(): When<W> {\n return this.clone(!this.valid);\n }\n\n get and(): When<W> {\n return this.clone(this.valid);\n }\n\n get isDefined(): When<W> {\n return this.clone(this.valid === isDefined(this.subject));\n }\n\n get isEmpty(): When<W> {\n return this.clone(this.valid === isEmpty(this.subject));\n }\n\n get isTrue(): When<W> {\n return this.clone(this.valid === !!this.subject);\n }\n\n get isValid(): When<W> {\n this.results = validate(this.subject);\n return this.clone(this.valid === this.results.isValid);\n }\n\n isInstance = <U>(c: Constructor<U>): When<W> => this.clone(this.valid === this.subject instanceof c);\n\n with = (pred: Predicate<W>): When<W> => this.clone(this.valid === ofGet(pred, this.subject));\n\n contains = (property: (w: W) => unknown): When<W> => this.clone(this.valid === isDefined(ofGet(property, this.subject)));\n\n in = (...items: W[]): When<W> => this.clone(this.valid === isIn(this.subject, toArray(...items)));\n\n is = (item: W): When<W> => this.clone(this.valid === (this.subject === item));\n\n reject = (error?: Get<ErrorOrigin, W>): Promise<NonNullable<W>> =>\n !this.valid ? resolve(this.subject as NonNullable<W>) : reject(ofGet(error, this.subject) ?? this.results ?? Exception.Unknown);\n\n recover = (f: (item: W) => W | Promise<W>): Promise<W> => resolve(!this.valid ? this.subject : f(this.subject));\n\n protected clone = (result = true): When<W> => new When(this.subject, result, this.results);\n}\n\nexport const when = <T>(subject: T): When<T> => new When<T>(subject);\n","import { Uuid } from './Uuid';\nimport { Identity } from './Identity';\nimport { Optional } from './Types';\n\nimport { text } from './ToText';\n\nexport interface EnvContext {\n readonly domain: string;\n readonly name: string;\n readonly host: string;\n readonly port: number;\n readonly app: string;\n\n get(key: string, alt?: string): Optional<string>;\n}\n\nexport class DotEnvContext implements EnvContext {\n readonly domain = process.env.DOMAIN ?? 'easy';\n readonly name = process.env.ENVIRONMENT_NAME ?? '';\n readonly host = process.env.HOST ?? '';\n readonly port = Number.parseInt(process.env.PORT ?? '8080');\n readonly app = process.env.APP ?? '';\n\n readonly get = (key: string, alt?: string): Optional<string> => {\n const k = text(key)\n .map(k => k.replace(/([a-z])([A-Z])/g, '$1 $2'))\n .snake.toString();\n return process.env[k] ?? alt;\n };\n}\n\nexport interface RequestContext {\n token?: any;\n identity?: Identity;\n jwt: string;\n correlationId?: Uuid;\n lastError?: string;\n lastErrorStack?: string;\n create: (f: () => void) => void;\n\n get<T>(key: string): T;\n\n set<T>(key: string, value: T): T;\n\n wrap<T>(f: () => Promise<T>): Promise<T>;\n}\n\nexport class BaseRequestContext implements RequestContext {\n private state: any = {};\n\n get token(): any {\n return this.get('token');\n }\n\n set token(token: any) {\n this.set('token', token);\n }\n\n get identity(): Identity {\n return this.token as Identity;\n }\n\n get jwt(): string {\n return this.get('jwt');\n }\n\n set jwt(jwt: string) {\n this.set('jwt', jwt);\n }\n\n get correlationId(): Uuid {\n return this.get('correlationId');\n }\n\n set correlationId(id: Uuid) {\n this.set('correlationId', id);\n }\n\n get lastError(): Optional<string> {\n return this.get('lastError');\n }\n\n set lastError(error: Optional<string>) {\n this.set('lastError', error);\n }\n\n public get<T>(key: string): T {\n return this.state[key] as T;\n }\n\n public set<T>(key: string, value: T): T {\n return (this.state[key] = value);\n }\n\n public readonly create = (f: () => void): void => f();\n\n public readonly wrap = <T>(f: () => Promise<T>): Promise<T> => f();\n}\n\n/**\n * @deprecated Renamed to BaseRequestContext\n */\nexport class BaseContext extends BaseRequestContext {}\n\nexport interface Contexts {\n env?: EnvContext;\n request?: RequestContext;\n other?: any;\n}\n\nexport class Context {\n constructor(protected state: Contexts = {}) {\n this.state = {\n ...{\n env: new DotEnvContext(),\n request: new BaseRequestContext(),\n other: {},\n },\n ...this.state,\n };\n }\n\n get env(): EnvContext {\n return this.state.env as EnvContext;\n }\n\n set env(env: EnvContext) {\n this.state.env = env;\n }\n\n get request(): RequestContext {\n return this.state.request as RequestContext;\n }\n\n set request(request: RequestContext) {\n this.state.request = request;\n }\n\n get other(): any {\n return this.state.other;\n }\n}\n\nexport const ctx = new Context();\n","import { isA } from './IsA';\nimport { Text } from './Text';\nimport { ctx } from './Context';\nimport { TypeGuard } from './TypeGuard';\n\nexport type Result = { message: string; location?: string; domain?: string };\n\nexport const toResult = (message: Text, location?: Text, domain: Text = ctx.env.domain): Result => ({\n message: message.toString(),\n location: location?.toString(),\n domain: domain?.toString(),\n});\n\nexport const isResult: TypeGuard<Result> = (r?: unknown): r is Result => isA<Result>(r, 'message');\n","import { Text } from './Text';\nimport { isResult, Result, toResult } from './Result';\nimport { Validatable } from './Validatable';\nimport { isDefined } from './Is';\nimport { toArray } from './Array';\n\nconst parse = (...rs: (Text | Result)[]): Result[] => toArray(...rs).map(r => (isResult(r) ? r : toResult(r)));\n\nexport class Results implements Validatable {\n public readonly results: Result[];\n\n constructor(...rs: (Text | Result)[]) {\n this.results = parse(...rs);\n }\n\n get length(): number {\n return this.results.length;\n }\n\n get isValid(): boolean {\n return this.results.length === 0;\n }\n\n add = (...rs: (Text | Result)[]): Results => toResults(...this.results, ...parse(...rs));\n}\n\nexport const toResults = (...r: (Text | Result)[]): Results => new Results(...r);\n\nexport const isResults = (r?: unknown): r is Results => isDefined(r) && r instanceof Results;\n","import { Constraint } from './Contraints';\nimport { when } from './When';\nimport type { TemplateOptions } from '../types/Template';\nimport { isResults, Results, toResults } from '../types/Results';\nimport { toName } from '../types/Constructor';\nimport { toResult } from '../types/Result';\nimport { List, toList } from '../types/List';\nimport { meta } from '../types/Meta';\nimport { isArray, isFunction } from '../types/Is';\nimport type { Text } from '../types/Text';\nimport { asString } from '../types/Text';\nimport { choose } from '../types/Case';\nimport { isEnum } from '../types/Enum';\nimport { isValue } from '../types/Value';\nimport { isValidatable } from '../types/Validatable';\nimport { text } from '../types/ToText';\n\nexport type Validator = { property: string | symbol; constraint: Constraint; text: Text; actual?: Text };\n\nexport const asResults = (subject: unknown, template: Text, options: TemplateOptions = {}): Results =>\n toResults(toResult(text(template).parse(subject, options), toName(subject)));\n\nconst validators = (subject: unknown): List<Validator> =>\n meta(subject)\n .keys<List<Validator>>('constraint')\n .reduce((list, vs) => list.add(vs), toList<Validator>());\n\nconst runValidator = (v: Validator, subject?: unknown): Results => {\n try {\n const actual = isFunction((subject as any)[v.property]) ? (subject as any)[v.property]() : (subject as any)[v.property];\n const constraint = v.constraint(actual);\n return isResults(constraint)\n ? constraint\n : !constraint\n ? asResults(subject, v.text, {\n ...v,\n actual,\n })\n : toResults();\n } catch (e) {\n return asResults(subject, asString(e));\n }\n};\n\nconst constraints = (subject?: unknown): Results =>\n validators(subject)\n .map(vs => runValidator(vs, subject))\n .reduce((rs, r) => rs.add(...r.results), toResults());\n\nexport const validate = (subject?: unknown): Results =>\n choose(subject)\n .is.not.defined(\n s => s,\n () => toResults('Subject is not defined.')\n )\n .type(isEnum, e => (e.isValid ? toResults() : asResults(e, 'This is not a valid {typeof}.')))\n .type(isValue, v => (v.isValid ? toResults() : asResults(v, 'This is not a valid {typeof}.')))\n .type(isArray, a => a.map(i => validate(i)).reduce((rs, r) => rs.add(...r.results), toResults()))\n .type(isValidatable, v => constraints(v))\n .else(toResults());\n\nexport const validateReject = <T>(subject: T): Promise<T> => when(subject).not.isValid.reject();\n\nexport const isValid = <T>(t: T): boolean => validate(t).isValid;\n","import { isDefined, isEmpty, isTrue } from './Is';\nimport { validate } from '../validation/Validate';\nimport { Construct, Constructor, ofConstruct } from './Constructor';\nimport { Validatable } from './Validatable';\nimport { Get, ofGet } from './Get';\nimport { Func } from './Func';\nimport { Optional } from './Types';\n\nexport abstract class Try<T = unknown> implements Validatable {\n is = {\n defined: (prop?: Func<unknown, T>): Try<T> => this.filter(v => isDefined(prop ? prop(v) : v)),\n empty: (prop?: Func<unknown, T>): Try<T> => this.filter(v => isEmpty(prop ? prop(v) : v)),\n valid: (prop?: Func<unknown, T>): Try<T> => this.filter(v => validate(prop ? prop(v) : v).isValid),\n true: (prop?: Func<unknown, T>): Try<T> => this.filter(v => isTrue(prop ? prop(v) : v)),\n false: (prop?: Func<unknown, T>): Try<T> => this.filter(v => !isTrue(prop ? prop(v) : v)),\n not: {\n defined: (prop?: Func<unknown, T>): Try<T> => this.filter(v => !isDefined(prop ? prop(v) : v)),\n empty: (prop?: Func<unknown, T>): Try<T> => this.filter(v => !isEmpty(prop ? prop(v) : v)),\n valid: (prop?: Func<unknown, T>): Try<T> => this.filter(v => !validate(prop ? prop(v) : v).isValid),\n },\n };\n\n if = this.is;\n\n abstract get value(): T;\n\n abstract get error(): Error;\n\n abstract get isValid(): boolean;\n\n static of = <T>(c: Get<T | Try<T>>, ...args: unknown[]): Try<T> => {\n try {\n const out = ofGet(c, ...args);\n return new Success(out instanceof Try ? out.value : out);\n } catch (e) {\n return new Failure(e as Error);\n }\n };\n\n abstract map<U>(f: Func<U | Try<U>, T>): Try<U>;\n\n abstract recover(f: Func<T | Try<T>, Error>): Try<T>;\n\n abstract recoverFrom(type: Constructor<Error>, f: Func<T | Try<T>, Error>): Try<T>;\n\n abstract accept(f: Func<void, T>): Try<T>;\n\n abstract filter(predicate: Func<boolean, T>): Try<T>;\n\n abstract or(value: Get<T>): T;\n\n abstract orElse(value?: Get<T>): Optional<T>;\n\n abstract orThrow(error: Construct<Error>): T;\n}\n\nclass Success<T> extends Try<T> {\n constructor(readonly value: T) {\n super();\n }\n\n get error(): Error {\n throw new Error('No error found');\n }\n\n get isValid(): boolean {\n return true;\n }\n\n map<U>(f: Func<U | Try<U>, T>): Try<U> {\n return tryTo<U>(f, this.value);\n }\n\n recover(f: Func<T | Try<T>, Error>): Try<T> {\n return this;\n }\n\n recoverFrom(type: Constructor<Error>, f: Func<T | Try<T>, Error>): Try<T> {\n return this;\n }\n\n accept(f: Func<void, T>): Try<T> {\n return tryTo(() => {\n f(this.value);\n return this;\n });\n }\n\n filter(predicate: Func<boolean, T>): Try<T> {\n return tryTo(() => {\n if (predicate(this.value)) return this;\n throw new Error(`Applying filter(${predicate.toString()}) failed.`);\n });\n }\n\n or(value: Get<T>): T {\n return this.value;\n }\n\n orElse(value?: Get<T>): Optional<T> {\n return this.value;\n }\n\n orThrow(_error: Construct<Error>): T {\n return this.value;\n }\n}\n\nclass Failure<T> extends Try<T> {\n constructor(readonly error: Error) {\n super();\n }\n\n get value(): T {\n throw this.error;\n }\n\n get isValid(): boolean {\n return false;\n }\n\n map<U>(f: Func<U | Try<U>, T>): Try<U> {\n return new Failure<U>(this.error);\n }\n\n recover<U>(f: Func<U | Try<U>, Error>): Try<U> {\n return tryTo<U>(f, this.error);\n }\n\n recoverFrom<U>(type: Constructor<Error>, f: Func<T | Try<T>, Error>): Try<T> {\n return tryTo(() => (this.error instanceof type ? this.recover(f) : this));\n }\n\n accept(f: Func<void, T>): Try<T> {\n return this;\n }\n\n filter(predicate: Func<boolean, T>): Try<T> {\n return this;\n }\n\n or(value: Get<T>): T {\n return ofGet(value);\n }\n\n orElse(value?: Get<T>): Optional<T> {\n return ofGet(value);\n }\n\n orThrow(error: Construct<Error>): T {\n throw ofConstruct(error);\n }\n}\n\nexport const tryTo = <T>(c: Get<T | Try<T>>, ...args: unknown[]) => Try.of<T>(c, ...args);\n"],"mappings":"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","names":["o","keys","acc","on","keys","a","template","s","k","template"]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|