@actdim/utico 1.1.2 → 1.1.5

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 (69) hide show
  1. package/README.md +1245 -5
  2. package/dist/array.es.js.map +1 -1
  3. package/dist/arrayExtensions.es.js.map +1 -1
  4. package/dist/asyncMutex.d.ts +1 -1
  5. package/dist/asyncMutex.d.ts.map +1 -1
  6. package/dist/asyncMutex.es.js +17 -17
  7. package/dist/asyncMutex.es.js.map +1 -1
  8. package/dist/cache/cacheContracts.es.js.map +1 -1
  9. package/dist/cache/memoryCache.d.ts +2 -3
  10. package/dist/cache/memoryCache.d.ts.map +1 -1
  11. package/dist/cache/memoryCache.es.js +2 -4
  12. package/dist/cache/memoryCache.es.js.map +1 -1
  13. package/dist/cache/persistentCache.d.ts +4 -2
  14. package/dist/cache/persistentCache.d.ts.map +1 -1
  15. package/dist/cache/persistentCache.es.js +41 -40
  16. package/dist/cache/persistentCache.es.js.map +1 -1
  17. package/dist/dataFormats.d.ts +1 -1
  18. package/dist/dataFormats.es.js.map +1 -1
  19. package/dist/dateTimeDataFormat.d.ts +13 -12
  20. package/dist/dateTimeDataFormat.d.ts.map +1 -1
  21. package/dist/dateTimeDataFormat.es.js +62 -68
  22. package/dist/dateTimeDataFormat.es.js.map +1 -1
  23. package/dist/decorators.d.ts +2 -0
  24. package/dist/decorators.d.ts.map +1 -0
  25. package/dist/decorators.es.js +20 -0
  26. package/dist/decorators.es.js.map +1 -0
  27. package/dist/gfx/canvasUtils.es.js.map +1 -1
  28. package/dist/gfx/color.es.js.map +1 -1
  29. package/dist/i18n/cultures.es.js.map +1 -1
  30. package/dist/i18n/enUsCulture.d.ts.map +1 -1
  31. package/dist/i18n/enUsCulture.es.js +17 -18
  32. package/dist/i18n/enUsCulture.es.js.map +1 -1
  33. package/dist/index.es.js.map +1 -1
  34. package/dist/math.es.js.map +1 -1
  35. package/dist/metadata.d.ts +3 -3
  36. package/dist/metadata.d.ts.map +1 -1
  37. package/dist/metadata.es.js +8 -8
  38. package/dist/metadata.es.js.map +1 -1
  39. package/dist/patterns.es.js.map +1 -1
  40. package/dist/store/dataStore.d.ts +17 -43
  41. package/dist/store/dataStore.d.ts.map +1 -1
  42. package/dist/store/dataStore.es.js +98 -92
  43. package/dist/store/dataStore.es.js.map +1 -1
  44. package/dist/store/persistentStore.d.ts +5 -4
  45. package/dist/store/persistentStore.d.ts.map +1 -1
  46. package/dist/store/persistentStore.es.js +12 -11
  47. package/dist/store/persistentStore.es.js.map +1 -1
  48. package/dist/store/storeContracts.d.ts +39 -9
  49. package/dist/store/storeContracts.d.ts.map +1 -1
  50. package/dist/store/storeContracts.es.js +2 -2
  51. package/dist/store/storeContracts.es.js.map +1 -1
  52. package/dist/store/storeDb.es.js +11 -11
  53. package/dist/store/storeDb.es.js.map +1 -1
  54. package/dist/stringCore.d.ts +1 -1
  55. package/dist/stringCore.d.ts.map +1 -1
  56. package/dist/stringCore.es.js +5 -5
  57. package/dist/stringCore.es.js.map +1 -1
  58. package/dist/structEvent.d.ts +4 -3
  59. package/dist/structEvent.d.ts.map +1 -1
  60. package/dist/structEvent.es.js +16 -9
  61. package/dist/structEvent.es.js.map +1 -1
  62. package/dist/typeCore.es.js.map +1 -1
  63. package/dist/typeUtils.d.ts +7 -6
  64. package/dist/typeUtils.d.ts.map +1 -1
  65. package/dist/typeUtils.es.js +38 -34
  66. package/dist/typeUtils.es.js.map +1 -1
  67. package/dist/utils.es.js.map +1 -1
  68. package/dist/watchable.es.js.map +1 -1
  69. package/package.json +7 -4
