@thisisagile/easy 17.11.31 → 17.12.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 (175) hide show
  1. package/dist/{chunk-VEFEJKUM.mjs → chunk-3EUPCIVY.mjs} +4 -4
  2. package/dist/{chunk-DIVCOWAG.mjs → chunk-3LJLCDBY.mjs} +5 -5
  3. package/dist/{chunk-7QSRWII4.mjs → chunk-545DNQMV.mjs} +3 -3
  4. package/dist/{chunk-3AQKTTTC.mjs → chunk-55SDDPJZ.mjs} +2 -2
  5. package/dist/{chunk-4V5GJC76.mjs → chunk-5HENJTR6.mjs} +2 -2
  6. package/dist/{chunk-HNFUOMJP.mjs → chunk-5YMCCYYA.mjs} +5 -5
  7. package/dist/{chunk-MXYKI6HR.mjs → chunk-6JXZMCIN.mjs} +5 -5
  8. package/dist/{chunk-JUDDV2H5.mjs → chunk-6K4R4SKN.mjs} +8 -4
  9. package/dist/chunk-6K4R4SKN.mjs.map +1 -0
  10. package/dist/{chunk-EVB7GWVS.mjs → chunk-6NJ65PSU.mjs} +2 -2
  11. package/dist/{chunk-QKU7KTMF.mjs → chunk-7KQ4QLP2.mjs} +2 -2
  12. package/dist/{chunk-VWTL2GWP.mjs → chunk-A7C3XND3.mjs} +7 -4
  13. package/dist/chunk-A7C3XND3.mjs.map +1 -0
  14. package/dist/{chunk-3RKVT7CA.mjs → chunk-AMFZRUX3.mjs} +3 -3
  15. package/dist/{chunk-WN7CJLBX.mjs → chunk-DF6AC3AA.mjs} +2 -2
  16. package/dist/{chunk-SAOC5RCH.mjs → chunk-FD7AIHNO.mjs} +2 -2
  17. package/dist/{chunk-X5W4BQUW.mjs → chunk-FIQ32LMI.mjs} +3 -3
  18. package/dist/{chunk-BJ6YF5ZH.mjs → chunk-H2762RTS.mjs} +2 -2
  19. package/dist/{chunk-GFJRYIPU.mjs → chunk-H6ZVPJNT.mjs} +19 -21
  20. package/dist/chunk-H6ZVPJNT.mjs.map +1 -0
  21. package/dist/{chunk-XIW5H5Z4.mjs → chunk-INYB7PBK.mjs} +4 -4
  22. package/dist/{chunk-T7ZKYDXT.mjs → chunk-IT7FDPTK.mjs} +4 -4
  23. package/dist/{chunk-SEMYSRYW.mjs → chunk-JICCIN24.mjs} +11 -11
  24. package/dist/{chunk-YTAE5NRO.mjs → chunk-JQQGQCYH.mjs} +2 -2
  25. package/dist/{chunk-EQKPZNKV.mjs → chunk-JVDKV5HE.mjs} +3 -3
  26. package/dist/{chunk-KJFC3DRU.mjs → chunk-KZBVIWZZ.mjs} +2 -2
  27. package/dist/{chunk-B44UOL2U.mjs → chunk-L6CBLUX3.mjs} +3 -3
  28. package/dist/{chunk-2JRHJC5I.mjs → chunk-LXENNRRB.mjs} +2 -2
  29. package/dist/{chunk-75D2275A.mjs → chunk-M2I3TRAA.mjs} +4 -4
  30. package/dist/{chunk-NJJY5OBB.mjs → chunk-MJKWY4F4.mjs} +6 -6
  31. package/dist/{chunk-QQYH3LWF.mjs → chunk-MKMTHBLE.mjs} +3 -3
  32. package/dist/{chunk-U3VBJFUV.mjs → chunk-MNDGLLBO.mjs} +2 -2
  33. package/dist/{chunk-ZRTPDDQ7.mjs → chunk-NKSCRMWF.mjs} +2 -2
  34. package/dist/{chunk-L6QRIUO4.mjs → chunk-P354LSDN.mjs} +2 -2
  35. package/dist/{chunk-XVDKDGGN.mjs → chunk-RDGMHJZE.mjs} +4 -4
  36. package/dist/{chunk-DYKHAHHH.mjs → chunk-RO6COWZH.mjs} +2 -2
  37. package/dist/{chunk-SAYFQ3KJ.mjs → chunk-S62CMWWY.mjs} +4 -4
  38. package/dist/{chunk-TU2I7DC4.mjs → chunk-SSQRH66L.mjs} +3 -3
  39. package/dist/{chunk-AGQP7QMM.mjs → chunk-SX4ETARM.mjs} +2 -2
  40. package/dist/{chunk-TMD77DUA.mjs → chunk-T55MAIFL.mjs} +8 -8
  41. package/dist/{chunk-ZA72FTVQ.mjs → chunk-UC53B3Y5.mjs} +2 -2
  42. package/dist/{chunk-PYT4JZDZ.mjs → chunk-UGUAZFM4.mjs} +2 -2
  43. package/dist/{chunk-O6SIDZ5X.mjs → chunk-UHNJKMHB.mjs} +9 -9
  44. package/dist/{chunk-2ZX3KK44.mjs → chunk-VYHMLMTQ.mjs} +2 -2
  45. package/dist/{chunk-AD6VQSSQ.mjs → chunk-W6VZANW7.mjs} +2 -2
  46. package/dist/{chunk-BGFD6HT2.mjs → chunk-WFJW3CXD.mjs} +6 -6
  47. package/dist/{chunk-FA2L634X.mjs → chunk-WTFW6DLP.mjs} +3 -3
  48. package/dist/{chunk-RPXYLXNK.mjs → chunk-YGLRUAUP.mjs} +4 -4
  49. package/dist/{chunk-SYOOOVM3.mjs → chunk-YMTOGXYB.mjs} +2 -2
  50. package/dist/data/Condition.mjs +5 -5
  51. package/dist/data/Database.mjs +6 -6
  52. package/dist/data/Field.mjs +5 -5
  53. package/dist/data/InMemoryGateway.mjs +14 -14
  54. package/dist/domain/Audit.mjs +18 -18
  55. package/dist/domain/Child.mjs +15 -15
  56. package/dist/domain/DateTime.d.ts +5 -7
  57. package/dist/domain/DateTime.mjs +14 -14
  58. package/dist/domain/Entity.mjs +18 -18
  59. package/dist/domain/Repo.mjs +16 -16
  60. package/dist/domain/Struct.mjs +14 -14
  61. package/dist/domain/Typo.mjs +13 -13
  62. package/dist/http/CacheControl.mjs +14 -14
  63. package/dist/http/ContentType.mjs +6 -6
  64. package/dist/http/HttpStatus.mjs +6 -6
  65. package/dist/http/HttpVerb.mjs +6 -6
  66. package/dist/http/LocalRequestStore.mjs +5 -5
  67. package/dist/http/RequestOptions.mjs +9 -9
  68. package/dist/http/RestResult.mjs +14 -14
  69. package/dist/http/toResponse.mjs +15 -15
  70. package/dist/index.js +22 -18
  71. package/dist/index.js.map +1 -1
  72. package/dist/process/App.mjs +7 -7
  73. package/dist/process/Manage.mjs +14 -14
  74. package/dist/process/Scope.mjs +7 -7
  75. package/dist/process/Search.mjs +14 -14
  76. package/dist/process/UseCase.mjs +6 -6
  77. package/dist/resources/Req.mjs +13 -13
  78. package/dist/services/Api.mjs +22 -22
  79. package/dist/services/ApiGateway.mjs +25 -25
  80. package/dist/services/AxiosProvider.mjs +20 -20
  81. package/dist/services/MappedRouteGateway.mjs +28 -28
  82. package/dist/services/RouteGateway.mjs +26 -26
  83. package/dist/services/ViewRouteGateway.mjs +29 -29
  84. package/dist/sql/Column.mjs +13 -13
  85. package/dist/sql/Count.mjs +5 -5
  86. package/dist/sql/Delete.mjs +4 -4
  87. package/dist/sql/Insert.mjs +4 -4
  88. package/dist/sql/Select.mjs +4 -4
  89. package/dist/sql/SqlQuery.mjs +3 -3
  90. package/dist/sql/Table.mjs +22 -22
  91. package/dist/sql/TableGateway.mjs +14 -14
  92. package/dist/sql/Update.mjs +4 -4
  93. package/dist/types/Cache.mjs +4 -4
  94. package/dist/types/CacheAge.mjs +14 -14
  95. package/dist/types/Case.mjs +12 -12
  96. package/dist/types/Context.mjs +5 -5
  97. package/dist/types/Enum.mjs +5 -5
  98. package/dist/types/Environment.mjs +5 -5
  99. package/dist/types/Exception.mjs +7 -7
  100. package/dist/types/Gateway.mjs +9 -9
  101. package/dist/types/IsEqual.mjs +13 -13
  102. package/dist/types/Json.mjs +4 -4
  103. package/dist/types/List.d.ts +1 -0
  104. package/dist/types/List.mjs +2 -2
  105. package/dist/types/Meta.mjs +4 -4
  106. package/dist/types/Number.mjs +13 -13
  107. package/dist/types/Object.mjs +3 -3
  108. package/dist/types/PageList.d.ts +1 -0
  109. package/dist/types/PageList.mjs +13 -13
  110. package/dist/types/Parser.mjs +12 -12
  111. package/dist/types/Repository.mjs +9 -9
  112. package/dist/types/Result.mjs +6 -6
  113. package/dist/types/Results.mjs +7 -7
  114. package/dist/types/Tag.mjs +4 -4
  115. package/dist/types/Template.mjs +4 -4
  116. package/dist/types/Try.mjs +12 -12
  117. package/dist/types/Uri.mjs +12 -12
  118. package/dist/utils/Mapper.mjs +6 -6
  119. package/dist/utils/Promise.mjs +3 -3
  120. package/dist/utils/Seconds.mjs +3 -3
  121. package/dist/utils/Sentence.mjs +4 -4
  122. package/dist/utils/View.mjs +16 -16
  123. package/dist/validation/Contraints.mjs +13 -13
  124. package/dist/validation/Validate.mjs +12 -12
  125. package/dist/validation/When.mjs +12 -12
  126. package/package.json +1 -1
  127. package/src/domain/DateTime.ts +30 -34
  128. package/src/types/List.ts +4 -0
  129. package/src/types/PageList.ts +5 -1
  130. package/dist/chunk-GFJRYIPU.mjs.map +0 -1
  131. package/dist/chunk-JUDDV2H5.mjs.map +0 -1
  132. package/dist/chunk-VWTL2GWP.mjs.map +0 -1
  133. /package/dist/{chunk-VEFEJKUM.mjs.map → chunk-3EUPCIVY.mjs.map} +0 -0
  134. /package/dist/{chunk-DIVCOWAG.mjs.map → chunk-3LJLCDBY.mjs.map} +0 -0
  135. /package/dist/{chunk-7QSRWII4.mjs.map → chunk-545DNQMV.mjs.map} +0 -0
  136. /package/dist/{chunk-3AQKTTTC.mjs.map → chunk-55SDDPJZ.mjs.map} +0 -0
  137. /package/dist/{chunk-4V5GJC76.mjs.map → chunk-5HENJTR6.mjs.map} +0 -0
  138. /package/dist/{chunk-HNFUOMJP.mjs.map → chunk-5YMCCYYA.mjs.map} +0 -0
  139. /package/dist/{chunk-MXYKI6HR.mjs.map → chunk-6JXZMCIN.mjs.map} +0 -0
  140. /package/dist/{chunk-EVB7GWVS.mjs.map → chunk-6NJ65PSU.mjs.map} +0 -0
  141. /package/dist/{chunk-QKU7KTMF.mjs.map → chunk-7KQ4QLP2.mjs.map} +0 -0
  142. /package/dist/{chunk-3RKVT7CA.mjs.map → chunk-AMFZRUX3.mjs.map} +0 -0
  143. /package/dist/{chunk-WN7CJLBX.mjs.map → chunk-DF6AC3AA.mjs.map} +0 -0
  144. /package/dist/{chunk-SAOC5RCH.mjs.map → chunk-FD7AIHNO.mjs.map} +0 -0
  145. /package/dist/{chunk-X5W4BQUW.mjs.map → chunk-FIQ32LMI.mjs.map} +0 -0
  146. /package/dist/{chunk-BJ6YF5ZH.mjs.map → chunk-H2762RTS.mjs.map} +0 -0
  147. /package/dist/{chunk-XIW5H5Z4.mjs.map → chunk-INYB7PBK.mjs.map} +0 -0
  148. /package/dist/{chunk-T7ZKYDXT.mjs.map → chunk-IT7FDPTK.mjs.map} +0 -0
  149. /package/dist/{chunk-SEMYSRYW.mjs.map → chunk-JICCIN24.mjs.map} +0 -0
  150. /package/dist/{chunk-YTAE5NRO.mjs.map → chunk-JQQGQCYH.mjs.map} +0 -0
  151. /package/dist/{chunk-EQKPZNKV.mjs.map → chunk-JVDKV5HE.mjs.map} +0 -0
  152. /package/dist/{chunk-KJFC3DRU.mjs.map → chunk-KZBVIWZZ.mjs.map} +0 -0
  153. /package/dist/{chunk-B44UOL2U.mjs.map → chunk-L6CBLUX3.mjs.map} +0 -0
  154. /package/dist/{chunk-2JRHJC5I.mjs.map → chunk-LXENNRRB.mjs.map} +0 -0
  155. /package/dist/{chunk-75D2275A.mjs.map → chunk-M2I3TRAA.mjs.map} +0 -0
  156. /package/dist/{chunk-NJJY5OBB.mjs.map → chunk-MJKWY4F4.mjs.map} +0 -0
  157. /package/dist/{chunk-QQYH3LWF.mjs.map → chunk-MKMTHBLE.mjs.map} +0 -0
  158. /package/dist/{chunk-U3VBJFUV.mjs.map → chunk-MNDGLLBO.mjs.map} +0 -0
  159. /package/dist/{chunk-ZRTPDDQ7.mjs.map → chunk-NKSCRMWF.mjs.map} +0 -0
  160. /package/dist/{chunk-L6QRIUO4.mjs.map → chunk-P354LSDN.mjs.map} +0 -0
  161. /package/dist/{chunk-XVDKDGGN.mjs.map → chunk-RDGMHJZE.mjs.map} +0 -0
  162. /package/dist/{chunk-DYKHAHHH.mjs.map → chunk-RO6COWZH.mjs.map} +0 -0
  163. /package/dist/{chunk-SAYFQ3KJ.mjs.map → chunk-S62CMWWY.mjs.map} +0 -0
  164. /package/dist/{chunk-TU2I7DC4.mjs.map → chunk-SSQRH66L.mjs.map} +0 -0
  165. /package/dist/{chunk-AGQP7QMM.mjs.map → chunk-SX4ETARM.mjs.map} +0 -0
  166. /package/dist/{chunk-TMD77DUA.mjs.map → chunk-T55MAIFL.mjs.map} +0 -0
  167. /package/dist/{chunk-ZA72FTVQ.mjs.map → chunk-UC53B3Y5.mjs.map} +0 -0
  168. /package/dist/{chunk-PYT4JZDZ.mjs.map → chunk-UGUAZFM4.mjs.map} +0 -0
  169. /package/dist/{chunk-O6SIDZ5X.mjs.map → chunk-UHNJKMHB.mjs.map} +0 -0
  170. /package/dist/{chunk-2ZX3KK44.mjs.map → chunk-VYHMLMTQ.mjs.map} +0 -0
  171. /package/dist/{chunk-AD6VQSSQ.mjs.map → chunk-W6VZANW7.mjs.map} +0 -0
  172. /package/dist/{chunk-BGFD6HT2.mjs.map → chunk-WFJW3CXD.mjs.map} +0 -0
  173. /package/dist/{chunk-FA2L634X.mjs.map → chunk-WTFW6DLP.mjs.map} +0 -0
  174. /package/dist/{chunk-RPXYLXNK.mjs.map → chunk-YGLRUAUP.mjs.map} +0 -0
  175. /package/dist/{chunk-SYOOOVM3.mjs.map → chunk-YMTOGXYB.mjs.map} +0 -0
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  isResult,
3
3
  toResult
