@actdim/utico 1.1.1 → 1.1.3

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 (68) hide show
  1. package/README.md +832 -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.d.ts +11 -11
  9. package/dist/cache/cacheContracts.d.ts.map +1 -1
  10. package/dist/cache/cacheContracts.es.js.map +1 -1
  11. package/dist/cache/memoryCache.es.js.map +1 -1
  12. package/dist/cache/persistentCache.d.ts +17 -17
  13. package/dist/cache/persistentCache.d.ts.map +1 -1
  14. package/dist/cache/persistentCache.es.js +56 -54
  15. package/dist/cache/persistentCache.es.js.map +1 -1
  16. package/dist/dataFormats.es.js.map +1 -1
  17. package/dist/dateTimeDataFormat.es.js.map +1 -1
  18. package/dist/decorators.d.ts +2 -0
  19. package/dist/decorators.d.ts.map +1 -0
  20. package/dist/decorators.es.js +20 -0
  21. package/dist/decorators.es.js.map +1 -0
  22. package/dist/gfx/canvasUtils.d.ts +4 -5
  23. package/dist/gfx/canvasUtils.d.ts.map +1 -1
  24. package/dist/gfx/canvasUtils.es.js +77 -84
  25. package/dist/gfx/canvasUtils.es.js.map +1 -1
  26. package/dist/gfx/color.es.js.map +1 -1
  27. package/dist/i18n/cultures.es.js.map +1 -1
  28. package/dist/i18n/enUsCulture.es.js.map +1 -1
  29. package/dist/index.es.js.map +1 -1
  30. package/dist/math.es.js.map +1 -1
  31. package/dist/metadata.d.ts +3 -2
  32. package/dist/metadata.d.ts.map +1 -1
  33. package/dist/metadata.es.js +23 -17
  34. package/dist/metadata.es.js.map +1 -1
  35. package/dist/patterns.es.js.map +1 -1
  36. package/dist/store/dataStore.d.ts +33 -59
  37. package/dist/store/dataStore.d.ts.map +1 -1
  38. package/dist/store/dataStore.es.js +151 -145
  39. package/dist/store/dataStore.es.js.map +1 -1
  40. package/dist/store/persistentStore.d.ts +7 -6
  41. package/dist/store/persistentStore.d.ts.map +1 -1
  42. package/dist/store/persistentStore.es.js +15 -14
  43. package/dist/store/persistentStore.es.js.map +1 -1
  44. package/dist/store/storeContracts.d.ts +52 -24
  45. package/dist/store/storeContracts.d.ts.map +1 -1
  46. package/dist/store/storeContracts.es.js +2 -2
  47. package/dist/store/storeContracts.es.js.map +1 -1
  48. package/dist/store/storeDb.es.js +38 -38
  49. package/dist/store/storeDb.es.js.map +1 -1
  50. package/dist/stringCore.d.ts +1 -1
  51. package/dist/stringCore.d.ts.map +1 -1
  52. package/dist/stringCore.es.js +5 -5
  53. package/dist/stringCore.es.js.map +1 -1
  54. package/dist/structEvent.d.ts +4 -3
  55. package/dist/structEvent.d.ts.map +1 -1
  56. package/dist/structEvent.es.js +16 -9
  57. package/dist/structEvent.es.js.map +1 -1
  58. package/dist/typeCore.es.js.map +1 -1
  59. package/dist/typeUtils.d.ts +7 -6
  60. package/dist/typeUtils.d.ts.map +1 -1
  61. package/dist/typeUtils.es.js +38 -34
  62. package/dist/typeUtils.es.js.map +1 -1
  63. package/dist/utils.d.ts +4 -3
  64. package/dist/utils.d.ts.map +1 -1
  65. package/dist/utils.es.js +70 -61
  66. package/dist/utils.es.js.map +1 -1
  67. package/dist/watchable.es.js.map +1 -1
  68. package/package.json +7 -4
@@ -6,11 +6,11 @@ export declare class MetadataRecord {
6
6
  updatedAt?: number;
7
7
  tags?: string[];
8
8
  }
