@thisisagile/easy 17.8.0 → 17.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/dist/{chunk-J25LXFUD.mjs → chunk-2FLFIA2V.mjs} +2 -2
  2. package/dist/{chunk-PKST4EDM.mjs → chunk-2NC775Z2.mjs} +4 -4
  3. package/dist/{chunk-U4ABMBGR.mjs → chunk-4PESMFF5.mjs} +11 -11
  4. package/dist/{chunk-U4ABMBGR.mjs.map → chunk-4PESMFF5.mjs.map} +1 -1
  5. package/dist/{chunk-EI2Z6FIS.mjs → chunk-64GJ7H3Z.mjs} +3 -3
  6. package/dist/{chunk-NX3TUFUV.mjs → chunk-6RU2PLI7.mjs} +2 -2
  7. package/dist/{chunk-NDFWLMAQ.mjs → chunk-7MM74FM4.mjs} +3 -3
  8. package/dist/{chunk-SW75MUZT.mjs → chunk-AQJRBULG.mjs} +7 -7
  9. package/dist/{chunk-WIA4I4EK.mjs → chunk-C5YG4G22.mjs} +2 -2
  10. package/dist/{chunk-CSAKZ2MX.mjs → chunk-CIX62WRT.mjs} +2 -2
  11. package/dist/{chunk-BXFZZQYX.mjs → chunk-CZCSZ5EC.mjs} +2 -2
  12. package/dist/{chunk-FB5SC5Q7.mjs → chunk-D4L2JF7B.mjs} +9 -9
  13. package/dist/{chunk-6CE4DMXK.mjs → chunk-DO6NI2RE.mjs} +4 -4
  14. package/dist/{chunk-NKIH636F.mjs → chunk-DOM5NIGR.mjs} +4 -4
  15. package/dist/{chunk-AAVI4VU3.mjs → chunk-DOTCUDFL.mjs} +3 -3
  16. package/dist/{chunk-PH34VRW5.mjs → chunk-DPP6LEAC.mjs} +9 -9
  17. package/dist/{chunk-O3CVOC47.mjs → chunk-H3BDCHTZ.mjs} +3 -3
  18. package/dist/{chunk-337BBEFA.mjs → chunk-HROZSVWG.mjs} +2 -2
  19. package/dist/{chunk-AB3DZRIT.mjs → chunk-I5HOTDKI.mjs} +2 -2
  20. package/dist/{chunk-NBDUCZKX.mjs → chunk-I7FU63V7.mjs} +3 -3
  21. package/dist/{chunk-HKQ474QH.mjs → chunk-ITXQUI3D.mjs} +4 -4
  22. package/dist/{chunk-FLMJJDKC.mjs → chunk-JE63CZ2V.mjs} +4 -4
  23. package/dist/{chunk-FBSI2DYL.mjs → chunk-KJ5D3ZZH.mjs} +2 -2
  24. package/dist/{chunk-7US2E5O7.mjs → chunk-KXHICJP6.mjs} +2 -2
  25. package/dist/{chunk-RK5AH6LV.mjs → chunk-L3CM3UCY.mjs} +2 -2
  26. package/dist/{chunk-CAFVMAUA.mjs → chunk-L5AJO74N.mjs} +2 -2
  27. package/dist/{chunk-34KZZQIM.mjs → chunk-LL2YKAVY.mjs} +3 -3
  28. package/dist/{chunk-H7HKLTHT.mjs → chunk-LXTFDNO7.mjs} +2 -2
  29. package/dist/{chunk-P2XI7P2D.mjs → chunk-MC57ARXB.mjs} +4 -4
  30. package/dist/{chunk-IG72CASF.mjs → chunk-MKUPXK53.mjs} +3 -3
  31. package/dist/{chunk-RI44DYHE.mjs → chunk-ONAOEH2U.mjs} +3 -3
  32. package/dist/{chunk-DRYM2QZP.mjs → chunk-Q3EXI7RR.mjs} +2 -2
  33. package/dist/{chunk-QAOJV6RF.mjs → chunk-QYMACNZ2.mjs} +3 -3
  34. package/dist/{chunk-2EZTTCH4.mjs → chunk-RYXZC2CO.mjs} +2 -2
  35. package/dist/{chunk-UKCACHZ2.mjs → chunk-SBCCJMGH.mjs} +2 -2
  36. package/dist/{chunk-KC6KMLSF.mjs → chunk-SYSFLMS5.mjs} +2 -2
  37. package/dist/{chunk-NT7P4RAU.mjs → chunk-U2D7NDR2.mjs} +2 -2
  38. package/dist/{chunk-JGRLE46D.mjs → chunk-UCFWZNTQ.mjs} +2 -2
  39. package/dist/{chunk-XNPC3ALT.mjs → chunk-VVKSGO5X.mjs} +9 -9
  40. package/dist/{chunk-TA77DSLC.mjs → chunk-XB6KHMTI.mjs} +8 -8
  41. package/dist/{chunk-P5LBGGRU.mjs → chunk-XHWSQB2I.mjs} +9 -9
  42. package/dist/{chunk-P5LBGGRU.mjs.map → chunk-XHWSQB2I.mjs.map} +1 -1
  43. package/dist/{chunk-Z5V5KNWZ.mjs → chunk-XKLFMBV4.mjs} +2 -2
  44. package/dist/{chunk-DJ234GBL.mjs → chunk-XP3GATQN.mjs} +5 -5
  45. package/dist/{chunk-MZOTQKZN.mjs → chunk-Y7LPJKSM.mjs} +3 -3
  46. package/dist/{chunk-C2UYZRPA.mjs → chunk-YECIMN3Y.mjs} +9 -9
  47. package/dist/chunk-YECIMN3Y.mjs.map +1 -0
  48. package/dist/{chunk-YMPJB2G5.mjs → chunk-YUOYHYLR.mjs} +2 -2
  49. package/dist/{chunk-H475HDAP.mjs → chunk-YVO34GQV.mjs} +3 -3
  50. package/dist/data/Condition.mjs +4 -4
  51. package/dist/data/Database.mjs +5 -5
  52. package/dist/data/Field.mjs +4 -4
  53. package/dist/data/InMemoryGateway.mjs +13 -13
  54. package/dist/domain/Audit.mjs +17 -17
  55. package/dist/domain/Child.mjs +16 -16
  56. package/dist/domain/DateTime.mjs +13 -13
  57. package/dist/domain/Entity.mjs +21 -21
  58. package/dist/domain/Repo.mjs +13 -13
  59. package/dist/domain/Struct.mjs +13 -13
  60. package/dist/domain/Typo.mjs +12 -12
  61. package/dist/http/CacheControl.mjs +13 -13
  62. package/dist/http/ContentType.mjs +5 -5
  63. package/dist/http/HttpStatus.mjs +5 -5
  64. package/dist/http/HttpVerb.mjs +5 -5
  65. package/dist/http/LocalRequestStore.mjs +4 -4
  66. package/dist/http/RequestOptions.mjs +9 -9
  67. package/dist/http/RestResult.mjs +13 -13
  68. package/dist/http/toResponse.mjs +14 -14
  69. package/dist/index.js +16 -16
  70. package/dist/index.js.map +1 -1
  71. package/dist/process/App.mjs +6 -6
  72. package/dist/process/Manage.mjs +13 -13
  73. package/dist/process/Scope.mjs +6 -6
  74. package/dist/process/Search.mjs +13 -13
  75. package/dist/process/UseCase.mjs +5 -5
  76. package/dist/resources/Req.mjs +12 -12
  77. package/dist/services/Api.mjs +22 -22
  78. package/dist/services/ApiGateway.mjs +25 -25
  79. package/dist/services/AxiosProvider.mjs +20 -20
  80. package/dist/services/MappedRouteGateway.mjs +28 -28
  81. package/dist/services/RouteGateway.mjs +26 -26
  82. package/dist/services/ViewRouteGateway.d.ts +4 -4
  83. package/dist/services/ViewRouteGateway.mjs +29 -29
  84. package/dist/sql/Column.mjs +12 -12
  85. package/dist/sql/Count.mjs +4 -4
  86. package/dist/sql/Delete.mjs +3 -3
  87. package/dist/sql/Insert.mjs +3 -3
  88. package/dist/sql/Select.mjs +3 -3
  89. package/dist/sql/SqlQuery.mjs +2 -2
  90. package/dist/sql/Table.mjs +21 -21
  91. package/dist/sql/TableGateway.mjs +13 -13
  92. package/dist/sql/Update.mjs +3 -3
  93. package/dist/types/Cache.mjs +3 -3
  94. package/dist/types/CacheAge.mjs +13 -13
  95. package/dist/types/Case.mjs +11 -11
  96. package/dist/types/Context.mjs +4 -4
  97. package/dist/types/Enum.mjs +4 -4
  98. package/dist/types/Environment.mjs +4 -4
  99. package/dist/types/Exception.mjs +6 -6
  100. package/dist/types/Gateway.mjs +8 -8
  101. package/dist/types/IsEqual.mjs +12 -12
  102. package/dist/types/Json.mjs +3 -3
  103. package/dist/types/List.d.ts +4 -4
  104. package/dist/types/List.mjs +1 -1
  105. package/dist/types/Meta.mjs +3 -3
  106. package/dist/types/Number.mjs +12 -12
  107. package/dist/types/Object.mjs +2 -2
  108. package/dist/types/PageList.d.ts +4 -4
  109. package/dist/types/PageList.mjs +12 -12
  110. package/dist/types/Parser.mjs +11 -11
  111. package/dist/types/Repository.mjs +8 -8
  112. package/dist/types/Result.mjs +5 -5
  113. package/dist/types/Results.mjs +6 -6
  114. package/dist/types/Tag.mjs +3 -3
  115. package/dist/types/Template.mjs +3 -3
  116. package/dist/types/Try.mjs +11 -11
  117. package/dist/types/Uri.mjs +11 -11
  118. package/dist/utils/Mapper.mjs +5 -5
  119. package/dist/utils/Promise.mjs +2 -2
  120. package/dist/utils/Seconds.mjs +2 -2
  121. package/dist/utils/Sentence.mjs +3 -3
  122. package/dist/utils/View.d.ts +4 -5
  123. package/dist/utils/View.mjs +15 -15
  124. package/dist/validation/Contraints.mjs +12 -12
  125. package/dist/validation/Validate.mjs +11 -11
  126. package/dist/validation/When.mjs +11 -11
  127. package/package.json +2 -2
  128. package/src/types/List.ts +9 -8
  129. package/src/types/PageList.ts +8 -8
  130. package/src/utils/View.ts +5 -5
  131. package/dist/chunk-C2UYZRPA.mjs.map +0 -1
  132. /package/dist/{chunk-J25LXFUD.mjs.map → chunk-2FLFIA2V.mjs.map} +0 -0
  133. /package/dist/{chunk-PKST4EDM.mjs.map → chunk-2NC775Z2.mjs.map} +0 -0
  134. /package/dist/{chunk-EI2Z6FIS.mjs.map → chunk-64GJ7H3Z.mjs.map} +0 -0
  135. /package/dist/{chunk-NX3TUFUV.mjs.map → chunk-6RU2PLI7.mjs.map} +0 -0
  136. /package/dist/{chunk-NDFWLMAQ.mjs.map → chunk-7MM74FM4.mjs.map} +0 -0
  137. /package/dist/{chunk-SW75MUZT.mjs.map → chunk-AQJRBULG.mjs.map} +0 -0
  138. /package/dist/{chunk-WIA4I4EK.mjs.map → chunk-C5YG4G22.mjs.map} +0 -0
  139. /package/dist/{chunk-CSAKZ2MX.mjs.map → chunk-CIX62WRT.mjs.map} +0 -0
  140. /package/dist/{chunk-BXFZZQYX.mjs.map → chunk-CZCSZ5EC.mjs.map} +0 -0
  141. /package/dist/{chunk-FB5SC5Q7.mjs.map → chunk-D4L2JF7B.mjs.map} +0 -0
  142. /package/dist/{chunk-6CE4DMXK.mjs.map → chunk-DO6NI2RE.mjs.map} +0 -0
  143. /package/dist/{chunk-NKIH636F.mjs.map → chunk-DOM5NIGR.mjs.map} +0 -0
  144. /package/dist/{chunk-AAVI4VU3.mjs.map → chunk-DOTCUDFL.mjs.map} +0 -0
  145. /package/dist/{chunk-PH34VRW5.mjs.map → chunk-DPP6LEAC.mjs.map} +0 -0
  146. /package/dist/{chunk-O3CVOC47.mjs.map → chunk-H3BDCHTZ.mjs.map} +0 -0
  147. /package/dist/{chunk-337BBEFA.mjs.map → chunk-HROZSVWG.mjs.map} +0 -0
  148. /package/dist/{chunk-AB3DZRIT.mjs.map → chunk-I5HOTDKI.mjs.map} +0 -0
  149. /package/dist/{chunk-NBDUCZKX.mjs.map → chunk-I7FU63V7.mjs.map} +0 -0
  150. /package/dist/{chunk-HKQ474QH.mjs.map → chunk-ITXQUI3D.mjs.map} +0 -0
  151. /package/dist/{chunk-FLMJJDKC.mjs.map → chunk-JE63CZ2V.mjs.map} +0 -0
  152. /package/dist/{chunk-FBSI2DYL.mjs.map → chunk-KJ5D3ZZH.mjs.map} +0 -0
  153. /package/dist/{chunk-7US2E5O7.mjs.map → chunk-KXHICJP6.mjs.map} +0 -0
  154. /package/dist/{chunk-RK5AH6LV.mjs.map → chunk-L3CM3UCY.mjs.map} +0 -0
  155. /package/dist/{chunk-CAFVMAUA.mjs.map → chunk-L5AJO74N.mjs.map} +0 -0
  156. /package/dist/{chunk-34KZZQIM.mjs.map → chunk-LL2YKAVY.mjs.map} +0 -0
  157. /package/dist/{chunk-H7HKLTHT.mjs.map → chunk-LXTFDNO7.mjs.map} +0 -0
  158. /package/dist/{chunk-P2XI7P2D.mjs.map → chunk-MC57ARXB.mjs.map} +0 -0
  159. /package/dist/{chunk-IG72CASF.mjs.map → chunk-MKUPXK53.mjs.map} +0 -0
  160. /package/dist/{chunk-RI44DYHE.mjs.map → chunk-ONAOEH2U.mjs.map} +0 -0
  161. /package/dist/{chunk-DRYM2QZP.mjs.map → chunk-Q3EXI7RR.mjs.map} +0 -0
  162. /package/dist/{chunk-QAOJV6RF.mjs.map → chunk-QYMACNZ2.mjs.map} +0 -0
  163. /package/dist/{chunk-2EZTTCH4.mjs.map → chunk-RYXZC2CO.mjs.map} +0 -0
  164. /package/dist/{chunk-UKCACHZ2.mjs.map → chunk-SBCCJMGH.mjs.map} +0 -0
  165. /package/dist/{chunk-KC6KMLSF.mjs.map → chunk-SYSFLMS5.mjs.map} +0 -0
  166. /package/dist/{chunk-NT7P4RAU.mjs.map → chunk-U2D7NDR2.mjs.map} +0 -0
  167. /package/dist/{chunk-JGRLE46D.mjs.map → chunk-UCFWZNTQ.mjs.map} +0 -0
  168. /package/dist/{chunk-XNPC3ALT.mjs.map → chunk-VVKSGO5X.mjs.map} +0 -0
  169. /package/dist/{chunk-TA77DSLC.mjs.map → chunk-XB6KHMTI.mjs.map} +0 -0
  170. /package/dist/{chunk-Z5V5KNWZ.mjs.map → chunk-XKLFMBV4.mjs.map} +0 -0
  171. /package/dist/{chunk-DJ234GBL.mjs.map → chunk-XP3GATQN.mjs.map} +0 -0
  172. /package/dist/{chunk-MZOTQKZN.mjs.map → chunk-Y7LPJKSM.mjs.map} +0 -0
  173. /package/dist/{chunk-YMPJB2G5.mjs.map → chunk-YUOYHYLR.mjs.map} +0 -0
  174. /package/dist/{chunk-H475HDAP.mjs.map → chunk-YVO34GQV.mjs.map} +0 -0
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  seconds
3
- } from "./chunk-337BBEFA.mjs";
3
+ } from "./chunk-HROZSVWG.mjs";
4
4
  import {
5
5
  isDate
6
6
  } from "./chunk-ADJAEGCT.mjs";