@@ -1 +1 @@
1
- {"version":3,"file":"array.es.js","sources":["D:/Src/my/actdim/public/utico/src/array.ts"],"sourcesContent":["export function copyArray(src: any[], dst: any[], srcIndex = 0, dstIndex = 0, length?: number) { \r\n return dst.copy(src, srcIndex, dstIndex, length);\r\n}"],"names":["copyArray","src","dst","srcIndex","dstIndex","length"],"mappings":"AAAO,SAASA,EAAUC,GAAYC,GAAYC,IAAW,GAAGC,IAAW,GAAGC,GAAiB;AAC3F,SAAOH,EAAI,KAAKD,GAAKE,GAAUC,GAAUC,CAAM;AACnD;"}
1
+ {"version":3,"file":"array.es.js","sources":["D:/Src/my/actdim/public/utico/src/array.ts"],"sourcesContent":null,"names":["copyArray","src","dst","srcIndex","dstIndex","length"],"mappings":"AAAO,SAASA,EAAUC,GAAYC,GAAYC,IAAW,GAAGC,IAAW,GAAGC,GAAiB;AAC3F,SAAOH,EAAI,KAAKD,GAAKE,GAAUC,GAAUC,CAAM;AACnD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"arrayExtensions.es.js","sources":["D:/Src/my/actdim/public/utico/src/arrayExtensions.ts"],"sourcesContent":["\r\ninterface Array<T> {\r\n find(callback: (element: T, index: number, array: Array<T>) => boolean): T; // aka firstOrDefault\r\n unfold<TItem>(callback: (element: T) => Array<TItem>): Array<TItem>; // aka selectMany\r\n max<TItem>(selector: (element: T) => TItem, defaultValue?: any): TItem;\r\n min<TItem>(selector: (element: T) => TItem, defaultValue?: any): TItem;\r\n orderBy<TItem>(selector: (element: T) => TItem): Array<T>;\r\n groupBy(selector: (element: T) => string): { [key: string]: Array<T> };\r\n // groupBy(key: string): { [key: string]: Array<T> };\t\r\n orderByDesc<TItem>(selector: (element: T) => TItem): Array<T>;\r\n distinct(): Array<T>; // unique\r\n distinct<TItem>(selector: (element: T) => TItem): Array<T>; // distinctBy/uniqueBy\r\n // TODO: pushMany aka addRange\r\n /** NOTE: there is no native array copy method (all existing methods rely on spread) */\r\n copy(src: any[], srcIndex?: number, dstIndex?: number, length?: number): this; // copyFrom\r\n copyTo(dst: any[], srcIndex?: number, dstIndex?: number, length?: number): this;\r\n}\r\n\r\n// Comparers\r\nclass Sorters {\r\n static asc(a: any, b: any) {\r\n // comparison\r\n return (a === b) ? 0\r\n : (a > b) ? 1\r\n : -1;\r\n // if (a < b) {\r\n // return -1;\r\n // }\r\n // if (a > b) {\r\n // return 1;\r\n // }\r\n // // a must be equal to b\r\n // return 0;\r\n // localeCompare?\r\n // numeric: a - b\r\n }\r\n\r\n static desc(a: any, b: any) {\r\n return -Sorters.asc(a, b);\r\n // return Sorters.asc(b, a);\r\n }\r\n}\r\n\r\nArray.prototype.unfold = function (callback: (element: any) => any[]): any[] {\r\n return this.reduce((res, element) => {\r\n Array.prototype.push.apply(res, callback(element));\r\n return res;\r\n }, []);\r\n};\r\n\r\nArray.prototype.max = function (selector: (element: any) => any, defaultValue?: any): any {\r\n if (this.length == 0) {\r\n return defaultValue;\r\n }\r\n return this.map(selector).sort(Sorters.desc)[0];\r\n\r\n // return this.reduce((x, el) => {\r\n // let order = el.Order();\r\n // return x == undefined ? order : (order > x ? order : o);\r\n // }, undefined);\r\n};\r\n\r\nArray.prototype.min = function (selector: (element: any) => any, defaultValue?: any): any {\r\n if (this.length == 0) {\r\n return defaultValue;\r\n }\r\n return this.map(selector).sort(Sorters.asc)[0];\r\n};\r\n\r\nArray.prototype.orderBy = function (selector: (element: any) => any): any[] {\r\n return this.slice(0).sort((a, b) => Sorters.asc(selector(a), selector(b)));\r\n};\r\n\r\nArray.prototype.orderByDesc = function (selector: (element: any) => any): any[] {\r\n return this.slice(0).sort((a, b) => Sorters.desc(selector(a), selector(b)));\r\n};\r\n\r\n// Array.prototype.groupBy = function (key: string): { [key: string]: any[] } {\r\n// \treturn this.reduce((result, item) => {\r\n// \t\tconst value = item[key].toString();\r\n// \t\t(result[item[key]] = result[item[key]] || []).push(item);\r\n// \t\treturn result;\r\n// \t}, {});\r\n// };\r\n\r\nArray.prototype.groupBy = function (selector: (element: any) => string): { [key: string]: any[] } {\r\n return this.reduce((result, item) => {\r\n const value = selector(item); //.toString()\r\n (result[value] = result[value] || []).push(item);\r\n return result;\r\n }, {});\r\n};\r\n\r\nclass Filters {\r\n static notNull(element: any): boolean {\r\n return element != null;\r\n }\r\n\r\n static notUndefined(element: any): boolean { // notMissing\r\n return element != undefined;\r\n }\r\n\r\n static notEmpty(element: any): boolean {\r\n return element !== '';\r\n }\r\n\r\n // unique\r\n static distinct(element, index, self) {\r\n return self.indexOf(element) === index;\r\n }\r\n}\r\n\r\n// distinctBy/uniqueBy\r\nArray.prototype.distinct = function (selector?: (element: any) => any): any[] {\r\n if (!selector) {\r\n return this.filter(Filters.distinct);\r\n // return this.sort().filter(function (element, index, self) {\r\n // return !index || element != self[index - 1];\r\n // });\r\n }\r\n\r\n // let keys = {}; // elements/items\r\n // return this.filter(function (element) {\r\n // const key = selector(element);\r\n // return keys.hasOwnProperty(key) ? false : (keys[key] = true);\r\n // });\r\n\r\n let keys = []; // elements/items\r\n return this.filter(function (element) {\r\n const key = selector(element);\r\n return keys.indexOf(key) >= 0 ? false : keys.push(key);\r\n });\r\n};\r\n\r\n// copyFrom\r\nArray.prototype.copy = function (src: any[], srcIndex = 0, dstIndex = 0, length?: number) {\r\n return copyArray(src, this, srcIndex, dstIndex, length);\r\n}\r\n\r\nArray.prototype.copyTo = function (dst: any[], srcIndex = 0, dstIndex = 0, length?: number) {\r\n return copyArray(this, dst, srcIndex, dstIndex, length);\r\n}\r\n\r\nfunction copyArray(src: any[], dst: any[], srcIndex = 0, dstIndex = 0, length?: number) {\r\n if (srcIndex == undefined || srcIndex < 0) {\r\n srcIndex = 0;\r\n }\r\n if (dstIndex == undefined || dstIndex < 0) {\r\n dstIndex = 0;\r\n }\r\n if (length == undefined) {\r\n length = Math.min(src.length, src.length - srcIndex);\r\n }\r\n let j = dstIndex;\r\n for (let i = srcIndex; i < length; i++) {\r\n dst[j] = src[i];\r\n j++;\r\n }\r\n return dst;\r\n}"],"names":["Sorters","a","b","callback","res","element","selector","defaultValue","result","item","value","Filters","index","self","keys","key","src","srcIndex","dstIndex","length","copyArray","dst","j","i"],"mappings":"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"}
1
+ {"version":3,"file":"arrayExtensions.es.js","sources":["D:/Src/my/actdim/public/utico/src/arrayExtensions.ts"],"sourcesContent":null,"names":["Sorters","a","b","callback","res","element","selector","defaultValue","result","item","value","Filters","index","self","keys","key","src","srcIndex","dstIndex","length","copyArray","dst","j","i"],"mappings":"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"}
@@ -3,7 +3,7 @@ declare class AsyncMutex {
3
3
  private mutex;
4
4
  private locked;
5
5
  lock(timeoutMs?: number): Promise<() => void>;
6
- tryLock(): () => void | null;
6
+ tryLock(): (() => void) | null;
7
7
  dispatch<T>(fn: Executor<T>, timeoutMs?: number): Promise<T>;
8
8
  }
9
9
  export { AsyncMutex };
@@ -1 +1 @@
1
- {"version":3,"file":"asyncMutex.d.ts","sourceRoot":"","sources":["../src/asyncMutex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC,cAAM,UAAU;IACZ,OAAO,CAAC,KAAK,CAAqB;IAElC,OAAO,CAAC,MAAM,CAAS;IAEjB,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAgCnD,OAAO,IAAI,MAAM,IAAI,GAAG,IAAI;IAiBtB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAQrE;AAGD,OAAO,EACH,UAAU,EACb,CAAC"}
1
+ {"version":3,"file":"asyncMutex.d.ts","sourceRoot":"","sources":["../src/asyncMutex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC,cAAM,UAAU;IACZ,OAAO,CAAC,KAAK,CAAqB;IAElC,OAAO,CAAC,MAAM,CAAS;IAEjB,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAgCnD,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI;IAaxB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAQrE;AAGD,OAAO,EACH,UAAU,EACb,CAAC"}
@@ -4,40 +4,40 @@ class n {
4
4
  locked = !1;
5
5
  async lock(e) {
6
6
  let t = () => {
7
- }, o;
7
+ }, s;
8
8
  const i = this.mutex;
9
9
  this.mutex = this.mutex.then(() => new Promise(t)), this.locked = !0;
10
- const r = new Promise((s, l) => {
11
- t = s, e && (o = setTimeout(() => {
10
+ const r = new Promise((o, l) => {
11
+ t = o, e && (s = setTimeout(() => {
12
12
  l(new Error("Mutex lock timeout"));
13
13
  }, e));
14
14
  });
15
15
  try {
16
- const s = await r;
17
- return clearTimeout(o), () => {
18
- this.locked = !1, s();
16
+ const o = await r;
17
+ return clearTimeout(s), () => {
18
+ this.locked = !1, o();
19
19
  };
20
- } catch (s) {
21
- throw this.mutex = i, this.locked = !1, s;
20
+ } catch (o) {
21
+ throw this.mutex = i, this.locked = !1, o;
22
22
  }
23
23
  }
24
24
  tryLock() {
25
25
  if (this.locked) return null;
26
+ this.locked = !0;
26
27
  let e;
27
- return this.locked = !0, this.mutex = this.mutex.then(
28
- () => new Promise((t) => {
29
- e = () => {
30
- this.locked = !1, t();
31
- };
32
- })
33
- ), e;
28
+ const t = new Promise((s) => {
29
+ e = s;
30
+ });
31
+ return this.mutex = this.mutex.then(() => t), () => {
32
+ this.locked = !1, e();
33
+ };
34
34
  }
35
35
  async dispatch(e, t) {
36
- const o = await this.lock(t);
36
+ const s = await this.lock(t);
37
37
  try {
38
38
  return await e();
39
39
  } finally {
40
- o();
40
+ s();
41
41
  }
42
42
  }
43
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"asyncMutex.es.js","sources":["D:/Src/my/actdim/public/utico/src/asyncMutex.ts"],"sourcesContent":["import { Executor } from './typeCore';\r\n/**\r\n * Example:\r\n * const mutex = new Mutex();\r\n * await mutex.dispatch(async () => {...});\r\n */\r\n// type Executor<T> = () => Promise<T> | T;\r\n\r\nclass AsyncMutex { // or Mutex\r\n private mutex = Promise.resolve();\r\n\r\n private locked = false;\r\n\r\n async lock(timeoutMs?: number): Promise<() => void> {\r\n let begin: (unlock: () => void) => void = () => { };\r\n let timer: ReturnType<typeof setTimeout> | undefined;\r\n\r\n const previous = this.mutex;\r\n this.mutex = this.mutex.then(() => new Promise(begin));\r\n this.locked = true;\r\n\r\n const lockPromise = new Promise<() => void>((resolve, reject) => {\r\n begin = resolve;\r\n\r\n if (timeoutMs) {\r\n timer = setTimeout(() => {\r\n reject(new Error(\"Mutex lock timeout\"));\r\n }, timeoutMs);\r\n }\r\n });\r\n\r\n try {\r\n const unlock = await lockPromise;\r\n clearTimeout(timer);\r\n return () => {\r\n this.locked = false;\r\n unlock();\r\n };\r\n } catch (err) {\r\n this.mutex = previous;\r\n this.locked = false;\r\n throw err;\r\n }\r\n }\r\n\r\n tryLock(): () => void | null {\r\n if (this.locked) return null;\r\n\r\n let unlock!: () => void;\r\n this.locked = true;\r\n this.mutex = this.mutex.then(\r\n () =>\r\n new Promise<void>(res => {\r\n unlock = () => {\r\n this.locked = false;\r\n res();\r\n };\r\n })\r\n );\r\n return unlock;\r\n }\r\n\r\n async dispatch<T>(fn: Executor<T>, timeoutMs?: number): Promise<T> {\r\n const unlock = await this.lock(timeoutMs);\r\n try {\r\n return await fn();\r\n } finally {\r\n unlock();\r\n }\r\n }\r\n}\r\n\r\n\r\nexport {\r\n AsyncMutex\r\n};"],"names":["AsyncMutex","timeoutMs","begin","timer","previous","lockPromise","resolve","reject","unlock","err","res","fn"],"mappings":"AAQA,MAAMA,EAAW;AAAA;AAAA,EACL,QAAQ,QAAQ,QAAA;AAAA,EAEhB,SAAS;AAAA,EAEjB,MAAM,KAAKC,GAAyC;AAChD,QAAIC,IAAsC,MAAM;AAAA,IAAE,GAC9CC;AAEJ,UAAMC,IAAW,KAAK;AACtB,SAAK,QAAQ,KAAK,MAAM,KAAK,MAAM,IAAI,QAAQF,CAAK,CAAC,GACrD,KAAK,SAAS;AAEd,UAAMG,IAAc,IAAI,QAAoB,CAACC,GAASC,MAAW;AAC7D,MAAAL,IAAQI,GAEJL,MACAE,IAAQ,WAAW,MAAM;AACrB,QAAAI,EAAO,IAAI,MAAM,oBAAoB,CAAC;AAAA,MAC1C,GAAGN,CAAS;AAAA,IAEpB,CAAC;AAED,QAAI;AACA,YAAMO,IAAS,MAAMH;AACrB,0BAAaF,CAAK,GACX,MAAM;AACT,aAAK,SAAS,IACdK,EAAA;AAAA,MACJ;AAAA,IACJ,SAASC,GAAK;AACV,iBAAK,QAAQL,GACb,KAAK,SAAS,IACRK;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,UAA6B;AACzB,QAAI,KAAK,OAAQ,QAAO;AAExB,QAAID;AACJ,gBAAK,SAAS,IACd,KAAK,QAAQ,KAAK,MAAM;AAAA,MACpB,MACI,IAAI,QAAc,CAAAE,MAAO;AACrB,QAAAF,IAAS,MAAM;AACX,eAAK,SAAS,IACdE,EAAA;AAAA,QACJ;AAAA,MACJ,CAAC;AAAA,IAAA,GAEFF;AAAA,EACX;AAAA,EAEA,MAAM,SAAYG,GAAiBV,GAAgC;AAC/D,UAAMO,IAAS,MAAM,KAAK,KAAKP,CAAS;AACxC,QAAI;AACA,aAAO,MAAMU,EAAA;AAAA,IACjB,UAAA;AACI,MAAAH,EAAA;AAAA,IACJ;AAAA,EACJ;AACJ;"}
1
+ {"version":3,"file":"asyncMutex.es.js","sources":["D:/Src/my/actdim/public/utico/src/asyncMutex.ts"],"sourcesContent":null,"names":["AsyncMutex","timeoutMs","begin","timer","previous","lockPromise","resolve","reject","unlock","err","promise","res","fn"],"mappings":"AAQA,MAAMA,EAAW;AAAA;AAAA,EACL,QAAQ,QAAQ,QAAA;AAAA,EAEhB,SAAS;AAAA,EAEjB,MAAM,KAAKC,GAAyC;AAChD,QAAIC,IAAsC,MAAM;AAAA,IAAE,GAC9CC;AAEJ,UAAMC,IAAW,KAAK;AACtB,SAAK,QAAQ,KAAK,MAAM,KAAK,MAAM,IAAI,QAAQF,CAAK,CAAC,GACrD,KAAK,SAAS;AAEd,UAAMG,IAAc,IAAI,QAAoB,CAACC,GAASC,MAAW;AAC7D,MAAAL,IAAQI,GAEJL,MACAE,IAAQ,WAAW,MAAM;AACrB,QAAAI,EAAO,IAAI,MAAM,oBAAoB,CAAC;AAAA,MAC1C,GAAGN,CAAS;AAAA,IAEpB,CAAC;AAED,QAAI;AACA,YAAMO,IAAS,MAAMH;AACrB,0BAAaF,CAAK,GACX,MAAM;AACT,aAAK,SAAS,IACdK,EAAA;AAAA,MACJ;AAAA,IACJ,SAASC,GAAK;AACV,iBAAK,QAAQL,GACb,KAAK,SAAS,IACRK;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,UAA+B;AAC3B,QAAI,KAAK,OAAQ,QAAO;AAExB,SAAK,SAAS;AACd,QAAIH;AACJ,UAAMI,IAAU,IAAI,QAAc,CAAAC,MAAO;AAAE,MAAAL,IAAUK;AAAA,IAAK,CAAC;AAC3D,gBAAK,QAAQ,KAAK,MAAM,KAAK,MAAMD,CAAO,GACnC,MAAM;AACT,WAAK,SAAS,IACdJ,EAAA;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,SAAYM,GAAiBX,GAAgC;AAC/D,UAAMO,IAAS,MAAM,KAAK,KAAKP,CAAS;AACxC,QAAI;AACA,aAAO,MAAMW,EAAA;AAAA,IACjB,UAAA;AACI,MAAAJ,EAAA;AAAA,IACJ;AAAA,EACJ;AACJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"cacheContracts.es.js","sources":["D:/Src/my/actdim/public/utico/src/cache/cacheContracts.ts"],"sourcesContent":["import { DataRecord, MetadataRecord, StoreItem } from \"@/store/storeContracts\";\r\n\r\n// CacheMetadataEntry\r\nexport class CacheMetadataRecord extends MetadataRecord {\r\n accessedAt?: number; // lastAccessed/lastAccessTime\r\n slidingExpiration?: number;\r\n absoluteExpiration?: number;\r\n expiresAt?: number; // expiryTime\r\n}\r\n\r\nexport interface IPersistentCache<T extends CacheMetadataRecord = CacheMetadataRecord> {\r\n\r\n open(): Promise<void>;\r\n\r\n getKeys(): Promise<string[]>;\r\n\r\n contains(key: string): Promise<boolean>;\r\n\r\n delete(key: string): Promise<void>;\r\n\r\n bulkDelete(keys: string[]): Promise<void>;\r\n\r\n clear(): Promise<void>;\r\n\r\n get<TValue = any>(key: string): Promise<StoreItem<T, TValue>>;\r\n\r\n set<TValue = any>(metadataRecord: T, value: TValue): Promise<string>;\r\n\r\n getOrSet<TValue = any>(metadataRecord: T, factory: (metadataRecord: T) => TValue): Promise<StoreItem<T, TValue>>\r\n\r\n bulkGet<TValue = any>(keys: string[]): Promise<StoreItem<T, TValue>[]>;\r\n\r\n bulkSet<TValue = any>(metadataRecords: T[], dataRecords: DataRecord<TValue>[]): Promise<string[]>;\r\n}"],"names":["CacheMetadataRecord","MetadataRecord"],"mappings":";AAGO,MAAMA,UAA4BC,EAAe;AAAA,EACpD;AAAA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AACJ;"}
1
+ {"version":3,"file":"cacheContracts.es.js","sources":["D:/Src/my/actdim/public/utico/src/cache/cacheContracts.ts"],"sourcesContent":null,"names":["CacheMetadataRecord","MetadataRecord"],"mappings":";AAGO,MAAMA,UAA4BC,EAAe;AAAA,EACpD;AAAA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AACJ;"}
@@ -1,4 +1,4 @@
1
- export interface IMemoryCache<TKey = any, TValue = any> {
1
+ export type IMemoryCache<TKey = any, TValue = any> = {
2
2
  get keys(): Iterable<TKey>;
3
3
  getKeys: () => Iterable<TKey>;
4
4
  get: (key: TKey) => TValue;
@@ -11,7 +11,7 @@ export interface IMemoryCache<TKey = any, TValue = any> {
11
11
  clear: () => void;
12
12
  get entries(): Iterable<[TKey, TValue]>;
13
13
  getEntries: () => Iterable<[TKey, TValue]>;
14
- }
14
+ };
15
15
  export declare class MemoryCache<TKey = any, TValue = any> implements IMemoryCache {
16
16
  private map;
17
17
  constructor();
@@ -29,5 +29,4 @@ export declare class MemoryCache<TKey = any, TValue = any> implements IMemoryCac
29
29
  getEntries(): MapIterator<[TKey, TValue]>;
30
30
  get entries(): MapIterator<[TKey, TValue]>;
31
31
  }
32
- export declare const globalMemoryCache: MemoryCache<any, any>;
33
32
  //# sourceMappingURL=memoryCache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memoryCache.d.ts","sourceRoot":"","sources":["../../src/cache/memoryCache.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY,CAAC,IAAI,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG;IAClD,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE3B,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,CAAC;IAE3B,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC;IAEjC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC;IAE5B,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,IAAI,CAAC;IAE1E,IAAI,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5B,SAAS,EAAE,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;IAElC,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,MAAM,CAAC;IAE9E,KAAK,EAAE,MAAM,IAAI,CAAC;IAErB,IAAI,OAAO,IAAI,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACrC,UAAU,EAAE,MAAM,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;CAC9C;AAGD,qBAAa,WAAW,CAAC,IAAI,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,CAAE,YAAW,YAAY;IACtE,OAAO,CAAC,GAAG,CAAoB;;IAM/B,IAAI,IAAI,sBAEP;IAED,OAAO;IAIP,GAAG,CAAC,GAAG,EAAE,IAAI;IAIb,QAAQ,CAAC,GAAG,EAAE,IAAI;IAIlB,MAAM,CAAC,GAAG,EAAE,IAAI;IAIhB,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC;IAQ3D,IAAI,MAAM,QAET;IAED,SAAS;IAIT,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC;IAahE,KAAK;IAIL,IAAI,IAAI,WAEP;IAED,UAAU;IAIV,IAAI,OAAO,gCAEV;CACJ;AAED,eAAO,MAAM,iBAAiB,uBAAoB,CAAC"}
1
+ {"version":3,"file":"memoryCache.d.ts","sourceRoot":"","sources":["../../src/cache/memoryCache.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,CAAC,IAAI,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI;IACjD,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,CAAC;IAC3B,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC;IACjC,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC;IAC5B,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,IAAI,CAAC;IACvE,IAAI,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,EAAE,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,MAAM,CAAC;IAC9E,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,OAAO,IAAI,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACxC,UAAU,EAAE,MAAM,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;CAC9C,CAAC;AAEF,qBAAa,WAAW,CAAC,IAAI,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,CAAE,YAAW,YAAY;IACtE,OAAO,CAAC,GAAG,CAAoB;;IAM/B,IAAI,IAAI,sBAEP;IAED,OAAO;IAIP,GAAG,CAAC,GAAG,EAAE,IAAI;IAIb,QAAQ,CAAC,GAAG,EAAE,IAAI;IAIlB,MAAM,CAAC,GAAG,EAAE,IAAI;IAIhB,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC;IAQ3D,IAAI,MAAM,QAET;IAED,SAAS;IAIT,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC;IAahE,KAAK;IAIL,IAAI,IAAI,WAEP;IAED,UAAU;IAIV,IAAI,OAAO,gCAEV;CACJ"}
@@ -1,4 +1,4 @@
1
- class s {
1
+ class i {
2
2
  map;
3
3
  constructor() {
4
4
  this.map = /* @__PURE__ */ new Map();
@@ -43,9 +43,7 @@ class s {
43
43
  return this.map.entries();
44
44
  }
45
45
  }
46
- const n = new s();
47
46
  export {
48
- s as MemoryCache,
49
- n as globalMemoryCache
47
+ i as MemoryCache
50
48
  };
51
49
  //# sourceMappingURL=memoryCache.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memoryCache.es.js","sources":["D:/Src/my/actdim/public/utico/src/cache/memoryCache.ts"],"sourcesContent":["export interface IMemoryCache<TKey = any, TValue = any> {\r\n get keys(): Iterable<TKey>;\r\n\tgetKeys: () => Iterable<TKey>;\r\n\r\n get: (key: TKey) => TValue;\r\n\r\n contains: (key: TKey) => boolean;\r\n\r\n remove: (key: TKey) => void;\r\n\r\n set: (key: TKey, valueOrValueFactory: TValue | (() => TValue)) => void;\r\n\r\n\tget values(): Iterable<TValue>;\r\n getValues: () => Iterable<TValue>;\r\n\r\n getOrSet: (key: TKey, valueOrValueFactory: TValue | (() => TValue)) => TValue;\r\n\r\n clear: () => void;\r\n\r\n\tget entries(): Iterable<[TKey, TValue]>;\r\n getEntries: () => Iterable<[TKey, TValue]>;\r\n}\r\n\r\n// TODO: remove class, create factory method\r\nexport class MemoryCache<TKey = any, TValue = any> implements IMemoryCache {\r\n private map: Map<TKey, TValue>;\r\n\r\n constructor() {\r\n this.map = new Map<TKey, TValue>();\r\n }\r\n\r\n get keys() {\r\n return this.map.keys();\r\n }\r\n\r\n getKeys() {\r\n return this.keys;\r\n }\r\n\r\n get(key: TKey) {\r\n return this.map.get(key);\r\n }\r\n\r\n contains(key: TKey) {\r\n return this.map.has(key);\r\n }\r\n\r\n remove(key: TKey) {\r\n this.map.delete(key);\r\n }\r\n\r\n set(key: TKey, valueOrValueFactory: TValue | (() => TValue)) {\r\n if (valueOrValueFactory instanceof Function) {\r\n this.map.set(key, valueOrValueFactory());\r\n } else {\r\n this.map.set(key, valueOrValueFactory);\r\n }\r\n }\r\n\r\n get values() {\r\n return this.getValues();\r\n }\r\n\r\n getValues() {\r\n return this.values;\r\n }\r\n\r\n getOrSet(key: TKey, valueOrValueFactory: TValue | (() => TValue)) {\r\n if (!this.contains(key)) {\r\n // this.set(key, valueOrValueFactory);\r\n\t\t\tif (valueOrValueFactory instanceof Function) {\r\n // typeof valueOrValueFactory === \"function\"\r\n this.map.set(key, valueOrValueFactory());\r\n } else {\r\n this.map.set(key, valueOrValueFactory);\r\n }\r\n }\r\n return this.get(key);\r\n }\r\n\r\n clear() {\r\n this.map.clear();\r\n }\r\n\r\n get size() {\r\n return this.map.size;\r\n }\r\n\r\n getEntries() {\r\n return this.entries;\r\n }\r\n\r\n get entries() {\r\n return this.map.entries();\r\n }\r\n}\r\n\r\nexport const globalMemoryCache = new MemoryCache();"],"names":["MemoryCache","key","valueOrValueFactory","globalMemoryCache"],"mappings":"AAwBO,MAAMA,EAA8D;AAAA,EAC/D;AAAA,EAER,cAAc;AACV,SAAK,0BAAU,IAAA;AAAA,EACnB;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,KAAK,IAAI,KAAA;AAAA,EACpB;AAAA,EAEA,UAAU;AACN,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAIC,GAAW;AACX,WAAO,KAAK,IAAI,IAAIA,CAAG;AAAA,EAC3B;AAAA,EAEA,SAASA,GAAW;AAChB,WAAO,KAAK,IAAI,IAAIA,CAAG;AAAA,EAC3B;AAAA,EAEA,OAAOA,GAAW;AACd,SAAK,IAAI,OAAOA,CAAG;AAAA,EACvB;AAAA,EAEA,IAAIA,GAAWC,GAA8C;AACzD,IAAIA,aAA+B,WAC/B,KAAK,IAAI,IAAID,GAAKC,EAAA,CAAqB,IAEvC,KAAK,IAAI,IAAID,GAAKC,CAAmB;AAAA,EAE7C;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK,UAAA;AAAA,EAChB;AAAA,EAEA,YAAY;AACR,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,SAASD,GAAWC,GAA8C;AAC9D,WAAK,KAAK,SAASD,CAAG,MAEvBC,aAA+B,WAEtB,KAAK,IAAI,IAAID,GAAKC,EAAA,CAAqB,IAEvC,KAAK,IAAI,IAAID,GAAKC,CAAmB,IAGtC,KAAK,IAAID,CAAG;AAAA,EACvB;AAAA,EAEA,QAAQ;AACJ,SAAK,IAAI,MAAA;AAAA,EACb;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,KAAK,IAAI;AAAA,EACpB;AAAA,EAEA,aAAa;AACT,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK,IAAI,QAAA;AAAA,EACpB;AACJ;AAEO,MAAME,IAAoB,IAAIH,EAAA;"}
1
+ {"version":3,"file":"memoryCache.es.js","sources":["D:/Src/my/actdim/public/utico/src/cache/memoryCache.ts"],"sourcesContent":null,"names":["MemoryCache","key","valueOrValueFactory"],"mappings":"AAeO,MAAMA,EAA8D;AAAA,EAC/D;AAAA,EAER,cAAc;AACV,SAAK,0BAAU,IAAA;AAAA,EACnB;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,KAAK,IAAI,KAAA;AAAA,EACpB;AAAA,EAEA,UAAU;AACN,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAIC,GAAW;AACX,WAAO,KAAK,IAAI,IAAIA,CAAG;AAAA,EAC3B;AAAA,EAEA,SAASA,GAAW;AAChB,WAAO,KAAK,IAAI,IAAIA,CAAG;AAAA,EAC3B;AAAA,EAEA,OAAOA,GAAW;AACd,SAAK,IAAI,OAAOA,CAAG;AAAA,EACvB;AAAA,EAEA,IAAIA,GAAWC,GAA8C;AACzD,IAAIA,aAA+B,WAC/B,KAAK,IAAI,IAAID,GAAKC,EAAA,CAAqB,IAEvC,KAAK,IAAI,IAAID,GAAKC,CAAmB;AAAA,EAE7C;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK,UAAA;AAAA,EAChB;AAAA,EAEA,YAAY;AACR,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,SAASD,GAAWC,GAA8C;AAC9D,WAAK,KAAK,SAASD,CAAG,MAEdC,aAA+B,WAE/B,KAAK,IAAI,IAAID,GAAKC,EAAA,CAAqB,IAEvC,KAAK,IAAI,IAAID,GAAKC,CAAmB,IAGtC,KAAK,IAAID,CAAG;AAAA,EACvB;AAAA,EAEA,QAAQ;AACJ,SAAK,IAAI,MAAA;AAAA,EACb;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,KAAK,IAAI;AAAA,EACpB;AAAA,EAEA,aAAa;AACT,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK,IAAI,QAAA;AAAA,EACpB;AACJ;"}
@@ -39,12 +39,14 @@ export declare class PersistentCache extends StructEventTarget<PersistentCacheEv
39
39
  bulkDelete(keys: string[]): Promise<void>;
40
40
  clear(): Promise<void>;
41
41
  private onGetMetadata;
42
- scheduleServiceJob(): void;
42
+ private scheduleServiceJob;
43
43
  deleteExpired(ts?: number): Promise<string[]>;
44
+ private getInternal;
44
45
  get<TValue = any>(key: string): Promise<StoreItem<CacheMetadataRecord, TValue>>;
45
46
  private onCreateMetadata;
47
+ private setInternal;
46
48
  set<TValue = any>(metadataRecord: CacheMetadataRecord, value: TValue, options: CacheOptions): Promise<string>;
47
- getOrSet<TValue = any>(metadataRecord: CacheMetadataRecord, factory: (metadataRecord: CacheMetadataRecord) => TValue, options: CacheOptions): Promise<StoreItem<CacheMetadataRecord, any>>;
49
+ getOrSet<TValue = any>(metadataRecord: CacheMetadataRecord, factory: (metadataRecord: CacheMetadataRecord) => TValue, options: CacheOptions): Promise<StoreItem<CacheMetadataRecord, TValue>>;
48
50
  bulkGet<TValue = any>(keys: string[]): Promise<StoreItem<CacheMetadataRecord, TValue>[]>;
49
51
  bulkSet<TValue = any>(metadataRecords: CacheMetadataRecord[], dataRecords: DataRecord<TValue>[], optionsProvider: (record: MetadataRecord) => CacheOptions): Promise<string[]>;
50
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"persistentCache.d.ts","sourceRoot":"","sources":["../../src/cache/persistentCache.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAY,cAAc,EAAE,SAAS,EAAmB,MAAM,wBAAwB,CAAC;AAC1G,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,KAAK,QAAQ,GAAG,MAAM,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,MAAM,MAAM,sBAAsB,GAAG;IACjC,cAAc,EAAE,MAAM,CAAC;CAC1B,CAAC;AAMF,MAAM,MAAM,YAAY,GAAG;IACvB,kBAAkB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACnC,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAGF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAClC,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAC9B,KAAK,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAOF,qBAAa,eAAgB,SAAQ,iBAAiB,CAAC,0BAA0B,CAAC;IAE9E,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAE5C,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC;IAE/B,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAElD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM;IAI1B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM;IAI1B,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB;gBAK9C,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB;IAezD,CAAC,MAAM,CAAC,OAAO,CAAC;IAWhB,IAAI;IAIJ,OAAO,CAAC,IAAI;IAMZ,OAAO;IAIP,QAAQ,CAAC,GAAG,EAAE,MAAM;IAIpB,MAAM,CAAC,GAAG,EAAE,MAAM;IAKlB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE;IAKzB,KAAK;IAIL,OAAO,CAAC,aAAa;IAqBrB,kBAAkB;IAiBZ,aAAa,CAAC,EAAE,CAAC,EAAE,MAAM;IAwB/B,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAa/E,OAAO,CAAC,gBAAgB;IAwBxB,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,cAAc,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;IAqB3F,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,cAAc,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,mBAAmB,KAAK,MAAM,EAAE,OAAO,EAAE,YAAY;IAe3I,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;IAqBpC,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,eAAe,EAAE,mBAAmB,EAAE,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,YAAY;CA4B7J"}
1
+ {"version":3,"file":"persistentCache.d.ts","sourceRoot":"","sources":["../../src/cache/persistentCache.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAY,cAAc,EAAE,SAAS,EAAmB,MAAM,wBAAwB,CAAC;AAC1G,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,KAAK,QAAQ,GAAG,MAAM,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,MAAM,MAAM,sBAAsB,GAAG;IACjC,cAAc,EAAE,MAAM,CAAC;CAC1B,CAAC;AAMF,MAAM,MAAM,YAAY,GAAG;IACvB,kBAAkB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACnC,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAGF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAClC,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAC9B,KAAK,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAuBF,qBAAa,eAAgB,SAAQ,iBAAiB,CAAC,0BAA0B,CAAC;IAE9E,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAE5C,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC;IAE/B,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAElD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM;IAI1B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM;IAI1B,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB;gBAK9C,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB;IAezD,CAAC,MAAM,CAAC,OAAO,CAAC;IAYhB,IAAI;IAIJ,OAAO,CAAC,IAAI;IAMZ,OAAO;IAIP,QAAQ,CAAC,GAAG,EAAE,MAAM;IAIpB,MAAM,CAAC,GAAG,EAAE,MAAM;IAKlB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE;IAKzB,KAAK;IAIL,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,kBAAkB;IAmBpB,aAAa,CAAC,EAAE,CAAC,EAAE,MAAM;YA0BjB,WAAW;IAWzB,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAI/E,OAAO,CAAC,gBAAgB;YAuBV,WAAW;IAOnB,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,cAAc,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;IAY3F,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,cAAc,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,mBAAmB,KAAK,MAAM,EAAE,OAAO,EAAE,YAAY;IAgBjJ,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;IAwB9B,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,eAAe,EAAE,mBAAmB,EAAE,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,YAAY;CA4BnK"}
@@ -1,11 +1,11 @@
1
- import { keyOf as l } from "../typeUtils.es.js";
2
- import { StructEventTarget as u, StructEvent as d } from "../structEvent.es.js";
3
- import { v4 as r } from "uuid";
1
+ import { keyOf as u, typed as d } from "../typeUtils.es.js";
2
+ import { StructEventTarget as h, StructEvent as b } from "../structEvent.es.js";
3
+ import { v4 as o } from "uuid";
4
4
  import { StoreDb as n } from "../store/storeDb.es.js";
5
- const b = {
5
+ const p = {
6
6
  cleanupTimeout: 1e3
7
- }, h = ["&key", "createdAt", "updatedAt", "tags", "accessedAt", "expiresAt"];
8
- class o extends u {
7
+ }, c = ["&key", "createdAt", "updatedAt", "tags", "accessedAt", "expiresAt"], f = d(b);
8
+ class l extends h {
9
9
  _db;
10
10
  _isDisposed;
11
11
  _jobTimerId;
@@ -17,16 +17,16 @@ class o extends u {
17
17
  return n.exists(t);
18
18
  }
19
19
  static open(t, e) {
20
- return n.open(t, () => new o(t, e));
20
+ return n.open(t, () => new l(t, e));
21
21
  }
22
22
  // cleanupTimeout - serviceJobTimeout
23
23
  constructor(t, e) {
24
24
  if (super(), !t)
25
25
  throw new Error("Name cannot be empty.");
26
- this._options = { ...e, ...b }, this._db = new n(t, h), this._jobTimerId = null, this.scheduleServiceJob();
26
+ this._options = { ...p, ...e }, this._db = new n(t, c), this._jobTimerId = null, this.scheduleServiceJob();
27
27
  }
28
28
  [Symbol.dispose]() {
29
- this._isDisposed || this._jobTimerId && (window.clearTimeout(this._jobTimerId), this._jobTimerId = null), this._db?.[Symbol.dispose](), this._db = null;
29
+ this._isDisposed || (this._isDisposed = !0, this._jobTimerId && (clearTimeout(this._jobTimerId), this._jobTimerId = null)), this._db?.[Symbol.dispose](), this._db = null;
30
30
  }
31
31
  open() {
32
32
  return this._db.open();
@@ -54,7 +54,7 @@ class o extends u {
54
54
  onGetMetadata(t) {
55
55
  const e = Date.now();
56
56
  t.accessedAt = e;
57
- let i = t.expiresAt ?? e;
57
+ let i = t.expiresAt ?? t.absoluteExpiration ?? e;
58
58
  typeof t.slidingExpiration == "number" && t.slidingExpiration > 0 && (i = e + t.slidingExpiration), typeof t.absoluteExpiration == "number" && t.absoluteExpiration > 0 && i > t.absoluteExpiration && (i = t.absoluteExpiration), t.expiresAt = i;
59
59
  }
60
60
  scheduleServiceJob() {
@@ -65,10 +65,10 @@ class o extends u {
65
65
  } catch (e) {
66
66
  console.error("Cache cleanup failed:", e);
67
67
  } finally {
68
- setTimeout(t, this._options.cleanupTimeout);
68
+ this._isDisposed || (this._jobTimerId = setTimeout(t, this._options.cleanupTimeout));
69
69
  }
70
70
  };
71
- setTimeout(t, this._options.cleanupTimeout);
71
+ this._jobTimerId = setTimeout(t, this._options.cleanupTimeout);
72
72
  }
73
73
  }
74
74
  // evictExpiredAsync/clearExpiredAsync
@@ -77,11 +77,11 @@ class o extends u {
77
77
  t || (t = Date.now());
78
78
  let i;
79
79
  if (await this.exec(async () => {
80
- i = await this._db.metadata.where(l("expiresAt")).below(t).toArray();
80
+ i = await this._db.metadata.where(u("expiresAt")).below(t).toArray();
81
81
  const s = i.map((a) => a.key);
82
- await this.bulkDelete(s);
82
+ e.push(...s), await this._db.bulkDelete(s);
83
83
  }, "rw"), i?.length) {
84
- const s = new d("evict", {
84
+ const s = new f("evict", {
85
85
  detail: {
86
86
  records: i
87
87
  },
@@ -92,40 +92,39 @@ class o extends u {
92
92
  }
93
93
  return e;
94
94
  }
95
+ async getInternal(t) {
96
+ const e = await this._db.metadata.get(t);
97
+ this.onGetMetadata(e), await this._db.metadata.put(e);
98
+ const i = await this._db.data.get(t);
99
+ return {
100
+ metadata: e,
101
+ data: i
102
+ };
103
+ }
95
104
  get(t) {
96
- return this.exec(async () => {
97
- const e = await this._db.metadata.get(t);
98
- this.onGetMetadata(e), await this._db.metadata.put(e);
99
- const i = await this._db.data.get(t);
100
- return {
101
- metadata: e,
102
- data: i
103
- };
104
- }, "rw");
105
+ return this.exec(() => this.getInternal(t), "rw");
105
106
  }
106
107
  onCreateMetadata(t, e) {
107
108
  const i = Date.now();
108
109
  t.createdAt = i, t.updatedAt = i, t.accessedAt = i, t.slidingExpiration = e.slidingExpiration, typeof e.absoluteExpiration == "number" ? t.absoluteExpiration = e.absoluteExpiration : e.absoluteExpiration instanceof Date && (t.absoluteExpiration = e.absoluteExpiration.getTime()), typeof e.ttl == "number" && (t.absoluteExpiration = i + e.ttl), t.absoluteExpiration == null && (t.absoluteExpiration = 1 / 0), this.onGetMetadata(t);
109
110
  }
111
+ async setInternal(t, e) {
112
+ const i = await this._db.metadata.put(t);
113
+ return await this._db.data.put({ key: t.key, value: e }), i;
114
+ }
110
115
  // upsert
111
- set(t, e, i) {
116
+ async set(t, e, i) {
112
117
  if (e === void 0)
113
118
  throw new Error('Invalid parameter: "value".');
114
- return t.key || (t.key = r()), this.onCreateMetadata(t, i), this.exec(async () => {
115
- const s = await this._db.metadata.put(t);
116
- return await this._db.data.put({
117
- key: t.key,
118
- value: e
119
- }), s;
120
- }, "rw");
119
+ return t.key || (t.key = o()), this.onCreateMetadata(t, i), this.exec(() => this.setInternal(t, e), "rw");
121
120
  }
122
121
  // getOrAdd
123
- getOrSet(t, e, i) {
122
+ async getOrSet(t, e, i) {
124
123
  if (!t.key)
125
124
  throw new Error('Key cannot be empty. Parameter: "metadataRecord".');
126
125
  return this.exec(async () => {
127
- const s = await this.get(t.key);
128
- return s || (await this.set(t, e(t), i), this.get(t.key));
126
+ const s = await this.getInternal(t.key);
127
+ return s || (this.onCreateMetadata(t, i), await this.setInternal(t, e(t)), this.getInternal(t.key));
129
128
  }, "rw");
130
129
  }
131
130
  // getMany
@@ -139,13 +138,15 @@ class o extends u {
139
138
  });
140
139
  await this._db.metadata.bulkPut(i);
141
140
  const s = await this._db.data.bulkGet(t);
142
- for (const a of s)
143
- e.get(a.key).data = a;
141
+ for (const a of s) {
142
+ const r = e.get(a.key);
143
+ r && (r.data = a);
144
+ }
144
145
  return [...e.values()];
145
146
  }, "rw");
146
147
  }
147
148
  // setMeny
148
- bulkSet(t, e, i) {
149
+ async bulkSet(t, e, i) {
149
150
  let s;
150
151
  if (t && (s = t.findIndex((a) => !a)) >= 0)
151
152
  throw new Error(`Invalid metadata record. Parameter: "metadataRecords". Index: ${s}.`);
@@ -154,7 +155,7 @@ class o extends u {
154
155
  if (!t && !e)
155
156
  throw new Error("No data provided.");
156
157
  for (const a of t)
157
- a.key || (a.key = r()), this.onCreateMetadata(a, i(a));
158
+ a.key || (a.key = o()), this.onCreateMetadata(a, i(a));
158
159
  return this.exec(async () => {
159
160
  let a;
160
161
  return t && (a = await this._db.metadata.bulkPut(t, void 0, { allKeys: !0 })), e && await this._db.data.bulkPut(e, void 0, { allKeys: !0 }), a;
@@ -162,6 +163,6 @@ class o extends u {
162
163
  }
163
164
  }
164
165
  export {
165
- o as PersistentCache
166
+ l as PersistentCache
166
167
  };
167
168
  //# sourceMappingURL=persistentCache.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"persistentCache.es.js","sources":["D:/Src/my/actdim/public/utico/src/cache/persistentCache.ts"],"sourcesContent":["import { keyOf } from \"@/typeUtils\";\r\nimport { StructEvent, StructEventTarget } from \"@/structEvent\";\r\nimport { v4 as uuid } from \"uuid\";\r\nimport { DataRecord, FieldDef, MetadataRecord, StoreItem, TransactionMode } from \"@/store/storeContracts\";\r\nimport { CacheMetadataRecord } from \"./cacheContracts\";\r\nimport { StoreDb } from \"@/store/storeDb\";\r\n\r\ntype Duration = number | { seconds?: number; minutes?: number; hours?: number };\r\n\r\nexport type PersistentCacheOptions = {\r\n cleanupTimeout: number;\r\n};\r\n\r\nconst defaultPersistentCacheOptions = {\r\n cleanupTimeout: 1000\r\n} satisfies PersistentCacheOptions;\r\n\r\nexport type CacheOptions = {\r\n absoluteExpiration?: Date | number;\r\n ttl?: Duration;\r\n slidingExpiration?: number; // \"autoRenewOnUse\" pattern\r\n};\r\n\r\n// CacheEntryEvictionEvent\r\nexport type CacheEvictionEvent = {\r\n records: CacheMetadataRecord[];\r\n};\r\n\r\ntype PersistentCacheEventStruct = {\r\n evict: CacheEvictionEvent;\r\n};\r\n\r\n// (registry/catalog)fieldNames\r\nconst metadataFieldDefTemplate = [\"&key\", \"createdAt\", \"updatedAt\", \"tags\", \"accessedAt\", \"expiresAt\"] satisfies (FieldDef<keyof CacheMetadataRecord>)[];\r\n\r\n// implements Struct<StructEventTarget<PersistentCacheEventStruct>>\r\n// PersistentCacheManager\r\nexport class PersistentCache extends StructEventTarget<PersistentCacheEventStruct> {\r\n\r\n protected _db: StoreDb<CacheMetadataRecord>;\r\n\r\n protected _isDisposed: boolean;\r\n\r\n private _jobTimerId: number;\r\n\r\n private readonly _options: PersistentCacheOptions;\r\n\r\n static delete(name: string) {\r\n return StoreDb.delete(name);\r\n }\r\n\r\n static exists(name: string) {\r\n return StoreDb.exists(name);\r\n }\r\n\r\n static open(name: string, options?: PersistentCacheOptions) {\r\n return StoreDb.open(name, () => new PersistentCache(name, options));\r\n }\r\n\r\n // cleanupTimeout - serviceJobTimeout\r\n constructor(name: string, options: PersistentCacheOptions) {\r\n super();\r\n if (!name) {\r\n throw new Error(\"Name cannot be empty.\");\r\n }\r\n this._options = { ...options, ...defaultPersistentCacheOptions };\r\n\r\n this._db = new StoreDb<CacheMetadataRecord>(name, metadataFieldDefTemplate);\r\n\r\n this._jobTimerId = null;\r\n\r\n // https://docs.nestjs.com/techniques/task-scheduling\r\n this.scheduleServiceJob();\r\n }\r\n\r\n [Symbol.dispose]() {\r\n if (!this._isDisposed) {\r\n if (this._jobTimerId) {\r\n window.clearTimeout(this._jobTimerId);\r\n this._jobTimerId = null;\r\n }\r\n }\r\n this._db?.[Symbol.dispose]();\r\n this._db = null;\r\n }\r\n\r\n open() {\r\n return this._db.open()\r\n }\r\n\r\n private exec<T>(\r\n action: () => Promise<T>, // scope\r\n transactionMode: TransactionMode = \"r!\") {\r\n return this._db.exec(action, transactionMode);\r\n }\r\n\r\n getKeys() {\r\n return this._db.getKeys();\r\n }\r\n\r\n contains(key: string) {\r\n return this._db.contains(key);\r\n }\r\n\r\n delete(key: string) {\r\n return this._db.deleteOne(key);\r\n }\r\n\r\n // deleteMany\r\n bulkDelete(keys: string[]) {\r\n return this._db.bulkDelete(keys);\r\n }\r\n\r\n // clearAllAsync\r\n clear() {\r\n return this._db.clear();\r\n }\r\n\r\n private onGetMetadata(record: CacheMetadataRecord) {\r\n const now = Date.now();\r\n record.accessedAt = now;\r\n\r\n let newExpiresAt = record.expiresAt ?? now;\r\n\r\n if (typeof record.slidingExpiration === 'number' && record.slidingExpiration > 0) {\r\n newExpiresAt = now + record.slidingExpiration;\r\n }\r\n\r\n if (\r\n typeof record.absoluteExpiration === 'number' &&\r\n record.absoluteExpiration > 0 &&\r\n newExpiresAt > record.absoluteExpiration\r\n ) {\r\n newExpiresAt = record.absoluteExpiration;\r\n }\r\n\r\n record.expiresAt = newExpiresAt;\r\n }\r\n\r\n scheduleServiceJob() {\r\n if (this._options.cleanupTimeout) {\r\n const doWork = async () => {\r\n try {\r\n // purge expired entries\r\n await this.deleteExpired();\r\n } catch (err) {\r\n console.error(\"Cache cleanup failed:\", err);\r\n } finally {\r\n setTimeout(doWork, this._options.cleanupTimeout);\r\n }\r\n };\r\n setTimeout(doWork, this._options.cleanupTimeout);\r\n }\r\n }\r\n\r\n // evictExpiredAsync/clearExpiredAsync\r\n async deleteExpired(ts?: number) {\r\n const result: string[] = []; // output keys\r\n if (!ts) {\r\n ts = Date.now();\r\n }\r\n let metadataRecords: MetadataRecord[];\r\n await this.exec(async () => {\r\n metadataRecords = await this._db.metadata.where(keyOf<CacheMetadataRecord>(\"expiresAt\")).below(ts).toArray();\r\n const keys = metadataRecords.map(x => x.key);\r\n await this.bulkDelete(keys);\r\n }, \"rw\");\r\n if (metadataRecords?.length) {\r\n const evt = new StructEvent<PersistentCacheEventStruct, this>(\"evict\", {\r\n detail: {\r\n records: metadataRecords\r\n },\r\n target: this,\r\n cancelable: true\r\n });\r\n this.dispatchEvent(evt);\r\n }\r\n return result;\r\n }\r\n\r\n get<TValue = any>(key: string): Promise<StoreItem<CacheMetadataRecord, TValue>> {\r\n return this.exec(async () => {\r\n const metadataRecord = await this._db.metadata.get(key);\r\n this.onGetMetadata(metadataRecord);\r\n await this._db.metadata.put(metadataRecord);\r\n const dataRecord = await this._db.data.get(key);\r\n return {\r\n metadata: metadataRecord,\r\n data: dataRecord\r\n } as StoreItem<CacheMetadataRecord, TValue>;\r\n }, \"rw\");\r\n }\r\n\r\n private onCreateMetadata(record: CacheMetadataRecord, options: CacheOptions) {\r\n const now = Date.now();\r\n\r\n record.createdAt = now;\r\n record.updatedAt = now;\r\n record.accessedAt = now;\r\n\r\n record.slidingExpiration = options.slidingExpiration;\r\n if (typeof options.absoluteExpiration === \"number\") {\r\n record.absoluteExpiration = options.absoluteExpiration;\r\n } else if (options.absoluteExpiration instanceof Date) {\r\n record.absoluteExpiration = options.absoluteExpiration.getTime();\r\n }\r\n if (typeof options.ttl === \"number\") {\r\n record.absoluteExpiration = now + options.ttl;\r\n }\r\n if (record.absoluteExpiration == undefined) {\r\n record.absoluteExpiration = Infinity\r\n }\r\n\r\n this.onGetMetadata(record);\r\n\r\n }\r\n // upsert\r\n set<TValue = any>(metadataRecord: CacheMetadataRecord, value: TValue, options: CacheOptions) {\r\n if (value === undefined) {\r\n throw new Error('Invalid parameter: \"value\".');\r\n }\r\n if (!metadataRecord.key) {\r\n metadataRecord.key = uuid();\r\n }\r\n\r\n this.onCreateMetadata(metadataRecord, options);\r\n\r\n return this.exec(async () => {\r\n const result = await this._db.metadata.put(metadataRecord);\r\n await this._db.data.put({\r\n key: metadataRecord.key,\r\n value: value\r\n });\r\n return result;\r\n }, \"rw\");\r\n }\r\n\r\n // getOrAdd\r\n getOrSet<TValue = any>(metadataRecord: CacheMetadataRecord, factory: (metadataRecord: CacheMetadataRecord) => TValue, options: CacheOptions) {\r\n if (!metadataRecord.key) {\r\n throw new Error(`Key cannot be empty. Parameter: \"metadataRecord\".`);\r\n }\r\n return this.exec(async () => {\r\n const existingStoreItem = await this.get(metadataRecord.key);\r\n if (existingStoreItem) {\r\n return existingStoreItem;\r\n }\r\n await this.set(metadataRecord, factory(metadataRecord), options);\r\n return this.get(metadataRecord.key);\r\n }, \"rw\");\r\n }\r\n\r\n // getMany\r\n bulkGet<TValue = any>(keys: string[]) {\r\n return this.exec(async () => {\r\n const map = new Map<string, StoreItem<CacheMetadataRecord, TValue>>();\r\n const metadataRecords = await this._db.metadata.bulkGet(keys);\r\n for (const metadataRecord of metadataRecords) {\r\n this.onGetMetadata(metadataRecord);\r\n map.set(metadataRecord.key, {\r\n metadata: metadataRecord,\r\n // data: undefined\r\n });\r\n }\r\n await this._db.metadata.bulkPut(metadataRecords);\r\n const dataRecords = await this._db.data.bulkGet(keys);\r\n for (const dataRecord of dataRecords) {\r\n map.get(dataRecord.key).data = dataRecord;\r\n }\r\n return [...map.values()];\r\n }, \"rw\");\r\n }\r\n\r\n // setMeny\r\n bulkSet<TValue = any>(metadataRecords: CacheMetadataRecord[], dataRecords: DataRecord<TValue>[], optionsProvider: (record: MetadataRecord) => CacheOptions) {\r\n let index: number;\r\n if (metadataRecords && (index = metadataRecords.findIndex(x => !x)) >= 0) {\r\n throw new Error(`Invalid metadata record. Parameter: \"metadataRecords\". Index: ${index}.`);\r\n }\r\n if (dataRecords && (index = dataRecords.findIndex(x => (!x || !x.key || x.value === undefined))) >= 0) {\r\n throw new Error(`Invalid data record. Parameter: \"dataRecords\". Index: ${index}.`);\r\n }\r\n if (!metadataRecords && !dataRecords) {\r\n throw new Error(\"No data provided.\");\r\n }\r\n for (const metadataRecord of metadataRecords) {\r\n if (!metadataRecord.key) {\r\n metadataRecord.key = uuid();\r\n }\r\n this.onCreateMetadata(metadataRecord, optionsProvider(metadataRecord));\r\n }\r\n return this.exec(async () => {\r\n let mKeys: string[], dKeys: string[];\r\n if (metadataRecords) {\r\n mKeys = await this._db.metadata.bulkPut(metadataRecords, undefined, { allKeys: true });\r\n }\r\n if (dataRecords) {\r\n dKeys = await this._db.data.bulkPut(dataRecords, undefined, { allKeys: true });\r\n }\r\n return mKeys;\r\n }, \"rw\");\r\n }\r\n}\r\n\r\n// extra links:\r\n// https://demo.agektmr.com/storage/\r\n// https://www.html5rocks.com/en/tutorials/offline/quota-research/\r\n// https://www.raymondcamden.com/2015/04/17/indexeddb-and-limits\r\n// https://github.com/jonnysmith1981/getIndexedDbSize/blob/master/getIndexedDbSize.js\r\n// https://developer.chrome.com/apps/offline_storage#query\r\n// https://golb.hplar.ch/2018/01/IndexedDB-programming-with-Dexie-js.html\r\n// http://www.forerunnerdb.com/licensing.html\r\n// https://github.com/ignasbernotas/dexie-relationships\r\n// https://medium.com/square-corner-blog/useful-tools-headless-chrome-puppeteer-for-browser-automation-testing-1ac7707bad40\r\n// https://developers.google.com/web/updates/2017/06/headless-karma-mocha-chai?hl=ru\r\n// https://github.com/puppeteer/puppeteer\r\n// https://medium.com/web-standards/puppeteer-crawl-to-markdown-7752dff36b68\r\n\r\n/*\r\n(async () => {\r\n const alreadyPersisted = await window.navigator.storage?.persisted()\r\n\r\n if (alreadyPersisted) {\r\n return;\r\n }\r\n\r\n const persistentModeEnabled = await window.navigator.storage?.persist()\r\n\r\n if (!persistentModeEnabled) { \r\n // Storage may be cleared by the UA under storage pressure\r\n } else {\r\n // Storage will be persistent\r\n // Storage will not be cleared except by explicit user action\r\n }\r\n})();\r\n*/\r\n"],"names":["defaultPersistentCacheOptions","metadataFieldDefTemplate","PersistentCache","StructEventTarget","name","StoreDb","options","action","transactionMode","key","keys","record","now","newExpiresAt","doWork","err","ts","result","metadataRecords","keyOf","x","evt","StructEvent","metadataRecord","dataRecord","value","uuid","factory","existingStoreItem","map","dataRecords","optionsProvider","index","mKeys"],"mappings":"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"}
1
+ {"version":3,"file":"persistentCache.es.js","sources":["D:/Src/my/actdim/public/utico/src/cache/persistentCache.ts"],"sourcesContent":null,"names":["defaultPersistentCacheOptions","metadataFieldDefTemplate","PersistentCacheEvent","typed","StructEvent","PersistentCache","StructEventTarget","name","StoreDb","options","action","transactionMode","key","keys","record","now","newExpiresAt","doWork","err","ts","result","metadataRecords","keyOf","x","evt","metadataRecord","dataRecord","value","uuid","factory","existingStoreItem","map","dataRecords","item","optionsProvider","index","mKeys"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  declare const _default: {
2
- dateTime: import('./dateTimeDataFormat').IDateTimeDataFormat;
2
+ dateTime: import('./dateTimeDataFormat').DateTimeDataFormat;
3
3
  };
4
4
  export default _default;
5
5
  //# sourceMappingURL=dataFormats.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataFormats.es.js","sources":["D:/Src/my/actdim/public/utico/src/dataFormats.ts"],"sourcesContent":["import dateTimeDataFormat from './dateTimeDataFormat';\r\nexport default {\r\n dateTime: dateTimeDataFormat\r\n};"],"names":["dataFormats","dateTimeDataFormat"],"mappings":";AACA,MAAAA,IAAe;AAAA,EACX,UAAUC;AACd;"}
1
+ {"version":3,"file":"dataFormats.es.js","sources":["D:/Src/my/actdim/public/utico/src/dataFormats.ts"],"sourcesContent":null,"names":["dataFormats","dateTimeDataFormat"],"mappings":";AACA,MAAAA,IAAe;AAAA,EACX,UAAUC;AACd;"}
@@ -1,12 +1,12 @@
1
- import { Moment, default as moment } from 'moment';
2
- export interface IDateTimeDataFormat {
1
+ import { DateTime } from 'luxon';
2
+ export type DateTimeDataFormat = {
3
3
  serializationFormat: string;
4
- normalize: (source: string | number | Date) => Date;
5
- serialize: (source: string | number | Date | Moment) => string;
6
- deserialize: (value: string) => Moment;
7
- tryDeserialize: (value: string) => Moment;
8
- isValid: (source: string | number | Date) => boolean;
9
- }
4
+ normalize: (source: string | number | Date) => Date | null;
5
+ serialize: (source: string | number | Date | DateTime) => string | null;
6
+ deserialize: (value: string) => DateTime;
7
+ tryDeserialize: (value: string) => DateTime | null;
8
+ isValid: (source: string | Date) => boolean;
9
+ };
10
10
  export declare enum DateNumberFormat {
11
11
  UnixTimeMilliseconds = 0,
12
12
  UnixTimeSeconds = 1,
@@ -14,13 +14,14 @@ export declare enum DateNumberFormat {
14
14
  }
15
15
  export declare function getDateFromOADate(oaDate: number): Date;
16
16
  export declare function getOADateFromDate(date: Date): string;
17
- export declare function getDateFromNumber(value: number, dateNumberFormat?: DateNumberFormat): Date;
17
+ export declare function getDateFromNumber(value: number, dateNumberFormat?: DateNumberFormat): Date | null;
18
+ export declare function fromLocalDate(date: Date): DateTime | null;
18
19
  export type DateValueFormats = {
19
20
  string?: string;
20
21
  number?: DateNumberFormat;
21
22
  };
22
- export declare function toMoment(source: any, formats?: DateValueFormats): Moment;
23
- export declare function formatDate(date: Date | moment.Moment, format?: string): string;
24
- declare const dateTimeFormat: IDateTimeDataFormat;
23
+ export declare function toDateTime(source: any, formats?: DateValueFormats): DateTime | null;
24
+ export declare function formatDate(date: Date | DateTime, format?: string): string;
25
+ declare const dateTimeFormat: DateTimeDataFormat;
25
26
  export default dateTimeFormat;
26
27
  //# sourceMappingURL=dateTimeDataFormat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dateTimeDataFormat.d.ts","sourceRoot":"","sources":["../src/dateTimeDataFormat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAM5B,MAAM,WAAW,mBAAmB;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACpD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,KAAK,MAAM,CAAC;IAC/D,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC;CACxD;AAED,oBAAY,gBAAgB;IACxB,oBAAoB,IAAA;IACpB,eAAe,IAAA;IACf,MAAM,IAAA;CACT;AAiBD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,QAO/C;AAOD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,UAQ3C;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,mBAAwC,QAYxG;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,gBAAgB,UAoB/D;AA+BD,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,UAiBrE;AAED,QAAA,MAAM,cAAc,EA0Df,mBAAmB,CAAC;AAEzB,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"dateTimeDataFormat.d.ts","sourceRoot":"","sources":["../src/dateTimeDataFormat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAOjC,MAAM,MAAM,kBAAkB,GAAG;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3D,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,QAAQ,KAAK,MAAM,GAAG,IAAI,CAAC;IACxE,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,QAAQ,CAAC;IACzC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC;IACnD,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC;CAC/C,CAAC;AAEF,oBAAY,gBAAgB;IACxB,oBAAoB,IAAA;IACpB,eAAe,IAAA;IACf,MAAM,IAAA;CACT;AAWD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAOtD;AAOD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAQpD;AAED,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,MAAM,EACb,gBAAgB,mBAAwC,GACzD,IAAI,GAAG,IAAI,CAUb;AAKD,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,GAAG,IAAI,CAGzD;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAkBF,wBAAgB,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,QAAQ,GAAG,IAAI,CAenF;AAGD,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAazE;AAED,QAAA,MAAM,cAAc,EAAE,kBA2CrB,CAAC;AAEF,eAAe,cAAc,CAAC"}