@belopash/typeorm-store 1.3.0 → 1.4.1

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 (50) hide show
  1. package/lib/index.js +2 -1
  2. package/lib/index.js.map +1 -1
  3. package/lib/store.d.ts +38 -31
  4. package/lib/store.d.ts.map +1 -1
  5. package/lib/store.js +133 -79
  6. package/lib/store.js.map +1 -1
  7. package/lib/utils/cacheMap.d.ts +23 -0
  8. package/lib/utils/cacheMap.d.ts.map +1 -0
  9. package/lib/{cacheMap.js → utils/cacheMap.js} +12 -27
  10. package/lib/utils/cacheMap.js.map +1 -0
  11. package/lib/utils/deferList.d.ts +14 -0
  12. package/lib/utils/deferList.d.ts.map +1 -0
  13. package/lib/utils/deferList.js +32 -0
  14. package/lib/utils/deferList.js.map +1 -0
  15. package/lib/utils/misc.d.ts +5 -0
  16. package/lib/utils/misc.d.ts.map +1 -0
  17. package/lib/{utils.js → utils/misc.js} +1 -1
  18. package/lib/utils/misc.js.map +1 -0
  19. package/lib/utils/relationGraph.d.ts.map +1 -0
  20. package/lib/utils/relationGraph.js.map +1 -0
  21. package/lib/utils/updateMap.d.ts +22 -0
  22. package/lib/utils/updateMap.d.ts.map +1 -0
  23. package/lib/{changeTracker.js → utils/updateMap.js} +23 -26
  24. package/lib/utils/updateMap.js.map +1 -0
  25. package/package.json +11 -10
  26. package/src/store.ts +215 -120
  27. package/src/{cacheMap.ts → utils/cacheMap.ts} +13 -29
  28. package/src/utils/deferList.ts +40 -0
  29. package/src/{utils.ts → utils/misc.ts} +2 -3
  30. package/src/utils/updateMap.ts +78 -0
  31. package/lib/cacheMap.d.ts +0 -26
  32. package/lib/cacheMap.d.ts.map +0 -1
  33. package/lib/cacheMap.js.map +0 -1
  34. package/lib/changeTracker.d.ts +0 -24
  35. package/lib/changeTracker.d.ts.map +0 -1
  36. package/lib/changeTracker.js.map +0 -1
  37. package/lib/deferQueue.d.ts +0 -19
  38. package/lib/deferQueue.d.ts.map +0 -1
  39. package/lib/deferQueue.js +0 -35
  40. package/lib/deferQueue.js.map +0 -1
  41. package/lib/relationGraph.d.ts.map +0 -1
  42. package/lib/relationGraph.js.map +0 -1
  43. package/lib/utils.d.ts +0 -6
  44. package/lib/utils.d.ts.map +0 -1
  45. package/lib/utils.js.map +0 -1
  46. package/src/changeTracker.ts +0 -82
  47. package/src/deferQueue.ts +0 -44
  48. /package/lib/{relationGraph.d.ts → utils/relationGraph.d.ts} +0 -0
  49. /package/lib/{relationGraph.js → utils/relationGraph.js} +0 -0
  50. /package/src/{relationGraph.ts → utils/relationGraph.ts} +0 -0
package/lib/index.js CHANGED
@@ -14,8 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.StoreWithCache = void 0;
17
+ exports.StoreWithCache = exports.Entity = void 0;
18
18
  __exportStar(require("./database"), exports);
19
19
  var store_1 = require("./store");
20
+ Object.defineProperty(exports, "Entity", { enumerable: true, get: function () { return store_1.Entity; } });
20
21
  Object.defineProperty(exports, "StoreWithCache", { enumerable: true, get: function () { return store_1.StoreWithCache; } });
21
22
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,iCAA4F;AAA9B,uGAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,iCAA4F;AAAvE,+FAAA,MAAM,OAAA;AAAmC,uGAAA,cAAc,OAAA"}
package/lib/store.d.ts CHANGED
@@ -1,12 +1,15 @@
1
- import { Entity as _Entity, Entity, EntityClass, FindManyOptions, FindOneOptions, Store } from '@subsquid/typeorm-store';
1
+ import { Entity, EntityClass, FindManyOptions, FindOneOptions, Store } from '@subsquid/typeorm-store';
2
2
  import { ChangeTracker } from '@subsquid/typeorm-store/lib/hot';
3
3
  import { EntityManager, EntityMetadata, EntityTarget, FindOptionsRelations, FindOptionsWhere } from 'typeorm';
4
4
  export { Entity, EntityClass, FindManyOptions, FindOneOptions };
