@thisisagile/easy 18.7.0 → 18.9.0

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 (157) hide show
  1. package/dist/{chunk-LHDTOERW.mjs → chunk-2TAVHLMQ.mjs} +2 -2
  2. package/dist/{chunk-JM6NAJQ3.mjs → chunk-2YE6JUAJ.mjs} +3 -3
  3. package/dist/{chunk-6PMTGQVO.mjs → chunk-4IQG5XVF.mjs} +3 -3
  4. package/dist/{chunk-ZBOGLMG2.mjs → chunk-5W5W5URV.mjs} +4 -4
  5. package/dist/{chunk-6YTIRHPN.mjs → chunk-A6NWP64I.mjs} +3 -3
  6. package/dist/{chunk-WOUH6UVC.mjs → chunk-B5AAGATA.mjs} +2 -2
  7. package/dist/{chunk-ZZ73Z5CU.mjs → chunk-BEP7JFNG.mjs} +2 -2
  8. package/dist/{chunk-QZPBFVZL.mjs → chunk-CKXCHDTJ.mjs} +2 -2
  9. package/dist/{chunk-IYUYA5OX.mjs → chunk-D5L6SKEY.mjs} +5 -5
  10. package/dist/{chunk-M2S4OLVZ.mjs → chunk-DIFN7V7I.mjs} +2 -2
  11. package/dist/{chunk-XQJ5LQEQ.mjs → chunk-EPTPZEGQ.mjs} +2 -2
  12. package/dist/{chunk-FF3BNZ4H.mjs → chunk-F7MXGRLW.mjs} +2 -2
  13. package/dist/{chunk-GKQMIKIY.mjs → chunk-FH3UDJ3J.mjs} +2 -2
  14. package/dist/{chunk-JNZUGKMO.mjs → chunk-GDRTFSFI.mjs} +2 -2
  15. package/dist/{chunk-IESVFCB3.mjs → chunk-HJSFO3XG.mjs} +3 -3
  16. package/dist/{chunk-QLEGIYVU.mjs → chunk-HXMARER2.mjs} +2 -2
  17. package/dist/{chunk-KPXOQFEB.mjs → chunk-I3KZQ25B.mjs} +3 -3
  18. package/dist/{chunk-5N6Q7OXJ.mjs → chunk-IBDMI7CE.mjs} +3 -3
  19. package/dist/{chunk-AYR4US3Z.mjs → chunk-IESUSDTL.mjs} +2 -2
  20. package/dist/{chunk-FFD2T6YV.mjs → chunk-JCJ3LYZF.mjs} +2 -2
  21. package/dist/{chunk-RW4AKBCN.mjs → chunk-JHVJNTHQ.mjs} +3 -3
  22. package/dist/{chunk-QBPSI5NM.mjs → chunk-KNGW4ESR.mjs} +4 -4
  23. package/dist/{chunk-J5PB7ZVO.mjs → chunk-N4U5AO3F.mjs} +3 -3
  24. package/dist/{chunk-O4RWZGFC.mjs → chunk-NL3TQUX2.mjs} +3 -3
  25. package/dist/{chunk-B37NZCNW.mjs → chunk-PAVASJXB.mjs} +2 -2
  26. package/dist/{chunk-JI7MC5EA.mjs → chunk-RNAPUKU2.mjs} +2 -2
  27. package/dist/{chunk-7TW4TBFN.mjs → chunk-THJAYPSV.mjs} +18 -4
  28. package/dist/{chunk-7TW4TBFN.mjs.map → chunk-THJAYPSV.mjs.map} +1 -1
  29. package/dist/{chunk-TUO7ZPSP.mjs → chunk-TJDABHKW.mjs} +4 -4
  30. package/dist/{chunk-TNIG6FU2.mjs → chunk-U7RZO2JM.mjs} +2 -2
  31. package/dist/{chunk-RBJBAJOK.mjs → chunk-UBQO5YAO.mjs} +2 -2
  32. package/dist/{chunk-GF7JYGJU.mjs → chunk-UPATKDHG.mjs} +2 -2
  33. package/dist/{chunk-FSWASMJZ.mjs → chunk-V4HSHLV4.mjs} +2 -2
  34. package/dist/{chunk-63DTRTSC.mjs → chunk-X6FCMCKZ.mjs} +2 -2
  35. package/dist/{chunk-SBT3WGBP.mjs → chunk-Y662GAGB.mjs} +7 -7
  36. package/dist/{chunk-ZRH6FGUK.mjs → chunk-ZUHWZMUH.mjs} +4 -4
  37. package/dist/data/Condition.mjs +4 -4
  38. package/dist/data/Database.mjs +3 -3
  39. package/dist/data/Field.mjs +4 -4
  40. package/dist/data/InMemoryGateway.mjs +4 -4
  41. package/dist/domain/Audit.mjs +8 -8
  42. package/dist/domain/Child.mjs +5 -5
  43. package/dist/domain/DateTime.mjs +4 -4
  44. package/dist/domain/Entity.mjs +8 -8
  45. package/dist/domain/Repo.mjs +4 -4
  46. package/dist/domain/Struct.mjs +4 -4
  47. package/dist/domain/Typo.mjs +4 -4
  48. package/dist/http/CacheControl.mjs +4 -4
  49. package/dist/http/ContentType.mjs +3 -3
  50. package/dist/http/HttpStatus.mjs +3 -3
  51. package/dist/http/HttpVerb.mjs +3 -3
  52. package/dist/http/LocalRequestStore.mjs +2 -2
  53. package/dist/http/RequestOptions.mjs +4 -4
  54. package/dist/http/RestResult.mjs +4 -4
  55. package/dist/http/toResponse.mjs +5 -5
  56. package/dist/index.d.ts +1 -0
  57. package/dist/index.js +46 -0
  58. package/dist/index.js.map +1 -1
  59. package/dist/index.mjs +1 -0
  60. package/dist/index.mjs.map +1 -1
  61. package/dist/process/App.mjs +3 -3
  62. package/dist/process/Manage.mjs +4 -4
  63. package/dist/process/Scope.mjs +3 -3
  64. package/dist/process/Search.mjs +4 -4
  65. package/dist/process/UseCase.mjs +2 -2
  66. package/dist/resources/Req.mjs +3 -3
  67. package/dist/services/Api.mjs +12 -12
  68. package/dist/services/ApiGateway.mjs +15 -15
  69. package/dist/services/AxiosProvider.mjs +10 -10
  70. package/dist/services/MappedRouteGateway.mjs +18 -18
  71. package/dist/services/RouteGateway.mjs +16 -16
  72. package/dist/services/ViewRouteGateway.mjs +18 -18
  73. package/dist/sql/Column.mjs +3 -3
  74. package/dist/sql/Count.mjs +5 -5
  75. package/dist/sql/Delete.mjs +4 -4
  76. package/dist/sql/Insert.mjs +4 -4
  77. package/dist/sql/Select.mjs +4 -4
  78. package/dist/sql/SqlQuery.mjs +3 -3
  79. package/dist/sql/Table.mjs +12 -12
  80. package/dist/sql/TableGateway.mjs +4 -4
  81. package/dist/sql/Update.mjs +4 -4
  82. package/dist/types/Cache.mjs +2 -2
  83. package/dist/types/CacheAge.mjs +4 -4
  84. package/dist/types/Case.mjs +2 -2
  85. package/dist/types/Context.mjs +2 -2
  86. package/dist/types/Enum.mjs +2 -2
  87. package/dist/types/Environment.mjs +2 -2
  88. package/dist/types/Exception.mjs +2 -2
  89. package/dist/types/Gateway.mjs +3 -3
  90. package/dist/types/IsEqual.mjs +2 -2
  91. package/dist/types/Json.mjs +3 -3
  92. package/dist/types/List.mjs +2 -2
  93. package/dist/types/Meta.mjs +2 -2
  94. package/dist/types/Number.mjs +3 -3
  95. package/dist/types/Object.mjs +2 -2
  96. package/dist/types/PageList.mjs +3 -3
  97. package/dist/types/Parser.mjs +2 -2
  98. package/dist/types/Repository.mjs +3 -3
  99. package/dist/types/Result.mjs +2 -2
  100. package/dist/types/Results.mjs +2 -2
  101. package/dist/types/Tag.mjs +2 -2
  102. package/dist/types/Template.mjs +2 -2
  103. package/dist/types/ToText.mjs +2 -2
  104. package/dist/types/Try.mjs +2 -2
  105. package/dist/types/Uri.mjs +2 -2
  106. package/dist/utils/If.mjs +2 -2
  107. package/dist/utils/IfType.d.ts +14 -0
  108. package/dist/utils/IfType.mjs +42 -0
  109. package/dist/utils/IfType.mjs.map +1 -0
  110. package/dist/utils/Mapper.mjs +4 -4
  111. package/dist/utils/Period.mjs +4 -4
  112. package/dist/utils/Promise.mjs +2 -2
  113. package/dist/utils/Seconds.mjs +3 -3
  114. package/dist/utils/Sentence.mjs +2 -2
  115. package/dist/utils/View.d.ts +7 -0
  116. package/dist/utils/View.mjs +5 -5
  117. package/dist/validation/Contraints.mjs +3 -3
  118. package/dist/validation/Validate.mjs +2 -2
  119. package/dist/validation/When.mjs +2 -2
  120. package/package.json +1 -1
  121. package/src/index.ts +1 -0
  122. package/src/utils/IfType.ts +39 -0
  123. package/src/utils/View.ts +14 -0
  124. /package/dist/{chunk-LHDTOERW.mjs.map → chunk-2TAVHLMQ.mjs.map} +0 -0
  125. /package/dist/{chunk-JM6NAJQ3.mjs.map → chunk-2YE6JUAJ.mjs.map} +0 -0
  126. /package/dist/{chunk-6PMTGQVO.mjs.map → chunk-4IQG5XVF.mjs.map} +0 -0
  127. /package/dist/{chunk-ZBOGLMG2.mjs.map → chunk-5W5W5URV.mjs.map} +0 -0
  128. /package/dist/{chunk-6YTIRHPN.mjs.map → chunk-A6NWP64I.mjs.map} +0 -0
  129. /package/dist/{chunk-WOUH6UVC.mjs.map → chunk-B5AAGATA.mjs.map} +0 -0
  130. /package/dist/{chunk-ZZ73Z5CU.mjs.map → chunk-BEP7JFNG.mjs.map} +0 -0
  131. /package/dist/{chunk-QZPBFVZL.mjs.map → chunk-CKXCHDTJ.mjs.map} +0 -0
  132. /package/dist/{chunk-IYUYA5OX.mjs.map → chunk-D5L6SKEY.mjs.map} +0 -0
  133. /package/dist/{chunk-M2S4OLVZ.mjs.map → chunk-DIFN7V7I.mjs.map} +0 -0
  134. /package/dist/{chunk-XQJ5LQEQ.mjs.map → chunk-EPTPZEGQ.mjs.map} +0 -0
  135. /package/dist/{chunk-FF3BNZ4H.mjs.map → chunk-F7MXGRLW.mjs.map} +0 -0
  136. /package/dist/{chunk-GKQMIKIY.mjs.map → chunk-FH3UDJ3J.mjs.map} +0 -0
  137. /package/dist/{chunk-JNZUGKMO.mjs.map → chunk-GDRTFSFI.mjs.map} +0 -0
  138. /package/dist/{chunk-IESVFCB3.mjs.map → chunk-HJSFO3XG.mjs.map} +0 -0
  139. /package/dist/{chunk-QLEGIYVU.mjs.map → chunk-HXMARER2.mjs.map} +0 -0
  140. /package/dist/{chunk-KPXOQFEB.mjs.map → chunk-I3KZQ25B.mjs.map} +0 -0
  141. /package/dist/{chunk-5N6Q7OXJ.mjs.map → chunk-IBDMI7CE.mjs.map} +0 -0
  142. /package/dist/{chunk-AYR4US3Z.mjs.map → chunk-IESUSDTL.mjs.map} +0 -0
  143. /package/dist/{chunk-FFD2T6YV.mjs.map → chunk-JCJ3LYZF.mjs.map} +0 -0
  144. /package/dist/{chunk-RW4AKBCN.mjs.map → chunk-JHVJNTHQ.mjs.map} +0 -0
  145. /package/dist/{chunk-QBPSI5NM.mjs.map → chunk-KNGW4ESR.mjs.map} +0 -0
  146. /package/dist/{chunk-J5PB7ZVO.mjs.map → chunk-N4U5AO3F.mjs.map} +0 -0
  147. /package/dist/{chunk-O4RWZGFC.mjs.map → chunk-NL3TQUX2.mjs.map} +0 -0
  148. /package/dist/{chunk-B37NZCNW.mjs.map → chunk-PAVASJXB.mjs.map} +0 -0
  149. /package/dist/{chunk-JI7MC5EA.mjs.map → chunk-RNAPUKU2.mjs.map} +0 -0
  150. /package/dist/{chunk-TUO7ZPSP.mjs.map → chunk-TJDABHKW.mjs.map} +0 -0
  151. /package/dist/{chunk-TNIG6FU2.mjs.map → chunk-U7RZO2JM.mjs.map} +0 -0
  152. /package/dist/{chunk-RBJBAJOK.mjs.map → chunk-UBQO5YAO.mjs.map} +0 -0
  153. /package/dist/{chunk-GF7JYGJU.mjs.map → chunk-UPATKDHG.mjs.map} +0 -0
  154. /package/dist/{chunk-FSWASMJZ.mjs.map → chunk-V4HSHLV4.mjs.map} +0 -0
  155. /package/dist/{chunk-63DTRTSC.mjs.map → chunk-X6FCMCKZ.mjs.map} +0 -0
  156. /package/dist/{chunk-SBT3WGBP.mjs.map → chunk-Y662GAGB.mjs.map} +0 -0
  157. /package/dist/{chunk-ZRH6FGUK.mjs.map → chunk-ZUHWZMUH.mjs.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Exception,
3
3
  reject
4
- } from "./chunk-TUO7ZPSP.mjs";
4
+ } from "./chunk-TJDABHKW.mjs";
5
5
 
