@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
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-GCY5A63A.mjs";
7
7
  import {
8
8
  json
9
- } from "./chunk-6NJ65PSU.mjs";
9
+ } from "./chunk-VCOKOQFW.mjs";
10
10
  import {
11
11
  meta
12
12
  } from "./chunk-WTFW6DLP.mjs";
@@ -133,4 +133,4 @@ export {
133
133
  Mapper,
134
134
  mappings
135
135
  };
136
- //# sourceMappingURL=chunk-YGLRUAUP.mjs.map
136
+ //# sourceMappingURL=chunk-6I4QZH2B.mjs.map
@@ -11,7 +11,7 @@ import {
11
11
  import {
12
12
  asJson,
13
13
  json
14
- } from "./chunk-6NJ65PSU.mjs";
14
+ } from "./chunk-VCOKOQFW.mjs";
15
15
  import {
16
16
  choose
17
17
  } from "./chunk-2KZ5UP6A.mjs";
@@ -88,4 +88,4 @@ export {
88
88
  view,
89
89
  views
90
90
  };
91
- //# sourceMappingURL=chunk-L4A73A2T.mjs.map
91
+ //# sourceMappingURL=chunk-6RMQPTKX.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  AxiosProvider
3
- } from "./chunk-S43CTNIK.mjs";
3
+ } from "./chunk-GWZRZHFR.mjs";
4
4
  import {
5
5
  HttpVerb
6
6
  } from "./chunk-YMTOGXYB.mjs";
@@ -76,4 +76,4 @@ export {
76
76
  Api,
77
77
  api
78
78
  };
79
- //# sourceMappingURL=chunk-FFK2E2QL.mjs.map
79
+ //# sourceMappingURL=chunk-ECXNGUIP.mjs.map
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-O75J6WWI.mjs";
13
13
  import {
14
14
  cacheAge
15
- } from "./chunk-6UFIQJVC.mjs";
15
+ } from "./chunk-XH6PFRYM.mjs";
16
16
  import {
17
17
  choose
18
18
  } from "./chunk-2KZ5UP6A.mjs";
@@ -53,4 +53,4 @@ var AxiosProvider = class {
53
53
  export {
54
54
  AxiosProvider
55
55
  };
56
- //# sourceMappingURL=chunk-S43CTNIK.mjs.map
56
+ //# sourceMappingURL=chunk-GWZRZHFR.mjs.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-MDXL65W4.mjs";
4
4
  import {
5
5
  json
6
- } from "./chunk-6NJ65PSU.mjs";
6
+ } from "./chunk-VCOKOQFW.mjs";
7
7
  import {
8
8
  isDefined
9
9
  } from "./chunk-DEJ7A5PY.mjs";
@@ -50,4 +50,4 @@ export {
50
50
  toCondition,
51
51
  isSortCondition
52
52
  };
53
- //# sourceMappingURL=chunk-RO6COWZH.mjs.map
53
+ //# sourceMappingURL=chunk-ODV3IWXD.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  json
3
- } from "./chunk-6NJ65PSU.mjs";
3
+ } from "./chunk-VCOKOQFW.mjs";
4
4
  import {
5
5
  validate
6
6
  } from "./chunk-2KZ5UP6A.mjs";
@@ -37,4 +37,4 @@ export {
37
37
  Struct,
38
38
  isStruct
39
39
  };
40
- //# sourceMappingURL=chunk-TZYSQJ2N.mjs.map
40
+ //# sourceMappingURL=chunk-UZHMXDAO.mjs.map
@@ -26,6 +26,7 @@ var json = {
26
26
  },
27
27
  set: (subject, key = "", value) => isEmpty(key) ? subject : value !== void 0 ? { ...subject, ...{ [key]: value } } : json.delete(subject, key),
28
28
  omit: (subject, ...keys) => keys.reduce((js, k) => json.delete(js, k), json.parse(subject)),
29
+ pick: (subject, ...keys) => keys.reduce((js, k) => json.set(js, k, subject[k]), {}),
29
30
  defaults: (options = {}, defaults = {}) => json.merge(defaults, options),
