@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
@@ -1,12 +1,12 @@
1
- import { v4 as u } 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(d) {
5
- const t = [...d.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 d.get(t[e]);
7
+ yield u.get(t[e]);
8
8
  }
9
- class c {
9
+ class d {
10
10
  _metadata;
11
11
  constructor(t) {
12
12
  this._metadata = t;
@@ -14,219 +14,225 @@ class c {
14
14
  get db() {
15
15
  return this._metadata.db;
16
16
  }
17
- async toArrayAsync(t, e, a = "r") {
18
- const r = this.db;
19
- return r.execAsync(async () => {
20
- const n = /* @__PURE__ */ new Map();
21
- let s = this._metadata.each;
22
- t && e && (s = (await this._metadata.sortBy(t)).forEach), s((i) => {
23
- n.set(i.key, {
24
- metadata: i
17
+ async toArray(t, e, r = "r") {
18
+ const n = this.db;
19
+ return n.exec(async () => {
20
+ const a = /* @__PURE__ */ new Map();
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) => {
27
+ a.set(s.key, {
28
+ metadata: s
25
29
  // data: undefined
26
30
  });
27
31
  });
28
- const y = [...n.keys()], o = await r.data.bulkGet(y);
29
- for (const i of o)
30
- n.get(i.key).data = i;
31
- return e === "desc" ? [...w(n)] : [...n.values()];
32
- }, a);
32
+ const o = [...a.keys()], c = await n.data.bulkGet(o);
33
+ for (const s of c)
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
- orderByAsync(t, e, a = "r") {
35
- return this.toArrayAsync(t, e, a);
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);
39
- return new c(e);
46
+ return new d(e);
40
47
  }
41
48
  limit(t) {
42
- return new c(this._metadata.limit(t));
49
+ return new d(this._metadata.limit(t));
43
50
  }
44
51
  offset(t) {
45
- return new c(this._metadata.offset(t));
52
+ return new d(this._metadata.offset(t));
46
53
  }
47
- getKeysAsync() {
54
+ getKeys() {
48
55
  return this._metadata.primaryKeys();
49
56
  }
50
- getCountAsync() {
57
+ getCount() {
51
58
  return this._metadata.count();
52
59
  }
53
- getFilterKeysAsync(t) {
54
- return t ? this._metadata.uniqueKeys : this._metadata.keys;
60
+ getFilterKeys(t) {
61
+ return t ? this._metadata.uniqueKeys() : this._metadata.keys();
55
62
  }
56
- modifyMetadataAsync(t, e = "rw") {
63
+ modifyMetadata(t, e = "rw") {
57
64
  if (!t)
58
65
  throw new Error("callback cannot be undefined.");
59
- return this.db.execAsync(async () => this._metadata.modify((a) => {
60
- t(a);
66
+ return this.db.exec(async () => this._metadata.modify((r) => {
67
+ t(r);
61
68
  }), e);
62
69
  }
63
- modifyDataAsync(t, e = "rw") {
70
+ modifyData(t, e = "rw") {
64
71
  if (!t)
65
72
  throw new Error("callback cannot be undefined.");
66
- return this.db.execAsync(async () => {
67
- const a = await this.getKeysAsync();
68
- return await this.db.data.where(h("key")).anyOf(a).modify((r) => {
69
- t(r.value);
73
+ return this.db.exec(async () => {
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
- modifyAsync(t, e, a = "rw") {
74
- return this.db.execAsync(async () => {
75
- const r = [];
76
- let n;
77
- return t && (n = await this._metadata.modify((s) => {
78
- r.push(s.key), t(s);
79
- })), e && await this.db.data.where(h("key")).anyOf(r).modify((s) => {
80
- e(s.value);
81
- }), n;
82
- }, a);
80
+ modify(t, e, r = "rw") {
81
+ return this.db.exec(async () => {
82
+ const n = [];
83
+ let a;
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);
88
+ }), a;
89
+ }, r);
83
90
  }
84
91
  }
85
- function m(d, t) {
92
+ function m(u, t) {
86
93
  const e = /* @__PURE__ */ new WeakMap();
87
- return new Proxy(d, {
88
- get(a, r, n) {
89
- const s = Reflect.get(a, r, n);
90
- return typeof s == "function" ? (e.has(s) || e.set(s, new Proxy(s, {
91
- apply(y, o, i) {
92
- return t(Reflect.apply(y, o, i));
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(s)) : s;
101
+ })), e.get(i)) : i;
95
102
  }
96
103
  });
97
104
  }
98
- class p {
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
- dispose() {
106
- this._db?.dispose(), this._db = null;
112
+ [Symbol.dispose]() {
113
+ this._db?.[Symbol.dispose](), this._db = null;
107
114
  }
108
- openAsync() {
109
- return this._db.openAsync();
115
+ open() {
116
+ return this._db.open();
110
117
  }
111
- execAsync(t, e = "r!") {
112
- return this._db.execAsync(t, e);
118
+ exec(t, e = "r!") {
119
+ return this._db.exec(t, e);
113
120
  }
114
- getKeysAsync() {
115
- return this._db.getKeysAsync();
121
+ getKeys() {
122
+ return this._db.getKeys();
116
123
  }
117
- containsAsync(t, e = "r") {
118
- return this._db.containsAsync(t, e);
124
+ contains(t, e = "r") {
125
+ return this._db.contains(t, e);
119
126
  }
120
- deleteAsync(t, e = "rw") {
121
- return this._db.deleteAsync(t, e);
127
+ delete(t, e = "rw") {
128
+ return this._db.deleteOne(t, e);
122
129
  }
123
- // deleteManyAsync
124
- bulkDeleteAsync(t, e = "rw") {
125
- return this._db.bulkDeleteAsync(t, e);
130
+ // deleteMany
131
+ bulkDelete(t, e = "rw") {
132
+ return this._db.bulkDelete(t, e);
126
133
  }
127
- // clearAllAsync
128
- clearAsync(t = "rw") {
129
- return this._db.clearAsync(t);
134
+ // clearAll
135
+ clear(t = "rw") {
136
+ return this._db.clear(t);
130
137
  }
131
- getAsync(t, e = "r?") {
132
- return this.execAsync(async () => {
133
- const a = await this._db.metadata.get(t), r = await this._db.data.get(t);
134
- return {
135
- metadata: a,
136
- data: r
137
- };
138
- }, e);
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;
139
148
  }
140
- // upsertAsync
141
- setAsync(t, e, a = "rw") {
149
+ get(t, e = "r?") {
150
+ return this.exec(() => this.getInternal(t), e);
151
+ }
152
+ // upsert
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 = u()), this.execAsync(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
- }, a);
151
- }
152
- // getOrAddAsync
153
- getOrSetAsync(t, e, a = "rw") {
156
+ return this.exec(() => this.setInternal(t, e), r);
157
+ }
158
+ // getOrAdd
159
+ async getOrSet(t, e, r = "rw") {
154
160
  if (!t.key)
155
161
  throw new Error('Key cannot be empty. Parameter: "metadataRecord".');
156
- return this.execAsync(async () => {
157
- const r = await this.getAsync(t.key);
158
- return r || (await this.setAsync(t, e(t)), this.getAsync(t.key));
159
- }, a);
162
+ return this.exec(async () => {
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
- updateAsync(t, e, a, 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 && !a)
170
+ if (!e && !r)
165
171
  throw new Error("No changes provided.");
166
- return this.execAsync(async () => {
167
- let n;
168
- return e && (n = await this._db.metadata.update(t, e)), a && await this._db.data.update(t, a), n;
172
+ return this.exec(async () => {
173
+ let a;
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}.`);
183
+ return this.exec(async () => {
184
+ let a;
185
+ return t && (a = await this._db.metadata.bulkUpdate(t)), e && await this._db.data.bulkUpdate(e), a;
169
186
  }, r);
170
187
  }
171
- bulkUpdateAsync(t, e, a = "rw") {
172
- let r;
173
- if (t && (r = t.findIndex((n) => !n.key)) >= 0)
174
- throw new Error(`Key cannot be empty. Parameter: "metadataChangeSets". Invalid item index: ${r}.`);
175
- if (e && (r = e.findIndex((n) => !n.key)) >= 0)
176
- throw new Error(`Key cannot be empty. Parameter: "valueChangeSets". Invalid item index: ${r}.`);
177
- return this.execAsync(async () => {
178
- let n;
179
- return t && (n = await this._db.metadata.bulkUpdate(t)), e && await this._db.data.bulkUpdate(e), n;
180
- }, a);
181
- }
182
188
  // getMany
183
- bulkGetAsync(t, e = "r") {
184
- return this.execAsync(async () => {
185
- const a = /* @__PURE__ */ new Map(), r = await this._db.metadata.bulkGet(t);
186
- for (const s of r)
187
- a.set(s.key, {
188
- metadata: s
189
- // data: undefined
190
- });
191
- const n = await this._db.data.bulkGet(t);
192
- for (const s of n)
193
- a.get(s.key).data = s;
194
- return [...a.values()];
189
+ bulkGet(t, e = "r") {
190
+ return this.exec(async () => {
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 });
194
+ const a = await this._db.data.bulkGet(t);
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
- bulkSetAsync(t, e, a = "rw") {
198
- let r;
199
- if (t && (r = t.findIndex((n) => !n)) >= 0)
200
- throw new Error(`Invalid metadata record. Parameter: "metadataRecords". Index: ${r}.`);
201
- if (e && (r = e.findIndex((n) => !n || !n.key || n.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
- for (const n of t)
206
- n.key || (n.key = u());
207
- return this.execAsync(async () => {
208
- let n;
209
- return t && (n = await this._db.metadata.bulkPut(t, void 0, { allKeys: !0 })), e && await this._db.data.bulkPut(e, void 0, { allKeys: !0 }), n;
210
- }, a);
211
+ for (const a of t)
212
+ a.key || (a.key = f());
213
+ return this.exec(async () => {
214
+ let a;
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;
216
+ }, r);
211
217
  }
212
- orderBy(t, e, a = !1) {
213
- let r = this._db.metadata.orderBy(t);
214
- return e === "desc" && (r = r.reverse()), a && (r = r.distinct()), new c(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();
218
- return new c(e);
224
+ return new d(e);
219
225
  }
220
226
  query() {
221
- return new c(this._db.metadata.toCollection());
227
+ return new d(this._db.metadata.toCollection());
222
228
  }
223
229
  // filter
224
230
  where(t) {
225
231
  const e = this._db.metadata.where(t);
226
- return m(e, (a) => new c(a));
232
+ return m(e, (r) => new d(r));
227
233
  }
228
234
  }
229
235
  export {
230
- p 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 toArrayAsync(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.execAsync(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 orderByAsync(field: keyof T, direction: OrderDirection, transactionMode: TransactionMode = \"r\") {\r\n return this.toArrayAsync(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 getKeysAsync() {\r\n return this._metadata.primaryKeys() as Promise<T[\"key\"][]>;\r\n }\r\n\r\n getCountAsync() {\r\n return this._metadata.count();\r\n }\r\n\r\n getFilterKeysAsync(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 modifyMetadataAsync(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.execAsync(async () => {\r\n return this._metadata.modify(r => {\r\n callback(r);\r\n });\r\n }, transactionMode);\r\n }\r\n\r\n modifyDataAsync(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.execAsync(async () => {\r\n const keys = await this.getKeysAsync();\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 modifyAsync(metadataCallback: (metadataRecord: T) => void, dataCallback: (dataRecord: DataRecord) => void, transactionMode: TransactionMode = \"rw\") {\r\n return this.db.execAsync(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 dispose() {\r\n this._db?.dispose();\r\n this._db = null;\r\n }\r\n\r\n openAsync() {\r\n return this._db.openAsync()\r\n }\r\n\r\n execAsync<T>(\r\n action: () => Promise<T>, // scope\r\n transactionMode: TransactionMode = \"r!\") {\r\n return this._db.execAsync(action, transactionMode);\r\n }\r\n\r\n getKeysAsync() {\r\n return this._db.getKeysAsync();\r\n // return this.query().keysAsync();\r\n }\r\n\r\n containsAsync(key: string, transactionMode: TransactionMode = \"r\") {\r\n return this._db.containsAsync(key, transactionMode);\r\n }\r\n\r\n deleteAsync(key: string, transactionMode: TransactionMode = \"rw\") {\r\n return this._db.deleteAsync(key, transactionMode);\r\n }\r\n\r\n // deleteManyAsync\r\n bulkDeleteAsync(keys: string[], transactionMode: TransactionMode = \"rw\") {\r\n return this._db.bulkDeleteAsync(keys, transactionMode);\r\n }\r\n\r\n // clearAllAsync\r\n clearAsync(transactionMode: TransactionMode = \"rw\") {\r\n return this._db.clearAsync(transactionMode);\r\n }\r\n\r\n getAsync<TValue = any>(key: string, transactionMode: TransactionMode = \"r?\"): Promise<StoreItem<T, TValue>> {\r\n return this.execAsync(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 // upsertAsync\r\n setAsync<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.execAsync(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 // getOrAddAsync\r\n getOrSetAsync<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.execAsync(async () => {\r\n const existingStoreItem = await this.getAsync(metadataRecord.key);\r\n if (existingStoreItem) {\r\n return existingStoreItem;\r\n }\r\n await this.setAsync(metadataRecord, factory(metadataRecord));\r\n return this.getAsync(metadataRecord.key);\r\n }, transactionMode);\r\n }\r\n\r\n updateAsync<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.execAsync(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 bulkUpdateAsync(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.execAsync(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 bulkGetAsync<TValue = any>(keys: string[], transactionMode: TransactionMode = \"r\") {\r\n return this.execAsync(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 bulkSetAsync<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.execAsync(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
- static deleteAsync(name: string): Promise<void>;
9
- static existsAsync(name: string): Promise<boolean>;
10
- static openAsync(name: string, options?: PersistentStoreOptions): Promise<PersistentStore>;
11
- constructor(name: string, options?: PersistentStoreOptions);
9
+ static delete(name: string): Promise<void>;
10
+ static exists(name: string): Promise<boolean>;
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,WAAW,CAAC,IAAI,EAAE,MAAM;IAI/B,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM;IAI/B,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB;gBAInD,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 o } from "./dataStore.es.js";
2
- import { StoreDb as s } from "./storeDb.es.js";
3
- const r = {
1
+ import { DataStore as a } from "./dataStore.es.js";
2
+ import { StoreDb as o } from "./storeDb.es.js";
3
+ const n = {
4
4
  useEncryption: !1
5
- }, c = ["&key", "createdAt", "updatedAt", "tags"];
6
- class n extends o {
5
+ }, i = ["&key", "createdAt", "updatedAt", "tags"];
6
+ class r extends a {
7
7
  _options;
8
8
  // TODO: support
9
- static deleteAsync(t) {
10
- return s.deleteAsync(t);
9
+ static delete(t) {
10
+ return o.delete(t);
11
11
  }
12
- static existsAsync(t) {
13
- return s.existsAsync(t);
12
+ static exists(t) {
13
+ return o.exists(t);
14
14
  }
15
- static openAsync(t, e) {
16
- return s.openAsync(t, () => new n(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, c), this._options = { ...e, ...r };
18
+ constructor(t, e, s) {
19
+ super(t, e ?? i), this._options = { ...s, ...n };
20
20
  }
21
21
  }
22
22
  export {
23
- n 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 deleteAsync(name: string) {\r\n return StoreDb.deleteAsync(name);\r\n }\r\n\r\n static existsAsync(name: string) {\r\n return StoreDb.existsAsync(name);\r\n }\r\n\r\n static openAsync(name: string, options?: PersistentStoreOptions) {\r\n return StoreDb.openAsync(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,YAAYC,GAAc;AAC7B,WAAOC,EAAQ,YAAYD,CAAI;AAAA,EACnC;AAAA,EAEA,OAAO,YAAYA,GAAc;AAC7B,WAAOC,EAAQ,YAAYD,CAAI;AAAA,EACnC;AAAA,EAEA,OAAO,UAAUA,GAAcE,GAAkC;AAC7D,WAAOD,EAAQ,UAAUD,GAAM,MAAM,IAAIF,EAAgBE,GAAME,CAAO,CAAC;AAAA,EAC3E;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;"}