joist-orm 1.93.0 → 1.94.0

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 (45) hide show
  1. package/build/src/BaseEntity.js +1 -1
  2. package/build/src/BaseEntity.js.map +1 -1
  3. package/build/src/Entity.d.ts +6 -4
  4. package/build/src/Entity.d.ts.map +1 -1
  5. package/build/src/Entity.js +33 -1
  6. package/build/src/Entity.js.map +1 -1
  7. package/build/src/EntityManager.d.ts +12 -42
  8. package/build/src/EntityManager.d.ts.map +1 -1
  9. package/build/src/EntityManager.js +76 -92
  10. package/build/src/EntityManager.js.map +1 -1
  11. package/build/src/FlushLock.d.ts +25 -0
  12. package/build/src/FlushLock.d.ts.map +1 -0
  13. package/build/src/FlushLock.js +54 -0
  14. package/build/src/FlushLock.js.map +1 -0
  15. package/build/src/Todo.d.ts.map +1 -1
  16. package/build/src/Todo.js.map +1 -1
  17. package/build/src/dataloaders/findCountDataLoader.js +1 -1
  18. package/build/src/dataloaders/findCountDataLoader.js.map +1 -1
  19. package/build/src/dataloaders/findDataLoader.d.ts +1 -1
  20. package/build/src/dataloaders/findDataLoader.d.ts.map +1 -1
  21. package/build/src/dataloaders/findDataLoader.js +4 -4
  22. package/build/src/dataloaders/findDataLoader.js.map +1 -1
  23. package/build/src/dataloaders/manyToManyDataLoader.d.ts.map +1 -1
  24. package/build/src/dataloaders/manyToManyDataLoader.js +2 -1
  25. package/build/src/dataloaders/manyToManyDataLoader.js.map +1 -1
  26. package/build/src/index.d.ts.map +1 -1
  27. package/build/src/index.js +5 -12
  28. package/build/src/index.js.map +1 -1
  29. package/build/src/relations/ManyToManyCollection.d.ts.map +1 -1
  30. package/build/src/relations/ManyToManyCollection.js +4 -4
  31. package/build/src/relations/ManyToManyCollection.js.map +1 -1
  32. package/build/src/relations/ManyToOneReference.d.ts.map +1 -1
  33. package/build/src/relations/ManyToOneReference.js +2 -2
  34. package/build/src/relations/ManyToOneReference.js.map +1 -1
  35. package/build/src/relations/OneToManyCollection.d.ts.map +1 -1
  36. package/build/src/relations/OneToManyCollection.js +1 -1
  37. package/build/src/relations/OneToManyCollection.js.map +1 -1
  38. package/build/src/relations/hasPersistedAsyncProperty.d.ts.map +1 -1
  39. package/build/src/relations/hasPersistedAsyncProperty.js +1 -1
  40. package/build/src/relations/hasPersistedAsyncProperty.js.map +1 -1
  41. package/build/src/relations/hasPersistedAsyncReference.d.ts.map +1 -1
  42. package/build/src/relations/hasPersistedAsyncReference.js +1 -1
  43. package/build/src/relations/hasPersistedAsyncReference.js.map +1 -1
  44. package/build/tsconfig.tsbuildinfo +1 -1
  45. package/package.json +2 -2