5
- export type ChangeSet<E extends Entity> = {
5
+ export type EntityType = {
6
+ id: string;
7
+ };
8
+ export type ChangeSet<E extends EntityType> = {
6
9
  metadata: EntityMetadata;
7
10
  inserts: E[];
8
11
  upserts: E[];
9
- removes: E[];
12
+ removes: string[];
10
13
  extraUpserts: E[];
11
14
  };
12
15
  export interface GetOptions<Entity = any> {
@@ -16,42 +19,45 @@ export interface GetOptions<Entity = any> {
16
19
  export declare class StoreWithCache extends Store {
17
20
  private em;
18
21
  private updates;
19
- private queue;
22
+ private defers;
20
23
  private cache;
21
24
  private logger;
25
+ private currentCommit;
26
+ private currentLoad;
22
27
  constructor(em: () => EntityManager, changes?: ChangeTracker);
23
- insert<E extends _Entity>(entity: E): Promise<void>;
24
- insert<E extends _Entity>(entities: E[]): Promise<void>;
25
- upsert<E extends _Entity>(entity: E): Promise<void>;
26
- upsert<E extends _Entity>(entities: E[]): Promise<void>;
27
- save<E extends _Entity>(entity: E): Promise<void>;
28
- save<E extends _Entity>(entities: E[]): Promise<void>;
29
- remove<E extends Entity>(entity: E): Promise<void>;
30
- remove<E extends Entity>(entities: E[]): Promise<void>;
31
- remove<E extends Entity>(entityClass: EntityTarget<E>, id: string | string[]): Promise<void>;
32
- count<E extends Entity>(entityClass: EntityTarget<E>, options?: FindManyOptions<E>): Promise<number>;
33
- countBy<E extends Entity>(entityClass: EntityTarget<E>, where: FindOptionsWhere<E> | FindOptionsWhere<E>[]): Promise<number>;
34
- find<E extends Entity>(entityClass: EntityTarget<E>, options: FindManyOptions<E>): Promise<E[]>;
35
- findBy<E extends Entity>(entityClass: EntityTarget<E>, where: FindOptionsWhere<E> | FindOptionsWhere<E>[]): Promise<E[]>;
36
- findOne<E extends Entity>(entityClass: EntityTarget<E>, options: FindOneOptions<E>): Promise<E | undefined>;
37
- findOneOrFail<E extends Entity>(entityClass: EntityTarget<E>, options: FindOneOptions<E>): Promise<E>;
38
- findOneBy<E extends Entity>(entityClass: EntityTarget<E>, where: FindOptionsWhere<E> | FindOptionsWhere<E>[]): Promise<E | undefined>;
39
- findOneByOrFail<E extends Entity>(entityClass: EntityTarget<E>, where: FindOptionsWhere<E> | FindOptionsWhere<E>[]): Promise<E>;
40
- get<E extends Entity>(entityClass: EntityTarget<E>, id: string): Promise<E | undefined>;
41
- get<E extends Entity>(entityClass: EntityTarget<E>, options: GetOptions<E>): Promise<E | undefined>;
42
- getOrFail<E extends Entity>(entityClass: EntityTarget<E>, id: string): Promise<E>;
43
- getOrFail<E extends Entity>(entityClass: EntityTarget<E>, options: GetOptions<E>): Promise<E>;
44
- getOrInsert<E extends Entity>(entityClass: EntityTarget<E>, id: string, create: (id: string) => E | Promise<E>): Promise<E>;
45
- getOrInsert<E extends Entity>(entityClass: EntityTarget<E>, options: GetOptions<E>, create: (id: string) => E | Promise<E>): Promise<E>;
28
+ insert<E extends EntityType>(entity: E): Promise<void>;
29
+ insert<E extends EntityType>(entities: E[]): Promise<void>;
30
+ upsert<E extends EntityType>(entity: E): Promise<void>;
31
+ upsert<E extends EntityType>(entities: E[]): Promise<void>;
32
+ save<E extends EntityType>(entity: E): Promise<void>;
33
+ save<E extends EntityType>(entities: E[]): Promise<void>;
34
+ remove<E extends EntityType>(entity: E): Promise<void>;
35
+ remove<E extends EntityType>(entities: E[]): Promise<void>;
36
+ remove<E extends EntityType>(entityClass: EntityTarget<E>, id: string | string[]): Promise<void>;
37
+ count<E extends EntityType>(entityClass: EntityTarget<E>, options?: FindManyOptions<E>): Promise<number>;
38
+ countBy<E extends EntityType>(entityClass: EntityTarget<E>, where: FindOptionsWhere<E> | FindOptionsWhere<E>[]): Promise<number>;
39
+ find<E extends EntityType>(entityClass: EntityTarget<E>, options: FindManyOptions<E>): Promise<E[]>;
40
+ findBy<E extends EntityType>(entityClass: EntityTarget<E>, where: FindOptionsWhere<E> | FindOptionsWhere<E>[]): Promise<E[]>;
41
+ findOne<E extends EntityType>(entityClass: EntityTarget<E>, options: FindOneOptions<E>): Promise<E | undefined>;
42
+ findOneOrFail<E extends EntityType>(entityClass: EntityTarget<E>, options: FindOneOptions<E>): Promise<E>;
43
+ findOneBy<E extends EntityType>(entityClass: EntityTarget<E>, where: FindOptionsWhere<E> | FindOptionsWhere<E>[]): Promise<E | undefined>;
44
+ findOneByOrFail<E extends EntityType>(entityClass: EntityTarget<E>, where: FindOptionsWhere<E> | FindOptionsWhere<E>[]): Promise<E>;
45
+ get<E extends EntityType>(entityClass: EntityTarget<E>, id: string): Promise<E | undefined>;
46
+ get<E extends EntityType>(entityClass: EntityTarget<E>, options: GetOptions<E>): Promise<E | undefined>;
47
+ getOrFail<E extends EntityType>(entityClass: EntityTarget<E>, id: string): Promise<E>;
48
+ getOrFail<E extends EntityType>(entityClass: EntityTarget<E>, options: GetOptions<E>): Promise<E>;
49
+ getOrInsert<E extends EntityType>(entityClass: EntityTarget<E>, id: string, create: (id: string) => E | Promise<E>): Promise<E>;
50
+ getOrInsert<E extends EntityType>(entityClass: EntityTarget<E>, options: GetOptions<E>, create: (id: string) => E | Promise<E>): Promise<E>;
46
51
  /**
47
52
  * @deprecated use {@link getOrInsert} instead
48
53
  */
49
- getOrCreate<E extends Entity>(entityClass: EntityTarget<E>, idOrOptions: string | GetOptions<E>, create: (id: string) => E | Promise<E>): Promise<E>;
50
- defer<E extends Entity>(entityClass: EntityTarget<E>, id: string): DeferredEntity<E>;
51
- defer<E extends Entity>(entityClass: EntityTarget<E>, options: GetOptions<E>): DeferredEntity<E>;
54
+ getOrCreate<E extends EntityType>(entityClass: EntityTarget<E>, idOrOptions: string | GetOptions<E>, create: (id: string) => E | Promise<E>): Promise<E>;
55
+ defer<E extends EntityType>(entityClass: EntityTarget<E>, id: string): DeferredEntity<E>;
56
+ defer<E extends EntityType>(entityClass: EntityTarget<E>, options: GetOptions<E>): DeferredEntity<E>;
52
57
  commit(): Promise<void>;
53
58
  clear(): void;
54
59
  flush(): Promise<void>;
60
+ private computeChangeSets;
55
61
  private getChangeSet;
56
62
  private load;
57
63
  private getCached;
@@ -62,11 +68,12 @@ export declare class StoreWithCache extends Store {
62
68
  private cloneEntity;
63
69
  private traverseEntity;
64
70
  private getEntityMetadata;
71
+ private getEntityPkHash;
65
72
  private saveMany;
66
73
  private getFkSignature;
67
74
  private upsertMany;
68
75
  }
69
- export declare class DeferredEntity<E extends Entity> {
76
+ export declare class DeferredEntity<E extends EntityType> {
70
77
  private opts;
71
78
  constructor(opts: {
72
79
  get: () => Promise<E | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
package/lib/store.js CHANGED
@@ -12,67 +12,77 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.DeferredEntity = exports.StoreWithCache = void 0;
15
+ exports.DeferredEntity = exports.StoreWithCache = exports.Entity = void 0;
16
16
  const logger_1 = require("@subsquid/logger");
17
17
  const typeorm_store_1 = require("@subsquid/typeorm-store");
18
+ Object.defineProperty(exports, "Entity", { enumerable: true, get: function () { return typeorm_store_1.Entity; } });
18
19
  const util_internal_1 = require("@subsquid/util-internal");
19
20
  const assert_1 = __importDefault(require("assert"));
21
+ const async_mutex_1 = require("async-mutex");
20
22
  const typeorm_1 = require("typeorm");
21
- const cacheMap_1 = require("./cacheMap");
22
- const changeTracker_1 = require("./changeTracker");
23
- const deferQueue_1 = require("./deferQueue");
24
- const relationGraph_1 = require("./relationGraph");
25
- const utils_1 = require("./utils");
23
+ const cacheMap_1 = require("./utils/cacheMap");
24
+ const deferList_1 = require("./utils/deferList");
25
+ const relationGraph_1 = require("./utils/relationGraph");
26
+ const updateMap_1 = require("./utils/updateMap");
27
+ const misc_1 = require("./utils/misc");
26
28
  // @ts-ignore
27
29
  class StoreWithCache extends typeorm_store_1.Store {
28
30
  constructor(em, changes) {
29
31
  super(em, changes);
30
32
  this.em = em;
33
+ this.currentCommit = new async_mutex_1.Mutex();
34
+ this.currentLoad = new async_mutex_1.Mutex();
31
35
  this.logger = (0, logger_1.createLogger)('sqd:store');
32
- this.cache = new cacheMap_1.CacheMap(em, { logger: this.logger });
33
- this.updates = new changeTracker_1.UpdatesTracker(em);
34
- this.queue = new deferQueue_1.DeferQueue(em);
36
+ this.cache = new cacheMap_1.CacheMap({ logger: this.logger });
37
+ this.updates = new updateMap_1.UpdateMap();
38
+ this.defers = new deferList_1.DeferList();
35
39
  }
36
40
  async insert(e) {
41
+ await this.currentCommit.waitForUnlock();
37
42
  const entities = Array.isArray(e) ? e : [e];
38
43
  if (entities.length == 0)
39
44
  return;
40
45
  for (const entity of entities) {
41
- this.updates.insert(entity.constructor, entity.id);
42
- this.cache.add(entity, true);
46
+ const md = this.getEntityMetadata(entity.constructor);
47
+ this.updates.insert(md, entity.id);
48
+ this.cache.add(md, entity, true);
43
49
  }
44
50
  }
45
51
  async upsert(e) {
52
+ await this.currentCommit.waitForUnlock();
46
53
  let entities = Array.isArray(e) ? e : [e];
47
54
  if (entities.length == 0)
48
55
  return;
49
56
  for (const entity of entities) {
50
- this.updates.upsert(entity.constructor, entity.id);
51
- this.cache.add(entity);
57
+ const md = this.getEntityMetadata(entity.constructor);
58
+ const isNew = this.updates.get(md, entity.id) === updateMap_1.UpdateType.Remove;
59
+ this.updates.upsert(md, entity.id);
60
+ this.cache.add(md, entity, isNew);
52
61
  }
53
62
  }
54
63
  async save(e) {
55
64
  return await this.upsert(e);
56
65
  }
57
66
  async remove(e, id) {
67
+ await this.currentCommit.waitForUnlock();
58
68
  if (id == null) {
59
69
  const entities = Array.isArray(e) ? e : [e];
60
70
  if (entities.length == 0)
61
71
  return;
62
72
  for (const entity of entities) {
63
- const entityClass = entity.constructor;
64
- this.updates.remove(entityClass, entity.id);
65
- this.cache.delete(entityClass, entity.id);
73
+ const md = this.getEntityMetadata(entity.constructor);
74
+ this.updates.remove(md, entity.id);
75
+ this.cache.delete(md, entity.id);
66
76
  }
67
77
  }
68
78
  else {
69
79
  const ids = Array.isArray(id) ? id : [id];
70
80
  if (ids.length == 0)
71
81
  return;
72
- const entityClass = e;
82
+ const md = this.getEntityMetadata(e);
73
83
  for (const id of ids) {
74
- this.updates.remove(entityClass, id);
75
- this.cache.delete(entityClass, id);
84
+ this.updates.remove(md, id);
85
+ this.cache.delete(md, id);
76
86
  }
77
87
  }
78
88
  }
@@ -88,7 +98,10 @@ class StoreWithCache extends typeorm_store_1.Store {
88
98
  await this.commit();
89
99
  const res = await super.find(entityClass, options);
90
100
  for (const entity of res) {
91
- this.traverseEntity(entity, options.relations || null, (e) => this.cache.add(e));
101
+ this.traverseEntity(entity, options.relations || null, (e) => {
102
+ const md = this.getEntityMetadata(e.constructor);
103
+ this.cache.add(md, e);
104
+ });
92
105
  }
93
106
  return res;
94
107
  }
@@ -96,7 +109,10 @@ class StoreWithCache extends typeorm_store_1.Store {
96
109
  await this.commit();
97
110
  const res = await super.findBy(entityClass, where);
98
111
  for (const entity of res) {
99
- this.traverseEntity(entity, null, (e) => this.cache.add(e));
112
+ this.traverseEntity(entity, null, (e) => {
113
+ const md = this.getEntityMetadata(entityClass);
114
+ this.cache.add(md, e);
115
+ });
100
116
  }
101
117
  return res;
102
118
  }
@@ -104,28 +120,40 @@ class StoreWithCache extends typeorm_store_1.Store {
104
120
  await this.commit();
105
121
  const res = await super.findOne(entityClass, options);
106
122
  if (res != null) {
107
- this.traverseEntity(res, options.relations || null, (e) => this.cache.add(e));
123
+ this.traverseEntity(res, options.relations || null, (e) => {
124
+ const md = this.getEntityMetadata(e.constructor);
125
+ this.cache.add(md, e);
126
+ });
108
127
  }
109
128
  return res;
110
129
  }
111
130
  async findOneOrFail(entityClass, options) {
112
131
  await this.commit();
113
132
  const res = await super.findOneOrFail(entityClass, options);
114
- this.traverseEntity(res, options.relations || null, (e) => this.cache.add(e));
133
+ this.traverseEntity(res, options.relations || null, (e) => {
134
+ const md = this.getEntityMetadata(e.constructor);
135
+ this.cache.add(md, e);
136
+ });
115
137
  return res;
116
138
  }
117
139
  async findOneBy(entityClass, where) {
118
140
  await this.commit();
119
141
  const res = await super.findOneBy(entityClass, where);
120
142
  if (res != null) {
121
- this.traverseEntity(res, null, (e) => this.cache.add(e));
143
+ this.traverseEntity(res, null, (e) => {
144
+ const md = this.getEntityMetadata(e.constructor);
145
+ this.cache.add(md, e);
146
+ });
122
147
  }
123
148
  return res;
124
149
  }
125
150
  async findOneByOrFail(entityClass, where) {
126
151
  await this.commit();
127
152
  const res = await super.findOneByOrFail(entityClass, where);
128
- this.traverseEntity(res, null, (e) => this.cache.add(e));
153
+ this.traverseEntity(res, null, (e) => {
154
+ const md = this.getEntityMetadata(e.constructor);
155
+ this.cache.add(md, e);
156
+ });
129
157
  return res;
130
158
  }
131
159
  async get(entityClass, idOrOptions) {
@@ -164,8 +192,9 @@ class StoreWithCache extends typeorm_store_1.Store {
164
192
  return this.getOrInsert(entityClass, idOrOptions, create);
165
193
  }
166
194
  defer(entityClass, idOrOptions) {
195
+ const md = this.getEntityMetadata(entityClass);
167
196
  const options = parseGetOptions(idOrOptions);
168
- this.queue.add(entityClass, options.id, options.relations);
197
+ this.defers.add(md, options.id, options.relations);
169
198
  return new DeferredEntity({
170
199
  get: async () => this.get(entityClass, options),
171
200
  getOrFail: async () => this.getOrFail(entityClass, options),
@@ -173,57 +202,64 @@ class StoreWithCache extends typeorm_store_1.Store {
173
202
  });
174
203
  }
175
204
  async commit() {
176
- const log = this.logger.child('commit');
177
- const entityOrder = this.getCommitOrder();
178
- const changeSets = [];
179
- for (const metadata of entityOrder) {
180
- const changeSet = this.getChangeSet(metadata.target);
181
- changeSets.push(changeSet);
182
- }
183
- for (const { metadata, inserts, upserts } of changeSets) {
184
- if (upserts.length > 0) {
185
- log.debug(`commit upserts for ${metadata.name} (${upserts.length})`);
186
- await super.upsert(upserts);
187
- }
188
- if (inserts.length) {
189
- log.debug(`commit inserts for ${metadata.name} (${inserts.length})`);
190
- await super.insert(inserts);
205
+ await this.currentCommit.runExclusive(async () => {
206
+ const log = this.logger.child('commit');
207
+ const changeSets = this.computeChangeSets();
208
+ for (const { metadata, inserts, upserts } of changeSets) {
209
+ if (upserts.length > 0) {
210
+ log.debug(`commit upserts for ${metadata.name} (${upserts.length})`);
211
+ await super.upsert(upserts);
212
+ }
213
+ if (inserts.length > 0) {
214
+ log.debug(`commit inserts for ${metadata.name} (${inserts.length})`);
215
+ await super.insert(inserts);
216
+ }
191
217
  }
192
- }
193
- const changeSetsReversed = [...changeSets].reverse();
194
- for (const { metadata, removes } of changeSetsReversed) {
195
- if (removes.length > 0) {
196
- log.debug(`commit removes for ${metadata.name} (${removes.length})`);
197
- await super.remove(removes);
218
+ const changeSetsReversed = [...changeSets].reverse();
219
+ for (const { metadata, removes } of changeSetsReversed) {
220
+ if (removes.length > 0) {
221
+ log.debug(`commit removes for ${metadata.name} (${removes.length})`);
222
+ await super.remove(metadata.target, removes);
223
+ }
198
224
  }
199
- }
200
- for (const { metadata, extraUpserts } of changeSets) {
201
- if (extraUpserts.length) {
202
- log.debug(`commit extra upserts for ${metadata.name} (${extraUpserts.length})`);
203
- await super.upsert(extraUpserts);
225
+ for (const { metadata, extraUpserts } of changeSets) {
226
+ if (extraUpserts.length > 0) {
227
+ log.debug(`commit extra upserts for ${metadata.name} (${extraUpserts.length})`);
228
+ await super.upsert(extraUpserts);
229
+ }
204
230
  }
205
- }
206
- this.updates.clear();
231
+ });
207
232
  }
208
233
  clear() {
209
234
  this.cache.clear();
235
+ this.updates.clear();
210
236
  }
211
237
  async flush() {
212
238
  await this.commit();
213
239
  this.clear();
214
240
  }
241
+ computeChangeSets() {
242
+ const entityOrder = this.getCommitOrder();
243
+ const changeSets = [];
244
+ for (const metadata of entityOrder) {
245
+ const changeSet = this.getChangeSet(metadata.target);
246
+ changeSets.push(changeSet);
247
+ }
248
+ this.updates.clear();
249
+ return changeSets;
250
+ }
215
251
  getChangeSet(target) {
216
252
  const metadata = this.getEntityMetadata(target);
217
253
  const inserts = [];
218
254
  const upserts = [];
219
255
  const removes = [];
220
256
  const extraUpserts = [];
221
- const updates = this.updates.getUpdates(metadata.target);
257
+ const updates = this.updates.getUpdates(metadata);
222
258
  for (const [id, type] of updates) {
223
- const cached = this.cache.get(metadata.target, id);
259
+ const cached = this.cache.get(metadata, id);
224
260
  switch (type) {
225
- case changeTracker_1.UpdateType.Insert: {
226
- (0, assert_1.default)(cached?.value != null);
261
+ case updateMap_1.UpdateType.Insert: {
262
+ (0, assert_1.default)(cached?.value != null, `unable to insert entity ${metadata.name} ${id}`);
227
263
  inserts.push(cached.value);
228
264
  const extraUpsert = this.extractExtraUpsert(cached.value);
229
265
  if (extraUpsert != null) {
@@ -231,8 +267,8 @@ class StoreWithCache extends typeorm_store_1.Store {
231
267
  }
232
268
  break;
233
269
  }
234
- case changeTracker_1.UpdateType.Upsert: {
235
- (0, assert_1.default)(cached?.value != null);
270
+ case updateMap_1.UpdateType.Upsert: {
271
+ (0, assert_1.default)(cached?.value != null, `unable to upsert entity ${metadata.name} ${id}`);
236
272
  upserts.push(cached.value);
237
273
  const extraUpsert = this.extractExtraUpsert(cached.value);
238
274
  if (extraUpsert != null) {
@@ -240,10 +276,8 @@ class StoreWithCache extends typeorm_store_1.Store {
240
276
  }
241
277
  break;
242
278
  }
243
- case changeTracker_1.UpdateType.Remove: {
244
- const e = metadata.create();
245
- e.id = id;
246
- removes.push(e);
279
+ case updateMap_1.UpdateType.Remove: {
280
+ removes.push(id);
247
281
  break;
248
282
  }
249
283
  }
@@ -251,21 +285,24 @@ class StoreWithCache extends typeorm_store_1.Store {
251
285
  return { metadata, inserts, upserts, extraUpserts, removes };
252
286
  }
253
287
  async load() {
254
- for (const { target, data } of this.queue.values()) {
255
- const metadata = this.getEntityMetadata(target);
256
- for (const id of data.ids) {
257
- this.cache.ensure(metadata.target, id);
258
- }
259
- for (let batch of (0, utils_1.splitIntoBatches)([...data.ids], 30000)) {
260
- if (batch.length == 0)
261
- continue;
262
- await this.find(metadata.target, { where: { id: (0, typeorm_1.In)(batch) }, relations: data.relations });
288
+ await this.currentLoad.runExclusive(async () => {
289
+ for (const [metadata, data] of this.defers.values()) {
290
+ const ids = Array.from(data.ids);
291
+ for (let batch of (0, misc_1.splitIntoBatches)(ids, 30000)) {
292
+ if (batch.length == 0)
293
+ continue;
294
+ await this.find(metadata.target, { where: { id: (0, typeorm_1.In)(batch) }, relations: data.relations });
295
+ }
296
+ for (const id of ids) {
297
+ this.cache.ensure(metadata, id);
298
+ }
263
299
  }
264
- }
265
- this.queue.clear();
300
+ this.defers.clear();
301
+ });
266
302
  }
267
303
  getCached(entityClass, id, mask) {
268
- const cached = this.cache.get(entityClass, id);
304
+ const md = this.getEntityMetadata(entityClass);
305
+ const cached = this.cache.get(md, id);
269
306
  if (cached == null) {
270
307
  return undefined;
271
308
  }
@@ -293,8 +330,8 @@ class StoreWithCache extends typeorm_store_1.Store {
293
330
  if (invCommitOrderIndex < commitOrderIndex)
294
331
  continue;
295
332
  (0, assert_1.default)(relation.isNullable);
296
- const invUpdateType = this.updates.get(inverseMetadata.target, inverseEntity.id);
297
- if (invUpdateType === changeTracker_1.UpdateType.Insert) {
333
+ const invUpdateType = this.updates.get(inverseMetadata, inverseEntity.id);
334
+ if (invUpdateType === updateMap_1.UpdateType.Insert) {
298
335
  if (extraUpsert == null) {
299
336
  extraUpsert = metadata.create();
300
337
  extraUpsert.id = entity.id;
@@ -324,7 +361,7 @@ class StoreWithCache extends typeorm_store_1.Store {
324
361
  for (const column of metadata.nonVirtualColumns) {
325
362
  const objectColumnValue = column.getEntityValue(entity);
326
363
  if (objectColumnValue !== undefined) {
327
- column.setEntityValue(clonedEntity, (0, utils_1.copy)(objectColumnValue));
364
+ column.setEntityValue(clonedEntity, (0, misc_1.copy)(objectColumnValue));
328
365
  }
329
366
  }
330
367
  if (mask != null) {
@@ -378,6 +415,23 @@ class StoreWithCache extends typeorm_store_1.Store {
378
415
  const em = this.em();
379
416
  return em.connection.getMetadata(entityClass);
380
417
  }
418
+ getEntityPkHash(metadata, entity) {
419
+ const columns = metadata.primaryColumns;
420
+ if (columns.length === 1) {
421
+ const pk = columns[0].getEntityValue(entity);
422
+ (0, assert_1.default)(pk != null);
423
+ return String(pk);
424
+ }
425
+ else {
426
+ return columns
427
+ .map((c) => {
428
+ const pk = c.getEntityValue(entity);
429
+ (0, assert_1.default)(pk != null);
430
+ return String(pk);
431
+ })
432
+ .join(':');
433
+ }
434
+ }
381
435
  // @ts-ignore
382
436
  async saveMany(entityClass, entities) {
383
437
  (0, assert_1.default)(entities.length > 0);
package/lib/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAAqD;AACrD,2DAAsH;AAEtH,2DAA2C;AAC3C,oDAA2B;AAC3B,qCAA+G;AAE/G,yCAAiD;AACjD,mDAA0D;AAC1D,6CAAuC;AACvC,mDAA8C;AAC9C,mCAA8C;AAiB9C,aAAa;AACb,MAAa,cAAe,SAAQ,qBAAK;IAMrC,YAAoB,EAAuB,EAAE,OAAuB;QAChE,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QADF,OAAE,GAAF,EAAE,CAAqB;QAEvC,IAAI,CAAC,MAAM,GAAG,IAAA,qBAAY,EAAC,WAAW,CAAC,CAAA;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,mBAAQ,CAAC,EAAE,EAAE,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,CAAA;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,8BAAc,CAAC,EAAE,CAAC,CAAA;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,uBAAU,CAAC,EAAE,CAAC,CAAA;IACnC,CAAC;IAID,KAAK,CAAC,MAAM,CAAoB,CAAU;QACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3C,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;YAAE,OAAM;QAEhC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;YAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAChC,CAAC;IACL,CAAC;IAID,KAAK,CAAC,MAAM,CAAoB,CAAU;QACtC,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACzC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;YAAE,OAAM;QAEhC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;YAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC1B,CAAC;IACL,CAAC;IAID,KAAK,CAAC,IAAI,CAAoB,CAAU;QACpC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,CAAQ,CAAC,CAAA;IACtC,CAAC;IAKD,KAAK,CAAC,MAAM,CAAmB,CAA4B,EAAE,EAAsB;QAC/E,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAM,CAAC,CAAA;YAChD,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;gBAAE,OAAM;YAEhC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAC5B,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;gBACtC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;gBAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;YAC7C,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YACzC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;gBAAE,OAAM;YAE3B,MAAM,WAAW,GAAG,CAAoB,CAAA;YACxC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACnB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;gBACpC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;YACtC,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK,CAAmB,WAA4B,EAAE,OAA4B;QACpF,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;QACnB,OAAO,MAAM,KAAK,CAAC,KAAK,CAAC,WAA6B,EAAE,OAAO,CAAC,CAAA;IACpE,CAAC;IAED,KAAK,CAAC,OAAO,CACT,WAA4B,EAC5B,KAAkD;QAElD,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;QACnB,OAAO,MAAM,KAAK,CAAC,OAAO,CAAC,WAA6B,EAAE,KAAK,CAAC,CAAA;IACpE,CAAC;IAED,KAAK,CAAC,IAAI,CAAmB,WAA4B,EAAE,OAA2B;QAClF,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;QACnB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,WAA6B,EAAE,OAAO,CAAC,CAAA;QACpE,KAAK,MAAM,MAAM,IAAI,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACpF,CAAC;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CACR,WAA4B,EAC5B,KAAkD;QAElD,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;QACnB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,WAA6B,EAAE,KAAK,CAAC,CAAA;QACpE,KAAK,MAAM,MAAM,IAAI,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/D,CAAC;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IAED,KAAK,CAAC,OAAO,CAAmB,WAA4B,EAAE,OAA0B;QACpF,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;QACnB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,WAA6B,EAAE,OAAO,CAAC,CAAA;QACvE,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACjF,CAAC;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IAED,KAAK,CAAC,aAAa,CAAmB,WAA4B,EAAE,OAA0B;QAC1F,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;QACnB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,WAA6B,EAAE,OAAO,CAAC,CAAA;QAC7E,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7E,OAAO,GAAG,CAAA;IACd,CAAC;IAED,KAAK,CAAC,SAAS,CACX,WAA4B,EAC5B,KAAkD;QAElD,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;QACnB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,WAA6B,EAAE,KAAK,CAAC,CAAA;QACvE,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5D,CAAC;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IAED,KAAK,CAAC,eAAe,CACjB,WAA4B,EAC5B,KAAkD;QAElD,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;QACnB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,WAA6B,EAAE,KAAK,CAAC,CAAA;QAC7E,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACxD,OAAO,GAAG,CAAA;IACd,CAAC;IAID,KAAK,CAAC,GAAG,CACL,WAA4B,EAC5B,WAAmC;QAEnC,MAAM,EAAC,EAAE,EAAE,GAAG,OAAO,EAAC,GAAG,eAAe,CAAC,WAAW,CAAC,CAAA;QAErD,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QAC/D,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,IAAI,SAAS,CAAA;QAEpD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAEjB,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QAC3D,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,IAAI,SAAS,CAAA;QAEpD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAC,KAAK,EAAE,EAAC,EAAE,EAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAC,CAAC,CAAA;IAC9F,CAAC;IAID,KAAK,CAAC,SAAS,CAAmB,WAA4B,EAAE,WAAmC;QAC/F,MAAM,OAAO,GAAG,eAAe,CAAC,WAAW,CAAC,CAAA;QAC5C,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QAE5C,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAA;YACpD,MAAM,IAAI,KAAK,CAAC,kBAAkB,QAAQ,CAAC,IAAI,aAAa,OAAO,CAAC,EAAE,GAAG,CAAC,CAAA;QAC9E,CAAC;QAED,OAAO,CAAC,CAAA;IACZ,CAAC;IAYD,KAAK,CAAC,WAAW,CACb,WAA4B,EAC5B,WAAmC,EACnC,MAAsC;QAEtC,MAAM,OAAO,GAAG,eAAe,CAAC,WAAW,CAAC,CAAA;QAC5C,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QAE5C,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACZ,CAAC,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YAC5B,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;QAED,OAAO,CAAC,CAAA;IACZ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACb,WAA4B,EAC5B,WAAmC,EACnC,MAAsC;QAEtC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,WAAkB,EAAE,MAAM,CAAC,CAAA;IACpE,CAAC;IAID,KAAK,CAAmB,WAA4B,EAAE,WAAmC;QACrF,MAAM,OAAO,GAAG,eAAe,CAAC,WAAW,CAAC,CAAA;QAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QAE1D,OAAO,IAAI,cAAc,CAAC;YACtB,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;YAC/C,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC;YAC3D,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC;SAChF,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,MAAM;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAEvC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QAEzC,MAAM,UAAU,GAAqB,EAAE,CAAA;QACvC,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YACpD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC9B,CAAC;QAED,KAAK,MAAM,EAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAC,IAAI,UAAU,EAAE,CAAC;YACpD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,GAAG,CAAC,KAAK,CAAC,sBAAsB,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;gBACpE,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAC/B,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,GAAG,CAAC,KAAK,CAAC,sBAAsB,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;gBACpE,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAC/B,CAAC;QACL,CAAC;QAED,MAAM,kBAAkB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,OAAO,EAAE,CAAA;QACpD,KAAK,MAAM,EAAC,QAAQ,EAAE,OAAO,EAAC,IAAI,kBAAkB,EAAE,CAAC;YACnD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,GAAG,CAAC,KAAK,CAAC,sBAAsB,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;gBACpE,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAC/B,CAAC;QACL,CAAC;QAED,KAAK,MAAM,EAAC,QAAQ,EAAE,YAAY,EAAC,IAAI,UAAU,EAAE,CAAC;YAChD,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;gBACtB,GAAG,CAAC,KAAK,CAAC,4BAA4B,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;gBAC/E,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;YACpC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IACxB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;QACnB,IAAI,CAAC,KAAK,EAAE,CAAA;IAChB,CAAC;IAEO,YAAY,CAAmB,MAAuB;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAE/C,MAAM,OAAO,GAAQ,EAAE,CAAA;QACvB,MAAM,OAAO,GAAQ,EAAE,CAAA;QACvB,MAAM,OAAO,GAAQ,EAAE,CAAA;QACvB,MAAM,YAAY,GAAQ,EAAE,CAAA;QAE5B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACxD,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAoB,CAAA;YAErE,QAAQ,IAAI,EAAE,CAAC;gBACX,KAAK,0BAAU,CAAC,MAAM,CAAC,CAAC,CAAC;oBACrB,IAAA,gBAAM,EAAC,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC,CAAA;oBAE7B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBAE1B,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBACzD,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;wBACtB,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;oBAClC,CAAC;oBAED,MAAK;gBACT,CAAC;gBACD,KAAK,0BAAU,CAAC,MAAM,CAAC,CAAC,CAAC;oBACrB,IAAA,gBAAM,EAAC,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC,CAAA;oBAE7B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBAE1B,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBACzD,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;wBACtB,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;oBAClC,CAAC;oBAED,MAAK;gBACT,CAAC;gBACD,KAAK,0BAAU,CAAC,MAAM,CAAC,CAAC,CAAC;oBACrB,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAO,CAAA;oBAChC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAA;oBACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBACf,MAAK;gBACT,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAC,CAAA;IAC9D,CAAC;IAEO,KAAK,CAAC,IAAI;QACd,KAAK,MAAM,EAAC,MAAM,EAAE,IAAI,EAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;YAE/C,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;YAC1C,CAAC;YAED,KAAK,IAAI,KAAK,IAAI,IAAA,wBAAgB,EAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;gBACvD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;oBAAE,SAAQ;gBAC/B,MAAM,IAAI,CAAC,IAAI,CAAM,QAAQ,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,EAAC,EAAE,EAAE,IAAA,YAAE,EAAC,KAAK,CAAC,EAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAC,CAAC,CAAA;YAC9F,CAAC;QACL,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;IAEO,SAAS,CAAmB,WAA4B,EAAE,EAAU,EAAE,IAAgC;QAC1G,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QAE9C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACjB,OAAO,SAAS,CAAA;QACpB,CAAC;aAAM,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAA;QACf,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC,CAAA;QACvD,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAmB,MAAS;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAE3D,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAA;QAE3D,IAAI,WAA0B,CAAA;QAC9B,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC;gBAAE,SAAQ;YAE9C,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YACrD,IAAI,aAAa,IAAI,IAAI;gBAAE,SAAQ;YAEnC,MAAM,eAAe,GAAG,QAAQ,CAAC,qBAAqB,CAAA;YACtD,IAAI,QAAQ,KAAK,eAAe,IAAI,aAAa,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE;gBAAE,SAAQ;YAE5E,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAA;YACrE,IAAI,mBAAmB,GAAG,gBAAgB;gBAAE,SAAQ;YAEpD,IAAA,gBAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;YAE3B,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC,CAAA;YAChF,IAAI,aAAa,KAAK,0BAAU,CAAC,MAAM,EAAE,CAAC;gBACtC,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;oBACtB,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAO,CAAA;oBACpC,WAAW,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAA;oBAC1B,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;gBACtC,CAAC;gBAED,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;YAC9C,CAAC;QACL,CAAC;QAED,OAAO,WAAW,CAAA;IACtB,CAAC;IAGO,cAAc;QAClB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;QACpB,OAAO,IAAA,8BAAc,EAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;IACxD,CAAC;IAGO,mBAAmB,CAAC,QAAwB;QAChD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;YACnC,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAClE,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACnD,IAAA,gBAAM,EAAC,KAAK,IAAI,IAAI,CAAC,CAAA;QAErB,OAAO,KAAK,CAAA;IAChB,CAAC;IAEO,WAAW,CAAmB,MAAS,EAAE,IAAsC;QACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAE3D,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAA;QAEtC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YAC9C,MAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YACvD,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,IAAA,YAAI,EAAC,iBAAiB,CAAC,CAAC,CAAA;YAChE,CAAC;QACL,CAAC;QAED,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACf,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACxC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;gBAC/C,IAAI,CAAC,WAAW;oBAAE,SAAQ;gBAE1B,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;gBACrD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;oBAC9B,OAAO,SAAS,CAAA,CAAC,oCAAoC;gBACzD,CAAC;qBAAM,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;oBAChC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;gBAC/C,CAAC;qBAAM,CAAC;oBACJ,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,CACxC,aAAa,EACb,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CACxD,CAAA;oBACD,IAAI,mBAAmB,IAAI,IAAI,EAAE,CAAC;wBAC9B,OAAO,SAAS,CAAA;oBACpB,CAAC;yBAAM,CAAC;wBACJ,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAA;oBAC9D,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,YAAY,CAAA;IACvB,CAAC;IAEO,cAAc,CAAC,MAAc,EAAE,IAAsC,EAAE,EAAuB;QAClG,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAE3D,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACf,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACxC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;gBAC/C,IAAI,CAAC,WAAW;oBAAE,SAAQ;gBAE1B,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;gBACrD,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;oBAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;wBAAE,SAAQ;oBAC3C,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;wBACjC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;oBAC9E,CAAC;gBACL,CAAC;qBAAM,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;oBAC/B,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;gBACrF,CAAC;YACL,CAAC;QACL,CAAC;QAED,EAAE,CAAC,MAAM,CAAC,CAAA;IACd,CAAC;IAEO,iBAAiB,CAAC,WAA8B;QACpD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;QACpB,OAAO,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;IACjD,CAAC;IAED,aAAa;IACL,KAAK,CAAC,QAAQ,CAAC,WAA6B,EAAE,QAAe;QACjE,IAAA,gBAAM,EAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAC3B,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;QAClB,IAAI,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;QACrD,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAA;QAC3D,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;QACrD,CAAC;QACD,IAAI,UAAU,GAAG,QAAQ;aACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC;aAC5D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACzE,IAAI,gBAAgB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QAC1C,IAAI,KAAK,GAAG,EAAE,CAAA;QACd,KAAK,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC;YACvB,IAAI,CAAC,CAAC,KAAK,KAAK,gBAAgB,EAAE,CAAC;gBAC/B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;YACxB,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,CAAA;gBAC7C,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAA;gBAC1B,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;YACtB,CAAC;QACL,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,CAAA;QACjD,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,EAAoB,EAAE,MAAW;QACpD,OAAO,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;IAC9C,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,EAAiB,EAAE,WAA6B,EAAE,QAAe;QACtF,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;IACzD,CAAC;CACJ;AA5fD,wCA4fC;AAxHW;IADP,mBAAG;;;;oDAIH;AAuHL,MAAa,cAAc;IACvB,YACY,IAIP;QAJO,SAAI,GAAJ,IAAI,CAIX;IACF,CAAC;IAEJ,KAAK,CAAC,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAsC;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IACxC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,MAAsC;QACpD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IACnC,CAAC;CACJ;AA3BD,wCA2BC;AAED,SAAS,eAAe,CAAI,WAAmC;IAC3D,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,EAAC,EAAE,EAAE,WAAW,EAAC,CAAA;IAC5B,CAAC;SAAM,CAAC;QACJ,OAAO,WAAW,CAAA;IACtB,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}