6
6
  // src/types/Repository.ts
7
7
  var Repository = class {
@@ -46,4 +46,4 @@ var Repository = class {
46
46
  export {
47
47
  Repository
48
48
  };
49
- //# sourceMappingURL=chunk-LHDTOERW.mjs.map
49
+ //# sourceMappingURL=chunk-2TAVHLMQ.mjs.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  toPageList
3
- } from "./chunk-QLEGIYVU.mjs";
3
+ } from "./chunk-HXMARER2.mjs";
4
4
  import {
5
5
  choose,
6
6
  resolve
7
- } from "./chunk-TUO7ZPSP.mjs";
7
+ } from "./chunk-TJDABHKW.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-JM6NAJQ3.mjs.map
46
+ //# sourceMappingURL=chunk-2YE6JUAJ.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  SqlQuery
3
- } from "./chunk-B37NZCNW.mjs";
3
+ } from "./chunk-PAVASJXB.mjs";
4
4
  import {
5
5
  toList
6
- } from "./chunk-TUO7ZPSP.mjs";
6
+ } from "./chunk-TJDABHKW.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-6PMTGQVO.mjs.map
54
+ //# sourceMappingURL=chunk-4IQG5XVF.mjs.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  Api
3
- } from "./chunk-ZRH6FGUK.mjs";
3
+ } from "./chunk-ZUHWZMUH.mjs";
4
4
  import {
5
5
  Gateway
6
- } from "./chunk-FF3BNZ4H.mjs";
6
+ } from "./chunk-F7MXGRLW.mjs";
7
7
  import {
8
8
  toPageList
9
- } from "./chunk-QLEGIYVU.mjs";
9
+ } from "./chunk-HXMARER2.mjs";
10
10
  import {
11
11
  use
12
12
  } from "./chunk-QK5XGRSM.mjs";