4
- } from "../chunk-2ZX3KK44.mjs";
5
- import "../chunk-L6QRIUO4.mjs";
6
- import "../chunk-X5W4BQUW.mjs";
7
- import "../chunk-BJ6YF5ZH.mjs";
8
- import "../chunk-VWTL2GWP.mjs";
9
- import "../chunk-CO2AFYVD.mjs";
4
+ } from "../chunk-VYHMLMTQ.mjs";
5
+ import "../chunk-P354LSDN.mjs";
6
+ import "../chunk-FIQ32LMI.mjs";
7
+ import "../chunk-H2762RTS.mjs";
8
+ import "../chunk-A7C3XND3.mjs";
10
9
  import "../chunk-JSON7A4X.mjs";
10
+ import "../chunk-CO2AFYVD.mjs";
11
11
  import "../chunk-BDA5LB4S.mjs";
12
12
  import "../chunk-SJGQU3OG.mjs";
13
13
  import "../chunk-ZHXKBOK2.mjs";
@@ -2,14 +2,14 @@ import {
2
2
  Results,
3
3
  isResults,
4
4
  toResults
5
- } from "../chunk-U3VBJFUV.mjs";
6
- import "../chunk-2ZX3KK44.mjs";
7
- import "../chunk-L6QRIUO4.mjs";
8
- import "../chunk-X5W4BQUW.mjs";
9
- import "../chunk-BJ6YF5ZH.mjs";
10
- import "../chunk-VWTL2GWP.mjs";
11
- import "../chunk-CO2AFYVD.mjs";
5
+ } from "../chunk-MNDGLLBO.mjs";
6
+ import "../chunk-VYHMLMTQ.mjs";
7
+ import "../chunk-P354LSDN.mjs";
8
+ import "../chunk-FIQ32LMI.mjs";
9
+ import "../chunk-H2762RTS.mjs";
10
+ import "../chunk-A7C3XND3.mjs";
12
11
  import "../chunk-JSON7A4X.mjs";
