@thisisagile/easy 18.10.0 → 18.11.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 (177) hide show
  1. package/README.md +1 -1
  2. package/dist/{chunk-WM6VMJHW.mjs → chunk-3VDUMU5P.mjs} +2 -2
  3. package/dist/{chunk-TCJCHCJV.mjs → chunk-4AEHKWWI.mjs} +2 -2
  4. package/dist/{chunk-RVRWRUR4.mjs → chunk-4FXDIYQT.mjs} +3 -3
  5. package/dist/{chunk-HFGH75UW.mjs → chunk-4NRVIWNE.mjs} +3 -3
  6. package/dist/{chunk-LQYQISSV.mjs → chunk-4UKOKM72.mjs} +3 -3
  7. package/dist/{chunk-26QCRW4Q.mjs → chunk-52VT3UEM.mjs} +3 -3
  8. package/dist/{chunk-T32HGK7R.mjs → chunk-5VP4WNID.mjs} +5 -5
  9. package/dist/{chunk-QMXVI6ZP.mjs → chunk-5WGOB7QF.mjs} +2 -2
  10. package/dist/{chunk-VFHSP7MK.mjs → chunk-6FUVIZYN.mjs} +2 -2
  11. package/dist/{chunk-RO74JHB7.mjs → chunk-BODG3KPC.mjs} +3 -3
  12. package/dist/{chunk-AU2A23B4.mjs → chunk-BSN5WGZ6.mjs} +3 -3
  13. package/dist/{chunk-HCXQZYTR.mjs → chunk-DODBPVV5.mjs} +7 -7
  14. package/dist/{chunk-SMM62THT.mjs → chunk-EFFUHXDK.mjs} +4 -4
  15. package/dist/{chunk-OWAUGSJI.mjs → chunk-EGGEJRWA.mjs} +4 -4
  16. package/dist/{chunk-RDA6XPHT.mjs → chunk-EHVMIXKR.mjs} +4 -4
  17. package/dist/chunk-GRDUTNMZ.mjs +272 -0
  18. package/dist/chunk-GRDUTNMZ.mjs.map +1 -0
  19. package/dist/{chunk-2EXRHTUE.mjs → chunk-HAGNDCSR.mjs} +3 -3
  20. package/dist/{chunk-IAHI5LT3.mjs → chunk-HN3HW22I.mjs} +2 -2
  21. package/dist/{chunk-6Q7FX3KI.mjs → chunk-I2VWZJ2K.mjs} +3 -3
  22. package/dist/{chunk-VAQAXKX2.mjs → chunk-IMJHOYU3.mjs} +2 -2
  23. package/dist/{chunk-YJ7BQOWU.mjs → chunk-J2RU23YZ.mjs} +3 -3
  24. package/dist/{chunk-XRLLGVKR.mjs → chunk-KMEBQTNE.mjs} +2 -2
  25. package/dist/{chunk-ACTQARWL.mjs → chunk-KXYGCS7S.mjs} +2 -2
  26. package/dist/{chunk-CCQJX6G6.mjs → chunk-M7MW5CXO.mjs} +2 -2
  27. package/dist/{chunk-4DUWX4YU.mjs → chunk-M7OD5QSB.mjs} +3 -3
  28. package/dist/{chunk-37QC66CS.mjs → chunk-MJAB7NZV.mjs} +2 -2
  29. package/dist/{chunk-VAJ64J43.mjs → chunk-NNA77YYC.mjs} +1 -1
  30. package/dist/{chunk-VAJ64J43.mjs.map → chunk-NNA77YYC.mjs.map} +1 -1
  31. package/dist/{chunk-GDLSJ5P4.mjs → chunk-NQYUWVJT.mjs} +3 -3
  32. package/dist/{chunk-BZLVW3TO.mjs → chunk-P4XVLBXB.mjs} +3 -3
  33. package/dist/{chunk-GMSPATXC.mjs → chunk-PNSMLGOA.mjs} +2 -2
  34. package/dist/{chunk-ZQXTKDWH.mjs → chunk-RF23BV6J.mjs} +2 -2
  35. package/dist/{chunk-YW4JACEA.mjs → chunk-S3NSPQ7M.mjs} +2 -2
  36. package/dist/{chunk-4SM5CZ36.mjs → chunk-TNLJ45P5.mjs} +2 -2
  37. package/dist/{chunk-ZTQEZ5BV.mjs → chunk-UG3NG43J.mjs} +4 -4
  38. package/dist/{chunk-UCDGCXSA.mjs → chunk-V5TW476J.mjs} +4 -4
  39. package/dist/{chunk-R3YY4LWL.mjs → chunk-WLTKHBFQ.mjs} +4 -4
  40. package/dist/{chunk-T7LION5W.mjs → chunk-XMTKVPNV.mjs} +2 -2
  41. package/dist/{chunk-2TAWQZJG.mjs → chunk-XVZYKKLD.mjs} +2 -2
  42. package/dist/{chunk-DXM52QBL.mjs → chunk-YDYQTX4H.mjs} +5 -5
  43. package/dist/{chunk-4S6TVJDY.mjs → chunk-YRVCY3KC.mjs} +4 -4
  44. package/dist/{chunk-ULVLP74J.mjs → chunk-YYXHD3PC.mjs} +2 -2
  45. package/dist/{chunk-D5C4U6JT.mjs → chunk-ZO6LH5HU.mjs} +2 -2
  46. package/dist/data/Condition.mjs +6 -6
  47. package/dist/data/Database.mjs +4 -4
  48. package/dist/data/Field.mjs +7 -7
  49. package/dist/data/InMemoryGateway.mjs +5 -5
  50. package/dist/domain/Audit.mjs +9 -9
  51. package/dist/domain/Child.mjs +8 -8
  52. package/dist/domain/DateTime.d.ts +7 -5
  53. package/dist/domain/DateTime.mjs +5 -5
  54. package/dist/domain/Entity.mjs +11 -11
  55. package/dist/domain/Repo.mjs +5 -5
  56. package/dist/domain/Struct.mjs +5 -5
  57. package/dist/domain/Typo.mjs +5 -5
  58. package/dist/http/CacheControl.mjs +5 -5
  59. package/dist/http/ContentType.mjs +4 -4
  60. package/dist/http/HttpStatus.mjs +4 -4
  61. package/dist/http/HttpVerb.mjs +4 -4
  62. package/dist/http/LocalRequestStore.mjs +3 -3
  63. package/dist/http/RequestOptions.mjs +6 -6
  64. package/dist/http/RestResult.mjs +5 -5
  65. package/dist/http/toResponse.mjs +6 -6
  66. package/dist/index.js +165 -33
  67. package/dist/index.js.map +1 -1
  68. package/dist/process/App.mjs +4 -4
  69. package/dist/process/Manage.mjs +5 -5
  70. package/dist/process/Scope.mjs +4 -4
  71. package/dist/process/Search.mjs +5 -5
  72. package/dist/process/UseCase.mjs +3 -3
  73. package/dist/resources/Req.mjs +4 -4
  74. package/dist/security/Jwt.mjs +2 -2
  75. package/dist/services/Api.mjs +14 -14
  76. package/dist/services/ApiGateway.mjs +17 -17
  77. package/dist/services/AxiosProvider.mjs +12 -12
  78. package/dist/services/MappedRouteGateway.mjs +22 -22
  79. package/dist/services/RouteGateway.mjs +18 -18
  80. package/dist/services/ViewRouteGateway.mjs +20 -20
  81. package/dist/sql/Clause.mjs +3 -3
  82. package/dist/sql/Column.mjs +7 -7
  83. package/dist/sql/Count.mjs +6 -6
  84. package/dist/sql/Delete.mjs +5 -5
  85. package/dist/sql/Insert.mjs +7 -7
  86. package/dist/sql/Select.mjs +5 -5
  87. package/dist/sql/SqlQuery.mjs +4 -4
  88. package/dist/sql/Table.mjs +17 -17
  89. package/dist/sql/TableGateway.mjs +5 -5
  90. package/dist/sql/Update.mjs +7 -7
  91. package/dist/types/Builder.mjs +1 -1
  92. package/dist/types/Cache.mjs +3 -3
  93. package/dist/types/CacheAge.mjs +5 -5
  94. package/dist/types/Case.mjs +3 -3
  95. package/dist/types/Context.mjs +3 -3
  96. package/dist/types/Enum.mjs +3 -3
  97. package/dist/types/Environment.mjs +3 -3
  98. package/dist/types/Exception.mjs +3 -3
  99. package/dist/types/Gateway.mjs +4 -4
  100. package/dist/types/Id.mjs +3 -3
  101. package/dist/types/IsEqual.mjs +3 -3
  102. package/dist/types/Json.mjs +4 -4
  103. package/dist/types/List.mjs +3 -3
  104. package/dist/types/Meta.mjs +3 -3
  105. package/dist/types/Number.mjs +4 -4
  106. package/dist/types/Object.mjs +3 -3
  107. package/dist/types/PageList.mjs +4 -4
  108. package/dist/types/Parser.mjs +3 -3
  109. package/dist/types/Repository.mjs +4 -4
  110. package/dist/types/Result.mjs +3 -3
  111. package/dist/types/Results.mjs +3 -3
  112. package/dist/types/Tag.mjs +3 -3
  113. package/dist/types/Template.mjs +3 -3
  114. package/dist/types/Text.d.ts +1 -0
  115. package/dist/types/Text.mjs +1 -1
  116. package/dist/types/ToText.mjs +3 -3
  117. package/dist/types/Try.mjs +3 -3
  118. package/dist/types/Uri.mjs +3 -3
  119. package/dist/types/Uuid.mjs +2 -2
  120. package/dist/types/Value.mjs +2 -2
  121. package/dist/utils/Convert.mjs +2 -2
  122. package/dist/utils/If.mjs +3 -3
  123. package/dist/utils/Mapper.mjs +7 -7
  124. package/dist/utils/Period.mjs +5 -5
  125. package/dist/utils/Promise.mjs +3 -3
  126. package/dist/utils/Property.mjs +3 -3
  127. package/dist/utils/Seconds.mjs +4 -4
  128. package/dist/utils/Sentence.mjs +3 -3
  129. package/dist/utils/View.mjs +6 -6
  130. package/dist/validation/Contraints.mjs +4 -4
  131. package/dist/validation/Validate.mjs +3 -3
  132. package/dist/validation/When.mjs +3 -3
  133. package/package.json +9 -4
  134. package/src/domain/DateTime.ts +206 -40
  135. package/src/types/Text.ts +2 -0
  136. package/dist/chunk-XKRR6345.mjs +0 -140
  137. package/dist/chunk-XKRR6345.mjs.map +0 -1
  138. /package/dist/{chunk-WM6VMJHW.mjs.map → chunk-3VDUMU5P.mjs.map} +0 -0
  139. /package/dist/{chunk-TCJCHCJV.mjs.map → chunk-4AEHKWWI.mjs.map} +0 -0
  140. /package/dist/{chunk-RVRWRUR4.mjs.map → chunk-4FXDIYQT.mjs.map} +0 -0
  141. /package/dist/{chunk-HFGH75UW.mjs.map → chunk-4NRVIWNE.mjs.map} +0 -0
  142. /package/dist/{chunk-LQYQISSV.mjs.map → chunk-4UKOKM72.mjs.map} +0 -0
  143. /package/dist/{chunk-26QCRW4Q.mjs.map → chunk-52VT3UEM.mjs.map} +0 -0
  144. /package/dist/{chunk-T32HGK7R.mjs.map → chunk-5VP4WNID.mjs.map} +0 -0
  145. /package/dist/{chunk-QMXVI6ZP.mjs.map → chunk-5WGOB7QF.mjs.map} +0 -0
  146. /package/dist/{chunk-VFHSP7MK.mjs.map → chunk-6FUVIZYN.mjs.map} +0 -0
  147. /package/dist/{chunk-RO74JHB7.mjs.map → chunk-BODG3KPC.mjs.map} +0 -0
  148. /package/dist/{chunk-AU2A23B4.mjs.map → chunk-BSN5WGZ6.mjs.map} +0 -0
  149. /package/dist/{chunk-HCXQZYTR.mjs.map → chunk-DODBPVV5.mjs.map} +0 -0
  150. /package/dist/{chunk-SMM62THT.mjs.map → chunk-EFFUHXDK.mjs.map} +0 -0
  151. /package/dist/{chunk-OWAUGSJI.mjs.map → chunk-EGGEJRWA.mjs.map} +0 -0
  152. /package/dist/{chunk-RDA6XPHT.mjs.map → chunk-EHVMIXKR.mjs.map} +0 -0
  153. /package/dist/{chunk-2EXRHTUE.mjs.map → chunk-HAGNDCSR.mjs.map} +0 -0
  154. /package/dist/{chunk-IAHI5LT3.mjs.map → chunk-HN3HW22I.mjs.map} +0 -0
  155. /package/dist/{chunk-6Q7FX3KI.mjs.map → chunk-I2VWZJ2K.mjs.map} +0 -0
  156. /package/dist/{chunk-VAQAXKX2.mjs.map → chunk-IMJHOYU3.mjs.map} +0 -0
  157. /package/dist/{chunk-YJ7BQOWU.mjs.map → chunk-J2RU23YZ.mjs.map} +0 -0
  158. /package/dist/{chunk-XRLLGVKR.mjs.map → chunk-KMEBQTNE.mjs.map} +0 -0
  159. /package/dist/{chunk-ACTQARWL.mjs.map → chunk-KXYGCS7S.mjs.map} +0 -0
  160. /package/dist/{chunk-CCQJX6G6.mjs.map → chunk-M7MW5CXO.mjs.map} +0 -0
  161. /package/dist/{chunk-4DUWX4YU.mjs.map → chunk-M7OD5QSB.mjs.map} +0 -0
  162. /package/dist/{chunk-37QC66CS.mjs.map → chunk-MJAB7NZV.mjs.map} +0 -0
  163. /package/dist/{chunk-GDLSJ5P4.mjs.map → chunk-NQYUWVJT.mjs.map} +0 -0
  164. /package/dist/{chunk-BZLVW3TO.mjs.map → chunk-P4XVLBXB.mjs.map} +0 -0
  165. /package/dist/{chunk-GMSPATXC.mjs.map → chunk-PNSMLGOA.mjs.map} +0 -0
  166. /package/dist/{chunk-ZQXTKDWH.mjs.map → chunk-RF23BV6J.mjs.map} +0 -0
  167. /package/dist/{chunk-YW4JACEA.mjs.map → chunk-S3NSPQ7M.mjs.map} +0 -0
  168. /package/dist/{chunk-4SM5CZ36.mjs.map → chunk-TNLJ45P5.mjs.map} +0 -0
  169. /package/dist/{chunk-ZTQEZ5BV.mjs.map → chunk-UG3NG43J.mjs.map} +0 -0
  170. /package/dist/{chunk-UCDGCXSA.mjs.map → chunk-V5TW476J.mjs.map} +0 -0
  171. /package/dist/{chunk-R3YY4LWL.mjs.map → chunk-WLTKHBFQ.mjs.map} +0 -0
  172. /package/dist/{chunk-T7LION5W.mjs.map → chunk-XMTKVPNV.mjs.map} +0 -0
  173. /package/dist/{chunk-2TAWQZJG.mjs.map → chunk-XVZYKKLD.mjs.map} +0 -0
  174. /package/dist/{chunk-DXM52QBL.mjs.map → chunk-YDYQTX4H.mjs.map} +0 -0
  175. /package/dist/{chunk-4S6TVJDY.mjs.map → chunk-YRVCY3KC.mjs.map} +0 -0
  176. /package/dist/{chunk-ULVLP74J.mjs.map → chunk-YYXHD3PC.mjs.map} +0 -0
  177. /package/dist/{chunk-D5C4U6JT.mjs.map → chunk-ZO6LH5HU.mjs.map} +0 -0