30
31
  isSubset: (subject, subset) => !entries(subset).some(([k, v]) => subject[k] !== v)
31
32
  };
@@ -52,4 +53,4 @@ export {
52
53
  asJson,
53
54
  any
54
55
  };
55
- //# sourceMappingURL=chunk-6NJ65PSU.mjs.map
56
+ //# sourceMappingURL=chunk-VCOKOQFW.mjs.map
@@ -0,0 +1 @@
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 pick: <T extends Json = Json>(subject: T, ...keys: string[]): T => keys.reduce((js, k) => json.set(js, k, (subject as any)[k]), {} as T),\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,MAAM,CAAwB,YAAe,SAAsB,KAAK,OAAO,CAAC,IAAI,MAAM,KAAK,IAAI,IAAI,GAAI,QAAgB,CAAC,CAAC,GAAG,CAAC,CAAM;AAAA,EACvI,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,9 +1,9 @@
1
1
  import {
2
2
  ApiGateway
3
- } from "./chunk-ZHAVV2E5.mjs";
3
+ } from "./chunk-Z56QALMP.mjs";
4
4
  import {
5
5
  Api
6
- } from "./chunk-FFK2E2QL.mjs";
6
+ } from "./chunk-ECXNGUIP.mjs";
7
7
  import {
8
8
  HttpStatus
9
9
  } from "./chunk-UGUAZFM4.mjs";
@@ -54,4 +54,4 @@ var RouteGateway = class extends ApiGateway {
54
54
  export {
55
55
  RouteGateway
56
56
  };
57
- //# sourceMappingURL=chunk-OCJ4IL63.mjs.map
57
+ //# sourceMappingURL=chunk-W5WWSCMG.mjs.map
@@ -7,6 +7,10 @@ import {
7
7
  import {
8
8
  asString
9
9
  } from "./chunk-BDA5LB4S.mjs";
10
+ import {
11
+ isNumber,
12
+ isString
13
+ } from "./chunk-DEJ7A5PY.mjs";
10
14
 
11
15
  // src/types/CacheAge.ts
12
16
  var ageNumber = (s) => asNumber(s.replace(/[a-z]/g, ""));
@@ -44,8 +48,10 @@ var cacheAge = {
44
48
  (c) => ageNumber(c) * 24 * 3600
45
49
  ).else(ca)
46
50
  };
51
+ var isCacheAge = (ca) => isString(ca) || isNumber(ca);
47
52
 
48
53
  export {
49
- cacheAge
54
+ cacheAge,
55
+ isCacheAge
50
56
  };
51
- //# sourceMappingURL=chunk-6UFIQJVC.mjs.map
57
+ //# sourceMappingURL=chunk-XH6PFRYM.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/CacheAge.ts"],"sourcesContent":["import { asNumber } from './Number';\nimport { choose } from './Case';\nimport { asString } from './Text';\nimport { isNumber, isString } from './Is';\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\nexport const isCacheAge = (ca?: unknown): ca is CacheAge => isString(ca) || isNumber(ca);\n"],"mappings":";;;;;;;;;;;;;;;AAOA,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;AAEO,IAAM,aAAa,CAAC,OAAiC,SAAS,EAAE,KAAK,SAAS,EAAE;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Api
3
- } from "./chunk-FFK2E2QL.mjs";
3
+ } from "./chunk-ECXNGUIP.mjs";
4
4
  import {
5
5
  Gateway
6
6
  } from "./chunk-CSKOVGAP.mjs";
@@ -43,4 +43,4 @@ var ApiGateway = class extends Gateway {
43
43
  export {
44
44
  ApiGateway
45
45
  };
46
- //# sourceMappingURL=chunk-ZHAVV2E5.mjs.map
46
+ //# sourceMappingURL=chunk-Z56QALMP.mjs.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-UR544PJT.mjs";
8
8
  import {
9
9
  Struct
10
- } from "./chunk-TZYSQJ2N.mjs";
10
+ } from "./chunk-UZHMXDAO.mjs";
11
11
  import {
12
12
  choose
13
13
  } from "./chunk-2KZ5UP6A.mjs";