@@ -43,4 +43,4 @@ var ApiGateway = class extends Gateway {
43
43
  export {
44
44
  ApiGateway
45
45
  };
46
- //# sourceMappingURL=chunk-ZBOGLMG2.mjs.map
46
+ //# sourceMappingURL=chunk-5W5W5URV.mjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  HttpStatus,
3
3
  isHttpStatus
4
- } from "./chunk-FSWASMJZ.mjs";
4
+ } from "./chunk-V4HSHLV4.mjs";
5
5
  import {
6
6
  isResponse
7
7
  } from "./chunk-WYLKFMFD.mjs";
@@ -11,7 +11,7 @@ import {
11
11
  isResults,
12
12
  toList,
13
13
  toResult
14
- } from "./chunk-TUO7ZPSP.mjs";
14
+ } from "./chunk-TJDABHKW.mjs";
15
15
  import {
16
16
  isDefined,
17
17
  isError
@@ -46,4 +46,4 @@ export {
46
46
  rest,
47
47
  isRestResult
48
48
  };
49
- //# sourceMappingURL=chunk-6YTIRHPN.mjs.map
49
+ //# sourceMappingURL=chunk-A6NWP64I.mjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  entries,
3
3
  ifDefined
4
- } from "./chunk-TUO7ZPSP.mjs";
4
+ } from "./chunk-TJDABHKW.mjs";
5
5
  import {
6
6
  ofGet
7
7
  } from "./chunk-SJGQU3OG.mjs";
@@ -67,4 +67,4 @@ export {
67
67
  takeFirst,
68
68
  any
69
69
  };
70
- //# sourceMappingURL=chunk-WOUH6UVC.mjs.map
70
+ //# sourceMappingURL=chunk-B5AAGATA.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Enum
3
- } from "./chunk-TUO7ZPSP.mjs";
3
+ } from "./chunk-TJDABHKW.mjs";
4
4
  import {
5
5
  ofConstruct
6
6
  } from "./chunk-QK5XGRSM.mjs";
@@ -22,4 +22,4 @@ export {
22
22
  DefaultProvider,
23
23
  Database
24
24
  };