package/README.md CHANGED
@@ -124,7 +124,7 @@ However, if you would create an `Email` value object, the validation can be impl
124
124
  You can now use the above `Email` class as the type of email properties in an entity or struct to make sure that this property is a valid email.
125
125
 
126
126
  #### DateTime
127
- DateTime is a value object that takes either a Date object, RFC-3339 formatted string, or a number representing Epoch in milliseconds. The json is always an RFC-3339 formatted string. [luxon](https://moment.github.io/luxon/#/) is used internally.
127
+ DateTime is a value object that takes either a Date object, RFC-3339 formatted string, or a number representing Epoch in milliseconds. The json is always an RFC-3339 formatted string. [Day.js](https://day.js.org/) is used internally.
128
128
 
129
129
  A few examples of DateTime:
130
130
 
@@ -3,7 +3,7 @@ import {
3
3
  choose,
4
4
  isList,
5
5
  toList
6
- } from "./chunk-6Q7FX3KI.mjs";
6
+ } from "./chunk-I2VWZJ2K.mjs";
7
7
  import {
8
8
  isA
9
9
  } from "./chunk-D5IYAIMK.mjs";
@@ -170,4 +170,4 @@ export {
170
170
  toPageList,
171
171
  asPageList
172
172
  };
173
- //# sourceMappingURL=chunk-WM6VMJHW.mjs.map
173
+ //# sourceMappingURL=chunk-3VDUMU5P.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Select
3
- } from "./chunk-RVRWRUR4.mjs";
3
+ } from "./chunk-4FXDIYQT.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-TCJCHCJV.mjs.map
18
+ //# sourceMappingURL=chunk-4AEHKWWI.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  SqlQuery
3
- } from "./chunk-CCQJX6G6.mjs";
3
+ } from "./chunk-M7MW5CXO.mjs";
4
4
  import {
5
5
  toList
6
- } from "./chunk-6Q7FX3KI.mjs";
6
+ } from "./chunk-I2VWZJ2K.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-RVRWRUR4.mjs.map
54
+ //# sourceMappingURL=chunk-4FXDIYQT.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  tryTo
3
- } from "./chunk-6Q7FX3KI.mjs";
3
+ } from "./chunk-I2VWZJ2K.mjs";
4
4
  import {
5
5
  asString
6
- } from "./chunk-VAJ64J43.mjs";
6
+ } from "./chunk-NNA77YYC.mjs";
7
7
  import {
8
8
  ofGet
9
9
  } from "./chunk-SJGQU3OG.mjs";
