@actdim/utico 0.9.2 → 0.9.4

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 (55) hide show
  1. package/dist/arrayExtensions.es.js.map +1 -1
  2. package/dist/cache/memoryCache.es.js +5 -8
  3. package/dist/cache/memoryCache.es.js.map +1 -1
  4. package/dist/cache/persistentCache.d.ts +15 -19
  5. package/dist/cache/persistentCache.d.ts.map +1 -1
  6. package/dist/cache/persistentCache.es.js +80 -93
  7. package/dist/cache/persistentCache.es.js.map +1 -1
  8. package/dist/dataFormats.es.js.map +1 -1
  9. package/dist/dateTimeDataFormat.es.js +11 -11
  10. package/dist/dateTimeDataFormat.es.js.map +1 -1
  11. package/dist/gfx/canvasUtils.d.ts +8 -2
  12. package/dist/gfx/canvasUtils.d.ts.map +1 -1
  13. package/dist/gfx/canvasUtils.es.js +85 -74
  14. package/dist/gfx/canvasUtils.es.js.map +1 -1
  15. package/dist/gfx/color.es.js +1 -2
  16. package/dist/gfx/color.es.js.map +1 -1
  17. package/dist/i18n/enUsCulture.es.js.map +1 -1
  18. package/dist/math.es.js.map +1 -1
  19. package/dist/metadata.es.js.map +1 -1
  20. package/dist/mutex.es.js +3 -8
  21. package/dist/mutex.es.js.map +1 -1
  22. package/dist/store/dataStore.d.ts +33 -0
  23. package/dist/store/dataStore.d.ts.map +1 -0
  24. package/dist/store/dataStore.es.js +49 -0
  25. package/dist/store/dataStore.es.js.map +1 -0
  26. package/dist/store/persistentStore.d.ts +20 -0
  27. package/dist/store/persistentStore.d.ts.map +1 -0
  28. package/dist/store/persistentStore.es.js +96 -0
  29. package/dist/store/persistentStore.es.js.map +1 -0
  30. package/dist/store/storeContracts.d.ts +6 -0
  31. package/dist/store/storeContracts.d.ts.map +1 -0
  32. package/dist/store/storeContracts.es.js +2 -0
  33. package/dist/store/storeContracts.es.js.map +1 -0
  34. package/dist/stringCore.es.js.map +1 -1
  35. package/dist/structEvent.es.js +12 -16
  36. package/dist/structEvent.es.js.map +1 -1
  37. package/dist/typeUtils.es.js.map +1 -1
  38. package/dist/utils.d.ts +1 -0
  39. package/dist/utils.d.ts.map +1 -1
  40. package/dist/utils.es.js +44 -36
  41. package/dist/utils.es.js.map +1 -1
  42. package/dist/watchable.es.js.map +1 -1
  43. package/package.json +16 -14
  44. package/dist/cache/cacheDb.d.ts +0 -30
  45. package/dist/cache/cacheDb.d.ts.map +0 -1
  46. package/dist/cache/cacheDb.es.js +0 -50
  47. package/dist/cache/cacheDb.es.js.map +0 -1
  48. package/dist/storage/persistentStorage.d.ts +0 -11
  49. package/dist/storage/persistentStorage.d.ts.map +0 -1
  50. package/dist/storage/persistentStorage.es.js +0 -28
  51. package/dist/storage/persistentStorage.es.js.map +0 -1
  52. package/dist/storage/storageContracts.d.ts +0 -6
  53. package/dist/storage/storageContracts.d.ts.map +0 -1
  54. package/dist/storage/storageContracts.es.js +0 -2
  55. package/dist/storage/storageContracts.es.js.map +0 -1