7
7
  import {
8
8
  choose
9
- } from "./chunk-FB5SC5Q7.mjs";
9
+ } from "./chunk-D4L2JF7B.mjs";
10
10
  import {
11
11
  Value
12
12
  } from "./chunk-CAHTK3AT.mjs";
@@ -121,4 +121,4 @@ export {
121
121
  isDateTime,
122
122
  dt
123
123
  };
124
- //# sourceMappingURL=chunk-RI44DYHE.mjs.map
124
+ //# sourceMappingURL=chunk-ONAOEH2U.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Enum
3
- } from "./chunk-O3CVOC47.mjs";
3
+ } from "./chunk-H3BDCHTZ.mjs";
4
4
  import {
5
5
  isAn
6
6
  } from "./chunk-ZHXKBOK2.mjs";
@@ -91,4 +91,4 @@ export {
91
91
  isHttpStatus,
92
92
  toHttpStatus
93
93
  };
94
- //# sourceMappingURL=chunk-DRYM2QZP.mjs.map
94
+ //# sourceMappingURL=chunk-Q3EXI7RR.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  text
3
- } from "./chunk-EI2Z6FIS.mjs";
3
+ } from "./chunk-64GJ7H3Z.mjs";
4
4
  import {
5
5
  Enum
6
- } from "./chunk-O3CVOC47.mjs";
6
+ } from "./chunk-H3BDCHTZ.mjs";
7
7
  import {
8
8
  asString
9
9
  } from "./chunk-45GNHDKA.mjs";