@@ -17,4 +17,4 @@ var asNumber = (n, alt) => tryTo(() => asString(n)).map((s) => parseInt(s)).filt
17
17
  export {
18
18
  asNumber
19
19
  };
20
- //# sourceMappingURL=chunk-HFGH75UW.mjs.map
20
+ //# sourceMappingURL=chunk-4NRVIWNE.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  convert
3
- } from "./chunk-37QC66CS.mjs";
3
+ } from "./chunk-MJAB7NZV.mjs";
4
4
  import {
5
5
  json
6
- } from "./chunk-GMSPATXC.mjs";
6
+ } from "./chunk-PNSMLGOA.mjs";
7
7
  import {
8
8
  isDefined
9
9
  } from "./chunk-AAND4MKF.mjs";
@@ -50,4 +50,4 @@ export {
50
50
  toCondition,
51
51
  isSortCondition
52
52
  };
53
- //# sourceMappingURL=chunk-LQYQISSV.mjs.map
53
+ //# sourceMappingURL=chunk-4UKOKM72.mjs.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  toPageList
3
- } from "./chunk-WM6VMJHW.mjs";
3
+ } from "./chunk-3VDUMU5P.mjs";
4
4
  import {
5
5
  choose,
6
6
  resolve
7
- } from "./chunk-6Q7FX3KI.mjs";
7
+ } from "./chunk-I2VWZJ2K.mjs";
8
8
 
9
9
  // src/process/Search.ts
10
10
  var Search = class {
@@ -43,4 +43,4 @@ var Search = class {
43
43
  export {
44
44
  Search
45
45
  };
46
- //# sourceMappingURL=chunk-26QCRW4Q.mjs.map
46
+ //# sourceMappingURL=chunk-52VT3UEM.mjs.map
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  required,
3
3
  valid
4
- } from "./chunk-4SM5CZ36.mjs";
4
+ } from "./chunk-TNLJ45P5.mjs";
5
5
  import {
6
6
  DateTime
7
- } from "./chunk-XKRR6345.mjs";
7
+ } from "./chunk-GRDUTNMZ.mjs";
8
8
  import {
9
9
  Struct
10
- } from "./chunk-AU2A23B4.mjs";
10
+ } from "./chunk-BSN5WGZ6.mjs";
11
11
  import {
12
12
  choose,
13
13
  ctx
14
- } from "./chunk-6Q7FX3KI.mjs";
14
+ } from "./chunk-I2VWZJ2K.mjs";
15
15
  import {
16
16
  isIdentity
17
17
  } from "./chunk-D5IYAIMK.mjs";
