joist-core 2.2.0-next.4 → 2.2.0-next.6

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/build/BaseEntity.js +1 -1
  2. package/build/BaseEntity.js.map +1 -1
  3. package/build/EntityManager.d.ts +2 -0
  4. package/build/EntityManager.d.ts.map +1 -1
  5. package/build/EntityManager.js +138 -73
  6. package/build/EntityManager.js.map +1 -1
  7. package/build/EntityMetadata.d.ts +17 -1
  8. package/build/EntityMetadata.d.ts.map +1 -1
  9. package/build/EntityMetadata.js.map +1 -1
  10. package/build/IndexManager.d.ts +2 -2
  11. package/build/IndexManager.d.ts.map +1 -1
  12. package/build/IndexManager.js +22 -16
  13. package/build/IndexManager.js.map +1 -1
  14. package/build/InstanceData.d.ts +14 -2
  15. package/build/InstanceData.d.ts.map +1 -1
  16. package/build/InstanceData.js +34 -3
  17. package/build/InstanceData.js.map +1 -1
  18. package/build/IsLoadedCache.d.ts.map +1 -1
  19. package/build/IsLoadedCache.js +14 -17
  20. package/build/IsLoadedCache.js.map +1 -1
  21. package/build/ReactionsManager.d.ts +2 -1
  22. package/build/ReactionsManager.d.ts.map +1 -1
  23. package/build/ReactionsManager.js +53 -49
  24. package/build/ReactionsManager.js.map +1 -1
  25. package/build/configure.d.ts +3 -3
  26. package/build/configure.d.ts.map +1 -1
  27. package/build/configure.js +64 -0
  28. package/build/configure.js.map +1 -1
  29. package/build/dataloaders/fastWhereFilterHash.d.ts +15 -0
  30. package/build/dataloaders/fastWhereFilterHash.d.ts.map +1 -0
  31. package/build/dataloaders/fastWhereFilterHash.js +164 -0
  32. package/build/dataloaders/fastWhereFilterHash.js.map +1 -0
  33. package/build/dataloaders/fastWhereFilterHash.test.d.ts +2 -0
  34. package/build/dataloaders/fastWhereFilterHash.test.d.ts.map +1 -0
  35. package/build/dataloaders/fastWhereFilterHash.test.js +59 -0
  36. package/build/dataloaders/fastWhereFilterHash.test.js.map +1 -0
  37. package/build/dataloaders/findCountDataLoader.d.ts.map +1 -1
  38. package/build/dataloaders/findCountDataLoader.js +5 -3
  39. package/build/dataloaders/findCountDataLoader.js.map +1 -1
  40. package/build/dataloaders/findDataLoader.d.ts.map +1 -1
  41. package/build/dataloaders/findDataLoader.js +17 -41
  42. package/build/dataloaders/findDataLoader.js.map +1 -1
  43. package/build/dataloaders/findIdsDataLoader.d.ts.map +1 -1
  44. package/build/dataloaders/findIdsDataLoader.js +5 -3
  45. package/build/dataloaders/findIdsDataLoader.js.map +1 -1
  46. package/build/dataloaders/findOrCreateDataLoader.js +1 -1
  47. package/build/dataloaders/findOrCreateDataLoader.js.map +1 -1
  48. package/build/drivers/EntityWriter.js +13 -7
  49. package/build/drivers/EntityWriter.js.map +1 -1
  50. package/build/fields.d.ts.map +1 -1
  51. package/build/fields.js +16 -6
  52. package/build/fields.js.map +1 -1
  53. package/build/keys.d.ts.map +1 -1
  54. package/build/keys.js +8 -6
  55. package/build/keys.js.map +1 -1
  56. package/build/loadHints.d.ts +9 -0
  57. package/build/loadHints.d.ts.map +1 -1
  58. package/build/loadHints.js +63 -9
  59. package/build/loadHints.js.map +1 -1
  60. package/build/utils.d.ts +2 -0
  61. package/build/utils.d.ts.map +1 -1
  62. package/build/utils.js +12 -0
  63. package/build/utils.js.map +1 -1
  64. package/package.json +3 -5
  65. package/build/caches.d.ts +0 -6
  66. package/build/caches.d.ts.map +0 -1
  67. package/build/caches.js +0 -42
  68. package/build/caches.js.map +0 -1
@@ -4,6 +4,8 @@ import { EntityMetadata } from "./EntityMetadata";
4
4
  /** The `#orm` metadata field we track on each instance. */