@@ -37,4 +37,4 @@ export {
37
37
  isException,
38
38
  isDoesNotExist
39
39
  };
40
- //# sourceMappingURL=chunk-QAOJV6RF.mjs.map
40
+ //# sourceMappingURL=chunk-QYMACNZ2.mjs.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-APYISY5K.mjs";
4
4
  import {
5
5
  json
6
- } from "./chunk-YMPJB2G5.mjs";
6
+ } from "./chunk-YUOYHYLR.mjs";
7
7
  import {
8
8
  isDefined
9
9
  } from "./chunk-DEJ7A5PY.mjs";
@@ -50,4 +50,4 @@ export {
50
50
  toCondition,
51
51
  isSortCondition
52
52
  };
53
- //# sourceMappingURL=chunk-2EZTTCH4.mjs.map
53
+ //# sourceMappingURL=chunk-RYXZC2CO.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ctx
3
- } from "./chunk-7US2E5O7.mjs";
3
+ } from "./chunk-KXHICJP6.mjs";
4
4
  import {
5
5
  isA
6
6
  } from "./chunk-ZHXKBOK2.mjs";
@@ -17,4 +17,4 @@ export {
17
17
  toResult,
18
18
  isResult
19
19
  };
20
- //# sourceMappingURL=chunk-UKCACHZ2.mjs.map
20
+ //# sourceMappingURL=chunk-SBCCJMGH.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SqlQuery
3
- } from "./chunk-FBSI2DYL.mjs";
3
+ } from "./chunk-KJ5D3ZZH.mjs";
4
4
  import {
5
5
  toClause
6
6
  } from "./chunk-U53FLD4J.mjs";
