@thisisagile/easy 17.11.23 → 17.11.25

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.
Files changed (53) hide show
  1. package/dist/{chunk-UKRJA647.mjs → chunk-2KBLMD52.mjs} +3 -3
  2. package/dist/{chunk-KUNNHHWI.mjs → chunk-4KF3K32F.mjs} +1 -1
  3. package/dist/chunk-4KF3K32F.mjs.map +1 -0
  4. package/dist/{chunk-4LYIOOTQ.mjs → chunk-5MJFKHSN.mjs} +4 -4
  5. package/dist/{chunk-EXNTRYYU.mjs → chunk-EAQ2MYAX.mjs} +2 -2
  6. package/dist/{chunk-P3IR2KG5.mjs → chunk-GPSPH4NX.mjs} +2 -2
  7. package/dist/chunk-GPSPH4NX.mjs.map +1 -0
  8. package/dist/{chunk-ZNNMZWOM.mjs → chunk-K5WFQH7X.mjs} +4 -4
  9. package/dist/{chunk-WPK337WV.mjs → chunk-LFV5W6AB.mjs} +3 -3
  10. package/dist/{chunk-CV7RVOLT.mjs → chunk-SV3LLENW.mjs} +2 -2
  11. package/dist/{chunk-J5CI6CMN.mjs → chunk-UCTCPEZD.mjs} +4 -4
  12. package/dist/{chunk-VNTEYLED.mjs → chunk-X4UT6C6X.mjs} +5 -5
  13. package/dist/{chunk-VU774ZTZ.mjs → chunk-YD4NFOOC.mjs} +3 -3
  14. package/dist/{chunk-AFDX6UXH.mjs → chunk-ZAWHOX5H.mjs} +4 -4
  15. package/dist/data/InMemoryGateway.mjs +1 -1
  16. package/dist/domain/Audit.mjs +2 -2
  17. package/dist/domain/Child.mjs +2 -2
  18. package/dist/domain/Entity.mjs +7 -7
  19. package/dist/http/RequestOptions.mjs +2 -2
  20. package/dist/http/RestResult.mjs +2 -2
  21. package/dist/http/toResponse.mjs +3 -3
  22. package/dist/index.js +1 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/process/Manage.mjs +2 -2
  25. package/dist/process/Search.mjs +2 -2
  26. package/dist/resources/Req.d.ts +1 -1
  27. package/dist/services/Api.mjs +8 -8
  28. package/dist/services/ApiGateway.mjs +11 -11
  29. package/dist/services/AxiosProvider.mjs +7 -7
  30. package/dist/services/MappedRouteGateway.mjs +14 -14
  31. package/dist/services/RouteGateway.mjs +12 -12
  32. package/dist/services/ViewRouteGateway.mjs +14 -14
  33. package/dist/sql/Table.mjs +1 -1
  34. package/dist/sql/TableGateway.mjs +1 -1
  35. package/dist/types/PageList.d.ts +1 -0
  36. package/dist/types/PageList.mjs +1 -1
  37. package/dist/utils/Mapper.mjs +1 -1
  38. package/dist/utils/View.mjs +2 -2
  39. package/package.json +1 -1
  40. package/src/types/PageList.ts +1 -1
  41. package/src/utils/Mapper.ts +1 -1
  42. package/dist/chunk-KUNNHHWI.mjs.map +0 -1
  43. package/dist/chunk-P3IR2KG5.mjs.map +0 -1
  44. /package/dist/{chunk-UKRJA647.mjs.map → chunk-2KBLMD52.mjs.map} +0 -0
  45. /package/dist/{chunk-4LYIOOTQ.mjs.map → chunk-5MJFKHSN.mjs.map} +0 -0
  46. /package/dist/{chunk-EXNTRYYU.mjs.map → chunk-EAQ2MYAX.mjs.map} +0 -0
  47. /package/dist/{chunk-ZNNMZWOM.mjs.map → chunk-K5WFQH7X.mjs.map} +0 -0
  48. /package/dist/{chunk-WPK337WV.mjs.map → chunk-LFV5W6AB.mjs.map} +0 -0
  49. /package/dist/{chunk-CV7RVOLT.mjs.map → chunk-SV3LLENW.mjs.map} +0 -0
  50. /package/dist/{chunk-J5CI6CMN.mjs.map → chunk-UCTCPEZD.mjs.map} +0 -0
  51. /package/dist/{chunk-VNTEYLED.mjs.map → chunk-X4UT6C6X.mjs.map} +0 -0
  52. /package/dist/{chunk-VU774ZTZ.mjs.map → chunk-YD4NFOOC.mjs.map} +0 -0
  53. /package/dist/{chunk-AFDX6UXH.mjs.map → chunk-ZAWHOX5H.mjs.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Search
3
- } from "../chunk-CV7RVOLT.mjs";
4
- import "../chunk-KUNNHHWI.mjs";
3
+ } from "../chunk-SV3LLENW.mjs";
4
+ import "../chunk-4KF3K32F.mjs";
5
5
  import "../chunk-FT7I64SO.mjs";