25
- //# sourceMappingURL=chunk-ZZ73Z5CU.mjs.map
25
+ //# sourceMappingURL=chunk-BEP7JFNG.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SqlQuery
3
- } from "./chunk-B37NZCNW.mjs";
3
+ } from "./chunk-PAVASJXB.mjs";
4
4
  import {
5
5
  quote
6
6
  } from "./chunk-UXDH5W4T.mjs";
@@ -20,4 +20,4 @@ var Insert = class extends SqlQuery {
20
20
  export {
21
21
  Insert
22
22
  };
23
- //# sourceMappingURL=chunk-QZPBFVZL.mjs.map
23
+ //# sourceMappingURL=chunk-CKXCHDTJ.mjs.map
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  required,
3
3
  valid
4
- } from "./chunk-GF7JYGJU.mjs";
4
+ } from "./chunk-UPATKDHG.mjs";
5
5
  import {
6
6
  DateTime
7
- } from "./chunk-KPXOQFEB.mjs";
7
+ } from "./chunk-I3KZQ25B.mjs";
8
8
  import {
9
9
  Struct
10
- } from "./chunk-RW4AKBCN.mjs";
10
+ } from "./chunk-JHVJNTHQ.mjs";
11
11
  import {
12
12
  choose,
13
13
  ctx
14
- } from "./chunk-TUO7ZPSP.mjs";
14
+ } from "./chunk-TJDABHKW.mjs";
15
15
  import {
16
16
  isIdentity
17
17
  } from "./chunk-MDIO6K2O.mjs";
@@ -45,4 +45,4 @@ __decorateClass([
45
45
  export {
46
46
  Audit
47
47
  };
48
- //# sourceMappingURL=chunk-IYUYA5OX.mjs.map
48
+ //# sourceMappingURL=chunk-D5L6SKEY.mjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ifTrue,
3
3
  toList
4
- } from "./chunk-TUO7ZPSP.mjs";
4
+ } from "./chunk-TJDABHKW.mjs";
5
5
 
6
6
  // src/utils/Seconds.ts
7
7
  var seconds = {
@@ -21,4 +21,4 @@ var seconds = {
21
21
  export {
22
22
  seconds
23
23
  };
24
- //# sourceMappingURL=chunk-M2S4OLVZ.mjs.map
24
+ //# sourceMappingURL=chunk-DIFN7V7I.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  tryTo
3
- } from "./chunk-TUO7ZPSP.mjs";
3
+ } from "./chunk-TJDABHKW.mjs";
4
4
  import {
5
5
  asString
6
6
  } from "./chunk-4Q6IHSAU.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-XQJ5LQEQ.mjs.map
20
+ //# sourceMappingURL=chunk-EPTPZEGQ.mjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Exception,
3
3
  reject
4
- } from "./chunk-TUO7ZPSP.mjs";
4
+ } from "./chunk-TJDABHKW.mjs";
5
5
 
6
6
  // src/types/Gateway.ts
7
7
  var Gateway = class {
@@ -40,4 +40,4 @@ var Gateway = class {
40
40
  export {
41
41
  Gateway
42
42
  };
43
- //# sourceMappingURL=chunk-FF3BNZ4H.mjs.map
43
+ //# sourceMappingURL=chunk-F7MXGRLW.mjs.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-UAYAS3WM.mjs";
4
4
  import {
5
5
  json
6
- } from "./chunk-WOUH6UVC.mjs";
6
+ } from "./chunk-B5AAGATA.mjs";
7
7
  import {
8
8
  isDefined
9
9
  } from "./chunk-YYWOQNZQ.mjs";
@@ -50,4 +50,4 @@ export {
50
50
  toCondition,
51
51
  isSortCondition
52
52
  };
53
- //# sourceMappingURL=chunk-GKQMIKIY.mjs.map
53
+ //# sourceMappingURL=chunk-FH3UDJ3J.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SqlQuery
3
- } from "./chunk-B37NZCNW.mjs";
3
+ } from "./chunk-PAVASJXB.mjs";
4
4
  import {
5
5
  toClause
6
6
  } from "./chunk-UXDH5W4T.mjs";
@@ -23,4 +23,4 @@ var Update = class extends SqlQuery {
23
23
  export {
24
24
  Update
25
25
  };
26
- //# sourceMappingURL=chunk-JNZUGKMO.mjs.map
26
+ //# sourceMappingURL=chunk-GDRTFSFI.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  asNumber
3
- } from "./chunk-XQJ5LQEQ.mjs";
3
+ } from "./chunk-EPTPZEGQ.mjs";
4
4
  import {
5
5
  choose
6
- } from "./chunk-TUO7ZPSP.mjs";
6
+ } from "./chunk-TJDABHKW.mjs";
7
7
  import {
8
8
  asString
9
9
  } from "./chunk-4Q6IHSAU.mjs";
@@ -54,4 +54,4 @@ export {
54
54
  cacheAge,
55
55
  isCacheAge
56
56
  };
57
- //# sourceMappingURL=chunk-IESVFCB3.mjs.map
57
+ //# sourceMappingURL=chunk-HJSFO3XG.mjs.map
@@ -3,7 +3,7 @@ import {
3
3
  choose,
4
4
  isList,
5
5
  toList
6
- } from "./chunk-TUO7ZPSP.mjs";
6
+ } from "./chunk-TJDABHKW.mjs";
7
7
  import {
8
8
  isA
9
9
  } from "./chunk-MDIO6K2O.mjs";
@@ -170,4 +170,4 @@ export {
170
170
  toPageList,
171
171
  asPageList
172
172
  };
173
- //# sourceMappingURL=chunk-QLEGIYVU.mjs.map
173
+ //# sourceMappingURL=chunk-HXMARER2.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  seconds
3
- } from "./chunk-M2S4OLVZ.mjs";
3
+ } from "./chunk-DIFN7V7I.mjs";
4
4
  import {
5
5
  isDate
6
6
  } from "./chunk-ADJAEGCT.mjs";
@@ -8,7 +8,7 @@ import {
8
8
  choose,
9
9
  ifDefined,
10
10
  tryTo
11
- } from "./chunk-TUO7ZPSP.mjs";
11
+ } from "./chunk-TJDABHKW.mjs";
12
12
  import {
13
13
  Value
14
14
  } from "./chunk-AMS2ELWR.mjs";