@@ -23,4 +23,4 @@ var Update = class extends SqlQuery {
23
23
  export {
24
24
  Update
25
25
  };
26
- //# sourceMappingURL=chunk-KC6KMLSF.mjs.map
26
+ //# sourceMappingURL=chunk-SYSFLMS5.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  toList
3
- } from "./chunk-P5LBGGRU.mjs";
3
+ } from "./chunk-XHWSQB2I.mjs";
4
4
  import {
5
5
  ifDefined
6
6
  } from "./chunk-JSON7A4X.mjs";
@@ -25,4 +25,4 @@ export {
25
25
  values,
26
26
  keys
27
27
  };
28
- //# sourceMappingURL=chunk-NT7P4RAU.mjs.map
28
+ //# sourceMappingURL=chunk-U2D7NDR2.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  choose
3
- } from "./chunk-FB5SC5Q7.mjs";
3
+ } from "./chunk-D4L2JF7B.mjs";
4
4
  import {
5
5
  isArray,
6
6
  isObject
@@ -20,4 +20,4 @@ var isEqual = (one, another) => choose([one, another]).case(([o, a]) => o === a,
20
20
  export {
21
21
  isEqual
22
22
  };
23
- //# sourceMappingURL=chunk-JGRLE46D.mjs.map
23
+ //# sourceMappingURL=chunk-UCFWZNTQ.mjs.map
@@ -1,27 +1,27 @@
1
1
  import {
2
2
  toResponse
3
- } from "./chunk-34KZZQIM.mjs";
3
+ } from "./chunk-LL2YKAVY.mjs";
4
4
  import {
5
5
  isRestResult
6
- } from "./chunk-PH34VRW5.mjs";
6
+ } from "./chunk-DPP6LEAC.mjs";
7
7
  import {
8
8
  HttpStatus
9
- } from "./chunk-DRYM2QZP.mjs";
9
+ } from "./chunk-Q3EXI7RR.mjs";
10
10
  import {
11
11
  RequestOptions
12
- } from "./chunk-SW75MUZT.mjs";
12
+ } from "./chunk-AQJRBULG.mjs";
13
13
  import {
14
14
  cacheAge
15
- } from "./chunk-MZOTQKZN.mjs";
15
+ } from "./chunk-Y7LPJKSM.mjs";
16
16
  import {
17
17
  choose
18
- } from "./chunk-FB5SC5Q7.mjs";
18
+ } from "./chunk-D4L2JF7B.mjs";
19
19
  import {
20
20
  toResult
21
- } from "./chunk-UKCACHZ2.mjs";
21
+ } from "./chunk-SBCCJMGH.mjs";
22
22
  import {
23
23
  ctx
24
- } from "./chunk-7US2E5O7.mjs";
24
+ } from "./chunk-KXHICJP6.mjs";
25
25
  import {
26
26
  isDefined,
27
27
  isEmpty
@@ -53,4 +53,4 @@ var AxiosProvider = class {
53
53
  export {
54
54
  AxiosProvider
55
55
  };
56
- //# sourceMappingURL=chunk-XNPC3ALT.mjs.map
56
+ //# sourceMappingURL=chunk-VVKSGO5X.mjs.map
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  required,
3
3
  valid
4
- } from "./chunk-DJ234GBL.mjs";
5
- import {
6
- DateTime
7
- } from "./chunk-RI44DYHE.mjs";
4
+ } from "./chunk-XP3GATQN.mjs";
8
5
  import {
9
6
  Struct
10
- } from "./chunk-IG72CASF.mjs";
7
+ } from "./chunk-MKUPXK53.mjs";
8
+ import {
9
+ DateTime
10
+ } from "./chunk-ONAOEH2U.mjs";
11
11
  import {
12
12
  choose
13
- } from "./chunk-FB5SC5Q7.mjs";
13
+ } from "./chunk-D4L2JF7B.mjs";
14
14
  import {
15
15
  ctx
16
- } from "./chunk-7US2E5O7.mjs";
16
+ } from "./chunk-KXHICJP6.mjs";
17
17
  import {
18
18
  isIdentity
19
19
  } from "./chunk-ZHXKBOK2.mjs";