12
+ import "../chunk-CO2AFYVD.mjs";
13
13
  import "../chunk-BDA5LB4S.mjs";
14
14
  import "../chunk-SJGQU3OG.mjs";
15
15
  import "../chunk-ZHXKBOK2.mjs";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  meta
3
- } from "../chunk-FA2L634X.mjs";
4
- import "../chunk-BJ6YF5ZH.mjs";
5
- import "../chunk-VWTL2GWP.mjs";
6
- import "../chunk-CO2AFYVD.mjs";
3
+ } from "../chunk-WTFW6DLP.mjs";
4
+ import "../chunk-H2762RTS.mjs";
5
+ import "../chunk-A7C3XND3.mjs";
7
6
  import "../chunk-JSON7A4X.mjs";
7
+ import "../chunk-CO2AFYVD.mjs";
8
8
  import "../chunk-BDA5LB4S.mjs";
9
9
  import "../chunk-SJGQU3OG.mjs";
10
10
  import "../chunk-ZHXKBOK2.mjs";
@@ -4,11 +4,11 @@ import {
4
4
  template,
5
5
  text,
6
6
  textValue
7
- } from "../chunk-X5W4BQUW.mjs";
8
- import "../chunk-BJ6YF5ZH.mjs";
9
- import "../chunk-VWTL2GWP.mjs";
10
- import "../chunk-CO2AFYVD.mjs";
7
+ } from "../chunk-FIQ32LMI.mjs";
8
+ import "../chunk-H2762RTS.mjs";
9
+ import "../chunk-A7C3XND3.mjs";
11
10
  import "../chunk-JSON7A4X.mjs";
11
+ import "../chunk-CO2AFYVD.mjs";
12
12
  import "../chunk-BDA5LB4S.mjs";
13
13
  import "../chunk-SJGQU3OG.mjs";
14
14
  import "../chunk-ZHXKBOK2.mjs";
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  Try,
3
3
  tryTo
4
- } from "../chunk-SEMYSRYW.mjs";
4
+ } from "../chunk-JICCIN24.mjs";
5
5
  import "../chunk-OFGI5FLG.mjs";
6
- import "../chunk-U3VBJFUV.mjs";
7
- import "../chunk-2ZX3KK44.mjs";
8
- import "../chunk-3RKVT7CA.mjs";
9
- import "../chunk-4V5GJC76.mjs";
6
+ import "../chunk-MNDGLLBO.mjs";
7
+ import "../chunk-VYHMLMTQ.mjs";
8
+ import "../chunk-5HENJTR6.mjs";
9
+ import "../chunk-AMFZRUX3.mjs";
10
10
  import "../chunk-WSBULPUZ.mjs";
