@thisisagile/easy 17.15.0 → 17.15.2

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 (52) hide show
  1. package/dist/{chunk-YGLRUAUP.mjs → chunk-6I4QZH2B.mjs} +2 -2
  2. package/dist/{chunk-L4A73A2T.mjs → chunk-6RMQPTKX.mjs} +2 -2
  3. package/dist/{chunk-FFK2E2QL.mjs → chunk-ECXNGUIP.mjs} +2 -2
  4. package/dist/{chunk-S43CTNIK.mjs → chunk-GWZRZHFR.mjs} +2 -2
  5. package/dist/{chunk-RO6COWZH.mjs → chunk-ODV3IWXD.mjs} +2 -2
  6. package/dist/{chunk-TZYSQJ2N.mjs → chunk-UZHMXDAO.mjs} +2 -2
  7. package/dist/{chunk-6NJ65PSU.mjs → chunk-VCOKOQFW.mjs} +2 -1
  8. package/dist/chunk-VCOKOQFW.mjs.map +1 -0
  9. package/dist/{chunk-OCJ4IL63.mjs → chunk-W5WWSCMG.mjs} +3 -3
  10. package/dist/{chunk-6UFIQJVC.mjs → chunk-XH6PFRYM.mjs} +8 -2
  11. package/dist/chunk-XH6PFRYM.mjs.map +1 -0
  12. package/dist/{chunk-ZHAVV2E5.mjs → chunk-Z56QALMP.mjs} +2 -2
  13. package/dist/{chunk-DV7QIJRF.mjs → chunk-ZOT3U45L.mjs} +2 -2
  14. package/dist/data/Condition.mjs +2 -2
  15. package/dist/data/Field.mjs +2 -2
  16. package/dist/domain/Audit.mjs +3 -3
  17. package/dist/domain/Child.mjs +2 -2
  18. package/dist/domain/Entity.mjs +3 -3
  19. package/dist/domain/Repo.mjs +1 -1
  20. package/dist/domain/Struct.mjs +2 -2
  21. package/dist/http/CacheControl.mjs +5 -6
  22. package/dist/http/CacheControl.mjs.map +1 -1
  23. package/dist/index.js +5 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/services/Api.mjs +3 -3
  26. package/dist/services/ApiGateway.mjs +4 -4
  27. package/dist/services/AxiosProvider.mjs +2 -2
  28. package/dist/services/MappedRouteGateway.mjs +7 -7
  29. package/dist/services/RouteGateway.mjs +5 -5
  30. package/dist/services/ViewRouteGateway.mjs +7 -7
  31. package/dist/sql/Table.mjs +2 -2
  32. package/dist/types/CacheAge.d.ts +1 -0
  33. package/dist/types/CacheAge.mjs +5 -3
  34. package/dist/types/Json.d.ts +1 -0
  35. package/dist/types/Json.mjs +1 -1
  36. package/dist/utils/Mapper.mjs +2 -2
  37. package/dist/utils/View.mjs +2 -2
  38. package/package.json +1 -1
  39. package/src/http/CacheControl.ts +2 -3
  40. package/src/types/CacheAge.ts +3 -0
  41. package/src/types/Json.ts +1 -0
  42. package/dist/chunk-6NJ65PSU.mjs.map +0 -1
  43. package/dist/chunk-6UFIQJVC.mjs.map +0 -1
  44. /package/dist/{chunk-YGLRUAUP.mjs.map → chunk-6I4QZH2B.mjs.map} +0 -0
  45. /package/dist/{chunk-L4A73A2T.mjs.map → chunk-6RMQPTKX.mjs.map} +0 -0
  46. /package/dist/{chunk-FFK2E2QL.mjs.map → chunk-ECXNGUIP.mjs.map} +0 -0
  47. /package/dist/{chunk-S43CTNIK.mjs.map → chunk-GWZRZHFR.mjs.map} +0 -0
  48. /package/dist/{chunk-RO6COWZH.mjs.map → chunk-ODV3IWXD.mjs.map} +0 -0
  49. /package/dist/{chunk-TZYSQJ2N.mjs.map → chunk-UZHMXDAO.mjs.map} +0 -0
  50. /package/dist/{chunk-OCJ4IL63.mjs.map → chunk-W5WWSCMG.mjs.map} +0 -0
  51. /package/dist/{chunk-ZHAVV2E5.mjs.map → chunk-Z56QALMP.mjs.map} +0 -0
  52. /package/dist/{chunk-DV7QIJRF.mjs.map → chunk-ZOT3U45L.mjs.map} +0 -0
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  Api,
3
3
  api