6
6
  import "../chunk-OFGI5FLG.mjs";
7
7
  import "../chunk-XTWAPJQ5.mjs";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Search
3
- } from "../chunk-CV7RVOLT.mjs";
4
- import "../chunk-KUNNHHWI.mjs";
3
+ } from "../chunk-SV3LLENW.mjs";
4
+ import "../chunk-4KF3K32F.mjs";
5
5
  import "../chunk-FT7I64SO.mjs";
6
6
  import "../chunk-OFGI5FLG.mjs";
7
7
  import "../chunk-XTWAPJQ5.mjs";
@@ -11,7 +11,7 @@ export declare class Req<T = unknown> implements Omit<PageOptions, 'sort'> {
11
11
  readonly headers: Record<string, OneOrMore<string>>;
12
12
  readonly skip: Optional<number>;
13
13
  readonly take: Optional<number>;
14
- constructor(path: Json, query: Json, body: T, headers: Record<string, OneOrMore<string>>);
14
+ constructor(path: Json | undefined, query: Json | undefined, body: T, headers: Record<string, OneOrMore<string>>);
15
15
  get id(): Id;
16
16
  get q(): JsonValue;
17
17
  get: (key: Text) => any;
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  Api,
3
3
  api
4
- } from "../chunk-UKRJA647.mjs";
5
- import "../chunk-J5CI6CMN.mjs";
6
- import "../chunk-EXNTRYYU.mjs";
7
- import "../chunk-4LYIOOTQ.mjs";
8
- import "../chunk-UYDZZAEK.mjs";
4
+ } from "../chunk-2KBLMD52.mjs";
5
+ import "../chunk-UCTCPEZD.mjs";
6
+ import "../chunk-EAQ2MYAX.mjs";
7
+ import "../chunk-5MJFKHSN.mjs";
9
8
  import "../chunk-HYIHPHGJ.mjs";
10
9
  import "../chunk-SPMBBLP2.mjs";
11
- import "../chunk-ZNNMZWOM.mjs";
12
- import "../chunk-LXQQ5N6S.mjs";
13
- import "../chunk-6WEUF3WU.mjs";
10
+ import "../chunk-K5WFQH7X.mjs";
14
11
  import "../chunk-SW2OCUH3.mjs";
12
+ import "../chunk-UYDZZAEK.mjs";
13
+ import "../chunk-LXQQ5N6S.mjs";
15
14
  import "../chunk-EA6HSMJJ.mjs";
16
15
  import "../chunk-2BHUXSFT.mjs";
16
+ import "../chunk-6WEUF3WU.mjs";
17
17
  import "../chunk-FT7I64SO.mjs";
18
18
  import "../chunk-OFGI5FLG.mjs";
19
19
  import "../chunk-XTWAPJQ5.mjs";
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  ApiGateway
3
- } from "../chunk-WPK337WV.mjs";
4
- import "../chunk-UKRJA647.mjs";
5
- import "../chunk-J5CI6CMN.mjs";
6
- import "../chunk-EXNTRYYU.mjs";
7
- import "../chunk-4LYIOOTQ.mjs";
8
- import "../chunk-UYDZZAEK.mjs";
3
+ } from "../chunk-LFV5W6AB.mjs";
4
+ import "../chunk-2KBLMD52.mjs";
5
+ import "../chunk-UCTCPEZD.mjs";
6
+ import "../chunk-EAQ2MYAX.mjs";
7
+ import "../chunk-5MJFKHSN.mjs";
9
8
  import "../chunk-HYIHPHGJ.mjs";
10
9
  import "../chunk-SPMBBLP2.mjs";
11
- import "../chunk-ZNNMZWOM.mjs";
12
- import "../chunk-LXQQ5N6S.mjs";
13
- import "../chunk-6WEUF3WU.mjs";
10
+ import "../chunk-K5WFQH7X.mjs";
14
11
  import "../chunk-SW2OCUH3.mjs";