11
- import "../chunk-L6QRIUO4.mjs";
12
- import "../chunk-X5W4BQUW.mjs";
13
- import "../chunk-EQKPZNKV.mjs";
14
- import "../chunk-FA2L634X.mjs";
15
- import "../chunk-BJ6YF5ZH.mjs";
16
- import "../chunk-VWTL2GWP.mjs";
17
- import "../chunk-CO2AFYVD.mjs";
11
+ import "../chunk-P354LSDN.mjs";
12
+ import "../chunk-FIQ32LMI.mjs";
13
+ import "../chunk-JVDKV5HE.mjs";
14
+ import "../chunk-WTFW6DLP.mjs";
15
+ import "../chunk-H2762RTS.mjs";
16
+ import "../chunk-A7C3XND3.mjs";
18
17
  import "../chunk-JSON7A4X.mjs";
18
+ import "../chunk-CO2AFYVD.mjs";
19
19
  import "../chunk-BDA5LB4S.mjs";
20
20
  import "../chunk-SJGQU3OG.mjs";
21
21
  import "../chunk-ZHXKBOK2.mjs";
@@ -1,30 +1,30 @@
1
1
  import {
2
2
  tryTo
3
- } from "../chunk-SEMYSRYW.mjs";
3
+ } from "../chunk-JICCIN24.mjs";
4
4
  import "../chunk-OFGI5FLG.mjs";
5
- import "../chunk-U3VBJFUV.mjs";
6
- import "../chunk-2ZX3KK44.mjs";
7
- import "../chunk-3RKVT7CA.mjs";
8
- import "../chunk-4V5GJC76.mjs";
5
+ import "../chunk-MNDGLLBO.mjs";
6
+ import "../chunk-VYHMLMTQ.mjs";
7
+ import "../chunk-5HENJTR6.mjs";
8
+ import "../chunk-AMFZRUX3.mjs";
9
9
  import "../chunk-WSBULPUZ.mjs";
10
10
  import {
11
11
  ctx
12
- } from "../chunk-L6QRIUO4.mjs";
13
- import "../chunk-X5W4BQUW.mjs";
14
- import "../chunk-EQKPZNKV.mjs";
12
+ } from "../chunk-P354LSDN.mjs";
13
+ import "../chunk-FIQ32LMI.mjs";
14
+ import "../chunk-JVDKV5HE.mjs";
15
15
  import {
16
16
  meta
17
- } from "../chunk-FA2L634X.mjs";
17
+ } from "../chunk-WTFW6DLP.mjs";
18
18
  import {
19
19
  entries
20
- } from "../chunk-BJ6YF5ZH.mjs";
20
+ } from "../chunk-H2762RTS.mjs";
21
21
  import {
22
22
  toList
23
- } from "../chunk-VWTL2GWP.mjs";
23
+ } from "../chunk-A7C3XND3.mjs";
24
+ import "../chunk-JSON7A4X.mjs";
24
25
  import {
25
26
  toArray
26
27
  } from "../chunk-CO2AFYVD.mjs";
27
- import "../chunk-JSON7A4X.mjs";
28
28
  import {
29
29
  asString
30
30
  } from "../chunk-BDA5LB4S.mjs";
@@ -2,16 +2,16 @@ import {
2
2
  Mapper,
3
3
  isMapping,
4
4
  mappings
5
- } from "../chunk-RPXYLXNK.mjs";
5
+ } from "../chunk-YGLRUAUP.mjs";
6
6
  import "../chunk-WJZFE5NE.mjs";
7
7
  import "../chunk-GCY5A63A.mjs";
8
8
  import "../chunk-MDXL65W4.mjs";
9
- import "../chunk-EVB7GWVS.mjs";
10
- import "../chunk-FA2L634X.mjs";
11
- import "../chunk-BJ6YF5ZH.mjs";
12
- import "../chunk-VWTL2GWP.mjs";
13
- import "../chunk-CO2AFYVD.mjs";
9
+ import "../chunk-6NJ65PSU.mjs";
10
+ import "../chunk-WTFW6DLP.mjs";
11
+ import "../chunk-H2762RTS.mjs";
12
+ import "../chunk-A7C3XND3.mjs";
14
13
  import "../chunk-JSON7A4X.mjs";
14
+ import "../chunk-CO2AFYVD.mjs";
15
15
  import "../chunk-BDA5LB4S.mjs";
16
16
  import "../chunk-SJGQU3OG.mjs";
17
17
  import "../chunk-ZHXKBOK2.mjs";
@@ -7,10 +7,10 @@ import {
7
7
  tuple3,
8
8
  tuple4,
9
9
  tuple5
10
- } from "../chunk-4V5GJC76.mjs";
11
- import "../chunk-VWTL2GWP.mjs";
12
- import "../chunk-CO2AFYVD.mjs";
10
+ } from "../chunk-5HENJTR6.mjs";
11
+ import "../chunk-A7C3XND3.mjs";
13
12
  import "../chunk-JSON7A4X.mjs";
13
+ import "../chunk-CO2AFYVD.mjs";
14
14
  import "../chunk-BDA5LB4S.mjs";
15
15
  import "../chunk-SJGQU3OG.mjs";
16
16
  import "../chunk-ZHXKBOK2.mjs";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  seconds
3
- } from "../chunk-YTAE5NRO.mjs";
4
- import "../chunk-VWTL2GWP.mjs";
5
- import "../chunk-CO2AFYVD.mjs";
3
+ } from "../chunk-JQQGQCYH.mjs";
4
+ import "../chunk-A7C3XND3.mjs";
6
5
  import "../chunk-JSON7A4X.mjs";
6
+ import "../chunk-CO2AFYVD.mjs";
7
7
  import "../chunk-BDA5LB4S.mjs";
8
8
  import "../chunk-SJGQU3OG.mjs";
9
9
  import "../chunk-ZHXKBOK2.mjs";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  text
3
- } from "../chunk-X5W4BQUW.mjs";
4
- import "../chunk-BJ6YF5ZH.mjs";
5
- import "../chunk-VWTL2GWP.mjs";
6
- import "../chunk-CO2AFYVD.mjs";
3
+ } from "../chunk-FIQ32LMI.mjs";
4
+ import "../chunk-H2762RTS.mjs";
5
+ import "../chunk-A7C3XND3.mjs";
7
6
  import "../chunk-JSON7A4X.mjs";
7
+ import "../chunk-CO2AFYVD.mjs";
8
8
  import "../chunk-BDA5LB4S.mjs";
9
9
  import "../chunk-SJGQU3OG.mjs";
10
10
  import "../chunk-ZHXKBOK2.mjs";
@@ -4,26 +4,26 @@ import {
4
4
  toViewer,
5
5
  view,
6
6
  views
7
- } from "../chunk-TMD77DUA.mjs";
8
- import "../chunk-KJFC3DRU.mjs";
7
+ } from "../chunk-T55MAIFL.mjs";
9
8
  import "../chunk-SSROJBD5.mjs";