@@ -137,4 +137,4 @@ export {
137
137
  isDateTime,
138
138
  dt
139
139
  };
140
- //# sourceMappingURL=chunk-KPXOQFEB.mjs.map
140
+ //# sourceMappingURL=chunk-I3KZQ25B.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  rest
3
- } from "./chunk-6YTIRHPN.mjs";
3
+ } from "./chunk-A6NWP64I.mjs";
4
4
  import {
5
5
  toHttpStatus
6
- } from "./chunk-FSWASMJZ.mjs";
6
+ } from "./chunk-V4HSHLV4.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-5N6Q7OXJ.mjs.map
20
+ //# sourceMappingURL=chunk-IBDMI7CE.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SqlQuery
3
- } from "./chunk-B37NZCNW.mjs";
3
+ } from "./chunk-PAVASJXB.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-AYR4US3Z.mjs.map
18
+ //# sourceMappingURL=chunk-IESUSDTL.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Enum
3
- } from "./chunk-TUO7ZPSP.mjs";
3
+ } from "./chunk-TJDABHKW.mjs";
4
4
  import {
5
5
  asString
6
6
  } from "./chunk-4Q6IHSAU.mjs";
@@ -28,4 +28,4 @@ var ContentType = class _ContentType extends Enum {
28
28
  export {
29
29
  ContentType
30
30
  };
31
- //# sourceMappingURL=chunk-FFD2T6YV.mjs.map
31
+ //# sourceMappingURL=chunk-JCJ3LYZF.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  json
3
- } from "./chunk-WOUH6UVC.mjs";
3
+ } from "./chunk-B5AAGATA.mjs";
4
4
  import {
5
5
  validate
6
- } from "./chunk-TUO7ZPSP.mjs";
6
+ } from "./chunk-TJDABHKW.mjs";
7
7
  import {
8
8
  isDefined
9
9
  } from "./chunk-YYWOQNZQ.mjs";
@@ -37,4 +37,4 @@ export {
37
37
  Struct,
38
38
  isStruct
39
39
  };
40
- //# sourceMappingURL=chunk-RW4AKBCN.mjs.map
40
+ //# sourceMappingURL=chunk-JHVJNTHQ.mjs.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  ApiGateway
3
- } from "./chunk-ZBOGLMG2.mjs";
3
+ } from "./chunk-5W5W5URV.mjs";
4
4
  import {
5
5
  Api
6
- } from "./chunk-ZRH6FGUK.mjs";
6
+ } from "./chunk-ZUHWZMUH.mjs";
7
7
  import {
8
8
  HttpStatus
9
- } from "./chunk-FSWASMJZ.mjs";
9
+ } from "./chunk-V4HSHLV4.mjs";
10
10
  import {
11
11
  toArray
12
12
  } from "./chunk-QCPWEAAJ.mjs";
@@ -57,4 +57,4 @@ var RouteGateway = class extends ApiGateway {
57
57
  export {
58
58
  RouteGateway
59
59
  };
60
- //# sourceMappingURL=chunk-QBPSI5NM.mjs.map
60
+ //# sourceMappingURL=chunk-KNGW4ESR.mjs.map
@@ -6,12 +6,12 @@ import {
6
6
  } from "./chunk-RUKHONCR.mjs";
7
7
  import {
8
8
  json
9
- } from "./chunk-WOUH6UVC.mjs";
9
+ } from "./chunk-B5AAGATA.mjs";
10
10
  import {
11
11
  ifNotEmpty,
12
12
  meta,
13
13
  toList
14
- } from "./chunk-TUO7ZPSP.mjs";
14
+ } from "./chunk-TJDABHKW.mjs";
15
15
  import {
16
16
  ofGet
17
17
  } from "./chunk-SJGQU3OG.mjs";
@@ -129,4 +129,4 @@ export {
129
129
  Mapper,
130
130
  mappings
131
131
  };
132
- //# sourceMappingURL=chunk-J5PB7ZVO.mjs.map
132
+ //# sourceMappingURL=chunk-N4U5AO3F.mjs.map
@@ -6,11 +6,11 @@ import {
6
6
  } from "./chunk-KL75JJTY.mjs";
7
7
  import {
8
8
  ContentType
9
- } from "./chunk-FFD2T6YV.mjs";
9
+ } from "./chunk-JCJ3LYZF.mjs";
10
10
  import {
11
11
  Enum,
12
12
  ctx
13
- } from "./chunk-TUO7ZPSP.mjs";
13
+ } from "./chunk-TJDABHKW.mjs";
14
14
  import {
15
15
  asString
16
16
  } from "./chunk-4Q6IHSAU.mjs";
@@ -85,4 +85,4 @@ export {
85
85
  RequestOptions,
86
86
  isRequestOptions
87
87
  };
88
- //# sourceMappingURL=chunk-O4RWZGFC.mjs.map
88
+ //# sourceMappingURL=chunk-NL3TQUX2.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  toList
3
- } from "./chunk-TUO7ZPSP.mjs";
3
+ } from "./chunk-TJDABHKW.mjs";
4
4
 
5
5
  // src/sql/SqlQuery.ts
6
6
  var SqlQuery = class {
@@ -17,4 +17,4 @@ var SqlQuery = class {
17
17
  export {
18
18
  SqlQuery
19
19
  };
20
- //# sourceMappingURL=chunk-B37NZCNW.mjs.map
20
+ //# sourceMappingURL=chunk-PAVASJXB.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Enum
3
- } from "./chunk-TUO7ZPSP.mjs";
3
+ } from "./chunk-TJDABHKW.mjs";
4
4
 
5
5
  // src/http/HttpVerb.ts
