@thisisagile/easy 17.15.5 → 17.15.6

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 (94) hide show
  1. package/dist/{chunk-XAIHCZT4.mjs → chunk-2KZ5UP6A.mjs} +9 -9
  2. package/dist/{chunk-MJALPDQ3.mjs → chunk-5GUH2TWD.mjs} +2 -2
  3. package/dist/{chunk-7Z2TZCS5.mjs → chunk-5S26U4SJ.mjs} +7 -7
  4. package/dist/{chunk-4YU5I7EV.mjs → chunk-6BSO7J6Y.mjs} +2 -2
  5. package/dist/{chunk-3FE4R6I2.mjs → chunk-B3AQ7EZQ.mjs} +2 -2
  6. package/dist/{chunk-Z4WSXLVO.mjs → chunk-BYCWXUYD.mjs} +2 -2
  7. package/dist/{chunk-TORB7XB3.mjs → chunk-CRSP7OQT.mjs} +2 -2
  8. package/dist/{chunk-7ULNXC33.mjs → chunk-CSKOVGAP.mjs} +2 -2
  9. package/dist/{chunk-F2JDRSD6.mjs → chunk-FVP5TUK4.mjs} +3 -3
  10. package/dist/{chunk-3DGMN2JU.mjs → chunk-IKDPFRZM.mjs} +3 -3
  11. package/dist/{chunk-EDR72POF.mjs → chunk-K2QIYLIW.mjs} +2 -2
  12. package/dist/{chunk-RUCRIIYX.mjs → chunk-L3BSQAT3.mjs} +4 -4
  13. package/dist/{chunk-FKZ4MOTX.mjs → chunk-LLTFR25V.mjs} +4 -4
  14. package/dist/{chunk-NYFC5ZUU.mjs → chunk-MFNNNHRP.mjs} +6 -6
  15. package/dist/{chunk-PRVFFLHU.mjs → chunk-R2SXNUU3.mjs} +3 -3
  16. package/dist/{chunk-6G7SOGFB.mjs → chunk-RAXNEFRJ.mjs} +16 -8
  17. package/dist/chunk-RAXNEFRJ.mjs.map +1 -0
  18. package/dist/{chunk-WDDAMKGZ.mjs → chunk-RBQOVMPC.mjs} +5 -5
  19. package/dist/{chunk-MKW5GQPP.mjs → chunk-ROTFIQND.mjs} +2 -2
  20. package/dist/{chunk-ST6YPSAY.mjs → chunk-UHFA4Y47.mjs} +6 -6
  21. package/dist/{chunk-BMZN3WKC.mjs → chunk-UR544PJT.mjs} +2 -2
  22. package/dist/{chunk-4BO6ABZK.mjs → chunk-V3LDNX7F.mjs} +4 -4
  23. package/dist/{chunk-ONMLG5EJ.mjs → chunk-WD4PRE6L.mjs} +2 -2
  24. package/dist/{chunk-XQY3WWRY.mjs → chunk-XH6PFRYM.mjs} +3 -3
  25. package/dist/data/InMemoryGateway.mjs +6 -6
  26. package/dist/domain/Audit.mjs +8 -8
  27. package/dist/domain/Child.mjs +8 -8
  28. package/dist/domain/DateTime.mjs +5 -5
  29. package/dist/domain/Entity.mjs +11 -11
  30. package/dist/domain/Repo.mjs +7 -7
  31. package/dist/domain/Struct.mjs +5 -5
  32. package/dist/domain/Typo.mjs +5 -5
  33. package/dist/http/CacheControl.mjs +6 -6
  34. package/dist/http/RequestOptions.mjs +4 -4
  35. package/dist/http/RestResult.mjs +5 -5
  36. package/dist/http/toResponse.mjs +6 -6
  37. package/dist/index.js +9 -1
  38. package/dist/index.js.map +1 -1
  39. package/dist/process/App.mjs +2 -2
  40. package/dist/process/Manage.mjs +6 -6
  41. package/dist/process/Scope.mjs +2 -2
  42. package/dist/process/Search.mjs +6 -6
  43. package/dist/process/UseCase.mjs +3 -3
  44. package/dist/resources/Req.mjs +5 -5
  45. package/dist/services/Api.mjs +12 -12
  46. package/dist/services/ApiGateway.mjs +15 -15
  47. package/dist/services/AxiosProvider.mjs +11 -11
  48. package/dist/services/MappedRouteGateway.mjs +18 -18
  49. package/dist/services/RouteGateway.mjs +16 -16
  50. package/dist/services/ViewRouteGateway.mjs +18 -18
  51. package/dist/sql/Column.mjs +5 -5
  52. package/dist/sql/Table.mjs +8 -8
  53. package/dist/sql/TableGateway.mjs +6 -6
  54. package/dist/types/CacheAge.mjs +6 -6
  55. package/dist/types/Case.mjs +4 -4
  56. package/dist/types/Exception.mjs +2 -2
  57. package/dist/types/Gateway.mjs +3 -3
  58. package/dist/types/IsEqual.mjs +5 -5
  59. package/dist/types/Number.mjs +5 -5
  60. package/dist/types/PageList.mjs +5 -5
  61. package/dist/types/Parser.mjs +4 -4
  62. package/dist/types/Repository.mjs +3 -3
  63. package/dist/types/Try.mjs +4 -4
  64. package/dist/types/Uri.mjs +6 -6
  65. package/dist/utils/View.d.ts +1 -0
  66. package/dist/utils/View.mjs +7 -7
  67. package/dist/validation/Contraints.mjs +5 -5
  68. package/dist/validation/Validate.mjs +4 -4
  69. package/dist/validation/When.mjs +4 -4
  70. package/package.json +1 -1
  71. package/src/utils/View.ts +8 -1
  72. package/dist/chunk-6G7SOGFB.mjs.map +0 -1
  73. /package/dist/{chunk-XAIHCZT4.mjs.map → chunk-2KZ5UP6A.mjs.map} +0 -0
  74. /package/dist/{chunk-MJALPDQ3.mjs.map → chunk-5GUH2TWD.mjs.map} +0 -0
  75. /package/dist/{chunk-7Z2TZCS5.mjs.map → chunk-5S26U4SJ.mjs.map} +0 -0
  76. /package/dist/{chunk-4YU5I7EV.mjs.map → chunk-6BSO7J6Y.mjs.map} +0 -0
  77. /package/dist/{chunk-3FE4R6I2.mjs.map → chunk-B3AQ7EZQ.mjs.map} +0 -0
  78. /package/dist/{chunk-Z4WSXLVO.mjs.map → chunk-BYCWXUYD.mjs.map} +0 -0
  79. /package/dist/{chunk-TORB7XB3.mjs.map → chunk-CRSP7OQT.mjs.map} +0 -0
  80. /package/dist/{chunk-7ULNXC33.mjs.map → chunk-CSKOVGAP.mjs.map} +0 -0
  81. /package/dist/{chunk-F2JDRSD6.mjs.map → chunk-FVP5TUK4.mjs.map} +0 -0
  82. /package/dist/{chunk-3DGMN2JU.mjs.map → chunk-IKDPFRZM.mjs.map} +0 -0
  83. /package/dist/{chunk-EDR72POF.mjs.map → chunk-K2QIYLIW.mjs.map} +0 -0
  84. /package/dist/{chunk-RUCRIIYX.mjs.map → chunk-L3BSQAT3.mjs.map} +0 -0
  85. /package/dist/{chunk-FKZ4MOTX.mjs.map → chunk-LLTFR25V.mjs.map} +0 -0
  86. /package/dist/{chunk-NYFC5ZUU.mjs.map → chunk-MFNNNHRP.mjs.map} +0 -0
  87. /package/dist/{chunk-PRVFFLHU.mjs.map → chunk-R2SXNUU3.mjs.map} +0 -0
  88. /package/dist/{chunk-WDDAMKGZ.mjs.map → chunk-RBQOVMPC.mjs.map} +0 -0
  89. /package/dist/{chunk-MKW5GQPP.mjs.map → chunk-ROTFIQND.mjs.map} +0 -0
  90. /package/dist/{chunk-ST6YPSAY.mjs.map → chunk-UHFA4Y47.mjs.map} +0 -0
  91. /package/dist/{chunk-BMZN3WKC.mjs.map → chunk-UR544PJT.mjs.map} +0 -0
  92. /package/dist/{chunk-4BO6ABZK.mjs.map → chunk-V3LDNX7F.mjs.map} +0 -0
  93. /package/dist/{chunk-ONMLG5EJ.mjs.map → chunk-WD4PRE6L.mjs.map} +0 -0
  94. /package/dist/{chunk-XQY3WWRY.mjs.map → chunk-XH6PFRYM.mjs.map} +0 -0