4
- } from "../chunk-FFK2E2QL.mjs";
5
- import "../chunk-S43CTNIK.mjs";
4
+ } from "../chunk-ECXNGUIP.mjs";
5
+ import "../chunk-GWZRZHFR.mjs";
6
6
  import "../chunk-IMREIDHQ.mjs";
7
7
  import "../chunk-64S6C743.mjs";
8
8
  import "../chunk-UGUAZFM4.mjs";
@@ -11,7 +11,7 @@ import "../chunk-O75J6WWI.mjs";
11
11
  import "../chunk-SW2OCUH3.mjs";
12
12
  import "../chunk-UYDZZAEK.mjs";
13
13
  import "../chunk-LXQQ5N6S.mjs";
14
- import "../chunk-6UFIQJVC.mjs";
14
+ import "../chunk-XH6PFRYM.mjs";
15
15
  import "../chunk-B3AQ7EZQ.mjs";
16
16
  import "../chunk-RDLH6MXX.mjs";
17
17
  import "../chunk-2KZ5UP6A.mjs";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  ApiGateway
3
- } from "../chunk-ZHAVV2E5.mjs";
4
- import "../chunk-FFK2E2QL.mjs";
5
- import "../chunk-S43CTNIK.mjs";
3
+ } from "../chunk-Z56QALMP.mjs";
4
+ import "../chunk-ECXNGUIP.mjs";
5
+ import "../chunk-GWZRZHFR.mjs";
6
6
  import "../chunk-IMREIDHQ.mjs";
7
7
  import "../chunk-64S6C743.mjs";
8
8
  import "../chunk-UGUAZFM4.mjs";
@@ -11,7 +11,7 @@ import "../chunk-O75J6WWI.mjs";
11
11
  import "../chunk-SW2OCUH3.mjs";
12
12
  import "../chunk-UYDZZAEK.mjs";
13
13
  import "../chunk-LXQQ5N6S.mjs";
14
- import "../chunk-6UFIQJVC.mjs";
14
+ import "../chunk-XH6PFRYM.mjs";
15
15
  import "../chunk-B3AQ7EZQ.mjs";
16
16
  import "../chunk-RDLH6MXX.mjs";
17
17
  import "../chunk-CSKOVGAP.mjs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  AxiosProvider
3
- } from "../chunk-S43CTNIK.mjs";
3
+ } from "../chunk-GWZRZHFR.mjs";
4
4
  import "../chunk-IMREIDHQ.mjs";
5
5
  import "../chunk-64S6C743.mjs";
6
6
  import "../chunk-UGUAZFM4.mjs";
@@ -8,7 +8,7 @@ import "../chunk-O75J6WWI.mjs";
8
8
  import "../chunk-SW2OCUH3.mjs";
9
9
  import "../chunk-UYDZZAEK.mjs";
10
10
  import "../chunk-LXQQ5N6S.mjs";
11
- import "../chunk-6UFIQJVC.mjs";
11
+ import "../chunk-XH6PFRYM.mjs";
12
12
  import "../chunk-B3AQ7EZQ.mjs";
13
13
  import "../chunk-RDLH6MXX.mjs";
14
14
  import "../chunk-2KZ5UP6A.mjs";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  Mapper
3
- } from "../chunk-YGLRUAUP.mjs";
3
+ } from "../chunk-6I4QZH2B.mjs";
4
4
  import "../chunk-WJZFE5NE.mjs";
5
5
  import {
6
6
  RouteGateway
7
- } from "../chunk-OCJ4IL63.mjs";
8
- import "../chunk-ZHAVV2E5.mjs";
7
+ } from "../chunk-W5WWSCMG.mjs";
8
+ import "../chunk-Z56QALMP.mjs";
9
9
  import {
10
10
  Api
11
- } from "../chunk-FFK2E2QL.mjs";
12
- import "../chunk-S43CTNIK.mjs";
11
+ } from "../chunk-ECXNGUIP.mjs";
12
+ import "../chunk-GWZRZHFR.mjs";
13
13
  import "../chunk-IMREIDHQ.mjs";
14
14
  import "../chunk-64S6C743.mjs";
15
15
  import "../chunk-UGUAZFM4.mjs";