5
5
  export declare class InstanceData {
6
6
  #private;
7
+ /** The entity this instance data belongs to. */
8
+ readonly entity: Entity;
7
9
  /** All entities must be associated to an `EntityManager` to handle lazy loading/etc. */
8
10
  readonly em: EntityManager;
9
11
  /** A pointer to our entity type's metadata. */
@@ -25,7 +27,7 @@ export declare class InstanceData {
25
27
  /** Whether our entity should flush regardless of any other changes. */
26
28
  isTouched: boolean;
27
29
  /** Creates the `#orm` field. */
28
- constructor(em: EntityManager, metadata: EntityMetadata, isNew: boolean);
30
+ constructor(em: EntityManager, entity: Entity, metadata: EntityMetadata, isNew: boolean);
29
31
  /** If `em.flush` has detected a dirty RQF, reset our internal dirty state, w/o reseting our external-dirty state. */
30
32
  resetForRqfLoop(): void;
31
33
  resetAfterFlushed(): void;
@@ -41,8 +43,18 @@ export declare class InstanceData {
41
43
  /** Called when an `em.load` tries to find the entity and it's just gone from the db. */
42
44
  markDeletedBecauseNotFound(): void;
43
45
  /** Called by `em.delete`, returns true if this is new information. */
44
- markDeleted(entity: Entity): boolean;
46
+ markDeleted(): boolean;
45
47
  fixupCreatedThenDeleted(): void;
48
+ /** Marks this entity as needing a flush even if no fields changed. */
49
+ markTouched(): void;
50
+ /** Marks a field as dirty with its pre-mutation value. */
51
+ markFieldDirty(fieldName: string, value: any): void;
52
+ /** Marks a reverted field as clean again. */
53
+ markFieldClean(fieldName: string): void;
54
+ /** Marks this entity as a possible flush candidate. */
55
+ markMaybePending(): void;
56
+ /** Removes this entity from the possible flush candidate set. */
57
+ private unmarkMaybePending;
46
58
  /** Remembers a reference value that may need to be reverse-walked later. */
47
59
  rememberReferenceValue(fieldName: string, value: any): void;
48
60
  /** Returns reference values that may need to be reverse-walked later. */
@@ -1 +1 @@
1
- {"version":3,"file":"InstanceData.d.ts","sourceRoot":"","sources":["../src/InstanceData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,aAAa,EAAoB,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,2DAA2D;AAC3D,qBAAa,YAAY;;IACvB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAC3B,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAM;IACjC,qEAAqE;IACrE,GAAG,EAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,kGAAkG;IAClG,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,iFAAiF;IACjF,YAAY,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAM;IACpC,oGAAoG;IACpG,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAM;IACtD,4FAA4F;IAC5F,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;IAW1C,qHAAqH;IACrH,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAS;IAE3B,gCAAgC;gBACpB,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO;IAevE,qHAAqH;IACrH,eAAe;IAMf,iBAAiB;IAajB,uCAAuC;IACvC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,2CAA2C;IAC3C,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,yCAAyC;IACzC,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,wFAAwF;IACxF,IAAI,gBAAgB,IAAI,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,sBAAsB,CAmBvF;IAED,IAAI,aAAa,IAAI,MAAM,EAAE,CAE5B;IAED,wFAAwF;IACxF,0BAA0B,IAAI,IAAI;IAIlC,sEAAsE;IACtE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IA0BpC,uBAAuB,IAAI,IAAI;IAK/B,4EAA4E;IAC5E,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAM3D,yEAAyE;IACzE,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,EAAE;IAItD,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED;;;;;;;;;;;OAWG;IACH,IAAI,UAAU,IAAI,OAAO,CAGxB;CACF"}
1
+ {"version":3,"file":"InstanceData.d.ts","sourceRoot":"","sources":["../src/InstanceData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,aAAa,EAAoB,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,2DAA2D;AAC3D,qBAAa,YAAY;;IACvB,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAC3B,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAM;IACjC,qEAAqE;IACrE,GAAG,EAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,kGAAkG;IAClG,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,iFAAiF;IACjF,YAAY,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAM;IACpC,oGAAoG;IACpG,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAM;IACtD,4FAA4F;IAC5F,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;IAW1C,qHAAqH;IACrH,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAS;IAE3B,gCAAgC;gBACpB,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO;IAiBvF,qHAAqH;IACrH,eAAe;IAMf,iBAAiB;IAcjB,uCAAuC;IACvC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,2CAA2C;IAC3C,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,yCAAyC;IACzC,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,wFAAwF;IACxF,IAAI,gBAAgB,IAAI,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,sBAAsB,CAmBvF;IAED,IAAI,aAAa,IAAI,MAAM,EAAE,CAE5B;IAED,wFAAwF;IACxF,0BAA0B,IAAI,IAAI;IAIlC,sEAAsE;IACtE,WAAW,IAAI,OAAO;IA2BtB,uBAAuB,IAAI,IAAI;IAM/B,sEAAsE;IACtE,WAAW,IAAI,IAAI;IAKnB,0DAA0D;IAC1D,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAKnD,6CAA6C;IAC7C,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKvC,uDAAuD;IACvD,gBAAgB,IAAI,IAAI;IAIxB,iEAAiE;IACjE,OAAO,CAAC,kBAAkB;IAI1B,4EAA4E;IAC5E,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAM3D,yEAAyE;IACzE,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,EAAE;IAItD,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED;;;;;;;;;;;OAWG;IACH,IAAI,UAAU,IAAI,OAAO,CAGxB;CACF"}
@@ -4,6 +4,8 @@ exports.InstanceData = void 0;
4
4
  const EntityManager_1 = require("./EntityManager");
5
5
  /** The `#orm` metadata field we track on each instance. */
6
6
  class InstanceData {
7
+ /** The entity this instance data belongs to. */
8
+ entity;
7
9
  /** All entities must be associated to an `EntityManager` to handle lazy loading/etc. */
8
10
  em;
9
11
  /** A pointer to our entity type's metadata. */
@@ -35,7 +37,8 @@ class InstanceData {
35
37
  /** Whether our entity should flush regardless of any other changes. */
36
38
  isTouched = false;
37
39
  /** Creates the `#orm` field. */
38
- constructor(em, metadata, isNew) {
40
+ constructor(em, entity, metadata, isNew) {
41
+ this.entity = entity;
39
42
  this.em = em;
40
43
  this.metadata = metadata;
41
44
  if (isNew) {
@@ -43,6 +46,8 @@ class InstanceData {
43
46
  this.data = {};
44
47
  this.row = {};
45
48
  this.flushedData = undefined;
49
+ if (em)
50
+ this.markMaybePending();
46
51
  }
47
52
  else {
48
53
  this.#new = undefined;
@@ -70,6 +75,7 @@ class InstanceData {
70
75
  if (this.#deleted === Operation.Pending || this.#deleted === Operation.Flushed) {
71
76
  this.#deleted = Operation.Complete;
72
77
  }
78
+ this.unmarkMaybePending();
73
79
  }
74
80
  /** Our public-facing `isNewEntity`. */
75
81
  get isNewEntity() {
@@ -115,7 +121,7 @@ class InstanceData {
115
121
  this.#deleted = Operation.Complete;
116
122
  }
117
123
  /** Called by `em.delete`, returns true if this is new information. */
118
- markDeleted(entity) {
124
+ markDeleted() {
119
125
  if (this.#deleted === undefined) {
120
126
  // Let any OneToManyCollection/ReactiveField/ReactiveReference.get caches know that they should recalc
121
127
  // (i.e. their filterDeleted logic) by asserting the `deleteBook.author` field is changing.
@@ -124,7 +130,7 @@ class InstanceData {
124
130
  // `{ books: "title" }` doesn't need `resetIsLoaded(..., "title")` b/c the same hint will also
125
131
  // be watching "did books change", and so get reset that way.
126
132
  if (field.kind === "m2o" || field.kind === "poly" || field.kind === "m2m") {
127
- (0, EntityManager_1.getEmInternalApi)(this.em).isLoadedCache.resetIsLoaded(entity, field.fieldName);
133
+ (0, EntityManager_1.getEmInternalApi)(this.em).isLoadedCache.resetIsLoaded(this.entity, field.fieldName);
128
134
  }
129
135
  else if (field.kind === "primitive" || field.kind === "enum" || field.kind === "primaryKey") {
130
136
  // Any reactable watching these fields will also be watching reference/collection
@@ -140,6 +146,7 @@ class InstanceData {
140
146
  }
141
147
  }
142
148
  this.#deleted = Operation.Pending;
149
+ this.markMaybePending();
143
150
  return true;
144
151
  }
145
152
  return false;
@@ -147,6 +154,30 @@ class InstanceData {
147
154
  fixupCreatedThenDeleted() {
148
155
  // Ideally we could do this via `resetAfterFlushed`?
149
156
  this.#deleted = Operation.Complete;
157
+ this.unmarkMaybePending();
158
+ }
159
+ /** Marks this entity as needing a flush even if no fields changed. */
160
+ markTouched() {
161
+ this.isTouched = true;
162
+ this.markMaybePending();
163
+ }
164
+ /** Marks a field as dirty with its pre-mutation value. */
165
+ markFieldDirty(fieldName, value) {
166
+ this.originalData[fieldName] = value;
167
+ this.markMaybePending();
168
+ }
169
+ /** Marks a reverted field as clean again. */
170
+ markFieldClean(fieldName) {
171
+ delete this.originalData[fieldName];
172
+ this.markMaybePending();
173
+ }
174
+ /** Marks this entity as a possible flush candidate. */
175
+ markMaybePending() {
176
+ (0, EntityManager_1.getEmInternalApi)(this.em).markMaybePending(this.entity);
177
+ }
178
+ /** Removes this entity from the possible flush candidate set. */
179
+ unmarkMaybePending() {
180
+ (0, EntityManager_1.getEmInternalApi)(this.em).unmarkMaybePending(this.entity);
150
181
  }
151
182
  /** Remembers a reference value that may need to be reverse-walked later. */
152
183
  rememberReferenceValue(fieldName, value) {
@@ -1 +1 @@
1
- {"version":3,"file":"InstanceData.js","sourceRoot":"","sources":["../src/InstanceData.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InstanceData.js","sourceRoot":"","sources":["../src/InstanceData.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"IsLoadedCache.d.ts","sourceRoot":"","sources":["../src/IsLoadedCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,IAAI,IAAI,CAAC;CACvB;AAED,qBAAa,aAAa;;IAWxB,+FAA+F;IAC/F,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAOnC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAKxC,yFAAyF;IACzF,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAoDvD"}
1
+ {"version":3,"file":"IsLoadedCache.d.ts","sourceRoot":"","sources":["../src/IsLoadedCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,IAAI,IAAI,CAAC;CACvB;AAED,qBAAa,aAAa;;IAWxB,+FAA+F;IAC/F,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAOnC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAKxC,yFAAyF;IACzF,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAkDvD"}
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IsLoadedCache = void 0;
4
4
  const EntityMetadata_1 = require("./EntityMetadata");
5
- const caches_1 = require("./caches");
6
5
  class IsLoadedCache {
7
6
  // Cache of `{ tag -> { fieldName -> Set<IsLoadedCachable> } }` to hold derived relations
8
7
  // we can selectively invalidate by walking from the mutated field to any downstream
@@ -57,26 +56,24 @@ class IsLoadedCache {
57
56
  */
58
57
  #resetDownstreamReactables(meta, fieldName) {
59
58
  // These are reactables in other entities that are watching/reacting to this entity/fieldName
60
- const reactables = (0, caches_1.getReactablesIncludingReadOnly)(meta);
59
+ const reactables = meta.reactablesIncludingReadOnlyByField.get(fieldName) ?? [];
61
60
  for (const r of reactables) {
62
61
  // I.e. we've written to Author.firstName, and this reactable in Book/otherMeta depends on it
63
- if (r.fields.includes(fieldName)) {
64
- const otherMeta = (0, EntityMetadata_1.getMetadata)(r.cstr);
65
- // Find any cache entries for this cstr + name
66
- const set = this.#smartCache[otherMeta.tagName]?.[r.name];
67
- if (set?.size > 0) {
68
- for (const target of set) {
69
- target.resetIsLoaded();
70
- // Is this target itself a RF/RR? If so, transitively reset its cache as well.
71
- const otherMeta = (0, EntityMetadata_1.getMetadata)(target.entity);
72
- const otherField = otherMeta.allFields[target.fieldName];
73
- if ("derived" in otherField && otherField.derived) {
74
- this.#resetDownstreamReactables(otherMeta, otherField.fieldName);
75
- }
62
+ const otherMeta = (0, EntityMetadata_1.getMetadata)(r.cstr);
63
+ // Find any cache entries for this cstr + name
64
+ const set = this.#smartCache[otherMeta.tagName]?.[r.name];
65
+ if (set?.size > 0) {
66
+ for (const target of set) {
67
+ target.resetIsLoaded();
68
+ // Is this target itself a RF/RR? If so, transitively reset its cache as well.
69
+ const otherMeta = (0, EntityMetadata_1.getMetadata)(target.entity);
70
+ const otherField = otherMeta.allFields[target.fieldName];
71
+ if ("derived" in otherField && otherField.derived) {
72
+ this.#resetDownstreamReactables(otherMeta, otherField.fieldName);
76
73
  }
77
- set.clear();
78
- this.#dirtySets--;
79
74
  }
75
+ set.clear();
76
+ this.#dirtySets--;
80
77
  }
81
78
  }
82
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IsLoadedCache.js","sourceRoot":"","sources":["../src/IsLoadedCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IsLoadedCache.js","sourceRoot":"","sources":["../src/IsLoadedCache.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Entity } from "./Entity";
2
- import { Reactable } from "./config";
2
+ import { type Reactable } from "./config";
3
3
  import { EntityManager } from "./index";
4
4
  import { ReactionLogger } from "./logging/ReactionLogger";
5
5
  export type ReactiveAction = {
@@ -80,5 +80,6 @@ export declare class ReactionsManager {
80
80
  private getPending;
81
81
  private getDirtyFields;
82
82
  private getReactables;
83
+ private getReactablesByField;
83
84
  }
84
85
  //# sourceMappingURL=ReactionsManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReactionsManager.d.ts","sourceRoot":"","sources":["../src/ReactionsManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAA+B,MAAM,SAAS,CAAC;AACrE,OAAO,EAAgB,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAIxE,MAAM,MAAM,cAAc,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAC3E;;;;;;GAMG;AACH,qBAAa,gBAAgB;;IAC3B,iFAAiF;IACjF,OAAO,CAAC,iBAAiB,CAAuE;IAChG,OAAO,CAAC,wBAAwB,CAA0C;IAC1E;;;;;;;;OAQG;IACH,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,gBAAgB,CAA0B;IAGlD,MAAM,EAAE,cAAc,GAAG,SAAS,CAAgB;IAClD,OAAO,CAAC,EAAE,CAAgB;IAC1B,6GAA6G;IAC7G,OAAO,CAAC,oBAAoB,CAAe;gBAE/B,EAAE,EAAE,aAAa;IAI7B;;;;;;OAMG;IACH,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAoBlE,wEAAwE;IACxE,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IA0BpE,gGAAgG;IAChG,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI;IAS7E;;;;;;;;;;;OAWG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAIhE,yBAAyB,IAAI,OAAO;IAIpC;;;;;;OAMG;IACG,uBAAuB,CAAC,IAAI,EAAE,YAAY,GAAG,iBAAiB;IA2G9D,uBAAuB;IAyB7B,IAAI,oBAAoB,IAAI,OAAO,CAElC;IAED,+EAA+E;IAC/E,KAAK,IAAI,IAAI;IAKb,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI;IAInD,yBAAyB,IAAI,IAAI;IAIjC,8BAA8B,IAAI,IAAI;IAWtC,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,iBAAiB,GAAG,OAAO;IAI5D,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,aAAa;CAOtB"}
1
+ {"version":3,"file":"ReactionsManager.d.ts","sourceRoot":"","sources":["../src/ReactionsManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,aAAa,EAA+B,MAAM,SAAS,CAAC;AACrE,OAAO,EAAgB,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAIxE,MAAM,MAAM,cAAc,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAC3E;;;;;;GAMG;AACH,qBAAa,gBAAgB;;IAC3B,iFAAiF;IACjF,OAAO,CAAC,iBAAiB,CAAuE;IAChG,OAAO,CAAC,wBAAwB,CAA0C;IAC1E;;;;;;;;OAQG;IACH,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,gBAAgB,CAA0B;IAGlD,MAAM,EAAE,cAAc,GAAG,SAAS,CAAgB;IAClD,OAAO,CAAC,EAAE,CAAgB;IAC1B,6GAA6G;IAC7G,OAAO,CAAC,oBAAoB,CAAe;gBAE/B,EAAE,EAAE,aAAa;IAI7B;;;;;;OAMG;IACH,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAkBlE,wEAAwE;IACxE,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAwBpE,gGAAgG;IAChG,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI;IAS7E;;;;;;;;;;;OAWG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAIhE,yBAAyB,IAAI,OAAO;IAIpC;;;;;;OAMG;IACG,uBAAuB,CAAC,IAAI,EAAE,YAAY,GAAG,iBAAiB;IA0G9D,uBAAuB;IAyB7B,IAAI,oBAAoB,IAAI,OAAO,CAElC;IAED,+EAA+E;IAC/E,KAAK,IAAI,IAAI;IAKb,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI;IAInD,yBAAyB,IAAI,IAAI;IAIjC,8BAA8B,IAAI,IAAI;IAWtC,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,iBAAiB,GAAG,OAAO;IAI5D,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,oBAAoB;CAO7B"}
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ReactionsManager = void 0;
4
4
  const EntityMetadata_1 = require("./EntityMetadata");
5
- const caches_1 = require("./caches");
6
5
  const index_1 = require("./index");
7
6
  const ReactionLogger_1 = require("./logging/ReactionLogger");
8
7
  const reactiveHints_1 = require("./reactiveHints");
@@ -47,47 +46,43 @@ class ReactionsManager {
47
46
  */
48
47
  queueDownstreamReactables(entity, fieldName) {
49
48
  // Use the reverse index of Reactables that configureMetadata sets up
50
- for (const r of this.getReactables(entity)) {
51
- if (r.fields.includes(fieldName)) {
52
- // We always queue the reactable/entity, even if we're mid-flush or even mid-recalc, to avoid:
53
- // - firstName is changed from a1 to a2
54
- // - this triggers firstName's reactable to `Author.initials` to be queued
55
- // - during the 1st em.flush loop, we recalc `Author.initials` and it didn't change
56
- // - during the 1st em.flush loop, a hook changes firstName from a2 to b2
57
- // - if we skip re-queuing firstName's reactables, we will miss that initials needs
58
- // its `.load()` called again so that it's `setField` marks `initials` as
59
- // dirty, otherwise it will be left out of any INSERTs/UPDATEs.
60
- this.getPending(r).todo.add(entity);
61
- this.getDirtyFields((0, EntityMetadata_1.getMetadata)(r.cstr)).add(r.name);
62
- this.#needsRecalc[r.kind] = true;
63
- this.logger?.logQueued(entity, fieldName, r);
64
- }
49
+ for (const r of this.getReactablesByField(entity, fieldName)) {
50
+ // We always queue the reactable/entity, even if we're mid-flush or even mid-recalc, to avoid:
51
+ // - firstName is changed from a1 to a2
52
+ // - this triggers firstName's reactable to `Author.initials` to be queued
53
+ // - during the 1st em.flush loop, we recalc `Author.initials` and it didn't change
54
+ // - during the 1st em.flush loop, a hook changes firstName from a2 to b2
55
+ // - if we skip re-queuing firstName's reactables, we will miss that initials needs
56
+ // its `.load()` called again so that it's `setField` marks `initials` as
57
+ // dirty, otherwise it will be left out of any INSERTs/UPDATEs.
58
+ this.getPending(r).todo.add(entity);
59
+ this.getDirtyFields((0, EntityMetadata_1.getMetadata)(r.cstr)).add(r.name);
60
+ this.#needsRecalc[r.kind] = true;
61
+ this.logger?.logQueued(entity, fieldName, r);
65
62
  }
66
63
  }
67
64
  /** Dequeues reactivity on `fieldName`, i.e. if it's no longer dirty. */
68
65
  dequeueDownstreamReactables(entity, fieldName) {
69
66
  // Use the reverse index of Reactables that configureMetadata sets up
70
- for (const r of this.getReactables(entity)) {
71
- if (r.fields.includes(fieldName)) {
72
- const pending = this.getPending(r);
73
- if (pending.done.has(entity)) {
74
- // Ironically, if we've already run this reactable, asking to dequeue probably means
75
- // we need to run it again (to recalc its value), b/c this could be a mid-flush change, i.e.:
76
- // - firstName = a1 from db
77
- // - firstName is changed to a2, triggers initials reactable
78
- // - firstName is changed back to a1, which is the original value, so setField
79
- // thinks we can dequeue the reactable
80
- // - but actually our reactable needs to be re-run with the restored value
81
- pending.todo.add(entity);
82
- this.#needsRecalc[r.kind] = true;
83
- }
84
- else if (r.fields.length === 1) {
85
- // We can only delete/dequeue a reaction if `fieldName` is the only or last field
86
- // that had triggered `r` to run. Since we don't track that currently, i.e. we'd
87
- // need to have a `Pending.dirtyFields`, for now just only dequeue if `r` only
88
- // has one field (which is us) anyway.
89
- pending.todo.delete(entity);
90
- }
67
+ for (const r of this.getReactablesByField(entity, fieldName)) {
68
+ const pending = this.getPending(r);
69
+ if (pending.done.has(entity)) {
70
+ // Ironically, if we've already run this reactable, asking to dequeue probably means
71
+ // we need to run it again (to recalc its value), b/c this could be a mid-flush change, i.e.:
72
+ // - firstName = a1 from db
73
+ // - firstName is changed to a2, triggers initials reactable
74
+ // - firstName is changed back to a1, which is the original value, so setField
75
+ // thinks we can dequeue the reactable
76
+ // - but actually our reactable needs to be re-run with the restored value
77
+ pending.todo.add(entity);
78
+ this.#needsRecalc[r.kind] = true;
79
+ }
80
+ else if (r.fields.length === 1) {
81
+ // We can only delete/dequeue a reaction if `fieldName` is the only or last field
82
+ // that had triggered `r` to run. Since we don't track that currently, i.e. we'd
83
+ // need to have a `Pending.dirtyFields`, for now just only dequeue if `r` only
84
+ // has one field (which is us) anyway.
85
+ pending.todo.delete(entity);
91
86
  }
92
87
  }
93
88
  }
@@ -156,12 +151,11 @@ class ReactionsManager {
156
151
  for (const doing of todo)
157
152
  pending.done.add(doing);
158
153
  // Walk back from the source to any downstream entities
159
- const entities = (await (0, reactiveHints_1.followReverseHint)(r.name, todo, r.path))
160
- .filter((entity) => !entity.isDeletedEntity)
161
- .filter((e) => e instanceof r.cstr);
162
- this.logger?.logWalked(todo, r, entities, "recalc");
163
- entities.forEach((entity) => {
164
- const key = `${entity.toTaggedString()}_${r.name}`;
154
+ const entities = r.path.length === 0 ? todo : await (0, reactiveHints_1.followReverseHint)(r.name, todo, r.path);
155
+ const actionableEntities = entities.filter((entity) => !entity.isDeletedEntity && entity instanceof r.cstr);
156
+ this.logger?.logWalked(todo, r, actionableEntities, "recalc");
157
+ actionableEntities.forEach((entity) => {
158
+ const key = makeActionKey(entity, r);
165
159
  // We could arrive at the same reactable from multiple paths (eg, 2 dependent fields changed), so we need to
166
160
  // dedupe based on the entity and reactable to only run each action once for any given entity per loop
167
161
  if (actionsMap.has(key))
@@ -223,9 +217,9 @@ class ReactionsManager {
223
217
  if (failures.length > 0)
224
218
  throw failures[0];
225
219
  // Record any successful actions that should only run once so we don't run them again
226
- actions.forEach(({ key, r }) => {
227
- if (r.runOnce)
228
- this.processedActions.add(key);
220
+ actions.forEach((action) => {
221
+ if (action.r.runOnce)
222
+ this.processedActions.add(action.key);
229
223
  });
230
224
  // This should generally not happen, only if two reactive fields depend on each other,
231
225
  // which in theory should probably be caught/blow up in the `configureMetadata` step,
@@ -302,10 +296,20 @@ class ReactionsManager {
302
296
  getReactables(entity) {
303
297
  // If two books are getting merged, and so a normally-immutable `BookReview.book` is being changed,
304
298
  // then even normally-immutable fields need to be recalculated.
305
- return (0, index_1.getEmInternalApi)(this.em).isMerging(entity)
306
- ? (0, caches_1.getReactablesIncludingReadOnly)((0, EntityMetadata_1.getMetadata)(entity))
307
- : (0, caches_1.getReactables)((0, EntityMetadata_1.getMetadata)(entity));
299
+ const meta = (0, EntityMetadata_1.getMetadata)(entity);
300
+ return (0, index_1.getEmInternalApi)(this.em).isMerging(entity) ? meta.reactablesIncludingReadOnly : meta.reactables;
301
+ }
302
+ getReactablesByField(entity, fieldName) {
303
+ const meta = (0, EntityMetadata_1.getMetadata)(entity);
304
+ const byField = (0, index_1.getEmInternalApi)(this.em).isMerging(entity)
305
+ ? meta.reactablesIncludingReadOnlyByField
306
+ : meta.reactablesByField;
307
+ return byField.get(fieldName) ?? [];
308
308
  }
309
309
  }
310
310
  exports.ReactionsManager = ReactionsManager;
311
+ /** Returns a stable dedupe key for retry/runOnce reaction bookkeeping. */
312
+ function makeActionKey(entity, r) {
313
+ return `${entity.toTaggedString()}_${r.name}`;
314
+ }
311
315
  //# sourceMappingURL=ReactionsManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReactionsManager.js","sourceRoot":"","sources":["../src/ReactionsManager.ts"],"names":[],"mappings":";;;AACA,qDAA+D;AAC/D,qCAAyE;AAEzE,mCAAqE;AACrE,6DAAwE;AACxE,mDAAoD;AACpD,uCAAgD;AAGhD;;;;;;GAMG;AACH,MAAa,gBAAgB;IAC3B,iFAAiF;IACzE,iBAAiB,GAA6D,IAAI,GAAG,EAAE,CAAC;IACxF,wBAAwB,GAAgC,IAAI,GAAG,EAAE,CAAC;IAC1E;;;;;;;;OAQG;IACK,WAAW,GAA6B,IAAI,GAAG,EAAE,CAAC;IAClD,gBAAgB,GAAgB,IAAI,GAAG,EAAE,CAAC;IAClD,YAAY,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClE,sDAAsD;IACtD,MAAM,GAA+B,6BAAY,CAAC;IAC1C,EAAE,CAAgB;IAC1B,6GAA6G;IACrG,oBAAoB,GAAY,EAAE,CAAC;IAE3C,YAAY,EAAiB;QAC3B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACH,yBAAyB,CAAC,MAAc,EAAE,SAAiB;QACzD,qEAAqE;QACrE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjC,8FAA8F;gBAC9F,uCAAuC;gBACvC,0EAA0E;gBAC1E,mFAAmF;gBACnF,yEAAyE;gBACzE,mFAAmF;gBACnF,2EAA2E;gBAC3E,iEAAiE;gBACjE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACpC,IAAI,CAAC,cAAc,CAAC,IAAA,4BAAW,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBACjC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,2BAA2B,CAAC,MAAc,EAAE,SAAiB;QAC3D,qEAAqE;QACrE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC7B,oFAAoF;oBACpF,6FAA6F;oBAC7F,2BAA2B;oBAC3B,4DAA4D;oBAC5D,8EAA8E;oBAC9E,wCAAwC;oBACxC,0EAA0E;oBAC1E,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACzB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBACnC,CAAC;qBAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjC,iFAAiF;oBACjF,gFAAgF;oBAChF,8EAA8E;oBAC9E,sCAAsC;oBACtC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,gGAAgG;IAChG,wBAAwB,CAAC,MAAc,EAAE,MAA6B;QACpE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,cAAc,CAAC,IAAA,4BAAW,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,oBAAoB,CAAC,MAAc,EAAE,SAAiB;QACpD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAA,4BAAW,EAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,yBAAyB;QACvB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,uBAAuB,CAAC,IAAsC;QAClE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAE1E,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,+FAA+F;YAC/F,yFAAyF;YACzF,wFAAwF;YACxF,6BAA6B;YAC7B,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC1B,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;YAClC,CAAC;YAED,MAAM,UAAU,GAAgC,IAAI,GAAG,EAAE,CAAC;YAE1D,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE;gBAC/D,yCAAyC;gBACzC,IAAI,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;oBAAE,OAAO,EAAE,CAAC;gBAC3D,IAAI,IAAI,KAAK,iBAAiB,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;oBAAE,OAAO,EAAE,CAAC;gBAC9F,4BAA4B;gBAC5B,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,EAAE,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrB,KAAK,MAAM,KAAK,IAAI,IAAI;oBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAClD,uDAAuD;gBACvD,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAA,iCAAiB,EAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;qBAC7D,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;qBAC3C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC;gBACtC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACpD,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC1B,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;oBACnD,4GAA4G;oBAC5G,sGAAsG;oBACtG,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,OAAO;oBAChC,0EAA0E;oBAC1E,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,OAAO;oBACxD,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAC/C,yFAAyF;YACzF,uDAAuD;YACvD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,MAAM,IAAA,6BAAmB,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3G,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;YAEzD,MAAM,yBAAyB,GAAgC,IAAI,GAAG,EAAE,CAAC;YACzE,MAAM,QAAQ,GAAU,EAAE,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBACjC,mGAAmG;oBACnG,IAAI,MAAM,CAAC,MAAM,YAAY,iBAAS,EAAE,CAAC;wBACvC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC1B,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBACpD,CAAC;yBAAM,IAAI,MAAM,CAAC,MAAM,YAAY,SAAS,EAAE,CAAC;wBAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC1B,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBACxD,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC/B,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,gHAAgH;YAChH,eAAe;YACf,IAAI,yBAAyB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,CAAC,GAAG,yBAAyB,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxD,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC1C,MAAM,OAAO,GAAG,MAAM,IAAA,6BAAmB,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3G,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;gBACxC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;gBACzD,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;wBACjC,IAAI,MAAM,CAAC,MAAM,YAAY,SAAS,EAAE,CAAC;4BACvC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;4BAC1B,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;wBACxD,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBAC/B,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3C,qFAAqF;YACrF,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;gBAC7B,IAAI,CAAC,CAAC,OAAO;oBAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;YACH,sFAAsF;YACtF,qFAAqF;YACrF,+DAA+D;YAC/D,IAAI,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC3B,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;QAEtC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,IAAA,6BAAmB,EAAC,GAAG,EAAE,CAC7C,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CACnG,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;QAEzD,MAAM,QAAQ,GAAU,EAAE,CAAC;QAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACzB,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjC,IAAI,MAAM,CAAC,MAAM,YAAY,SAAS,EAAE,CAAC;oBACvC,8CAA8C;oBAC9C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,+EAA+E;IAC/E,KAAK;QACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,MAAkC;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,yBAAyB;QACvB,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;IACjC,CAAC;IAED,8BAA8B;QAC5B,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,SAAS,CAAC,MAAsB;QAC9B,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC7B,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,MAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5F,CAAC;IAED,WAAW,CAAC,IAAsC;QAChD,OAAO,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;IACpH,CAAC;IAEO,UAAU,CAAC,CAAY;QAC7B,IAAI,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,cAAc,CAAC,IAAoB;QACzC,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,aAAa,CAAC,MAAc;QAClC,mGAAmG;QACnG,+DAA+D;QAC/D,OAAO,IAAA,wBAAgB,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;YAChD,CAAC,CAAC,IAAA,uCAA8B,EAAC,IAAA,4BAAW,EAAC,MAAM,CAAC,CAAC;YACrD,CAAC,CAAC,IAAA,sBAAa,EAAC,IAAA,4BAAW,EAAC,MAAM,CAAC,CAAC,CAAC;IACzC,CAAC;CACF;AAnTD,4CAmTC"}
1
+ {"version":3,"file":"ReactionsManager.js","sourceRoot":"","sources":["../src/ReactionsManager.ts"],"names":[],"mappings":";;;AACA,qDAA+D;AAE/D,mCAAqE;AACrE,6DAAwE;AACxE,mDAAoD;AACpD,uCAAgD;AAGhD;;;;;;GAMG;AACH,MAAa,gBAAgB;IAC3B,iFAAiF;IACzE,iBAAiB,GAA6D,IAAI,GAAG,EAAE,CAAC;IACxF,wBAAwB,GAAgC,IAAI,GAAG,EAAE,CAAC;IAC1E;;;;;;;;OAQG;IACK,WAAW,GAA6B,IAAI,GAAG,EAAE,CAAC;IAClD,gBAAgB,GAAgB,IAAI,GAAG,EAAE,CAAC;IAClD,YAAY,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClE,sDAAsD;IACtD,MAAM,GAA+B,6BAAY,CAAC;IAC1C,EAAE,CAAgB;IAC1B,6GAA6G;IACrG,oBAAoB,GAAY,EAAE,CAAC;IAE3C,YAAY,EAAiB;QAC3B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACH,yBAAyB,CAAC,MAAc,EAAE,SAAiB;QACzD,qEAAqE;QACrE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;YAC7D,8FAA8F;YAC9F,uCAAuC;YACvC,0EAA0E;YAC1E,mFAAmF;YACnF,yEAAyE;YACzE,mFAAmF;YACnF,2EAA2E;YAC3E,iEAAiE;YACjE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,cAAc,CAAC,IAAA,4BAAW,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,2BAA2B,CAAC,MAAc,EAAE,SAAiB;QAC3D,qEAAqE;QACrE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;YAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,oFAAoF;gBACpF,6FAA6F;gBAC7F,2BAA2B;gBAC3B,4DAA4D;gBAC5D,8EAA8E;gBAC9E,wCAAwC;gBACxC,0EAA0E;gBAC1E,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACzB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YACnC,CAAC;iBAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,iFAAiF;gBACjF,gFAAgF;gBAChF,8EAA8E;gBAC9E,sCAAsC;gBACtC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED,gGAAgG;IAChG,wBAAwB,CAAC,MAAc,EAAE,MAA6B;QACpE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,cAAc,CAAC,IAAA,4BAAW,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,oBAAoB,CAAC,MAAc,EAAE,SAAiB;QACpD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAA,4BAAW,EAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,yBAAyB;QACvB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,uBAAuB,CAAC,IAAsC;QAClE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAE1E,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,+FAA+F;YAC/F,yFAAyF;YACzF,wFAAwF;YACxF,6BAA6B;YAC7B,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC1B,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;YAClC,CAAC;YAED,MAAM,UAAU,GAAgC,IAAI,GAAG,EAAE,CAAC;YAE1D,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE;gBAC/D,yCAAyC;gBACzC,IAAI,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;oBAAE,OAAO,EAAE,CAAC;gBAC3D,IAAI,IAAI,KAAK,iBAAiB,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;oBAAE,OAAO,EAAE,CAAC;gBAC9F,4BAA4B;gBAC5B,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,EAAE,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrB,KAAK,MAAM,KAAK,IAAI,IAAI;oBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAClD,uDAAuD;gBACvD,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAA,iCAAiB,EAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC5F,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,IAAI,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC5G,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC;gBAC9D,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;oBACpC,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBACrC,4GAA4G;oBAC5G,sGAAsG;oBACtG,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,OAAO;oBAChC,0EAA0E;oBAC1E,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,OAAO;oBACxD,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAC/C,yFAAyF;YACzF,uDAAuD;YACvD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,MAAM,IAAA,6BAAmB,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3G,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;YAEzD,MAAM,yBAAyB,GAAgC,IAAI,GAAG,EAAE,CAAC;YACzE,MAAM,QAAQ,GAAU,EAAE,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBACjC,mGAAmG;oBACnG,IAAI,MAAM,CAAC,MAAM,YAAY,iBAAS,EAAE,CAAC;wBACvC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC1B,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBACpD,CAAC;yBAAM,IAAI,MAAM,CAAC,MAAM,YAAY,SAAS,EAAE,CAAC;wBAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC1B,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBACxD,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC/B,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,gHAAgH;YAChH,eAAe;YACf,IAAI,yBAAyB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,CAAC,GAAG,yBAAyB,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxD,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC1C,MAAM,OAAO,GAAG,MAAM,IAAA,6BAAmB,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3G,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;gBACxC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;gBACzD,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;wBACjC,IAAI,MAAM,CAAC,MAAM,YAAY,SAAS,EAAE,CAAC;4BACvC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;4BAC1B,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;wBACxD,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBAC/B,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3C,qFAAqF;YACrF,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACzB,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO;oBAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;YACH,sFAAsF;YACtF,qFAAqF;YACrF,+DAA+D;YAC/D,IAAI,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC3B,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;QAEtC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,IAAA,6BAAmB,EAAC,GAAG,EAAE,CAC7C,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CACnG,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;QAEzD,MAAM,QAAQ,GAAU,EAAE,CAAC;QAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACzB,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjC,IAAI,MAAM,CAAC,MAAM,YAAY,SAAS,EAAE,CAAC;oBACvC,8CAA8C;oBAC9C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,+EAA+E;IAC/E,KAAK;QACH,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,MAAkC;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,yBAAyB;QACvB,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;IACjC,CAAC;IAED,8BAA8B;QAC5B,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,SAAS,CAAC,MAAsB;QAC9B,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC7B,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,MAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5F,CAAC;IAED,WAAW,CAAC,IAAsC;QAChD,OAAO,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;IACpH,CAAC;IAEO,UAAU,CAAC,CAAY;QAC7B,IAAI,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,cAAc,CAAC,IAAoB;QACzC,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,aAAa,CAAC,MAAc;QAClC,mGAAmG;QACnG,+DAA+D;QAC/D,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,MAAM,CAAC,CAAC;QACjC,OAAO,IAAA,wBAAgB,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,UAAW,CAAC;IAC5G,CAAC;IAEO,oBAAoB,CAAC,MAAc,EAAE,SAAiB;QAC5D,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,MAAM,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,IAAA,wBAAgB,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;YACzD,CAAC,CAAC,IAAI,CAAC,kCAAmC;YAC1C,CAAC,CAAC,IAAI,CAAC,iBAAkB,CAAC;QAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;CACF;AArTD,4CAqTC;AAED,0EAA0E;AAC1E,SAAS,aAAa,CAAC,MAAc,EAAE,CAAY;IACjD,OAAO,GAAG,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC"}
@@ -1,6 +1,6 @@
1
- import { Entity } from "./Entity";
2
- import { MaybeAbstractEntityConstructor, TaggedId } from "./EntityManager";
3
- import { EntityMetadata } from "./EntityMetadata";
1
+ import { type Entity } from "./Entity";
2
+ import { type MaybeAbstractEntityConstructor, type TaggedId } from "./EntityManager";
3
+ import { type EntityMetadata } from "./EntityMetadata";
4
4
  import { Reference } from "./relations";
5
5
  /** Performs our boot-time initialization, i.e. hooking up reactivity. */
6
6
  export declare function configureMetadata(metas: EntityMetadata[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,8BAA8B,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAA+C,MAAM,kBAAkB,CAAC;AAM/F,OAAO,EAAiD,SAAS,EAAE,MAAM,aAAa,CAAC;AAavF,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,CAyB/D;AAuBD,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAEtF;AAED,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,QAAQ,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAG5F;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAErE;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAEnE;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,GAC5D,8BAA8B,CAAC,GAAG,CAAC,GAAG,SAAS,CAGjD"}
1
+ {"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,KAAK,8BAA8B,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAIL,KAAK,cAAc,EAIpB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAiD,SAAS,EAAE,MAAM,aAAa,CAAC;AAavF,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,CA2B/D;AAqED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAEtF;AAED,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,QAAQ,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAG5F;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAErE;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAEnE;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,GAC5D,8BAA8B,CAAC,GAAG,CAAC,GAAG,SAAS,CAGjD"}
@@ -32,6 +32,7 @@ function configureMetadata(metas) {
32
32
  try {
33
33
  populateConstructorMaps(metas);
34
34
  hookUpBaseTypeAndSubTypes(metas);
35
+ installMetadataGetters(metas);
35
36
  sortMetasByBaseType(metas);
36
37
  setImmutableFields(metas);
37
38
  populatePolyComponentFields(metas);
@@ -42,6 +43,7 @@ function configureMetadata(metas) {
42
43
  // Do these after `fireAfterMetadatas`, in case afterMetadata callbacks added more defaults/rules
43
44
  copyAsyncDefaults(metas);
44
45
  reverseIndexReactivity(metas);
46
+ installReactiveMetadataGetters(metas);
45
47
  copyRunBeforeBooksToBaseType(metas);
46
48
  }
47
49
  catch (e) {
@@ -49,6 +51,52 @@ function configureMetadata(metas) {
49
51
  throw e;
50
52
  }
51
53
  }
54
+ /** Installs lazy lookup getters for metadata-derived caches. */
55
+ function installMetadataGetters(metas) {
56
+ for (const meta of metas) {
57
+ (0, utils_1.defineLazyGetter)(meta, "subTypesByType", function buildSubTypesByType() {
58
+ return new Map(meta.subTypes.map((st) => [st.type, st]));
59
+ });
60
+ (0, utils_1.defineLazyGetter)(meta, "subTypesByStiValue", function buildSubTypesByStiValue() {
61
+ return new Map(meta.subTypes.map((st) => [st.stiDiscriminatorValue, st]));
62
+ });
63
+ (0, utils_1.defineLazyGetter)(meta, "stiDiscriminatorColumnName", function buildStiDiscriminatorColumnName() {
64
+ const field = meta.fields[meta.stiDiscriminatorField];
65
+ if (field === undefined)
66
+ throw new Error(`${meta.type} does not have an STI discriminator field`);
67
+ if (field.kind !== "enum")
68
+ throw new Error("Discriminator field must be an enum");
69
+ return field.serde.columns[0].columnName;
70
+ });
71
+ }
72
+ }
73
+ /** Installs lazy getters for reactivity caches after reactivity has been reverse-indexed. */
74
+ function installReactiveMetadataGetters(metas) {
75
+ for (const meta of metas) {
76
+ (0, utils_1.defineLazyGetter)(meta, "reactables", function buildReactables() {
77
+ return (0, EntityMetadata_1.getBaseAndSelfMetas)(meta)
78
+ .flatMap((m) => m.config.__data.reactables)
79
+ .filter((r) => !r.isReadOnly);
80
+ });
81
+ (0, utils_1.defineLazyGetter)(meta, "reactablesByField", function buildReactablesByField() {
82
+ return indexReactablesByField(meta.reactables);
83
+ });
84
+ (0, utils_1.defineLazyGetter)(meta, "reactablesIncludingReadOnly", function buildReactablesIncludingReadOnly() {
85
+ return (0, EntityMetadata_1.getBaseAndSelfMetas)(meta).flatMap((m) => m.config.__data.reactables);
86
+ });
87
+ (0, utils_1.defineLazyGetter)(meta, "reactablesIncludingReadOnlyByField", function buildReactablesIncludingReadOnlyByField() {
88
+ return indexReactablesByField(meta.reactablesIncludingReadOnly);
89
+ });
90
+ (0, utils_1.defineLazyGetter)(meta, "reactiveRules", function buildReactiveRules() {
91
+ // We use "AndSub" because `reactiveRules` is called with `todo.metadata`, which is always
92
+ // the root type, but ofc we don't want to skip subtype rules.
93
+ //
94
+ // I had considered filtering this list with `rr.fields.length > 0`, but even rules with 100%
95
+ // immutable fields (so all read-only, and so not "reactive") need to run on initial entity creation.
96
+ return (0, EntityMetadata_1.getBaseSelfAndSubMetas)(meta).flatMap((m) => m.config.__data.reactiveRules);
97
+ });
98
+ }
99
+ }
52
100
  // Sort metas in place by inheritance hierarchy so that the base type comes before subtypes
53
101
  function sortMetasByBaseType(metas) {
54
102
  metas.sort(compareMetasByBaseType);
@@ -326,4 +374,20 @@ function copyRunBeforeBooksToBaseType(meta) {
326
374
  }
327
375
  }
328
376
  }
377
+ /** Indexes reactables once so field setters don't scan every reactable's fields. */
378
+ function indexReactablesByField(reactables) {
379
+ const byField = new Map();
380
+ for (const reactable of reactables) {
381
+ for (const field of reactable.fields) {
382
+ let fields = byField.get(field);
383
+ if (fields === undefined) {
384
+ fields = [];
385
+ byField.set(field, fields);
386
+ }
387
+ if (!fields.includes(reactable))
388
+ fields.push(reactable);
389
+ }
390
+ }
391
+ return byField;
392
+ }
329
393
  //# sourceMappingURL=configure.js.map