9
- export type DataRecord<TValue = any> = {
9
+ export type DataRecord<TValue = unknown> = {
10
10
  key: string;
11
11
  value: TValue;
12
12
  };
13
- export type StoreItem<T extends MetadataRecord = MetadataRecord, TValue = any> = {
13
+ export type StoreItem<T extends MetadataRecord = MetadataRecord, TValue = unknown> = {
14
14
  metadata?: T;
15
15
  data?: DataRecord<TValue>;
16
16
  };
@@ -26,33 +26,61 @@ export type IndexableType = Dexie.IndexableTypePart;
26
26
  export type IndexableTypeArray = Dexie.IndexableTypeArray;
27
27
  export type TransactionMode = Dexie.TransactionMode;
28
28
  export type OrderDirection = "asc" | "desc";
29
+ export type WhereFilter<T extends IndexableType, TResult = unknown> = {
30
+ above(value: T): TResult;
31
+ aboveOrEqual(value: T): TResult;
32
+ anyOf(values: ReadonlyArray<T>): TResult;
33
+ anyOfIgnoreCase(keys: T extends string ? T[] : never): T extends string ? TResult : never;
34
+ below(value: T): TResult;
35
+ belowOrEqual(value: T): TResult;
36
+ between(lower: T, upper: T, includeLower?: boolean, includeUpper?: boolean): TResult;
37
+ equals(value: T): TResult;
38
+ equalsIgnoreCase(value: string): TResult;
39
+ inAnyRange(ranges: ReadonlyArray<{
40
+ 0: T;
41
+ 1: T;
42
+ }>, options?: {
43
+ includeLowers?: boolean;
44
+ includeUppers?: boolean;
45
+ }): TResult;
46
+ startsWith(prefix: T extends string ? T : never): T extends string ? TResult : never;
47
+ startsWithAnyOf(prefixes: T extends string ? T[] : never): T extends string ? TResult : never;
48
+ startsWithIgnoreCase(prefix: T extends string ? T : never): T extends string ? TResult : never;
49
+ startsWithAnyOfIgnoreCase(prefixes: T extends string ? T[] : never): T extends string ? TResult : never;
50
+ noneOf(values: ReadonlyArray<T>): TResult;
51
+ notEqual(value: T): TResult;
52
+ };
29
53
  export type StoreBase = {
30
- openAsync(): PromiseLike<void>;
54
+ open(): PromiseLike<void>;
31
55
  };
32
- export interface IStoreCollection<T extends MetadataRecord = MetadataRecord, TValue = any> {
33
- toArrayAsync(orderBy?: keyof T, orderDirection?: OrderDirection, transactionMode?: TransactionMode): Promise<StoreItem<T, TValue>[]>;
34
- orderByAsync(field: keyof T, direction: OrderDirection, transactionMode?: TransactionMode): Promise<StoreItem<T, TValue>[]>;
35
- filter<S extends T>(filter: (x: T) => x is S): IStoreCollection<S, TValue>;
56
+ export interface IStoreCollection<T extends MetadataRecord = MetadataRecord, TValue = unknown> {
57
+ toArray(orderBy?: keyof T, orderDirection?: OrderDirection, transactionMode?: TransactionMode): Promise<StoreItem<T, TValue>[]>;
58
+ orderBy(field: keyof T, direction: OrderDirection, transactionMode?: TransactionMode): Promise<StoreItem<T, TValue>[]>;
59
+ filter(filter: (x: T) => boolean): IStoreCollection<T, TValue>;
36
60
  limit(n: number): IStoreCollection<T, TValue>;
37
61
  offset(n: number): IStoreCollection<T, TValue>;
38
- getKeysAsync(): Promise<T["key"][]>;
39
- getCountAsync(): Promise<number>;
40
- modifyMetadataAsync(callback: (metadataRecord: T) => void, transactionMode?: TransactionMode): Promise<number>;
41
- modifyDataAsync(callback: (dataRecord: DataRecord) => void, transactionMode?: TransactionMode): Promise<number>;
42
- modifyAsync(metadataCallback: (metadataRecord: T) => void, dataCallback: (dataRecord: DataRecord) => void, transactionMode?: TransactionMode): Promise<number>;
62
+ getKeys(): Promise<T["key"][]>;
63
+ getCount(): Promise<number>;
64
+ modifyMetadata(callback: (metadataRecord: T) => void, transactionMode?: TransactionMode): Promise<number>;
65
+ modifyData(callback: (dataRecord: DataRecord) => void, transactionMode?: TransactionMode): Promise<number>;
66
+ modify(metadataCallback: (metadataRecord: T) => void, dataCallback: (dataRecord: DataRecord) => void, transactionMode?: TransactionMode): Promise<number>;
43
67
  }
44
68
  export interface IPersistentStore<T extends MetadataRecord = MetadataRecord> {
45
- openAsync(): Promise<void>;
46
- getKeysAsync(): Promise<string[]>;
47
- containsAsync(key: string): Promise<boolean>;
48
- deleteAsync(key: string): Promise<void>;
49
- bulkDeleteAsync(keys: string[]): Promise<void>;
50
- clearAsync(): Promise<void>;
51
- getAsync<TValue = any>(key: string): Promise<StoreItem<T, TValue>>;
52
- setAsync<TValue = any>(metadataRecord: T, value: TValue): Promise<string>;
53
- getOrSetAsync<TValue = any>(metadataRecord: MetadataRecord, factory: (metadataRecord: MetadataRecord) => TValue): Promise<StoreItem<T, TValue>>;
54
- bulkGetAsync<TValue = any>(keys: string[]): Promise<StoreItem<T, TValue>[]>;
55
- bulkSetAsync<TValue = any>(metadataRecords: MetadataRecord[], dataRecords: DataRecord<TValue>[]): Promise<string[]>;
56
- dispose(): void;
69
+ open(): Promise<void>;
70
+ getKeys(): Promise<string[]>;
71
+ contains(key: string): Promise<boolean>;
72
+ delete(key: string): Promise<void>;
73
+ bulkDelete(keys: string[]): Promise<void>;
74
+ clear(): Promise<void>;
75
+ get<TValue = unknown>(key: string): Promise<StoreItem<T, TValue> | undefined>;
76
+ set<TValue = unknown>(metadataRecord: T, value: TValue): Promise<string>;
77
+ getOrSet<TValue = unknown>(metadataRecord: MetadataRecord, factory: (metadataRecord: MetadataRecord) => TValue): Promise<StoreItem<T, TValue>>;
78
+ bulkGet<TValue = unknown>(keys: string[]): Promise<StoreItem<T, TValue>[]>;
79
+ bulkSet<TValue = unknown>(metadataRecords: MetadataRecord[], dataRecords: DataRecord<TValue>[]): Promise<string[]>;
80
+ orderBy(field: keyof T, direction: OrderDirection, distinct?: boolean): IStoreCollection<T>;
81
+ distinct(field: keyof T): IStoreCollection<T>;
82
+ query<TValue = unknown>(): IStoreCollection<T, TValue>;
83
+ where<K extends keyof T, TValue = unknown>(field: K extends string ? K : never): WhereFilter<T[K] extends IndexableType ? T[K] : never, IStoreCollection<T, TValue>>;
84
+ [Symbol.dispose]: () => void;
57
85
  }
58
86
  //# sourceMappingURL=storeContracts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storeContracts.d.ts","sourceRoot":"","sources":["../../src/store/storeContracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storeContracts.d.ts","sourceRoot":"","sources":["../../src/store/storeContracts.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,8 @@ class a {
4
4
  updatedAt;
5
5
  // lastModified
6
6
  tags;
7
- // timestamp?: number;
8
- // weight?: number;
7
+ // timestamp?: number;
8
+ // magnitude?: number;
9
9
  // score?: number;
10
10
  // startDate?/endDate?
11
11
  // validFrom?/validTo?
@@ -1 +1 @@
1
- {"version":3,"file":"storeContracts.es.js","sources":["D:/Src/my/actdim/public/utico/src/store/storeContracts.ts"],"sourcesContent":["import { CommonPartFromSchema, KeyPathValueMap } from \"@/typeCore\";\r\nimport * as Dexie from \"dexie\";\r\n\r\n// Making some navigation properties non-enumerable will prevent them from being handled by IndexedDB\r\n// when doing put() or add().\r\n// Object.defineProperties(obj, {\r\n// ...: { value: [], enumerable: false, writable: true }\r\n// });\r\n\r\n// MetadataEntry\r\nexport class MetadataRecord {\r\n key?: string;\r\n createdAt?: number;\r\n updatedAt?: number; // lastModified\r\n tags?: string[];\r\n // timestamp?: number;\r\n // weight?: number;\r\n // score?: number;\r\n // startDate?/endDate?\r\n // validFrom?/validTo?\r\n}\r\n\r\n// DataEntry\r\nexport type DataRecord<TValue = any> = {\r\n key: string;\r\n value: TValue;\r\n}\r\n\r\nexport type StoreItem<T extends MetadataRecord = MetadataRecord, TValue = any> = {\r\n metadata?: T,\r\n data?: DataRecord<TValue>;\r\n}\r\n\r\nexport type ChangeSet<T, TKey = string> = {\r\n key: TKey;\r\n changes: KeyPathValueMap<T>;\r\n}\r\n\r\nexport type BaseMetadataField = keyof MetadataRecord;\r\n// ++: auto-increment primary key\r\n// &: unique\r\n// *: array\r\nexport type FieldDef<T extends string> = T | `&${T}` | `*${T}` | `++${T}`;\r\nexport type BaseFieldDef = FieldDef<BaseMetadataField>;\r\n\r\n// DbFieldTemplate\r\nexport type FieldDefTemplate<T extends string> = FieldDef<T>[];\r\n\r\nexport type IndexableType = Dexie.IndexableTypePart;\r\nexport type IndexableTypeArray = Dexie.IndexableTypeArray;\r\nexport type TransactionMode = Dexie.TransactionMode;\r\nexport type OrderDirection = \"asc\" | \"desc\";\r\n\r\nexport type StoreBase = {\r\n openAsync(): PromiseLike<void>;\r\n}\r\n\r\nexport interface IStoreCollection<T extends MetadataRecord = MetadataRecord, TValue = any> {\r\n\r\n toArrayAsync(orderBy?: keyof T, orderDirection?: OrderDirection, transactionMode?: TransactionMode): Promise<StoreItem<T, TValue>[]>;\r\n\r\n orderByAsync(field: keyof T, direction: OrderDirection, transactionMode?: TransactionMode): Promise<StoreItem<T, TValue>[]>;\r\n\r\n filter<S extends T>(filter: (x: T) => x is S): IStoreCollection<S, TValue>;\r\n\r\n limit(n: number): IStoreCollection<T, TValue>;\r\n\r\n offset(n: number): IStoreCollection<T, TValue>;\r\n\r\n getKeysAsync(): Promise<T[\"key\"][]>;\r\n\r\n getCountAsync(): Promise<number>;\r\n\r\n modifyMetadataAsync(callback: (metadataRecord: T) => void, transactionMode?: TransactionMode): Promise<number>;\r\n\r\n modifyDataAsync(callback: (dataRecord: DataRecord) => void, transactionMode?: TransactionMode): Promise<number>;\r\n\r\n modifyAsync(metadataCallback: (metadataRecord: T) => void, dataCallback: (dataRecord: DataRecord) => void, transactionMode?: TransactionMode): Promise<number>;\r\n}\r\n\r\n// IKVStore\r\nexport interface IPersistentStore<T extends MetadataRecord = MetadataRecord> {\r\n\r\n openAsync(): Promise<void>;\r\n\r\n getKeysAsync(): Promise<string[]>;\r\n\r\n containsAsync(key: string): Promise<boolean>;\r\n\r\n deleteAsync(key: string): Promise<void>;\r\n\r\n bulkDeleteAsync(keys: string[]): Promise<void>;\r\n\r\n clearAsync(): Promise<void>;\r\n\r\n getAsync<TValue = any>(key: string): Promise<StoreItem<T, TValue>>;\r\n\r\n setAsync<TValue = any>(metadataRecord: T, value: TValue): Promise<string>;\r\n\r\n getOrSetAsync<TValue = any>(metadataRecord: MetadataRecord, factory: (metadataRecord: MetadataRecord) => TValue): Promise<StoreItem<T, TValue>>\r\n\r\n bulkGetAsync<TValue = any>(keys: string[]): Promise<StoreItem<T, TValue>[]>;\r\n\r\n bulkSetAsync<TValue = any>(metadataRecords: MetadataRecord[], dataRecords: DataRecord<TValue>[]): Promise<string[]>;\r\n\r\n dispose(): void;\r\n}"],"names":["MetadataRecord"],"mappings":"AAUO,MAAMA,EAAe;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMJ;"}
1
+ {"version":3,"file":"storeContracts.es.js","sources":["D:/Src/my/actdim/public/utico/src/store/storeContracts.ts"],"sourcesContent":null,"names":["MetadataRecord"],"mappings":"AAUO,MAAMA,EAAe;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMJ;"}
@@ -1,7 +1,7 @@
1
1
  import { AsyncMutex as h } from "../asyncMutex.es.js";
2
2
  import * as s from "dexie";
3
- const r = "metadata", o = "data", y = ["&key", "value"], d = new h();
4
- class i extends s.Dexie {
3
+ const n = "metadata", o = "data", l = ["&key", "value"], c = new h();
4
+ class d extends s.Dexie {
5
5
  // catalog/registry
6
6
  metadata;
7
7
  data;
@@ -12,61 +12,61 @@ class i extends s.Dexie {
12
12
  super(t), this._isDisposed = !1;
13
13
  const e = this;
14
14
  e.version(1).stores({
15
- [r]: a.join(", "),
16
- [o]: y.join(", ")
17
- }), this.metadata = e.table(r), this.data = e.table(o), this.metadata.hook("creating", (n, c) => {
18
- c.createdAt = Date.now();
19
- }), this.metadata.hook("updating", (n, c, l) => ({ ...n, updatedAt: Date.now() }));
15
+ [n]: a.join(", "),
16
+ [o]: l.join(", ")
17
+ }), this.metadata = e.table(n), this.data = e.table(o), this.metadata.hook("creating", (i, r) => {
18
+ r.createdAt = Date.now();
19
+ }), this.metadata.hook("updating", (i, r, w) => ({ ...i, updatedAt: Date.now() }));
20
20
  }
21
- dispose() {
21
+ [Symbol.dispose]() {
22
22
  this._isDisposed || (this.isOpen() && this.close(), this._isDisposed = !0);
23
23
  }
24
- async openAsync() {
25
- if (!this.isOpen())
26
- try {
27
- await this.open();
28
- } catch (t) {
29
- if (t instanceof s.Dexie.OpenFailedError)
30
- await this.open();
31
- else
32
- throw t;
33
- }
24
+ async open() {
25
+ if (this.isOpen())
26
+ return this;
27
+ try {
28
+ return await super.open();
29
+ } catch (t) {
30
+ if (t instanceof s.Dexie.OpenFailedError)
31
+ return await super.open();
32
+ throw t;
33
+ }
34
34
  }
35
- async execAsync(t, a = "r!") {
36
- await this.openAsync();
35
+ async exec(t, a = "r!") {
36
+ await this.open();
37
37
  try {
38
38
  return await this.transaction(a, this.metadata, this.data, async () => await t());
39
39
  } catch (e) {
40
40
  throw this.isOpen(), e;
41
41
  }
42
42
  }
43
- async getKeysAsync() {
43
+ async getKeys() {
44
44
  return this.metadata.toCollection().primaryKeys();
45
45
  }
46
- async containsAsync(t, a = "r") {
47
- return await this.execAsync(async () => await this.metadata.get(t) !== void 0, a);
46
+ async contains(t, a = "r") {
47
+ return await this.exec(async () => await this.metadata.get(t) !== void 0, a);
48
48
  }
49
- async deleteAsync(t, a = "rw") {
50
- await this.execAsync(async () => {
49
+ async deleteOne(t, a = "rw") {
50
+ await this.exec(async () => {
51
51
  await this.metadata.delete(t), await this.data.delete(t);
52
52
  }, a);
53
53
  }
54
54
  // deleteManyAsync
55
- async bulkDeleteAsync(t, a = "rw") {
56
- await this.execAsync(async () => {
55
+ async bulkDelete(t, a = "rw") {
56
+ await this.exec(async () => {
57
57
  await this.metadata.bulkDelete(t), await this.data.bulkDelete(t);
58
58
  }, a);
59
59
  }
60
- // clearAllAsync
61
- async clearAsync(t = "rw") {
62
- await this.execAsync(async () => {
60
+ // clearAll
61
+ async clear(t = "rw") {
62
+ await this.exec(async () => {
63
63
  await this.metadata.clear(), await this.data.clear();
64
64
  }, t);
65
65
  }
66
- static async deleteAsync(t) {
66
+ static async delete(t) {
67
67
  try {
68
- await d.dispatch(async () => {
69
- await i.exists(t) && await i.delete(t);
68
+ await c.dispatch(async () => {
69
+ await d.exists(t) && await s.Dexie.delete(t);
70
70
  });
71
71
  } catch (a) {
72
72
  if (a instanceof s.Dexie.InvalidStateError || a instanceof s.Dexie.VersionError)
@@ -75,17 +75,17 @@ class i extends s.Dexie {
75
75
  throw a;
76
76
  }
77
77
  }
78
- static existsAsync(t) {
78
+ static exists(t) {
79
79
  return s.Dexie.exists(t);
80
80
  }
81
- static async openAsync(t, a) {
82
- return await d.dispatch(async () => {
81
+ static async open(t, a) {
82
+ return await c.dispatch(async () => {
83
83
  const e = a(t);
84
- return await e.openAsync(), e;
84
+ return await e.open(), e;
85
85
  });
86
86
  }
87
87
  }
88
88
  export {
89
- i as StoreDb
89
+ d as StoreDb
90
90
  };
91
91
  //# sourceMappingURL=storeDb.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storeDb.es.js","sources":["D:/Src/my/actdim/public/utico/src/store/storeDb.ts"],"sourcesContent":["import { AsyncMutex } from \"@/asyncMutex\";\r\nimport { DataRecord, FieldDefTemplate, MetadataRecord, StoreBase, TransactionMode } from \"./storeContracts\";\r\nimport * as Dexie from \"dexie\";\r\n\r\nconst metadataTableName = \"metadata\";\r\nconst dataTableName = \"data\";\r\nconst dataFieldDefTemplate: FieldDefTemplate<keyof DataRecord> = [\"&key\", \"value\"];\r\n\r\nconst mutex = new AsyncMutex();\r\n\r\nexport class StoreDb<T extends MetadataRecord = MetadataRecord> extends Dexie.Dexie {\r\n // catalog/registry\r\n metadata: Dexie.Table<T, string>;\r\n data: Dexie.Table<DataRecord, string>;\r\n\r\n protected _isDisposed: boolean;\r\n\r\n constructor(name: string, metadataFieldDefTemplate: keyof T extends string ? FieldDefTemplate<keyof T> : never) {\r\n // navigator.storage.estimate()\r\n // navigator.webkitTemporaryStorage.queryUsageAndQuota()\r\n\r\n if (!name) {\r\n throw new Error(\"Invalid database name.\"); // cannot be empty\r\n }\r\n\r\n super(name); // {autoOpen: false}\r\n\r\n this._isDisposed = false;\r\n\r\n const db = this;\r\n\r\n db.version(1).stores({\r\n [metadataTableName]: metadataFieldDefTemplate.join(\", \"),\r\n [dataTableName]: dataFieldDefTemplate.join(\", \")\r\n });\r\n\r\n // db.version(2).stores({\r\n // \t// ...\r\n // }).upgrade(trans => {\r\n // \treturn trans.table(dataTableName).toCollection().modify((entry: MetadataRecord) => {\r\n // \t\t// ...\r\n // \t});\r\n // });\r\n\r\n this.metadata = db.table(metadataTableName);\r\n this.data = db.table(dataTableName);\r\n\r\n this.metadata.hook('creating', (key, obj) => {\r\n obj.createdAt = Date.now();\r\n });\r\n\r\n this.metadata.hook('updating', (mods, key, obj) => {\r\n return { ...mods, updatedAt: Date.now() };\r\n });\r\n\r\n // additional way to handle relationships\r\n // this.metadata.hook(\"deleting\", (key, obj, transaction) => {\r\n // // only synchronous code!\r\n // transaction.table(dataTableName).delete(key);\r\n // });\r\n\r\n // this.metadata.mapToClass(MetadataRecord);\r\n // this.data.mapToClass(DataRecord);\r\n\r\n // this.on('populate', () => db.metadata.bulkAdd([\r\n // \t// ...\r\n // ]));\r\n }\r\n\r\n dispose() {\r\n if (!this._isDisposed) {\r\n if (this.isOpen()) {\r\n this.close();\r\n }\r\n this._isDisposed = true;\r\n }\r\n }\r\n\r\n async openAsync() {\r\n if (!this.isOpen()) {\r\n try {\r\n await this.open();\r\n } catch (err) {\r\n if (err instanceof Dexie.Dexie.OpenFailedError) {\r\n await this.open();\r\n } else {\r\n throw err;\r\n }\r\n }\r\n // TODO: log (this.verno, this._dbSchema etc)\r\n }\r\n }\r\n\r\n async execAsync<T>(\r\n action: () => Promise<T>, // scope\r\n transactionMode: TransactionMode = \"r!\") {\r\n await this.openAsync();\r\n try {\r\n const result = await this.transaction(transactionMode, this.metadata, this.data, async () => {\r\n return await action();\r\n });\r\n return result;\r\n } catch (err) {\r\n if (this.isOpen()) {\r\n // this._db.close(); // generally speaking: we don't (never) need to close a connection\r\n }\r\n throw err;\r\n }\r\n }\r\n\r\n async getKeysAsync() {\r\n return this.metadata.toCollection().primaryKeys();\r\n }\r\n\r\n async containsAsync(key: string, transactionMode: TransactionMode = \"r\") {\r\n return await this.execAsync(async () => {\r\n const metadataRecord = await this.metadata.get(key);\r\n return metadataRecord !== undefined;\r\n }, transactionMode);\r\n }\r\n\r\n async deleteAsync(key: string, transactionMode: TransactionMode = \"rw\") {\r\n await this.execAsync(async () => {\r\n await this.metadata.delete(key);\r\n await this.data.delete(key);\r\n }, transactionMode);\r\n }\r\n\r\n // deleteManyAsync\r\n async bulkDeleteAsync(keys: string[], transactionMode: TransactionMode = \"rw\") {\r\n await this.execAsync(async () => {\r\n await this.metadata.bulkDelete(keys);\r\n await this.data.bulkDelete(keys);\r\n }, transactionMode);\r\n }\r\n\r\n // clearAllAsync\r\n async clearAsync(transactionMode: TransactionMode = \"rw\") {\r\n await this.execAsync(async () => {\r\n await this.metadata.clear();\r\n await this.data.clear();\r\n }, transactionMode);\r\n }\r\n\r\n static async deleteAsync(name: string) {\r\n try {\r\n await mutex.dispatch(async () => {\r\n if (await StoreDb.exists(name)) {\r\n await StoreDb.delete(name);\r\n }\r\n });\r\n } catch (err) {\r\n if (err instanceof Dexie.Dexie.InvalidStateError || err instanceof Dexie.Dexie.VersionError) {\r\n console.warn(`[DataStore] delete(${name}) failed:`, err);\r\n } else {\r\n throw err;\r\n }\r\n }\r\n }\r\n\r\n static existsAsync(name: string) {\r\n return Dexie.Dexie.exists(name);\r\n }\r\n\r\n static async openAsync<T extends StoreBase>(name: string, factory: (name: string) => T) {\r\n return await mutex.dispatch(async () => {\r\n const store = factory(name);\r\n await store.openAsync();\r\n return store;\r\n });\r\n }\r\n}"],"names":["metadataTableName","dataTableName","dataFieldDefTemplate","mutex","AsyncMutex","StoreDb","Dexie","name","metadataFieldDefTemplate","db","key","obj","mods","err","action","transactionMode","keys","factory","store"],"mappings":"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"}
1
+ {"version":3,"file":"storeDb.es.js","sources":["D:/Src/my/actdim/public/utico/src/store/storeDb.ts"],"sourcesContent":null,"names":["metadataTableName","dataTableName","dataFieldDefTemplate","mutex","AsyncMutex","StoreDb","Dexie","name","metadataFieldDefTemplate","db","key","obj","mods","err","action","transactionMode","keys","factory","store"],"mappings":"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"}
@@ -4,6 +4,6 @@ declare function equals(strA: string, strB: string, ignoreCase?: boolean, locale
4
4
  declare function ciStartsWith(str: string, searchStr: string, locale?: string): boolean;
5
5
  declare function ciEndsWith(str: string, searchStr: string, locale?: string): boolean;
6
6
  declare function ciIndexOf(str: string, searchStr: string, locale?: string): number;
7
- declare function ciIncludes(str: string, searchStr: string, locale?: string): boolean | -1;
7
+ declare function ciIncludes(str: string, searchStr: string, locale?: string): boolean;
8
8
  export { equals, compare, ciCompare, ciStartsWith, ciEndsWith, ciIndexOf, ciIncludes };
9
9
  //# sourceMappingURL=stringCore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stringCore.d.ts","sourceRoot":"","sources":["../src/stringCore.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,SAAS,SAMwD,MAAM,QAAQ,MAAM,4BAMvF,CAAC;AAEL,iBAAS,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,UAAQ,EAAE,MAAM,SAAqB,UAQ3F;AAGD,iBAAS,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,UAAQ,EAAE,MAAM,SAAqB,WAQ1F;AAED,iBAAS,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAqB,WAKhF;AAED,iBAAS,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAqB,WAK9E;AAED,iBAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAqB,UAK7E;AAED,iBAAS,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAqB,gBAK9E;AAED,OAAO,EACH,MAAM,EACN,OAAO,EACP,SAAS,EACT,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,EACb,CAAC"}
1
+ {"version":3,"file":"stringCore.d.ts","sourceRoot":"","sources":["../src/stringCore.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,SAAS,SAMwD,MAAM,QAAQ,MAAM,4BAMvF,CAAC;AAEL,iBAAS,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,UAAQ,EAAE,MAAM,SAAqB,UAQ3F;AAGD,iBAAS,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,UAAQ,EAAE,MAAM,SAAqB,WAQ1F;AAED,iBAAS,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAqB,WAKhF;AAED,iBAAS,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAqB,WAK9E;AAED,iBAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAqB,UAK7E;AAED,iBAAS,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAqB,WAK9E;AAED,OAAO,EACH,MAAM,EACN,OAAO,EACP,SAAS,EACT,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,EACb,CAAC"}
@@ -17,17 +17,17 @@ function u(e, n, t = navigator.language) {
17
17
  function r(e, n, t = navigator.language) {
18
18
  return typeof e != "string" || typeof n != "string" || e.length < n.length ? !1 : i(e.substring(e.length - n.length), n, !0, t);
19
19
  }
20
- function p(e, n, t = navigator.language) {
20
+ function f(e, n, t = navigator.language) {
21
21
  return typeof e != "string" || typeof n != "string" || e.length < n.length ? -1 : e.toLocaleUpperCase(t).indexOf(n.toLocaleUpperCase(t));
22
22
  }
23
- function f(e, n, t = navigator.language) {
24
- return typeof e != "string" || typeof n != "string" || e.length < n.length ? -1 : e.toLocaleUpperCase(t).includes(n.toLocaleUpperCase(t));
23
+ function p(e, n, t = navigator.language) {
24
+ return typeof e != "string" || typeof n != "string" || e.length < n.length ? !1 : e.toLocaleUpperCase(t).includes(n.toLocaleUpperCase(t));
25
25
  }
26
26
  export {
27
27
  a as ciCompare,
28
28
  r as ciEndsWith,
29
- f as ciIncludes,
30
- p as ciIndexOf,
29
+ p as ciIncludes,
30
+ f as ciIndexOf,
31
31
  u as ciStartsWith,
32
32
  l as compare,
33
33
  i as equals
@@ -1 +1 @@
1
- {"version":3,"file":"stringCore.es.js","sources":["D:/Src/my/actdim/public/utico/src/stringCore.ts"],"sourcesContent":["// const currentLocale = new Intl.Locale(navigator.language);\r\n// const currentCollator = Intl.Collator(navigator.language);\r\nconst defaulCollator = Intl.Collator();\r\n\r\nconst ciCompare = (() => {\r\n const collatorOptions: Intl.CollatorOptions = {\r\n sensitivity: \"accent\" // or \"base\"\r\n };\r\n ;\r\n // feature detection\r\n return 'A'.localeCompare('a', undefined, collatorOptions) ? (strA: string, strB: string, locale = navigator.language) => {\r\n return strA.localeCompare(strB, locale, collatorOptions)\r\n } : (strA: string, strB: string, locale?: string) => {\r\n // fallback approach\r\n return strA.toLocaleUpperCase(locale).localeCompare(strB.toLocaleUpperCase(locale), locale);\r\n };\r\n})();\r\n\r\nfunction compare(strA: string, strB: string, ignoreCase = false, locale = navigator.language) {\r\n if (typeof strA !== 'string' || typeof strB !== 'string') {\r\n return defaulCollator.compare(strA, strB);\r\n }\r\n if (ignoreCase) {\r\n return ciCompare(strA, strB, locale);\r\n }\r\n return strA.localeCompare(strB, locale);\r\n}\r\n\r\n// isEqual\r\nfunction equals(strA: string, strB: string, ignoreCase = false, locale = navigator.language) {\r\n if (typeof strA !== 'string' || typeof strB !== 'string') {\r\n return strA === strB;\r\n }\r\n if (ignoreCase) {\r\n return ciCompare(strA, strB) === 0;\r\n }\r\n return strA.localeCompare(strB, locale) === 0;\r\n}\r\n\r\nfunction ciStartsWith(str: string, searchStr: string, locale = navigator.language) {\r\n if (typeof str !== 'string' || typeof searchStr !== 'string' || str.length < searchStr.length) {\r\n return false;\r\n }\r\n return equals(str.substring(0, searchStr.length), searchStr, true, locale);\r\n}\r\n\r\nfunction ciEndsWith(str: string, searchStr: string, locale = navigator.language) {\r\n if (typeof str !== 'string' || typeof searchStr !== 'string' || str.length < searchStr.length) {\r\n return false;\r\n }\r\n return equals(str.substring(str.length - searchStr.length), searchStr, true, locale);\r\n}\r\n\r\nfunction ciIndexOf(str: string, searchStr: string, locale = navigator.language) {\r\n if (typeof str !== 'string' || typeof searchStr !== 'string' || str.length < searchStr.length) {\r\n return -1;\r\n }\r\n return str.toLocaleUpperCase(locale).indexOf(searchStr.toLocaleUpperCase(locale));\r\n}\r\n\r\nfunction ciIncludes(str: string, searchStr: string, locale = navigator.language) {\r\n if (typeof str !== 'string' || typeof searchStr !== 'string' || str.length < searchStr.length) {\r\n return -1;\r\n }\r\n return str.toLocaleUpperCase(locale).includes(searchStr.toLocaleUpperCase(locale));\r\n}\r\n\r\nexport {\r\n equals,\r\n compare,\r\n ciCompare,\r\n ciStartsWith,\r\n ciEndsWith,\r\n ciIndexOf,\r\n ciIncludes\r\n};"],"names":["defaulCollator","ciCompare","collatorOptions","strA","strB","locale","compare","ignoreCase","equals","ciStartsWith","str","searchStr","ciEndsWith","ciIndexOf","ciIncludes"],"mappings":"AAEA,MAAMA,IAAiB,KAAK,SAAA,GAEtBC,KAAa,MAAM;AACrB,QAAMC,IAAwC;AAAA,IAC1C,aAAa;AAAA;AAAA,EAAA;AAIjB,SAAO,IAAI,cAAc,KAAK,QAAWA,CAAe,IAAI,CAACC,GAAcC,GAAcC,IAAS,UAAU,aACjGF,EAAK,cAAcC,GAAMC,GAAQH,CAAe,IACvD,CAACC,GAAcC,GAAcC,MAEtBF,EAAK,kBAAkBE,CAAM,EAAE,cAAcD,EAAK,kBAAkBC,CAAM,GAAGA,CAAM;AAElG,GAAA;AAEA,SAASC,EAAQH,GAAcC,GAAcG,IAAa,IAAOF,IAAS,UAAU,UAAU;AAC1F,SAAI,OAAOF,KAAS,YAAY,OAAOC,KAAS,WACrCJ,EAAe,QAAQG,GAAMC,CAAI,IAExCG,IACON,EAAUE,GAAMC,GAAMC,CAAM,IAEhCF,EAAK,cAAcC,GAAMC,CAAM;AAC1C;AAGA,SAASG,EAAOL,GAAcC,GAAcG,IAAa,IAAOF,IAAS,UAAU,UAAU;AACzF,SAAI,OAAOF,KAAS,YAAY,OAAOC,KAAS,WACrCD,MAASC,IAEhBG,IACON,EAAUE,GAAMC,CAAI,MAAM,IAE9BD,EAAK,cAAcC,GAAMC,CAAM,MAAM;AAChD;AAEA,SAASI,EAAaC,GAAaC,GAAmBN,IAAS,UAAU,UAAU;AAC/E,SAAI,OAAOK,KAAQ,YAAY,OAAOC,KAAc,YAAYD,EAAI,SAASC,EAAU,SAC5E,KAEJH,EAAOE,EAAI,UAAU,GAAGC,EAAU,MAAM,GAAGA,GAAW,IAAMN,CAAM;AAC7E;AAEA,SAASO,EAAWF,GAAaC,GAAmBN,IAAS,UAAU,UAAU;AAC7E,SAAI,OAAOK,KAAQ,YAAY,OAAOC,KAAc,YAAYD,EAAI,SAASC,EAAU,SAC5E,KAEJH,EAAOE,EAAI,UAAUA,EAAI,SAASC,EAAU,MAAM,GAAGA,GAAW,IAAMN,CAAM;AACvF;AAEA,SAASQ,EAAUH,GAAaC,GAAmBN,IAAS,UAAU,UAAU;AAC5E,SAAI,OAAOK,KAAQ,YAAY,OAAOC,KAAc,YAAYD,EAAI,SAASC,EAAU,SAC5E,KAEJD,EAAI,kBAAkBL,CAAM,EAAE,QAAQM,EAAU,kBAAkBN,CAAM,CAAC;AACpF;AAEA,SAASS,EAAWJ,GAAaC,GAAmBN,IAAS,UAAU,UAAU;AAC7E,SAAI,OAAOK,KAAQ,YAAY,OAAOC,KAAc,YAAYD,EAAI,SAASC,EAAU,SAC5E,KAEJD,EAAI,kBAAkBL,CAAM,EAAE,SAASM,EAAU,kBAAkBN,CAAM,CAAC;AACrF;"}
1
+ {"version":3,"file":"stringCore.es.js","sources":["D:/Src/my/actdim/public/utico/src/stringCore.ts"],"sourcesContent":null,"names":["defaulCollator","ciCompare","collatorOptions","strA","strB","locale","compare","ignoreCase","equals","ciStartsWith","str","searchStr","ciEndsWith","ciIndexOf","ciIncludes"],"mappings":"AAEA,MAAMA,IAAiB,KAAK,SAAA,GAEtBC,KAAa,MAAM;AACrB,QAAMC,IAAwC;AAAA,IAC1C,aAAa;AAAA;AAAA,EAAA;AAIjB,SAAO,IAAI,cAAc,KAAK,QAAWA,CAAe,IAAI,CAACC,GAAcC,GAAcC,IAAS,UAAU,aACjGF,EAAK,cAAcC,GAAMC,GAAQH,CAAe,IACvD,CAACC,GAAcC,GAAcC,MAEtBF,EAAK,kBAAkBE,CAAM,EAAE,cAAcD,EAAK,kBAAkBC,CAAM,GAAGA,CAAM;AAElG,GAAA;AAEA,SAASC,EAAQH,GAAcC,GAAcG,IAAa,IAAOF,IAAS,UAAU,UAAU;AAC1F,SAAI,OAAOF,KAAS,YAAY,OAAOC,KAAS,WACrCJ,EAAe,QAAQG,GAAMC,CAAI,IAExCG,IACON,EAAUE,GAAMC,GAAMC,CAAM,IAEhCF,EAAK,cAAcC,GAAMC,CAAM;AAC1C;AAGA,SAASG,EAAOL,GAAcC,GAAcG,IAAa,IAAOF,IAAS,UAAU,UAAU;AACzF,SAAI,OAAOF,KAAS,YAAY,OAAOC,KAAS,WACrCD,MAASC,IAEhBG,IACON,EAAUE,GAAMC,CAAI,MAAM,IAE9BD,EAAK,cAAcC,GAAMC,CAAM,MAAM;AAChD;AAEA,SAASI,EAAaC,GAAaC,GAAmBN,IAAS,UAAU,UAAU;AAC/E,SAAI,OAAOK,KAAQ,YAAY,OAAOC,KAAc,YAAYD,EAAI,SAASC,EAAU,SAC5E,KAEJH,EAAOE,EAAI,UAAU,GAAGC,EAAU,MAAM,GAAGA,GAAW,IAAMN,CAAM;AAC7E;AAEA,SAASO,EAAWF,GAAaC,GAAmBN,IAAS,UAAU,UAAU;AAC7E,SAAI,OAAOK,KAAQ,YAAY,OAAOC,KAAc,YAAYD,EAAI,SAASC,EAAU,SAC5E,KAEJH,EAAOE,EAAI,UAAUA,EAAI,SAASC,EAAU,MAAM,GAAGA,GAAW,IAAMN,CAAM;AACvF;AAEA,SAASQ,EAAUH,GAAaC,GAAmBN,IAAS,UAAU,UAAU;AAC5E,SAAI,OAAOK,KAAQ,YAAY,OAAOC,KAAc,YAAYD,EAAI,SAASC,EAAU,SAC5E,KAEJD,EAAI,kBAAkBL,CAAM,EAAE,QAAQM,EAAU,kBAAkBN,CAAM,CAAC;AACpF;AAEA,SAASS,EAAWJ,GAAaC,GAAmBN,IAAS,UAAU,UAAU;AAC7E,SAAI,OAAOK,KAAQ,YAAY,OAAOC,KAAc,YAAYD,EAAI,SAASC,EAAU,SAC5E,KAEJD,EAAI,kBAAkBL,CAAM,EAAE,SAASM,EAAU,kBAAkBN,CAAM,CAAC;AACrF;"}
@@ -1,15 +1,16 @@
1
1
  export declare class StructEvent<TStruct extends Record<string, any>, TTarget extends StructEventTarget<TStruct>, TType extends Extract<keyof TStruct, string> = Extract<keyof TStruct, string>> extends CustomEvent<TStruct[TType]> {
2
+ get type(): TType;
2
3
  target: TTarget;
3
- type: TType;
4
4
  constructor(type: TType, eventInitDict?: CustomEventInit<TStruct[TType]> & {
5
5
  target: TTarget;
6
6
  });
7
7
  }
8
8
  export declare class StructEventTarget<TStruct extends Record<string, any>> extends EventTarget implements StructEventTarget<TStruct> {
9
+ private _listenerRegistry;
9
10
  constructor();
10
11
  addEventListener<K extends Extract<keyof TStruct, string>>(type: K, listener: (event: StructEvent<TStruct, this, K>) => void, options?: boolean | AddEventListenerOptions): void;
11
12
  removeEventListener<K extends Extract<keyof TStruct, string>>(type: K, listener: (event: StructEvent<TStruct, this, K>) => void, options?: boolean | EventListenerOptions): void;
12
- dispatchEvent<K extends Extract<keyof TStruct, string>>(event: StructEvent<TStruct, this, K>): boolean;
13
- hasEventListener<K extends Extract<keyof TStruct, string>>(type: K, listener: (event: StructEvent<TStruct, this, K>) => void): boolean;
13
+ dispatchEvent<K extends Extract<keyof TStruct, string>>(event: StructEvent<TStruct, StructEventTarget<TStruct>, K>): boolean;
14
+ hasEventListener<K extends Extract<keyof TStruct, string>>(type: K, listener: (event: StructEvent<TStruct, StructEventTarget<TStruct>, K>) => void): boolean;
14
15
  }
15
16
  //# sourceMappingURL=structEvent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"structEvent.d.ts","sourceRoot":"","sources":["../src/structEvent.ts"],"names":[],"mappings":"AAEA,qBAAa,WAAW,CACpB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,OAAO,SAAS,iBAAiB,CAAC,OAAO,CAAC,EAC1C,KAAK,SAAS,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,CAAC,CAC/E,SAAQ,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,EAAE,OAAO,CAAC;IAEhB,IAAI,EAAE,KAAK,CAAC;gBACA,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE;CAIjG;AAID,qBAAa,iBAAiB,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,SAAQ,WAAY,YAAW,iBAAiB,CAAC,OAAO,CAAC;;IAKzH,gBAAgB,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,CAAC,EACrD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,EACxD,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC5C,IAAI;IAIP,mBAAmB,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,CAAC,EACxD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,EACxD,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACzC,IAAI;IAIP,aAAa,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,OAAO;IAItG,gBAAgB,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO;CAGzI"}
1
+ {"version":3,"file":"structEvent.d.ts","sourceRoot":"","sources":["../src/structEvent.ts"],"names":[],"mappings":"AAEA,qBAAa,WAAW,CACpB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,OAAO,SAAS,iBAAiB,CAAC,OAAO,CAAC,EAC1C,KAAK,SAAS,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,CAAC,CAC/E,SAAQ,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAIjC,IAAI,IAAI,IACiB,KAAK,CAC7B;IAED,MAAM,EAAE,OAAO,CAAC;gBACJ,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE;CAKjG;AAID,qBAAa,iBAAiB,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,SAAQ,WAAY,YAAW,iBAAiB,CAAC,OAAO,CAAC;IACzH,OAAO,CAAC,iBAAiB,CAAoC;;IAM7D,gBAAgB,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,CAAC,EACrD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,EACxD,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC5C,IAAI;IAUP,mBAAmB,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,CAAC,EACxD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,EACxD,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACzC,IAAI;IAKP,aAAa,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO;IAI5H,gBAAgB,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO;CAG/J"}
@@ -1,30 +1,37 @@
1
- class n extends CustomEvent {
1
+ class i extends CustomEvent {
2
+ // with useDefineForClassFields: false (in tsconfig), TypeScript compiles class fields using legacy assignment semantics
3
+ // instead of native ES2022 Object.defineProperty.
4
+ // declare readonly type: TType;
5
+ get type() {
6
+ return super.type;
7
+ }
8
+ // readonly type: TType;
2
9
  target;
3
- // currentTarget: TTarget;
4
- type;
5
10
  constructor(e, t) {
6
11
  super(e, t), this.target = t.target;
7
12
  }
8
13
  }
9
- class o extends EventTarget {
14
+ class a extends EventTarget {
15
+ _listenerRegistry = /* @__PURE__ */ new Map();
10
16
  constructor() {
11
17
  super();
12
18
  }
13
19
  addEventListener(e, t, r) {
14
- super.addEventListener(e, t, r);
20
+ let s = this._listenerRegistry.get(e);
21
+ s || (s = /* @__PURE__ */ new Set(), this._listenerRegistry.set(e, s)), s.add(t), super.addEventListener(e, t, r);
15
22
  }
16
23
  removeEventListener(e, t, r) {
17
- super.removeEventListener(e, t);
24
+ this._listenerRegistry.get(e)?.delete(t), super.removeEventListener(e, t);
18
25
  }
19
26
  dispatchEvent(e) {
20
27
  return super.dispatchEvent(e);
21
28
  }
22
29
  hasEventListener(e, t) {
23
- throw new Error("Method not implemented.");
30
+ return this._listenerRegistry.get(e)?.has(t) ?? !1;
24
31
  }
25
32
  }
26
33
  export {
27
- n as StructEvent,
28
- o as StructEventTarget
34
+ i as StructEvent,
35
+ a as StructEventTarget
29
36
  };
30
37
  //# sourceMappingURL=structEvent.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"structEvent.es.js","sources":["D:/Src/my/actdim/public/utico/src/structEvent.ts"],"sourcesContent":["import { Struct } from \"./typeCore\";\r\n\r\nexport class StructEvent<\r\n TStruct extends Record<string, any>,\r\n TTarget extends StructEventTarget<TStruct>,\r\n TType extends Extract<keyof TStruct, string> = Extract<keyof TStruct, string>\r\n> extends CustomEvent<TStruct[TType]> {\r\n target: TTarget;\r\n // currentTarget: TTarget;\r\n type: TType;\r\n constructor(type: TType, eventInitDict?: CustomEventInit<TStruct[TType]> & { target: TTarget }) {\r\n super(type, eventInitDict);\r\n this.target = eventInitDict.target;\r\n }\r\n}\r\n\r\n// TKeys extends Extract<keyof TStruct, string> = Extract<keyof TStruct, string>>\r\n// StructEventDispatcher\r\nexport class StructEventTarget<TStruct extends Record<string, any>> extends EventTarget implements StructEventTarget<TStruct> {\r\n constructor() {\r\n super();\r\n }\r\n\r\n addEventListener<K extends Extract<keyof TStruct, string>>(\r\n type: K,\r\n listener: (event: StructEvent<TStruct, this, K>) => void,\r\n options?: boolean | AddEventListenerOptions\r\n ): void {\r\n super.addEventListener(type, listener, options);\r\n }\r\n\r\n removeEventListener<K extends Extract<keyof TStruct, string>>(\r\n type: K,\r\n listener: (event: StructEvent<TStruct, this, K>) => void,\r\n options?: boolean | EventListenerOptions\r\n ): void {\r\n super.removeEventListener(type, listener);\r\n }\r\n\r\n dispatchEvent<K extends Extract<keyof TStruct, string>>(event: StructEvent<TStruct, this, K>): boolean {\r\n return super.dispatchEvent(event);\r\n }\r\n\r\n hasEventListener<K extends Extract<keyof TStruct, string>>(type: K, listener: (event: StructEvent<TStruct, this, K>) => void): boolean {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n}\r\n"],"names":["StructEvent","type","eventInitDict","StructEventTarget","listener","options","event"],"mappings":"AAEO,MAAMA,UAIH,YAA4B;AAAA,EAClC;AAAA;AAAA,EAEA;AAAA,EACA,YAAYC,GAAaC,GAAuE;AAC5F,UAAMD,GAAMC,CAAa,GACzB,KAAK,SAASA,EAAc;AAAA,EAChC;AACJ;AAIO,MAAMC,UAA+D,YAAkD;AAAA,EAC1H,cAAc;AACV,UAAA;AAAA,EACJ;AAAA,EAEA,iBACIF,GACAG,GACAC,GACI;AACJ,UAAM,iBAAiBJ,GAAMG,GAAUC,CAAO;AAAA,EAClD;AAAA,EAEA,oBACIJ,GACAG,GACAC,GACI;AACJ,UAAM,oBAAoBJ,GAAMG,CAAQ;AAAA,EAC5C;AAAA,EAEA,cAAwDE,GAA+C;AACnG,WAAO,MAAM,cAAcA,CAAK;AAAA,EACpC;AAAA,EAEA,iBAA2DL,GAASG,GAAmE;AACnI,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC7C;AACJ;"}
1
+ {"version":3,"file":"structEvent.es.js","sources":["D:/Src/my/actdim/public/utico/src/structEvent.ts"],"sourcesContent":null,"names":["StructEvent","type","eventInitDict","StructEventTarget","listener","options","set","event"],"mappings":"AAEO,MAAMA,UAIH,YAA4B;AAAA;AAAA;AAAA;AAAA,EAIlC,IAAI,OAAO;AACP,WAAO,MAAM;AAAA,EACjB;AAAA;AAAA,EAEA;AAAA,EACA,YAAYC,GAAaC,GAAuE;AAC5F,UAAMD,GAAMC,CAAa,GAEzB,KAAK,SAASA,EAAc;AAAA,EAChC;AACJ;AAIO,MAAMC,UAA+D,YAAkD;AAAA,EAClH,wCAAwB,IAAA;AAAA,EAEhC,cAAc;AACV,UAAA;AAAA,EACJ;AAAA,EAEA,iBACIF,GACAG,GACAC,GACI;AACJ,QAAIC,IAAM,KAAK,kBAAkB,IAAIL,CAAI;AACzC,IAAKK,MACDA,wBAAU,IAAA,GACV,KAAK,kBAAkB,IAAIL,GAAMK,CAAG,IAExCA,EAAI,IAAIF,CAAQ,GAChB,MAAM,iBAAiBH,GAAMG,GAAUC,CAAO;AAAA,EAClD;AAAA,EAEA,oBACIJ,GACAG,GACAC,GACI;AACJ,SAAK,kBAAkB,IAAIJ,CAAI,GAAG,OAAOG,CAAQ,GACjD,MAAM,oBAAoBH,GAAMG,CAAQ;AAAA,EAC5C;AAAA,EAEA,cAAwDG,GAAqE;AACzH,WAAO,MAAM,cAAcA,CAAK;AAAA,EACpC;AAAA,EAEA,iBAA2DN,GAASG,GAAyF;AACzJ,WAAO,KAAK,kBAAkB,IAAIH,CAAI,GAAG,IAAIG,CAAQ,KAAK;AAAA,EAC9D;AACJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"typeCore.es.js","sources":["D:/Src/my/actdim/public/utico/src/typeCore.ts"],"sourcesContent":["// @filename: typeCore.ts\r\n\r\n// type SplitStringToUnion<T extends string, Separator extends string> = T extends `${infer First}${Separator}${infer Rest}`\r\n// ? First | SplitStringToUnion<Rest, Separator>\r\n// : T;\r\n\r\n/** more useful version of Omit */\r\nexport type Skip<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>; // FilterOut\r\n// export type Skip<T, K extends keyof T> = {\r\n// [P in keyof T as P extends K ? never : P]: T[P];\r\n// };\r\n\r\n// export type PickEx<T, TKeys extends keyof T | Array<keyof T>> = {\r\n// [K in TKeys extends Array<keyof T> ? TKeys[number] : TKeys]: T[K];\r\n// };\r\n\r\nexport type Filter<T, V> = {\r\n [K in keyof T as T[K] extends V ? K : never]: T[K];\r\n};\r\n\r\nexport type Diff<T, U> = Omit<T, keyof U>;\r\nexport type StrictDiff<T, U> = {\r\n [K in keyof T as K extends keyof U ? (T[K] extends U[K] ? (U[K] extends T[K] ? never : K) : K) : K]: T[K];\r\n};\r\n\r\n/** Mathematical (real) intersection */\r\nexport type CommonPart<T, U> = Pick<T, CommonKeys<T, U>>;\r\nexport type CommonPartEx<T extends object[]> =\r\n T extends [infer A extends object, infer B extends object, ...infer Rest extends object[]]\r\n ? CommonPartEx<[Pick<A, Extract<keyof A, keyof B>>, ...Rest]>\r\n : T extends [infer Only extends object]\r\n ? Only\r\n : unknown;\r\n\r\nexport type CommonPartFromSchema<T extends Record<string, object>> =\r\n keyof T extends infer K ?\r\n K extends any ?\r\n CommonPart<T[K & keyof T], CommonPartFromSchema<Omit<T, K & keyof T>>>\r\n : unknown\r\n : unknown;\r\n\r\nexport type CommonKeys<T, U> = Extract<keyof T, keyof U>;\r\nexport type CommonKeysEx<T extends object[]> =\r\n T extends [infer A extends object, infer B extends object, ...infer Rest extends object[]]\r\n ? CommonKeysEx<[{ [K in Extract<keyof A, keyof B>]: any }, ...Rest]>\r\n : T extends [infer Only extends object]\r\n ? keyof Only\r\n : never;\r\n\r\nexport type UnionToIntersection<U> =\r\n (U extends any ? (x: U) => void : never) extends (x: infer R) => void ? R : never;\r\n\r\nexport type ValueUnion<T> = T[keyof T];\r\n\r\nexport type TupleFromKeys<T, K extends readonly (keyof T)[]> = {\r\n [I in keyof K]: K[I] extends keyof T ? T[K[I]] : never\r\n};\r\n\r\nexport type Extend<T, U, K extends keyof U> = T & { [P in K]: U[K] };\r\n\r\n// Validation\r\nexport type ValueOf<T> = T[keyof T];\r\nexport type OneOnly<T, Key extends keyof T> = { [key in Exclude<keyof T, Key>]: null } & Pick<T, Key>;\r\nexport type OneOfByKey<T> = { [key in keyof T]: OneOnly<T, key> };\r\nexport type OneOfType<T> = ValueOf<OneOfByKey<T>>;\r\n\r\n// Extract version\r\nexport type KeyOfType<FromType, KeepType = any, Include = true> = {\r\n [K in keyof FromType]: FromType[K] extends KeepType ? (Include extends true ? K : never) : Include extends true ? never : K;\r\n}[keyof FromType];\r\n\r\nexport type Weaken<T, K extends keyof T> = {\r\n [P in keyof T]: P extends K ? any : T[P];\r\n};\r\n\r\nexport type Mutable<T> = {\r\n -readonly [K in keyof T]: T[K];\r\n};\r\n\r\nexport type Constructor = new (...args: any[]) => any;\r\n// export type ConstructorParameters<TConstructor extends Constructor> = TConstructor extends new (...args: infer TArgs) => any ? TArgs : never;\r\n\r\n// Extracts class instance type from class constructor\r\nexport type ConstructorClass<TConstructor extends Constructor> = TConstructor extends new (...args: any[]) => infer TClass ? TClass : never;\r\n\r\n// This is what we want: to be able to create new class instances\r\n// either with or without \"new\" keyword\r\nexport type CallableConstructor<TConstructor extends Constructor> = TConstructor &\r\n ((...args: ConstructorParameters<TConstructor>) => ConstructorClass<TConstructor>);\r\n\r\n// ToUpperCase\r\nexport type ToUpper<T> = T extends string\r\n ? Uppercase<T>\r\n : {\r\n [K in keyof T as K extends string ? Uppercase<K> : K]: T[K];\r\n };\r\n\r\n// ToLowerCase\r\nexport type ToLower<T> = T extends string\r\n ? Lowercase<T>\r\n : {\r\n [K in keyof T as K extends string ? Lowercase<K> : K]: T[K];\r\n };\r\n\r\nexport type AddPrefix<T, TPrefix extends string> = T extends string\r\n ? `${TPrefix}${T}`\r\n : {\r\n [K in keyof T as AddPrefix<K, TPrefix>]: T[K];\r\n };\r\n\r\nexport type AddSuffix<T, TSuffix extends string> = T extends string\r\n ? `${T}${TSuffix}`\r\n : {\r\n [K in keyof T as AddSuffix<K, TSuffix>]: T[K];\r\n };\r\n\r\nexport type RemovePrefix<T, TPrefix extends string> = T extends string\r\n ? T extends `${TPrefix}${infer Tail}`\r\n ? RemovePrefix<Tail, TPrefix>\r\n : T // never?\r\n : {\r\n [K in keyof T as RemovePrefix<K, TPrefix>]: T[K];\r\n };\r\n\r\nexport type RemoveSuffix<T, TSuffix extends string> = T extends string\r\n ? T extends `${infer Head}${TSuffix}`\r\n ? RemoveSuffix<Head, TSuffix>\r\n : T // never?\r\n : {\r\n [K in keyof T as RemoveSuffix<K, TSuffix>]: T[K];\r\n };\r\n\r\nexport const getPrefixer = (prefix: string) => (value: string) => {\r\n return `${prefix}${value}`;\r\n};\r\n\r\nexport const getValuePrefixer =\r\n <T extends { [key: string]: string }>(prefix: string) =>\r\n (dict: T): T => {\r\n return Object.fromEntries(Object.keys(dict).map((k) => [k, `${prefix}${dict[k]}`])) as T;\r\n };\r\n\r\nexport const getKeyPrefixer =\r\n <T extends { [key: string]: any }>(prefix: string) =>\r\n (obj: T): object => {\r\n return Object.fromEntries(Object.keys(obj).map((k) => [`${prefix}${k}`, obj[k]]));\r\n };\r\n\r\n// export type MaybePromise<T> = T extends undefined ? void : T | PromiseLike<Awaited<T>>; // TODO: check\r\nexport type MaybePromise<T> = T extends undefined ? void : T | PromiseLike<T>;\r\n\r\nexport type Func<TArgs extends any[] = any[], T = any> = {\r\n (...args: TArgs): T;\r\n name?: string;\r\n};\r\n\r\nexport type Action<TArgs extends any[] = any[]> = Func<TArgs, void>;\r\n\r\nexport type AsyncFunc<TArgs extends any[] = any[], T = any> = Func<TArgs, PromiseLike<T>>;\r\n\r\n// use built-in ReturnType:\r\n// type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;\r\n// my version:\r\n// export type ReturnType<TFunc> = TFunc extends Func<infer TArgs, infer TResult> ? TResult : never;\r\n\r\n// use built-in Awaited type:\r\n/*\r\n// Recursively unwraps the \"awaited type\" of a type. \r\n// Non-promise \"thenables\" should resolve to `never`. \r\n// This emulates the behavior of `await`.\r\ntype Awaited<T> = T extends null | undefined ? T : // special case for `null | undefined` when not in `--strictNullChecks` mode\r\n T extends object & { then(onfulfilled: infer F, ...args: infer _): any; } ? // `await` only unwraps object types with a callable `then`. Non-object types are not unwrapped\r\n F extends ((value: infer V, ...args: infer _) => any) ? // if the argument to `then` is callable, extracts the first argument\r\n Awaited<V> : // recursively unwrap the value\r\n never : // the argument to `then` was not callable\r\n T; // non-object or non-thenable\r\n*/\r\n\r\n// my simple version (PromiseType):\r\n// export type Awaited<TPromise> = TPromise extends PromiseLike<infer TResult> ? TResult : TPromise;\r\n\r\n// AsyncReturnType\r\nexport type AwaitedReturnType<TFunc extends Func> = Awaited<ReturnType<TFunc>>;\r\n\r\nexport type Factory<T = any, TArgs extends any[] = []> = Func<TArgs, T>;\r\n\r\nexport type IProvider<TFactory = Factory> = {\r\n get: TFactory;\r\n};\r\n\r\n// (Func)ParameterType\r\n// type Parameters<T extends (...args: any) => any> = T extends (...args: infer P) => any ? P : never;\r\n/** see also built-in Parameters type */\r\nexport type ParameterType<TFunc, TParamIndex extends number> = TFunc extends Func<infer TArgs extends any[], infer TResult>\r\n ? TArgs[TParamIndex]\r\n : never;\r\n\r\n// Lambda?\r\n// export type Executor<T = void, TArgs extends any[] = []> = Func<TArgs, T> | AsyncFunc<[], T>; // same\r\nexport type Executor<T = void, TArgs extends any[] = []> = Func<TArgs, T | PromiseLike<T>>;\r\n\r\nexport type Overwrite<Base, Overrides> = Omit<Base, keyof Overrides> & Overrides;\r\n// or\r\n// export type Overwrite<Base, Overrides> = Pick<Base, Exclude<keyof Base, keyof Overrides>> & Overrides;\r\n\r\nexport type Extends<T, TShape> = T extends TShape ? true : false;\r\n\r\n// more strict than Extract\r\nexport type RequireExtends<T extends TShape, TShape> = T;\r\n\r\nexport type KeyOf<T, TKey extends keyof T> = TKey;\r\n\r\nexport type HasKeys<T> = keyof T extends never ? false : true;\r\n\r\nexport type IsEmpty<T> = HasKeys<T> extends false ? true : false;\r\n\r\nexport type Require<T, TCondition extends boolean> = TCondition extends true ? T : never;\r\n\r\nexport type IF<TCondition extends boolean, Then, Else = never> = TCondition extends true ? Then : Else;\r\n\r\nexport type Conditional<TCondition extends boolean, Then, Else = never> = IF<TCondition, Then, Else>;\r\n\r\nexport type IsKeyOf<T, TKey> = TKey extends keyof T ? true : false;\r\n\r\nexport type KeysOf<T, TKeys extends keyof T | Array<keyof T>> = TKeys extends Array<keyof T> ? TKeys[number] : TKeys;\r\n\r\nexport type MaybeKeyOf<T, K extends PropertyKey> = K extends keyof T ? K : never;\r\n\r\nexport type IsTuple<T> = T extends readonly [...infer Elements] ? (number extends Elements[\"length\"] ? false : true) : false;\r\n\r\n// for classes only:\r\n// export type ExtractInterface<T extends abstract new (...args: any) => any> = T extends abstract new (...args: any) => infer R\r\n// ? { [K in keyof R]: R[K] }\r\n// : never;\r\n\r\n// Struct(Copy), Shape, Interface \r\nexport type Struct<T> = { [K in keyof T]: T[K] };\r\n\r\ntype NonFunctionPropertyKeys<T> = {\r\n [K in keyof T]: T[K] extends (...args: any[]) => any ? never : K\r\n}[keyof T];\r\n\r\ntype NextDepthMap = {\r\n 0: 1;\r\n 1: 2;\r\n 2: 3;\r\n 3: 4;\r\n 4: 5;\r\n 5: 5;\r\n};\r\ntype NextDepth<D extends number> = D extends keyof NextDepthMap ? NextDepthMap[D] : 5;\r\n\r\nexport type KeyPath<T, D extends number = 0> =\r\n D extends 5 ? never :\r\n T extends readonly any[]\r\n ? `${number}` | `${number}.${KeyPath<T[number], NextDepth<D>>}`\r\n : T extends object\r\n ? {\r\n [K in NonFunctionPropertyKeys<T> & (string | number)]:\r\n T[K] extends readonly any[]\r\n ? `${K}` |\r\n `${K}.${number}` |\r\n `${K}.${number}.${KeyPath<T[K][number], NextDepth<D>>}`\r\n : T[K] extends object\r\n ? `${K}` | `${K}.${KeyPath<T[K], NextDepth<D>>}`\r\n : `${K}`;\r\n }[NonFunctionPropertyKeys<T> & (string | number)]\r\n : never;\r\n\r\nexport type KeyPathValue<T, P extends string> =\r\n P extends `${infer K}.${infer Rest}`\r\n ? K extends keyof T\r\n ? KeyPathValue<T[K], Rest>\r\n : T extends readonly any[]\r\n ? K extends `${number}`\r\n ? KeyPathValue<T[number], Rest>\r\n : never\r\n : never\r\n : P extends keyof T\r\n ? T[P]\r\n : T extends readonly any[]\r\n ? P extends `${number}`\r\n ? T[number]\r\n : never\r\n : never;\r\n\r\n// Slice\r\nexport type KeyPathValueMap<T> = {\r\n [K in KeyPath<T>]?: KeyPathValue<T, K>;\r\n};"],"names":["getPrefixer","prefix","value","getValuePrefixer","dict","k","getKeyPrefixer","obj"],"mappings":"AAoIO,MAAMA,IAAc,CAACC,MAAmB,CAACC,MACrC,GAAGD,CAAM,GAAGC,CAAK,IAGfC,IACT,CAAsCF,MAClC,CAACG,MACU,OAAO,YAAY,OAAO,KAAKA,CAAI,EAAE,IAAI,CAACC,MAAM,CAACA,GAAG,GAAGJ,CAAM,GAAGG,EAAKC,CAAC,CAAC,EAAE,CAAC,CAAC,GAGjFC,IACT,CAAmCL,MAC/B,CAACM,MACU,OAAO,YAAY,OAAO,KAAKA,CAAG,EAAE,IAAI,CAACF,MAAM,CAAC,GAAGJ,CAAM,GAAGI,CAAC,IAAIE,EAAIF,CAAC,CAAC,CAAC,CAAC;"}
1
+ {"version":3,"file":"typeCore.es.js","sources":["D:/Src/my/actdim/public/utico/src/typeCore.ts"],"sourcesContent":null,"names":["getPrefixer","prefix","value","getValuePrefixer","dict","k","getKeyPrefixer","obj"],"mappings":"AAoIO,MAAMA,IAAc,CAACC,MAAmB,CAACC,MACrC,GAAGD,CAAM,GAAGC,CAAK,IAGfC,IACT,CAAsCF,MAClC,CAACG,MACU,OAAO,YAAY,OAAO,KAAKA,CAAI,EAAE,IAAI,CAACC,MAAM,CAACA,GAAG,GAAGJ,CAAM,GAAGG,EAAKC,CAAC,CAAC,EAAE,CAAC,CAAC,GAGjFC,IACT,CAAmCL,MAC/B,CAACM,MACU,OAAO,YAAY,OAAO,KAAKA,CAAG,EAAE,IAAI,CAACF,MAAM,CAAC,GAAGJ,CAAM,GAAGI,CAAC,IAAIE,EAAIF,CAAC,CAAC,CAAC,CAAC;"}
@@ -5,17 +5,18 @@ export declare function satisfies<TShape>(): <T extends TShape>(obj: T) => T;
5
5
  export declare function strictSatisfies<T>(): <U extends T>(u: U & Record<Exclude<keyof U, keyof T>, never>) => U & Record<Exclude<keyof U, keyof T>, never>;
6
6
  export declare const keyOf: <T extends object, TKey extends keyof T = keyof T>(key: TKey, obj?: T) => TKey;
7
7
  export declare function nameOf<T extends object>(f: (x: T) => T[keyof T]): keyof T;
8
- type $KeyMap<T extends object> = {
8
+ type _KeyMap<T extends object> = {
9
9
  [K in keyof T]: K;
10
10
  };
11
- export declare function $keyMap<T extends object>(obj?: T): $KeyMap<T>;
12
- type $NH<T> = {
11
+ export declare function _keyMap<T extends object>(obj?: T): _KeyMap<T>;
12
+ type _NH<T> = {
13
13
  nameOf(f: (x: T) => T[keyof T]): keyof T;
14
14
  };
15
- export declare function $nh<T>(obj?: T): $NH<T>;
15
+ export declare function _nh<T>(obj?: T): _NH<T>;
16
16
  export declare function getPropertyPath<T>(expr: (x: T) => any): (string | number | symbol)[];
17
17
  export declare function combinePropertyPath(path?: (string | number | symbol)[]): string;
18
18
  export declare function createConstructor<TConstructor extends Constructor>(type: TConstructor): CallableConstructor<TConstructor>;
19
+ export declare function typed<TCtor extends Constructor>(ctor: TCtor): CallableConstructor<TCtor>;
19
20
  export declare function getPrototypes(obj: any): any[];
20
21
  export declare function proxify<T extends object>(source: () => T): T;
21
22
  export declare function getEnumValue<T>(enumType: T, name: string, defaultValue: T[keyof T]): T[keyof T];
@@ -28,9 +29,9 @@ export declare function isPlainObject(value: any): boolean;
28
29
  export declare const orderedStringify: (obj: any, keyCompareFn?: (a: string, b: string) => number, replacer?: (this: any, key: string, value: any) => any, space?: string | number) => string;
29
30
  export declare function jsonEquals<T>(obj1: T, obj2: T): boolean;
30
31
  export declare function jsonClone<T extends object>(obj: T): T;
31
- declare const lock: unique symbol;
32
+ declare const $lock: unique symbol;
32
33
  export type ILockable<T = any> = Readonly<T> & {
33
- [lock]?: (locked: boolean) => void;
34
+ [$lock]?: (locked: boolean) => void;
34
35
  };
35
36
  export declare function toReadOnly<T extends object>(obj: T, throwOnSet?: boolean): ILockable<T>;
36
37
  export type DeepPropertyKey = PropertyKey[];
@@ -1 +1 @@
1
- {"version":3,"file":"typeUtils.d.ts","sourceRoot":"","sources":["../src/typeUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typeUtils.d.ts","sourceRoot":"","sources":["../src/typeUtils.ts"],"names":[],"mappings":"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"}