@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,10 +1,10 @@
1
- import { v4 as y } from "uuid";
1
+ import { v4 as f } from "uuid";
2
2
  import { keyOf as h } from "../typeUtils.es.js";
3
- import { StoreDb as f } from "./storeDb.es.js";
4
- function* w(o) {
5
- const t = [...o.keys()];
3
+ import { StoreDb as w } from "./storeDb.es.js";
4
+ function* l(u) {
5
+ const t = [...u.keys()];
6
6
  for (let e = t.length - 1; e >= 0; e--)
7
- yield o.get(t[e]);
7
+ yield u.get(t[e]);
8
8
  }
9
9
  class d {
10
10
  _metadata;
@@ -14,25 +14,32 @@ class d {
14
14
  get db() {
15
15
  return this._metadata.db;
16
16
  }
17
- async toArray(t, e, i = "r") {
18
- const r = this.db;
19
- return r.exec(async () => {
17
+ async toArray(t, e, r = "r") {
18
+ const n = this.db;
19
+ return n.exec(async () => {
20
20
  const a = /* @__PURE__ */ new Map();
21
- let n = this._metadata.each;
22
- t && e && (n = (await this._metadata.sortBy(t)).forEach), n((s) => {
21
+ let i = this._metadata.each.bind(this._metadata);
22
+ if (t && e) {
23
+ const s = await this._metadata.sortBy(t);
24
+ i = s.forEach.bind(s);
25
+ }
26
+ await i((s) => {
23
27
  a.set(s.key, {
24
28
  metadata: s
25
29
  // data: undefined
26
30
  });
27
31
  });
28
- const u = [...a.keys()], c = await r.data.bulkGet(u);
32
+ const o = [...a.keys()], c = await n.data.bulkGet(o);
29
33
  for (const s of c)
30
- a.get(s.key).data = s;
31
- return e === "desc" ? [...w(a)] : [...a.values()];
32
- }, i);
34
+ if (s) {
35
+ const y = a.get(s.key);
36
+ y && (y.data = s);
37
+ }
38
+ return e === "desc" ? [...l(a)] : [...a.values()];
39
+ }, r);
33
40
  }
34
- orderBy(t, e, i = "r") {
35
- return this.toArray(t, e, i);
41
+ orderBy(t, e, r = "r") {
42
+ return this.toArray(t, e, r);
36
43
  }
37
44
  filter(t) {
38
45
  const e = this._metadata.filter(t);
@@ -51,56 +58,56 @@ class d {
51
58
  return this._metadata.count();
52
59
  }
53
60
  getFilterKeys(t) {
54
- return t ? this._metadata.uniqueKeys : this._metadata.keys;
61
+ return t ? this._metadata.uniqueKeys() : this._metadata.keys();
55
62
  }
56
63
  modifyMetadata(t, e = "rw") {
57
64
  if (!t)
58
65
  throw new Error("callback cannot be undefined.");
59
- return this.db.exec(async () => this._metadata.modify((i) => {
60
- t(i);
66
+ return this.db.exec(async () => this._metadata.modify((r) => {
67
+ t(r);
61
68
  }), e);
62
69
  }
63
70
  modifyData(t, e = "rw") {
64
71
  if (!t)
65
72
  throw new Error("callback cannot be undefined.");
66
73
  return this.db.exec(async () => {
67
- const i = await this.getKeys();
68
- return await this.db.data.where(h("key")).anyOf(i).modify((r) => {
69
- t(r.value);
74
+ const r = await this.getKeys();
75
+ return await this.db.data.where(h("key")).anyOf(r).modify((n) => {
76
+ t(n);
70
77
  });
71
78
  }, e);
72
79
  }
73
- modify(t, e, i = "rw") {
80
+ modify(t, e, r = "rw") {
74
81
  return this.db.exec(async () => {
75
- const r = [];
82
+ const n = [];
76
83
  let a;
77
- return t && (a = await this._metadata.modify((n) => {
78
- r.push(n.key), t(n);
79
- })), e && await this.db.data.where(h("key")).anyOf(r).modify((n) => {
80
- e(n.value);
84
+ return t && (a = await this._metadata.modify((i) => {
85
+ n.push(i.key), t(i);
86
+ })), e && await this.db.data.where(h("key")).anyOf(n).modify((i) => {
87
+ e(i);
81
88
  }), a;
82
- }, i);
89
+ }, r);
83
90
  }
84
91
  }
85
- function m(o, t) {
92
+ function m(u, t) {
86
93
  const e = /* @__PURE__ */ new WeakMap();
87
- return new Proxy(o, {
88
- get(i, r, a) {
89
- const n = Reflect.get(i, r, a);
90
- return typeof n == "function" ? (e.has(n) || e.set(n, new Proxy(n, {
91
- apply(u, c, s) {
92
- return t(Reflect.apply(u, c, s));
94
+ return new Proxy(u, {
95
+ get(r, n, a) {
96
+ const i = Reflect.get(r, n, a);
97
+ return typeof i == "function" ? (e.has(i) || e.set(i, new Proxy(i, {
98
+ apply(o, c, s) {
99
+ return t(Reflect.apply(o, c, s));
93
100
  }
94
- })), e.get(n)) : n;
101
+ })), e.get(i)) : i;
95
102
  }
96
103
  });
97
104
  }
98
- class _ {
105
+ class k {
99
106
  _db;
100
107
  constructor(t, e) {
101
108
  if (!t)
102
109
  throw new Error("Name cannot be empty.");
103
- this._db = new f(t, e);
110
+ this._db = new w(t, e);
104
111
  }
105
112
  [Symbol.dispose]() {
106
113
  this._db?.[Symbol.dispose](), this._db = null;
@@ -128,90 +135,89 @@ class _ {
128
135
  clear(t = "rw") {
129
136
  return this._db.clear(t);
130
137
  }
138
+ async getInternal(t) {
139
+ const e = await this._db.metadata.get(t);
140
+ if (!e) return;
141
+ const r = await this._db.data.get(t);
142
+ return { metadata: e, data: r };
143
+ }
144
+ async setInternal(t, e) {
145
+ t.key || (t.key = f());
146
+ const r = await this._db.metadata.put(t);
147
+ return await this._db.data.put({ key: t.key, value: e }), r;
148
+ }
131
149
  get(t, e = "r?") {
132
- return this.exec(async () => {
133
- const i = await this._db.metadata.get(t), r = await this._db.data.get(t);
134
- return {
135
- metadata: i,
136
- data: r
137
- };
138
- }, e);
150
+ return this.exec(() => this.getInternal(t), e);
139
151
  }
140
152
  // upsert
141
- set(t, e, i = "rw") {
153
+ async set(t, e, r = "rw") {
142
154
  if (e === void 0)
143
155
  throw new Error('Invalid parameter: "value".');
144
- return t.key || (t.key = y()), this.exec(async () => {
145
- const r = await this._db.metadata.put(t);
146
- return await this._db.data.put({
147
- key: t.key,
148
- value: e
149
- }), r;
150
- }, i);
156
+ return this.exec(() => this.setInternal(t, e), r);
151
157
  }
152
158
  // getOrAdd
153
- getOrSet(t, e, i = "rw") {
159
+ async getOrSet(t, e, r = "rw") {
154
160
  if (!t.key)
155
161
  throw new Error('Key cannot be empty. Parameter: "metadataRecord".');
156
162
  return this.exec(async () => {
157
- const r = await this.get(t.key);
158
- return r || (await this.set(t, e(t)), this.get(t.key));
159
- }, i);
163
+ const n = await this.getInternal(t.key);
164
+ return n || (await this.setInternal(t, e(t)), this.getInternal(t.key));
165
+ }, r);
160
166
  }
161
- update(t, e, i, r = "rw") {
167
+ async update(t, e, r, n = "rw") {
162
168
  if (!t)
163
169
  throw new Error('Key cannot be empty. Parameter: "key".');
164
- if (!e && !i)
170
+ if (!e && !r)
165
171
  throw new Error("No changes provided.");
166
172
  return this.exec(async () => {
167
173
  let a;
168
- return e && (a = await this._db.metadata.update(t, e)), i && await this._db.data.update(t, i), a;
169
- }, r);
170
- }
171
- bulkUpdate(t, e, i = "rw") {
172
- let r;
173
- if (t && (r = t.findIndex((a) => !a.key)) >= 0)
174
- throw new Error(`Key cannot be empty. Parameter: "metadataChangeSets". Invalid item index: ${r}.`);
175
- if (e && (r = e.findIndex((a) => !a.key)) >= 0)
176
- throw new Error(`Key cannot be empty. Parameter: "valueChangeSets". Invalid item index: ${r}.`);
174
+ return e && (a = await this._db.metadata.update(t, e)), r && await this._db.data.update(t, r), a;
175
+ }, n);
176
+ }
177
+ async bulkUpdate(t, e, r = "rw") {
178
+ let n;
179
+ if (t && (n = t.findIndex((a) => !a.key)) >= 0)
180
+ throw new Error(`Key cannot be empty. Parameter: "metadataChangeSets". Invalid item index: ${n}.`);
181
+ if (e && (n = e.findIndex((a) => !a.key)) >= 0)
182
+ throw new Error(`Key cannot be empty. Parameter: "valueChangeSets". Invalid item index: ${n}.`);
177
183
  return this.exec(async () => {
178
184
  let a;
179
185
  return t && (a = await this._db.metadata.bulkUpdate(t)), e && await this._db.data.bulkUpdate(e), a;
180
- }, i);
186
+ }, r);
181
187
  }
182
188
  // getMany
183
189
  bulkGet(t, e = "r") {
184
190
  return this.exec(async () => {
185
- const i = /* @__PURE__ */ new Map(), r = await this._db.metadata.bulkGet(t);
186
- for (const n of r)
187
- i.set(n.key, {
188
- metadata: n
189
- // data: undefined
190
- });
191
+ const r = /* @__PURE__ */ new Map(), n = await this._db.metadata.bulkGet(t);
192
+ for (const i of n)
193
+ i && r.set(i.key, { metadata: i });
191
194
  const a = await this._db.data.bulkGet(t);
192
- for (const n of a)
193
- i.get(n.key).data = n;
194
- return [...i.values()];
195
+ for (const i of a)
196
+ if (i) {
197
+ const o = r.get(i.key);
198
+ o && (o.data = i);
199
+ }
200
+ return [...r.values()];
195
201
  }, e);
196
202
  }
197
- bulkSet(t, e, i = "rw") {
198
- let r;
199
- if (t && (r = t.findIndex((a) => !a)) >= 0)
200
- throw new Error(`Invalid metadata record. Parameter: "metadataRecords". Index: ${r}.`);
201
- if (e && (r = e.findIndex((a) => !a || !a.key || a.value === void 0)) >= 0)
202
- throw new Error(`Invalid data record. Parameter: "dataRecords". Index: ${r}.`);
203
+ async bulkSet(t, e, r = "rw") {
204
+ let n;
205
+ if (t && (n = t.findIndex((a) => !a)) >= 0)
206
+ throw new Error(`Invalid metadata record. Parameter: "metadataRecords". Index: ${n}.`);
207
+ if (e && (n = e.findIndex((a) => !a || !a.key || a.value === void 0)) >= 0)
208
+ throw new Error(`Invalid data record. Parameter: "dataRecords". Index: ${n}.`);
203
209
  if (!t && !e)
204
210
  throw new Error("No data provided.");
205
211
  for (const a of t)
206
- a.key || (a.key = y());
212
+ a.key || (a.key = f());
207
213
  return this.exec(async () => {
208
214
  let a;
209
215
  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;
210
- }, i);
216
+ }, r);
211
217
  }
212
- orderBy(t, e, i = !1) {
213
- let r = this._db.metadata.orderBy(t);
214
- return e === "desc" && (r = r.reverse()), i && (r = r.distinct()), new d(r);
218
+ orderBy(t, e, r = !1) {
219
+ let n = this._db.metadata.orderBy(t);
220
+ return e === "desc" && (n = n.reverse()), r && (n = n.distinct()), new d(n);
215
221
  }
216
222
  distinct(t) {
217
223
  const e = this._db.metadata.orderBy(t).distinct();
@@ -223,10 +229,10 @@ class _ {
223
229
  // filter
224
230
  where(t) {
225
231
  const e = this._db.metadata.where(t);
226
- return m(e, (i) => new d(i));
232
+ return m(e, (r) => new d(r));
227
233
  }
228
234
  }
229
235
  export {
230
- _ as DataStore
236
+ k as DataStore
231
237
  };
232
238
  //# sourceMappingURL=dataStore.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataStore.es.js","sources":["D:/Src/my/actdim/public/utico/src/store/dataStore.ts"],"sourcesContent":["import * as Dexie from \"dexie\";\r\nimport { v4 as uuid } from \"uuid\";\r\nimport { keyOf } from \"@/typeUtils\";\r\nimport { KeyPathValueMap } from \"@/typeCore\";\r\nimport { ChangeSet, DataRecord, FieldDefTemplate, IndexableType, IStoreCollection, MetadataRecord, OrderDirection, StoreBase, StoreItem, TransactionMode } from \"./storeContracts\";\r\nimport { StoreDb } from \"@/store/storeDb\";\r\n\r\nfunction* reverseMapValues<K, V>(map: Map<K, V>) {\r\n const keys = [...map.keys()];\r\n for (let i = keys.length - 1; i >= 0; i--) {\r\n yield map.get(keys[i])!;\r\n }\r\n}\r\n\r\nclass StoreCollection<T extends MetadataRecord = MetadataRecord, TValue = any> implements IStoreCollection<T, TValue> {\r\n private _metadata: Dexie.Collection<T>;\r\n\r\n constructor(\r\n metadata: Dexie.Collection<T>\r\n ) {\r\n this._metadata = metadata;\r\n }\r\n\r\n private get db() {\r\n return this._metadata.db as StoreDb<T>;\r\n }\r\n\r\n async toArray(orderBy?: keyof T, orderDirection?: OrderDirection, transactionMode: TransactionMode = \"r\"): Promise<StoreItem<T, TValue>[]> {\r\n\r\n const db = this.db;\r\n\r\n // db.data.where(keyOf<DataRecord>(\"key\")).equals(key).first();\r\n\r\n return db.exec(async () => {\r\n const map = new Map<string, StoreItem<T, TValue>>();\r\n let populate: (callback: (metadataRecord: T) => void) => void = this._metadata.each;\r\n if (orderBy && orderDirection) {\r\n const metadataRecords = await this._metadata.sortBy(orderBy as string);\r\n populate = metadataRecords.forEach;\r\n }\r\n populate(metadataRecord => {\r\n map.set(metadataRecord.key, {\r\n metadata: metadataRecord,\r\n // data: undefined\r\n });\r\n });\r\n const keys = [...map.keys()];\r\n const dataRecords = await db.data.bulkGet(keys);\r\n for (const dataRecord of dataRecords) {\r\n map.get(dataRecord.key).data = dataRecord;\r\n }\r\n // abandoned/orphaned entries:\r\n // Object.defineProperty(storeItem, keyOf<StoreItem>(\"data\"), {\r\n // writable: false,\r\n // get: function () {\r\n // throw new Error(\"Not found\");\r\n // }\r\n // });\r\n // Array.from(map.values()) can be slower!\r\n if (orderDirection === \"desc\") {\r\n return [...reverseMapValues(map)];\r\n }\r\n return [...map.values()];\r\n }, transactionMode);\r\n }\r\n\r\n orderBy(field: keyof T, direction: OrderDirection, transactionMode: TransactionMode = \"r\") {\r\n return this.toArray(field, direction, transactionMode);\r\n }\r\n\r\n filter<S extends T>(filter: (x: T) => x is S) {\r\n const metadata = this._metadata.filter(filter);\r\n return new StoreCollection<S, TValue>(metadata);\r\n }\r\n\r\n limit(n: number) {\r\n return new StoreCollection<T, TValue>(this._metadata.limit(n));\r\n }\r\n\r\n offset(n: number) {\r\n return new StoreCollection<T, TValue>(this._metadata.offset(n));\r\n }\r\n\r\n getKeys() {\r\n return this._metadata.primaryKeys() as Promise<T[\"key\"][]>;\r\n }\r\n\r\n getCount() {\r\n return this._metadata.count();\r\n }\r\n\r\n getFilterKeys(distinct: boolean) {\r\n if (distinct) {\r\n return this._metadata.uniqueKeys;\r\n }\r\n return this._metadata.keys;\r\n }\r\n\r\n modifyMetadata(callback: (metadataRecord: T) => void, transactionMode: TransactionMode = \"rw\") {\r\n if (!callback) {\r\n throw new Error(\"callback cannot be undefined.\");\r\n }\r\n return this.db.exec(async () => {\r\n return this._metadata.modify(r => {\r\n callback(r);\r\n });\r\n }, transactionMode);\r\n }\r\n\r\n modifyData(callback: (dataRecord: DataRecord) => void, transactionMode: TransactionMode = \"rw\") {\r\n if (!callback) {\r\n throw new Error(\"callback cannot be undefined.\");\r\n }\r\n return this.db.exec(async () => {\r\n const keys = await this.getKeys();\r\n return await this.db.data.where(keyOf<DataRecord>(\"key\")).anyOf(keys).modify(r => {\r\n callback(r.value);\r\n });\r\n }, transactionMode);\r\n }\r\n\r\n modify(metadataCallback: (metadataRecord: T) => void, dataCallback: (dataRecord: DataRecord) => void, transactionMode: TransactionMode = \"rw\") {\r\n return this.db.exec(async () => {\r\n const keys: string[] = [];\r\n let mc: number, dc: number;\r\n if (metadataCallback) {\r\n mc = await this._metadata.modify(r => {\r\n keys.push(r.key);\r\n metadataCallback(r);\r\n });\r\n }\r\n if (dataCallback) {\r\n dc = await this.db.data.where(keyOf<DataRecord>(\"key\")).anyOf(keys).modify(r => {\r\n dataCallback(r.value);\r\n });\r\n }\r\n return mc;\r\n }, transactionMode);\r\n }\r\n}\r\n\r\ninterface IWhereFilter<T extends IndexableType, TResult = any> {\r\n constructor(source: Dexie.WhereClause<any, any>)\r\n above(value: T): TResult;\r\n aboveOrEqual(value: T): TResult;\r\n anyOf(values: ReadonlyArray<T>): TResult;\r\n anyOfIgnoreCase(keys: T extends string ? T[] : never): T extends string ? TResult : never;\r\n below(value: T): TResult;\r\n belowOrEqual(value: T): TResult;\r\n between(lower: any, upper: any, includeLower?: boolean, includeUpper?: boolean): TResult;\r\n equals(value: T): TResult;\r\n equalsIgnoreCase(value: string): TResult;\r\n inAnyRange(ranges: ReadonlyArray<{\r\n 0: T;\r\n 1: T;\r\n }>, options?: {\r\n includeLowers?: boolean;\r\n includeUppers?: boolean;\r\n }): TResult;\r\n startsWith(prefix: T extends string ? T : never): T extends string ? TResult : never;\r\n startsWithAnyOf(prefixes: T extends string ? T[] : never): T extends string ? TResult : never;\r\n startsWithIgnoreCase(prefix: T extends string ? T : never): T extends string ? TResult : never;\r\n startsWithAnyOfIgnoreCase(prefixes: T extends string ? T[] : never): T extends string ? TResult : never;\r\n noneOf(values: ReadonlyArray<T>): TResult;\r\n notEqual(value: T): TResult;\r\n}\r\n\r\nfunction createWhereFilter<T extends IndexableType, TResult>(source: Dexie.WhereClause<any, any>, factory: (source: Dexie.Collection) => TResult) {\r\n const methodCache = new WeakMap<Function, Function>();\r\n return new Proxy(source as any, {\r\n get(target, prop, receiver) {\r\n const value = Reflect.get(target, prop, receiver);\r\n if (typeof value === \"function\") {\r\n if (!methodCache.has(value)) {\r\n methodCache.set(value, new Proxy(value, {\r\n apply(targetFn, thisArg, args) {\r\n return factory(Reflect.apply(targetFn, thisArg, args));\r\n },\r\n }));\r\n }\r\n return methodCache.get(value);\r\n }\r\n return value;\r\n },\r\n }) as IWhereFilter<T, TResult>;\r\n}\r\n\r\nexport class DataStore<T extends MetadataRecord> implements StoreBase {\r\n\r\n private _db: StoreDb<T>;\r\n\r\n constructor(name: string, metadataFieldDefTemplate: keyof T extends string ? FieldDefTemplate<keyof T> : never) {\r\n if (!name) {\r\n throw new Error(\"Name cannot be empty.\");\r\n }\r\n this._db = new StoreDb<T>(name, metadataFieldDefTemplate);\r\n }\r\n\r\n [Symbol.dispose]() {\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 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 // return this.query().getKeys();\r\n }\r\n\r\n contains(key: string, transactionMode: TransactionMode = \"r\") {\r\n return this._db.contains(key, transactionMode);\r\n }\r\n\r\n delete(key: string, transactionMode: TransactionMode = \"rw\") {\r\n return this._db.deleteOne(key, transactionMode);\r\n }\r\n\r\n // deleteMany\r\n bulkDelete(keys: string[], transactionMode: TransactionMode = \"rw\") {\r\n return this._db.bulkDelete(keys, transactionMode);\r\n }\r\n\r\n // clearAll\r\n clear(transactionMode: TransactionMode = \"rw\") {\r\n return this._db.clear(transactionMode);\r\n }\r\n\r\n get<TValue = any>(key: string, transactionMode: TransactionMode = \"r?\"): Promise<StoreItem<T, TValue>> {\r\n return this.exec(async () => {\r\n const metadataRecord = await this._db.metadata.get(key);\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<T, TValue>;\r\n }, transactionMode);\r\n }\r\n\r\n // upsert\r\n set<TValue = any>(metadataRecord: T, value: TValue, transactionMode: TransactionMode = \"rw\") {\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 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 }, transactionMode);\r\n }\r\n\r\n // getOrAdd\r\n getOrSet<TValue = any>(metadataRecord: T, factory: (metadataRecord: T) => TValue, transactionMode: TransactionMode = \"rw\") {\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));\r\n return this.get(metadataRecord.key);\r\n }, transactionMode);\r\n }\r\n\r\n update<TValue = any>(key: string, metadataChanges: KeyPathValueMap<T>, valueChanges?: KeyPathValueMap<TValue>, transactionMode: TransactionMode = \"rw\") {\r\n if (!key) {\r\n throw new Error('Key cannot be empty. Parameter: \"key\".');\r\n }\r\n if (!metadataChanges && !valueChanges) {\r\n throw new Error(\"No changes provided.\");\r\n }\r\n return this.exec(async () => {\r\n let mc: number, dc: number;\r\n if (metadataChanges) {\r\n mc = await this._db.metadata.update(key, metadataChanges as any);\r\n }\r\n if (valueChanges) {\r\n dc = await this._db.data.update(key, valueChanges);\r\n }\r\n return mc;\r\n }, transactionMode);\r\n }\r\n\r\n bulkUpdate(metadataChangeSets: ChangeSet<T>[], dataChangeSets?: ChangeSet<DataRecord>[], transactionMode: TransactionMode = \"rw\") {\r\n let index: number;\r\n if (metadataChangeSets && (index = metadataChangeSets.findIndex((x) => !x.key)) >= 0) {\r\n throw new Error(`Key cannot be empty. Parameter: \"metadataChangeSets\". Invalid item index: ${index}.`);\r\n }\r\n if (dataChangeSets && (index = dataChangeSets.findIndex((x) => !x.key)) >= 0) {\r\n throw new Error(`Key cannot be empty. Parameter: \"valueChangeSets\". Invalid item index: ${index}.`);\r\n }\r\n return this.exec(async () => {\r\n let cm: number, dc: number;\r\n if (metadataChangeSets) {\r\n cm = await this._db.metadata.bulkUpdate(metadataChangeSets as any);\r\n }\r\n if (dataChangeSets) {\r\n dc = await this._db.data.bulkUpdate(dataChangeSets);\r\n }\r\n return cm;\r\n }, transactionMode);\r\n }\r\n\r\n // getMany\r\n bulkGet<TValue = any>(keys: string[], transactionMode: TransactionMode = \"r\") {\r\n return this.exec(async () => {\r\n const map = new Map<string, StoreItem<T, TValue>>();\r\n const metadataRecords = await this._db.metadata.bulkGet(keys);\r\n for (const metadataRecord of metadataRecords) {\r\n map.set(metadataRecord.key, {\r\n metadata: metadataRecord,\r\n // data: undefined\r\n });\r\n }\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 }, transactionMode);\r\n }\r\n\r\n bulkSet<TValue = any>(metadataRecords: T[], dataRecords: DataRecord<TValue>[], transactionMode: TransactionMode = \"rw\") {\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 }\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 }, transactionMode);\r\n }\r\n\r\n orderBy(field: keyof T, direction: OrderDirection, distinct = false) {\r\n let metadata = this._db.metadata.orderBy(field as string);\r\n if (direction === \"desc\") {\r\n metadata = metadata.reverse();\r\n }\r\n if (distinct) {\r\n metadata = metadata.distinct();\r\n }\r\n return new StoreCollection(metadata);\r\n }\r\n\r\n distinct(field: keyof T) {\r\n const metadata = this._db.metadata.orderBy(field as string).distinct();\r\n return new StoreCollection(metadata);\r\n }\r\n\r\n query<TValue = any>() {\r\n return new StoreCollection<T, TValue>(this._db.metadata.toCollection());\r\n }\r\n\r\n // filter\r\n where<K extends keyof T, TValue = any>(field: K extends string ? K : never) {\r\n const source = this._db.metadata.where(field as string);\r\n return createWhereFilter<T[K] extends IndexableType ? T[K] : never, StoreCollection<T, TValue>>(source, c => new StoreCollection<T, TValue>(c));\r\n }\r\n}\r\n\r\n// and(filter: (x: T) => boolean): Collection<T, TKey, TInsertType>;\r\n// clone(props?: Object): Collection<T, TKey, TInsertType>;\r\n// count<R>(thenShortcut: ThenShortcut<number, R>): PromiseExtended<R>;\r\n// distinct(): Collection<T, TKey, TInsertType>;\r\n// each(callback: (obj: T, cursor: {\r\n// key: IndexableType;\r\n// primaryKey: TKey;\r\n// }) => any): PromiseExtended<void>;\r\n// eachKey(callback: (key: IndexableType, cursor: {\r\n// key: IndexableType;\r\n// primaryKey: TKey;\r\n// }) => any): PromiseExtended<void>;\r\n// eachPrimaryKey(callback: (key: TKey, cursor: {\r\n// key: IndexableType;\r\n// primaryKey: TKey;\r\n// }) => any): PromiseExtended<void>;\r\n// eachUniqueKey(callback: (key: IndexableType, cursor: {\r\n// key: IndexableType;\r\n// primaryKey: TKey;\r\n// }) => any): PromiseExtended<void>;\r\n// filter<S extends T>(filter: (x: T) => x is S): Collection<S, TKey>;\r\n// filter(filter: (x: T) => boolean): Collection<T, TKey, TInsertType>;\r\n// first(): PromiseExtended<T | undefined>;\r\n// first<R>(thenShortcut: ThenShortcut<T | undefined, R>): PromiseExtended<R>;\r\n// firstKey(): PromiseExtended<IndexableType | undefined>;\r\n// keys<R>(thenShortcut: ThenShortcut<IndexableTypeArray, R>): PromiseExtended<R>;\r\n// primaryKeys(): PromiseExtended<TKey[]>;\r\n// primaryKeys<R>(thenShortcut: ThenShortcut<TKey[], R>): PromiseExtended<R>;\r\n// last(): PromiseExtended<T | undefined>;\r\n// last<R>(thenShortcut: ThenShortcut<T | undefined, R>): PromiseExtended<R>;\r\n// lastKey(): PromiseExtended<IndexableType | undefined>;\r\n// or(indexOrPrimayKey: string): WhereClause<T, TKey, TInsertType>;\r\n// raw(): Collection<T, TKey, TInsertType>;\r\n// sortBy<R>(keyPath: string, thenShortcut: ThenShortcut<T[], R>): PromiseExtended<R>;\r\n// toArray(): PromiseExtended<Array<T>>;\r\n// toArray<R>(thenShortcut: ThenShortcut<T[], R>): PromiseExtended<R>;\r\n// uniqueKeys(): PromiseExtended<IndexableTypeArray>;\r\n// uniqueKeys<R>(thenShortcut: ThenShortcut<IndexableTypeArray, R>): PromiseExtended<R>;\r\n// until(filter: (value: T) => boolean, includeStopEntry?: boolean): Collection<T, TKey, TInsertType>;\r\n// // Mutating methods\r\n// delete(): PromiseExtended<number>;\r\n// modify(changeCallback: (obj: T, ctx: {\r\n// value: TInsertType;\r\n// }) => void | boolean): PromiseExtended<number>;\r\n// modify(changes: UpdateSpec<TInsertType>): PromiseExtended<number>;"],"names":["reverseMapValues","map","keys","i","StoreCollection","metadata","orderBy","orderDirection","transactionMode","db","populate","metadataRecord","dataRecords","dataRecord","field","direction","filter","n","distinct","callback","r","keyOf","metadataCallback","dataCallback","mc","createWhereFilter","source","factory","methodCache","target","prop","receiver","value","targetFn","thisArg","args","DataStore","name","metadataFieldDefTemplate","StoreDb","action","key","uuid","result","existingStoreItem","metadataChanges","valueChanges","metadataChangeSets","dataChangeSets","index","x","cm","metadataRecords","mKeys","c"],"mappings":"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"}
1
+ {"version":3,"file":"dataStore.es.js","sources":["D:/Src/my/actdim/public/utico/src/store/dataStore.ts"],"sourcesContent":null,"names":["reverseMapValues","map","keys","i","StoreCollection","metadata","orderBy","orderDirection","transactionMode","db","populate","metadataRecords","metadataRecord","dataRecords","dataRecord","item","field","direction","filter","n","distinct","callback","keyOf","r","metadataCallback","dataCallback","mc","createWhereFilter","source","factory","methodCache","target","prop","receiver","value","targetFn","thisArg","args","DataStore","name","metadataFieldDefTemplate","StoreDb","action","key","uuid","result","existing","metadataChanges","valueChanges","metadataChangeSets","dataChangeSets","index","x","cm","mKeys","c"],"mappings":"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"}
@@ -1,13 +1,14 @@
1
1
  import { DataStore } from './dataStore';
2
- import { IPersistentStore, MetadataRecord } from './storeContracts';
2
+ import { FieldDefTemplate, IPersistentStore, MetadataRecord } from './storeContracts';
3
3
  export type PersistentStoreOptions = {
4
4
  useEncryption: boolean;
5
5
  };
6
- export declare class PersistentStore extends DataStore<MetadataRecord> implements IPersistentStore<MetadataRecord> {
6
+ export declare const defaultMetadataFieldDefTemplate: ("createdAt" | "updatedAt" | "tags" | "&key")[];
7
+ export declare class PersistentStore<TMetadataRecord extends MetadataRecord = MetadataRecord> extends DataStore<TMetadataRecord> implements IPersistentStore<TMetadataRecord> {
7
8
  private _options;
8
9
  static delete(name: string): Promise<void>;
9
10
  static exists(name: string): Promise<boolean>;
10
- static open(name: string, options?: PersistentStoreOptions): Promise<PersistentStore>;
11
- constructor(name: string, options?: PersistentStoreOptions);
11
+ static open<TMetadataRecord extends MetadataRecord = MetadataRecord>(name: string, metadataFieldDefTemplate?: keyof TMetadataRecord extends string ? FieldDefTemplate<keyof TMetadataRecord> : never, options?: PersistentStoreOptions): Promise<PersistentStore<TMetadataRecord>>;
12
+ constructor(name: string, metadataFieldDefTemplate?: keyof TMetadataRecord extends string ? FieldDefTemplate<keyof TMetadataRecord> : never, options?: PersistentStoreOptions);
12
13
  }
13
14
  //# sourceMappingURL=persistentStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"persistentStore.d.ts","sourceRoot":"","sources":["../../src/store/persistentStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAY,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAM9E,MAAM,MAAM,sBAAsB,GAAG;IACjC,aAAa,EAAE,OAAO,CAAC;CAC1B,CAAC;AASF,qBAAa,eAAgB,SAAQ,SAAS,CAAC,cAAc,CAAE,YAAW,gBAAgB,CAAC,cAAc,CAAC;IAEtG,OAAO,CAAC,QAAQ,CAAyB;IAEzC,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;gBAI9C,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB;CAI7D"}
1
+ {"version":3,"file":"persistentStore.d.ts","sourceRoot":"","sources":["../../src/store/persistentStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAY,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMhG,MAAM,MAAM,sBAAsB,GAAG;IACjC,aAAa,EAAE,OAAO,CAAC;CAC1B,CAAC;AAOF,eAAO,MAAM,+BAA+B,iDAA8F,CAAC;AAE3I,qBAAa,eAAe,CAAC,eAAe,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,SAAS,CAAC,eAAe,CAAE,YAAW,gBAAgB,CAAC,eAAe,CAAC;IAEjK,OAAO,CAAC,QAAQ,CAAyB;IAEzC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM;IAI1B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM;IAI1B,MAAM,CAAC,IAAI,CAAC,eAAe,SAAS,cAAc,GAAG,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,MAAM,eAAe,SAAS,MAAM,GAAG,gBAAgB,CAAC,MAAM,eAAe,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,EAAE,sBAAsB;gBAI1N,IAAI,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,MAAM,eAAe,SAAS,MAAM,GAAG,gBAAgB,CAAC,MAAM,eAAe,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,EAAE,sBAAsB;CAIhL"}
@@ -1,25 +1,26 @@
1
- import { DataStore as r } from "./dataStore.es.js";
2
- import { StoreDb as s } from "./storeDb.es.js";
1
+ import { DataStore as a } from "./dataStore.es.js";
2
+ import { StoreDb as o } from "./storeDb.es.js";
3
3
  const n = {
4
4
  useEncryption: !1
5
- }, a = ["&key", "createdAt", "updatedAt", "tags"];
6
- class o extends r {
5
+ }, i = ["&key", "createdAt", "updatedAt", "tags"];
6
+ class r extends a {
7
7
  _options;
8
8
  // TODO: support
9
9
  static delete(t) {
10
- return s.delete(t);
10
+ return o.delete(t);
11
11
  }
12
12
  static exists(t) {
13
- return s.exists(t);
13
+ return o.exists(t);
14
14
  }
15
- static open(t, e) {
16
- return s.open(t, () => new o(t, e));
15
+ static open(t, e, s) {
16
+ return o.open(t, () => new r(t, e, s));
17
17
  }
18
- constructor(t, e) {
19
- super(t, a), this._options = { ...e, ...n };
18
+ constructor(t, e, s) {
19
+ super(t, e ?? i), this._options = { ...s, ...n };
20
20
  }
21
21
  }
22
22
  export {
23
- o as PersistentStore
23
+ r as PersistentStore,
24
+ i as defaultMetadataFieldDefTemplate
24
25
  };
25
26
  //# sourceMappingURL=persistentStore.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"persistentStore.es.js","sources":["D:/Src/my/actdim/public/utico/src/store/persistentStore.ts"],"sourcesContent":["import { DataStore } from \"./dataStore\";\r\nimport { FieldDef, IPersistentStore, MetadataRecord } from \"./storeContracts\";\r\nimport { StoreDb } from \"./storeDb\";\r\n\r\n// TODO: implement real encryption:\r\n// https://stackoverflow.com/questions/18279141/javascript-string-encryption-and-decryption\r\n\r\nexport type PersistentStoreOptions = {\r\n useEncryption: boolean;\r\n};\r\n\r\nconst defaultPersistentStoreOptions = {\r\n useEncryption: false\r\n} satisfies PersistentStoreOptions;\r\n\r\n// (registry/catalog)fieldNames\r\nconst metadataFieldDefTemplate = [\"&key\", \"createdAt\", \"updatedAt\", \"tags\"] satisfies (FieldDef<keyof MetadataRecord>)[];\r\n// T extends MetadataRecord\r\nexport class PersistentStore extends DataStore<MetadataRecord> implements IPersistentStore<MetadataRecord> {\r\n\r\n private _options: PersistentStoreOptions; // TODO: support\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?: PersistentStoreOptions) {\r\n return StoreDb.open(name, () => new PersistentStore(name, options));\r\n }\r\n\r\n constructor(name: string, options?: PersistentStoreOptions) {\r\n super(name, metadataFieldDefTemplate);\r\n this._options = { ...options, ...defaultPersistentStoreOptions };\r\n }\r\n}\r\n"],"names":["defaultPersistentStoreOptions","metadataFieldDefTemplate","PersistentStore","DataStore","name","StoreDb","options"],"mappings":";;AAWA,MAAMA,IAAgC;AAAA,EAClC,eAAe;AACnB,GAGMC,IAA2B,CAAC,QAAQ,aAAa,aAAa,MAAM;AAEnE,MAAMC,UAAwBC,EAAsE;AAAA,EAE/F;AAAA;AAAA,EAER,OAAO,OAAOC,GAAc;AACxB,WAAOC,EAAQ,OAAOD,CAAI;AAAA,EAC9B;AAAA,EAEA,OAAO,OAAOA,GAAc;AACxB,WAAOC,EAAQ,OAAOD,CAAI;AAAA,EAC9B;AAAA,EAEA,OAAO,KAAKA,GAAcE,GAAkC;AACxD,WAAOD,EAAQ,KAAKD,GAAM,MAAM,IAAIF,EAAgBE,GAAME,CAAO,CAAC;AAAA,EACtE;AAAA,EAEA,YAAYF,GAAcE,GAAkC;AACxD,UAAMF,GAAMH,CAAwB,GACpC,KAAK,WAAW,EAAE,GAAGK,GAAS,GAAGN,EAAA;AAAA,EACrC;AACJ;"}
1
+ {"version":3,"file":"persistentStore.es.js","sources":["D:/Src/my/actdim/public/utico/src/store/persistentStore.ts"],"sourcesContent":null,"names":["defaultPersistentStoreOptions","defaultMetadataFieldDefTemplate","PersistentStore","DataStore","name","StoreDb","metadataFieldDefTemplate","options"],"mappings":";;AAWA,MAAMA,IAAgC;AAAA,EAClC,eAAe;AACnB,GAGaC,IAAkC,CAAC,QAAQ,aAAa,aAAa,MAAM;AAEjF,MAAMC,UAAiFC,EAAwE;AAAA,EAE1J;AAAA;AAAA,EAER,OAAO,OAAOC,GAAc;AACxB,WAAOC,EAAQ,OAAOD,CAAI;AAAA,EAC9B;AAAA,EAEA,OAAO,OAAOA,GAAc;AACxB,WAAOC,EAAQ,OAAOD,CAAI;AAAA,EAC9B;AAAA,EAEA,OAAO,KAA8DA,GAAcE,GAAmHC,GAAkC;AACpO,WAAOF,EAAQ,KAAKD,GAAM,MAAM,IAAIF,EAAgBE,GAAME,GAA0BC,CAAO,CAAC;AAAA,EAChG;AAAA,EAEA,YAAYH,GAAcE,GAAmHC,GAAkC;AAC3K,UAAMH,GAAOE,KAA4BL,CAA0H,GACnK,KAAK,WAAW,EAAE,GAAGM,GAAS,GAAGP,EAAA;AAAA,EACrC;AACJ;"}
@@ -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,13 +26,37 @@ 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
54
  open(): PromiseLike<void>;
31
55
  };
32
- export interface IStoreCollection<T extends MetadataRecord = MetadataRecord, TValue = any> {
56
+ export interface IStoreCollection<T extends MetadataRecord = MetadataRecord, TValue = unknown> {
33
57
  toArray(orderBy?: keyof T, orderDirection?: OrderDirection, transactionMode?: TransactionMode): Promise<StoreItem<T, TValue>[]>;
34
58
  orderBy(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>;
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
62
  getKeys(): Promise<T["key"][]>;
@@ -48,11 +72,17 @@ export interface IPersistentStore<T extends MetadataRecord = MetadataRecord> {
48
72
  delete(key: string): Promise<void>;
49
73
  bulkDelete(keys: string[]): Promise<void>;
50
74
  clear(): Promise<void>;
51
- get<TValue = any>(key: string): Promise<StoreItem<T, TValue>>;
52
- set<TValue = any>(metadataRecord: T, value: TValue): Promise<string>;
53
- getOrSet<TValue = any>(metadataRecord: MetadataRecord, factory: (metadataRecord: MetadataRecord) => TValue): Promise<StoreItem<T, TValue>>;
54
- bulkGet<TValue = any>(keys: string[]): Promise<StoreItem<T, TValue>[]>;
55
- bulkSet<TValue = any>(metadataRecords: MetadataRecord[], dataRecords: DataRecord<TValue>[]): Promise<string[]>;
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
+ update<TValue = unknown>(key: string, metadataChanges: KeyPathValueMap<T>, valueChanges?: KeyPathValueMap<TValue>, transactionMode?: TransactionMode): Promise<number>;
85
+ bulkUpdate(metadataChangeSets: ChangeSet<T>[], dataChangeSets?: ChangeSet<DataRecord>[], transactionMode?: TransactionMode): Promise<number>;
56
86
  [Symbol.dispose]: () => void;
57
87
  }
58
88
  //# 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 open(): PromiseLike<void>;\r\n}\r\n\r\nexport interface IStoreCollection<T extends MetadataRecord = MetadataRecord, TValue = any> {\r\n\r\n toArray(orderBy?: keyof T, orderDirection?: OrderDirection, transactionMode?: TransactionMode): Promise<StoreItem<T, TValue>[]>;\r\n\r\n orderBy(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 getKeys(): Promise<T[\"key\"][]>;\r\n\r\n getCount(): Promise<number>;\r\n\r\n modifyMetadata(callback: (metadataRecord: T) => void, transactionMode?: TransactionMode): Promise<number>;\r\n\r\n modifyData(callback: (dataRecord: DataRecord) => void, transactionMode?: TransactionMode): Promise<number>;\r\n\r\n modify(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 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: MetadataRecord, factory: (metadataRecord: MetadataRecord) => 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: MetadataRecord[], dataRecords: DataRecord<TValue>[]): Promise<string[]>;\r\n\r\n [Symbol.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;"}