@thisisagile/easy 18.0.0 → 18.1.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 (103) hide show
  1. package/dist/{chunk-5GKFGWMT.mjs → chunk-2D2OD2NG.mjs} +2 -2
  2. package/dist/{chunk-KFYAE4HG.mjs → chunk-3DAAM5QI.mjs} +4 -4
  3. package/dist/{chunk-AAPNDGQS.mjs → chunk-3OGUT4PJ.mjs} +3 -3
  4. package/dist/{chunk-KZQZIQ6T.mjs → chunk-6ICHBWMZ.mjs} +2 -2
  5. package/dist/{chunk-HXE3E7RM.mjs → chunk-AKW3ZSPB.mjs} +3 -3
  6. package/dist/{chunk-YGR2R77U.mjs → chunk-BIOLEZAH.mjs} +2 -2
  7. package/dist/{chunk-2IETG4DU.mjs → chunk-CACS6F4E.mjs} +2 -2
  8. package/dist/{chunk-HBQFWE27.mjs → chunk-DNJKEIEB.mjs} +2 -2
  9. package/dist/{chunk-ILB7ZDRN.mjs → chunk-FRIMC5AQ.mjs} +3 -3
  10. package/dist/{chunk-SU7MM4FN.mjs → chunk-G5JG5WGP.mjs} +2 -2
  11. package/dist/{chunk-7YOBRIPP.mjs → chunk-H2AQXRHU.mjs} +3 -3
  12. package/dist/{chunk-ZIZ323HN.mjs → chunk-N6UIO2PL.mjs} +4 -4
  13. package/dist/{chunk-R6PJ5CPZ.mjs → chunk-NGDWKHLO.mjs} +5 -5
  14. package/dist/{chunk-X6CPTGGY.mjs → chunk-NNVOP6SK.mjs} +2 -2
  15. package/dist/{chunk-BD6LAT2Y.mjs → chunk-O6R5ZUAE.mjs} +14 -8
  16. package/dist/chunk-O6R5ZUAE.mjs.map +1 -0
  17. package/dist/{chunk-2FF6NDVX.mjs → chunk-PLCNZYFY.mjs} +2 -2
  18. package/dist/{chunk-7THDYHVE.mjs → chunk-R6ZTSXLQ.mjs} +2 -2
  19. package/dist/{chunk-CTKIKB55.mjs → chunk-U45AUKTJ.mjs} +6 -6
  20. package/dist/{chunk-US4665GR.mjs → chunk-UFTAOL5N.mjs} +2 -2
  21. package/dist/{chunk-PVIIPIWP.mjs → chunk-UMHGIJFE.mjs} +2 -2
  22. package/dist/{chunk-EQTQ6EZI.mjs → chunk-USCGSR64.mjs} +2 -2
  23. package/dist/{chunk-7SZETQR3.mjs → chunk-YXZUQBUH.mjs} +2 -2
  24. package/dist/data/InMemoryGateway.mjs +3 -3
  25. package/dist/domain/Audit.mjs +5 -5
  26. package/dist/domain/Child.mjs +3 -3
  27. package/dist/domain/DateTime.mjs +2 -2
  28. package/dist/domain/Entity.mjs +5 -5
  29. package/dist/domain/Repo.mjs +2 -2
  30. package/dist/domain/Struct.mjs +2 -2
  31. package/dist/domain/Typo.mjs +2 -2
  32. package/dist/http/CacheControl.mjs +3 -3
  33. package/dist/http/LocalRequestStore.mjs +1 -1
  34. package/dist/http/RequestOptions.mjs +2 -2
  35. package/dist/http/RestResult.mjs +2 -2
  36. package/dist/http/toResponse.mjs +3 -3
  37. package/dist/index.js +13 -7
  38. package/dist/index.js.map +1 -1
  39. package/dist/process/App.mjs +2 -2
  40. package/dist/process/Manage.mjs +3 -3
  41. package/dist/process/Scope.mjs +2 -2
  42. package/dist/process/Search.mjs +3 -3
  43. package/dist/process/UseCase.mjs +1 -1
  44. package/dist/resources/Req.mjs +2 -2
  45. package/dist/services/Api.mjs +8 -8
  46. package/dist/services/ApiGateway.mjs +11 -11
  47. package/dist/services/AxiosProvider.mjs +7 -7
  48. package/dist/services/MappedRouteGateway.mjs +12 -12
  49. package/dist/services/RouteGateway.mjs +12 -12
  50. package/dist/services/ViewRouteGateway.mjs +14 -14
  51. package/dist/sql/Column.mjs +2 -2
  52. package/dist/sql/Table.mjs +2 -2
  53. package/dist/sql/TableGateway.mjs +3 -3
  54. package/dist/types/CacheAge.mjs +3 -3
  55. package/dist/types/Case.d.ts +8 -0
  56. package/dist/types/Case.mjs +1 -1
  57. package/dist/types/Context.mjs +1 -1
  58. package/dist/types/Exception.mjs +1 -1
  59. package/dist/types/Gateway.mjs +2 -2
  60. package/dist/types/IsEqual.mjs +2 -2
  61. package/dist/types/Number.mjs +2 -2
  62. package/dist/types/PageList.mjs +2 -2
  63. package/dist/types/Parser.mjs +1 -1
  64. package/dist/types/Repository.mjs +2 -2
  65. package/dist/types/Result.mjs +1 -1
  66. package/dist/types/Results.mjs +1 -1
  67. package/dist/types/Template.d.ts +1 -1
  68. package/dist/types/Template.mjs +1 -1
  69. package/dist/types/ToText.mjs +1 -1
  70. package/dist/types/Try.mjs +1 -1
  71. package/dist/types/Uri.mjs +1 -1
  72. package/dist/utils/Sentence.mjs +1 -1
  73. package/dist/utils/View.mjs +4 -4
  74. package/dist/validation/Contraints.mjs +2 -2
  75. package/dist/validation/Validate.mjs +1 -1
  76. package/dist/validation/When.mjs +1 -1
  77. package/package.json +1 -1
  78. package/src/types/Case.ts +6 -0
  79. package/src/types/Template.ts +3 -3
  80. package/src/types/ToText.ts +1 -1
  81. package/src/validation/Validate.ts +2 -2
  82. package/dist/chunk-BD6LAT2Y.mjs.map +0 -1
  83. /package/dist/{chunk-5GKFGWMT.mjs.map → chunk-2D2OD2NG.mjs.map} +0 -0
  84. /package/dist/{chunk-KFYAE4HG.mjs.map → chunk-3DAAM5QI.mjs.map} +0 -0
  85. /package/dist/{chunk-AAPNDGQS.mjs.map → chunk-3OGUT4PJ.mjs.map} +0 -0
  86. /package/dist/{chunk-KZQZIQ6T.mjs.map → chunk-6ICHBWMZ.mjs.map} +0 -0
  87. /package/dist/{chunk-HXE3E7RM.mjs.map → chunk-AKW3ZSPB.mjs.map} +0 -0
  88. /package/dist/{chunk-YGR2R77U.mjs.map → chunk-BIOLEZAH.mjs.map} +0 -0
  89. /package/dist/{chunk-2IETG4DU.mjs.map → chunk-CACS6F4E.mjs.map} +0 -0
  90. /package/dist/{chunk-HBQFWE27.mjs.map → chunk-DNJKEIEB.mjs.map} +0 -0
  91. /package/dist/{chunk-ILB7ZDRN.mjs.map → chunk-FRIMC5AQ.mjs.map} +0 -0
  92. /package/dist/{chunk-SU7MM4FN.mjs.map → chunk-G5JG5WGP.mjs.map} +0 -0
  93. /package/dist/{chunk-7YOBRIPP.mjs.map → chunk-H2AQXRHU.mjs.map} +0 -0
  94. /package/dist/{chunk-ZIZ323HN.mjs.map → chunk-N6UIO2PL.mjs.map} +0 -0
  95. /package/dist/{chunk-R6PJ5CPZ.mjs.map → chunk-NGDWKHLO.mjs.map} +0 -0
  96. /package/dist/{chunk-X6CPTGGY.mjs.map → chunk-NNVOP6SK.mjs.map} +0 -0
  97. /package/dist/{chunk-2FF6NDVX.mjs.map → chunk-PLCNZYFY.mjs.map} +0 -0
  98. /package/dist/{chunk-7THDYHVE.mjs.map → chunk-R6ZTSXLQ.mjs.map} +0 -0
  99. /package/dist/{chunk-CTKIKB55.mjs.map → chunk-U45AUKTJ.mjs.map} +0 -0
  100. /package/dist/{chunk-US4665GR.mjs.map → chunk-UFTAOL5N.mjs.map} +0 -0
  101. /package/dist/{chunk-PVIIPIWP.mjs.map → chunk-UMHGIJFE.mjs.map} +0 -0
  102. /package/dist/{chunk-EQTQ6EZI.mjs.map → chunk-USCGSR64.mjs.map} +0 -0
  103. /package/dist/{chunk-7SZETQR3.mjs.map → chunk-YXZUQBUH.mjs.map} +0 -0
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-FIIA7ENW.mjs";
10
10
  import {
11
11
  ctx
12
- } from "./chunk-BD6LAT2Y.mjs";
12
+ } from "./chunk-O6R5ZUAE.mjs";
13
13
  import {
14
14
  Enum
15
15
  } from "./chunk-EVG23WHU.mjs";
