@thisisagile/easy 17.30.2 → 17.30.4
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-XJMQ22GX.mjs → chunk-2LBC3DJ3.mjs} +6 -6
- package/dist/{chunk-OGLPG6DF.mjs → chunk-3M6NLHSO.mjs} +2 -2
- package/dist/{chunk-YQC25ZQ4.mjs → chunk-3S37J4D2.mjs} +3 -3
- package/dist/{chunk-YMZQ7MVB.mjs → chunk-3SMXXBQV.mjs} +3 -3
- package/dist/{chunk-RZPP5MB5.mjs → chunk-42RGCJJS.mjs} +2 -2
- package/dist/{chunk-LYMVCDQQ.mjs → chunk-42ZEWOAW.mjs} +3 -3
- package/dist/{chunk-JCSHKCHV.mjs → chunk-4XMYTWJK.mjs} +9 -9
- package/dist/{chunk-N6426VKQ.mjs → chunk-574MESHR.mjs} +3 -3
- package/dist/{chunk-GMXT7KMA.mjs → chunk-5HO5LA5R.mjs} +4 -4
- package/dist/{chunk-N54W6R2R.mjs → chunk-5JE5K32G.mjs} +3 -3
- package/dist/{chunk-LNNALU5F.mjs → chunk-6O6OO3BN.mjs} +2 -2
- package/dist/{chunk-DJIFXVXI.mjs → chunk-7YEQFAR6.mjs} +4 -4
- package/dist/{chunk-HOVTNDHS.mjs → chunk-ABGKS4KE.mjs} +27 -27
- package/dist/chunk-ABGKS4KE.mjs.map +1 -0
- package/dist/{chunk-NE6D5LD6.mjs → chunk-AF5TKKSO.mjs} +6 -6
- package/dist/{chunk-ERIASP37.mjs → chunk-AKVLL6HV.mjs} +2 -2
- package/dist/{chunk-GBZ36SQE.mjs → chunk-BFTIY5FP.mjs} +2 -2
- package/dist/{chunk-2AB6ZQHC.mjs → chunk-BIEWRRM7.mjs} +2 -2
- package/dist/{chunk-L6BV4YY6.mjs → chunk-BN2JISRJ.mjs} +4 -4
- package/dist/{chunk-MK2UX4IH.mjs → chunk-BSPPS3Q7.mjs} +3 -3
- package/dist/{chunk-NOAHFVHL.mjs → chunk-CAAUURKX.mjs} +2 -2
- package/dist/{chunk-LVFZNHRN.mjs → chunk-D5ARHG4B.mjs} +3 -3
- package/dist/{chunk-EZPDFEGN.mjs → chunk-DJD6FCG5.mjs} +5 -5
- package/dist/{chunk-ABF4LKKJ.mjs → chunk-EQDKI6O6.mjs} +6 -6
- package/dist/{chunk-URZDHOMW.mjs → chunk-FBIOSIUJ.mjs} +3 -3
- package/dist/{chunk-VREU4DWW.mjs → chunk-GJTO5XWI.mjs} +4 -4
- package/dist/{chunk-ZKLQJX4N.mjs → chunk-HVTG4CMQ.mjs} +2 -2
- package/dist/{chunk-NPCTXURR.mjs → chunk-JMIXHXWM.mjs} +2 -2
- package/dist/{chunk-P5MN5NGC.mjs → chunk-KJVTSC6I.mjs} +2 -2
- package/dist/{chunk-2EJYJ4HI.mjs → chunk-KOQMKNVT.mjs} +3 -3
- package/dist/{chunk-266QN2OA.mjs → chunk-LIXXEPVV.mjs} +2 -2
- package/dist/{chunk-D7UFAVDX.mjs → chunk-LYRXR6GZ.mjs} +3 -3
- package/dist/{chunk-RUFO75IB.mjs → chunk-PIQ5Z4RB.mjs} +2 -2
- package/dist/{chunk-EAQK2APU.mjs → chunk-RGE5455B.mjs} +6 -6
- package/dist/{chunk-26EAXSRC.mjs → chunk-S7REWACS.mjs} +3 -3
- package/dist/{chunk-NUUSXGAY.mjs → chunk-SU5WE22K.mjs} +2 -2
- package/dist/{chunk-27RKPSVR.mjs → chunk-TALJQ2P7.mjs} +4 -4
- package/dist/{chunk-WLTLSV2I.mjs → chunk-TCQRHKGS.mjs} +2 -2
- package/dist/{chunk-AG3P2RCU.mjs → chunk-TNWINOMW.mjs} +3 -3
- package/dist/{chunk-A37Z5B6K.mjs → chunk-ULL5FF66.mjs} +5 -5
- package/dist/{chunk-CZW4O43O.mjs → chunk-VSMIXM2G.mjs} +2 -2
- package/dist/{chunk-457AXEIG.mjs → chunk-WM4CVGYF.mjs} +13 -13
- package/dist/{chunk-MSV2376G.mjs → chunk-WMYZ7MKN.mjs} +2 -2
- package/dist/{chunk-TM2NCQN5.mjs → chunk-WQIYNBT5.mjs} +2 -2
- package/dist/{chunk-UYRY7EZ4.mjs → chunk-WVPV7TGY.mjs} +4 -4
- package/dist/{chunk-IJVBXBNY.mjs → chunk-WZNBI2K5.mjs} +26 -18
- package/dist/chunk-WZNBI2K5.mjs.map +1 -0
- package/dist/{chunk-WAGRV5DZ.mjs → chunk-Y5S25X3W.mjs} +2 -2
- package/dist/data/Condition.mjs +4 -4
- package/dist/data/Database.mjs +5 -5
- package/dist/data/Field.mjs +4 -4
- package/dist/data/InMemoryGateway.mjs +13 -13
- package/dist/domain/Audit.mjs +17 -17
- package/dist/domain/Child.mjs +16 -16
- package/dist/domain/DateTime.mjs +13 -13
- package/dist/domain/Entity.mjs +21 -21
- package/dist/domain/Repo.mjs +15 -15
- package/dist/domain/Struct.mjs +13 -13
- package/dist/domain/Typo.mjs +15 -15
- package/dist/http/CacheControl.mjs +13 -13
- package/dist/http/ContentType.mjs +5 -5
- package/dist/http/HttpStatus.mjs +5 -5
- package/dist/http/HttpVerb.mjs +5 -5
- package/dist/http/LocalRequestStore.mjs +4 -4
- package/dist/http/RequestOptions.mjs +8 -8
- package/dist/http/RestResult.mjs +13 -13
- package/dist/http/toResponse.mjs +14 -14
- package/dist/index.js +12 -7
- package/dist/index.js.map +1 -1
- package/dist/process/App.mjs +6 -6
- package/dist/process/Manage.mjs +13 -13
- package/dist/process/Scope.mjs +6 -6
- package/dist/process/Search.mjs +13 -13
- package/dist/process/UseCase.mjs +5 -5
- package/dist/resources/Req.mjs +12 -12
- package/dist/services/Api.mjs +21 -21
- package/dist/services/ApiGateway.mjs +24 -24
- package/dist/services/AxiosProvider.mjs +19 -19
- package/dist/services/MappedRouteGateway.mjs +29 -29
- package/dist/services/RouteGateway.mjs +25 -25
- package/dist/services/ViewRouteGateway.mjs +28 -28
- package/dist/sql/Column.mjs +13 -13
- 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 +25 -25
- package/dist/sql/TableGateway.mjs +13 -13
- package/dist/sql/Update.mjs +3 -3
- package/dist/types/Cache.mjs +3 -3
- package/dist/types/CacheAge.mjs +13 -13
- package/dist/types/Case.mjs +11 -11
- package/dist/types/Context.mjs +4 -4
- package/dist/types/Enum.mjs +4 -4
- package/dist/types/Environment.mjs +4 -4
- package/dist/types/Exception.mjs +6 -6
- package/dist/types/Gateway.mjs +8 -8
- package/dist/types/IsEqual.mjs +12 -12
- package/dist/types/Json.mjs +3 -3
- package/dist/types/List.mjs +1 -1
- package/dist/types/Meta.mjs +3 -3
- package/dist/types/Number.mjs +12 -12
- package/dist/types/Object.mjs +2 -2
- package/dist/types/PageList.mjs +12 -12
- package/dist/types/Parser.mjs +11 -11
- package/dist/types/Repository.mjs +8 -8
- package/dist/types/Result.mjs +5 -5
- package/dist/types/Results.mjs +6 -6
- package/dist/types/Tag.mjs +3 -3
- package/dist/types/Template.mjs +3 -3
- package/dist/types/ToText.mjs +3 -3
- package/dist/types/Try.mjs +11 -11
- package/dist/types/Uri.mjs +11 -11
- package/dist/utils/If.mjs +1 -1
- package/dist/utils/Mapper.mjs +5 -5
- package/dist/utils/Promise.mjs +3 -3
- package/dist/utils/Seconds.mjs +2 -2
- package/dist/utils/Sentence.mjs +3 -3
- package/dist/utils/View.d.ts +7 -2
- package/dist/utils/View.mjs +15 -15
- package/dist/validation/Contraints.mjs +12 -12
- package/dist/validation/Validate.mjs +11 -11
- package/dist/validation/When.mjs +11 -11
- package/package.json +1 -1
- package/src/utils/View.ts +16 -8
- package/dist/chunk-HOVTNDHS.mjs.map +0 -1
- package/dist/chunk-IJVBXBNY.mjs.map +0 -1
- /package/dist/{chunk-XJMQ22GX.mjs.map → chunk-2LBC3DJ3.mjs.map} +0 -0
- /package/dist/{chunk-OGLPG6DF.mjs.map → chunk-3M6NLHSO.mjs.map} +0 -0
- /package/dist/{chunk-YQC25ZQ4.mjs.map → chunk-3S37J4D2.mjs.map} +0 -0
- /package/dist/{chunk-YMZQ7MVB.mjs.map → chunk-3SMXXBQV.mjs.map} +0 -0
- /package/dist/{chunk-RZPP5MB5.mjs.map → chunk-42RGCJJS.mjs.map} +0 -0
- /package/dist/{chunk-LYMVCDQQ.mjs.map → chunk-42ZEWOAW.mjs.map} +0 -0
- /package/dist/{chunk-JCSHKCHV.mjs.map → chunk-4XMYTWJK.mjs.map} +0 -0
- /package/dist/{chunk-N6426VKQ.mjs.map → chunk-574MESHR.mjs.map} +0 -0
- /package/dist/{chunk-GMXT7KMA.mjs.map → chunk-5HO5LA5R.mjs.map} +0 -0
- /package/dist/{chunk-N54W6R2R.mjs.map → chunk-5JE5K32G.mjs.map} +0 -0
- /package/dist/{chunk-LNNALU5F.mjs.map → chunk-6O6OO3BN.mjs.map} +0 -0
- /package/dist/{chunk-DJIFXVXI.mjs.map → chunk-7YEQFAR6.mjs.map} +0 -0
- /package/dist/{chunk-NE6D5LD6.mjs.map → chunk-AF5TKKSO.mjs.map} +0 -0
- /package/dist/{chunk-ERIASP37.mjs.map → chunk-AKVLL6HV.mjs.map} +0 -0
- /package/dist/{chunk-GBZ36SQE.mjs.map → chunk-BFTIY5FP.mjs.map} +0 -0
- /package/dist/{chunk-2AB6ZQHC.mjs.map → chunk-BIEWRRM7.mjs.map} +0 -0
- /package/dist/{chunk-L6BV4YY6.mjs.map → chunk-BN2JISRJ.mjs.map} +0 -0
- /package/dist/{chunk-MK2UX4IH.mjs.map → chunk-BSPPS3Q7.mjs.map} +0 -0
- /package/dist/{chunk-NOAHFVHL.mjs.map → chunk-CAAUURKX.mjs.map} +0 -0
- /package/dist/{chunk-LVFZNHRN.mjs.map → chunk-D5ARHG4B.mjs.map} +0 -0
- /package/dist/{chunk-EZPDFEGN.mjs.map → chunk-DJD6FCG5.mjs.map} +0 -0
- /package/dist/{chunk-ABF4LKKJ.mjs.map → chunk-EQDKI6O6.mjs.map} +0 -0
- /package/dist/{chunk-URZDHOMW.mjs.map → chunk-FBIOSIUJ.mjs.map} +0 -0
- /package/dist/{chunk-VREU4DWW.mjs.map → chunk-GJTO5XWI.mjs.map} +0 -0
- /package/dist/{chunk-ZKLQJX4N.mjs.map → chunk-HVTG4CMQ.mjs.map} +0 -0
- /package/dist/{chunk-NPCTXURR.mjs.map → chunk-JMIXHXWM.mjs.map} +0 -0
- /package/dist/{chunk-P5MN5NGC.mjs.map → chunk-KJVTSC6I.mjs.map} +0 -0
- /package/dist/{chunk-2EJYJ4HI.mjs.map → chunk-KOQMKNVT.mjs.map} +0 -0
- /package/dist/{chunk-266QN2OA.mjs.map → chunk-LIXXEPVV.mjs.map} +0 -0
- /package/dist/{chunk-D7UFAVDX.mjs.map → chunk-LYRXR6GZ.mjs.map} +0 -0
- /package/dist/{chunk-RUFO75IB.mjs.map → chunk-PIQ5Z4RB.mjs.map} +0 -0
- /package/dist/{chunk-EAQK2APU.mjs.map → chunk-RGE5455B.mjs.map} +0 -0
- /package/dist/{chunk-26EAXSRC.mjs.map → chunk-S7REWACS.mjs.map} +0 -0
- /package/dist/{chunk-NUUSXGAY.mjs.map → chunk-SU5WE22K.mjs.map} +0 -0
- /package/dist/{chunk-27RKPSVR.mjs.map → chunk-TALJQ2P7.mjs.map} +0 -0
- /package/dist/{chunk-WLTLSV2I.mjs.map → chunk-TCQRHKGS.mjs.map} +0 -0
- /package/dist/{chunk-AG3P2RCU.mjs.map → chunk-TNWINOMW.mjs.map} +0 -0
- /package/dist/{chunk-A37Z5B6K.mjs.map → chunk-ULL5FF66.mjs.map} +0 -0
- /package/dist/{chunk-CZW4O43O.mjs.map → chunk-VSMIXM2G.mjs.map} +0 -0
- /package/dist/{chunk-457AXEIG.mjs.map → chunk-WM4CVGYF.mjs.map} +0 -0
- /package/dist/{chunk-MSV2376G.mjs.map → chunk-WMYZ7MKN.mjs.map} +0 -0
- /package/dist/{chunk-TM2NCQN5.mjs.map → chunk-WQIYNBT5.mjs.map} +0 -0
- /package/dist/{chunk-UYRY7EZ4.mjs.map → chunk-WVPV7TGY.mjs.map} +0 -0
- /package/dist/{chunk-WAGRV5DZ.mjs.map → chunk-Y5S25X3W.mjs.map} +0 -0
package/dist/types/Uri.mjs
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
2
|
tryTo
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-WM4CVGYF.mjs";
|
|
4
4
|
import "../chunk-OFGI5FLG.mjs";
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
5
|
+
import "../chunk-CAAUURKX.mjs";
|
|
6
|
+
import "../chunk-WMYZ7MKN.mjs";
|
|
7
|
+
import "../chunk-KOQMKNVT.mjs";
|
|
8
|
+
import "../chunk-3SMXXBQV.mjs";
|
|
9
9
|
import "../chunk-WSBULPUZ.mjs";
|
|
10
10
|
import {
|
|
11
11
|
ctx
|
|
12
|
-
} from "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
12
|
+
} from "../chunk-Y5S25X3W.mjs";
|
|
13
|
+
import "../chunk-5JE5K32G.mjs";
|
|
14
|
+
import "../chunk-TNWINOMW.mjs";
|
|
15
15
|
import {
|
|
16
16
|
meta
|
|
17
|
-
} from "../chunk-
|
|
17
|
+
} from "../chunk-BSPPS3Q7.mjs";
|
|
18
18
|
import {
|
|
19
19
|
entries
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-HVTG4CMQ.mjs";
|
|
21
21
|
import {
|
|
22
22
|
toList
|
|
23
|
-
} from "../chunk-
|
|
23
|
+
} from "../chunk-ABGKS4KE.mjs";
|
|
24
24
|
import "../chunk-SSROJBD5.mjs";
|
|
25
25
|
import {
|
|
26
26
|
toArray
|
package/dist/utils/If.mjs
CHANGED
package/dist/utils/Mapper.mjs
CHANGED
|
@@ -2,14 +2,14 @@ import {
|
|
|
2
2
|
Mapper,
|
|
3
3
|
isMapping,
|
|
4
4
|
mappings
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-RGE5455B.mjs";
|
|
6
6
|
import "../chunk-WJZFE5NE.mjs";
|
|
7
7
|
import "../chunk-GCY5A63A.mjs";
|
|
8
|
+
import "../chunk-BSPPS3Q7.mjs";
|
|
8
9
|
import "../chunk-MDXL65W4.mjs";
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-HOVTNDHS.mjs";
|
|
10
|
+
import "../chunk-3S37J4D2.mjs";
|
|
11
|
+
import "../chunk-HVTG4CMQ.mjs";
|
|
12
|
+
import "../chunk-ABGKS4KE.mjs";
|
|
13
13
|
import "../chunk-SSROJBD5.mjs";
|
|
14
14
|
import "../chunk-CO2AFYVD.mjs";
|
|
15
15
|
import "../chunk-BDA5LB4S.mjs";
|
package/dist/utils/Promise.mjs
CHANGED
|
@@ -8,9 +8,9 @@ import {
|
|
|
8
8
|
tuple4,
|
|
9
9
|
tuple5,
|
|
10
10
|
tupleO
|
|
11
|
-
} from "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
11
|
+
} from "../chunk-KOQMKNVT.mjs";
|
|
12
|
+
import "../chunk-HVTG4CMQ.mjs";
|
|
13
|
+
import "../chunk-ABGKS4KE.mjs";
|
|
14
14
|
import "../chunk-SSROJBD5.mjs";
|
|
15
15
|
import "../chunk-CO2AFYVD.mjs";
|
|
16
16
|
import "../chunk-BDA5LB4S.mjs";
|
package/dist/utils/Seconds.mjs
CHANGED
package/dist/utils/Sentence.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
text
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-5JE5K32G.mjs";
|
|
4
|
+
import "../chunk-HVTG4CMQ.mjs";
|
|
5
|
+
import "../chunk-ABGKS4KE.mjs";
|
|
6
6
|
import "../chunk-SSROJBD5.mjs";
|
|
7
7
|
import "../chunk-CO2AFYVD.mjs";
|
|
8
8
|
import "../chunk-BDA5LB4S.mjs";
|
package/dist/utils/View.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { Primitive } from '../types/Primitive';
|
|
|
2
2
|
import { Constructor } from '../types/Constructor';
|
|
3
3
|
import { PageList } from '../types/PageList';
|
|
4
4
|
import { List } from '../types/List';
|
|
5
|
+
import { Get } from '../types/Get';
|
|
5
6
|
import { DontInfer } from '../types/Types';
|
|
6
7
|
import { AnyKey } from '../types/AnyKey';
|
|
7
8
|
import { EnumConstructor } from '../types/Enum';
|
|
@@ -13,17 +14,20 @@ type Viewer = {
|
|
|
13
14
|
};
|
|
14
15
|
type ViewType<V = any> = Primitive | EnumConstructor | Constructor | Func | View<V> | undefined;
|
|
15
16
|
type ViewValue<S = never> = [S] extends [never] ? ViewType : Exclude<ViewType, string | Func> | AnyKey<S> | FuncOn<S>;
|
|
16
|
-
type ViewRecord<V = any, S = never> = [S] extends [never] ? Partial<Record<keyof V, ViewValue<S>>> : Partial<Record<keyof V, ViewValue<S>>> & Partial<Record<Exclude<Extract<keyof S, string>, Extract<keyof V, string>>, typeof ignore>>;
|
|
17
|
+
type ViewRecord<V = any, S = never> = [S] extends [never] ? Partial<Record<keyof V | typeof spread, ViewValue<S>>> : Partial<Record<keyof V | typeof spread, ViewValue<S>>> & Partial<Record<Exclude<Extract<keyof S, string>, Extract<keyof V, string>>, typeof ignore>>;
|
|
17
18
|
declare const ignore: unique symbol;
|
|
18
19
|
declare const keep: unique symbol;
|
|
19
20
|
declare const json: unique symbol;
|
|
21
|
+
declare const spread = "view.spread";
|
|
20
22
|
export declare const toViewer: (key: string, value: ViewType) => Viewer;
|
|
21
23
|
export declare class View<V = any, S = never> {
|
|
22
24
|
private views;
|
|
23
25
|
readonly startsFrom: 'scratch' | 'source';
|
|
24
26
|
readonly viewers: Viewer[];
|
|
25
|
-
|
|
27
|
+
private spreads;
|
|
28
|
+
constructor(views?: ViewRecord<V, S>, startsFrom?: 'scratch' | 'source', viewers?: Viewer[], spreads?: Get<V>[]);
|
|
26
29
|
get fromSource(): View<V, S>;
|
|
30
|
+
spread(f: Get<V>): View<V, S>;
|
|
27
31
|
from<T = unknown>(source: PageList<T>): PageList<V>;
|
|
28
32
|
from<T = unknown>(source: List<T>): List<V>;
|
|
29
33
|
from<T = unknown>(source: T[]): V[];
|
|
@@ -39,6 +43,7 @@ export declare const views: {
|
|
|
39
43
|
readonly json: typeof json;
|
|
40
44
|
readonly spread: "view.spread";
|
|
41
45
|
readonly skip: typeof ignore;
|
|
46
|
+
readonly equals: (key: string, value: unknown) => (a: unknown) => boolean;
|
|
42
47
|
readonly value: (value: unknown) => () => unknown;
|
|
43
48
|
readonly coalesce: (...keys: string[]) => (a: unknown) => unknown;
|
|
44
49
|
readonly or: {
|
package/dist/utils/View.mjs
CHANGED
|
@@ -4,23 +4,23 @@ import {
|
|
|
4
4
|
toViewer,
|
|
5
5
|
view,
|
|
6
6
|
views
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-457AXEIG.mjs";
|
|
7
|
+
} from "../chunk-WZNBI2K5.mjs";
|
|
8
|
+
import "../chunk-42RGCJJS.mjs";
|
|
9
|
+
import "../chunk-S7REWACS.mjs";
|
|
10
|
+
import "../chunk-WM4CVGYF.mjs";
|
|
12
11
|
import "../chunk-OFGI5FLG.mjs";
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
16
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-CAAUURKX.mjs";
|
|
13
|
+
import "../chunk-WMYZ7MKN.mjs";
|
|
14
|
+
import "../chunk-KOQMKNVT.mjs";
|
|
15
|
+
import "../chunk-3SMXXBQV.mjs";
|
|
17
16
|
import "../chunk-WSBULPUZ.mjs";
|
|
18
|
-
import "../chunk-
|
|
19
|
-
import "../chunk-
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-
|
|
17
|
+
import "../chunk-Y5S25X3W.mjs";
|
|
18
|
+
import "../chunk-5JE5K32G.mjs";
|
|
19
|
+
import "../chunk-TNWINOMW.mjs";
|
|
20
|
+
import "../chunk-BSPPS3Q7.mjs";
|
|
21
|
+
import "../chunk-3S37J4D2.mjs";
|
|
22
|
+
import "../chunk-HVTG4CMQ.mjs";
|
|
23
|
+
import "../chunk-ABGKS4KE.mjs";
|
|
24
24
|
import "../chunk-SSROJBD5.mjs";
|
|
25
25
|
import "../chunk-CO2AFYVD.mjs";
|
|
26
26
|
import "../chunk-BDA5LB4S.mjs";
|
|
@@ -17,21 +17,21 @@ import {
|
|
|
17
17
|
required,
|
|
18
18
|
rule,
|
|
19
19
|
valid
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-ULL5FF66.mjs";
|
|
21
21
|
import "../chunk-ADJAEGCT.mjs";
|
|
22
|
-
import "../chunk-
|
|
22
|
+
import "../chunk-WM4CVGYF.mjs";
|
|
23
23
|
import "../chunk-OFGI5FLG.mjs";
|
|
24
|
-
import "../chunk-
|
|
25
|
-
import "../chunk-
|
|
26
|
-
import "../chunk-
|
|
27
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-CAAUURKX.mjs";
|
|
25
|
+
import "../chunk-WMYZ7MKN.mjs";
|
|
26
|
+
import "../chunk-KOQMKNVT.mjs";
|
|
27
|
+
import "../chunk-3SMXXBQV.mjs";
|
|
28
28
|
import "../chunk-WSBULPUZ.mjs";
|
|
29
|
-
import "../chunk-
|
|
30
|
-
import "../chunk-
|
|
31
|
-
import "../chunk-
|
|
32
|
-
import "../chunk-
|
|
33
|
-
import "../chunk-
|
|
34
|
-
import "../chunk-
|
|
29
|
+
import "../chunk-Y5S25X3W.mjs";
|
|
30
|
+
import "../chunk-5JE5K32G.mjs";
|
|
31
|
+
import "../chunk-TNWINOMW.mjs";
|
|
32
|
+
import "../chunk-BSPPS3Q7.mjs";
|
|
33
|
+
import "../chunk-HVTG4CMQ.mjs";
|
|
34
|
+
import "../chunk-ABGKS4KE.mjs";
|
|
35
35
|
import "../chunk-SSROJBD5.mjs";
|
|
36
36
|
import "../chunk-CO2AFYVD.mjs";
|
|
37
37
|
import "../chunk-BDA5LB4S.mjs";
|
|
@@ -3,19 +3,19 @@ import {
|
|
|
3
3
|
isValid,
|
|
4
4
|
validate,
|
|
5
5
|
validateReject
|
|
6
|
-
} from "../chunk-
|
|
6
|
+
} from "../chunk-WM4CVGYF.mjs";
|
|
7
7
|
import "../chunk-OFGI5FLG.mjs";
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
8
|
+
import "../chunk-CAAUURKX.mjs";
|
|
9
|
+
import "../chunk-WMYZ7MKN.mjs";
|
|
10
|
+
import "../chunk-KOQMKNVT.mjs";
|
|
11
|
+
import "../chunk-3SMXXBQV.mjs";
|
|
12
12
|
import "../chunk-WSBULPUZ.mjs";
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
16
|
-
import "../chunk-
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-Y5S25X3W.mjs";
|
|
14
|
+
import "../chunk-5JE5K32G.mjs";
|
|
15
|
+
import "../chunk-TNWINOMW.mjs";
|
|
16
|
+
import "../chunk-BSPPS3Q7.mjs";
|
|
17
|
+
import "../chunk-HVTG4CMQ.mjs";
|
|
18
|
+
import "../chunk-ABGKS4KE.mjs";
|
|
19
19
|
import "../chunk-SSROJBD5.mjs";
|
|
20
20
|
import "../chunk-CO2AFYVD.mjs";
|
|
21
21
|
import "../chunk-BDA5LB4S.mjs";
|
package/dist/validation/When.mjs
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
When,
|
|
3
3
|
when
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-WM4CVGYF.mjs";
|
|
5
5
|
import "../chunk-OFGI5FLG.mjs";
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
6
|
+
import "../chunk-CAAUURKX.mjs";
|
|
7
|
+
import "../chunk-WMYZ7MKN.mjs";
|
|
8
|
+
import "../chunk-KOQMKNVT.mjs";
|
|
9
|
+
import "../chunk-3SMXXBQV.mjs";
|
|
10
10
|
import "../chunk-WSBULPUZ.mjs";
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
16
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-Y5S25X3W.mjs";
|
|
12
|
+
import "../chunk-5JE5K32G.mjs";
|
|
13
|
+
import "../chunk-TNWINOMW.mjs";
|
|
14
|
+
import "../chunk-BSPPS3Q7.mjs";
|
|
15
|
+
import "../chunk-HVTG4CMQ.mjs";
|
|
16
|
+
import "../chunk-ABGKS4KE.mjs";
|
|
17
17
|
import "../chunk-SSROJBD5.mjs";
|
|
18
18
|
import "../chunk-CO2AFYVD.mjs";
|
|
19
19
|
import "../chunk-BDA5LB4S.mjs";
|
package/package.json
CHANGED
package/src/utils/View.ts
CHANGED
|
@@ -9,6 +9,7 @@ import { meta } from '../types/Meta';
|
|
|
9
9
|
import { isPageList, PageList, toPageList } from '../types/PageList';
|
|
10
10
|
import { List } from '../types/List';
|
|
11
11
|
import { isEqual } from '../types/IsEqual';
|
|
12
|
+
import { Get, ofGet } from '../types/Get';
|
|
12
13
|
import { DontInfer } from '../types/Types';
|
|
13
14
|
import { AnyKey } from '../types/AnyKey';
|
|
14
15
|
import { EnumConstructor, isEnumConstructor } from '../types/Enum';
|
|
@@ -21,8 +22,8 @@ type Viewer = { key: string; f: Func };
|
|
|
21
22
|
type ViewType<V = any> = Primitive | EnumConstructor | Constructor | Func | View<V> | undefined;
|
|
22
23
|
type ViewValue<S = never> = [S] extends [never] ? ViewType : Exclude<ViewType, string | Func> | AnyKey<S> | FuncOn<S>;
|
|
23
24
|
type ViewRecord<V = any, S = never> = [S] extends [never]
|
|
24
|
-
? Partial<Record<keyof V, ViewValue<S>>>
|
|
25
|
-
: Partial<Record<keyof V, ViewValue<S>>> & Partial<Record<Exclude<Extract<keyof S, string>, Extract<keyof V, string>>, typeof ignore>>;
|
|
25
|
+
? Partial<Record<keyof V | typeof spread, ViewValue<S>>>
|
|
26
|
+
: Partial<Record<keyof V | typeof spread, ViewValue<S>>> & Partial<Record<Exclude<Extract<keyof S, string>, Extract<keyof V, string>>, typeof ignore>>;
|
|
26
27
|
|
|
27
28
|
const ignore = Symbol('view.ignore');
|
|
28
29
|
const keep = Symbol('view.keep');
|
|
@@ -65,11 +66,16 @@ export class View<V = any, S = never> {
|
|
|
65
66
|
constructor(
|
|
66
67
|
private views = {} as ViewRecord<V, S>,
|
|
67
68
|
readonly startsFrom: 'scratch' | 'source' = 'scratch',
|
|
68
|
-
readonly viewers: Viewer[] = toViewers(views)
|
|
69
|
+
readonly viewers: Viewer[] = toViewers(views),
|
|
70
|
+
private spreads: Get<V>[] = []
|
|
69
71
|
) {}
|
|
70
72
|
|
|
71
73
|
get fromSource(): View<V, S> {
|
|
72
|
-
return new View(this.views, 'source', this.viewers);
|
|
74
|
+
return new View(this.views, 'source', this.viewers, this.spreads);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
spread(f: Get<V>): View<V, S> {
|
|
78
|
+
return new View(this.views, this.startsFrom, this.viewers, [...this.spreads, f]);
|
|
73
79
|
}
|
|
74
80
|
|
|
75
81
|
from<T = unknown>(source: PageList<T>): PageList<V>;
|
|
@@ -89,12 +95,13 @@ export class View<V = any, S = never> {
|
|
|
89
95
|
same = (one?: unknown, another?: unknown): boolean => isEqual(this.from(one), this.from(another));
|
|
90
96
|
|
|
91
97
|
private reduce = (source: any): any =>
|
|
92
|
-
use(asJson(source), src =>
|
|
93
|
-
this.viewers.reduce(
|
|
98
|
+
use(asJson(source), src => {
|
|
99
|
+
const mapped = this.viewers.reduce(
|
|
94
100
|
(acc, v) => (v.key === spread ? { ...acc, ...asJson(v.f(src, v.key)) } : typesJson.set(acc, v.key, v.f(src, v.key))),
|
|
95
101
|
this.startsFrom === 'scratch' ? {} : src
|
|
96
|
-
)
|
|
97
|
-
|
|
102
|
+
);
|
|
103
|
+
return this.spreads.reduce((acc, f) => ({ ...acc, ...asJson(ofGet(f, src)) }), mapped);
|
|
104
|
+
});
|
|
98
105
|
}
|
|
99
106
|
|
|
100
107
|
export const isSimpleView = (a: unknown): a is View => a instanceof View;
|
|
@@ -107,6 +114,7 @@ export const views = {
|
|
|
107
114
|
json,
|
|
108
115
|
spread,
|
|
109
116
|
skip: ignore,
|
|
117
|
+
equals: (key: string, value: unknown) => (a: unknown) => isEqual(traverse(a, key), value),
|
|
110
118
|
value: (value: unknown) => () => value,
|
|
111
119
|
coalesce:
|
|
112
120
|
(...keys: string[]) =>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/If.ts","../src/types/List.ts"],"sourcesContent":["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';\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 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 { asString } 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 this.sort((e1, e2) => (ofProperty(e1, p) > ofProperty(e2, p) ? 1 : -1));\n }\n\n desc(p: GetProperty<T, any>): List<T> {\n return 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(f: (i: T) => Promise<T>): Promise<List<T>> {\n return Promise.all(super.map(e => f(e))).then(a => toList<T>(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 typeof p === 'function' ? this.sort((e1, e2) => (p(e1) < p(e2) ? 1 : -1)).first() : 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 typeof p === 'function' ? this.sort((e1, e2) => (p(e1) > p(e2) ? 1 : -1)).first() : this.asc(p).first();\n }\n\n byId(id: Id): T {\n return this.first(i => asString((i as any).id) === asString(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 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 => asString((i as any)?.id) === asString(id), val);\n }\n\n updateById<U = T>(id: Id, val: T | ((v: U) => T)) {\n return this.update(i => asString((i as any)?.id) === asString(id), val);\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"],"mappings":"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","names":["o","acc","on"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/View.ts"],"sourcesContent":["import { traverse } from './Traverse';\nimport { ifDefined } from './If';\nimport { Primitive } from '../types/Primitive';\nimport { Constructor, isConstructor, use } from '../types/Constructor';\nimport { asJson, json as typesJson } from '../types/Json';\nimport { choose } from '../types/Case';\nimport { isArray, isBoolean, isFunction, isString } from '../types/Is';\nimport { meta } from '../types/Meta';\nimport { isPageList, PageList, toPageList } from '../types/PageList';\nimport { List } from '../types/List';\nimport { isEqual } from '../types/IsEqual';\nimport { DontInfer } from '../types/Types';\nimport { AnyKey } from '../types/AnyKey';\nimport { EnumConstructor, isEnumConstructor } from '../types/Enum';\nimport { Id } from '../types/Id';\n\ntype Func<T = unknown> = (a: any, key?: string) => T;\ntype FuncOn<S> = (a: S, key?: string) => unknown;\ntype Viewer = { key: string; f: Func };\n\ntype ViewType<V = any> = Primitive | EnumConstructor | Constructor | Func | View<V> | undefined;\ntype ViewValue<S = never> = [S] extends [never] ? ViewType : Exclude<ViewType, string | Func> | AnyKey<S> | FuncOn<S>;\ntype ViewRecord<V = any, S = never> = [S] extends [never]\n ? Partial<Record<keyof V, ViewValue<S>>>\n : Partial<Record<keyof V, ViewValue<S>>> & Partial<Record<Exclude<Extract<keyof S, string>, Extract<keyof V, string>>, typeof ignore>>;\n\nconst ignore = Symbol('view.ignore');\nconst keep = Symbol('view.keep');\nconst json = Symbol('view.json');\nconst spread = 'view.spread';\n\nexport const toViewer = (key: string, value: ViewType): Viewer =>\n choose(value)\n .is.not.defined(v => v, { key, f: () => undefined } as Viewer)\n .type(isBoolean, b => ({ key, f: () => b }))\n .equals(ignore, { key, f: () => undefined })\n .equals(keep, { key, f: (a: any) => traverse(a, key) })\n .equals(json, { key, f: (a: any) => asJson(traverse(a, key)) })\n .type(isString, s => ({ key, f: (a: any) => traverse(a, s) }))\n .type(isEnumConstructor, c => ({\n key,\n f: (a, key) => use(traverse(a, key), v => (isArray(v) ? c.byIds(v) : c.byId(v as Id))),\n }))\n .type(isConstructor, c => ({\n key,\n f: (a, key) => use(traverse(a, key), v => (isArray(v) ? v.map(i => optional(c, i)) : optional(c, v))),\n }))\n .type(isSimpleView, f => ({ key, f: (a: any) => ifDefined(traverse(a, key), v => f.from(v)) }))\n .type(isFunction, f => ({ key, f }))\n .else(v => ({ key, f: () => v }));\n\nconst optional = (c: Constructor, v: any) =>\n ifDefined(\n v,\n i => new c(i),\n () => v\n );\n\nconst toViewers = (views: ViewRecord): Viewer[] =>\n meta(views)\n .entries<ViewType>()\n .map(([k, v]) => toViewer(k, v));\n\nexport class View<V = any, S = never> {\n constructor(\n private views = {} as ViewRecord<V, S>,\n readonly startsFrom: 'scratch' | 'source' = 'scratch',\n readonly viewers: Viewer[] = toViewers(views)\n ) {}\n\n get fromSource(): View<V, S> {\n return new View(this.views, 'source', this.viewers);\n }\n\n from<T = unknown>(source: PageList<T>): PageList<V>;\n from<T = unknown>(source: List<T>): List<V>;\n from<T = unknown>(source: T[]): V[];\n from<T = unknown>(source: T): V;\n from<T = unknown>(source: PageList<T> | List<T> | T[] | T): PageList<V> | List<V> | V[] | V {\n if (isPageList(source))\n return toPageList(\n source.map(s => this.reduce(s)),\n source.options\n );\n if (isArray(source)) return source.map(s => this.reduce(s));\n return this.reduce(source);\n }\n\n same = (one?: unknown, another?: unknown): boolean => isEqual(this.from(one), this.from(another));\n\n private reduce = (source: any): any =>\n use(asJson(source), src =>\n this.viewers.reduce(\n (acc, v) => (v.key === spread ? { ...acc, ...asJson(v.f(src, v.key)) } : typesJson.set(acc, v.key, v.f(src, v.key))),\n this.startsFrom === 'scratch' ? {} : src\n )\n );\n}\n\nexport const isSimpleView = (a: unknown): a is View => a instanceof View;\n\nexport const view = <V = any, S = never>(views: ViewRecord<DontInfer<V>, DontInfer<S>>): View<V, S> => new View<V, S>(views);\n\nexport const views = {\n ignore,\n keep,\n json,\n spread,\n skip: ignore,\n value: (value: unknown) => () => value,\n coalesce:\n (...keys: string[]) =>\n (a: unknown) =>\n keys.reduce<unknown>((result, k) => result ?? traverse(a, k), undefined),\n or: {\n key: (altKey: string) => (a: unknown, key?: string) => traverse(a, key) ?? traverse(a, altKey),\n value: (altValue: unknown) => (a: unknown, key?: string) => traverse(a, key) ?? altValue,\n func: (altFunc: Func) => (a: unknown, key?: string) => traverse(a, key) ?? altFunc(a, key),\n },\n} as const;\n\n// spread: (a: any, key: string) => ({...a, ...(use(traverse(a, key), v => isObject(v) ? v : ({[key]: v})))}),\n"],"mappings":"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","names":["json","key","views"]}
|
|
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
|
|
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
|