10
- import "../chunk-JUDDV2H5.mjs";
11
- import "../chunk-EVB7GWVS.mjs";
12
- import "../chunk-SEMYSRYW.mjs";
9
+ import "../chunk-KZBVIWZZ.mjs";
10
+ import "../chunk-6K4R4SKN.mjs";
11
+ import "../chunk-6NJ65PSU.mjs";
12
+ import "../chunk-JICCIN24.mjs";
13
13
  import "../chunk-OFGI5FLG.mjs";
14
- import "../chunk-U3VBJFUV.mjs";
15
- import "../chunk-2ZX3KK44.mjs";
16
- import "../chunk-3RKVT7CA.mjs";
17
- import "../chunk-4V5GJC76.mjs";
14
+ import "../chunk-MNDGLLBO.mjs";
15
+ import "../chunk-VYHMLMTQ.mjs";
16
+ import "../chunk-5HENJTR6.mjs";
17
+ import "../chunk-AMFZRUX3.mjs";
18
18
  import "../chunk-WSBULPUZ.mjs";
19
- import "../chunk-L6QRIUO4.mjs";
20
- import "../chunk-X5W4BQUW.mjs";
21
- import "../chunk-EQKPZNKV.mjs";
22
- import "../chunk-FA2L634X.mjs";
23
- import "../chunk-BJ6YF5ZH.mjs";
24
- import "../chunk-VWTL2GWP.mjs";
25
- import "../chunk-CO2AFYVD.mjs";
19
+ import "../chunk-P354LSDN.mjs";
20
+ import "../chunk-FIQ32LMI.mjs";
21
+ import "../chunk-JVDKV5HE.mjs";
22
+ import "../chunk-WTFW6DLP.mjs";
23
+ import "../chunk-H2762RTS.mjs";
24
+ import "../chunk-A7C3XND3.mjs";
26
25
  import "../chunk-JSON7A4X.mjs";
26
+ import "../chunk-CO2AFYVD.mjs";
27
27
  import "../chunk-BDA5LB4S.mjs";
28
28
  import "../chunk-SJGQU3OG.mjs";
29
29
  import "../chunk-ZHXKBOK2.mjs";
@@ -17,23 +17,23 @@ import {
17
17
  required,
18
18
  rule,
19
19
  valid
20
- } from "../chunk-DIVCOWAG.mjs";
20
+ } from "../chunk-3LJLCDBY.mjs";
21
21
  import "../chunk-ADJAEGCT.mjs";
22
- import "../chunk-SEMYSRYW.mjs";
22
+ import "../chunk-JICCIN24.mjs";
23
23
  import "../chunk-OFGI5FLG.mjs";
24
- import "../chunk-U3VBJFUV.mjs";
25
- import "../chunk-2ZX3KK44.mjs";
26
- import "../chunk-3RKVT7CA.mjs";
27
- import "../chunk-4V5GJC76.mjs";
24
+ import "../chunk-MNDGLLBO.mjs";
25
+ import "../chunk-VYHMLMTQ.mjs";
26
+ import "../chunk-5HENJTR6.mjs";
27
+ import "../chunk-AMFZRUX3.mjs";
28
28
  import "../chunk-WSBULPUZ.mjs";
29
- import "../chunk-L6QRIUO4.mjs";
30
- import "../chunk-X5W4BQUW.mjs";
31
- import "../chunk-EQKPZNKV.mjs";
32
- import "../chunk-FA2L634X.mjs";
33
- import "../chunk-BJ6YF5ZH.mjs";
34
- import "../chunk-VWTL2GWP.mjs";
35
- import "../chunk-CO2AFYVD.mjs";
29
+ import "../chunk-P354LSDN.mjs";
30
+ import "../chunk-FIQ32LMI.mjs";
31
+ import "../chunk-JVDKV5HE.mjs";
32
+ import "../chunk-WTFW6DLP.mjs";
33
+ import "../chunk-H2762RTS.mjs";
34
+ import "../chunk-A7C3XND3.mjs";
36
35
  import "../chunk-JSON7A4X.mjs";
36
+ import "../chunk-CO2AFYVD.mjs";
37
37
  import "../chunk-BDA5LB4S.mjs";
38
38
  import "../chunk-SJGQU3OG.mjs";
39
39
  import "../chunk-ZHXKBOK2.mjs";
@@ -3,21 +3,21 @@ import {
3
3
  isValid,
4
4
  validate,
5
5
  validateReject
6
- } from "../chunk-SEMYSRYW.mjs";
6
+ } from "../chunk-JICCIN24.mjs";
7
7
  import "../chunk-OFGI5FLG.mjs";
8
- import "../chunk-U3VBJFUV.mjs";
9
- import "../chunk-2ZX3KK44.mjs";
10
- import "../chunk-3RKVT7CA.mjs";
11
- import "../chunk-4V5GJC76.mjs";
8
+ import "../chunk-MNDGLLBO.mjs";
9
+ import "../chunk-VYHMLMTQ.mjs";
10
+ import "../chunk-5HENJTR6.mjs";
11
+ import "../chunk-AMFZRUX3.mjs";
12
12
  import "../chunk-WSBULPUZ.mjs";
13
- import "../chunk-L6QRIUO4.mjs";
14
- import "../chunk-X5W4BQUW.mjs";
15
- import "../chunk-EQKPZNKV.mjs";
16
- import "../chunk-FA2L634X.mjs";
17
- import "../chunk-BJ6YF5ZH.mjs";
18
- import "../chunk-VWTL2GWP.mjs";
19
- import "../chunk-CO2AFYVD.mjs";
13
+ import "../chunk-P354LSDN.mjs";
14
+ import "../chunk-FIQ32LMI.mjs";
15
+ import "../chunk-JVDKV5HE.mjs";
16
+ import "../chunk-WTFW6DLP.mjs";
17
+ import "../chunk-H2762RTS.mjs";
18
+ import "../chunk-A7C3XND3.mjs";
20
19
  import "../chunk-JSON7A4X.mjs";
20
+ import "../chunk-CO2AFYVD.mjs";
21
21
  import "../chunk-BDA5LB4S.mjs";
22
22
  import "../chunk-SJGQU3OG.mjs";
23
23
  import "../chunk-ZHXKBOK2.mjs";
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  When,
3
3
  when
4
- } from "../chunk-SEMYSRYW.mjs";
4
+ } from "../chunk-JICCIN24.mjs";
5
5
  import "../chunk-OFGI5FLG.mjs";
6
- import "../chunk-U3VBJFUV.mjs";
7
- import "../chunk-2ZX3KK44.mjs";
8
- import "../chunk-3RKVT7CA.mjs";
9
- import "../chunk-4V5GJC76.mjs";
6
+ import "../chunk-MNDGLLBO.mjs";
7
+ import "../chunk-VYHMLMTQ.mjs";
8
+ import "../chunk-5HENJTR6.mjs";
9
+ import "../chunk-AMFZRUX3.mjs";
10
10
  import "../chunk-WSBULPUZ.mjs";