@@ -87,4 +87,4 @@ export {
87
87
  RequestOptions,
88
88
  isRequestOptions
89
89
  };
90
- //# sourceMappingURL=chunk-5GKFGWMT.mjs.map
90
+ //# sourceMappingURL=chunk-2D2OD2NG.mjs.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  Api
3
- } from "./chunk-HXE3E7RM.mjs";
3
+ } from "./chunk-AKW3ZSPB.mjs";
4
4
  import {
5
5
  Gateway
6
- } from "./chunk-SU7MM4FN.mjs";
6
+ } from "./chunk-G5JG5WGP.mjs";
7
7
  import {
8
8
  toPageList
9
- } from "./chunk-2IETG4DU.mjs";
9
+ } from "./chunk-CACS6F4E.mjs";
10
10
  import {
11
11
  use
12
12
  } from "./chunk-ZPNFXK7Y.mjs";
@@ -43,4 +43,4 @@ var ApiGateway = class extends Gateway {
43
43
  export {
44
44
  ApiGateway
45
45
  };
46
- //# sourceMappingURL=chunk-KFYAE4HG.mjs.map
46
+ //# sourceMappingURL=chunk-3DAAM5QI.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  asNumber
3
- } from "./chunk-KZQZIQ6T.mjs";
3
+ } from "./chunk-6ICHBWMZ.mjs";
4
4
  import {
5
5
  choose
6
- } from "./chunk-BD6LAT2Y.mjs";
6
+ } from "./chunk-O6R5ZUAE.mjs";
7
7
  import {
8
8
  asString
9
9
  } from "./chunk-TOERQZRP.mjs";
@@ -54,4 +54,4 @@ export {
54
54
  cacheAge,
55
55
  isCacheAge
56
56
  };
57
- //# sourceMappingURL=chunk-AAPNDGQS.mjs.map
57
+ //# sourceMappingURL=chunk-3OGUT4PJ.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  tryTo
3
- } from "./chunk-BD6LAT2Y.mjs";
3
+ } from "./chunk-O6R5ZUAE.mjs";
4
4
  import {
5
5
  asString
6
6
  } from "./chunk-TOERQZRP.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-KZQZIQ6T.mjs.map
20
+ //# sourceMappingURL=chunk-6ICHBWMZ.mjs.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  AxiosProvider
3
- } from "./chunk-CTKIKB55.mjs";
3
+ } from "./chunk-U45AUKTJ.mjs";
4
4
  import {
5
5
  HttpVerb
6
6
  } from "./chunk-4XY7L4GK.mjs";
7
7
  import {
8
8
  RequestOptions,
9
9
  toPageOptions
10
- } from "./chunk-5GKFGWMT.mjs";
10
+ } from "./chunk-2D2OD2NG.mjs";
11
11
 
12
12
  // src/services/Api.ts
13
13
  var Api = class {
@@ -76,4 +76,4 @@ export {
76
76
  Api,
77
77
  api
78
78
  };
79
- //# sourceMappingURL=chunk-HXE3E7RM.mjs.map
79
+ //# sourceMappingURL=chunk-AKW3ZSPB.mjs.map
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  choose,
9
9
  tryTo
10
- } from "./chunk-BD6LAT2Y.mjs";
10
+ } from "./chunk-O6R5ZUAE.mjs";
11
11
  import {
12
12
  Value
13
13
  } from "./chunk-4262V2GR.mjs";
@@ -139,4 +139,4 @@ export {
139
139
  isDateTime,
140
140
  dt
141
141
  };
142
- //# sourceMappingURL=chunk-YGR2R77U.mjs.map
142
+ //# sourceMappingURL=chunk-BIOLEZAH.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  choose
3
- } from "./chunk-BD6LAT2Y.mjs";
3
+ } from "./chunk-O6R5ZUAE.mjs";
4
4
  import {
5
5
  List,
6
6
  isList,
@@ -172,4 +172,4 @@ export {
172
172
  toPageList,
173
173
  asPageList
174
174
  };
175
- //# sourceMappingURL=chunk-2IETG4DU.mjs.map
175
+ //# sourceMappingURL=chunk-CACS6F4E.mjs.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-LGPKT5JC.mjs";
7
7
  import {
8
8
  tryTo
9
- } from "./chunk-BD6LAT2Y.mjs";
9
+ } from "./chunk-O6R5ZUAE.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-HBQFWE27.mjs.map
82
+ //# sourceMappingURL=chunk-DNJKEIEB.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  toPageList
3
- } from "./chunk-2IETG4DU.mjs";
3
+ } from "./chunk-CACS6F4E.mjs";
4
4
  import {
5
5
  choose
6
- } from "./chunk-BD6LAT2Y.mjs";
6
+ } from "./chunk-O6R5ZUAE.mjs";
7
7
  import {
8
8
  resolve
9
9
  } from "./chunk-LTTIVS2R.mjs";
@@ -45,4 +45,4 @@ var Search = class {
45
45
  export {
46
46
  Search
47
47
  };
48
- //# sourceMappingURL=chunk-ILB7ZDRN.mjs.map
48
+ //# sourceMappingURL=chunk-FRIMC5AQ.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Exception
3
- } from "./chunk-BD6LAT2Y.mjs";
3
+ } from "./chunk-O6R5ZUAE.mjs";
4
4
  import {
5
5
  reject
6
6
  } from "./chunk-LTTIVS2R.mjs";
@@ -42,4 +42,4 @@ var Gateway = class {
42
42
  export {
43
43
  Gateway
44
44
  };
45
- //# sourceMappingURL=chunk-SU7MM4FN.mjs.map
45
+ //# sourceMappingURL=chunk-G5JG5WGP.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  ApiGateway
3
- } from "./chunk-KFYAE4HG.mjs";
3
+ } from "./chunk-3DAAM5QI.mjs";
4
4
  import {
5
5
  Api
6
- } from "./chunk-HXE3E7RM.mjs";
6
+ } from "./chunk-AKW3ZSPB.mjs";
7
7
  import {
8
8
  HttpStatus
9
9
  } from "./chunk-STBIY75D.mjs";