@@ -5,18 +5,18 @@ import {
5
5
  toFilter,
6
6
  toPageList,
7
7
  toShortFilter
8
- } from "../chunk-TORB7XB3.mjs";
9
- import "../chunk-XAIHCZT4.mjs";
8
+ } from "../chunk-CRSP7OQT.mjs";
9
+ import "../chunk-2KZ5UP6A.mjs";
10
10
  import "../chunk-OFGI5FLG.mjs";
11
11
  import "../chunk-NCEWAKOZ.mjs";
12
12
  import "../chunk-Q3WMGUO2.mjs";
13
13
  import "../chunk-5HENJTR6.mjs";
14
- import "../chunk-FKZ4MOTX.mjs";
14
+ import "../chunk-LLTFR25V.mjs";
15
15
  import "../chunk-WSBULPUZ.mjs";
16
- import "../chunk-JVDKV5HE.mjs";
17
- import "../chunk-WTFW6DLP.mjs";
18
16
  import "../chunk-NDCIZJXB.mjs";
19
17
  import "../chunk-MCCIBDEH.mjs";
18
+ import "../chunk-JVDKV5HE.mjs";
19
+ import "../chunk-WTFW6DLP.mjs";
20
20
  import "../chunk-H2762RTS.mjs";
21
21
  import "../chunk-A7C3XND3.mjs";