11
- import "../chunk-L6QRIUO4.mjs";
12
- import "../chunk-X5W4BQUW.mjs";
13
- import "../chunk-EQKPZNKV.mjs";
14
- import "../chunk-FA2L634X.mjs";
15
- import "../chunk-BJ6YF5ZH.mjs";
16
- import "../chunk-VWTL2GWP.mjs";
17
- import "../chunk-CO2AFYVD.mjs";
11
+ import "../chunk-P354LSDN.mjs";
12
+ import "../chunk-FIQ32LMI.mjs";
13
+ import "../chunk-JVDKV5HE.mjs";
14
+ import "../chunk-WTFW6DLP.mjs";
15
+ import "../chunk-H2762RTS.mjs";
16
+ import "../chunk-A7C3XND3.mjs";
18
17
  import "../chunk-JSON7A4X.mjs";
18
+ import "../chunk-CO2AFYVD.mjs";
19
19
  import "../chunk-BDA5LB4S.mjs";
20
20
  import "../chunk-SJGQU3OG.mjs";
21
21
  import "../chunk-ZHXKBOK2.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "17.11.31",
3
+ "version": "17.12.1",
4
4
  "description": "Straightforward library for building domain-driven microservice architectures",
5
5
  "author": "Sander Hoogendoorn",
6
6
  "license": "MIT",