@@ -57,4 +57,4 @@ var RouteGateway = class extends ApiGateway {
57
57
  export {
58
58
  RouteGateway
59
59
  };
60
- //# sourceMappingURL=chunk-7YOBRIPP.mjs.map
60
+ //# sourceMappingURL=chunk-H2AQXRHU.mjs.map
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  isEqual
3
- } from "./chunk-2FF6NDVX.mjs";
3
+ } from "./chunk-PLCNZYFY.mjs";
4
4
  import {
5
5
  isPageList,
6
6
  toPageList
7
- } from "./chunk-2IETG4DU.mjs";
7
+ } from "./chunk-CACS6F4E.mjs";
8
8
  import {
9
9
  asJson,
10
10
  json
11
11
  } from "./chunk-YXAXW4CU.mjs";
12
12
  import {
13
13
  choose
14
- } from "./chunk-BD6LAT2Y.mjs";
14
+ } from "./chunk-O6R5ZUAE.mjs";
15
15
  import {
16
16
  isEnumConstructor
17
17
  } from "./chunk-EVG23WHU.mjs";
@@ -113,4 +113,4 @@ export {
113
113
  view,
114
114
  views
115
115
  };
116
- //# sourceMappingURL=chunk-ZIZ323HN.mjs.map
116
+ //# sourceMappingURL=chunk-N6UIO2PL.mjs.map
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  required,
3
3
  valid
4
- } from "./chunk-PVIIPIWP.mjs";
4
+ } from "./chunk-UMHGIJFE.mjs";
5
5
  import {
6
6
  DateTime
7
- } from "./chunk-YGR2R77U.mjs";
7
+ } from "./chunk-BIOLEZAH.mjs";
8
8
  import {
9
9
  Struct
10
- } from "./chunk-7THDYHVE.mjs";
10
+ } from "./chunk-R6ZTSXLQ.mjs";
11
11
  import {
12
12
  choose,
13
13
  ctx
14
- } from "./chunk-BD6LAT2Y.mjs";
14
+ } from "./chunk-O6R5ZUAE.mjs";
15
15
  import {
16
16
  isIdentity
17
17
  } from "./chunk-ZHXKBOK2.mjs";
@@ -45,4 +45,4 @@ __decorateClass([
45
45
  export {
46
46
  Audit
47
47
  };
48
- //# sourceMappingURL=chunk-R6PJ5CPZ.mjs.map
48
+ //# sourceMappingURL=chunk-NGDWKHLO.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  rest
3
- } from "./chunk-7SZETQR3.mjs";
3
+ } from "./chunk-YXZUQBUH.mjs";
4
4
  import {
5
5
  toHttpStatus
6
6
  } from "./chunk-STBIY75D.mjs";