@@ -47,4 +47,4 @@ __decorateClass([
47
47
  export {
48
48
  Audit
49
49
  };
50
- //# sourceMappingURL=chunk-TA77DSLC.mjs.map
50
+ //# sourceMappingURL=chunk-XB6KHMTI.mjs.map
@@ -218,18 +218,18 @@ var List = class extends Array {
218
218
  chunk(chunkSize) {
219
219
  return this.reduce((acc, _, index) => index % chunkSize === 0 ? on(acc, (a) => a.push(this.slice(index, index + chunkSize))) : acc, toList());
220
220
  }
221
- update(p, value) {
222
- return this.map((v, i, a) => p(v, i, a) ? value : v);
221
+ update(p, val) {
222
+ return this.map((v, i, a) => p(v, i, a) ? ofGet(val, v, i, a) : v);
223
223
  }
224
- updateFirst(p, value) {
224
+ updateFirst(p, val) {
225
225
  const index = this.findIndex(p);
226
- return this.update((t, i) => p(t, i, this) && i == index, value);
226
+ return this.update((t, i) => p(t, i, this) && i == index, val);
227
227
  }
228
- updateFirstById(id, value) {
229
- return this.updateFirst((i) => asString(i?.id) === asString(id), value);
228
+ updateFirstById(id, val) {
229
+ return this.updateFirst((i) => asString(i?.id) === asString(id), val);
230
230
  }
231
- updateById(id, value) {
232
- return this.update((i) => asString(i?.id) === asString(id), value);
231
+ updateById(id, val) {
232
+ return this.update((i) => asString(i?.id) === asString(id), val);
233
233
  }
234
234
  };
235
235
  var toList = (...items) => new List().add(...items);
@@ -246,4 +246,4 @@ export {
246
246
  maxValue,
247
247
  minValue
248
248
  };
249
- //# sourceMappingURL=chunk-P5LBGGRU.mjs.map
249
+ //# sourceMappingURL=chunk-XHWSQB2I.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types/List.ts"],"sourcesContent":["import { ArrayLike, toArray } from './Array';\nimport { Constructor, on } 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';\n\nexport class List<T = unknown> extends Array<T> {\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 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?: (value: T, index: number, array: T[]) => unknown, 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?: (value: T, index: number, array: T[]) => unknown, params?: unknown): T {\n return p ? this[this.findIndex(p, params) + 1] : this[0];\n }\n\n prev(p?: (value: T, index: number, array: T[]) => unknown, params?: unknown): T {\n return p ? this[this.findIndex(p, params) - 1] : this[0];\n }\n\n last(p?: (value: T, index: number, array: T[]) => unknown, 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(others: ArrayLike<T>, key: keyof T): 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 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: (value: T, index: number, array: T[]) => unknown, 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(key: keyof T): T {\n return this.desc(key).first();\n }\n\n min(key: keyof T): T {\n return this.asc(key).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 concat(...items: (T | ConcatArray<T>)[]): List<T>;\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 splice(start: number, deleteCount: number, ...items: T[]): List<T>;\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 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 update(p: (value: T, index: number, array: T[]) => unknown, value: T): List<T> {\n return this.map((v, i, a) => (p(v, i, a) ? value : v));\n }\n\n updateFirst(p: (value: T, index: number, array: T[]) => unknown, value: T): List<T> {\n const index = this.findIndex(p);\n return this.update((t, i) => p(t, i, this) && i == index, value)\n }\n\n updateFirstById(id: Id, value: T): List<T> {\n return this.updateFirst(i => asString((i as any)?.id) === asString(id), value);\n }\n updateById(id: Id, value: T): List<T> {\n return this.update(i => asString((i as any)?.id) === asString(id), value);\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":["acc"]}
1
+ {"version":3,"sources":["../src/types/List.ts"],"sourcesContent":["import { ArrayLike, toArray } from './Array';\nimport { Constructor, on } 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';\n\nexport class List<T = unknown> extends Array<T> {\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 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?: (value: T, index: number, array: T[]) => unknown, 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?: (value: T, index: number, array: T[]) => unknown, params?: unknown): T {\n return p ? this[this.findIndex(p, params) + 1] : this[0];\n }\n\n prev(p?: (value: T, index: number, array: T[]) => unknown, params?: unknown): T {\n return p ? this[this.findIndex(p, params) - 1] : this[0];\n }\n\n last(p?: (value: T, index: number, array: T[]) => unknown, 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(others: ArrayLike<T>, key: keyof T): 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 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: (value: T, index: number, array: T[]) => unknown, 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(key: keyof T): T {\n return this.desc(key).first();\n }\n\n min(key: keyof T): T {\n return this.asc(key).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 concat(...items: (T | ConcatArray<T>)[]): List<T>;\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 splice(start: number, deleteCount: number, ...items: T[]): List<T>;\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 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 update(p: (value: T, index: number, array: T[]) => unknown, val: T | ((v: T) => 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(p: (value: T, index: number, array: T[]) => unknown, val: T | ((v: T) => T)) {\n const index = this.findIndex(p);\n return this.update((t, i) => p(t, i, this) && i == index, val);\n }\n\n updateFirstById(id: Id, val: T | ((v: T) => T)) {\n return this.updateFirst(i => asString((i as any)?.id) === asString(id), val);\n }\n\n updateById(id: Id, val: T | ((v: T) => 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":["acc"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Select
3
- } from "./chunk-H475HDAP.mjs";
3
+ } from "./chunk-YVO34GQV.mjs";
4
4
  import {
5
5
  ifGet
6
6
  } from "./chunk-SJGQU3OG.mjs";
@@ -15,4 +15,4 @@ var Count = class extends Select {
15
15
  export {
16
16
  Count
17
17
  };
18
- //# sourceMappingURL=chunk-Z5V5KNWZ.mjs.map
18
+ //# sourceMappingURL=chunk-XKLFMBV4.mjs.map
@@ -5,16 +5,16 @@ import {
5
5
  import {
6
6
  tryTo,
7
7
  validate
8
- } from "./chunk-FB5SC5Q7.mjs";
8
+ } from "./chunk-D4L2JF7B.mjs";
9
9
  import {
10
10
  text
11
- } from "./chunk-EI2Z6FIS.mjs";
11
+ } from "./chunk-64GJ7H3Z.mjs";
12
12
  import {
13
13
  meta
14
- } from "./chunk-AAVI4VU3.mjs";
14
+ } from "./chunk-DOTCUDFL.mjs";
15
15
  import {
16
16
  toList
17
- } from "./chunk-P5LBGGRU.mjs";
17
+ } from "./chunk-XHWSQB2I.mjs";
18
18
  import {
19
19
  isBoolean,
20
20
  isDefined,
@@ -73,4 +73,4 @@ export {
73
73
  maxLength,
74
74
  rule
75
75
  };
76
- //# sourceMappingURL=chunk-DJ234GBL.mjs.map
76
+ //# sourceMappingURL=chunk-XP3GATQN.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  asNumber
3
- } from "./chunk-AB3DZRIT.mjs";
3
+ } from "./chunk-I5HOTDKI.mjs";
4
4
  import {
5
5
  choose
6
- } from "./chunk-FB5SC5Q7.mjs";
6
+ } from "./chunk-D4L2JF7B.mjs";
7
7
  import {
8
8
  asString
9
9
  } from "./chunk-45GNHDKA.mjs";
@@ -48,4 +48,4 @@ var cacheAge = {
48
48
  export {
49
49
  cacheAge
50
50
  };
51
- //# sourceMappingURL=chunk-MZOTQKZN.mjs.map
51
+ //# sourceMappingURL=chunk-Y7LPJKSM.mjs.map
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  isEqual
3
- } from "./chunk-JGRLE46D.mjs";
3
+ } from "./chunk-UCFWZNTQ.mjs";
4
4
  import {
5
5
  traverse
6
6
  } from "./chunk-SSROJBD5.mjs";
7
- import {
8
- isPageList,
9
- toPageList
10
- } from "./chunk-U4ABMBGR.mjs";
11
7
  import {
12
8
  asJson,
13
9
  json
14
- } from "./chunk-YMPJB2G5.mjs";
10
+ } from "./chunk-YUOYHYLR.mjs";
11
+ import {
12
+ isPageList,
13
+ toPageList
14
+ } from "./chunk-4PESMFF5.mjs";
15
15
  import {
16
16
  choose
17
- } from "./chunk-FB5SC5Q7.mjs";
17
+ } from "./chunk-D4L2JF7B.mjs";
18
18
  import {
19
19
  meta
20
- } from "./chunk-AAVI4VU3.mjs";
20
+ } from "./chunk-DOTCUDFL.mjs";
21
21
  import {
22
22
  ifDefined
23
23
  } from "./chunk-JSON7A4X.mjs";