22
22
  import "../chunk-JSON7A4X.mjs";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  isValid
3
- } from "../chunk-XAIHCZT4.mjs";
3
+ } from "../chunk-2KZ5UP6A.mjs";
4
4
  import "../chunk-OFGI5FLG.mjs";
5
5
  import "../chunk-NCEWAKOZ.mjs";
6
6
  import "../chunk-Q3WMGUO2.mjs";
7
7
  import "../chunk-5HENJTR6.mjs";
8
- import "../chunk-FKZ4MOTX.mjs";
8
+ import "../chunk-LLTFR25V.mjs";
9
9
  import "../chunk-WSBULPUZ.mjs";
10
- import "../chunk-JVDKV5HE.mjs";
11
- import "../chunk-WTFW6DLP.mjs";
12
10
  import "../chunk-NDCIZJXB.mjs";
13
11
  import "../chunk-MCCIBDEH.mjs";
12
+ import "../chunk-JVDKV5HE.mjs";
13
+ import "../chunk-WTFW6DLP.mjs";
14
14
  import "../chunk-H2762RTS.mjs";
15
15
  import "../chunk-A7C3XND3.mjs";
16
16
  import "../chunk-JSON7A4X.mjs";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  Repository
3
- } from "../chunk-MKW5GQPP.mjs";
3
+ } from "../chunk-ROTFIQND.mjs";
4
4
  import "../chunk-5HENJTR6.mjs";
5
- import "../chunk-FKZ4MOTX.mjs";
5
+ import "../chunk-LLTFR25V.mjs";
6
+ import "../chunk-MCCIBDEH.mjs";
6
7
  import "../chunk-JVDKV5HE.mjs";