@@ -17,4 +17,4 @@ function toResponse(status, body, headers) {
17
17
  export {
18
18
  toResponse
19
19
  };
20
- //# sourceMappingURL=chunk-X6CPTGGY.mjs.map
20
+ //# sourceMappingURL=chunk-NNVOP6SK.mjs.map
@@ -161,7 +161,7 @@ var Template = class {
161
161
  this.subject = subject;
162
162
  this.options = options;
163
163
  }
164
- knownPrefixes = /* @__PURE__ */ new Set(["type", "property", "actual", "subject"]);
164
+ knownPrefixes = /* @__PURE__ */ new Set(["typeof", "property", "actual", "subject"]);
165
165
  toString = () => {
166
166
  return entries(this.options).reduce((t, [k]) => this.option(t, k), this.object()).replace(" ", " ");
167
167
  };
@@ -180,7 +180,7 @@ var Template = class {
180
180
  };
181
181
  function template(tmpl, subject, options = {}) {
182
182
  return new Template(asString(tmpl), subject, {
183
- type: toName(subject),
183
+ typeof: toName(subject),
184
184
  subject: text(JSON.stringify(subject)),
185
185
  ...options
186
186
  });
@@ -253,7 +253,7 @@ var ToText = class {
253
253
  get isEmpty() {
254
254
  return isEmpty(this.toString());
255
255
  }
256
- parse = (subject, options = {}) => text(template(this.subject, subject, { type: toName(subject), ...options }));
256
+ parse = (subject, options = {}) => text(template(this.subject, subject, { typeof: toName(subject), ...options }));
257
257
  is = (...others) => others.some((o) => this.toString() === text(o).toString());
258
258
  equals = this.is;
259
259
  like = (...others) => others.some((o) => this.trim.lower.toString().includes(text(o).trim.lower.toString()));
@@ -410,6 +410,7 @@ var CaseBuilder = class {
410
410
  empty: (prop, out) => new Case(this.v).case(isEmpty(prop(this.v)), out),
411
411
  valid: (prop, out) => new Case(this.v).case(validate(prop(this.v)).isValid, out),
412
412
  in: (prop, out) => new Case(this.v).case(ofGet(prop, this.v).includes(this.v), out),
413
+ type: (guard, out) => new Case(this.v).type(guard, out),
413
414
  not: {
414
415
  true: (pred, out) => new Case(this.v).case(!ofGet(pred, this.v), out),
415
416
  false: (pred, out) => new Case(this.v).case(pred, out),
@@ -418,7 +419,8 @@ var CaseBuilder = class {
418
419
  defined: (prop, out) => new Case(this.v).case(!isDefined(prop(this.v)), out),
419
420
  empty: (prop, out) => new Case(this.v).case(!isEmpty(prop(this.v)), out),
420
421
  valid: (prop, out) => new Case(this.v).case(!validate(prop(this.v)).isValid, out),
421
- in: (prop, out) => new Case(this.v).case(!ofGet(prop, this.v).includes(this.v), out)
422
+ in: (prop, out) => new Case(this.v).case(!ofGet(prop, this.v).includes(this.v), out),
423
+ type: (guard, out) => new Case(this.v).case((v) => !guard(v), out)
422
424
  }
423
425
  };
424
426
  if = this.is;
@@ -446,6 +448,7 @@ var Case = class _Case {
446
448
  empty: (prop, out) => new _Case(this.value).case(isEmpty(prop(this.value)), out),
447
449
  valid: (prop, out) => new _Case(this.value).case(validate(prop(this.value)).isValid, out),
448
450
  in: (prop, out) => new _Case(this.value).case(ofGet(prop, this.value).includes(this.value), out),
451
+ type: (guard, out) => new _Case(this.value).type(guard, out),
449
452
  not: {
450
453
  true: (pred, out) => new _Case(this.value).case(!ofGet(pred, this.value), out),
451
454
  false: (pred, out) => new _Case(this.value).case(pred, out),
@@ -454,7 +457,8 @@ var Case = class _Case {
454
457
  defined: (prop, out) => new _Case(this.value).case(!isDefined(prop(this.value)), out),
455
458
  empty: (prop, out) => new _Case(this.value).case(!isEmpty(prop(this.value)), out),
456
459
  valid: (prop, out) => new _Case(this.value).case(!validate(prop(this.value)).isValid, out),
457
- in: (prop, out) => new _Case(this.value).case(!ofGet(prop, this.value).includes(this.value), out)
460
+ in: (prop, out) => new _Case(this.value).case(!ofGet(prop, this.value).includes(this.value), out),
461
+ type: (guard, out) => new _Case(this.value).case((v) => !guard(v), out)
458
462
  }
459
463
  };
460
464
  if = this.is;
@@ -486,6 +490,7 @@ var Found = class extends Case {
486
490
  empty: (_prop, _out) => this,
487
491
  valid: (_prop, _out) => this,
488
492
  in: (_prop, _out) => this,
493
+ type: (_guard, _out) => this,
489
494
  not: {
490
495
  true: (_pred, _out) => this,
491
496
  false: (_pred, _out) => this,
@@ -494,7 +499,8 @@ var Found = class extends Case {
494
499
  defined: (_prop, _out) => this,
495
500
  empty: (_prop, _out) => this,
496
501
  valid: (_prop, _out) => this,
497
- in: (_prop, _out) => this
502
+ in: (_prop, _out) => this,
503
+ type: (_guard, _out) => this
498
504
  }
499
505
  };
500
506
  if = this.is;
@@ -532,7 +538,7 @@ var constraints = (subject) => validators(subject).map((vs) => runValidator(vs,
532
538
  var validate = (subject) => choose(subject).is.not.defined(
533
539
  (s) => s,
534
540
  () => toResults("Subject is not defined.")
535
- ).type(isEnum, (e) => e.isValid ? toResults() : asResults(e, "This is not a valid {type}.")).type(isValue, (v) => v.isValid ? toResults() : asResults(v, "This is not a valid {type}.")).type(isArray, (a) => a.map((i) => validate(i)).reduce((rs, r) => rs.add(...r.results), toResults())).type(isValidatable, (v) => constraints(v)).else(toResults());
541
+ ).type(isEnum, (e) => e.isValid ? toResults() : asResults(e, "This is not a valid {typeof}.")).type(isValue, (v) => v.isValid ? toResults() : asResults(v, "This is not a valid {typeof}.")).type(isArray, (a) => a.map((i) => validate(i)).reduce((rs, r) => rs.add(...r.results), toResults())).type(isValidatable, (v) => constraints(v)).else(toResults());
536
542
  var validateReject = (subject) => when(subject).not.isValid.reject();
537
543
  var isValid = (t) => validate(t).isValid;
538
544
 
@@ -623,4 +629,4 @@ export {
623
629
  isException,
624
630
  isDoesNotExist
625
631
  };
626
- //# sourceMappingURL=chunk-BD6LAT2Y.mjs.map
632
+ //# sourceMappingURL=chunk-O6R5ZUAE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/Try.ts","../src/types/Template.ts","../src/types/ToText.ts","../src/types/Context.ts","../src/types/Result.ts","../src/types/Results.ts","../src/types/Case.ts","../src/validation/Validate.ts","../src/types/Exception.ts","../src/validation/When.ts"],"sourcesContent":["import { isDefined, isEmpty, isTrue } from './Is';\nimport { validate } from '../validation/Validate';\nimport { Construct, Constructor, ofConstruct } from './Constructor';\nimport { Validatable } from './Validatable';\nimport { Get, ofGet } from './Get';\nimport { Func } from './Func';\nimport { Optional } from './Types';\n\nexport abstract class Try<T = unknown> implements Validatable {\n is = {\n defined: (prop?: Func<unknown, T>): Try<T> => this.filter(v => isDefined(prop ? prop(v) : v)),\n empty: (prop?: Func<unknown, T>): Try<T> => this.filter(v => isEmpty(prop ? prop(v) : v)),\n valid: (prop?: Func<unknown, T>): Try<T> => this.filter(v => validate(prop ? prop(v) : v).isValid),\n true: (prop?: Func<unknown, T>): Try<T> => this.filter(v => isTrue(prop ? prop(v) : v)),\n false: (prop?: Func<unknown, T>): Try<T> => this.filter(v => !isTrue(prop ? prop(v) : v)),\n not: {\n defined: (prop?: Func<unknown, T>): Try<T> => this.filter(v => !isDefined(prop ? prop(v) : v)),\n empty: (prop?: Func<unknown, T>): Try<T> => this.filter(v => !isEmpty(prop ? prop(v) : v)),\n valid: (prop?: Func<unknown, T>): Try<T> => this.filter(v => !validate(prop ? prop(v) : v).isValid),\n },\n };\n\n if = this.is;\n\n abstract get value(): T;\n\n abstract get error(): Error;\n\n abstract get isValid(): boolean;\n\n static of = <T>(c: Get<T | Try<T>>, ...args: unknown[]): Try<T> => {\n try {\n const out = ofGet(c, ...args);\n return new Success(out instanceof Try ? out.value : out);\n } catch (e) {\n return new Failure(e as Error);\n }\n };\n\n abstract map<U>(f: Func<U | Try<U>, T>): Try<U>;\n\n abstract recover(f: Func<T | Try<T>, Error>): Try<T>;\n\n abstract recoverFrom(type: Constructor<Error>, f: Func<T | Try<T>, Error>): Try<T>;\n\n abstract accept(f: Func<void, T>): Try<T>;\n\n abstract filter(predicate: Func<boolean, T>): Try<T>;\n\n abstract or(value: Get<T>): T;\n\n abstract orElse(value?: Get<T>): Optional<T>;\n\n abstract orThrow(error: Construct<Error>): T;\n}\n\nclass Success<T> extends Try<T> {\n constructor(readonly value: T) {\n super();\n }\n\n get error(): Error {\n throw new Error('No error found');\n }\n\n get isValid(): boolean {\n return true;\n }\n\n map<U>(f: Func<U | Try<U>, T>): Try<U> {\n return tryTo<U>(f, this.value);\n }\n\n recover(f: Func<T | Try<T>, Error>): Try<T> {\n return this;\n }\n\n recoverFrom(type: Constructor<Error>, f: Func<T | Try<T>, Error>): Try<T> {\n return this;\n }\n\n accept(f: Func<void, T>): Try<T> {\n return tryTo(() => {\n f(this.value);\n return this;\n });\n }\n\n filter(predicate: Func<boolean, T>): Try<T> {\n return tryTo(() => {\n if (predicate(this.value)) return this;\n throw new Error(`Applying filter(${predicate.toString()}) failed.`);\n });\n }\n\n or(value: Get<T>): T {\n return this.value;\n }\n\n orElse(value?: Get<T>): Optional<T> {\n return this.value;\n }\n\n orThrow(_error: Construct<Error>): T {\n return this.value;\n }\n}\n\nclass Failure<T> extends Try<T> {\n constructor(readonly error: Error) {\n super();\n }\n\n get value(): T {\n throw this.error;\n }\n\n get isValid(): boolean {\n return false;\n }\n\n map<U>(f: Func<U | Try<U>, T>): Try<U> {\n return new Failure<U>(this.error);\n }\n\n recover<U>(f: Func<U | Try<U>, Error>): Try<U> {\n return tryTo<U>(f, this.error);\n }\n\n recoverFrom<U>(type: Constructor<Error>, f: Func<T | Try<T>, Error>): Try<T> {\n return tryTo(() => (this.error instanceof type ? this.recover(f) : this));\n }\n\n accept(f: Func<void, T>): Try<T> {\n return this;\n }\n\n filter(predicate: Func<boolean, T>): Try<T> {\n return this;\n }\n\n or(value: Get<T>): T {\n return ofGet(value);\n }\n\n orElse(value?: Get<T>): Optional<T> {\n return ofGet(value);\n }\n\n orThrow(error: Construct<Error>): T {\n throw ofConstruct(error);\n }\n}\n\nexport const tryTo = <T>(c: Get<T | Try<T>>, ...args: unknown[]) => Try.of<T>(c, ...args);\n","import { List, toList } from './List';\nimport { asString, Text } from './Text';\nimport { toName } from './Constructor';\nimport { entries } from './Object';\nimport { text, textValue } from './ToText';\nimport { tryTo } from './Try';\n\nexport type TemplateOptions = { typeof?: Text; property?: Text; actual?: Text; subject?: Text };\n\nexport class Template implements Text {\n private knownPrefixes = new Set(['typeof', 'property', 'actual', 'subject']);\n\n constructor(\n private readonly template: string,\n private readonly subject: unknown = {},\n private readonly options: TemplateOptions = {}\n ) {}\n\n toString = (): string => {\n return entries(this.options)\n .reduce((t, [k]) => this.option(t, k), this.object())\n .replace(' ', ' ');\n };\n\n private readonly props = (tmpl: string, key: string, result: List<string> = toList()): string[] => {\n const i1 = tmpl.indexOf(`{${key}`);\n if (i1 < 0) {\n return result;\n }\n const i2 = tmpl.indexOf('}', i1);\n return this.props(tmpl.slice(i2 + 1), key, result.add(tmpl.substring(i1 + 1, i2)));\n };\n\n private readonly object = (): string =>\n tryTo(() => this.template.replace(/\\{this\\./g, '{'))\n .map(t => t.replace(/\\{([^}]+)}/g, (match, p) => (this.knownPrefixes.has(p.split('.')[0]) ? match : textValue(this.subject, p))))\n .or('');\n\n private readonly option = (tmpl: string, prop: string): string => {\n return this.props(tmpl, prop).reduce((t: string, p) => t.replace(`{${p}}`, textValue(this.options, p)), tmpl);\n };\n}\n\nexport function template(tmpl: Text, subject: unknown, options: TemplateOptions = {}): Text {\n return new Template(asString(tmpl), subject, {\n typeof: toName(subject),\n subject: text(JSON.stringify(subject)),\n ...options,\n });\n}\n","import { asString, capitalize, replaceAll, Text } from './Text';\nimport { toName } from './Constructor';\nimport { Optional } from './Types';\nimport { Get, ofGet } from './Get';\nimport { isEmpty, isNotEmpty } from './Is';\nimport { List, toList } from './List';\nimport { JsonValue } from './Json';\nimport { template } from './Template';\n\nexport class ToText implements Text {\n constructor(readonly subject: string) {}\n\n get cap(): ToText {\n return this.map(s => capitalize(s?.toLowerCase()));\n }\n\n get capFirst(): ToText {\n return this.map(s => capitalize(s));\n }\n\n get title(): ToText {\n return this.map(s =>\n s\n .split(' ')\n .map(w => text(w).cap)\n .join(' ')\n );\n }\n\n get pascal(): ToText {\n return this.title.replace(' ', '');\n }\n\n get lower(): ToText {\n return this.map(s => s.toLowerCase());\n }\n\n get upper(): ToText {\n return this.map(s => s.toUpperCase());\n }\n\n get camel(): ToText {\n return this.title.trim.map(s => `${s.charAt(0).toLowerCase()}${s.slice(1)}`);\n }\n\n get kebab(): ToText {\n return this.lower.replace(' ', '-');\n }\n\n get strictKebab(): ToText {\n return this.map(s => s.replace(/[^a-z\\d]+/gi, ' ').trim()).kebab;\n }\n\n get slug(): ToText {\n return this.map(s =>\n s\n .replace(/ß/g, 'ss')\n .normalize('NFKD')\n .replace(/[\\u0300-\\u036F]/g, '')\n .toLowerCase()\n .replace(/[^a-z\\d]+/g, '-')\n .replace(/(^-)|(-$)/g, '')\n );\n }\n\n get snake(): ToText {\n return this.upper.replace(' ', '_');\n }\n\n get plural(): ToText {\n return this.ifLike('') ?? this.add('s');\n }\n\n get space(): ToText {\n return this.map(s => s.replace(/([a-z0-9])([A-Z])/g, '$1 $2').replace(/[_-]/g, ' '));\n }\n\n get sentence(): ToText {\n return this.isEmpty ? this : this.map(s => `${s.charAt(0).toUpperCase()}${s.slice(1)}.`);\n }\n\n get initials(): ToText {\n return this.map(s =>\n s\n .split(' ')\n .map(w => w[0])\n .join('')\n );\n }\n\n get trim(): ToText {\n return this.map(s => s.replace(/[- ,_#]/g, ''));\n }\n\n get trimSentence(): ToText {\n return this.map(s =>\n s\n .replace(/[\\u200B-\\u200D\\uFEFF]/g, '')\n .replace(/[\\s\\u00A0]+/g, ' ')\n .replace(/\\s+([.,;:!?])/g, '$1')\n .trim()\n );\n }\n\n get isEmpty(): boolean {\n return isEmpty(this.toString());\n }\n\n parse = (subject: unknown, options = {}): ToText => text(template(this.subject, subject, { typeof: toName(subject), ...options }));\n\n is = (...others: unknown[]): boolean => others.some(o => this.toString() === text(o).toString());\n\n equals = this.is;\n\n like = (...others: unknown[]): boolean => others.some(o => this.trim.lower.toString().includes(text(o).trim.lower.toString()));\n\n isLike = (...others: unknown[]): boolean => others.some(o => this.trim.lower.is(text(o).trim.lower));\n\n ifLike = (...others: unknown[]): Optional<this> => (this.isLike(...others) ? this : undefined);\n\n endsWith = (end?: unknown): boolean => this.subject.endsWith(asString(end));\n\n startsWith = (end?: unknown): boolean => this.subject.startsWith(asString(end));\n\n first = (n: number): ToText => this.map(s => s.substring(0, n));\n\n last = (n: number): ToText => this.map(s => s.substring(s.length - n));\n\n map = (func: Get<string, string>): ToText => text(ofGet(func, this.subject));\n\n replace = (search: Text, replace: Text): ToText => this.map(s => replaceAll(s, search, replace));\n\n add = (add?: unknown, separator = ''): ToText => this.map(s => (isNotEmpty(add) ? `${s}${separator}${text(add)}` : s));\n\n with = (separator: string, ...other: unknown[]): ToText =>\n this.map(s =>\n toList(s)\n .add(...other.map(u => text(u).toString()))\n .filter(s => isNotEmpty(s))\n .join(separator)\n );\n\n split = (separator: string = ' '): List<string> => toList(this.subject.split(separator));\n\n toString(): string {\n return this.subject;\n }\n\n toJSON(): JsonValue {\n return this.subject;\n }\n}\n\nexport function text(subject?: unknown, alt = ''): ToText {\n const sub = subject ? asString(subject) : alt;\n return new ToText(sub !== '[object Object]' ? sub : '');\n}\n\nexport function textValue(subject: any, prop: string): string {\n const p = prop.split('.');\n const root = subject?.[p[0]];\n const initial = typeof root === 'object' && root !== null ? root : text(root);\n return (\n p\n .splice(1)\n .reduce((t, s) => (typeof t === 'object' && t !== null ? t : text(t))?.[s], initial)\n ?.toString() ?? ''\n );\n}\n","import { Uuid } from './Uuid';\nimport { Identity } from './Identity';\nimport { Optional } from './Types';\n\nimport { text } from './ToText';\n\nexport interface EnvContext {\n readonly domain: string;\n readonly name: string;\n readonly host: string;\n readonly port: number;\n readonly app: string;\n\n get(key: string, alt?: string): Optional<string>;\n}\n\nexport class DotEnvContext implements EnvContext {\n readonly domain = process.env.DOMAIN ?? 'easy';\n readonly name = process.env.ENVIRONMENT_NAME ?? '';\n readonly host = process.env.HOST ?? '';\n readonly port = Number.parseInt(process.env.PORT ?? '8080');\n readonly app = process.env.APP ?? '';\n\n readonly get = (key: string, alt?: string): Optional<string> => {\n const k = text(key)\n .map(k => k.replace(/([a-z])([A-Z])/g, '$1 $2'))\n .snake.toString();\n return process.env[k] ?? alt;\n };\n}\n\nexport interface RequestContext {\n token?: any;\n identity?: Identity;\n jwt: string;\n correlationId?: Uuid;\n lastError?: string;\n lastErrorStack?: string;\n create: (f: () => void) => void;\n\n get<T>(key: string): T;\n\n set<T>(key: string, value: T): T;\n\n wrap<T>(f: () => Promise<T>): Promise<T>;\n}\n\nexport class BaseRequestContext implements RequestContext {\n private state: any = {};\n\n get token(): any {\n return this.get('token');\n }\n\n set token(token: any) {\n this.set('token', token);\n }\n\n get identity(): Identity {\n return this.token as Identity;\n }\n\n get jwt(): string {\n return this.get('jwt');\n }\n\n set jwt(jwt: string) {\n this.set('jwt', jwt);\n }\n\n get correlationId(): Uuid {\n return this.get('correlationId');\n }\n\n set correlationId(id: Uuid) {\n this.set('correlationId', id);\n }\n\n get lastError(): Optional<string> {\n return this.get('lastError');\n }\n\n set lastError(error: Optional<string>) {\n this.set('lastError', error);\n }\n\n public get<T>(key: string): T {\n return this.state[key] as T;\n }\n\n public set<T>(key: string, value: T): T {\n return (this.state[key] = value);\n }\n\n public readonly create = (f: () => void): void => f();\n\n public readonly wrap = <T>(f: () => Promise<T>): Promise<T> => f();\n}\n\n/**\n * @deprecated Renamed to BaseRequestContext\n */\nexport class BaseContext extends BaseRequestContext {}\n\nexport interface Contexts {\n env?: EnvContext;\n request?: RequestContext;\n other?: any;\n}\n\nexport class Context {\n constructor(protected state: Contexts = {}) {\n this.state = {\n ...{\n env: new DotEnvContext(),\n request: new BaseRequestContext(),\n other: {},\n },\n ...this.state,\n };\n }\n\n get env(): EnvContext {\n return this.state.env as EnvContext;\n }\n\n set env(env: EnvContext) {\n this.state.env = env;\n }\n\n get request(): RequestContext {\n return this.state.request as RequestContext;\n }\n\n set request(request: RequestContext) {\n this.state.request = request;\n }\n\n get other(): any {\n return this.state.other;\n }\n}\n\nexport const ctx = new Context();\n","import { isA } from './IsA';\nimport { Text } from './Text';\nimport { ctx } from './Context';\nimport { TypeGuard } from './TypeGuard';\n\nexport type Result = { message: string; location?: string; domain?: string };\n\nexport const toResult = (message: Text, location?: Text, domain: Text = ctx.env.domain): Result => ({\n message: message.toString(),\n location: location?.toString(),\n domain: domain?.toString(),\n});\n\nexport const isResult: TypeGuard<Result> = (r?: unknown): r is Result => isA<Result>(r, 'message');\n","import { Text } from './Text';\nimport { isResult, Result, toResult } from './Result';\nimport { Validatable } from './Validatable';\nimport { isDefined } from './Is';\nimport { toArray } from './Array';\n\nconst parse = (...rs: (Text | Result)[]): Result[] => toArray(...rs).map(r => (isResult(r) ? r : toResult(r)));\n\nexport class Results implements Validatable {\n public readonly results: Result[];\n\n constructor(...rs: (Text | Result)[]) {\n this.results = parse(...rs);\n }\n\n get length(): number {\n return this.results.length;\n }\n\n get isValid(): boolean {\n return this.results.length === 0;\n }\n\n add = (...rs: (Text | Result)[]): Results => toResults(...this.results, ...parse(...rs));\n}\n\nexport const toResults = (...r: (Text | Result)[]): Results => new Results(...r);\n\nexport const isResults = (r?: unknown): r is Results => isDefined(r) && r instanceof Results;\n","import { Get, ofGet, Predicate } from './Get';\nimport { TypeGuard } from './TypeGuard';\nimport { Func } from './Func';\nimport { isDefined, isEmpty } from './Is';\nimport { validate } from '../validation/Validate';\nimport { tryTo } from './Try';\n\nclass CaseBuilder<V> {\n is = {\n true: <T>(pred: Predicate<V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(pred, out),\n false: <T>(pred: Predicate<V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(!ofGet(pred, this.v), out),\n truthy: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(!!prop(this.v), out),\n falsy: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(!prop(this.v), out),\n defined: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(isDefined(prop(this.v)), out),\n empty: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(isEmpty(prop(this.v)), out),\n valid: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(validate(prop(this.v)).isValid, out),\n in: <T>(prop: Get<Array<V>, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(ofGet(prop, this.v).includes(this.v), out),\n type: <T, U = unknown>(guard: TypeGuard<U>, out: Func<T, U>): Case<T, V> => new Case<T, V>(this.v).type<U>(guard, out),\n not: {\n true: <T>(pred: Predicate<V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(!ofGet(pred, this.v), out),\n false: <T>(pred: Predicate<V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(pred, out),\n truthy: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(!prop(this.v), out),\n falsy: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(!!prop(this.v), out),\n defined: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(!isDefined(prop(this.v)), out),\n empty: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(!isEmpty(prop(this.v)), out),\n valid: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(!validate(prop(this.v)).isValid, out),\n in: <T>(prop: Get<Array<V>, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(!ofGet(prop, this.v).includes(this.v), out),\n type: <T, U = unknown>(guard: TypeGuard<U>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(v => !guard(v as unknown), out),\n },\n };\n if = this.is;\n\n constructor(readonly v: V) {}\n\n case<T>(pred: Predicate<V>, out: Get<T, V>): Case<T, V> {\n return new Case<T, V>(this.v).case(pred, out);\n }\n\n type<T, U = unknown>(guard: TypeGuard<U>, out: Func<T, U>): Case<T, V> {\n return new Case<T, V>(this.v).type<U>(guard, out);\n }\n\n equals<T>(value: V, out: Get<T, V>): Case<T, V> {\n return new Case<T, V>(this.v).equals(value, out);\n }\n}\n\nclass Case<T, V = unknown> {\n is = {\n true: (pred: Predicate<V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(pred, out),\n false: (pred: Predicate<V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(!ofGet(pred, this.value), out),\n truthy: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(!!prop(this.value), out),\n falsy: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(!prop(this.value), out),\n defined: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(isDefined(prop(this.value)), out),\n empty: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(isEmpty(prop(this.value)), out),\n valid: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(validate(prop(this.value)).isValid, out),\n in: (prop: Get<Array<V>, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(ofGet(prop, this.value).includes(this.value), out),\n type: <U>(guard: TypeGuard<U>, out: Func<T, U>): Case<T, V> => new Case<T, V>(this.value).type<U>(guard, out),\n not: {\n true: (pred: Predicate<V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(!ofGet(pred, this.value), out),\n false: (pred: Predicate<V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(pred, out),\n truthy: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(!prop(this.value), out),\n falsy: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(!!prop(this.value), out),\n defined: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(!isDefined(prop(this.value)), out),\n empty: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(!isEmpty(prop(this.value)), out),\n valid: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(!validate(prop(this.value)).isValid, out),\n in: (prop: Get<Array<V>, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(!ofGet(prop, this.value).includes(this.value), out),\n type: <U>(guard: TypeGuard<U>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(v => !guard(v as unknown), out),\n },\n };\n if = this.is;\n\n constructor(\n protected value: V,\n protected outcome?: T\n ) {}\n\n case(pred: Predicate<V>, out: Get<T, V>): Case<T, V> {\n return tryTo(pred, this.value)\n .is.true()\n .map(() => ofGet(out, this.value))\n .map(res => new Found(this.value, res) as Case<T, V>)\n .or(this);\n }\n\n type<U>(guard: TypeGuard<U>, out: Func<T, U>): Case<T, V> {\n return tryTo(guard, this.value)\n .is.true()\n .map(() => out(this.value as unknown as U))\n .map(res => new Found(this.value, res) as Case<T, V>)\n .or(this);\n }\n\n equals(value: V, out: Get<T, V>): Case<T, V> {\n return this.case(this.value === value, out);\n }\n\n else(alt: Get<T, V>): T {\n return ofGet<T, V>(alt, this.value);\n }\n}\n\nclass Found<T, V> extends Case<T, V> {\n is = {\n true: (_pred: Predicate<V>, _out: Get<T, V>): Case<T, V> => this,\n false: (_pred: Predicate<V>, _out: Get<T, V>): Case<T, V> => this,\n truthy: (_prop: Func<unknown, V>, _out: Get<T, V>): Case<T, V> => this,\n falsy: (_prop: Func<unknown, V>, _out: Get<T, V>): Case<T, V> => this,\n defined: (_prop: Func<unknown, V>, _out: Get<T, V>): Case<T, V> => this,\n empty: (_prop: Func<unknown, V>, _out: Get<T, V>): Case<T, V> => this,\n valid: (_prop: Func<unknown, V>, _out: Get<T, V>): Case<T, V> => this,\n in: (_prop: Get<Array<V>, V>, _out: Get<T, V>): Case<T, V> => this,\n type: <U>(_guard: TypeGuard<U>, _out: Func<T, U>): Case<T, V> => this,\n not: {\n true: (_pred: Predicate<V>, _out: Get<T, V>): Case<T, V> => this,\n false: (_pred: Predicate<V>, _out: Get<T, V>): Case<T, V> => this,\n truthy: (_prop: Func<unknown, V>, _out: Get<T, V>): Case<T, V> => this,\n falsy: (_prop: Func<unknown, V>, _out: Get<T, V>): Case<T, V> => this,\n defined: (_prop: Func<unknown, V>, _out: Get<T, V>): Case<T, V> => this,\n empty: (_prop: Func<unknown, V>, _out: Get<T, V>): Case<T, V> => this,\n valid: (_prop: Func<unknown, V>, _out: Get<T, V>): Case<T, V> => this,\n in: (_prop: Get<unknown, V>, _out: Get<T, V>): Case<T, V> => this,\n type: <U>(_guard: TypeGuard<U>, _out: Get<T, V>): Case<T, V> => this,\n },\n };\n if = this.is;\n\n constructor(\n protected value: V,\n protected outcome: T\n ) {\n super(value, outcome);\n }\n\n case(pred: Predicate<V>, out: Get<T, V>): this {\n return this;\n }\n\n type<U>(guard: TypeGuard<U>, out: Func<T, U>): Case<T, V> {\n return this;\n }\n\n equals(value: V, out: Get<T, V>): Case<T, V> {\n return this;\n }\n\n else(alt: Get<T, V>): T {\n return this.outcome;\n }\n}\n\nexport const choose = <V>(value: V) => new CaseBuilder<V>(value);\n","import { Constraint } from './Contraints';\nimport { when } from './When';\nimport type { TemplateOptions } from '../types/Template';\nimport { isResults, Results, toResults } from '../types/Results';\nimport { toName } from '../types/Constructor';\nimport { toResult } from '../types/Result';\nimport { List, toList } from '../types/List';\nimport { meta } from '../types/Meta';\nimport { isArray, isFunction } from '../types/Is';\nimport type { Text } from '../types/Text';\nimport { asString } from '../types/Text';\nimport { choose } from '../types/Case';\nimport { isEnum } from '../types/Enum';\nimport { isValue } from '../types/Value';\nimport { isValidatable } from '../types/Validatable';\nimport { text } from '../types/ToText';\n\nexport type Validator = { property: string | symbol; constraint: Constraint; text: Text; actual?: Text };\n\nexport const asResults = (subject: unknown, template: Text, options: TemplateOptions = {}): Results =>\n toResults(toResult(text(template).parse(subject, options), toName(subject)));\n\nconst validators = (subject: unknown): List<Validator> =>\n meta(subject)\n .keys<List<Validator>>('constraint')\n .reduce((list, vs) => list.add(vs), toList<Validator>());\n\nconst runValidator = (v: Validator, subject?: unknown): Results => {\n try {\n const actual = isFunction((subject as any)[v.property]) ? (subject as any)[v.property]() : (subject as any)[v.property];\n const constraint = v.constraint(actual);\n return isResults(constraint)\n ? constraint\n : !constraint\n ? asResults(subject, v.text, {\n ...v,\n actual,\n })\n : toResults();\n } catch (e) {\n return asResults(subject, asString(e));\n }\n};\n\nconst constraints = (subject?: unknown): Results =>\n validators(subject)\n .map(vs => runValidator(vs, subject))\n .reduce((rs, r) => rs.add(...r.results), toResults());\n\nexport const validate = (subject?: unknown): Results =>\n choose(subject)\n .is.not.defined(\n s => s,\n () => toResults('Subject is not defined.')\n )\n .type(isEnum, e => (e.isValid ? toResults() : asResults(e, 'This is not a valid {typeof}.')))\n .type(isValue, v => (v.isValid ? toResults() : asResults(v, 'This is not a valid {typeof}.')))\n .type(isArray, a => a.map(i => validate(i)).reduce((rs, r) => rs.add(...r.results), toResults()))\n .type(isValidatable, v => constraints(v))\n .else(toResults());\n\nexport const validateReject = <T>(subject: T): Promise<T> => when(subject).not.isValid.reject();\n\nexport const isValid = <T>(t: T): boolean => validate(t).isValid;\n","import { asString, Text } from './Text';\nimport { Enum } from './Enum';\nimport { isDefined } from './Is';\nimport { Id } from './Id';\n\nimport { text } from './ToText';\n\nexport class Exception extends Enum {\n static readonly AlreadyExists = new Exception('Subject already exists');\n static readonly DoesNotExist = new Exception('Does not exist');\n static readonly IsMissingId = new Exception('Subject is missing an id');\n static readonly IsNotImplemented = new Exception('Is not implemented');\n static readonly IsNotValid = new Exception('Is not valid');\n static readonly Unknown = new Exception('Unknown error');\n\n constructor(\n readonly message: string,\n id?: Id,\n readonly reason?: Text\n ) {\n super(message, id ?? text(message).pascal.toString());\n }\n\n static readonly CouldNotExecute = (target: Text): Exception => new Exception(`Could not execute ${target}.`, 'CouldNotExecute');\n\n static readonly CouldNotValidate = (target: Text): Exception => new Exception(`Could not validate ${target}.`, 'CouldNotValidate');\n\n static readonly EnvironmentVariableNotFound = (variable: Text): Exception =>\n new Exception(`Environment variable ${text(variable).upper} could not be found.`, 'EnvironmentVariableNotFound');\n\n because = (reason: Text): Exception => new Exception(this.message, this.id, reason);\n}\n\nexport const isException = (e?: unknown, t?: Text): e is Exception => e instanceof Exception && (isDefined(t) ? e.equals(asString(t)) : true);\nexport const isDoesNotExist = (e?: unknown): e is Exception => e instanceof Exception && Exception.DoesNotExist.equals(e);\n","import { validate } from './Validate';\nimport { Results } from '../types/Results';\nimport { Constructor } from '../types/Constructor';\nimport { Get, ofGet, Predicate } from '../types/Get';\nimport { isDefined, isEmpty, isIn } from '../types/Is';\nimport { toArray } from '../types/Array';\nimport { ErrorOrigin } from '../types/ErrorOrigin';\nimport { reject, resolve } from '../utils/Promise';\nimport { Exception } from '../types/Exception';\n\nexport class When<W> {\n constructor(\n readonly subject: W,\n readonly valid = true,\n private results?: Results\n ) {}\n\n get not(): When<W> {\n return this.clone(!this.valid);\n }\n\n get and(): When<W> {\n return this.clone(this.valid);\n }\n\n get isDefined(): When<W> {\n return this.clone(this.valid === isDefined(this.subject));\n }\n\n get isEmpty(): When<W> {\n return this.clone(this.valid === isEmpty(this.subject));\n }\n\n get isTrue(): When<W> {\n return this.clone(this.valid === !!this.subject);\n }\n\n get isValid(): When<W> {\n this.results = validate(this.subject);\n return this.clone(this.valid === this.results.isValid);\n }\n\n isInstance = <U>(c: Constructor<U>): When<W> => this.clone(this.valid === this.subject instanceof c);\n\n with = (pred: Predicate<W>): When<W> => this.clone(this.valid === ofGet(pred, this.subject));\n\n contains = (property: (w: W) => unknown): When<W> => this.clone(this.valid === isDefined(ofGet(property, this.subject)));\n\n in = (...items: W[]): When<W> => this.clone(this.valid === isIn(this.subject, toArray(...items)));\n\n is = (item: W): When<W> => this.clone(this.valid === (this.subject === item));\n\n reject = (error?: Get<ErrorOrigin, W>): Promise<NonNullable<W>> =>\n !this.valid ? resolve(this.subject as NonNullable<W>) : reject(ofGet(error, this.subject) ?? this.results ?? Exception.Unknown);\n\n recover = (f: (item: W) => W | Promise<W>): Promise<W> => resolve(!this.valid ? this.subject : f(this.subject));\n\n protected clone = (result = true): When<W> => new When(this.subject, result, this.results);\n}\n\nexport const when = <T>(subject: T): When<T> => new When<T>(subject);\n"],"mappings":"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","names":["template","s","k","template"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  choose
3
- } from "./chunk-BD6LAT2Y.mjs";
3
+ } from "./chunk-O6R5ZUAE.mjs";
4
4
  import {
5
5
  isArray,
6
6
  isObject
@@ -20,4 +20,4 @@ var isEqual = (one, another) => choose([one, another]).case(([o, a]) => o === a,
20
20
  export {
21
21
  isEqual
22
22
  };
23
- //# sourceMappingURL=chunk-2FF6NDVX.mjs.map
23
+ //# sourceMappingURL=chunk-PLCNZYFY.mjs.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-YXAXW4CU.mjs";
4
4
  import {
5
5
  validate
6
- } from "./chunk-BD6LAT2Y.mjs";
6
+ } from "./chunk-O6R5ZUAE.mjs";
7
7
  import {
8
8
  isDefined
9
9
  } from "./chunk-DEJ7A5PY.mjs";
@@ -37,4 +37,4 @@ export {
37
37
  Struct,
38
38
  isStruct
39
39
  };
40
- //# sourceMappingURL=chunk-7THDYHVE.mjs.map
40
+ //# sourceMappingURL=chunk-R6ZTSXLQ.mjs.map
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  toResponse
3
- } from "./chunk-X6CPTGGY.mjs";
3
+ } from "./chunk-NNVOP6SK.mjs";
4
4
  import {
5
5
  isRestResult
6
- } from "./chunk-7SZETQR3.mjs";
6
+ } from "./chunk-YXZUQBUH.mjs";
7
7
  import {
8
8
  HttpStatus
9
9
  } from "./chunk-STBIY75D.mjs";
10
10
  import {
11
11
  RequestOptions
12
- } from "./chunk-5GKFGWMT.mjs";
12
+ } from "./chunk-2D2OD2NG.mjs";
13
13
  import {
14
14
  cacheAge
15
- } from "./chunk-AAPNDGQS.mjs";
15
+ } from "./chunk-3OGUT4PJ.mjs";
16
16
  import {
17
17
  choose,
18
18
  ctx,
19
19
  toResult
20
- } from "./chunk-BD6LAT2Y.mjs";
20
+ } from "./chunk-O6R5ZUAE.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-CTKIKB55.mjs.map
52
+ //# sourceMappingURL=chunk-U45AUKTJ.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  text
3
- } from "./chunk-BD6LAT2Y.mjs";
3
+ } from "./chunk-O6R5ZUAE.mjs";
4
4
  import {
5
5
  Enum
6
6
  } from "./chunk-EVG23WHU.mjs";