@@ -47,4 +47,4 @@ __decorateClass([
47
47
  export {
48
48
  Audit
49
49
  };
50
- //# sourceMappingURL=chunk-DV7QIJRF.mjs.map
50
+ //# sourceMappingURL=chunk-ZOT3U45L.mjs.map
@@ -4,9 +4,9 @@ import {
4
4
  SortCondition,
5
5
  isSortCondition,
6
6
  toCondition
7
- } from "../chunk-RO6COWZH.mjs";
7
+ } from "../chunk-ODV3IWXD.mjs";
8
8
  import "../chunk-MDXL65W4.mjs";
9
- import "../chunk-6NJ65PSU.mjs";
9
+ import "../chunk-VCOKOQFW.mjs";
10
10
  import "../chunk-H2762RTS.mjs";
11
11
  import "../chunk-A7C3XND3.mjs";
12
12
  import "../chunk-JSON7A4X.mjs";
@@ -4,9 +4,9 @@ import {
4
4
  import {
5
5
  SortCondition,
6
6
  toCondition
7
- } from "../chunk-RO6COWZH.mjs";
7
+ } from "../chunk-ODV3IWXD.mjs";
8
8
  import "../chunk-MDXL65W4.mjs";
9
- import "../chunk-6NJ65PSU.mjs";
9
+ import "../chunk-VCOKOQFW.mjs";
10
10
  import "../chunk-H2762RTS.mjs";
11
11
  import "../chunk-A7C3XND3.mjs";
12
12
  import "../chunk-JSON7A4X.mjs";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  Audit
3
- } from "../chunk-DV7QIJRF.mjs";
3
+ } from "../chunk-ZOT3U45L.mjs";
4
4
  import "../chunk-RBQOVMPC.mjs";
5
5
  import "../chunk-UR544PJT.mjs";
6
6
  import "../chunk-JQQGQCYH.mjs";
7
7
  import "../chunk-ADJAEGCT.mjs";
8
- import "../chunk-TZYSQJ2N.mjs";
9
- import "../chunk-6NJ65PSU.mjs";
8
+ import "../chunk-UZHMXDAO.mjs";
9
+ import "../chunk-VCOKOQFW.mjs";
10
10
  import "../chunk-2KZ5UP6A.mjs";
11
11
  import "../chunk-OFGI5FLG.mjs";
12
12
  import "../chunk-NCEWAKOZ.mjs";
@@ -8,10 +8,10 @@ import {
8
8
  import "../chunk-ADJAEGCT.mjs";
9
9
  import {
10
10
  Struct
11
- } from "../chunk-TZYSQJ2N.mjs";
11
+ } from "../chunk-UZHMXDAO.mjs";
12
12
  import {
13
13
  json
14
- } from "../chunk-6NJ65PSU.mjs";
14
+ } from "../chunk-VCOKOQFW.mjs";
15
15
  import "../chunk-2KZ5UP6A.mjs";
16
16
  import "../chunk-OFGI5FLG.mjs";
17
17
  import "../chunk-NCEWAKOZ.mjs";
@@ -4,7 +4,7 @@ import {
4
4
  import "../chunk-LXQQ5N6S.mjs";
5
5
  import {
6
6
  Audit
7
- } from "../chunk-DV7QIJRF.mjs";
7
+ } from "../chunk-ZOT3U45L.mjs";
8
8
  import {
9
9
  required
10
10
  } from "../chunk-RBQOVMPC.mjs";
@@ -13,10 +13,10 @@ import "../chunk-JQQGQCYH.mjs";
13
13
  import "../chunk-ADJAEGCT.mjs";
14
14
  import {
15
15
  Struct
16
- } from "../chunk-TZYSQJ2N.mjs";
16
+ } from "../chunk-UZHMXDAO.mjs";
17
17
  import {
18
18
  json
19
- } from "../chunk-6NJ65PSU.mjs";
19
+ } from "../chunk-VCOKOQFW.mjs";
20
20
  import "../chunk-2KZ5UP6A.mjs";