@@ -18,14 +18,14 @@ import "../chunk-O75J6WWI.mjs";
18
18
  import "../chunk-SW2OCUH3.mjs";
19
19
  import "../chunk-UYDZZAEK.mjs";
20
20
  import "../chunk-LXQQ5N6S.mjs";
21
- import "../chunk-6UFIQJVC.mjs";
21
+ import "../chunk-XH6PFRYM.mjs";
22
22
  import "../chunk-B3AQ7EZQ.mjs";
23
23
  import "../chunk-RDLH6MXX.mjs";
24
24
  import "../chunk-GCY5A63A.mjs";
25
25
  import "../chunk-MDXL65W4.mjs";
26
26
  import "../chunk-CSKOVGAP.mjs";
27
27
  import "../chunk-CRSP7OQT.mjs";
28
- import "../chunk-6NJ65PSU.mjs";
28
+ import "../chunk-VCOKOQFW.mjs";
29
29
  import "../chunk-2KZ5UP6A.mjs";
30
30
  import "../chunk-OFGI5FLG.mjs";
31
31
  import "../chunk-NCEWAKOZ.mjs";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  RouteGateway
3
- } from "../chunk-OCJ4IL63.mjs";
4
- import "../chunk-ZHAVV2E5.mjs";
5
- import "../chunk-FFK2E2QL.mjs";
6
- import "../chunk-S43CTNIK.mjs";
3
+ } from "../chunk-W5WWSCMG.mjs";
4
+ import "../chunk-Z56QALMP.mjs";
5
+ import "../chunk-ECXNGUIP.mjs";
6
+ import "../chunk-GWZRZHFR.mjs";
7
7
  import "../chunk-IMREIDHQ.mjs";
8
8
  import "../chunk-64S6C743.mjs";
9
9
  import "../chunk-UGUAZFM4.mjs";
@@ -12,7 +12,7 @@ import "../chunk-O75J6WWI.mjs";
12
12
  import "../chunk-SW2OCUH3.mjs";
13
13
  import "../chunk-UYDZZAEK.mjs";
14
14
  import "../chunk-LXQQ5N6S.mjs";
15
- import "../chunk-6UFIQJVC.mjs";
15
+ import "../chunk-XH6PFRYM.mjs";
16
16
  import "../chunk-B3AQ7EZQ.mjs";
17
17
  import "../chunk-RDLH6MXX.mjs";
18
18
  import "../chunk-CSKOVGAP.mjs";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  view
3
- } from "../chunk-L4A73A2T.mjs";
3
+ } from "../chunk-6RMQPTKX.mjs";
4
4
  import "../chunk-SSROJBD5.mjs";
5
5
  import "../chunk-WD4PRE6L.mjs";
6
6
  import {
7
7
  RouteGateway
8
- } from "../chunk-OCJ4IL63.mjs";
9
- import "../chunk-ZHAVV2E5.mjs";
8
+ } from "../chunk-W5WWSCMG.mjs";
9
+ import "../chunk-Z56QALMP.mjs";
10
10
  import {
11
11
  Api
12
- } from "../chunk-FFK2E2QL.mjs";
13
- import "../chunk-S43CTNIK.mjs";
12
+ } from "../chunk-ECXNGUIP.mjs";
13
+ import "../chunk-GWZRZHFR.mjs";
14
14
  import "../chunk-IMREIDHQ.mjs";
15
15
  import "../chunk-64S6C743.mjs";
16
16
  import "../chunk-UGUAZFM4.mjs";
@@ -19,12 +19,12 @@ import "../chunk-O75J6WWI.mjs";
19
19
  import "../chunk-SW2OCUH3.mjs";
20
20
  import "../chunk-UYDZZAEK.mjs";
21
21
  import "../chunk-LXQQ5N6S.mjs";
22
- import "../chunk-6UFIQJVC.mjs";
22
+ import "../chunk-XH6PFRYM.mjs";
23
23
  import "../chunk-B3AQ7EZQ.mjs";
24
24
  import "../chunk-RDLH6MXX.mjs";
25
25
  import "../chunk-CSKOVGAP.mjs";
26
26
  import "../chunk-CRSP7OQT.mjs";
27
- import "../chunk-6NJ65PSU.mjs";
27
+ import "../chunk-VCOKOQFW.mjs";
28
28
  import "../chunk-2KZ5UP6A.mjs";
29
29
  import "../chunk-OFGI5FLG.mjs";