@@ -36,4 +36,4 @@ var Scope = class _Scope extends Enum {
36
36
  export {
37
37
  Scope
38
38
  };
39
- //# sourceMappingURL=chunk-US4665GR.mjs.map
39
+ //# sourceMappingURL=chunk-UFTAOL5N.mjs.map
@@ -6,7 +6,7 @@ import {
6
6
  text,
7
7
  tryTo,
8
8
  validate
9
- } from "./chunk-BD6LAT2Y.mjs";
9
+ } from "./chunk-O6R5ZUAE.mjs";
10
10
  import {
11
11
  meta
12
12
  } from "./chunk-VTXFZ2S3.mjs";
@@ -73,4 +73,4 @@ export {
73
73
  maxLength,
74
74
  rule
75
75
  };
76
- //# sourceMappingURL=chunk-PVIIPIWP.mjs.map
76
+ //# sourceMappingURL=chunk-UMHGIJFE.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Exception
3
- } from "./chunk-BD6LAT2Y.mjs";
3
+ } from "./chunk-O6R5ZUAE.mjs";
4
4
  import {
5
5
  reject
6
6
  } from "./chunk-LTTIVS2R.mjs";
@@ -48,4 +48,4 @@ var Repository = class {
48
48
  export {
49
49
  Repository
50
50
  };
51
- //# sourceMappingURL=chunk-EQTQ6EZI.mjs.map
51
+ //# sourceMappingURL=chunk-USCGSR64.mjs.map
@@ -10,7 +10,7 @@ import {
10
10
  isResult,
11
11
  isResults,
12
12
  toResult
13
- } from "./chunk-BD6LAT2Y.mjs";
13
+ } from "./chunk-O6R5ZUAE.mjs";
14
14
  import {
15
15
  toList
16
16
  } from "./chunk-YTNVFND2.mjs";