15
- import "../chunk-F62OESVK.mjs";
16
- import "../chunk-KUNNHHWI.mjs";
12
+ import "../chunk-UYDZZAEK.mjs";
13
+ import "../chunk-LXQQ5N6S.mjs";
17
14
  import "../chunk-EA6HSMJJ.mjs";
18
15
  import "../chunk-2BHUXSFT.mjs";
16
+ import "../chunk-6WEUF3WU.mjs";
17
+ import "../chunk-F62OESVK.mjs";
18
+ import "../chunk-4KF3K32F.mjs";
19
19
  import "../chunk-FT7I64SO.mjs";
20
20
  import "../chunk-OFGI5FLG.mjs";
21
21
  import "../chunk-XTWAPJQ5.mjs";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  AxiosProvider
3
- } from "../chunk-J5CI6CMN.mjs";
4
- import "../chunk-EXNTRYYU.mjs";
5
- import "../chunk-4LYIOOTQ.mjs";
6
- import "../chunk-UYDZZAEK.mjs";
3
+ } from "../chunk-UCTCPEZD.mjs";
4
+ import "../chunk-EAQ2MYAX.mjs";
5
+ import "../chunk-5MJFKHSN.mjs";
7
6
  import "../chunk-HYIHPHGJ.mjs";
8
- import "../chunk-ZNNMZWOM.mjs";
9
- import "../chunk-LXQQ5N6S.mjs";
10
- import "../chunk-6WEUF3WU.mjs";
7
+ import "../chunk-K5WFQH7X.mjs";
11
8
  import "../chunk-SW2OCUH3.mjs";
9
+ import "../chunk-UYDZZAEK.mjs";
10
+ import "../chunk-LXQQ5N6S.mjs";
12
11
  import "../chunk-EA6HSMJJ.mjs";
13
12
  import "../chunk-2BHUXSFT.mjs";
13
+ import "../chunk-6WEUF3WU.mjs";
14
14
  import "../chunk-FT7I64SO.mjs";
15
15
  import "../chunk-OFGI5FLG.mjs";
16
16
  import "../chunk-XTWAPJQ5.mjs";
@@ -1,31 +1,31 @@
1
1
  import {
2
2
  Mapper
3
- } from "../chunk-P3IR2KG5.mjs";
3
+ } from "../chunk-GPSPH4NX.mjs";
4
4
  import "../chunk-WJZFE5NE.mjs";
5
5
  import {
6
6
  RouteGateway
7
- } from "../chunk-VU774ZTZ.mjs";
8
- import "../chunk-WPK337WV.mjs";
7
+ } from "../chunk-YD4NFOOC.mjs";
8
+ import "../chunk-LFV5W6AB.mjs";
9
9
  import {
10
10
  Api
11
- } from "../chunk-UKRJA647.mjs";
12
- import "../chunk-J5CI6CMN.mjs";
13
- import "../chunk-EXNTRYYU.mjs";
14
- import "../chunk-4LYIOOTQ.mjs";
15
- import "../chunk-UYDZZAEK.mjs";
11
+ } from "../chunk-2KBLMD52.mjs";
12
+ import "../chunk-UCTCPEZD.mjs";
13
+ import "../chunk-EAQ2MYAX.mjs";
14
+ import "../chunk-5MJFKHSN.mjs";
16
15
  import "../chunk-HYIHPHGJ.mjs";
17
16
  import "../chunk-SPMBBLP2.mjs";
18
- import "../chunk-ZNNMZWOM.mjs";
17
+ import "../chunk-K5WFQH7X.mjs";
18
+ import "../chunk-SW2OCUH3.mjs";
19
+ import "../chunk-UYDZZAEK.mjs";
19
20
  import "../chunk-LXQQ5N6S.mjs";
21
+ import "../chunk-EA6HSMJJ.mjs";
22
+ import "../chunk-2BHUXSFT.mjs";
20
23
  import "../chunk-6WEUF3WU.mjs";
21
- import "../chunk-SW2OCUH3.mjs";
22
24
  import "../chunk-GCY5A63A.mjs";
23
25
  import "../chunk-MDXL65W4.mjs";
24
- import "../chunk-OSMTZTEO.mjs";
25
26
  import "../chunk-F62OESVK.mjs";