6
6
  var HttpVerb = class _HttpVerb extends Enum {
@@ -17,4 +17,4 @@ var HttpVerb = class _HttpVerb extends Enum {
17
17
  export {
18
18
  HttpVerb
19
19
  };
20
- //# sourceMappingURL=chunk-JI7MC5EA.mjs.map
20
+ //# sourceMappingURL=chunk-RNAPUKU2.mjs.map
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  isPageList,
3
3
  toPageList
4
- } from "./chunk-QLEGIYVU.mjs";
4
+ } from "./chunk-HXMARER2.mjs";
5
5
  import {
6
6
  asJson,
7
7
  json
8
- } from "./chunk-WOUH6UVC.mjs";
8
+ } from "./chunk-B5AAGATA.mjs";
9
9
  import {
10
10
  choose,
11
11
  ifDefined,
12
12
  isEnumConstructor,
13
13
  isEqual,
14
14
  meta
15
- } from "./chunk-TUO7ZPSP.mjs";
15
+ } from "./chunk-TJDABHKW.mjs";
16
16
  import {
17
17
  traverse
18
18
  } from "./chunk-SSROJBD5.mjs";
@@ -95,6 +95,20 @@ var views = {
95
95
  key: (altKey) => (a, key) => traverse(a, key) ?? traverse(a, altKey),
96
96
  value: (altValue) => (a, key) => traverse(a, key) ?? altValue,
97
97
  func: (altFunc) => (a, key) => traverse(a, key) ?? altFunc(a, key)
98
+ },
99
+ to: (ctorOrFunc) => {
100
+ const apply = (v) => isConstructor(ctorOrFunc) ? new ctorOrFunc(v) : ctorOrFunc(v);
101
+ const base = (a, key) => {
102
+ const v = traverse(a, key);
103
+ return v != null ? apply(v) : void 0;
104
+ };
105
+ return Object.assign(base, {
106
+ or: {
107
+ key: (altKey) => (a, key) => base(a, key) ?? traverse(a, altKey),
108
+ value: (altValue) => (a, key) => base(a, key) ?? altValue,
109
+ func: (altFunc) => (a, key) => base(a, key) ?? altFunc(a, key)
110
+ }
111
+ });
98
112
  }
99
113
  };
100
114
 
@@ -105,4 +119,4 @@ export {
105
119
  view,
106
120
  views
107
121
  };