@@ -15,7 +15,7 @@ class BaseEntity {
15
15
  entity;
16
16
  constructor(em, metadata, defaultValues, opts) {
17
17
  Object.defineProperty(this, "__orm", {
18
- value: { em, metadata, data: { ...defaultValues }, originalData: {}, isNew: true, isTouched: false },
18
+ value: new index_1.EntityOrmField(em, metadata, defaultValues),
19
19
  enumerable: false,
20
20
  });
21
21
  Object.defineProperty(this, "entity", {
@@ -1 +1 @@
1
- {"version":3,"file":"BaseEntity.js","sourceRoot":"","sources":["../../src/BaseEntity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseEntity.js","sourceRoot":"","sources":["../../src/BaseEntity.ts"],"names":[],"mappings":"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"}
@@ -33,20 +33,22 @@ export interface Entity {
33
33
  toString(): string;
34
34
  }
35
35
  /** The `__orm` metadata field we track on each instance. */
36
- export interface EntityOrmField {
36
+ export declare class EntityOrmField {
37
+ /** All entities must be associated to an `EntityManager` to handle lazy loading/etc. */
38
+ readonly em: EntityManager;
37
39
  /** A point to our entity type's metadata. */
38
- metadata: EntityMetadata<Entity>;
40
+ readonly metadata: EntityMetadata<Entity>;
39
41
  /** A bag for our primitives/fk column values. */
40
42
  data: Record<any, any>;
41
43
  /** A bag to keep the original values, lazily populated. */
42
44
  originalData: Record<any, any>;
43
45
  /** Whether our entity has been deleted or not. */
44
46
  deleted?: "pending" | "deleted";
45
- /** All entities must be associated to an `EntityManager` to handle lazy loading/etc. */
46
- em: EntityManager;
47
47
  /** Whether our entity is new or not. */
48
48
  isNew: boolean;
49
49
  /** Whether our entity should flush regardless of any other changes. */
50
50
  isTouched: boolean;
51
+ constructor(em: EntityManager, metadata: EntityMetadata<Entity>, defaultValues: Record<any, any>);
52
+ resetAfterFlushed(): void;
51
53
  }
52
54
  //# sourceMappingURL=Entity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../../src/Entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,wBAAgB,QAAQ,CAAC,WAAW,EAAE,GAAG,GAAG,WAAW,IAAI,MAAM,CAEhE;AAED,2DAA2D;AAC3D,MAAM,WAAW,MAAM;IACrB;;;;OAIG;IACH,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,qFAAqF;IACrF,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACvC,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACtD;;;;;OAKG;IACH,QAAQ,IAAI,MAAM,CAAC;CACpB;AAED,4DAA4D;AAC5D,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACjC,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACvB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/B,kDAAkD;IAClD,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,wFAAwF;IACxF,EAAE,EAAE,aAAa,CAAC;IAClB,wCAAwC;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAC;CACpB"}
1
+ {"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../../src/Entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,wBAAgB,QAAQ,CAAC,WAAW,EAAE,GAAG,GAAG,WAAW,IAAI,MAAM,CAEhE;AAED,2DAA2D;AAC3D,MAAM,WAAW,MAAM;IACrB;;;;OAIG;IACH,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,qFAAqF;IACrF,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACvC,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACtD;;;;;OAKG;IACH,QAAQ,IAAI,MAAM,CAAC;CACpB;AAED,4DAA4D;AAC5D,qBAAa,cAAc;IACzB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAC3B,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACvB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/B,kDAAkD;IAClD,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,wCAAwC;IACxC,KAAK,EAAE,OAAO,CAAQ;IACtB,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAS;gBAEf,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;IAOhG,iBAAiB;CAQlB"}
@@ -1,8 +1,40 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isEntity = void 0;
3
+ exports.EntityOrmField = exports.isEntity = void 0;
4
4
  function isEntity(maybeEntity) {
5
5
  return maybeEntity && typeof maybeEntity === "object" && "id" in maybeEntity && "__orm" in maybeEntity;
6
6
  }
7
7
  exports.isEntity = isEntity;
8
+ /** The `__orm` metadata field we track on each instance. */
9
+ class EntityOrmField {
10
+ /** All entities must be associated to an `EntityManager` to handle lazy loading/etc. */
11
+ em;
12
+ /** A point to our entity type's metadata. */
13
+ metadata;
14
+ /** A bag for our primitives/fk column values. */
15
+ data;
16
+ /** A bag to keep the original values, lazily populated. */
17
+ originalData;
18
+ /** Whether our entity has been deleted or not. */
19
+ deleted;
20
+ /** Whether our entity is new or not. */
21
+ isNew = true;
22
+ /** Whether our entity should flush regardless of any other changes. */
23
+ isTouched = false;
24
+ constructor(em, metadata, defaultValues) {
25
+ this.em = em;
26
+ this.metadata = metadata;
27
+ this.data = { ...defaultValues };
28
+ this.originalData = {};
29
+ }
30
+ resetAfterFlushed() {
31
+ this.originalData = {};
32
+ this.isTouched = false;
33
+ this.isNew = false;
34
+ if (this.deleted === "pending") {
35
+ this.deleted = "deleted";
36
+ }
37
+ }
38
+ }
39
+ exports.EntityOrmField = EntityOrmField;
8
40
  //# sourceMappingURL=Entity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../src/Entity.ts"],"names":[],"mappings":";;;AAIA,SAAgB,QAAQ,CAAC,WAAgB;IACvC,OAAO,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,IAAI,IAAI,WAAW,IAAI,OAAO,IAAI,WAAW,CAAC;AACzG,CAAC;AAFD,4BAEC"}
1
+ {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../src/Entity.ts"],"names":[],"mappings":";;;AAIA,SAAgB,QAAQ,CAAC,WAAgB;IACvC,OAAO,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,IAAI,IAAI,WAAW,IAAI,OAAO,IAAI,WAAW,CAAC;AACzG,CAAC;AAFD,4BAEC;AAiCD,4DAA4D;AAC5D,MAAa,cAAc;IACzB,wFAAwF;IAC/E,EAAE,CAAgB;IAC3B,6CAA6C;IACpC,QAAQ,CAAyB;IAC1C,iDAAiD;IACjD,IAAI,CAAmB;IACvB,2DAA2D;IAC3D,YAAY,CAAmB;IAC/B,kDAAkD;IAClD,OAAO,CAAyB;IAChC,wCAAwC;IACxC,KAAK,GAAY,IAAI,CAAC;IACtB,uEAAuE;IACvE,SAAS,GAAY,KAAK,CAAC;IAE3B,YAAY,EAAiB,EAAE,QAAgC,EAAE,aAA+B;QAC9F,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,EAAE,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;YAC9B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;SAC1B;IACH,CAAC;CACF;AA/BD,wCA+BC"}
@@ -1,5 +1,3 @@
1
- /// <reference types="node" />
2
- import { AsyncLocalStorage } from "async_hooks";
3
1
  import DataLoader, { BatchLoadFn, Options } from "dataloader";
4
2
  import { Knex } from "knex";
5
3
  import { Entity } from "./Entity";
@@ -106,23 +104,6 @@ export declare function isId(value: any): value is IdOf<unknown>;
106
104
  export declare let currentlyInstantiatingEntity: Entity | undefined;
107
105
  export type EntityManagerHook = "beforeTransaction" | "afterTransaction";
108
106
  type HookFn = (em: EntityManager, knex: Knex.Transaction) => MaybePromise<any>;
109
- /**
110
- * A marker to prevent setter calls during `flush` calls.
111
- *
112
- * The `flush` process does a dirty check + SQL flush and generally doesn't want
113
- * entities to re-dirtied after it's done the initial dirty check. So we'd like
114
- * to prevent all setter calls while `flush` is running.
115
- *
116
- * That said, lifecycle code like hooks actually can make setter calls b/c `flush`
117
- * invokes them at a specific point in its process.
118
- *
119
- * We solve this by using node's `AsyncLocalStorage` to mark certain callbacks (promise
120
- * handlers) as blessed / invoked-from-`flush`-itself, and they are allowed to call setters,
121
- * but any external callers (i.e. application code) will be rejected.
122
- */
123
- export declare const currentFlushSecret: AsyncLocalStorage<{
124
- flushSecret: number;
125
- }>;
126
107
  export type LoaderCache = Record<string, DataLoader<any, any>>;
127
108
  export type TimestampFields = {
128
109
  updatedAt: string | undefined;
@@ -134,31 +115,11 @@ export interface FlushOptions {
134
115
  skipValidation?: boolean;
135
116
  }
136
117
  export declare class EntityManager<C = unknown> {
118
+ #private;
137
119
  readonly ctx: C;
138
120
  driver: Driver;
139
121
  currentTxnKnex: Knex | undefined;
140
- private _entities;
141
- private _entityIndex;
142
- private flushSecret;
143
- private _isFlushing;
144
- private _isValidating;
145
- pendingChildren: Map<string, Map<string, Entity[]>>;
146
- /**
147
- * Tracks cascade deletes.
148
- *
149
- * We originally used a beforeDelete lifecycle hook to implement this, but tracking this
150
- * individually allows us to a) recursively cascade deletes even during the 1st iteration
151
- * of our `flush` loop, and b) cascade deletions before we recalc fields & run user hooks,
152
- * so that both see the most accurate state.
153
- */
154
- private pendingCascadeDeletes;
155
- dataloaders: Record<string, LoaderCache>;
156
- __data: {
157
- joinRows: Record<string, JoinRow[]>;
158
- /** Stores any `source -> downstream` reactions to recalc during `em.flush`. */
159
- rm: ReactionsManager;
160
- };
161
- private hooks;
122
+ private __api;
162
123
  constructor(em: EntityManager<C>);
163
124
  constructor(ctx: C, driver: Driver);
164
125
  /** Returns a read-only shallow copy of the currently-loaded entities. */
@@ -412,7 +373,6 @@ export declare class EntityManager<C = unknown> {
412
373
  * It returns entities that have changed (an entity is considered changed if it has been deleted, inserted, or updated)
413
374
  */
414
375
  flush(flushOptions?: FlushOptions): Promise<Entity[]>;
415
- get isFlushing(): boolean;
416
376
  /**
417
377
  * A very simple toJSON.
418
378
  *
@@ -473,6 +433,16 @@ export declare class EntityManager<C = unknown> {
473
433
  /** Recursively cascades any pending deletions. */
474
434
  private cascadeDeletes;
475
435
  }
436
+ /** Provides an internal API to the `EntityManager`. */
437
+ export interface EntityManagerInternalApi {
438
+ joinRows: Record<string, JoinRow[]>;
439
+ pendingChildren: Map<string, Map<string, Entity[]>>;
440
+ hooks: Record<EntityManagerHook, HookFn[]>;
441
+ rm: ReactionsManager;
442
+ isValidating: boolean;
443
+ checkWritesAllowed: () => void;
444
+ }
445
+ export declare function getEmInternalApi(em: EntityManager): EntityManagerInternalApi;
476
446
  export declare let entityLimit: number;
477
447
  export declare function setEntityLimit(limit: number): void;
478
448
  export declare function setDefaultEntityLimit(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"EntityManager.d.ts","sourceRoot":"","sources":["../../src/EntityManager.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,UAAU,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAY,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAStD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAIL,iBAAiB,EAEjB,cAAc,EACd,gBAAgB,EAChB,eAAe,EAEf,sBAAsB,EACtB,IAAI,EAEJ,aAAa,EAEb,YAAY,EAkBb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAkB,GAAG,EAAe,MAAM,aAAa,CAAC;AAKjF,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAwC,MAAM,SAAS,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,KAAK,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC;IAE3C,aAAa,EAAE,MAAM,CAAC;IAItB,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;CAC/B;AAED,4FAA4F;AAC5F,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM;IACjD,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACrB,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACrC;AAED;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IACxF,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,6BAA6B,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IAC3F,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,mCAAmC;AACnC,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,MAAM;IACtD,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACrC;AAED;;;;GAIG;AACH,MAAM,MAAM,8BAA8B,CAAC,CAAC,IAAI,QAAQ,MAAM,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC;AAEtG,kEAAkE;AAClE,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAE/E,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAEnF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAEnF,kEAAkE;AAClE,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE9F,gEAAgE;AAChE,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAEnF,wEAAwE;AACxE,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,KAAK,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAE7F,gEAAgE;AAChE,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAEjF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,KAAK,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAEjG,+DAA+D;AAC/D,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAExE,wBAAgB,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,CAEvD;AAED,eAAO,IAAI,4BAA4B,EAAE,MAAM,GAAG,SAAS,CAAC;AAE5D,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAEzE,KAAK,MAAM,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,KAAK,YAAY,CAAC,GAAG,CAAC,CAAC;AAE/E;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB;iBAAwC,MAAM;EAAK,CAAC;AAEnF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,0EAA0E;IAC1E,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,aAAa,CAAC,CAAC,GAAG,OAAO;IACpC,SAAgB,GAAG,EAAE,CAAC,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,IAAI,GAAG,SAAS,CAAC;IACxC,OAAO,CAAC,SAAS,CAAgB;IAGjC,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,aAAa,CAAkB;IAEhC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAa;IACvE;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB,CAAgB;IACtC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAM;IAErD,MAAM;;QAEJ,+EAA+E;;MAE/E;IACF,OAAO,CAAC,KAAK,CAGX;gBAEU,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;gBACpB,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM;IAgBlC,yEAAyE;IACzE,IAAI,QAAQ,IAAI,aAAa,CAAC,MAAM,CAAC,CAEpC;IAED,4DAA4D;IAC5D,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS;IAKvD;;;;;;;;;;;OAWG;IACU,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IACxG,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EACvD,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EACzB,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;KAAE,GACvD,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAgB1B;;;;;;;;;;OAUG;IACU,aAAa,CAAC,CAAC,SAAS,MAAM,EACzC,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EACzB,OAAO,EAAE,0BAA0B,CAAC,CAAC,CAAC,GACrC,OAAO,CAAC,CAAC,EAAE,CAAC;IACF,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAChE,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EACzB,OAAO,EAAE,0BAA0B,CAAC,CAAC,CAAC,GAAG;QAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;KAAE,GAC9D,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAiB1B;;;;OAIG;IACU,OAAO,CAAC,CAAC,SAAS,MAAM,EACnC,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,KAAK,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,CAAC,EAAE,CAAC;IACF,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAC1D,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,KAAK,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAChC,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;KAAE,GACvD,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAS1B;;;;OAIG;IACU,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAC5C,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,KAAK,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAChC,OAAO,EAAE,6BAA6B,CAAC,CAAC,CAAC,GACxC,OAAO,CAAC,CAAC,EAAE,CAAC;IACF,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EACnE,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,KAAK,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAChC,OAAO,EAAE,6BAA6B,CAAC,CAAC,CAAC,GAAG;QAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;KAAE,GACjE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IASb,OAAO,CAAC,CAAC,SAAS,MAAM,EACnC,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACZ,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAC1D,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EACzB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;KACrC,GACA,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;IAmBpC,wHAAwH;IAC3G,aAAa,CAAC,CAAC,SAAS,MAAM,EACzC,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,CAAC,CAAC;IACA,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAChE,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EACzB,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAAC,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;KAAE,GACpE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAeX,YAAY,CAAC,CAAC,SAAS,MAAM,EACxC,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACZ,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAC/D,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;KACrC,GACA,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;IA4BpC;;;;;;;OAOG;IACG,SAAS,CAAC,CAAC,SAAS,MAAM,EAC9B,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EACzB,OAAO,GAAE,sBAAsB,CAAC,CAAC,CAAM,GACtC,OAAO,CAAC,MAAM,CAAC;IAwBlB;;;;;;;;;;;;;;;;;;OAkBG;IACG,YAAY,CAChB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC5B,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EACjC,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,EAC5C,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IACnE,YAAY,CAChB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC5B,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EACjC,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,EAC5C,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAErB,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC1B,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,CAAC,EACR,MAAM,CAAC,EAAE,CAAC,EACV,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAAC,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;KAAE,GACrE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IA0BxB,kHAAkH;IAC3G,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAKpG,oGAAoG;IAC7F,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAUrG,oGAAoG;IAC7F,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIlH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACU,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EACxD,MAAM,EAAE,CAAC,EACT,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,GAC/G,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAExB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACU,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EACxD,QAAQ,EAAE,SAAS,CAAC,EAAE,EACtB,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,GAC/G,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAuF1B,kHAAkH;IACrG,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACjC,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IACvF,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EACvD,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,GACjB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACX,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EACvD,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,GACjB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IA8BxB,iHAAiH;IACpG,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IACxG,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAC1D,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,GACjB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAuB1B;;;OAGG;IACU,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IACnG,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAClE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC1B,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,GACjB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAqB1B;;;;;OAKG;IACU,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAChG,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAChF,QAAQ,EAAE,CAAC,EAAE,EACb,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EACjC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,GACjB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAa1B,+CAA+C;IAClC,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IACnG,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAChE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC1B,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,GACjB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAc1B,gCAAgC;IACnB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IACzF,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAC/D,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC1B,IAAI,EAAE,OAAO,EAAE,EACf,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,GACjB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAa1B,qHAAqH;IACxG,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAC7E,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EACd,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IACA,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAC7E,MAAM,EAAE,CAAC,EACT,IAAI,EAAE;QAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,EAC/C,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IACA,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAC3D,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GACb,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACb,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAC3D,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,IAAI,EAAE;QAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAC9C,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IA2E1B;;;;;;OAMG;IACU,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAkBlF,wGAAwG;IACxG,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IA4BzD;;;;;;;;;;OAUG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IActB,YAAY;IAMlB;;;;;;;;;;;;OAYG;IACG,KAAK,CAAC,YAAY,GAAE,YAAiB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAyH/D,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;;;;OAMG;IACI,MAAM,IAAI,MAAM;IAIvB;;;;;;;;;;;OAWG;IACG,OAAO,CAAC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IACrD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACtC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAoD7D,IAAW,gBAAgB,IAAI,MAAM,CAEpC;IAIM,oBAAoB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAKzD;;;;;;;;OAQG;IACI,OAAO,CAAC,CAAC,SAAS,MAAM,EAC7B,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,GAAG,EAAE,GAAG,EACR,OAAO,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,GACxC,CAAC;IAwBJ;;OAEG;IACI,KAAK,CAAC,MAAM,EAAE,MAAM;IAIpB,iBAAiB,CAAC,EAAE,EAAE,MAAM;IAI5B,gBAAgB,CAAC,EAAE,EAAE,MAAM;IAIlC;;;;;;;;;OASG;IACI,SAAS,CAAC,CAAC,EAAE,CAAC,EACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EACrB,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GACnB,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;IAQZ,QAAQ,IAAI,MAAM;IAIzB,kDAAkD;YACpC,cAAc;CAkB7B;AAED,eAAO,IAAI,WAAW,QAAS,CAAC;AAEhC,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,QAE3C;AAED,wBAAgB,qBAAqB,SAEpC;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,MAAM,CAEzC;AAED,qDAAqD;AACrD,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAelG;AAED,+EAA+E;AAC/E,qBAAa,aAAc,SAAQ,KAAK;CAAG;AAE3C,gFAAgF;AAChF,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAgF1C,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAE7F;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAE5F;AA+DD,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE,CAAC;AACpF,MAAM,MAAM,KAAK,CAAC,CAAC,IACf,CAAC,GACD;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;CACrE,CAAC;AAgFN,wBAAgB,SAAS,CAAC,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,IAAI,CAAC,CAEhF"}
1
+ {"version":3,"file":"EntityManager.d.ts","sourceRoot":"","sources":["../../src/EntityManager.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.isDefined = exports.afterTransaction = exports.beforeTransaction = exports.TooManyError = exports.NotFoundError = exports.sameEntity = exports.isKey = exports.setDefaultEntityLimit = exports.setEntityLimit = exports.entityLimit = exports.EntityManager = exports.currentFlushSecret = exports.currentlyInstantiatingEntity = exports.isId = void 0;
7
- const async_hooks_1 = require("async_hooks");
6
+ exports.isDefined = exports.afterTransaction = exports.beforeTransaction = exports.TooManyError = exports.NotFoundError = exports.sameEntity = exports.isKey = exports.setDefaultEntityLimit = exports.setEntityLimit = exports.entityLimit = exports.getEmInternalApi = exports.EntityManager = exports.currentlyInstantiatingEntity = exports.isId = void 0;
8
7
  const dataloader_1 = __importDefault(require("dataloader"));
9
8
  const Entity_1 = require("./Entity");
9
+ const FlushLock_1 = require("./FlushLock");
10
10
  const ReactionsManager_1 = require("./ReactionsManager");
11
11
  const Todo_1 = require("./Todo");
12
12
  const config_1 = require("./config");
@@ -25,34 +25,16 @@ function isId(value) {
25
25
  return value && typeof value === "string";
26
26
  }
27
27
  exports.isId = isId;
28
- /**
29
- * A marker to prevent setter calls during `flush` calls.
30
- *
31
- * The `flush` process does a dirty check + SQL flush and generally doesn't want
32
- * entities to re-dirtied after it's done the initial dirty check. So we'd like
33
- * to prevent all setter calls while `flush` is running.
34
- *
35
- * That said, lifecycle code like hooks actually can make setter calls b/c `flush`
36
- * invokes them at a specific point in its process.
37
- *
38
- * We solve this by using node's `AsyncLocalStorage` to mark certain callbacks (promise
39
- * handlers) as blessed / invoked-from-`flush`-itself, and they are allowed to call setters,
40
- * but any external callers (i.e. application code) will be rejected.
41
- */
42
- exports.currentFlushSecret = new async_hooks_1.AsyncLocalStorage();
43
28
  class EntityManager {
44
29
  ctx;
45
30
  driver;
46
31
  currentTxnKnex;
47
- _entities = [];
32
+ #entities = [];
48
33
  // Indexes the currently loaded entities by their tagged ids. This fixes a real-world
49
- // performance issue where `findExistingInstance` scanning `_entities` was an `O(n^2)`.
50
- _entityIndex = new Map();
51
- flushSecret = 0;
52
- _isFlushing = false;
53
- _isValidating = false;
54
- // TODO Make these private
55
- pendingChildren = new Map();
34
+ // performance issue where `findExistingInstance` scanning `#entities` was an `O(n^2)`.
35
+ #entityIndex = new Map();
36
+ #isValidating = false;
37
+ #pendingChildren = new Map();
56
38
  /**
57
39
  * Tracks cascade deletes.
58
40
  *
@@ -61,25 +43,22 @@ class EntityManager {
61
43
  * of our `flush` loop, and b) cascade deletions before we recalc fields & run user hooks,
62
44
  * so that both see the most accurate state.
63
45
  */
64
- pendingCascadeDeletes = [];
65
- dataloaders = {};
66
- // This is attempting to be internal/module private
67
- __data = {
68
- joinRows: {},
69
- /** Stores any `source -> downstream` reactions to recalc during `em.flush`. */
70
- rm: new ReactionsManager_1.ReactionsManager(),
71
- };
72
- hooks = {
73
- beforeTransaction: [],
74
- afterTransaction: [],
75
- };
46
+ #pendingCascadeDeletes = [];
47
+ #dataloaders = {};
48
+ #joinRows = {};
49
+ /** Stores any `source -> downstream` reactions to recalc during `em.flush`. */
50
+ #rm = new ReactionsManager_1.ReactionsManager();
51
+ /** Ensures our `em.flush` method is not interrupted. */
52
+ #fl = new FlushLock_1.FlushLock();
53
+ #hooks = { beforeTransaction: [], afterTransaction: [] };
54
+ __api;
76
55
  constructor(emOrCtx, driver) {
77
56
  if (emOrCtx instanceof EntityManager) {
78
57
  const em = emOrCtx;
79
58
  this.driver = em.driver;
80
- this.hooks = {
81
- beforeTransaction: [...em.hooks.beforeTransaction],
82
- afterTransaction: [...em.hooks.afterTransaction],
59
+ this.#hooks = {
60
+ beforeTransaction: [...em.#hooks.beforeTransaction],
61
+ afterTransaction: [...em.#hooks.afterTransaction],
83
62
  };
84
63
  this.ctx = em.ctx;
85
64
  }
@@ -87,15 +66,29 @@ class EntityManager {
87
66
  this.ctx = emOrCtx;
88
67
  this.driver = driver;
89
68
  }
69
+ // Expose some of our private fields as the EntityManagerInternalApi
70
+ const em = this;
71
+ this.__api = {
72
+ joinRows: this.#joinRows,
73
+ pendingChildren: this.#pendingChildren,
74
+ hooks: this.#hooks,
75
+ rm: this.#rm,
76
+ get isValidating() {
77
+ return em.#isValidating;
78
+ },
79
+ checkWritesAllowed() {
80
+ return em.#fl.checkWritesAllowed();
81
+ },
82
+ };
90
83
  }
91
84
  /** Returns a read-only shallow copy of the currently-loaded entities. */
92
85
  get entities() {
93
- return [...this._entities];
86
+ return [...this.#entities];
94
87
  }
95
88
  /** Looks up `id` in the list of already-loaded entities. */
96
89
  getEntity(id) {
97
90
  (0, index_1.assertIdIsTagged)(id);
98
- return this._entityIndex.get(id);
91
+ return this.#entityIndex.get(id);
99
92
  }
100
93
  async find(type, where, options) {
101
94
  const { populate, ...rest } = options || {};
@@ -183,7 +176,7 @@ class EntityManager {
183
176
  // clause before knowing if it should adjust teh amount.
184
177
  const isSelectAll = Object.keys(where).length === 0;
185
178
  if (isSelectAll) {
186
- for (const entity of this._entities) {
179
+ for (const entity of this.#entities) {
187
180
  if (entity instanceof type) {
188
181
  if (entity.isNewEntity) {
189
182
  count++;
@@ -457,10 +450,10 @@ class EntityManager {
457
450
  if (this.findExistingInstance(entity.idTagged) !== undefined) {
458
451
  throw new Error(`Entity ${entity} has a duplicate instance already loaded`);
459
452
  }
460
- this._entityIndex.set(entity.idTagged, entity);
453
+ this.#entityIndex.set(entity.idTagged, entity);
461
454
  }
462
- this._entities.push(entity);
463
- if (this._entities.length >= exports.entityLimit) {
455
+ this.#entities.push(entity);
456
+ if (this.#entities.length >= exports.entityLimit) {
464
457
  throw new Error(`More than ${exports.entityLimit} entities have been instantiated`);
465
458
  }
466
459
  // Set a default createdAt/updatedAt that we'll keep if this is a new entity, or over-write if we're loaded an existing row
@@ -472,7 +465,7 @@ class EntityManager {
472
465
  if (updatedAt) {
473
466
  entity.__orm.data[updatedAt] = new Date();
474
467
  }
475
- this.__data.rm.queueAllDownstreamFields(entity);
468
+ this.#rm.queueAllDownstreamFields(entity);
476
469
  }
477
470
  exports.currentlyInstantiatingEntity = entity;
478
471
  }
@@ -494,11 +487,11 @@ class EntityManager {
494
487
  }
495
488
  entity.__orm.deleted = "pending";
496
489
  // Any derived fields that read this entity will need recalc-d
497
- this.__data.rm.queueAllDownstreamFields(entity);
490
+ this.#rm.queueAllDownstreamFields(entity);
498
491
  // Synchronously unhook the entity if the relations are loaded
499
492
  getCascadeDeleteRelations(entity).forEach((r) => r.maybeCascadeDelete());
500
493
  // And queue the cascade deletes
501
- this.pendingCascadeDeletes.push(entity);
494
+ this.#pendingCascadeDeletes.push(entity);
502
495
  }
503
496
  async assignNewIds() {
504
497
  let pendingEntities = this.entities.filter((e) => e.isNewEntity && !e.id);
@@ -520,11 +513,8 @@ class EntityManager {
520
513
  */
521
514
  async flush(flushOptions = {}) {
522
515
  const { skipValidation = false } = flushOptions;
523
- if (this.isFlushing) {
524
- throw new Error("Cannot flush while another flush is already in progress");
525
- }
526
- this._isFlushing = true;
527
- await exports.currentFlushSecret.run({ flushSecret: this.flushSecret }, async () => {
516
+ this.#fl.startLock();
517
+ await this.#fl.allowWrites(async () => {
528
518
  // Recalc any touched entities
529
519
  const touched = this.entities.filter((e) => e.__orm.isTouched);
530
520
  if (touched.length > 0) {
@@ -536,14 +526,14 @@ class EntityManager {
536
526
  // that would NPE their logic anyway).
537
527
  await this.cascadeDeletes();
538
528
  // Recalc before we run hooks, so the hooks will see the latest calculated values.
539
- await this.__data.rm.recalcPendingDerivedValues();
529
+ await this.#rm.recalcPendingDerivedValues();
540
530
  });
541
531
  const hooksInvoked = new Set();
542
532
  let pendingEntities = this.entities.filter((e) => e.isPendingFlush);
543
533
  try {
544
534
  while (pendingEntities.length > 0) {
545
535
  // Run hooks in a series of loops until things "settle down"
546
- await exports.currentFlushSecret.run({ flushSecret: this.flushSecret }, async () => {
536
+ await this.#fl.allowWrites(async () => {
547
537
  // Run our hooks
548
538
  let todos = (0, Todo_1.createTodos)(pendingEntities);
549
539
  await beforeCreate(this.ctx, todos);
@@ -556,11 +546,10 @@ class EntityManager {
556
546
  // The hooks could have deleted this-loop or prior-loop entities, so re-cascade again.
557
547
  await this.cascadeDeletes();
558
548
  // The hooks could have changed fields, so recalc again.
559
- await this.__data.rm.recalcPendingDerivedValues();
549
+ await this.#rm.recalcPendingDerivedValues();
560
550
  for (const e of pendingEntities)
561
551
  hooksInvoked.add(e);
562
552
  pendingEntities = this.entities.filter((e) => e.isPendingFlush && !hooksInvoked.has(e));
563
- this.flushSecret += 1;
564
553
  });
565
554
  }
566
555
  // Recreate todos now that we've run hooks and recalculated fields so know
@@ -569,18 +558,18 @@ class EntityManager {
569
558
  const entityTodos = (0, Todo_1.createTodos)(entitiesToFlush);
570
559
  if (!skipValidation) {
571
560
  try {
572
- this._isValidating = true;
561
+ this.#isValidating = true;
573
562
  // Run simple rules first b/c it includes not-null/required rules, so that then when we run
574
563
  // `validateReactiveRules` next, the lambdas won't see invalid entities.
575
564
  await validateSimpleRules(entityTodos);
576
565
  await validateReactiveRules(entityTodos);
577
566
  }
578
567
  finally {
579
- this._isValidating = false;
568
+ this.#isValidating = false;
580
569
  }
581
570
  await afterValidation(this.ctx, entityTodos);
582
571
  }
583
- const joinRowTodos = (0, Todo_1.combineJoinRows)(this.__data.joinRows);
572
+ const joinRowTodos = (0, Todo_1.combineJoinRows)(this.#joinRows);
584
573
  if (Object.keys(entityTodos).length > 0 || Object.keys(joinRowTodos).length > 0) {
585
574
  // The driver will handle the right thing if we're already in an existing transaction.
586
575
  // We also purposefully don't pass an isolation level b/c if we're only doing
@@ -594,22 +583,16 @@ class EntityManager {
594
583
  // TODO: This is really "after flush" if we're being called from a transaction that
595
584
  // is going to make multiple `em.flush()` calls?
596
585
  await afterCommit(this.ctx, entityTodos);
597
- Object.values(entityTodos).forEach((todo) => {
598
- todo.inserts.forEach((e) => {
599
- this._entityIndex.set(e.idTagged, e);
600
- e.__orm.isNew = false;
601
- });
602
- todo.deletes.forEach((e) => {
603
- e.__orm.deleted = "deleted";
604
- });
605
- [todo.inserts, todo.updates, todo.deletes].flat().forEach((e) => {
606
- e.__orm.originalData = {};
607
- e.__orm.isTouched = false;
608
- });
609
- });
586
+ // Update the `__orm` to reflect the new state
587
+ for (const e of entitiesToFlush) {
588
+ if (e.isNewEntity) {
589
+ this.#entityIndex.set(e.idTagged, e);
590
+ }
591
+ e.__orm.resetAfterFlushed();
592
+ }
610
593
  // Reset the find caches b/c data will have changed in the db
611
- this.dataloaders = {};
612
- this.__data.rm.clear();
594
+ this.#dataloaders = {};
595
+ this.#rm.clear();
613
596
  }
614
597
  return entitiesToFlush;
615
598
  }
@@ -623,12 +606,9 @@ class EntityManager {
623
606
  throw e;
624
607
  }
625
608
  finally {
626
- this._isFlushing = false;
609
+ this.#fl.releaseLock();
627
610
  }
628
611
  }
629
- get isFlushing() {
630
- return this._isFlushing;
631
- }
632
612
  /**
633
613
  * A very simple toJSON.
634
614
  *
@@ -640,9 +620,9 @@ class EntityManager {
640
620
  return `<EntityManager ${this.entities.length}>`;
641
621
  }
642
622
  async refresh(param) {
643
- this.dataloaders = {};
623
+ this.#dataloaders = {};
644
624
  const deepLoad = param && "deepLoad" in param && param.deepLoad;
645
- let todo = param === undefined ? this._entities : Array.isArray(param) ? param : (0, Entity_1.isEntity)(param) ? [param] : this._entities;
625
+ let todo = param === undefined ? this.#entities : Array.isArray(param) ? param : (0, Entity_1.isEntity)(param) ? [param] : this.#entities;
646
626
  const done = new Set();
647
627
  while (todo.length > 0) {
648
628
  const copy = [...todo];
@@ -683,7 +663,7 @@ class EntityManager {
683
663
  // Currently only public for the driver impls
684
664
  findExistingInstance(id) {
685
665
  (0, index_1.assertIdIsTagged)(id);
686
- return this._entityIndex.get(id);
666
+ return this.#entityIndex.get(id);
687
667
  }
688
668
  /**
689
669
  * Takes a result `row` from a custom query and maps the db values into a new-or-existing domain object for that row.
@@ -725,10 +705,10 @@ class EntityManager {
725
705
  entity.__orm.isTouched = true;
726
706
  }
727
707
  beforeTransaction(fn) {
728
- this.hooks.beforeTransaction.push(fn);
708
+ this.#hooks.beforeTransaction.push(fn);
729
709
  }
730
710
  afterTransaction(fn) {
731
- this.hooks.afterTransaction.push(fn);
711
+ this.#hooks.afterTransaction.push(fn);
732
712
  }
733
713
  /**
734
714
  * Returns an EntityManager-scoped (i.e. request scoped) data loader.
@@ -744,7 +724,7 @@ class EntityManager {
744
724
  // If we wanted to, if not in a transaction, we could potentially do lookups against a global cache,
745
725
  // to achieve cross-request batching. Granted we'd need all DataLoaders to have caching disabled, see:
746
726
  // https://github.com/stephenh/joist-ts/issues/629
747
- const loadersForKind = (this.dataloaders[operation] ??= {});
727
+ const loadersForKind = (this.#dataloaders[operation] ??= {});
748
728
  return (0, utils_1.getOrSet)(loadersForKind, batchKey, () => new dataloader_1.default(fn, opts));
749
729
  }
750
730
  toString() {
@@ -752,8 +732,8 @@ class EntityManager {
752
732
  }
753
733
  /** Recursively cascades any pending deletions. */
754
734
  async cascadeDeletes() {
755
- let entities = this.pendingCascadeDeletes;
756
- this.pendingCascadeDeletes = [];
735
+ let entities = this.#pendingCascadeDeletes;
736
+ this.#pendingCascadeDeletes = [];
757
737
  // Loop if our deletes cascade to other deletes
758
738
  while (entities.length > 0) {
759
739
  // For cascade delete relations, cascade the delete...
@@ -763,12 +743,16 @@ class EntityManager {
763
743
  await beforeDelete(this.ctx, todos);
764
744
  // For all relations, unhook the entity from the other side
765
745
  await Promise.all(entities.flatMap(index_1.getRelations).map((r) => r.cleanupOnEntityDeleted()));
766
- entities = this.pendingCascadeDeletes;
767
- this.pendingCascadeDeletes = [];
746
+ entities = this.#pendingCascadeDeletes;
747
+ this.#pendingCascadeDeletes = [];
768
748
  }
769
749
  }
770
750
  }
771
751
  exports.EntityManager = EntityManager;
752
+ function getEmInternalApi(em) {
753
+ return em["__api"];
754
+ }
755
+ exports.getEmInternalApi = getEmInternalApi;
772
756
  exports.entityLimit = 10000;
773
757
  function setEntityLimit(limit) {
774
758
  exports.entityLimit = limit;
@@ -875,11 +859,11 @@ async function validateSimpleRules(todos) {
875
859
  }
876
860
  }
877
861
  function beforeTransaction(em, knex) {
878
- return Promise.all(em["hooks"].beforeTransaction.map((fn) => fn(em, knex)));
862
+ return Promise.all(getEmInternalApi(em).hooks.beforeTransaction.map((fn) => fn(em, knex)));
879
863
  }
880
864
  exports.beforeTransaction = beforeTransaction;
881
865
  function afterTransaction(em, knex) {
882
- return Promise.all(em["hooks"].afterTransaction.map((fn) => fn(em, knex)));
866
+ return Promise.all(getEmInternalApi(em).hooks.afterTransaction.map((fn) => fn(em, knex)));
883
867
  }
884
868
  exports.afterTransaction = afterTransaction;
885
869
  async function runHook(ctx, hook, todos, keys) {