@@ -48,4 +48,4 @@ export {
48
48
  rest,
49
49
  isRestResult
50
50
  };
51
- //# sourceMappingURL=chunk-7SZETQR3.mjs.map
51
+ //# sourceMappingURL=chunk-YXZUQBUH.mjs.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  Gateway
3
- } from "../chunk-SU7MM4FN.mjs";
3
+ } from "../chunk-G5JG5WGP.mjs";
4
4
  import {
5
5
  toPageList
6
- } from "../chunk-2IETG4DU.mjs";
6
+ } from "../chunk-CACS6F4E.mjs";
7
7
  import {
8
8
  Exception,
9
9
  when
10
- } from "../chunk-BD6LAT2Y.mjs";
10
+ } from "../chunk-O6R5ZUAE.mjs";
11
11
  import "../chunk-OFGI5FLG.mjs";
12
12
  import "../chunk-LTTIVS2R.mjs";
13
13
  import "../chunk-4262V2GR.mjs";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  Audit
3
- } from "../chunk-R6PJ5CPZ.mjs";
4
- import "../chunk-PVIIPIWP.mjs";
5
- import "../chunk-YGR2R77U.mjs";
3
+ } from "../chunk-NGDWKHLO.mjs";
4
+ import "../chunk-UMHGIJFE.mjs";
5
+ import "../chunk-BIOLEZAH.mjs";
6
6
  import "../chunk-4BMUPWAJ.mjs";
7
7
  import "../chunk-ADJAEGCT.mjs";
8
- import "../chunk-7THDYHVE.mjs";
8
+ import "../chunk-R6ZTSXLQ.mjs";
9
9
  import "../chunk-YXAXW4CU.mjs";
10
- import "../chunk-BD6LAT2Y.mjs";
10
+ import "../chunk-O6R5ZUAE.mjs";
11
11
  import "../chunk-OFGI5FLG.mjs";
12
12
  import "../chunk-LTTIVS2R.mjs";
13
13
  import "../chunk-4262V2GR.mjs";