30
30
  import "../chunk-NCEWAKOZ.mjs";
@@ -23,7 +23,7 @@ import "../chunk-55SDDPJZ.mjs";
23
23
  import {
24
24
  Mapper,
25
25
  mappings
26
- } from "../chunk-YGLRUAUP.mjs";
26
+ } from "../chunk-6I4QZH2B.mjs";
27
27
  import "../chunk-WJZFE5NE.mjs";
28
28
  import "../chunk-OKPGJD64.mjs";
29
29
  import {
@@ -34,7 +34,7 @@ import {
34
34
  } from "../chunk-7KQ4QLP2.mjs";
35
35
  import "../chunk-GCY5A63A.mjs";
36
36
  import "../chunk-MDXL65W4.mjs";
37
- import "../chunk-6NJ65PSU.mjs";
37
+ import "../chunk-VCOKOQFW.mjs";
38
38
  import "../chunk-2KZ5UP6A.mjs";
39
39
  import "../chunk-OFGI5FLG.mjs";
40
40
  import "../chunk-NCEWAKOZ.mjs";
@@ -3,3 +3,4 @@ export declare const cacheAge: {
3
3
  toMilliseconds: (ca: CacheAge) => number;
4
4
  toSeconds: (ca: CacheAge) => number;
5
5
  };
6
+ export declare const isCacheAge: (ca?: unknown) => ca is CacheAge;
@@ -1,6 +1,7 @@
1
1
  import {
2
- cacheAge
3
- } from "../chunk-6UFIQJVC.mjs";
2
+ cacheAge,
3
+ isCacheAge
4
+ } from "../chunk-XH6PFRYM.mjs";
4
5
  import "../chunk-B3AQ7EZQ.mjs";
5
6
  import "../chunk-2KZ5UP6A.mjs";
6
7
  import "../chunk-OFGI5FLG.mjs";
@@ -26,6 +27,7 @@ import "../chunk-PIRWVOO2.mjs";
26
27
  import "../chunk-DEJ7A5PY.mjs";
27
28
  import "../chunk-4N72FQFX.mjs";
28
29
  export {
29
- cacheAge
30
+ cacheAge,
31
+ isCacheAge
30
32
  };
31
33
  //# sourceMappingURL=CacheAge.mjs.map
@@ -13,6 +13,7 @@ export declare const json: {
13
13
  delete: <T extends Json = Json>(subject: T, key: string) => T;
14
14
  set: <T extends Json = Json>(subject: T, key?: string, value?: unknown) => T;
15
15
  omit: <T extends Json = Json>(subject: T, ...keys: string[]) => T;
16
+ pick: <T extends Json = Json>(subject: T, ...keys: string[]) => T;
16
17
  defaults: <T extends Json = Json>(options?: Partial<T>, defaults?: Partial<T>) => T;
17
18
  isSubset: (subject: Json, subset: Json) => boolean;
18
19
  };
@@ -4,7 +4,7 @@ import {
4
4
  isJson,
5
5
  json,
6
6
  toJson
7
- } from "../chunk-6NJ65PSU.mjs";
7
+ } from "../chunk-VCOKOQFW.mjs";
8
8
  import "../chunk-H2762RTS.mjs";
9
9
  import "../chunk-A7C3XND3.mjs";
10
10
  import "../chunk-JSON7A4X.mjs";
@@ -2,11 +2,11 @@ import {
2
2
  Mapper,
3
3
  isMapping,
4
4
  mappings
5
- } from "../chunk-YGLRUAUP.mjs";
5
+ } from "../chunk-6I4QZH2B.mjs";
6
6
  import "../chunk-WJZFE5NE.mjs";
7
7
  import "../chunk-GCY5A63A.mjs";
8
8
  import "../chunk-MDXL65W4.mjs";
9
- import "../chunk-6NJ65PSU.mjs";
9
+ import "../chunk-VCOKOQFW.mjs";
10
10
  import "../chunk-WTFW6DLP.mjs";
11
11
  import "../chunk-H2762RTS.mjs";
12
12
  import "../chunk-A7C3XND3.mjs";
@@ -4,11 +4,11 @@ import {
4
4
  toViewer,
5
5
  view,
6
6
  views
7
- } from "../chunk-L4A73A2T.mjs";
7
+ } from "../chunk-6RMQPTKX.mjs";
8
8
  import "../chunk-SSROJBD5.mjs";
9
9
  import "../chunk-WD4PRE6L.mjs";