26
- import "../chunk-KUNNHHWI.mjs";
27
- import "../chunk-EA6HSMJJ.mjs";
28
- import "../chunk-2BHUXSFT.mjs";
27
+ import "../chunk-4KF3K32F.mjs";
28
+ import "../chunk-OSMTZTEO.mjs";
29
29
  import "../chunk-FT7I64SO.mjs";
30
30
  import "../chunk-OFGI5FLG.mjs";
31
31
  import "../chunk-XTWAPJQ5.mjs";
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  RouteGateway
3
- } from "../chunk-VU774ZTZ.mjs";
4
- import "../chunk-WPK337WV.mjs";
5
- import "../chunk-UKRJA647.mjs";
6
- import "../chunk-J5CI6CMN.mjs";
7
- import "../chunk-EXNTRYYU.mjs";
8
- import "../chunk-4LYIOOTQ.mjs";
9
- import "../chunk-UYDZZAEK.mjs";
3
+ } from "../chunk-YD4NFOOC.mjs";
4
+ import "../chunk-LFV5W6AB.mjs";
5
+ import "../chunk-2KBLMD52.mjs";
6
+ import "../chunk-UCTCPEZD.mjs";
7
+ import "../chunk-EAQ2MYAX.mjs";
8
+ import "../chunk-5MJFKHSN.mjs";
10
9
  import "../chunk-HYIHPHGJ.mjs";
11
10
  import "../chunk-SPMBBLP2.mjs";
12
- import "../chunk-ZNNMZWOM.mjs";
13
- import "../chunk-LXQQ5N6S.mjs";
14
- import "../chunk-6WEUF3WU.mjs";
11
+ import "../chunk-K5WFQH7X.mjs";
15
12
  import "../chunk-SW2OCUH3.mjs";
16
- import "../chunk-F62OESVK.mjs";
17
- import "../chunk-KUNNHHWI.mjs";
13
+ import "../chunk-UYDZZAEK.mjs";
14
+ import "../chunk-LXQQ5N6S.mjs";
18
15
  import "../chunk-EA6HSMJJ.mjs";
19
16
  import "../chunk-2BHUXSFT.mjs";
17
+ import "../chunk-6WEUF3WU.mjs";
18
+ import "../chunk-F62OESVK.mjs";
19
+ import "../chunk-4KF3K32F.mjs";
20
20
  import "../chunk-FT7I64SO.mjs";
21
21
  import "../chunk-OFGI5FLG.mjs";
22
22
  import "../chunk-XTWAPJQ5.mjs";
@@ -1,30 +1,30 @@
1
1
  import {
2
2
  view
3
- } from "../chunk-VNTEYLED.mjs";
3
+ } from "../chunk-X4UT6C6X.mjs";
4
4
  import "../chunk-SSROJBD5.mjs";
5
5
  import "../chunk-GBZISW66.mjs";
6
6
  import {
7
7
  RouteGateway
8
- } from "../chunk-VU774ZTZ.mjs";
9
- import "../chunk-WPK337WV.mjs";
8
+ } from "../chunk-YD4NFOOC.mjs";
9
+ import "../chunk-LFV5W6AB.mjs";
10
10
  import {
11
11
  Api
12
- } from "../chunk-UKRJA647.mjs";
13
- import "../chunk-J5CI6CMN.mjs";
14
- import "../chunk-EXNTRYYU.mjs";
15
- import "../chunk-4LYIOOTQ.mjs";
16
- import "../chunk-UYDZZAEK.mjs";
12
+ } from "../chunk-2KBLMD52.mjs";
13
+ import "../chunk-UCTCPEZD.mjs";
14
+ import "../chunk-EAQ2MYAX.mjs";
15
+ import "../chunk-5MJFKHSN.mjs";
17
16
  import "../chunk-HYIHPHGJ.mjs";
18
17
  import "../chunk-SPMBBLP2.mjs";
19
- import "../chunk-ZNNMZWOM.mjs";
20
- import "../chunk-LXQQ5N6S.mjs";
21
- import "../chunk-6WEUF3WU.mjs";
18
+ import "../chunk-K5WFQH7X.mjs";
22
19
  import "../chunk-SW2OCUH3.mjs";
23
- import "../chunk-OSMTZTEO.mjs";
24
- import "../chunk-F62OESVK.mjs";
25
- import "../chunk-KUNNHHWI.mjs";
20
+ import "../chunk-UYDZZAEK.mjs";
21
+ import "../chunk-LXQQ5N6S.mjs";
26
22
  import "../chunk-EA6HSMJJ.mjs";