@@ -1,30 +0,0 @@
1
- import { default as Dexie } from 'dexie';
2
- export interface ICacheEntry {
3
- id: string;
4
- createdAt: number;
5
- accessedAt: number;
6
- slidingExpiration?: number;
7
- expiresAt: number;
8
- }
9
- export interface ICacheDataItem {
10
- readonly id: string;
11
- readonly value: any;
12
- }
13
- export declare class CacheEntry implements ICacheEntry {
14
- id: string;
15
- createdAt: number;
16
- accessedAt: number;
17
- expiresAt: number;
18
- constructor(src: Partial<CacheEntry>);
19
- }
20
- export declare class CacheDataItem implements ICacheDataItem {
21
- id: string;
22
- value: any;
23
- constructor(src: Partial<CacheDataItem>);
24
- }
25
- export declare class CacheDb extends Dexie {
26
- registry: Dexie.Table<ICacheEntry, string>;
27
- data: Dexie.Table<ICacheDataItem, string>;
28
- constructor(dbName: string);
29
- }
30
- //# sourceMappingURL=cacheDb.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cacheDb.d.ts","sourceRoot":"","sources":["../../src/cache/cacheDb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAElB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,SAAS,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;CACvB;AAOD,qBAAa,UAAW,YAAW,WAAW;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAElB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;gBAEN,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC;CASvC;AAGD,qBAAa,aAAc,YAAW,cAAc;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,GAAG,CAAC;gBAEC,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC;CAQ1C;AAED,qBAAa,OAAQ,SAAQ,KAAK;IAI9B,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;gBAE9B,MAAM,EAAE,MAAM;CAgD7B"}
@@ -1,50 +0,0 @@
1
- var d = Object.defineProperty;
2
- var l = (s, t, a) => t in s ? d(s, t, { enumerable: !0, configurable: !0, writable: !0, value: a }) : s[t] = a;
3
- var e = (s, t, a) => l(s, typeof t != "symbol" ? t + "" : t, a);
4
- import b from "dexie";
5
- const c = "registry", i = "data", h = ["id", "createdAt", "accessedAt", "expiresAt"], y = ["id", "value"];
6
- class u {
7
- constructor(t) {
8
- e(this, "id");
9
- e(this, "createdAt");
10
- // updatedAt: number;
11
- e(this, "accessedAt");
12
- e(this, "expiresAt");
13
- Object.assign(this, t);
14
- }
15
- }
16
- class A {
17
- constructor(t) {
18
- e(this, "id");
19
- e(this, "value");
20
- Object.assign(this, t);
21
- }
22
- // constructor(key: string, value: string) {
23
- // this.key = key;
24
- // this.value = value;
25
- // }
26
- }
27
- class j extends b {
28
- constructor(a) {
29
- if (!a)
30
- throw new Error("Invalid database name");
31
- super(a);
32
- // private _dbName: string;
33
- // catalog/entries
34
- e(this, "registry");
35
- e(this, "data");
36
- const r = this;
37
- r.version(1).stores({
38
- [c]: h.join(", "),
39
- [i]: y.join(", ")
40
- }), this.registry = r.table(c), this.data = r.table(i), r.registry.hook("deleting", async (o, g, n) => {
41
- await n.table(i).delete(o);
42
- });
43
- }
44
- }
45
- export {
46
- A as CacheDataItem,
47
- j as CacheDb,
48
- u as CacheEntry
49
- };
50
- //# sourceMappingURL=cacheDb.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cacheDb.es.js","sources":["../../src/cache/cacheDb.ts"],"sourcesContent":["import Dexie from \"dexie\"; // https://dexie.org/docs/Typescript\r\n\r\nconst registryTableName = \"registry\"; // \"catalog\"\r\nconst dataTableName = \"data\";\r\n\r\nexport interface ICacheEntry {\r\n id: string;\r\n createdAt: number;\r\n // updatedAt: number; // lastModified\r\n accessedAt: number; // lastAccessed/lastAccessTime\r\n slidingExpiration?: number;\r\n // absoluteExpiration?: number;\r\n expiresAt: number; // expiryTime\r\n}\r\n\r\n// ICacheDataRecord\r\nexport interface ICacheDataItem {\r\n readonly id: string;\r\n readonly value: any;\r\n}\r\n\r\n// (registry/catalog)PropertyNames\r\nconst entryPropertyNames: (keyof ICacheEntry)[] = [\"id\", \"createdAt\", \"accessedAt\", \"expiresAt\"];\r\n\r\nconst dataItemPropertyNames: (keyof ICacheDataItem)[] = [\"id\", \"value\"];\r\n\r\nexport class CacheEntry implements ICacheEntry {\r\n id: string;\r\n createdAt: number;\r\n // updatedAt: number;\r\n accessedAt: number;\r\n expiresAt: number;\r\n\r\n constructor(src: Partial<CacheEntry>) {\r\n Object.assign(this, src);\r\n // Define navigation properties.\r\n // Making them non-enumerable will prevent them from being handled by indexedDB\r\n // when doing put() or add().\r\n // Object.defineProperties(this, {\r\n // ...: { value: [], enumerable: false, writable: true }\r\n // });\r\n }\r\n}\r\n\r\n// CacheDataRecord\r\nexport class CacheDataItem implements ICacheDataItem {\r\n id: string;\r\n value: any;\r\n\r\n constructor(src: Partial<CacheDataItem>) {\r\n Object.assign(this, src);\r\n }\r\n\r\n // constructor(key: string, value: string) {\r\n // this.key = key;\r\n // this.value = value;\r\n // }\r\n}\r\n\r\nexport class CacheDb extends Dexie {\r\n // private _dbName: string;\r\n\r\n // catalog/entries\r\n registry: Dexie.Table<ICacheEntry, string>;\r\n data: Dexie.Table<ICacheDataItem, string>;\r\n\r\n constructor(dbName: string) {\r\n // navigator.storage.estimate()\r\n // navigator.webkitTemporaryStorage.queryUsageAndQuota()\r\n\r\n if (!dbName) {\r\n throw new Error(\"Invalid database name\"); // cannot be empty\r\n }\r\n\r\n super(dbName); // {autoOpen: false}\r\n\r\n // this._dbName = dbName;\r\n\r\n const db = this;\r\n\r\n //\r\n // Define tables and indexes\r\n //\r\n\r\n db.version(1).stores({\r\n [registryTableName]: entryPropertyNames.join(\", \"),\r\n [dataTableName]: dataItemPropertyNames.join(\", \")\r\n });\r\n\r\n // db.version(2).stores({\r\n // \t// ...\r\n // }).upgrade(trans => {\r\n // \treturn trans.table(cacheEntryTableName).toCollection().modify((entry: ICacheEntry) => {\r\n // \t\t// ...\r\n // \t});\r\n // });\r\n\r\n this.registry = db.table(registryTableName);\r\n this.data = db.table(dataTableName);\r\n\r\n db.registry.hook(\"deleting\", async (key, obj, transaction) => {\r\n await transaction.table(dataTableName).delete(key);\r\n });\r\n\r\n // db.registry.mapToClass(CacheEntry);\r\n // db.data.mapToClass(CacheDataItem);\r\n\r\n // db.on('populate', () => db.registry.bulkAdd([\r\n // \t// ...\r\n // ]));\r\n\r\n // Dexie.delete(this._dbName);\r\n // this.delete();\r\n }\r\n}\r\n"],"names":["registryTableName","dataTableName","entryPropertyNames","dataItemPropertyNames","CacheEntry","src","__publicField","CacheDataItem","CacheDb","Dexie","dbName","db","key","obj","transaction"],"mappings":";;;;AAEA,MAAMA,IAAoB,YACpBC,IAAgB,QAmBhBC,IAA4C,CAAC,MAAM,aAAa,cAAc,WAAW,GAEzFC,IAAkD,CAAC,MAAM,OAAO;AAE/D,MAAMC,EAAkC;AAAA,EAO3C,YAAYC,GAA0B;AANtC,IAAAC,EAAA;AACA,IAAAA,EAAA;AAEA;AAAA,IAAAA,EAAA;AACA,IAAAA,EAAA;AAGW,WAAA,OAAO,MAAMD,CAAG;AAAA,EAO3B;AACJ;AAGO,MAAME,EAAwC;AAAA,EAIjD,YAAYF,GAA6B;AAHzC,IAAAC,EAAA;AACA,IAAAA,EAAA;AAGW,WAAA,OAAO,MAAMD,CAAG;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAMJ;AAEO,MAAMG,UAAgBC,EAAM;AAAA,EAO/B,YAAYC,GAAgB;AAIxB,QAAI,CAACA;AACK,YAAA,IAAI,MAAM,uBAAuB;AAG3C,UAAMA,CAAM;AAXhB;AAAA;AAAA,IAAAJ,EAAA;AACA,IAAAA,EAAA;AAcI,UAAMK,IAAK;AAMR,IAAAA,EAAA,QAAQ,CAAC,EAAE,OAAO;AAAA,MACjB,CAACX,CAAiB,GAAGE,EAAmB,KAAK,IAAI;AAAA,MACjD,CAACD,CAAa,GAAGE,EAAsB,KAAK,IAAI;AAAA,IAAA,CACnD,GAUI,KAAA,WAAWQ,EAAG,MAAMX,CAAiB,GACrC,KAAA,OAAOW,EAAG,MAAMV,CAAa,GAElCU,EAAG,SAAS,KAAK,YAAY,OAAOC,GAAKC,GAAKC,MAAgB;AAC1D,YAAMA,EAAY,MAAMb,CAAa,EAAE,OAAOW,CAAG;AAAA,IAAA,CACpD;AAAA,EAWL;AACJ;"}
@@ -1,11 +0,0 @@
1
- import { IPersistentStorage } from './storageContracts';
2
- export declare class PersistentStorage<T> implements IPersistentStorage {
3
- private slotName;
4
- private useEncryption;
5
- constructor(useEncryption?: boolean, slotName?: string);
6
- getKeyInSlot(key: string): string;
7
- get(key: string, useEncryption?: boolean): string;
8
- set(key: string, value: string, useEncryption?: boolean): void;
9
- remove(key: string): void;
10
- }
11
- //# sourceMappingURL=persistentStorage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"persistentStorage.d.ts","sourceRoot":"","sources":["../../src/storage/persistentStorage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAuBxD,qBAAa,iBAAiB,CAAC,CAAC,CAAE,YAAW,kBAAkB;IAC3D,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,aAAa,CAAU;gBAEnB,aAAa,UAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM;IAKpD,YAAY,CAAC,GAAG,EAAE,MAAM;IAIxB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,UAAqB,GAAG,MAAM;IAc5D,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,UAAqB;IASlE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAI5B"}
@@ -1,28 +0,0 @@
1
- var i = Object.defineProperty;
2
- var n = (s, t, e) => t in s ? i(s, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[t] = e;
3
- var r = (s, t, e) => n(s, typeof t != "symbol" ? t + "" : t, e);
4
- class a {
5
- constructor(t = !1, e) {
6
- r(this, "slotName");
7
- r(this, "useEncryption");
8
- this.useEncryption = t, this.slotName = e || "";
9
- }
10
- getKeyInSlot(t) {
11
- return this.slotName ? `${this.slotName}/${t}` : t;
12
- }
13
- get(t, e = this.useEncryption) {
14
- t = this.getKeyInSlot(t);
15
- let o = localStorage.getItem(t);
16
- return o && (e && (o = window.atob(o)), o);
17
- }
18
- set(t, e, o = this.useEncryption) {
19
- t = this.getKeyInSlot(t), o && (e = window.btoa(e)), localStorage.setItem(t, e);
20
- }
21
- remove(t) {
22
- t = this.getKeyInSlot(t), localStorage.removeItem(t);
23
- }
24
- }
25
- export {
26
- a as PersistentStorage
27
- };
28
- //# sourceMappingURL=persistentStorage.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"persistentStorage.es.js","sources":["../../src/storage/persistentStorage.ts"],"sourcesContent":["// TODO: implement real encryption:\r\n// https://stackoverflow.com/questions/18279141/javascript-string-encryption-and-decryption\r\n\r\nimport { IPersistentStorage } from \"./storageContracts\";\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\r\n// TODO: remove class, create factory method\r\n// TODO: support Indexed DB\r\nexport class PersistentStorage<T> implements IPersistentStorage {\r\n private slotName: string;\r\n\r\n private useEncryption: boolean;\r\n\r\n constructor(useEncryption = false, slotName?: string) {\r\n this.useEncryption = useEncryption;\r\n this.slotName = slotName || \"\";\r\n }\r\n\r\n getKeyInSlot(key: string) {\r\n return this.slotName ? `${this.slotName}/${key}` : key;\r\n }\r\n\r\n get(key: string, useEncryption = this.useEncryption): string {\r\n key = this.getKeyInSlot(key);\r\n let value = localStorage.getItem(key);\r\n if (!value) {\r\n return value;\r\n }\r\n // localStorage.setItem(key, value);\r\n if (useEncryption) {\r\n // decrypt\r\n value = window.atob(value);\r\n }\r\n return value;\r\n }\r\n\r\n set(key: string, value: string, useEncryption = this.useEncryption) {\r\n key = this.getKeyInSlot(key);\r\n if (useEncryption) {\r\n // encrypt\r\n value = window.btoa(value);\r\n }\r\n localStorage.setItem(key, value);\r\n }\r\n\r\n remove(key: string): void {\r\n key = this.getKeyInSlot(key);\r\n localStorage.removeItem(key);\r\n }\r\n}\r\n"],"names":["PersistentStorage","useEncryption","slotName","__publicField","key","value"],"mappings":";;;AA0BO,MAAMA,EAAmD;AAAA,EAK5D,YAAYC,IAAgB,IAAOC,GAAmB;AAJ9C,IAAAC,EAAA;AAEA,IAAAA,EAAA;AAGJ,SAAK,gBAAgBF,GACrB,KAAK,WAAWC,KAAY;AAAA,EAChC;AAAA,EAEA,aAAaE,GAAa;AACtB,WAAO,KAAK,WAAW,GAAG,KAAK,QAAQ,IAAIA,CAAG,KAAKA;AAAA,EACvD;AAAA,EAEA,IAAIA,GAAaH,IAAgB,KAAK,eAAuB;AACnD,IAAAG,IAAA,KAAK,aAAaA,CAAG;AACvB,QAAAC,IAAQ,aAAa,QAAQD,CAAG;AACpC,WAAKC,MAIDJ,MAEQI,IAAA,OAAO,KAAKA,CAAK,IAEtBA;AAAA,EACX;AAAA,EAEA,IAAID,GAAaC,GAAeJ,IAAgB,KAAK,eAAe;AAC1D,IAAAG,IAAA,KAAK,aAAaA,CAAG,GACvBH,MAEQI,IAAA,OAAO,KAAKA,CAAK,IAEhB,aAAA,QAAQD,GAAKC,CAAK;AAAA,EACnC;AAAA,EAEA,OAAOD,GAAmB;AAChB,IAAAA,IAAA,KAAK,aAAaA,CAAG,GAC3B,aAAa,WAAWA,CAAG;AAAA,EAC/B;AACJ;"}
@@ -1,6 +0,0 @@
1
- export type IPersistentStorage = {
2
- get(key: string, useEncryption?: boolean): string;
3
- set(key: string, value: string, useEncryption?: boolean): void;
4
- remove(key: string): void;
5
- };
6
- //# sourceMappingURL=storageContracts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storageContracts.d.ts","sourceRoot":"","sources":["../../src/storage/storageContracts.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,kBAAkB,GAAG;IAC7B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAClD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAA"}
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=storageContracts.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storageContracts.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}