@@ -45,4 +45,4 @@ __decorateClass([
45
45
  export {
46
46
  Audit
47
47
  };
48
- //# sourceMappingURL=chunk-T32HGK7R.mjs.map
48
+ //# sourceMappingURL=chunk-5VP4WNID.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  convert
3
- } from "./chunk-37QC66CS.mjs";
3
+ } from "./chunk-MJAB7NZV.mjs";
4
4
  import {
5
5
  isA
6
6
  } from "./chunk-D5IYAIMK.mjs";
@@ -38,4 +38,4 @@ export {
38
38
  toClause,
39
39
  isClause
40
40
  };
41
- //# sourceMappingURL=chunk-QMXVI6ZP.mjs.map
41
+ //# sourceMappingURL=chunk-5WGOB7QF.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  asString
3
- } from "./chunk-VAJ64J43.mjs";
3
+ } from "./chunk-NNA77YYC.mjs";
4
4
  import {
5
5
  isString
6
6
  } from "./chunk-AAND4MKF.mjs";
@@ -18,4 +18,4 @@ export {
18
18
  isUuid,
19
19
  includesUuid
20
20
  };
21
- //# sourceMappingURL=chunk-VFHSP7MK.mjs.map
21
+ //# sourceMappingURL=chunk-6FUVIZYN.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  rest
3
- } from "./chunk-YJ7BQOWU.mjs";
3
+ } from "./chunk-J2RU23YZ.mjs";
4
4
  import {
5
5
  toHttpStatus
6
- } from "./chunk-XRLLGVKR.mjs";
6
+ } from "./chunk-KMEBQTNE.mjs";
7
7
 
8
8
  // src/http/toResponse.ts
9
9
  function toResponse(status, body, headers) {
@@ -17,4 +17,4 @@ function toResponse(status, body, headers) {
17
17
  export {
18
18
  toResponse
19
19
  };
20
- //# sourceMappingURL=chunk-RO74JHB7.mjs.map
20
+ //# sourceMappingURL=chunk-BODG3KPC.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  json
3
- } from "./chunk-GMSPATXC.mjs";
3
+ } from "./chunk-PNSMLGOA.mjs";
4
4
  import {
5
5
  validate
6
- } from "./chunk-6Q7FX3KI.mjs";
6
+ } from "./chunk-I2VWZJ2K.mjs";
7
7
  import {
8
8
  isDefined
9
9
  } from "./chunk-AAND4MKF.mjs";
@@ -37,4 +37,4 @@ export {
37
37
  Struct,
38
38
  isStruct
39
39
  };
40
- //# sourceMappingURL=chunk-AU2A23B4.mjs.map
40
+ //# sourceMappingURL=chunk-BSN5WGZ6.mjs.map
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  toResponse
3
- } from "./chunk-RO74JHB7.mjs";
3
+ } from "./chunk-BODG3KPC.mjs";
4
4
  import {
5
5
  isRestResult
6
- } from "./chunk-YJ7BQOWU.mjs";
6
+ } from "./chunk-J2RU23YZ.mjs";
7
7
  import {
8
8
  HttpStatus
9
- } from "./chunk-XRLLGVKR.mjs";
9
+ } from "./chunk-KMEBQTNE.mjs";
10
10
  import {
11
11
  RequestOptions
12
- } from "./chunk-DXM52QBL.mjs";
12
+ } from "./chunk-YDYQTX4H.mjs";
13
13
  import {
14
14
  cacheAge
15
- } from "./chunk-R3YY4LWL.mjs";
15
+ } from "./chunk-WLTKHBFQ.mjs";
16
16
  import {
17
17
  choose,
18
18
  ctx,
19
19
  toResult
20
- } from "./chunk-6Q7FX3KI.mjs";
20
+ } from "./chunk-I2VWZJ2K.mjs";
21
21
  import {
22
22
  isDefined,
23
23
  isEmpty
@@ -49,4 +49,4 @@ var AxiosProvider = class {
49
49
  export {
50
50
  AxiosProvider
51
51
  };
52
- //# sourceMappingURL=chunk-HCXQZYTR.mjs.map
52
+ //# sourceMappingURL=chunk-DODBPVV5.mjs.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  ApiGateway
3
- } from "./chunk-OWAUGSJI.mjs";
3
+ } from "./chunk-EGGEJRWA.mjs";
4
4
  import {
5
5
  Api
6
- } from "./chunk-4S6TVJDY.mjs";
6
+ } from "./chunk-YRVCY3KC.mjs";
7
7
  import {
8
8
  HttpStatus
9
- } from "./chunk-XRLLGVKR.mjs";
9
+ } from "./chunk-KMEBQTNE.mjs";
10
10
  import {
11
11
  toArray
12
12
  } from "./chunk-KCY4RPFR.mjs";
@@ -57,4 +57,4 @@ var RouteGateway = class extends ApiGateway {
57
57
  export {
58
58
  RouteGateway
59
59
  };
60
- //# sourceMappingURL=chunk-SMM62THT.mjs.map
60
+ //# sourceMappingURL=chunk-EFFUHXDK.mjs.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  Api
3
- } from "./chunk-4S6TVJDY.mjs";
3
+ } from "./chunk-YRVCY3KC.mjs";
4
4
  import {
5
5
  Gateway
6
- } from "./chunk-2TAWQZJG.mjs";
6
+ } from "./chunk-XVZYKKLD.mjs";
7
7
  import {
8
8
  toPageList
9
- } from "./chunk-WM6VMJHW.mjs";
9
+ } from "./chunk-3VDUMU5P.mjs";
10
10
  import {
11
11
  use
12
12
  } from "./chunk-PF7HDF6B.mjs";
@@ -43,4 +43,4 @@ var ApiGateway = class extends Gateway {
43
43
  export {
44
44
  ApiGateway
45
45
  };
46
- //# sourceMappingURL=chunk-OWAUGSJI.mjs.map
46
+ //# sourceMappingURL=chunk-EGGEJRWA.mjs.map
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  isPageList,
3
3
  toPageList
4
- } from "./chunk-WM6VMJHW.mjs";
4
+ } from "./chunk-3VDUMU5P.mjs";
5
5
  import {
6
6
  asJson,
7
7
  json
8
- } from "./chunk-GMSPATXC.mjs";
8
+ } from "./chunk-PNSMLGOA.mjs";
9
9
  import {
10
10
  choose,
11
11
  ifDefined,
12
12
  isEnumConstructor,
13
13
  isEqual,
14
14
  meta
15
- } from "./chunk-6Q7FX3KI.mjs";
15
+ } from "./chunk-I2VWZJ2K.mjs";
16
16
  import {
17
17
  traverse
18
18
  } from "./chunk-SSROJBD5.mjs";
@@ -119,4 +119,4 @@ export {
119
119
  view,
120
120
  views
121
121
  };