@@ -88,4 +88,4 @@ export {
88
88
  view,
89
89
  views
90
90
  };
91
- //# sourceMappingURL=chunk-C2UYZRPA.mjs.map
91
+ //# sourceMappingURL=chunk-YECIMN3Y.mjs.map
@@ -0,0 +1 @@
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\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"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  entries
3
- } from "./chunk-NT7P4RAU.mjs";
3
+ } from "./chunk-U2D7NDR2.mjs";
4
4
  import {
5
5
  ifDefined
6
6
  } from "./chunk-JSON7A4X.mjs";
@@ -52,4 +52,4 @@ export {
52
52
  asJson,
53
53
  any
54
54
  };
55
- //# sourceMappingURL=chunk-YMPJB2G5.mjs.map
55
+ //# sourceMappingURL=chunk-YUOYHYLR.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  SqlQuery
3
- } from "./chunk-FBSI2DYL.mjs";
3
+ } from "./chunk-KJ5D3ZZH.mjs";
4
4
  import {
5
5
  toList
6
- } from "./chunk-P5LBGGRU.mjs";
6
+ } from "./chunk-XHWSQB2I.mjs";
7
7
  import {
8
8
  ifGet
9
9
  } from "./chunk-SJGQU3OG.mjs";
@@ -51,4 +51,4 @@ var Select = class extends SqlQuery {
51
51
  export {
52
52
  Select
53
53
  };
54
- //# sourceMappingURL=chunk-H475HDAP.mjs.map
54
+ //# sourceMappingURL=chunk-YVO34GQV.mjs.map
@@ -4,11 +4,11 @@ import {
4
4
  SortCondition,
5
5
  isSortCondition,
6
6
  toCondition
7
- } from "../chunk-2EZTTCH4.mjs";
7
+ } from "../chunk-RYXZC2CO.mjs";
8
8
  import "../chunk-APYISY5K.mjs";