108
- //# sourceMappingURL=chunk-7TW4TBFN.mjs.map
122
+ //# sourceMappingURL=chunk-THJAYPSV.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/View.ts"],"sourcesContent":["import { traverse } from './Traverse';\nimport { ifDefined } from './If';\nimport { Primitive } from '../types/Primitive';\nimport { Constructor, isConstructor, use } from '../types/Constructor';\nimport { asJson, json as typesJson } from '../types/Json';\nimport { choose } from '../types/Case';\nimport { isArray, isBoolean, isFunction, isString } from '../types/Is';\nimport { meta } from '../types/Meta';\nimport { isPageList, PageList, toPageList } from '../types/PageList';\nimport { List } from '../types/List';\nimport { isEqual } from '../types/IsEqual';\nimport { Get, ofGet } from '../types/Get';\nimport { DontInfer } from '../types/Types';\nimport { AnyKey } from '../types/AnyKey';\nimport { EnumConstructor, isEnumConstructor } from '../types/Enum';\nimport { Id } from '../types/Id';\n\ntype Func<T = unknown> = (a: any, key?: string) => T;\ntype FuncOn<S> = (a: S, key?: string) => unknown;\ntype Viewer = { key: string; f: Func };\n\ntype ViewType<V = any> = Primitive | EnumConstructor | Constructor | Func | View<V> | undefined;\ntype ViewValue<S = never> = [S] extends [never] ? ViewType : Exclude<ViewType, string | Func> | AnyKey<S> | FuncOn<S>;\ntype ViewRecord<V = any, S = never> = [S] extends [never]\n ? Partial<Record<keyof V | typeof spread, ViewValue<S>>>\n : Partial<Record<keyof V | typeof spread, ViewValue<S>>> & Partial<Record<Exclude<Extract<keyof S, string>, Extract<keyof V, string>>, typeof ignore>>;\n\nconst ignore = Symbol('view.ignore');\nconst keep = Symbol('view.keep');\nconst json = Symbol('view.json');\nconst spread = 'view.spread';\n\nexport const toViewer = (key: string, value: ViewType): Viewer =>\n choose(value)\n .is.not.defined(v => v, { key, f: () => undefined } as Viewer)\n .type(isBoolean, b => ({ key, f: () => b }))\n .equals(ignore, { key, f: () => undefined })\n .equals(keep, { key, f: (a: any) => traverse(a, key) })\n .equals(json, { key, f: (a: any) => asJson(traverse(a, key)) })\n .type(isString, s => ({ key, f: (a: any) => traverse(a, s) }))\n .type(isEnumConstructor, c => ({\n key,\n f: (a, key) => use(traverse(a, key), v => (isArray(v) ? c.byIds(v) : c.byId(v as Id))),\n }))\n .type(isConstructor, c => ({\n key,\n f: (a, key) => use(traverse(a, key), v => (isArray(v) ? v.map(i => optional(c, i)) : optional(c, v))),\n }))\n .type(isSimpleView, f => ({ key, f: (a: any) => ifDefined(traverse(a, key), v => f.from(v)) }))\n .type(isFunction, f => ({ key, f }))\n .else(v => ({ key, f: () => v }));\n\nconst optional = (c: Constructor, v: any) =>\n ifDefined(\n v,\n i => new c(i),\n () => v\n );\n\nconst toViewers = (views: ViewRecord): Viewer[] =>\n meta(views)\n .entries<ViewType>()\n .map(([k, v]) => toViewer(k, v));\n\nexport class View<V = any, S = never> {\n constructor(\n private views = {} as ViewRecord<V, S>,\n readonly startsFrom: 'scratch' | 'source' = 'scratch',\n readonly viewers: Viewer[] = toViewers(views),\n private spreads: Get<V>[] = []\n ) {}\n\n get fromSource(): View<V, S> {\n return new View(this.views, 'source', this.viewers, this.spreads);\n }\n\n spread(f: Get<V>): View<V, S> {\n return new View(this.views, this.startsFrom, this.viewers, [...this.spreads, f]);\n }\n\n from<T = unknown>(source: PageList<T>): PageList<V>;\n from<T = unknown>(source: List<T>): List<V>;\n from<T = unknown>(source: T[]): V[];\n from<T = unknown>(source: T): V;\n from<T = unknown>(source: PageList<T> | List<T> | T[] | T): PageList<V> | List<V> | V[] | V {\n if (isPageList(source))\n return toPageList(\n source.map(s => this.reduce(s)),\n source.options\n );\n if (isArray(source)) return source.map(s => this.reduce(s));\n return this.reduce(source);\n }\n\n same = (one?: unknown, another?: unknown): boolean => isEqual(this.from(one), this.from(another));\n\n private reduce = (source: any): any =>\n use(asJson(source), src => {\n const mapped = this.viewers.reduce(\n (acc, v) => (v.key === spread ? { ...acc, ...asJson(v.f(src, v.key)) } : typesJson.set(acc, v.key, v.f(src, v.key))),\n this.startsFrom === 'scratch' ? {} : src\n );\n return this.spreads.reduce((acc, f) => ({ ...acc, ...asJson(ofGet(f, src)) }), mapped);\n });\n}\n\nexport const isSimpleView = (a: unknown): a is View => a instanceof View;\n\nexport const view = <V = any, S = never>(views: ViewRecord<DontInfer<V>, DontInfer<S>>): View<V, S> => new View<V, S>(views);\n\nexport const views = {\n ignore,\n keep,\n json,\n spread,\n skip: ignore,\n equals: (key: string, value: unknown) => (a: unknown) => isEqual(traverse(a, key), value),\n value: (value: unknown) => () => value,\n coalesce:\n (...keys: string[]) =>\n (a: unknown) =>\n keys.reduce<unknown>((result, k) => result ?? traverse(a, k), undefined),\n or: {\n key: (altKey: string) => (a: unknown, key?: string) => traverse(a, key) ?? traverse(a, altKey),\n value: (altValue: unknown) => (a: unknown, key?: string) => traverse(a, key) ?? altValue,\n func: (altFunc: Func) => (a: unknown, key?: string) => traverse(a, key) ?? altFunc(a, key),\n },\n} as const;\n"],"mappings":"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","names":["json","key","views"]}
1
+ {"version":3,"sources":["../src/utils/View.ts"],"sourcesContent":["import { traverse } from './Traverse';\nimport { ifDefined } from './If';\nimport { Primitive } from '../types/Primitive';\nimport { Constructor, isConstructor, use } from '../types/Constructor';\nimport { asJson, json as typesJson } from '../types/Json';\nimport { choose } from '../types/Case';\nimport { isArray, isBoolean, isFunction, isString } from '../types/Is';\nimport { meta } from '../types/Meta';\nimport { isPageList, PageList, toPageList } from '../types/PageList';\nimport { List } from '../types/List';\nimport { isEqual } from '../types/IsEqual';\nimport { Get, ofGet } from '../types/Get';\nimport { DontInfer } from '../types/Types';\nimport { AnyKey } from '../types/AnyKey';\nimport { EnumConstructor, isEnumConstructor } from '../types/Enum';\nimport { Id } from '../types/Id';\n\ntype Func<T = unknown> = (a: any, key?: string) => T;\ntype FuncOn<S> = (a: S, key?: string) => unknown;\ntype Viewer = { key: string; f: Func };\n\ntype ViewType<V = any> = Primitive | EnumConstructor | Constructor | Func | View<V> | undefined;\ntype ViewValue<S = never> = [S] extends [never] ? ViewType : Exclude<ViewType, string | Func> | AnyKey<S> | FuncOn<S>;\ntype ViewRecord<V = any, S = never> = [S] extends [never]\n ? Partial<Record<keyof V | typeof spread, ViewValue<S>>>\n : Partial<Record<keyof V | typeof spread, ViewValue<S>>> & Partial<Record<Exclude<Extract<keyof S, string>, Extract<keyof V, string>>, typeof ignore>>;\n\nconst ignore = Symbol('view.ignore');\nconst keep = Symbol('view.keep');\nconst json = Symbol('view.json');\nconst spread = 'view.spread';\n\nexport const toViewer = (key: string, value: ViewType): Viewer =>\n choose(value)\n .is.not.defined(v => v, { key, f: () => undefined } as Viewer)\n .type(isBoolean, b => ({ key, f: () => b }))\n .equals(ignore, { key, f: () => undefined })\n .equals(keep, { key, f: (a: any) => traverse(a, key) })\n .equals(json, { key, f: (a: any) => asJson(traverse(a, key)) })\n .type(isString, s => ({ key, f: (a: any) => traverse(a, s) }))\n .type(isEnumConstructor, c => ({\n key,\n f: (a, key) => use(traverse(a, key), v => (isArray(v) ? c.byIds(v) : c.byId(v as Id))),\n }))\n .type(isConstructor, c => ({\n key,\n f: (a, key) => use(traverse(a, key), v => (isArray(v) ? v.map(i => optional(c, i)) : optional(c, v))),\n }))\n .type(isSimpleView, f => ({ key, f: (a: any) => ifDefined(traverse(a, key), v => f.from(v)) }))\n .type(isFunction, f => ({ key, f }))\n .else(v => ({ key, f: () => v }));\n\nconst optional = (c: Constructor, v: any) =>\n ifDefined(\n v,\n i => new c(i),\n () => v\n );\n\nconst toViewers = (views: ViewRecord): Viewer[] =>\n meta(views)\n .entries<ViewType>()\n .map(([k, v]) => toViewer(k, v));\n\nexport class View<V = any, S = never> {\n constructor(\n private views = {} as ViewRecord<V, S>,\n readonly startsFrom: 'scratch' | 'source' = 'scratch',\n readonly viewers: Viewer[] = toViewers(views),\n private spreads: Get<V>[] = []\n ) {}\n\n get fromSource(): View<V, S> {\n return new View(this.views, 'source', this.viewers, this.spreads);\n }\n\n spread(f: Get<V>): View<V, S> {\n return new View(this.views, this.startsFrom, this.viewers, [...this.spreads, f]);\n }\n\n from<T = unknown>(source: PageList<T>): PageList<V>;\n from<T = unknown>(source: List<T>): List<V>;\n from<T = unknown>(source: T[]): V[];\n from<T = unknown>(source: T): V;\n from<T = unknown>(source: PageList<T> | List<T> | T[] | T): PageList<V> | List<V> | V[] | V {\n if (isPageList(source))\n return toPageList(\n source.map(s => this.reduce(s)),\n source.options\n );\n if (isArray(source)) return source.map(s => this.reduce(s));\n return this.reduce(source);\n }\n\n same = (one?: unknown, another?: unknown): boolean => isEqual(this.from(one), this.from(another));\n\n private reduce = (source: any): any =>\n use(asJson(source), src => {\n const mapped = this.viewers.reduce(\n (acc, v) => (v.key === spread ? { ...acc, ...asJson(v.f(src, v.key)) } : typesJson.set(acc, v.key, v.f(src, v.key))),\n this.startsFrom === 'scratch' ? {} : src\n );\n return this.spreads.reduce((acc, f) => ({ ...acc, ...asJson(ofGet(f, src)) }), mapped);\n });\n}\n\nexport const isSimpleView = (a: unknown): a is View => a instanceof View;\n\nexport const view = <V = any, S = never>(views: ViewRecord<DontInfer<V>, DontInfer<S>>): View<V, S> => new View<V, S>(views);\n\nexport const views = {\n ignore,\n keep,\n json,\n spread,\n skip: ignore,\n equals: (key: string, value: unknown) => (a: unknown) => isEqual(traverse(a, key), value),\n value: (value: unknown) => () => value,\n coalesce:\n (...keys: string[]) =>\n (a: unknown) =>\n keys.reduce<unknown>((result, k) => result ?? traverse(a, k), undefined),\n or: {\n key: (altKey: string) => (a: unknown, key?: string) => traverse(a, key) ?? traverse(a, altKey),\n value: (altValue: unknown) => (a: unknown, key?: string) => traverse(a, key) ?? altValue,\n func: (altFunc: Func) => (a: unknown, key?: string) => traverse(a, key) ?? altFunc(a, key),\n },\n to: <T = unknown>(ctorOrFunc: Constructor<T> | ((v: any) => T)) => {\n const apply = (v: any): T => (isConstructor(ctorOrFunc) ? new ctorOrFunc(v) : (ctorOrFunc as (v: any) => T)(v));\n const base = (a: any, key?: string): T | undefined => {\n const v = traverse(a, key);\n return v != null ? apply(v) : undefined;\n };\n return Object.assign(base, {\n or: {\n key: (altKey: string) => (a: unknown, key?: string) => base(a, key) ?? traverse(a, altKey),\n value: (altValue: T) => (a: unknown, key?: string) => base(a, key) ?? altValue,\n func: (altFunc: Func) => (a: unknown, key?: string) => base(a, key) ?? altFunc(a, key),\n },\n });\n },\n} as const;\n"],"mappings":"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","names":["json","key","views"]}
@@ -1,12 +1,12 @@
1
+ import {
2
+ traverse
3
+ } from "./chunk-SSROJBD5.mjs";
1
4
  import {
2
5
  isValidatable
3
6
  } from "./chunk-GPNPXSOF.mjs";