7
8
  import "../chunk-WTFW6DLP.mjs";
8
- import "../chunk-MCCIBDEH.mjs";
9
9
  import "../chunk-H2762RTS.mjs";
10
10
  import "../chunk-A7C3XND3.mjs";
11
11
  import "../chunk-JSON7A4X.mjs";
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  Try,
3
3
  tryTo
4
- } from "../chunk-XAIHCZT4.mjs";
4
+ } from "../chunk-2KZ5UP6A.mjs";
5
5
  import "../chunk-OFGI5FLG.mjs";
6
6
  import "../chunk-NCEWAKOZ.mjs";
7
7
  import "../chunk-Q3WMGUO2.mjs";
8
8
  import "../chunk-5HENJTR6.mjs";
9
- import "../chunk-FKZ4MOTX.mjs";
9
+ import "../chunk-LLTFR25V.mjs";
10
10
  import "../chunk-WSBULPUZ.mjs";
11
- import "../chunk-JVDKV5HE.mjs";
12
- import "../chunk-WTFW6DLP.mjs";
13
11
  import "../chunk-NDCIZJXB.mjs";
14
12
  import "../chunk-MCCIBDEH.mjs";
13
+ import "../chunk-JVDKV5HE.mjs";
14
+ import "../chunk-WTFW6DLP.mjs";
15
15
  import "../chunk-H2762RTS.mjs";
16
16
  import "../chunk-A7C3XND3.mjs";
17
17
  import "../chunk-JSON7A4X.mjs";
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  tryTo
3
- } from "../chunk-XAIHCZT4.mjs";
3
+ } from "../chunk-2KZ5UP6A.mjs";
4
4
  import "../chunk-OFGI5FLG.mjs";
5
5
  import "../chunk-NCEWAKOZ.mjs";
6
6
  import "../chunk-Q3WMGUO2.mjs";
7
7
  import "../chunk-5HENJTR6.mjs";
8
- import "../chunk-FKZ4MOTX.mjs";
8
+ import "../chunk-LLTFR25V.mjs";
9
9
  import "../chunk-WSBULPUZ.mjs";
10
- import "../chunk-JVDKV5HE.mjs";
11
- import {
12
- meta
13
- } from "../chunk-WTFW6DLP.mjs";
14
10
  import {
15
11
  ctx
16
12
  } from "../chunk-NDCIZJXB.mjs";
17
13
  import "../chunk-MCCIBDEH.mjs";
14
+ import "../chunk-JVDKV5HE.mjs";
15
+ import {
16
+ meta
17
+ } from "../chunk-WTFW6DLP.mjs";
18
18
  import {
19
19
  entries
20
20
  } from "../chunk-H2762RTS.mjs";
@@ -29,6 +29,7 @@ export declare const view: <V = any>(views: ViewRecord<DontInfer<V>>) => View<V>
29
29
  export declare const views: {
30
30
  ignore: symbol;
31
31
  keep: symbol;
32
+ spread: string;
32
33
  skip: symbol;
33
34
  value: (value: unknown) => () => unknown;
34
35
  or: {
@@ -4,22 +4,22 @@ import {
4
4
  toViewer,
5
5
  view,
6
6
  views
7
- } from "../chunk-6G7SOGFB.mjs";
7
+ } from "../chunk-RAXNEFRJ.mjs";
8
8
  import "../chunk-SSROJBD5.mjs";
9
- import "../chunk-ONMLG5EJ.mjs";
10
- import "../chunk-TORB7XB3.mjs";
9
+ import "../chunk-WD4PRE6L.mjs";
11
10
  import "../chunk-KPEGHJSZ.mjs";
12
- import "../chunk-XAIHCZT4.mjs";
11
+ import "../chunk-CRSP7OQT.mjs";
12
+ import "../chunk-2KZ5UP6A.mjs";
13
13
  import "../chunk-OFGI5FLG.mjs";
14
14
  import "../chunk-NCEWAKOZ.mjs";
15
15
  import "../chunk-Q3WMGUO2.mjs";
16
16
  import "../chunk-5HENJTR6.mjs";
17
- import "../chunk-FKZ4MOTX.mjs";
17
+ import "../chunk-LLTFR25V.mjs";
18
18
  import "../chunk-WSBULPUZ.mjs";
19
- import "../chunk-JVDKV5HE.mjs";
20
- import "../chunk-WTFW6DLP.mjs";
21
19
  import "../chunk-NDCIZJXB.mjs";
22
20
  import "../chunk-MCCIBDEH.mjs";
21
+ import "../chunk-JVDKV5HE.mjs";
22
+ import "../chunk-WTFW6DLP.mjs";
23
23
  import "../chunk-H2762RTS.mjs";
24
24
  import "../chunk-A7C3XND3.mjs";
25
25
  import "../chunk-JSON7A4X.mjs";
@@ -17,19 +17,19 @@ import {
17
17
  required,
18
18
  rule,
19
19
  valid
20
- } from "../chunk-WDDAMKGZ.mjs";
20
+ } from "../chunk-RBQOVMPC.mjs";
21
21
  import "../chunk-ADJAEGCT.mjs";