21
21
  import "../chunk-OFGI5FLG.mjs";
22
22
  import "../chunk-NCEWAKOZ.mjs";
@@ -3,7 +3,7 @@ import {
3
3
  } from "../chunk-ROTFIQND.mjs";
4
4
  import {
5
5
  toJson
6
- } from "../chunk-6NJ65PSU.mjs";
6
+ } from "../chunk-VCOKOQFW.mjs";
7
7
  import {
8
8
  when
9
9
  } from "../chunk-2KZ5UP6A.mjs";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  Struct,
3
3
  isStruct
4
- } from "../chunk-TZYSQJ2N.mjs";
5
- import "../chunk-6NJ65PSU.mjs";
4
+ } from "../chunk-UZHMXDAO.mjs";
5
+ import "../chunk-VCOKOQFW.mjs";
6
6
  import "../chunk-2KZ5UP6A.mjs";
7
7
  import "../chunk-OFGI5FLG.mjs";
8
8
  import "../chunk-NCEWAKOZ.mjs";
@@ -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";
@@ -29,9 +30,7 @@ import {
29
30
  } from "../chunk-ZPNFXK7Y.mjs";
30
31
  import "../chunk-DXQSIBC7.mjs";
31
32
  import "../chunk-PIRWVOO2.mjs";
32
- import {
33
- isNumber
34
- } from "../chunk-DEJ7A5PY.mjs";
33
+ import "../chunk-DEJ7A5PY.mjs";
35
34
  import "../chunk-4N72FQFX.mjs";
36
35
 
37
36
  // src/http/CacheControl.ts
@@ -58,7 +57,7 @@ var CacheControl = class _CacheControl {
58
57
  staleWhileRevalidate = (ca) => on(this, (t) => t.directives["stale-while-revalidate"] = ca);
59
58
  value = () => this.toString();
60
59
  toString() {
61
- return entries(this.directives).mapDefined(([k, v]) => ifDefined(v, isNumber(v) ? `${k}=${cacheAge.toSeconds(v)}` : k)).join(",");
60
+ return entries(this.directives).mapDefined(([k, v]) => ifDefined(v, isCacheAge(v) ? `${k}=${cacheAge.toSeconds(v)}` : k)).join(",");
62
61
  }
63
62
  };