9
- import "../chunk-YMPJB2G5.mjs";
10
- import "../chunk-NT7P4RAU.mjs";
11
- import "../chunk-P5LBGGRU.mjs";
9
+ import "../chunk-YUOYHYLR.mjs";
10
+ import "../chunk-U2D7NDR2.mjs";
11
+ import "../chunk-XHWSQB2I.mjs";
12
12
  import "../chunk-X7FZPY3P.mjs";
13
13
  import "../chunk-JSON7A4X.mjs";
14
14
  import "../chunk-45GNHDKA.mjs";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  Database,
3
3
  DefaultProvider
4
- } from "../chunk-H7HKLTHT.mjs";
5
- import "../chunk-O3CVOC47.mjs";
6
- import "../chunk-AAVI4VU3.mjs";
7
- import "../chunk-NT7P4RAU.mjs";
8
- import "../chunk-P5LBGGRU.mjs";
4
+ } from "../chunk-LXTFDNO7.mjs";
5
+ import "../chunk-H3BDCHTZ.mjs";
6
+ import "../chunk-DOTCUDFL.mjs";
7
+ import "../chunk-U2D7NDR2.mjs";
8
+ import "../chunk-XHWSQB2I.mjs";
9
9
  import "../chunk-X7FZPY3P.mjs";
10
10
  import "../chunk-JSON7A4X.mjs";
11
11
  import "../chunk-45GNHDKA.mjs";
@@ -4,11 +4,11 @@ import {
4
4
  import {
5
5
  SortCondition,
6
6
  toCondition
7
- } from "../chunk-2EZTTCH4.mjs";
7
+ } from "../chunk-RYXZC2CO.mjs";
8
8
  import "../chunk-APYISY5K.mjs";