22
- import "../chunk-XAIHCZT4.mjs";
22
+ import "../chunk-2KZ5UP6A.mjs";
23
23
  import "../chunk-OFGI5FLG.mjs";
24
24
  import "../chunk-NCEWAKOZ.mjs";
25
25
  import "../chunk-Q3WMGUO2.mjs";
26
26
  import "../chunk-5HENJTR6.mjs";
27
- import "../chunk-FKZ4MOTX.mjs";
27
+ import "../chunk-LLTFR25V.mjs";
28
28
  import "../chunk-WSBULPUZ.mjs";
29
- import "../chunk-JVDKV5HE.mjs";
30
- import "../chunk-WTFW6DLP.mjs";
31
29
  import "../chunk-NDCIZJXB.mjs";
32
30
  import "../chunk-MCCIBDEH.mjs";
31
+ import "../chunk-JVDKV5HE.mjs";
32
+ import "../chunk-WTFW6DLP.mjs";
33
33
  import "../chunk-H2762RTS.mjs";
34
34
  import "../chunk-A7C3XND3.mjs";
35
35
  import "../chunk-JSON7A4X.mjs";
@@ -3,17 +3,17 @@ import {
3
3
  isValid,
4
4
  validate,
5
5
  validateReject
6
- } from "../chunk-XAIHCZT4.mjs";
6
+ } from "../chunk-2KZ5UP6A.mjs";
7
7
  import "../chunk-OFGI5FLG.mjs";
8
8
  import "../chunk-NCEWAKOZ.mjs";
9
9
  import "../chunk-Q3WMGUO2.mjs";
10
10
  import "../chunk-5HENJTR6.mjs";
11
- import "../chunk-FKZ4MOTX.mjs";
11
+ import "../chunk-LLTFR25V.mjs";
12
12
  import "../chunk-WSBULPUZ.mjs";
13
- import "../chunk-JVDKV5HE.mjs";
14
- import "../chunk-WTFW6DLP.mjs";
15
13
  import "../chunk-NDCIZJXB.mjs";
16
14
  import "../chunk-MCCIBDEH.mjs";
15
+ import "../chunk-JVDKV5HE.mjs";
16
+ import "../chunk-WTFW6DLP.mjs";
17
17
  import "../chunk-H2762RTS.mjs";
18
18
  import "../chunk-A7C3XND3.mjs";
19
19
  import "../chunk-JSON7A4X.mjs";
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  When,
3
3
  when
4
- } from "../chunk-XAIHCZT4.mjs";
4
+ } from "../chunk-2KZ5UP6A.mjs";
5
5
  import "../chunk-OFGI5FLG.mjs";
6
6
  import "../chunk-NCEWAKOZ.mjs";
7
7
  import "../chunk-Q3WMGUO2.mjs";
8
8
  import "../chunk-5HENJTR6.mjs";