64
63
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/http/CacheControl.ts"],"sourcesContent":["import { cacheAge, CacheAge } from '../types/CacheAge';\nimport { on } from '../types/Constructor';\nimport { entries } from '../types/Object';\nimport { ifDefined } from '../utils/If';\nimport { isNumber } from '../types/Is';\n\nexport class CacheControl {\n name = 'Cache-Control';\n\n protected constructor(\n readonly enabled = true,\n private directives: Record<string, boolean | CacheAge | undefined> = {}\n ) {}\n\n static disabled = () => new CacheControl(false);\n\n static OneSecond = () => new CacheControl().maxAge(1).staleWhileRevalidate(1);\n\n static fiveSeconds = () => new CacheControl().maxAge(5).staleWhileRevalidate(5);\n\n static tenSeconds = () => new CacheControl().maxAge(10).staleWhileRevalidate(10);\n\n static thirtySeconds = () => new CacheControl().maxAge(30).staleWhileRevalidate(30);\n\n static sixtySeconds = () => new CacheControl().maxAge(60).staleWhileRevalidate(60);\n\n static custom = (maxAge?: CacheAge, staleWhileRevalidate?: CacheAge) => new CacheControl().maxAge(maxAge).staleWhileRevalidate(staleWhileRevalidate);\n\n readonly maxAge = (ca?: CacheAge): this => on(this, t => (t.directives['max-age'] = ca));\n\n readonly sharedMaxAge = (ca?: CacheAge): this => on(this, t => (t.directives['s-maxage'] = ca));\n\n readonly noCache = (a?: boolean): this => on(this, t => (t.directives['no-cache'] = a));\n\n readonly mustRevalidate = (a?: boolean): this => on(this, t => (t.directives['must-revalidate'] = a));\n\n readonly private = (a?: boolean): this => on(this, t => (t.directives['private'] = a));\n\n readonly public = (a?: boolean): this => on(this, t => (t.directives['public'] = a));\n\n readonly immutable = (a?: boolean): this => on(this, t => (t.directives['immutable'] = a));\n\n readonly staleWhileRevalidate = (ca?: CacheAge): this => on(this, t => (t.directives['stale-while-revalidate'] = ca));\n\n value = (): string => this.toString();\n\n toString(): string {\n return entries(this.directives)\n .mapDefined(([k, v]) => ifDefined(v, isNumber(v) ? `${k}=${cacheAge.toSeconds(v)}` : k))\n .join(',');\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,IAAM,eAAN,MAAM,cAAa;AAAA,EAGd,YACC,UAAU,MACX,aAA6D,CAAC,GACtE;AAFS;AACD;AAAA,EACP;AAAA,EALH,OAAO;AAAA,EAOP,OAAO,WAAW,MAAM,IAAI,cAAa,KAAK;AAAA,EAE9C,OAAO,YAAY,MAAM,IAAI,cAAa,EAAE,OAAO,CAAC,EAAE,qBAAqB,CAAC;AAAA,EAE5E,OAAO,cAAc,MAAM,IAAI,cAAa,EAAE,OAAO,CAAC,EAAE,qBAAqB,CAAC;AAAA,EAE9E,OAAO,aAAa,MAAM,IAAI,cAAa,EAAE,OAAO,EAAE,EAAE,qBAAqB,EAAE;AAAA,EAE/E,OAAO,gBAAgB,MAAM,IAAI,cAAa,EAAE,OAAO,EAAE,EAAE,qBAAqB,EAAE;AAAA,EAElF,OAAO,eAAe,MAAM,IAAI,cAAa,EAAE,OAAO,EAAE,EAAE,qBAAqB,EAAE;AAAA,EAEjF,OAAO,SAAS,CAAC,QAAmB,yBAAoC,IAAI,cAAa,EAAE,OAAO,MAAM,EAAE,qBAAqB,oBAAoB;AAAA,EAE1I,SAAS,CAAC,OAAwB,GAAG,MAAM,OAAM,EAAE,WAAW,SAAS,IAAI,EAAG;AAAA,EAE9E,eAAe,CAAC,OAAwB,GAAG,MAAM,OAAM,EAAE,WAAW,UAAU,IAAI,EAAG;AAAA,EAErF,UAAU,CAAC,MAAsB,GAAG,MAAM,OAAM,EAAE,WAAW,UAAU,IAAI,CAAE;AAAA,EAE7E,iBAAiB,CAAC,MAAsB,GAAG,MAAM,OAAM,EAAE,WAAW,iBAAiB,IAAI,CAAE;AAAA,EAE3F,UAAU,CAAC,MAAsB,GAAG,MAAM,OAAM,EAAE,WAAW,SAAS,IAAI,CAAE;AAAA,EAE5E,SAAS,CAAC,MAAsB,GAAG,MAAM,OAAM,EAAE,WAAW,QAAQ,IAAI,CAAE;AAAA,EAE1E,YAAY,CAAC,MAAsB,GAAG,MAAM,OAAM,EAAE,WAAW,WAAW,IAAI,CAAE;AAAA,EAEhF,uBAAuB,CAAC,OAAwB,GAAG,MAAM,OAAM,EAAE,WAAW,wBAAwB,IAAI,EAAG;AAAA,EAEpH,QAAQ,MAAc,KAAK,SAAS;AAAA,EAEpC,WAAmB;AACjB,WAAO,QAAQ,KAAK,UAAU,EAC3B,WAAW,CAAC,CAAC,GAAG,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,SAAS,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EACtF,KAAK,GAAG;AAAA,EACb;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/http/CacheControl.ts"],"sourcesContent":["import { cacheAge, CacheAge, isCacheAge } from '../types/CacheAge';\nimport { on } from '../types/Constructor';\nimport { entries } from '../types/Object';\nimport { ifDefined } from '../utils/If';\n\nexport class CacheControl {\n name = 'Cache-Control';\n\n protected constructor(\n readonly enabled = true,\n private directives: Record<string, boolean | CacheAge | undefined> = {}\n ) {}\n\n static disabled = () => new CacheControl(false);\n\n static OneSecond = () => new CacheControl().maxAge(1).staleWhileRevalidate(1);\n\n static fiveSeconds = () => new CacheControl().maxAge(5).staleWhileRevalidate(5);\n\n static tenSeconds = () => new CacheControl().maxAge(10).staleWhileRevalidate(10);\n\n static thirtySeconds = () => new CacheControl().maxAge(30).staleWhileRevalidate(30);\n\n static sixtySeconds = () => new CacheControl().maxAge(60).staleWhileRevalidate(60);\n\n static custom = (maxAge?: CacheAge, staleWhileRevalidate?: CacheAge) => new CacheControl().maxAge(maxAge).staleWhileRevalidate(staleWhileRevalidate);\n\n readonly maxAge = (ca?: CacheAge): this => on(this, t => (t.directives['max-age'] = ca));\n\n readonly sharedMaxAge = (ca?: CacheAge): this => on(this, t => (t.directives['s-maxage'] = ca));\n\n readonly noCache = (a?: boolean): this => on(this, t => (t.directives['no-cache'] = a));\n\n readonly mustRevalidate = (a?: boolean): this => on(this, t => (t.directives['must-revalidate'] = a));\n\n readonly private = (a?: boolean): this => on(this, t => (t.directives['private'] = a));\n\n readonly public = (a?: boolean): this => on(this, t => (t.directives['public'] = a));\n\n readonly immutable = (a?: boolean): this => on(this, t => (t.directives['immutable'] = a));\n\n readonly staleWhileRevalidate = (ca?: CacheAge): this => on(this, t => (t.directives['stale-while-revalidate'] = ca));\n\n value = (): string => this.toString();\n\n toString(): string {\n return entries(this.directives)\n .mapDefined(([k, v]) => ifDefined(v, isCacheAge(v) ? `${k}=${cacheAge.toSeconds(v)}` : k))\n .join(',');\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKO,IAAM,eAAN,MAAM,cAAa;AAAA,EAGd,YACC,UAAU,MACX,aAA6D,CAAC,GACtE;AAFS;AACD;AAAA,EACP;AAAA,EALH,OAAO;AAAA,EAOP,OAAO,WAAW,MAAM,IAAI,cAAa,KAAK;AAAA,EAE9C,OAAO,YAAY,MAAM,IAAI,cAAa,EAAE,OAAO,CAAC,EAAE,qBAAqB,CAAC;AAAA,EAE5E,OAAO,cAAc,MAAM,IAAI,cAAa,EAAE,OAAO,CAAC,EAAE,qBAAqB,CAAC;AAAA,EAE9E,OAAO,aAAa,MAAM,IAAI,cAAa,EAAE,OAAO,EAAE,EAAE,qBAAqB,EAAE;AAAA,EAE/E,OAAO,gBAAgB,MAAM,IAAI,cAAa,EAAE,OAAO,EAAE,EAAE,qBAAqB,EAAE;AAAA,EAElF,OAAO,eAAe,MAAM,IAAI,cAAa,EAAE,OAAO,EAAE,EAAE,qBAAqB,EAAE;AAAA,EAEjF,OAAO,SAAS,CAAC,QAAmB,yBAAoC,IAAI,cAAa,EAAE,OAAO,MAAM,EAAE,qBAAqB,oBAAoB;AAAA,EAE1I,SAAS,CAAC,OAAwB,GAAG,MAAM,OAAM,EAAE,WAAW,SAAS,IAAI,EAAG;AAAA,EAE9E,eAAe,CAAC,OAAwB,GAAG,MAAM,OAAM,EAAE,WAAW,UAAU,IAAI,EAAG;AAAA,EAErF,UAAU,CAAC,MAAsB,GAAG,MAAM,OAAM,EAAE,WAAW,UAAU,IAAI,CAAE;AAAA,EAE7E,iBAAiB,CAAC,MAAsB,GAAG,MAAM,OAAM,EAAE,WAAW,iBAAiB,IAAI,CAAE;AAAA,EAE3F,UAAU,CAAC,MAAsB,GAAG,MAAM,OAAM,EAAE,WAAW,SAAS,IAAI,CAAE;AAAA,EAE5E,SAAS,CAAC,MAAsB,GAAG,MAAM,OAAM,EAAE,WAAW,QAAQ,IAAI,CAAE;AAAA,EAE1E,YAAY,CAAC,MAAsB,GAAG,MAAM,OAAM,EAAE,WAAW,WAAW,IAAI,CAAE;AAAA,EAEhF,uBAAuB,CAAC,OAAwB,GAAG,MAAM,OAAM,EAAE,WAAW,wBAAwB,IAAI,EAAG;AAAA,EAEpH,QAAQ,MAAc,KAAK,SAAS;AAAA,EAEpC,WAAmB;AACjB,WAAO,QAAQ,KAAK,UAAU,EAC3B,WAAW,CAAC,CAAC,GAAG,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,GAAG,CAAC,IAAI,SAAS,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EACxF,KAAK,GAAG;AAAA,EACb;AACF;","names":[]}
package/dist/index.js CHANGED
@@ -157,6 +157,7 @@ __export(src_exports, {
157
157
  isAn: () => isAn,
158
158
  isArray: () => isArray,
159
159
  isBoolean: () => isBoolean,
160
+ isCacheAge: () => isCacheAge,
160
161
  isClause: () => isClause,
161
162
  isConstructor: () => isConstructor,
162
163
  isCurrency: () => isCurrency,
@@ -655,6 +656,7 @@ var json = {
655
656
  },
656
657
  set: (subject, key = "", value) => isEmpty(key) ? subject : value !== void 0 ? { ...subject, ...{ [key]: value } } : json.delete(subject, key),
657
658
  omit: (subject, ...keys2) => keys2.reduce((js, k) => json.delete(js, k), json.parse(subject)),
659
+ pick: (subject, ...keys2) => keys2.reduce((js, k) => json.set(js, k, subject[k]), {}),
658
660
  defaults: (options = {}, defaults = {}) => json.merge(defaults, options),
659
661
  isSubset: (subject, subset) => !entries(subset).some(([k, v]) => subject[k] !== v)
660
662
  };
@@ -2046,6 +2048,7 @@ var cacheAge = {
2046
2048
  (c) => ageNumber(c) * 24 * 3600
2047
2049
  ).else(ca)
2048
2050
  };
2051
+ var isCacheAge = (ca) => isString(ca) || isNumber(ca);
2049
2052
 
2050
2053
  // src/http/CacheControl.ts
2051
2054
  var CacheControl = class _CacheControl {
@@ -2071,7 +2074,7 @@ var CacheControl = class _CacheControl {
2071
2074
  staleWhileRevalidate = (ca) => on(this, (t) => t.directives["stale-while-revalidate"] = ca);
2072
2075
  value = () => this.toString();
2073
2076
  toString() {
2074
- return entries(this.directives).mapDefined(([k, v]) => ifDefined(v, isNumber(v) ? `${k}=${cacheAge.toSeconds(v)}` : k)).join(",");
2077
+ return entries(this.directives).mapDefined(([k, v]) => ifDefined(v, isCacheAge(v) ? `${k}=${cacheAge.toSeconds(v)}` : k)).join(",");
2075
2078
  }
2076
2079
  };
2077
2080
 
@@ -3493,6 +3496,7 @@ var wait = (millis) => Wait.wait(millis);
3493
3496
  isAn,
3494
3497
  isArray,
3495
3498
  isBoolean,
3499
+ isCacheAge,
3496
3500
  isClause,
3497
3501
  isConstructor,
3498
3502
  isCurrency,