10
10
  import "../chunk-CRSP7OQT.mjs";
11
- import "../chunk-6NJ65PSU.mjs";
11
+ import "../chunk-VCOKOQFW.mjs";
12
12
  import "../chunk-2KZ5UP6A.mjs";
13
13
  import "../chunk-OFGI5FLG.mjs";
14
14
  import "../chunk-NCEWAKOZ.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "17.15.0",
3
+ "version": "17.15.2",
4
4
  "description": "Straightforward library for building domain-driven microservice architectures",
5
5
  "author": "Sander Hoogendoorn",
6
6
  "license": "MIT",
@@ -1,8 +1,7 @@
1
- import { cacheAge, CacheAge } from '../types/CacheAge';
1
+ import { cacheAge, CacheAge, isCacheAge } from '../types/CacheAge';
2
2
  import { on } from '../types/Constructor';
3
3
  import { entries } from '../types/Object';
4
4
  import { ifDefined } from '../utils/If';
5
- import { isNumber } from '../types/Is';
6
5
 
7
6
  export class CacheControl {
8
7
  name = 'Cache-Control';
@@ -46,7 +45,7 @@ export class CacheControl {
46
45
 
47
46
  toString(): string {
48
47
  return entries(this.directives)
49
- .mapDefined(([k, v]) => ifDefined(v, isNumber(v) ? `${k}=${cacheAge.toSeconds(v)}` : k))
48
+ .mapDefined(([k, v]) => ifDefined(v, isCacheAge(v) ? `${k}=${cacheAge.toSeconds(v)}` : k))
50
49
  .join(',');
51
50
  }
52
51
  }
@@ -1,6 +1,7 @@
1
1
  import { asNumber } from './Number';
2
2
  import { choose } from './Case';
3
3
  import { asString } from './Text';
4
+ import { isNumber, isString } from './Is';
4
5
 
5
6
  export type CacheAge = `${number}${'ms' | 's' | 'm' | 'h' | 'd'}` | number;
6
7
 
@@ -55,3 +56,5 @@ export const cacheAge = {
55
56
  )
56
57
  .else(ca as number),
57
58
  };