27
23
  import "../chunk-2BHUXSFT.mjs";
24
+ import "../chunk-6WEUF3WU.mjs";
25
+ import "../chunk-F62OESVK.mjs";
26
+ import "../chunk-4KF3K32F.mjs";
27
+ import "../chunk-OSMTZTEO.mjs";
28
28
  import "../chunk-FT7I64SO.mjs";
29
29
  import "../chunk-OFGI5FLG.mjs";
30
30
  import "../chunk-XTWAPJQ5.mjs";
@@ -23,7 +23,7 @@ import "../chunk-W4SWU2TX.mjs";
23
23
  import {
24
24
  Mapper,
25
25
  mappings
26
- } from "../chunk-P3IR2KG5.mjs";
26
+ } from "../chunk-GPSPH4NX.mjs";
27
27
  import "../chunk-WJZFE5NE.mjs";
28
28
  import "../chunk-OKPGJD64.mjs";
29
29
  import {
@@ -3,7 +3,7 @@ import {
3
3
  } from "../chunk-F62OESVK.mjs";
4
4
  import {
5
5
  toPageList
6
- } from "../chunk-KUNNHHWI.mjs";
6
+ } from "../chunk-4KF3K32F.mjs";
7
7
  import {
8
8
  when
9
9
  } from "../chunk-FT7I64SO.mjs";
@@ -8,6 +8,7 @@ import type { Id } from './Id';
8
8
  export type FilterValue = {
9
9
  label?: string;
10
10
  value: any;
11
+ count?: number;
11
12
  };
12
13
  export type Filter = {
13
14
  label?: string;
@@ -5,7 +5,7 @@ import {
5
5
  toFilter,
6
6
  toPageList,
7
7
  toShortFilter
8
- } from "../chunk-KUNNHHWI.mjs";
8
+ } from "../chunk-4KF3K32F.mjs";
9
9
  import "../chunk-FT7I64SO.mjs";
10
10
  import "../chunk-OFGI5FLG.mjs";
11
11
  import "../chunk-XTWAPJQ5.mjs";
@@ -2,7 +2,7 @@ import {
2
2
  Mapper,
3
3
  isMapping,
4
4
  mappings
5
- } from "../chunk-P3IR2KG5.mjs";
5
+ } from "../chunk-GPSPH4NX.mjs";
6
6
  import "../chunk-WJZFE5NE.mjs";
7
7
  import "../chunk-GCY5A63A.mjs";
8
8
  import "../chunk-MDXL65W4.mjs";
@@ -4,11 +4,11 @@ import {
4
4
  toViewer,
5
5
  view,
6
6
  views
7
- } from "../chunk-VNTEYLED.mjs";
7
+ } from "../chunk-X4UT6C6X.mjs";
8
8
  import "../chunk-SSROJBD5.mjs";
9
9
  import "../chunk-GBZISW66.mjs";
10
+ import "../chunk-4KF3K32F.mjs";
10
11
  import "../chunk-OSMTZTEO.mjs";
11
- import "../chunk-KUNNHHWI.mjs";
12
12
  import "../chunk-FT7I64SO.mjs";
13
13
  import "../chunk-OFGI5FLG.mjs";
14
14
  import "../chunk-XTWAPJQ5.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "17.11.23",
3
+ "version": "17.11.25",
4
4
  "description": "Straightforward library for building domain-driven microservice architectures",
5
5
  "author": "Sander Hoogendoorn",
6
6
  "license": "MIT",
@@ -9,7 +9,7 @@ import { isNumber } from './Is';
9
9
  import { choose } from './Case';
10
10
  import type { Id } from './Id';
11
11
 
12
- export type FilterValue = { label?: string; value: any };
12
+ export type FilterValue = { label?: string; value: any, count?: number };
13
13
  export type Filter = { label?: string; field: string; shortField?: string; values: FilterValue[] };
14
14
 
15
15
  export const toFilter = (field: string, value: any): Filter => toShortFilter(field, field, value);