@@ -22,20 +22,25 @@ export type DiffOptions = {
22
22
  type DatetimeInput = string | number | Date | DateTime | null;
23
23
 
24
24
  export class DateTime extends Value<Optional<string>> {
25
+ protected readonly luxon: LuxonDateTime;
26
+
27
+ constructor(value?: DatetimeInput);
28
+ constructor(value?: string, format?: string);
25
29
  constructor(value?: DatetimeInput, format?: string) {
26
- super(
27
- choose(value)
28
- .type(isString, v => (format ? LuxonDateTime.fromFormat(v, format, { setZone: true }) : LuxonDateTime.fromISO(v, { setZone: true })))
29
- .type(isNumber, v => LuxonDateTime.fromMillis(v))
30
- .type(isDate, v => LuxonDateTime.fromJSDate(v))
31
- .type(isDateTime, v => LuxonDateTime.fromISO(v.toString()))
32
- .else(undefined as unknown as LuxonDateTime)
33
- ?.toISO() as unknown as string
34
- );
30
+ const luxon = choose(value)
31
+ .type(isString, v => (format ? LuxonDateTime.fromFormat(v, format, { setZone: true }) : LuxonDateTime.fromISO(v, { setZone: true })))
32
+ .type(isNumber, v => LuxonDateTime.fromMillis(v))
33
+ .type(isDate, v => LuxonDateTime.fromJSDate(v))
34
+ .type(isDateTime, v => v.luxon)
35
+ // Allow constructing with LuxonDateTime without exposing types
36
+ .else(value as any ?? LuxonDateTime.fromISO(undefined as any));
37
+
38
+ super(luxon.toISO() ?? undefined);
39
+ this.luxon = luxon;
35
40
  }
36
41
 
37
42
  static get now(): DateTime {
38
- return new DateTime(LuxonDateTime.utc().toISO());
43
+ return new DateTime(LuxonDateTime.utc() as any);
39
44
  }
40
45
 
41
46
  get isValid(): boolean {
@@ -53,24 +58,16 @@ export class DateTime extends Value<Optional<string>> {
53
58
  return this.luxon.setZone('utc');
54
59
  }
55
60
 
56
- protected get luxon(): LuxonDateTime {
57
- return LuxonDateTime.fromISO(this.value as string, { setZone: true });
58
- }
59
-
60
- from(date?: DateTime): string;
61
-
62
61
  from(locale?: string): string;
63
-
64
62
  from(date?: DateTime, locale?: string): string;
65
-
66
- from(param?: string | DateTime, other?: string): string {
67
- const date: Optional<DateTime> = isA<DateTime>(param) ? param : undefined;
68
- const locale: string = (isString(param) ? param : undefined) ?? other ?? 'en';
63
+ from(dateOrLocale?: string | DateTime, maybeLocale?: string): string {
64
+ const date: Optional<DateTime> = isA<DateTime>(dateOrLocale) ? dateOrLocale : undefined;
65
+ const locale: string = (isString(dateOrLocale) ? dateOrLocale : undefined) ?? maybeLocale ?? 'en';
69
66
  return ifDefined(
70
67
  date,
71
68
  d => this.utc.setLocale(locale).toRelative({ base: d.utc }),
72
69
  () => this.utc.setLocale(locale).toRelative()
73
- ) as string;
70
+ ) ?? "";
74
71
  }
75
72
 
76
73
  isAfter(dt: DateTime): boolean {
@@ -85,18 +82,16 @@ export class DateTime extends Value<Optional<string>> {
85
82
  return this.utc.hasSame(dt.utc, 'millisecond');
86
83
  }
87
84
 
88
- add(n: number): DateTime;
89
- add(n: number, unit: DurationUnit): DateTime;
85
+ add(n: number, unit?: DurationUnit): DateTime;
90
86
  add(duration: Duration): DateTime;
91
- add(n: number | Duration, unit?: DurationUnit): DateTime {
92
- return new DateTime(this.luxon.plus(isNumber(n) ? { [unit ?? ('day' as string)]: n } : n).toISO());
87
+ add(n: number | Duration, unit: DurationUnit = 'day'): DateTime {
88
+ return new DateTime(this.luxon.plus(isNumber(n) ? { [unit]: n } : n) as any);
93
89
  }
94
90
 
95
- subtract(n: number): DateTime;
96
- subtract(n: number, unit: DurationUnit): DateTime;
91
+ subtract(n: number, unit?: DurationUnit): DateTime;
97
92
  subtract(duration: Duration): DateTime;
98
- subtract(n: number | Duration, unit?: DurationUnit): DateTime {
99
- return new DateTime(this.luxon.minus(isNumber(n) ? { [unit ?? ('day' as string)]: n } : n).toISO());
93
+ subtract(n: number | Duration, unit: DurationUnit = 'day'): DateTime {
94
+ return new DateTime(this.luxon.minus(isNumber(n) ? { [unit]: n } : n) as any);
100
95
  }
101
96
 
102
97
  diff(other: DateTime, unit: DateTimeUnit = 'day', opts?: DiffOptions): number {
@@ -104,11 +99,11 @@ export class DateTime extends Value<Optional<string>> {
104
99
  }
105
100
 
106
101
  startOf(unit: DateTimeUnit = 'day'): DateTime {
107
- return new DateTime(this.luxon.startOf(unit).toISO());
102
+ return new DateTime(this.luxon.startOf(unit) as any);
108
103
  }
109
104
 
110
105
  endOf(unit: DateTimeUnit = 'day'): DateTime {
111
- return new DateTime(this.luxon.endOf(unit).toISO());
106
+ return new DateTime(this.luxon.endOf(unit) as any);
112
107
  }
113
108
 
114
109
  isWeekend(): boolean {
@@ -116,7 +111,7 @@ export class DateTime extends Value<Optional<string>> {
116
111
  }
117
112
 
118
113
  withZone(zone: string): DateTime {
119
- return new DateTime(this.utc.setZone(zone).toISO());
114
+ return new DateTime(this.luxon.setZone(zone) as any);
120
115
  }
121
116
 
122
117
  toString(): string {
@@ -124,7 +119,7 @@ export class DateTime extends Value<Optional<string>> {
124
119
  }
125
120
 
126
121
  toJSON(): JsonValue {
127
- return this.utc.toISO() as unknown as JsonValue;
122
+ return this.utc.toISO();
128
123
  }
129
124
 
130
125
  toFormat(format: string): string {
@@ -155,3 +150,4 @@ export class DateTime extends Value<Optional<string>> {
155
150
  export const isDateTime = (dt?: unknown): dt is DateTime => isDefined(dt) && dt instanceof DateTime;
156
151
 
157
152
  export const dt = (dt?: DatetimeInput): DateTime => new DateTime(dt);
153
+
package/src/types/List.ts CHANGED
@@ -30,6 +30,10 @@ export class List<T = unknown> extends Array<T> {
30
30
  return !this.isIntersectingWith(...items);
31
31
  }
32
32
 
33
+ areEqual(...items: ArrayLike<T> ): boolean {
34
+ return this.isSubSetOf(...items) && toList(...items).isSubSetOf(...this);
35
+ }
36
+
33
37
  asc(p: GetProperty<T, any>): List<T> {
34
38
  return this.sort((e1, e2) => (ofProperty(e1, p) > ofProperty(e2, p) ? 1 : -1));
35
39
  }
@@ -1,4 +1,4 @@
1
- import { isList, List } from './List';
1
+ import { isList, List, toList } from './List';
2
2
  import { Construct, ofConstruct } from './Constructor';
3
3
  import { isA } from './IsA';
4
4
  import { PlainSort, Sort } from './Sort';
@@ -112,6 +112,10 @@ export class PageList<T> extends List<T> {
112
112
  return super.mapAsync(f).then(r => toPageList(r, this));
113
113
  }
114
114
 
115
+ areEqual(...items: ArrayLike<T> ): boolean {
116
+ return this.isSubSetOf(...items) && toList(...items).isSubSetOf(...this);
117
+ }
118
+
115
119
  distinct(): PageList<T> {
116
120
  return toPageList(super.distinct(), this);
117
121
  }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/domain/DateTime.ts"],"sourcesContent":["import { DateTime as LuxonDateTime, DateTimeUnit as LuxonDateTimeUnit, DurationUnit as LuxonDurationUnit, Settings } from 'luxon';\nimport { Value } from '../types/Value';\nimport { Optional } from '../types/Types';\nimport { choose } from '../types/Case';\nimport { isDefined, isNumber, isString } from '../types/Is';\nimport { isDate } from '../types/IsDate';\nimport { isA } from '../types/IsA';\nimport { ifDefined } from '../utils/If';\nimport { JsonValue } from '../types/Json';\nimport { seconds } from '../utils/Seconds';\n\nSettings.defaultZone = 'utc';\n\nexport type DateTimeUnit = LuxonDateTimeUnit;\nexport type DurationUnit = LuxonDurationUnit;\nexport type Duration = Partial<Record<DurationUnit, number>>;\n\nexport type DiffOptions = {\n rounding: 'floor' | 'ceil' | 'round';\n};\n\ntype DatetimeInput = string | number | Date | DateTime | null;\n\nexport class DateTime extends Value<Optional<string>> {\n constructor(value?: DatetimeInput, format?: string) {\n super(\n choose(value)\n .type(isString, v => (format ? LuxonDateTime.fromFormat(v, format, { setZone: true }) : LuxonDateTime.fromISO(v, { setZone: true })))\n .type(isNumber, v => LuxonDateTime.fromMillis(v))\n .type(isDate, v => LuxonDateTime.fromJSDate(v))\n .type(isDateTime, v => LuxonDateTime.fromISO(v.toString()))\n .else(undefined as unknown as LuxonDateTime)\n ?.toISO() as unknown as string\n );\n }\n\n static get now(): DateTime {\n return new DateTime(LuxonDateTime.utc().toISO());\n }\n\n get isValid(): boolean {\n return isDefined(this.value) && this.utc.isValid;\n }\n\n /**\n * @deprecated Deprecated in favor for DateTime.from as that also accepts locales and another DateTime\n */\n get fromNow(): string {\n return this.from();\n }\n\n protected get utc(): LuxonDateTime {\n return this.luxon.setZone('utc');\n }\n\n protected get luxon(): LuxonDateTime {\n return LuxonDateTime.fromISO(this.value as string, { setZone: true });\n }\n\n from(date?: DateTime): string;\n\n from(locale?: string): string;\n\n from(date?: DateTime, locale?: string): string;\n\n from(param?: string | DateTime, other?: string): string {\n const date: Optional<DateTime> = isA<DateTime>(param) ? param : undefined;\n const locale: string = (isString(param) ? param : undefined) ?? other ?? 'en';\n return ifDefined(\n date,\n d => this.utc.setLocale(locale).toRelative({ base: d.utc }),\n () => this.utc.setLocale(locale).toRelative()\n ) as string;\n }\n\n isAfter(dt: DateTime): boolean {\n return this.utc > dt.utc;\n }\n\n isBefore(dt: DateTime): boolean {\n return this.utc < dt.utc;\n }\n\n equals(dt: DateTime): boolean {\n return this.utc.hasSame(dt.utc, 'millisecond');\n }\n\n add(n: number): DateTime;\n add(n: number, unit: DurationUnit): DateTime;\n add(duration: Duration): DateTime;\n add(n: number | Duration, unit?: DurationUnit): DateTime {\n return new DateTime(this.luxon.plus(isNumber(n) ? { [unit ?? ('day' as string)]: n } : n).toISO());\n }\n\n subtract(n: number): DateTime;\n subtract(n: number, unit: DurationUnit): DateTime;\n subtract(duration: Duration): DateTime;\n subtract(n: number | Duration, unit?: DurationUnit): DateTime {\n return new DateTime(this.luxon.minus(isNumber(n) ? { [unit ?? ('day' as string)]: n } : n).toISO());\n }\n\n diff(other: DateTime, unit: DateTimeUnit = 'day', opts?: DiffOptions): number {\n return Math[opts?.rounding ?? 'floor'](this.utc.diff(other.utc).as(unit));\n }\n\n startOf(unit: DateTimeUnit = 'day'): DateTime {\n return new DateTime(this.luxon.startOf(unit).toISO());\n }\n\n endOf(unit: DateTimeUnit = 'day'): DateTime {\n return new DateTime(this.luxon.endOf(unit).toISO());\n }\n\n isWeekend(): boolean {\n return this.luxon.isWeekend;\n }\n\n withZone(zone: string): DateTime {\n return new DateTime(this.utc.setZone(zone).toISO());\n }\n\n toString(): string {\n return this.value ?? '';\n }\n\n toJSON(): JsonValue {\n return this.utc.toISO() as unknown as JsonValue;\n }\n\n toFormat(format: string): string {\n return this.luxon.toFormat(format);\n }\n\n toLocale(locale = 'nl-NL', format = 'D'): string {\n return this.luxon.setLocale(locale).toFormat(format);\n }\n\n toFull(locale?: string): string {\n return this.toLocale(locale, 'DDD');\n }\n\n toDate(): Optional<Date> {\n return this.isValid ? this.utc.toJSDate() : undefined;\n }\n\n toEpoch(): number {\n return this.luxon.toMillis();\n }\n\n ago(end: DateTime = DateTime.now): string {\n return seconds.toText(end.diff(this, 'second'));\n }\n}\n\nexport const isDateTime = (dt?: unknown): dt is DateTime => isDefined(dt) && dt instanceof DateTime;\n\nexport const dt = (dt?: DatetimeInput): DateTime => new DateTime(dt);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAY,eAAqF,gBAAgB;AAW1H,SAAS,cAAc;AAYhB,IAAM,WAAN,MAAM,kBAAiB,MAAwB;AAAA,EACpD,YAAY,OAAuB,QAAiB;AAClD;AAAA,MACE,OAAO,KAAK,EACT,KAAK,UAAU,OAAM,SAAS,cAAc,WAAW,GAAG,QAAQ,EAAE,SAAS,KAAK,CAAC,IAAI,cAAc,QAAQ,GAAG,EAAE,SAAS,KAAK,CAAC,CAAE,EACnI,KAAK,UAAU,OAAK,cAAc,WAAW,CAAC,CAAC,EAC/C,KAAK,QAAQ,OAAK,cAAc,WAAW,CAAC,CAAC,EAC7C,KAAK,YAAY,OAAK,cAAc,QAAQ,EAAE,SAAS,CAAC,CAAC,EACzD,KAAK,MAAqC,GACzC,MAAM;AAAA,IACZ;AAAA,EACF;AAAA,EAEA,WAAW,MAAgB;AACzB,WAAO,IAAI,UAAS,cAAc,IAAI,EAAE,MAAM,CAAC;AAAA,EACjD;AAAA,EAEA,IAAI,UAAmB;AACrB,WAAO,UAAU,KAAK,KAAK,KAAK,KAAK,IAAI;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAAkB;AACpB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAc,MAAqB;AACjC,WAAO,KAAK,MAAM,QAAQ,KAAK;AAAA,EACjC;AAAA,EAEA,IAAc,QAAuB;AACnC,WAAO,cAAc,QAAQ,KAAK,OAAiB,EAAE,SAAS,KAAK,CAAC;AAAA,EACtE;AAAA,EAQA,KAAK,OAA2B,OAAwB;AACtD,UAAM,OAA2B,IAAc,KAAK,IAAI,QAAQ;AAChE,UAAM,UAAkB,SAAS,KAAK,IAAI,QAAQ,WAAc,SAAS;AACzE,WAAO;AAAA,MACL;AAAA,MACA,OAAK,KAAK,IAAI,UAAU,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC;AAAA,MAC1D,MAAM,KAAK,IAAI,UAAU,MAAM,EAAE,WAAW;AAAA,IAC9C;AAAA,EACF;AAAA,EAEA,QAAQA,KAAuB;AAC7B,WAAO,KAAK,MAAMA,IAAG;AAAA,EACvB;AAAA,EAEA,SAASA,KAAuB;AAC9B,WAAO,KAAK,MAAMA,IAAG;AAAA,EACvB;AAAA,EAEA,OAAOA,KAAuB;AAC5B,WAAO,KAAK,IAAI,QAAQA,IAAG,KAAK,aAAa;AAAA,EAC/C;AAAA,EAKA,IAAI,GAAsB,MAA+B;AACvD,WAAO,IAAI,UAAS,KAAK,MAAM,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC,QAAS,KAAgB,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC;AAAA,EACnG;AAAA,EAKA,SAAS,GAAsB,MAA+B;AAC5D,WAAO,IAAI,UAAS,KAAK,MAAM,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,QAAS,KAAgB,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC;AAAA,EACpG;AAAA,EAEA,KAAK,OAAiB,OAAqB,OAAO,MAA4B;AAC5E,WAAO,KAAK,MAAM,YAAY,OAAO,EAAE,KAAK,IAAI,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC;AAAA,EAC1E;AAAA,EAEA,QAAQ,OAAqB,OAAiB;AAC5C,WAAO,IAAI,UAAS,KAAK,MAAM,QAAQ,IAAI,EAAE,MAAM,CAAC;AAAA,EACtD;AAAA,EAEA,MAAM,OAAqB,OAAiB;AAC1C,WAAO,IAAI,UAAS,KAAK,MAAM,MAAM,IAAI,EAAE,MAAM,CAAC;AAAA,EACpD;AAAA,EAEA,YAAqB;AACnB,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAEA,SAAS,MAAwB;AAC/B,WAAO,IAAI,UAAS,KAAK,IAAI,QAAQ,IAAI,EAAE,MAAM,CAAC;AAAA,EACpD;AAAA,EAEA,WAAmB;AACjB,WAAO,KAAK,SAAS;AAAA,EACvB;AAAA,EAEA,SAAoB;AAClB,WAAO,KAAK,IAAI,MAAM;AAAA,EACxB;AAAA,EAEA,SAAS,QAAwB;AAC/B,WAAO,KAAK,MAAM,SAAS,MAAM;AAAA,EACnC;AAAA,EAEA,SAAS,SAAS,SAAS,SAAS,KAAa;AAC/C,WAAO,KAAK,MAAM,UAAU,MAAM,EAAE,SAAS,MAAM;AAAA,EACrD;AAAA,EAEA,OAAO,QAAyB;AAC9B,WAAO,KAAK,SAAS,QAAQ,KAAK;AAAA,EACpC;AAAA,EAEA,SAAyB;AACvB,WAAO,KAAK,UAAU,KAAK,IAAI,SAAS,IAAI;AAAA,EAC9C;AAAA,EAEA,UAAkB;AAChB,WAAO,KAAK,MAAM,SAAS;AAAA,EAC7B;AAAA,EAEA,IAAI,MAAgB,UAAS,KAAa;AACxC,WAAO,QAAQ,OAAO,IAAI,KAAK,MAAM,QAAQ,CAAC;AAAA,EAChD;AACF;AAEO,IAAM,aAAa,CAACA,QAAiC,UAAUA,GAAE,KAAKA,eAAc;AAEpF,IAAM,KAAK,CAACA,QAAiC,IAAI,SAASA,GAAE;","names":["dt"]}
@@ -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, count?: number };\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/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 get ids(): List<Id> {\n return this.mapDefined(i => (i as any).id as Id);\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 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<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: (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 //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)): 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: (value: T, index: number, array: T[]) => unknown, 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":["acc"]}