122
- //# sourceMappingURL=chunk-RDA6XPHT.mjs.map
122
+ //# sourceMappingURL=chunk-EHVMIXKR.mjs.map
@@ -0,0 +1,272 @@
1
+ import {
2
+ seconds
3
+ } from "./chunk-RF23BV6J.mjs";
4
+ import {
5
+ isDate
6
+ } from "./chunk-ADJAEGCT.mjs";
7
+ import {
8
+ choose,
9
+ ifDefined,
10
+ tryTo
11
+ } from "./chunk-I2VWZJ2K.mjs";
12
+ import {
13
+ Value
14
+ } from "./chunk-S3NSPQ7M.mjs";
15
+ import {
16
+ isA
17
+ } from "./chunk-D5IYAIMK.mjs";
18
+ import {
19
+ use
20
+ } from "./chunk-PF7HDF6B.mjs";
21
+ import {
22
+ isDefined,
23
+ isNumber,
24
+ isString
25
+ } from "./chunk-AAND4MKF.mjs";
26
+
27
+ // src/domain/DateTime.ts
28
+ import dayjs from "dayjs";
29
+ import advancedFormat from "dayjs/plugin/advancedFormat";
30
+ import customParseFormat from "dayjs/plugin/customParseFormat";
31
+ import isoWeek from "dayjs/plugin/isoWeek";
32
+ import localizedFormat from "dayjs/plugin/localizedFormat";
33
+ import quarterOfYear from "dayjs/plugin/quarterOfYear";
34
+ import relativeTime from "dayjs/plugin/relativeTime";
35
+ import timezone from "dayjs/plugin/timezone";
36
+ import utc from "dayjs/plugin/utc";
37
+ import "dayjs/locale/de";
38
+ import "dayjs/locale/nl";
39
+ dayjs.extend(utc);
40
+ dayjs.extend(timezone);
41
+ dayjs.extend(customParseFormat);
42
+ dayjs.extend(localizedFormat);
43
+ dayjs.extend(relativeTime);
44
+ dayjs.extend(isoWeek);
45
+ dayjs.extend(advancedFormat);
46
+ dayjs.extend(quarterOfYear);
47
+ dayjs.tz.setDefault("UTC");
48
+ var invalidDate = dayjs.utc(Number.NaN);
49
+ var isDayjs = (value) => dayjs.isDayjs(value);
50
+ var isoFormats = [
51
+ "YYYY-MM-DD",
52
+ "YYYY-MM-DDTHH:mm",
53
+ "YYYY-MM-DDTHH:mm:ss",
54
+ "YYYY-MM-DDTHH:mm:ss.SSS",
55
+ "YYYY-MM-DDTHH:mm[Z]",
56
+ "YYYY-MM-DDTHH:mm:ss[Z]",
57
+ "YYYY-MM-DDTHH:mm:ss.SSS[Z]",
58
+ "YYYY-MM-DDTHH:mmZ",
59
+ "YYYY-MM-DDTHH:mmZZ",
60
+ "YYYY-MM-DDTHH:mm:ssZ",
61
+ "YYYY-MM-DDTHH:mm:ssZZ",
62
+ "YYYY-MM-DDTHH:mm:ss.SSSZ",
63
+ "YYYY-MM-DDTHH:mm:ss.SSSZZ"
64
+ ];
65
+ var fixedUnitMilliseconds = {
66
+ day: 864e5,
67
+ days: 864e5,
68
+ week: 6048e5,
69
+ weeks: 6048e5
70
+ };
71
+ var calendarUnitMonths = {
72
+ month: 1,
73
+ months: 1,
74
+ quarter: 3,
75
+ quarters: 3,
76
+ year: 12,
77
+ years: 12
78
+ };
79
+ var DateTime = class _DateTime extends Value {
80
+ date;
81
+ constructor(value, format) {
82
+ const date = choose(value).type(isDayjs, (date2) => date2).type(isDateTime, (dateTime) => dateTime.date).type(isNumber, (timestamp) => dayjs.utc(timestamp)).type(isDate, (date2) => dayjs.utc(date2)).type(isString, (string) => string === "" ? invalidDate : format ? parseFormatted(string, format) : parseIso(string)).else(invalidDate);
83
+ super(date.isValid() ? formatDateTime(date) : void 0);
84
+ this.date = date;
85
+ }
86
+ static get now() {
87
+ return fromDayjs(dayjs.utc(Date.now()));
88
+ }
89
+ get isValid() {
90
+ return isDefined(this.value) && this.date.isValid();
91
+ }
92
+ /**
93
+ * @deprecated Deprecated in favor for DateTime.from as that also accepts locales and another DateTime
94
+ */
95
+ get fromNow() {
96
+ return this.from();
97
+ }
98
+ get inAmsterdam() {
99
+ return this.withZone("Europe/Amsterdam");
100
+ }
101
+ get inNewYork() {
102
+ return this.withZone("America/New_York");
103
+ }
104
+ get inLondon() {
105
+ return this.withZone("Europe/London");
106
+ }
107
+ get inWarsaw() {
108
+ return this.withZone("Europe/Warsaw");
109
+ }
110
+ get utc() {
111
+ return this.date.utc();
112
+ }
113
+ from(dateOrLocale, maybeLocale) {
114
+ return use(
115
+ (isString(dateOrLocale) ? dateOrLocale : maybeLocale) ?? "en",
116
+ (locale) => ifDefined(
117
+ isA(dateOrLocale) ? dateOrLocale : void 0,
118
+ (d) => this.utc.locale(toDayjsLocale(locale)).from(d.utc),
119
+ () => this.utc.locale(toDayjsLocale(locale)).from(dayjs.utc(Date.now()))
120
+ )
121
+ ) ?? "";
122
+ }
123
+ isAfter(dt2) {
124
+ return this.utc.valueOf() > dt2.utc.valueOf();
125
+ }
126
+ isBefore(dt2) {
127
+ return this.utc.valueOf() < dt2.utc.valueOf();
128
+ }
129
+ equals(dt2) {
130
+ return this.utc.valueOf() === dt2.utc.valueOf();
131
+ }
132
+ add(n, unit = "day") {
133
+ return fromDayjs(change(this.date, n, unit, "add"));
134
+ }
135
+ subtract(n, unit = "day") {
136
+ return fromDayjs(change(this.date, n, unit, "subtract"));
137
+ }
138
+ diff(other, unit = "day", opts) {
139
+ return Math[opts?.rounding ?? "floor"](this.utc.diff(other.utc, toDayjsUnit(unit), true));
140
+ }
141
+ startOf(unit = "day") {
142
+ return fromDayjs(this.date.startOf(toDayjsBoundaryUnit(unit)));
143
+ }
144
+ endOf(unit = "day") {
145
+ return fromDayjs(this.date.endOf(toDayjsBoundaryUnit(unit)));
146
+ }
147
+ isWeekend() {
148
+ const day = this.date.day();
149
+ return day === 0 || day === 6;
150
+ }
151
+ withZone(zone) {
152
+ return fromDayjs(this.date.tz(zone));
153
+ }
154
+ toString() {
155
+ return this.value ?? "";
156
+ }
157
+ toJSON() {
158
+ return this.isValid ? this.utc.format("YYYY-MM-DDTHH:mm:ss.SSS[Z]") : null;
159
+ }
160
+ toFormat(format) {
161
+ return this.isValid ? this.date.format(toDayjsFormat(format)) : "";
162
+ }
163
+ toLocale(locale = "nl-NL", format = "D") {
164
+ if (!this.isValid)
165
+ return "";
166
+ if (format === "D")
167
+ return formatWithIntl(this.date, locale, { year: "numeric", month: "numeric", day: "numeric" });
168
+ if (format === "DDD")
169
+ return formatWithIntl(this.date, locale, { dateStyle: "long" });
170
+ if (format === "ffff") {
171
+ return formatWithIntl(this.date, locale, {
172
+ weekday: "long",
173
+ year: "numeric",
174
+ month: "long",
175
+ day: "numeric",
176
+ hour: "numeric",
177
+ minute: "2-digit",
178
+ timeZoneName: timezoneOf(this.date) ? "long" : "short"
179
+ });
180
+ }
181
+ return this.date.locale(toDayjsLocale(locale)).format(toDayjsFormat(format));
182
+ }
183
+ toFull(locale) {
184
+ return this.toLocale(locale, "DDD");
185
+ }
186
+ toDate() {
187
+ return this.isValid ? this.utc.toDate() : void 0;
188
+ }
189
+ toEpoch() {
190
+ return this.date.valueOf();
191
+ }
192
+ ago(end = _DateTime.now) {
193
+ return seconds.toText(end.diff(this, "second"));
194
+ }
195
+ withClock(clock) {
196
+ return tryTo(() => [this.toDate(), clock.toDate()]).map(([td, cd]) => new Date(Date.UTC(td.getUTCFullYear(), td.getUTCMonth(), td.getUTCDate(), cd.getUTCHours(), cd.getUTCMinutes(), cd.getUTCSeconds()))).map((d) => new _DateTime(d)).value;
197
+ }
198
+ };
199
+ var isDateTime = (dt2) => isDefined(dt2) && dt2 instanceof DateTime;
200
+ var dt = (dt2) => new DateTime(dt2);
201
+ var parseIso = (value) => {
202
+ const offset = offsetOf(value);
203
+ if (offset) {
204
+ const date = dayjs.utc(value);
205
+ return date.isValid() ? inOffsetZone(date, offset) : invalidDate;
206
+ }
207
+ return dayjs(value, isoFormats, true).isValid() ? dayjs.utc(value) : invalidDate;
208
+ };
209
+ var parseFormatted = (value, format) => {
210
+ const dayjsFormat = toDayjsFormat(format);
211
+ const offset = offsetOf(value);
212
+ if (format.includes("ZZZ") && offset) {
213
+ const iso = dayjs.utc(value);
214
+ return iso.isValid() ? inOffsetZone(iso, offset) : invalidDate;
215
+ }
216
+ return dayjs.utc(value, dayjsFormat, true);
217
+ };
218
+ var offsetOf = (value) => value.match(/([+-]\d{2}:?\d{2})$/)?.[1];
219
+ var fromDayjs = (date) => new DateTime(date);
220
+ var formatDateTime = (date) => {
221
+ const formatted = date.format("YYYY-MM-DDTHH:mm:ss.SSSZ");
222
+ return timezoneOf(date) ? formatted : formatted.replace("+00:00", "Z");
223
+ };
224
+ var change = (date, value, unit, direction) => {
225
+ if (isNumber(value))
226
+ return changeUnit(date, value, unit, direction);
227
+ return Object.entries(value).reduce((result, [durationUnit, durationValue]) => changeUnit(result, durationValue ?? 0, durationUnit, direction), date);
228
+ };
229
+ var changeUnit = (date, value, unit, direction) => {
230
+ const amount = direction === "add" ? value : -value;
231
+ const milliseconds = fixedUnitMilliseconds[unit];
232
+ const months = calendarUnitMonths[unit];
233
+ if (months && !Number.isInteger(value))
234
+ return addMonths(date, amount * months);
235
+ if (milliseconds && !Number.isInteger(value))
236
+ return date.add(amount * milliseconds, "millisecond");
237
+ return date.add(amount, toDayjsUnit(unit));
238
+ };
239
+ var addMonths = (date, months) => {
240
+ const wholeMonths = Math.trunc(months);
241
+ const fraction = months - wholeMonths;
242
+ const shifted = date.add(wholeMonths, "month");
243
+ if (fraction === 0)
244
+ return shifted;
245
+ const next = shifted.add(months > 0 ? 1 : -1, "month");
246
+ return shifted.add((next.valueOf() - shifted.valueOf()) * Math.abs(fraction), "millisecond");
247
+ };
248
+ var inOffsetZone = (date, offset) => offsetToTimeZone(offset).map((zone) => date.tz(zone)).or(date.utcOffset(offset));
249
+ var offsetToTimeZone = (offset) => tryTo(() => {
250
+ const [, sign, hours, minutes] = offset.match(/^([+-])(\d{2}):?(\d{2})$/) ?? [];
251
+ if (minutes !== "00")
252
+ throw new Error();
253
+ if (hours === "00")
254
+ return "UTC";
255
+ return `Etc/GMT${sign === "+" ? "-" : "+"}${Number(hours)}`;
256
+ });
257
+ var toDayjsUnit = (unit) => unit.replace(/s$/, "");
258
+ var toDayjsBoundaryUnit = (unit) => {
259
+ const dayjsUnit = toDayjsUnit(unit);
260
+ return dayjsUnit === "week" ? "isoWeek" : dayjsUnit;
261
+ };
262
+ var toDayjsFormat = (format) => format.replace(/'([^']+)'/g, "[$1]").replace(/EEE/g, "ddd").replace(/yyyy/g, "YYYY").replace(/dd/g, "DD").replace(/LLL/g, "MMM").replace(/ZZZ/g, "ZZ").replace(/hh/g, "HH");
263
+ var toDayjsLocale = (locale) => locale.toLowerCase().split("-")[0];
264
+ var formatWithIntl = (date, locale, options) => new Intl.DateTimeFormat(locale, { ...options, timeZone: timezoneOf(date) ?? "UTC" }).format(date.toDate());
265
+ var timezoneOf = (date) => date.$x?.$timezone;
266
+
267
+ export {
268
+ DateTime,
269
+ isDateTime,
270
+ dt
271
+ };
272
+ //# sourceMappingURL=chunk-GRDUTNMZ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/domain/DateTime.ts"],"sourcesContent":["import dayjs, { Dayjs, ManipulateType, OpUnitType, QUnitType } from 'dayjs';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport isoWeek from 'dayjs/plugin/isoWeek';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport timezone from 'dayjs/plugin/timezone';\nimport utc from 'dayjs/plugin/utc';\nimport 'dayjs/locale/de';\nimport 'dayjs/locale/nl';\nimport { Value } from '../types/Value';\nimport { Optional } from '../types/Types';\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';\nimport { tryTo } from '../types/Try';\nimport { use } from '../types/Constructor';\nimport { choose } from '../types/Case';\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\ndayjs.extend(customParseFormat);\ndayjs.extend(localizedFormat);\ndayjs.extend(relativeTime);\ndayjs.extend(isoWeek);\ndayjs.extend(advancedFormat);\ndayjs.extend(quarterOfYear);\ndayjs.tz.setDefault('UTC');\n\nexport type DateTimeUnit = 'year' | 'quarter' | 'month' | 'week' | 'day' | 'hour' | 'minute' | 'second' | 'millisecond';\nexport type DurationUnit =\n | DateTimeUnit\n | 'years'\n | 'quarters'\n | 'months'\n | 'weeks'\n | 'days'\n | 'hours'\n | 'minutes'\n | 'seconds'\n | 'milliseconds';\nexport type Duration = Partial<Record<DurationUnit, number>>;\n\nexport type DiffOptions = {\n rounding: 'floor' | 'ceil' | 'round';\n};\n\nexport type DatetimeInput = string | number | Date | DateTime | null;\n\ntype DateTimeConstructorInput = DatetimeInput | Dayjs;\ntype ZonedDayjs = Dayjs & { $x?: { $timezone?: string } };\n\nconst invalidDate = dayjs.utc(Number.NaN);\nconst isDayjs = (value: unknown): value is Dayjs => dayjs.isDayjs(value);\nconst isoFormats = [\n 'YYYY-MM-DD',\n 'YYYY-MM-DDTHH:mm',\n 'YYYY-MM-DDTHH:mm:ss',\n 'YYYY-MM-DDTHH:mm:ss.SSS',\n 'YYYY-MM-DDTHH:mm[Z]',\n 'YYYY-MM-DDTHH:mm:ss[Z]',\n 'YYYY-MM-DDTHH:mm:ss.SSS[Z]',\n 'YYYY-MM-DDTHH:mmZ',\n 'YYYY-MM-DDTHH:mmZZ',\n 'YYYY-MM-DDTHH:mm:ssZ',\n 'YYYY-MM-DDTHH:mm:ssZZ',\n 'YYYY-MM-DDTHH:mm:ss.SSSZ',\n 'YYYY-MM-DDTHH:mm:ss.SSSZZ',\n];\nconst fixedUnitMilliseconds: Partial<Record<DurationUnit, number>> = {\n day: 86400000,\n days: 86400000,\n week: 604800000,\n weeks: 604800000,\n};\nconst calendarUnitMonths: Partial<Record<DurationUnit, number>> = {\n month: 1,\n months: 1,\n quarter: 3,\n quarters: 3,\n year: 12,\n years: 12,\n};\n\nexport class DateTime extends Value<Optional<string>> {\n protected readonly date: Dayjs;\n\n constructor(value?: DatetimeInput);\n constructor(value?: string, format?: string);\n constructor(value?: DateTimeConstructorInput, format?: string) {\n const date = choose<DateTimeConstructorInput | undefined>(value)\n .type(isDayjs, date => date)\n .type(isDateTime, dateTime => dateTime.date)\n .type(isNumber, timestamp => dayjs.utc(timestamp))\n .type(isDate, date => dayjs.utc(date))\n .type(isString, string => (string === '' ? invalidDate : format ? parseFormatted(string, format) : parseIso(string)))\n .else(invalidDate);\n\n super(date.isValid() ? formatDateTime(date) : undefined);\n this.date = date;\n }\n\n static get now(): DateTime {\n return fromDayjs(dayjs.utc(Date.now()));\n }\n\n get isValid(): boolean {\n return isDefined(this.value) && this.date.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 get inAmsterdam(): DateTime {\n return this.withZone('Europe/Amsterdam');\n }\n\n get inNewYork(): DateTime {\n return this.withZone('America/New_York');\n }\n\n get inLondon(): DateTime {\n return this.withZone('Europe/London');\n }\n\n get inWarsaw(): DateTime {\n return this.withZone('Europe/Warsaw');\n }\n\n protected get utc(): Dayjs {\n return this.date.utc();\n }\n\n from(locale?: string): string;\n\n from(date?: DateTime, locale?: string): string;\n\n from(dateOrLocale?: string | DateTime, maybeLocale?: string): string {\n return (\n use((isString(dateOrLocale) ? dateOrLocale : maybeLocale) ?? 'en', locale =>\n ifDefined(\n isA<DateTime>(dateOrLocale) ? dateOrLocale : undefined,\n d => this.utc.locale(toDayjsLocale(locale)).from(d.utc),\n () => this.utc.locale(toDayjsLocale(locale)).from(dayjs.utc(Date.now()))\n )\n ) ?? ''\n );\n }\n\n isAfter(dt: DateTime): boolean {\n return this.utc.valueOf() > dt.utc.valueOf();\n }\n\n isBefore(dt: DateTime): boolean {\n return this.utc.valueOf() < dt.utc.valueOf();\n }\n\n equals(dt: DateTime): boolean {\n return this.utc.valueOf() === dt.utc.valueOf();\n }\n\n add(n: number, unit?: DurationUnit): DateTime;\n\n add(duration: Duration): DateTime;\n\n add(n: number | Duration, unit: DurationUnit = 'day'): DateTime {\n return fromDayjs(change(this.date, n, unit, 'add'));\n }\n\n subtract(n: number, unit?: DurationUnit): DateTime;\n\n subtract(duration: Duration): DateTime;\n\n subtract(n: number | Duration, unit: DurationUnit = 'day'): DateTime {\n return fromDayjs(change(this.date, n, unit, 'subtract'));\n }\n\n diff(other: DateTime, unit: DateTimeUnit = 'day', opts?: DiffOptions): number {\n return Math[opts?.rounding ?? 'floor'](this.utc.diff(other.utc, toDayjsUnit(unit) as QUnitType | OpUnitType, true));\n }\n\n startOf(unit: DateTimeUnit = 'day'): DateTime {\n return fromDayjs(this.date.startOf(toDayjsBoundaryUnit(unit)));\n }\n\n endOf(unit: DateTimeUnit = 'day'): DateTime {\n return fromDayjs(this.date.endOf(toDayjsBoundaryUnit(unit)));\n }\n\n isWeekend(): boolean {\n const day = this.date.day();\n return day === 0 || day === 6;\n }\n\n withZone(zone: string): DateTime {\n return fromDayjs(this.date.tz(zone));\n }\n\n toString(): string {\n return this.value ?? '';\n }\n\n toJSON(): JsonValue {\n return this.isValid ? this.utc.format('YYYY-MM-DDTHH:mm:ss.SSS[Z]') : null;\n }\n\n toFormat(format: string): string {\n return this.isValid ? this.date.format(toDayjsFormat(format)) : '';\n }\n\n toLocale(locale = 'nl-NL', format = 'D'): string {\n if (!this.isValid) return '';\n\n if (format === 'D') return formatWithIntl(this.date, locale, { year: 'numeric', month: 'numeric', day: 'numeric' });\n if (format === 'DDD') return formatWithIntl(this.date, locale, { dateStyle: 'long' });\n if (format === 'ffff') {\n return formatWithIntl(this.date, locale, {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n timeZoneName: timezoneOf(this.date) ? 'long' : 'short',\n });\n }\n return this.date.locale(toDayjsLocale(locale)).format(toDayjsFormat(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.toDate() : undefined;\n }\n\n toEpoch(): number {\n return this.date.valueOf();\n }\n\n ago(end: DateTime = DateTime.now): string {\n return seconds.toText(end.diff(this, 'second'));\n }\n\n withClock(clock: DateTime): DateTime {\n return tryTo(() => [this.toDate() as Date, clock.toDate() as Date])\n .map(([td, cd]) => new Date(Date.UTC(td.getUTCFullYear(), td.getUTCMonth(), td.getUTCDate(), cd.getUTCHours(), cd.getUTCMinutes(), cd.getUTCSeconds())))\n .map(d => new DateTime(d)).value;\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\nconst parseIso = (value: string): Dayjs => {\n const offset = offsetOf(value);\n if (offset) {\n const date = dayjs.utc(value);\n return date.isValid() ? inOffsetZone(date, offset) : invalidDate;\n }\n return dayjs(value, isoFormats, true).isValid() ? dayjs.utc(value) : invalidDate;\n};\n\nconst parseFormatted = (value: string, format: string): Dayjs => {\n const dayjsFormat = toDayjsFormat(format);\n const offset = offsetOf(value);\n if (format.includes('ZZZ') && offset) {\n const iso = dayjs.utc(value);\n return iso.isValid() ? inOffsetZone(iso, offset) : invalidDate;\n }\n return dayjs.utc(value, dayjsFormat, true);\n};\n\nconst offsetOf = (value: string): string | undefined => value.match(/([+-]\\d{2}:?\\d{2})$/)?.[1];\n\nconst fromDayjs = (date: Dayjs): DateTime => new DateTime(date as unknown as DatetimeInput);\n\nconst formatDateTime = (date: Dayjs): string => {\n const formatted = date.format('YYYY-MM-DDTHH:mm:ss.SSSZ');\n return timezoneOf(date) ? formatted : formatted.replace('+00:00', 'Z');\n};\n\nconst change = (date: Dayjs, value: number | Duration, unit: DurationUnit, direction: 'add' | 'subtract'): Dayjs => {\n if (isNumber(value)) return changeUnit(date, value, unit, direction);\n return Object.entries(value).reduce((result, [durationUnit, durationValue]) => changeUnit(result, durationValue ?? 0, durationUnit as DurationUnit, direction), date);\n};\n\nconst changeUnit = (date: Dayjs, value: number, unit: DurationUnit, direction: 'add' | 'subtract'): Dayjs => {\n const amount = direction === 'add' ? value : -value;\n const milliseconds = fixedUnitMilliseconds[unit];\n const months = calendarUnitMonths[unit];\n\n if (months && !Number.isInteger(value)) return addMonths(date, amount * months);\n if (milliseconds && !Number.isInteger(value)) return date.add(amount * milliseconds, 'millisecond');\n return date.add(amount, toDayjsUnit(unit));\n};\n\nconst addMonths = (date: Dayjs, months: number): Dayjs => {\n const wholeMonths = Math.trunc(months);\n const fraction = months - wholeMonths;\n const shifted = date.add(wholeMonths, 'month');\n if (fraction === 0) return shifted;\n\n const next = shifted.add(months > 0 ? 1 : -1, 'month');\n return shifted.add((next.valueOf() - shifted.valueOf()) * Math.abs(fraction), 'millisecond');\n};\n\nconst inOffsetZone = (date: Dayjs, offset: string): Dayjs => offsetToTimeZone(offset).map(zone => date.tz(zone)).or(date.utcOffset(offset));\n\nconst offsetToTimeZone = (offset: string) =>\n tryTo(() => {\n const [, sign, hours, minutes] = offset.match(/^([+-])(\\d{2}):?(\\d{2})$/) ?? [];\n if (minutes !== '00') throw new Error();\n if (hours === '00') return 'UTC';\n return `Etc/GMT${sign === '+' ? '-' : '+'}${Number(hours)}`;\n });\n\nconst toDayjsUnit = (unit: DurationUnit): ManipulateType => unit.replace(/s$/, '') as ManipulateType;\n\nconst toDayjsBoundaryUnit = (unit: DateTimeUnit): OpUnitType => {\n const dayjsUnit = toDayjsUnit(unit);\n return (dayjsUnit === 'week' ? 'isoWeek' : dayjsUnit) as OpUnitType;\n};\n\nconst toDayjsFormat = (format: string): string =>\n format\n .replace(/'([^']+)'/g, '[$1]')\n .replace(/EEE/g, 'ddd')\n .replace(/yyyy/g, 'YYYY')\n .replace(/dd/g, 'DD')\n .replace(/LLL/g, 'MMM')\n .replace(/ZZZ/g, 'ZZ')\n .replace(/hh/g, 'HH');\n\nconst toDayjsLocale = (locale: string): string => locale.toLowerCase().split('-')[0];\n\nconst formatWithIntl = (date: Dayjs, locale: string, options: Intl.DateTimeFormatOptions): string =>\n new Intl.DateTimeFormat(locale, { ...options, timeZone: timezoneOf(date) ?? 'UTC' }).format(date.toDate());\n\nconst timezoneOf = (date: Dayjs): string | undefined => (date as ZonedDayjs).$x?.$timezone;\n"],"mappings":"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","names":["date","dt"]}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  SqlQuery
3
- } from "./chunk-CCQJX6G6.mjs";
3
+ } from "./chunk-M7MW5CXO.mjs";
4
4
  import {
5
5
  quote
6
- } from "./chunk-QMXVI6ZP.mjs";
6
+ } from "./chunk-5WGOB7QF.mjs";
7
7
 
8
8
  // src/sql/Insert.ts
9
9
  var Insert = class extends SqlQuery {
@@ -20,4 +20,4 @@ var Insert = class extends SqlQuery {
20
20
  export {
21
21
  Insert
22
22
  };
23
- //# sourceMappingURL=chunk-2EXRHTUE.mjs.map
23
+ //# sourceMappingURL=chunk-HAGNDCSR.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SqlQuery
3
- } from "./chunk-CCQJX6G6.mjs";
3
+ } from "./chunk-M7MW5CXO.mjs";
4
4
  import {
5
5
  ifGet
6
6
  } from "./chunk-SJGQU3OG.mjs";
@@ -15,4 +15,4 @@ var Delete = class extends SqlQuery {
15
15
  export {
16
16
  Delete
17
17
  };
18
- //# sourceMappingURL=chunk-IAHI5LT3.mjs.map
18
+ //# sourceMappingURL=chunk-HN3HW22I.mjs.map