@@ -57,7 +57,7 @@ export class Mapper extends State implements Mapping {
57
57
 
58
58
  // All names op properties (in target) that are NOT properties in source
59
59
  private get droppedOut(): List<string> {
60
- return this.get('droppedOut', () => this.properties.filter(([, p]) => !this.keys.some(k => k === p.property ?? '')).map(([k]) => k));
60
+ return this.get('droppedOut', () => this.properties.filter(([, p]) => !this.keys.some(k => k === (p.property ?? ''))).map(([k]) => k));
61
61
  }
62
62
 
63
63
  public in(from: Json = {}): Json {
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/types/PageList.ts"],"sourcesContent":["import { isList, List } from './List';\nimport { Construct, ofConstruct } from './Constructor';\nimport { isA } from './IsA';\nimport { PlainSort, Sort } from './Sort';\nimport { GetProperty } from './Get';\nimport { ArrayLike } from './Array';\nimport { Optional } from './Types';\nimport { isNumber } from './Is';\nimport { choose } from './Case';\nimport type { Id } from './Id';\n\nexport type FilterValue = { label?: string; value: any };\nexport type Filter = { label?: string; field: string; shortField?: string; values: FilterValue[] };\n\nexport const toFilter = (field: string, value: any): Filter => toShortFilter(field, field, value);\nexport const toShortFilter = (field: string, shortField: string, value: any): Filter => ({\n field,\n shortField,\n values: [{ value }],\n});\n\nexport type PageOptions = { take?: number; skip?: number; sort?: Sort[]; sorts?: PlainSort; filters?: Filter[] };\nexport type PageListOptions = Exclude<PageOptions, 'sort'> & { total?: number };\n\nexport class PageList<T> extends List<T> {\n private _options?: PageListOptions;\n\n get options(): Optional<PageListOptions> {\n return this._options;\n }\n\n get take(): number {\n return this._options?.take ?? 250;\n }\n\n get skip(): number {\n return this._options?.skip ?? 0;\n }\n\n get total(): Optional<number> {\n return this._options?.total;\n }\n\n get sorts(): Optional<PlainSort> {\n return this._options?.sorts;\n }\n\n get filters(): Optional<Filter[]> {\n return this._options?.filters;\n }\n\n get meta(): PageListOptions {\n return {\n take: this.take,\n skip: this.skip,\n total: this.total,\n sorts: this.sorts,\n filters: this.filters,\n };\n }\n\n get ids(): PageList<Id> {\n return this.mapDefined(i => (i as any).id as Id);\n }\n\n asc(p: GetProperty<T, any>): PageList<T> {\n return toPageList(super.asc(p), this);\n }\n\n desc(p: GetProperty<T, any>): PageList<T> {\n return toPageList(super.desc(p), this);\n }\n\n diff(others: ArrayLike<T>): PageList<T> {\n return toPageList(super.diff(others), this);\n }\n\n diffByKey<U = T>(others: ArrayLike<U>, key: keyof T & keyof U): PageList<T> {\n return toPageList(super.diffByKey(others, key), this);\n }\n\n symmetricDiff(others: ArrayLike<T>): PageList<T> {\n return toPageList(super.symmetricDiff(others), this);\n }\n\n symmetricDiffByKey(others: ArrayLike<T>, key: keyof T): PageList<T> {\n return toPageList(super.symmetricDiffByKey(others, key), this);\n }\n\n intersect(others: ArrayLike<T>): PageList<T> {\n return toPageList(super.intersect(others), this);\n }\n\n intersectByKey<U>(others: ArrayLike<U>, key: keyof T & keyof U): PageList<T> {\n return toPageList(super.intersectByKey(others, key), this);\n }\n\n map<U>(f: (value: T, index: number, array: T[]) => U, params?: unknown): PageList<U> {\n const items = super.map(f, params);\n return toPageList(items, this);\n }\n\n flatMap<U, This = unknown>(f: (this: This, value: T, index: number, array: T[]) => ReadonlyArray<U> | U, params?: This): PageList<U> {\n return toPageList(super.flatMap(f, params), this);\n }\n\n mapDefined<U>(f: (value: T, index: number, array: T[]) => U, params?: unknown): PageList<NonNullable<U>> {\n return toPageList(super.mapDefined(f, params), this);\n }\n\n mapAsync(f: (i: T) => Promise<T>): Promise<PageList<T>> {\n return super.mapAsync(f).then(r => toPageList(r, this));\n }\n\n distinct(): PageList<T> {\n return toPageList(super.distinct(), this);\n }\n\n distinctByKey(key: keyof T): PageList<T> {\n return toPageList(super.distinctByKey(key), this);\n }\n\n distinctByValue(): PageList<T> {\n return toPageList(super.distinctByValue(), this);\n }\n\n filter(p: (value: T, index: number, array: T[]) => unknown, params?: unknown): PageList<T> {\n return toPageList(super.filter(p, params), this);\n }\n\n accumulate(...keys: (keyof T)[]): PageList<T> {\n return toPageList(super.accumulate(...keys), this);\n }\n\n concat(...items: ConcatArray<T>[]): PageList<T>;\n\n concat(...items: (T | ConcatArray<T>)[]): PageList<T>;\n\n concat(...items: (T | ConcatArray<T>)[]): PageList<T> {\n return toPageList(super.concat(...items), this);\n }\n\n reverse(): PageList<T> {\n return toPageList(super.reverse(), this);\n }\n\n splice(start: number, deleteCount?: number): PageList<T>;\n\n splice(start: number, deleteCount: number, ...items: T[]): PageList<T>;\n\n splice(start: number, deleteCount: number, ...items: T[]): PageList<T> {\n return toPageList(super.splice(start, deleteCount, ...items), this);\n }\n\n remove(item: T): PageList<T> {\n return toPageList(super.remove(item), this);\n }\n\n replace(key: keyof T, item: T): PageList<T> {\n return toPageList(super.replace(key, item), this);\n }\n\n switch(item: T): PageList<T> {\n return toPageList(super.switch(item), this);\n }\n\n defined(): PageList<NonNullable<T>> {\n return toPageList(super.defined(), this);\n }\n\n orElse(...alt: ArrayLike<T>): Optional<PageList<T>> {\n return toPageList(super.orElse(...alt), this);\n }\n\n slice(start?: number, end?: number): PageList<T> {\n return toPageList(super.slice(start, end), this);\n }\n\n //we needed to add U because of a Typescript issue with generics\n update<U = T>(p: (value: T, index: number, array: T[]) => unknown, val: T | ((v: U) => T)): PageList<T> {\n return toPageList(super.update(p, val), this);\n }\n\n updateFirst<U = T>(p: (value: T, index: number, array: T[]) => unknown, val: T | ((v: U) => T)): PageList<T> {\n return toPageList(super.updateFirst(p, val), this);\n }\n\n updateFirstById<U = T>(id: Id, val: T | ((v: U) => T)): PageList<T> {\n return toPageList(super.updateFirstById(id, val), this);\n }\n\n updateById<U = T>(id: Id, val: T | ((v: U) => T)): PageList<T> {\n return toPageList(super.updateById(id, val), this);\n }\n\n private setPageOptions(options?: PageListOptions): this {\n this._options = options;\n return this;\n }\n}\n\nexport const isPageList = <T>(l?: unknown): l is PageList<T> => isList<T>(l) && isA(l, 'total');\n\nexport const toPageList = <T>(items: T[] = [], options?: Omit<PageOptions, 'sort'> & { total?: number }): PageList<T> =>\n (\n choose(items)\n .case(\n i => i.length === 1 && isNumber(i[0]),\n i => new PageList<T>().add(...i)\n )\n .else(i => new PageList<T>(...i)) as any\n ).setPageOptions(options);\n\n/* @deprecated No longer needed as the PageList is now a class that extends from List, use the map function */\nexport const asPageList = <T, U>(c: Construct<T>, items = toPageList<U>()): PageList<T> => items.map(i => ofConstruct(c, i));\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/Mapper.ts"],"sourcesContent":["import { Property, PropertyOptions } from './Property';\nimport { State } from './State';\nimport { ifNotEmpty } from './If';\nimport { json, Json, JsonValue } from '../types/Json';\nimport { Optional } from '../types/Types';\nimport { TypeGuard } from '../types/TypeGuard';\nimport { isA } from '../types/IsA';\nimport { List, toList } from '../types/List';\nimport { meta } from '../types/Meta';\nimport { isEmpty } from '../types/Is';\nimport { Get, ofGet } from '../types/Get';\nimport { Construct, ofConstruct } from '../types/Constructor';\n\nexport type Mapping = {\n property: string;\n in: (source?: Json, key?: string) => Optional<JsonValue>;\n out: (source?: Json, key?: string) => Optional<JsonValue>;\n};\nexport const isMapping: TypeGuard<Mapping> = (m?: unknown): m is Mapping => isA<Mapping>(m, 'in', 'out');\n\nexport type MapStartFrom = 'scratch' | 'source';\nexport type MapOptions = { startFrom: MapStartFrom };\n\nexport class Mapper extends State implements Mapping {\n protected readonly map = mappings;\n\n constructor(\n readonly options: MapOptions = { startFrom: 'scratch' },\n readonly property = ''\n ) {\n super();\n }\n\n // All properties that are a mapping\n get properties(): List<[string, Mapping]> {\n return this.get('props', () =>\n meta(this)\n .entries<Mapping>()\n .filter(([, v]) => isMapping(v))\n );\n }\n\n // All names of properties (in target) that have a Mapping\n get keys(): List<string> {\n return this.get('keys', () => this.properties.map(([k]) => k));\n }\n\n // All names of properties (in source) that are named in a Mapping\n get columns(): List<string> {\n return this.get('columns', () => this.properties.mapDefined(([, p]) => ifNotEmpty(p.property, p.property))).distinct();\n }\n\n // All names of properties (in source) that are NOT properties in target\n private get droppedIn(): List<string> {\n return this.get('droppedIn', () => this.columns.filter(c => !this.keys.some(k => k === c)));\n }\n\n // All names op properties (in target) that are NOT properties in source\n private get droppedOut(): List<string> {\n return this.get('droppedOut', () => this.properties.filter(([, p]) => !this.keys.some(k => k === p.property ?? '')).map(([k]) => k));\n }\n\n public in(from: Json = {}): Json {\n return json.omit(\n this.properties.reduce((a, [k, p]) => json.merge(a, { [k]: p.in({ ...a, ...from }) }), this.options.startFrom === 'source' ? from : {}),\n ...this.droppedIn\n );\n }\n\n public out(to: Json = {}): Json {\n return json.omit(\n this.properties.reduce(\n (a, [k, p]) => json.merge(a, isEmpty(p.property) ? p.out(to, k) : { [p.property ?? '']: p.out({ ...a, ...to }, k) }),\n this.options.startFrom === 'source' ? to : {}\n ),\n ...this.droppedOut\n );\n }\n\n toString(): string {\n return this.constructor.name;\n }\n}\n\nexport const mappings = {\n item: (property: string, options?: PropertyOptions): Property => new Property(property, options),\n ignore: (property = ''): Mapping => ({\n property,\n in: (): Optional<JsonValue> => undefined,\n out: (): Optional<JsonValue> => undefined,\n }),\n skipIn: (property: string): Mapping => ({\n property,\n in: (): Optional<JsonValue> => undefined,\n out: (source: Json = {}): JsonValue => source[property],\n }),\n skipOut: (property: string): Mapping => ({\n property,\n in: (source: Json = {}): JsonValue => source[property],\n out: (): Optional<JsonValue> => undefined,\n }),\n func: (property: string, funcIn: Get<Optional<JsonValue>, Json>, funcOut: Get<Optional<JsonValue>, Json>): Mapping => ({\n property,\n in: (source: Json = {}): Optional<JsonValue> => ofGet(funcIn, source),\n out: (source: Json = {}): Optional<JsonValue> => ofGet(funcOut, source),\n }),\n add: (funcIn: Get<JsonValue, Json>): Mapping => ({\n property: '',\n in: (source: Json = {}): JsonValue => ofGet(funcIn, source),\n out: (): Optional<JsonValue> => undefined,\n }),\n map: (mapper: Construct<Mapper>, property = ''): Mapping => ({\n property,\n in: (source: Json = {}): JsonValue => ofConstruct(mapper).in(isEmpty(property) ? source : (source[property] as Json)),\n out: (source: Json = {}, key = ''): JsonValue => ofConstruct(mapper).out(isEmpty(key) ? source : (source[key] as Json)),\n }),\n propsToList: (...maps: Mapping[]): Mapping => ({\n property: '',\n in: (source: Json = {}): JsonValue => toList(maps.map(m => ofConstruct(m).in(source))).toJSON(),\n out: (source: Json = {}, key = ''): JsonValue =>\n maps.reduce((a: Json, m, i) => {\n const res = toList(source[key])[i];\n const out = m.out(res as Json);\n return { ...a, [m.property]: out ?? {} };\n }, {}),\n }),\n list: (mapper: Mapping, property: string): Mapping => ({\n property: property,\n in: (source: Json = {}): JsonValue =>\n toList(source[property])\n .map((v: any) => mapper.in(v))\n .toJSON(),\n out: (source: Json = {}, key = ''): JsonValue =>\n toList(isEmpty(key) ? source : (source[key] as Json))\n .map((v: any) => mapper.out(v))\n .toJSON(),\n }),\n};\n"],"mappings":"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","names":[]}