9
- import "../chunk-YMPJB2G5.mjs";
10
- import "../chunk-NT7P4RAU.mjs";
11
- import "../chunk-P5LBGGRU.mjs";
9
+ import "../chunk-YUOYHYLR.mjs";
10
+ import "../chunk-U2D7NDR2.mjs";
11
+ import "../chunk-XHWSQB2I.mjs";
12
12
  import {
13
13
  toArray
14
14
  } from "../chunk-X7FZPY3P.mjs";
@@ -1,26 +1,26 @@
1
1
  import {
2
2
  Gateway
3
- } from "../chunk-NBDUCZKX.mjs";
3
+ } from "../chunk-I7FU63V7.mjs";
4
4
  import {
5
5
  toPageList
6
- } from "../chunk-U4ABMBGR.mjs";
6
+ } from "../chunk-4PESMFF5.mjs";
7
7
  import {
8
8
  when
9
- } from "../chunk-FB5SC5Q7.mjs";
9
+ } from "../chunk-D4L2JF7B.mjs";
10
10
  import "../chunk-OFGI5FLG.mjs";
11
- import "../chunk-WIA4I4EK.mjs";
12
- import "../chunk-UKCACHZ2.mjs";
11
+ import "../chunk-C5YG4G22.mjs";
12
+ import "../chunk-SBCCJMGH.mjs";
13
13
  import {
14
14
  Exception
15
- } from "../chunk-QAOJV6RF.mjs";
16
- import "../chunk-RK5AH6LV.mjs";
15
+ } from "../chunk-QYMACNZ2.mjs";
16
+ import "../chunk-L3CM3UCY.mjs";
17
17
  import "../chunk-CAHTK3AT.mjs";
18
- import "../chunk-7US2E5O7.mjs";
19
- import "../chunk-EI2Z6FIS.mjs";
20
- import "../chunk-O3CVOC47.mjs";
21
- import "../chunk-AAVI4VU3.mjs";
22
- import "../chunk-NT7P4RAU.mjs";
23
- import "../chunk-P5LBGGRU.mjs";
18
+ import "../chunk-KXHICJP6.mjs";
19
+ import "../chunk-64GJ7H3Z.mjs";
20
+ import "../chunk-H3BDCHTZ.mjs";
21
+ import "../chunk-DOTCUDFL.mjs";
22
+ import "../chunk-U2D7NDR2.mjs";
23
+ import "../chunk-XHWSQB2I.mjs";
24
24
  import "../chunk-X7FZPY3P.mjs";
25
25
  import "../chunk-JSON7A4X.mjs";
26
26
  import "../chunk-45GNHDKA.mjs";
@@ -1,25 +1,25 @@
1
1
  import {
2
2
  Audit
3
- } from "../chunk-TA77DSLC.mjs";
4
- import "../chunk-DJ234GBL.mjs";
5
- import "../chunk-RI44DYHE.mjs";
6
- import "../chunk-337BBEFA.mjs";
3
+ } from "../chunk-XB6KHMTI.mjs";
4
+ import "../chunk-XP3GATQN.mjs";
5
+ import "../chunk-MKUPXK53.mjs";
6
+ import "../chunk-ONAOEH2U.mjs";
7
+ import "../chunk-HROZSVWG.mjs";
7
8
  import "../chunk-ADJAEGCT.mjs";
8
- import "../chunk-IG72CASF.mjs";
9
- import "../chunk-YMPJB2G5.mjs";
10
- import "../chunk-FB5SC5Q7.mjs";
9
+ import "../chunk-YUOYHYLR.mjs";
10
+ import "../chunk-D4L2JF7B.mjs";
11
11
  import "../chunk-OFGI5FLG.mjs";
12
- import "../chunk-WIA4I4EK.mjs";
13
- import "../chunk-UKCACHZ2.mjs";
14
- import "../chunk-QAOJV6RF.mjs";
15
- import "../chunk-RK5AH6LV.mjs";
12
+ import "../chunk-C5YG4G22.mjs";
13
+ import "../chunk-SBCCJMGH.mjs";
14
+ import "../chunk-QYMACNZ2.mjs";
15
+ import "../chunk-L3CM3UCY.mjs";
16
16
  import "../chunk-CAHTK3AT.mjs";
17
- import "../chunk-7US2E5O7.mjs";
18
- import "../chunk-EI2Z6FIS.mjs";
19
- import "../chunk-O3CVOC47.mjs";
20
- import "../chunk-AAVI4VU3.mjs";
21
- import "../chunk-NT7P4RAU.mjs";
22
- import "../chunk-P5LBGGRU.mjs";
17
+ import "../chunk-KXHICJP6.mjs";
18
+ import "../chunk-64GJ7H3Z.mjs";
19
+ import "../chunk-H3BDCHTZ.mjs";
20
+ import "../chunk-DOTCUDFL.mjs";
21
+ import "../chunk-U2D7NDR2.mjs";
22
+ import "../chunk-XHWSQB2I.mjs";
23
23
  import "../chunk-X7FZPY3P.mjs";
24
24
  import "../chunk-JSON7A4X.mjs";
25
25
  import "../chunk-45GNHDKA.mjs";