4
7
  import {
5
8
  toArray
6
9
  } from "./chunk-QCPWEAAJ.mjs";
7
- import {
8
- traverse
9
- } from "./chunk-SSROJBD5.mjs";
10
10
  import {
11
11
  isValue
12
12
  } from "./chunk-AMS2ELWR.mjs";
@@ -1042,4 +1042,4 @@ export {
1042
1042
  ifEqual,
1043
1043
  ifEither
1044
1044
  };
1045
- //# sourceMappingURL=chunk-TUO7ZPSP.mjs.map
1045
+ //# sourceMappingURL=chunk-TJDABHKW.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Select
3
- } from "./chunk-6PMTGQVO.mjs";
3
+ } from "./chunk-4IQG5XVF.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-TNIG6FU2.mjs.map
18
+ //# sourceMappingURL=chunk-U7RZO2JM.mjs.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-RUKHONCR.mjs";
7
7
  import {
8
8
  tryTo
9
- } from "./chunk-TUO7ZPSP.mjs";
9
+ } from "./chunk-TJDABHKW.mjs";
10
10
  import {
11
11
  ofGet
12
12
  } from "./chunk-SJGQU3OG.mjs";
@@ -79,4 +79,4 @@ export {
79
79
  PatternColumn,
80
80
  OrderColumn
81
81
  };
82
- //# sourceMappingURL=chunk-RBJBAJOK.mjs.map
82
+ //# sourceMappingURL=chunk-UBQO5YAO.mjs.map
@@ -8,7 +8,7 @@ import {
8
8
  toList,
9
9
  tryTo,
10
10
  validate
11
- } from "./chunk-TUO7ZPSP.mjs";
11
+ } from "./chunk-TJDABHKW.mjs";
12
12
  import {
13
13
  isBoolean,
14
14
  isDefined,
@@ -69,4 +69,4 @@ export {
69
69
  maxLength,
70
70
  rule
71
71
  };
72
- //# sourceMappingURL=chunk-GF7JYGJU.mjs.map
72
+ //# sourceMappingURL=chunk-UPATKDHG.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Enum
3
- } from "./chunk-TUO7ZPSP.mjs";
3
+ } from "./chunk-TJDABHKW.mjs";
4
4
  import {
5
5
  isAn
6
6
  } from "./chunk-MDIO6K2O.mjs";
@@ -91,4 +91,4 @@ export {
91
91
  isHttpStatus,
92
92
  toHttpStatus
93
93
  };
94
- //# sourceMappingURL=chunk-FSWASMJZ.mjs.map
94
+ //# sourceMappingURL=chunk-V4HSHLV4.mjs.map
@@ -2,7 +2,7 @@ import {
2
2
  Enum,
3
3
  text,
4
4
  toList
5
- } from "./chunk-TUO7ZPSP.mjs";
5
+ } from "./chunk-TJDABHKW.mjs";
6
6
  import {
7
7
  kebab
8
8
  } from "./chunk-4Q6IHSAU.mjs";
@@ -32,4 +32,4 @@ var Scope = class _Scope extends Enum {
32
32
  export {
33
33
  Scope
34
34
  };
35
- //# sourceMappingURL=chunk-63DTRTSC.mjs.map
35
+ //# sourceMappingURL=chunk-X6FCMCKZ.mjs.map