9
- import "../chunk-FKZ4MOTX.mjs";
9
+ import "../chunk-LLTFR25V.mjs";
10
10
  import "../chunk-WSBULPUZ.mjs";
11
- import "../chunk-JVDKV5HE.mjs";
12
- import "../chunk-WTFW6DLP.mjs";
13
11
  import "../chunk-NDCIZJXB.mjs";
14
12
  import "../chunk-MCCIBDEH.mjs";
13
+ import "../chunk-JVDKV5HE.mjs";
14
+ import "../chunk-WTFW6DLP.mjs";
15
15
  import "../chunk-H2762RTS.mjs";
16
16
  import "../chunk-A7C3XND3.mjs";
17
17
  import "../chunk-JSON7A4X.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "17.15.5",
3
+ "version": "17.15.6",
4
4
  "description": "Straightforward library for building domain-driven microservice architectures",
5
5
  "author": "Sander Hoogendoorn",
6
6
  "license": "MIT",
package/src/utils/View.ts CHANGED
@@ -19,6 +19,7 @@ type ViewRecord<V = any> = Partial<Record<keyof V, ViewType>>;
19
19
 
20
20
  const ignore = Symbol('view.ignore');
21
21
  const keep = Symbol('view.keep');
22
+ const spread = 'view.spread';
22
23
 
23
24
  export const toViewer = (key: string, value: ViewType): Viewer =>
24
25
  choose(value)
@@ -75,7 +76,12 @@ export class View<V = any> {
75
76
  same = (one?: unknown, another?: unknown): boolean => isEqual(this.from(one), this.from(another));
76
77
 
77
78
  private reduce = (source: any): any =>
78
- use(asJson(source), src => this.viewers.reduce((acc, v) => json.set(acc, v.key, v.f(src, v.key)), this.startsFrom === 'scratch' ? {} : src));
79
+ use(asJson(source), src =>
80
+ this.viewers.reduce(
81
+ (acc, v) => (v.key === spread ? { ...acc, ...asJson(v.f(src, v.key)) } : json.set(acc, v.key, v.f(src, v.key))),
82
+ this.startsFrom === 'scratch' ? {} : src
83
+ )
84
+ );
79
85
  }
80
86
 
81
87
  export const isSimpleView = (a: unknown): a is View => a instanceof View;
@@ -85,6 +91,7 @@ export const view = <V = any>(views: ViewRecord<DontInfer<V>>): View<V> => new V
85
91
  export const views = {
86
92
  ignore,
87
93
  keep,
94
+ spread,
88
95
  skip: ignore,
89
96
  value: (value: unknown) => () => value,
90
97
  or: {
@@ -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 } 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';\n\ntype Func<T = unknown> = (a: any, key?: string) => T;\ntype Viewer = { key: string; f: Func };\n\ntype ViewType<V = any> = Primitive | Constructor | Func | View<V> | undefined;\ntype ViewRecord<V = any> = Partial<Record<keyof V, ViewType>>;\n\nconst ignore = Symbol('view.ignore');\nconst keep = Symbol('view.keep');\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 .type(isString, s => ({ key, f: (a: any) => traverse(a, s) }))\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) => f.from(traverse(a, key)) }))\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> {\n constructor(\n private views = {} as ViewRecord<V>,\n readonly startsFrom: 'scratch' | 'source' = 'scratch',\n readonly viewers: Viewer[] = toViewers(views)\n ) {}\n\n get fromSource(): View<V> {\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 => this.viewers.reduce((acc, v) => json.set(acc, v.key, v.f(src, v.key)), this.startsFrom === 'scratch' ? {} : src));\n}\n\nexport const isSimpleView = (a: unknown): a is View => a instanceof View;\n\nexport const view = <V = any>(views: ViewRecord<DontInfer<V>>): View<V> => new View<V>(views);\n\nexport const views = {\n ignore,\n keep,\n skip: ignore,\n value: (value: unknown) => () => value,\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};\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":["key","views"]}