59
+
60
+ export const isCacheAge = (ca?: unknown): ca is CacheAge => isString(ca) || isNumber(ca);
package/src/types/Json.ts CHANGED
@@ -21,6 +21,7 @@ export const json = {
21
21
  set: <T extends Json = Json>(subject: T, key = '', value?: unknown): T =>
22
22
  isEmpty(key) ? subject : value !== undefined ? { ...(subject as any), ...{ [key]: value as JsonValue } } : json.delete(subject, key),
23
23
  omit: <T extends Json = Json>(subject: T, ...keys: string[]): T => keys.reduce((js, k) => json.delete(js, k), json.parse<T>(subject)),
24
+ pick: <T extends Json = Json>(subject: T, ...keys: string[]): T => keys.reduce((js, k) => json.set(js, k, (subject as any)[k]), {} as T),
24
25
  defaults: <T extends Json = Json>(options: Partial<T> = {}, defaults: Partial<T> = {}): T => json.merge(defaults, options) as T,
25
26
  isSubset: (subject: Json, subset: Json): boolean => !entries(subset).some(([k, v]) => subject[k] !== v),
26
27
  };
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/types/Json.ts"],"sourcesContent":["import { isA } from './IsA';\nimport { isEmpty, isObject } from './Is';\nimport { Get, ofGet } from './Get';\nimport { ifDefined } from '../utils/If';\nimport { TypeGuard } from './TypeGuard';\nimport { entries } from './Object';\n\nexport type JsonValue = string | number | boolean | null | Json | JsonValue[];\nexport type Json = { [key: string]: JsonValue };\n\nexport const isJson: TypeGuard<{ toJSON: () => Json }> = (subject?: unknown): subject is { toJSON: () => Json } =>\n isA<{ toJSON: () => Json }>(subject, 'toJSON');\n\nexport const json = {\n parse: <T extends Json = Json>(subject: unknown): T => JSON.parse(JSON.stringify(subject ?? {})),\n merge: (...subjects: unknown[]): Json => json.parse(subjects.map(s => asJson(s, s => json.parse(s))).reduce((js, j) => ({ ...js, ...j }), {})),\n delete: <T extends Json = Json>(subject: T, key: string): T => {\n ifDefined(subject, () => delete (subject as any)[key]);\n return subject;\n },\n set: <T extends Json = Json>(subject: T, key = '', value?: unknown): T =>\n isEmpty(key) ? subject : value !== undefined ? { ...(subject as any), ...{ [key]: value as JsonValue } } : json.delete(subject, key),\n omit: <T extends Json = Json>(subject: T, ...keys: string[]): T => keys.reduce((js, k) => json.delete(js, k), json.parse<T>(subject)),\n defaults: <T extends Json = Json>(options: Partial<T> = {}, defaults: Partial<T> = {}): T => json.merge(defaults, options) as T,\n isSubset: (subject: Json, subset: Json): boolean => !entries(subset).some(([k, v]) => subject[k] !== v),\n};\n\nexport const toJson = json.merge;\n\nexport const asJson = (j?: unknown, alt: Get<Json> = {}): Json => (isJson(j) ? j.toJSON() : isObject(j) ? (j as Json) : ofGet(alt, j));\n\nclass Any<T extends Json> {\n constructor(readonly value: T) {}\n\n merge = (...subjects: T[]): Any<T> => any<T>(json.merge(this.value, ...subjects) as T);\n delete = (key: keyof T): Any<T> => any<T>(json.delete<T>(this.value, key as string));\n omit = (...keys: (keyof T)[]): Any<T> => any<T>(json.omit<T>(this.value, ...(keys as string[])));\n set = (key: keyof T, value?: unknown): Any<T> => any<T>(json.set(this.value, key as string, value));\n\n toJSON(): Json {\n return this.value;\n }\n}\n\nexport const any = <T extends Json = Json>(value: T): Any<T> => new Any<T>(value);\n"],"mappings":";;;;;;;;;;;;;;;;;;AAUO,IAAM,SAA4C,CAAC,YACxD,IAA4B,SAAS,QAAQ;AAExC,IAAM,OAAO;AAAA,EAClB,OAAO,CAAwB,YAAwB,KAAK,MAAM,KAAK,UAAU,WAAW,CAAC,CAAC,CAAC;AAAA,EAC/F,OAAO,IAAI,aAA8B,KAAK,MAAM,SAAS,IAAI,OAAK,OAAO,GAAG,CAAAA,OAAK,KAAK,MAAMA,EAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,GAAG,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAAA,EAC7I,QAAQ,CAAwB,SAAY,QAAmB;AAC7D,cAAU,SAAS,MAAM,OAAQ,QAAgB,GAAG,CAAC;AACrD,WAAO;AAAA,EACT;AAAA,EACA,KAAK,CAAwB,SAAY,MAAM,IAAI,UACjD,QAAQ,GAAG,IAAI,UAAU,UAAU,SAAY,EAAE,GAAI,SAAiB,GAAG,EAAE,CAAC,GAAG,GAAG,MAAmB,EAAE,IAAI,KAAK,OAAO,SAAS,GAAG;AAAA,EACrI,MAAM,CAAwB,YAAe,SAAsB,KAAK,OAAO,CAAC,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,GAAG,KAAK,MAAS,OAAO,CAAC;AAAA,EACpI,UAAU,CAAwB,UAAsB,CAAC,GAAG,WAAuB,CAAC,MAAS,KAAK,MAAM,UAAU,OAAO;AAAA,EACzH,UAAU,CAAC,SAAe,WAA0B,CAAC,QAAQ,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC;AACxG;AAEO,IAAM,SAAS,KAAK;AAEpB,IAAM,SAAS,CAAC,GAAa,MAAiB,CAAC,MAAa,OAAO,CAAC,IAAI,EAAE,OAAO,IAAI,SAAS,CAAC,IAAK,IAAa,MAAM,KAAK,CAAC;AAEpI,IAAM,MAAN,MAA0B;AAAA,EACxB,YAAqB,OAAU;AAAV;AAAA,EAAW;AAAA,EAEhC,QAAQ,IAAI,aAA0B,IAAO,KAAK,MAAM,KAAK,OAAO,GAAG,QAAQ,CAAM;AAAA,EACrF,SAAS,CAAC,QAAyB,IAAO,KAAK,OAAU,KAAK,OAAO,GAAa,CAAC;AAAA,EACnF,OAAO,IAAI,SAA8B,IAAO,KAAK,KAAQ,KAAK,OAAO,GAAI,IAAiB,CAAC;AAAA,EAC/F,MAAM,CAAC,KAAc,UAA4B,IAAO,KAAK,IAAI,KAAK,OAAO,KAAe,KAAK,CAAC;AAAA,EAElG,SAAe;AACb,WAAO,KAAK;AAAA,EACd;AACF;AAEO,IAAM,MAAM,CAAwB,UAAqB,IAAI,IAAO,KAAK;","names":["s"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/types/CacheAge.ts"],"sourcesContent":["import { asNumber } from './Number';\nimport { choose } from './Case';\nimport { asString } from './Text';\n\nexport type CacheAge = `${number}${'ms' | 's' | 'm' | 'h' | 'd'}` | number;\n\nconst ageNumber = (s: string): number => asNumber(s.replace(/[a-z]/g, ''));\n\nexport const cacheAge = {\n toMilliseconds: (ca: CacheAge): number =>\n choose(asString(ca))\n .case(\n c => c.endsWith('ms'),\n c => ageNumber(c)\n )\n .case(\n c => c.endsWith('s'),\n c => ageNumber(c) * 1000\n )\n .case(\n c => c.endsWith('m'),\n c => ageNumber(c) * 60 * 1000\n )\n .case(\n c => c.endsWith('h'),\n c => ageNumber(c) * 3600 * 1000\n )\n .case(\n c => c.endsWith('d'),\n c => ageNumber(c) * 24 * 3600 * 1000\n )\n .else(ca as number),\n\n toSeconds: (ca: CacheAge): number =>\n choose(asString(ca))\n .case(\n c => c.endsWith('ms'),\n c => ageNumber(c) / 1000\n )\n .case(\n c => c.endsWith('s'),\n c => ageNumber(c)\n )\n .case(\n c => c.endsWith('m'),\n c => ageNumber(c) * 60\n )\n .case(\n c => c.endsWith('h'),\n c => ageNumber(c) * 3600\n )\n .case(\n c => c.endsWith('d'),\n c => ageNumber(c) * 24 * 3600\n )\n .else(ca as number),\n};\n"],"mappings":";;;;;;;;;;;AAMA,IAAM,YAAY,CAAC,MAAsB,SAAS,EAAE,QAAQ,UAAU,EAAE,CAAC;AAElE,IAAM,WAAW;AAAA,EACtB,gBAAgB,CAAC,OACf,OAAO,SAAS,EAAE,CAAC,EAChB;AAAA,IACC,OAAK,EAAE,SAAS,IAAI;AAAA,IACpB,OAAK,UAAU,CAAC;AAAA,EAClB,EACC;AAAA,IACC,OAAK,EAAE,SAAS,GAAG;AAAA,IACnB,OAAK,UAAU,CAAC,IAAI;AAAA,EACtB,EACC;AAAA,IACC,OAAK,EAAE,SAAS,GAAG;AAAA,IACnB,OAAK,UAAU,CAAC,IAAI,KAAK;AAAA,EAC3B,EACC;AAAA,IACC,OAAK,EAAE,SAAS,GAAG;AAAA,IACnB,OAAK,UAAU,CAAC,IAAI,OAAO;AAAA,EAC7B,EACC;AAAA,IACC,OAAK,EAAE,SAAS,GAAG;AAAA,IACnB,OAAK,UAAU,CAAC,IAAI,KAAK,OAAO;AAAA,EAClC,EACC,KAAK,EAAY;AAAA,EAEtB,WAAW,CAAC,OACV,OAAO,SAAS,EAAE,CAAC,EAChB;AAAA,IACC,OAAK,EAAE,SAAS,IAAI;AAAA,IACpB,OAAK,UAAU,CAAC,IAAI;AAAA,EACtB,EACC;AAAA,IACC,OAAK,EAAE,SAAS,GAAG;AAAA,IACnB,OAAK,UAAU,CAAC;AAAA,EAClB,EACC;AAAA,IACC,OAAK,EAAE,SAAS,GAAG;AAAA,IACnB,OAAK,UAAU,CAAC,IAAI;AAAA,EACtB,EACC;AAAA,IACC,OAAK,EAAE,SAAS,GAAG;AAAA,IACnB,OAAK,UAAU,CAAC,IAAI;AAAA,EACtB,EACC;AAAA,IACC,OAAK,EAAE,SAAS,GAAG;AAAA,IACnB,OAAK,UAAU,CAAC,IAAI,KAAK;AAAA,EAC3B,EACC,KAAK,EAAY;AACxB;","names":[]}