joist-orm 1.287.0 → 1.289.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 (46) hide show
  1. package/build/EntityMetadata.d.ts +10 -0
  2. package/build/EntityMetadata.d.ts.map +1 -1
  3. package/build/EntityMetadata.js.map +1 -1
  4. package/build/dataloaders/oneToManyDataLoader.d.ts.map +1 -1
  5. package/build/dataloaders/oneToManyDataLoader.js +6 -3
  6. package/build/dataloaders/oneToManyDataLoader.js.map +1 -1
  7. package/build/dataloaders/oneToOneDataLoader.d.ts.map +1 -1
  8. package/build/dataloaders/oneToOneDataLoader.js +7 -4
  9. package/build/dataloaders/oneToOneDataLoader.js.map +1 -1
  10. package/build/reactiveHints.d.ts +7 -7
  11. package/build/reactiveHints.d.ts.map +1 -1
  12. package/build/reactiveHints.js +71 -15
  13. package/build/reactiveHints.js.map +1 -1
  14. package/build/relations/ManyToManyCollection.d.ts +8 -8
  15. package/build/relations/ManyToManyCollection.d.ts.map +1 -1
  16. package/build/relations/ManyToManyCollection.js +23 -20
  17. package/build/relations/ManyToManyCollection.js.map +1 -1
  18. package/build/relations/ManyToOneReference.d.ts +4 -4
  19. package/build/relations/ManyToOneReference.d.ts.map +1 -1
  20. package/build/relations/ManyToOneReference.js +12 -12
  21. package/build/relations/ManyToOneReference.js.map +1 -1
  22. package/build/relations/OneToManyCollection.d.ts +5 -12
  23. package/build/relations/OneToManyCollection.d.ts.map +1 -1
  24. package/build/relations/OneToManyCollection.js +18 -22
  25. package/build/relations/OneToManyCollection.js.map +1 -1
  26. package/build/relations/OneToManyLargeCollection.d.ts +8 -12
  27. package/build/relations/OneToManyLargeCollection.d.ts.map +1 -1
  28. package/build/relations/OneToManyLargeCollection.js +36 -32
  29. package/build/relations/OneToManyLargeCollection.js.map +1 -1
  30. package/build/relations/OneToOneReference.d.ts +5 -6
  31. package/build/relations/OneToOneReference.d.ts.map +1 -1
  32. package/build/relations/OneToOneReference.js +15 -17
  33. package/build/relations/OneToOneReference.js.map +1 -1
  34. package/build/relations/ReactiveField.d.ts +5 -4
  35. package/build/relations/ReactiveField.d.ts.map +1 -1
  36. package/build/relations/ReactiveField.js +12 -7
  37. package/build/relations/ReactiveField.js.map +1 -1
  38. package/build/relations/ReactiveQueryField.d.ts +1 -1
  39. package/build/relations/ReactiveQueryField.d.ts.map +1 -1
  40. package/build/relations/ReactiveQueryField.js +1 -1
  41. package/build/relations/ReactiveQueryField.js.map +1 -1
  42. package/build/relations/ReactiveReference.d.ts +5 -5
  43. package/build/relations/ReactiveReference.d.ts.map +1 -1
  44. package/build/relations/ReactiveReference.js +11 -9
  45. package/build/relations/ReactiveReference.js.map +1 -1
  46. package/package.json +2 -2
@@ -98,8 +98,14 @@ export type OneToManyField = {
98
98
  required: boolean;
99
99
  otherMetadata: () => EntityMetadata;
100
100
  otherFieldName: string;
101
+ /** Useful when our other side is a poly, to find which component points back to us. */
102
+ otherColumnName: string;
101
103
  serde: undefined;
102
104
  immutable: false;
105
+ orderBy?: {
106
+ field: string;
107
+ direction: "ASC" | "DESC";
108
+ };
103
109
  };
104
110
  export type LargeOneToManyField = {
105
111
  kind: "lo2m";
@@ -108,6 +114,8 @@ export type LargeOneToManyField = {
108
114
  required: boolean;
109
115
  otherMetadata: () => EntityMetadata;
110
116
  otherFieldName: string;
117
+ /** Useful when our other side is a poly, to find which component points back to us. */
118
+ otherColumnName: string;
111
119
  serde: undefined;
112
120
  immutable: false;
113
121
  };
@@ -143,6 +151,8 @@ export type OneToOneField = {
143
151
  required: boolean;
144
152
  otherMetadata: () => EntityMetadata;
145
153
  otherFieldName: string;
154
+ /** Useful when our other side is a poly, to find which component points back to us. */
155
+ otherColumnName: string;
146
156
  serde: undefined;
147
157
  immutable: false;
148
158
  };
@@ -1 +1 @@
1
- {"version":3,"file":"EntityMetadata.d.ts","sourceRoot":"","sources":["../src/EntityMetadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAY,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,8BAA8B,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACjG,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE1D,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AAC5E,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AAC1G,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,cAAc,CAAC;AAUpF;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,GAAG;IACpD,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,MAAM,EAAE,eAAe,GAAG,iBAAiB,GAAG,QAAQ,CAAC;IACvD,4EAA4E;IAC5E,QAAQ,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,+GAA+G;IAC/G,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;IAC5C,oGAAoG;IACpG,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4EAA4E;IAC5E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,uEAAuE;IACvE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,mHAAmH;IACnH,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEtE,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,eAAe,EAAE,eAAe,GAAG,SAAS,CAAC;IAE7C,OAAO,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACtE,sFAAsF;IACtF,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,wFAAwF;IACxF,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,KAAK,GACb,eAAe,GACf,cAAc,GACd,SAAS,GACT,cAAc,GACd,mBAAmB,GACnB,cAAc,GACd,eAAe,GACf,aAAa,GACb,gBAAgB,CAAC;AAGrB,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,cAAc,GAAG,SAAS,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAE1G,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;IACvB,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IAC1C,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IAClC,cAAc,EAAE;QAAE,SAAS,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAA;KAAE,CAAC;IACpF,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,cAAc,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,cAAc,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,cAAc,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC;IACzB,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,GAAG,WAAW,GAAG,KAAK,CAAC;IACvC,aAAa,EAAE,MAAM,cAAc,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,cAAc,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,yBAAyB,EAAE,CAAC;IACxC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,aAAa,EAAE,MAAM,cAAc,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,KAAK,GAAG,QAAQ,IAAI,cAAc,CAE5E;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,KAAK,GAAG,QAAQ,IAAI,cAAc,CAE5E;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,KAAK,GAAG,QAAQ,IAAI,eAAe,CAE9E;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,KAAK,GAAG,QAAQ,IAAI,aAAa,CAE1E;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,KAAK,GAAG,QAAQ,IAAI,gBAAgB,CAEhF;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,KAAK,GAAG,QAAQ,IAAI,cAAc,GAAG,aAAa,GAAG,gBAAgB,CAE/G;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,KAAK,GAAG,QAAQ,IAAI,cAAc,GAAG,eAAe,CAE/F;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,EAAE,CAAC;AAC5E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAAC;AAKtE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,EAAE,CAE7E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,EAAE,CAGlE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAMhE"}
1
+ {"version":3,"file":"EntityMetadata.d.ts","sourceRoot":"","sources":["../src/EntityMetadata.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityMetadata.js","sourceRoot":"","sources":["../src/EntityMetadata.ts"],"names":[],"mappings":";;AAUA,kCAOC;AA8KD,4CAEC;AAED,4CAEC;AAED,8CAEC;AAED,0CAEC;AAED,gDAEC;AAED,4CAEC;AAED,8CAEC;AAID,kDAEC;AAED,wDAEC;AAED,kCAGC;AAED,kCAMC;AAhPD,6CAA+C;AAC/C,qCAA4C;AAS5C,SAAgB,WAAW,CACzB,KAA6D;IAE7D,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;IAC9D,OAAO,CACL,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAE,KAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,4BAAe,EAAC,KAAK,CAAC,CAAC,QAAQ,CAChG,CAAC;AACtB,CAAC;AA8KD,SAAgB,gBAAgB,CAAC,QAAe;IAC9C,OAAO,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC;AACjC,CAAC;AAED,SAAgB,gBAAgB,CAAC,QAAe;IAC9C,OAAO,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC;AACjC,CAAC;AAED,SAAgB,iBAAiB,CAAC,QAAe;IAC/C,OAAO,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC;AACjC,CAAC;AAED,SAAgB,eAAe,CAAC,QAAe;IAC7C,OAAO,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC;AACjC,CAAC;AAED,SAAgB,kBAAkB,CAAC,QAAe;IAChD,OAAO,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC;AAClC,CAAC;AAED,SAAgB,gBAAgB,CAAC,QAAe;IAC9C,OAAO,QAAQ,CAAC,IAAI,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC;AACxF,CAAC;AAED,SAAgB,iBAAiB,CAAC,QAAe;IAC/C,OAAO,QAAQ,CAAC,IAAI,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC;AAC5D,CAAC;AAID,SAAgB,mBAAmB,CAAC,KAA8B;IAChE,OAAO,IAAA,iBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACpG,CAAC;AAED,SAAgB,sBAAsB,CAAC,IAAoB;IACzD,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED,SAAgB,WAAW,CAAC,IAAoB;IAC9C,uCAAuC;IACvC,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC;AAED,SAAgB,WAAW,CAAC,IAAoB;IAC9C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"EntityMetadata.js","sourceRoot":"","sources":["../src/EntityMetadata.ts"],"names":[],"mappings":";;AAUA,kCAOC;AAqLD,4CAEC;AAED,4CAEC;AAED,8CAEC;AAED,0CAEC;AAED,gDAEC;AAED,4CAEC;AAED,8CAEC;AAID,kDAEC;AAED,wDAEC;AAED,kCAGC;AAED,kCAMC;AAvPD,6CAA+C;AAC/C,qCAA4C;AAS5C,SAAgB,WAAW,CACzB,KAA6D;IAE7D,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;IAC9D,OAAO,CACL,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAE,KAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,4BAAe,EAAC,KAAK,CAAC,CAAC,QAAQ,CAChG,CAAC;AACtB,CAAC;AAqLD,SAAgB,gBAAgB,CAAC,QAAe;IAC9C,OAAO,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC;AACjC,CAAC;AAED,SAAgB,gBAAgB,CAAC,QAAe;IAC9C,OAAO,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC;AACjC,CAAC;AAED,SAAgB,iBAAiB,CAAC,QAAe;IAC/C,OAAO,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC;AACjC,CAAC;AAED,SAAgB,eAAe,CAAC,QAAe;IAC7C,OAAO,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC;AACjC,CAAC;AAED,SAAgB,kBAAkB,CAAC,QAAe;IAChD,OAAO,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC;AAClC,CAAC;AAED,SAAgB,gBAAgB,CAAC,QAAe;IAC9C,OAAO,QAAQ,CAAC,IAAI,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC;AACxF,CAAC;AAED,SAAgB,iBAAiB,CAAC,QAAe;IAC/C,OAAO,QAAQ,CAAC,IAAI,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC;AAC5D,CAAC;AAID,SAAgB,mBAAmB,CAAC,KAA8B;IAChE,OAAO,IAAA,iBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACpG,CAAC;AAED,SAAgB,sBAAsB,CAAC,IAAoB;IACzD,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED,SAAgB,WAAW,CAAC,IAAoB;IAC9C,uCAAuC;IACvC,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC;AAED,SAAgB,WAAW,CAAC,IAAoB;IAC9C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"oneToManyDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/oneToManyDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAKL,mBAAmB,EAEpB,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,sBAAsB,aAAa,CAAC;AAEjD,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EACpE,EAAE,EAAE,aAAa,EACjB,UAAU,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GACpC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAsDzB"}
1
+ {"version":3,"file":"oneToManyDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/oneToManyDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAKL,mBAAmB,EAGpB,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,sBAAsB,aAAa,CAAC;AAEjD,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EACpE,EAAE,EAAE,aAAa,EACjB,UAAU,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GACpC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAyDzB"}
@@ -7,14 +7,17 @@ const index_1 = require("../index");
7
7
  const utils_1 = require("../utils");
8
8
  exports.oneToManyLoadOperation = "o2m-load";
9
9
  function oneToManyDataLoader(em, collection) {
10
- // The metadata for the entity that contains the collection
10
+ // The metadata for the entity that contains the collection, i.e. Author in author.books
11
11
  const { meta: oneMeta, fieldName } = collection;
12
12
  const batchKey = `${oneMeta.tableName}-${fieldName}`;
13
13
  return em.getLoader(exports.oneToManyLoadOperation, batchKey, async (_keys) => {
14
+ // otherMeta is the entity being fetched, i.e. Book in author.books
14
15
  const { otherMeta: meta } = collection;
15
16
  (0, index_1.assertIdsAreTagged)(_keys);
16
17
  const keys = (0, index_1.deTagIds)(oneMeta, _keys);
17
18
  const alias = (0, utils_1.abbreviation)(meta.tableName);
19
+ const o2m = oneMeta.allFields[collection.fieldName];
20
+ const other = meta.allFields[collection.otherFieldName];
18
21
  const query = {
19
22
  selects: [`"${alias}".*`],
20
23
  tables: [{ alias, join: "primary", table: meta.tableName }],
@@ -24,8 +27,8 @@ function oneToManyDataLoader(em, collection) {
24
27
  conditions: [
25
28
  {
26
29
  kind: "column",
27
- alias: `${alias}${meta.allFields[collection.otherFieldName].aliasSuffix}`,
28
- column: collection.otherColumnName,
30
+ alias: `${alias}${other.aliasSuffix}`,
31
+ column: o2m.otherColumnName,
29
32
  dbType: meta.idDbType,
30
33
  cond: { kind: "in", value: keys },
31
34
  },
@@ -1 +1 @@
1
- {"version":3,"file":"oneToManyDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/oneToManyDataLoader.ts"],"names":[],"mappings":";;;AAgBA,kDAyDC;AAtED,sCAAqC;AACrC,oCAOkB;AAClB,oCAAiD;AAEpC,QAAA,sBAAsB,GAAG,UAAU,CAAC;AAEjD,SAAgB,mBAAmB,CACjC,EAAiB,EACjB,UAAqC;IAErC,2DAA2D;IAC3D,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;IAChD,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC;IACrD,OAAO,EAAE,CAAC,SAAS,CAAC,8BAAsB,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACpE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QAEvC,IAAA,0BAAkB,EAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAA,gBAAQ,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEtC,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAoB;YAC7B,OAAO,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC;YACzB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3D,SAAS,EAAE;gBACT,IAAI,EAAE,KAAK;gBACX,EAAE,EAAE,KAAK;gBACT,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE;wBACzE,MAAM,EAAE,UAAU,CAAC,eAAe;wBAClC,MAAM,EAAE,IAAI,CAAC,QAAQ;wBACrB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;qBAClC;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAClD,CAAC;QAEF,IAAA,wCAAgC,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3D,uDAAuD;QACvD,8DAA8D;QAE9D,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,8BAAsB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAE9E,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,sCAAsC;QAEtC,MAAM,YAAY,GAAG,IAAA,eAAO,EAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YAChD,wEAAwE;YACxE,MAAM,OAAO,GAAG,IAAA,iCAAyB,EAAC,IAAA,iBAAQ,EAAC,MAAM,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;YACvF,yFAAyF;YACzF,uFAAuF;YACvF,0FAA0F;YAC1F,sFAAsF;YACtF,0FAA0F;YAC1F,qFAAqF;YACrF,eAAe;YACf,OAAO,OAAO,IAAI,oBAAoB,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"oneToManyDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/oneToManyDataLoader.ts"],"names":[],"mappings":";;;AAiBA,kDA4DC;AA1ED,sCAAqC;AACrC,oCAQkB;AAClB,oCAAiD;AAEpC,QAAA,sBAAsB,GAAG,UAAU,CAAC;AAEjD,SAAgB,mBAAmB,CACjC,EAAiB,EACjB,UAAqC;IAErC,wFAAwF;IACxF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;IAChD,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC;IACrD,OAAO,EAAE,CAAC,SAAS,CAAC,8BAAsB,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACpE,mEAAmE;QACnE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QAEvC,IAAA,0BAAkB,EAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAA,gBAAQ,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEtC,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAmB,CAAC;QACtE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACxD,MAAM,KAAK,GAAoB;YAC7B,OAAO,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC;YACzB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3D,SAAS,EAAE;gBACT,IAAI,EAAE,KAAK;gBACX,EAAE,EAAE,KAAK;gBACT,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE;wBACrC,MAAM,EAAE,GAAG,CAAC,eAAe;wBAC3B,MAAM,EAAE,IAAI,CAAC,QAAQ;wBACrB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;qBAClC;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAClD,CAAC;QAEF,IAAA,wCAAgC,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3D,uDAAuD;QACvD,8DAA8D;QAE9D,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,8BAAsB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAE9E,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,sCAAsC;QAEtC,MAAM,YAAY,GAAG,IAAA,eAAO,EAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YAChD,wEAAwE;YACxE,MAAM,OAAO,GAAG,IAAA,iCAAyB,EAAC,IAAA,iBAAQ,EAAC,MAAM,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;YACvF,yFAAyF;YACzF,uFAAuF;YACvF,0FAA0F;YAC1F,sFAAsF;YACtF,0FAA0F;YAC1F,qFAAqF;YACrF,eAAe;YACf,OAAO,OAAO,IAAI,oBAAoB,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"oneToOneDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/oneToOneDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAUjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAGvE,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAEhD,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EACnE,EAAE,EAAE,aAAa,EACjB,SAAS,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,GACrC,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAkDnC"}
1
+ {"version":3,"file":"oneToOneDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/oneToOneDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAUjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAGvE,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAEhD,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EACnE,EAAE,EAAE,aAAa,EACjB,SAAS,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,GACrC,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAoDnC"}
@@ -8,15 +8,17 @@ const index_1 = require("../index");
8
8
  const utils_1 = require("../utils");
9
9
  exports.oneToOneLoadOperation = "o2o-load";
10
10
  function oneToOneDataLoader(em, reference) {
11
- // The metadata for the entity that contains the reference
11
+ // The metadata for the entity that contains the reference, i.e. Author.image is the o2o,
12
+ // and (otherMeta/otherFieldName) Image.author is the physical m2o/FK column.
12
13
  const meta = (0, EntityMetadata_1.getMetadata)(reference.entity);
13
14
  const batchKey = `${meta.tableName}-${reference.fieldName}`;
14
15
  return em.getLoader(exports.oneToOneLoadOperation, batchKey, async (_keys) => {
15
16
  const { otherMeta, otherFieldName } = reference;
16
17
  (0, index_1.assertIdsAreTagged)(_keys);
17
18
  const keys = (0, index_1.deTagIds)(meta, _keys);
18
- const { em } = reference.entity;
19
19
  const alias = (0, utils_1.abbreviation)(otherMeta.tableName);
20
+ const o2o = meta.allFields[reference.fieldName];
21
+ const other = otherMeta.allFields[reference.otherFieldName];
20
22
  const query = {
21
23
  selects: [`"${alias}".*`],
22
24
  tables: [{ alias, join: "primary", table: otherMeta.tableName }],
@@ -26,8 +28,8 @@ function oneToOneDataLoader(em, reference) {
26
28
  conditions: [
27
29
  {
28
30
  kind: "column",
29
- alias,
30
- column: reference.otherColumnName,
31
+ alias: `${alias}${other.aliasSuffix}`,
32
+ column: o2o.otherColumnName,
31
33
  dbType: meta.idDbType,
32
34
  cond: { kind: "in", value: keys },
33
35
  },
@@ -36,6 +38,7 @@ function oneToOneDataLoader(em, reference) {
36
38
  orderBys: [],
37
39
  };
38
40
  (0, index_1.addTablePerClassJoinsAndClassTag)(query, otherMeta, alias, true);
41
+ const { em } = reference.entity;
39
42
  const rows = await em["executeFind"](otherMeta, exports.oneToOneLoadOperation, query, {});
40
43
  const entities = em.hydrate(otherMeta.cstr, rows);
41
44
  const entitiesByOtherId = (0, utils_1.groupBy)(entities, (entity) => {
@@ -1 +1 @@
1
- {"version":3,"file":"oneToOneDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/oneToOneDataLoader.ts"],"names":[],"mappings":";;;AAiBA,gDAqDC;AAnED,sDAAgD;AAChD,sCAAqC;AACrC,oCAMkB;AAElB,oCAAiD;AAEpC,QAAA,qBAAqB,GAAG,UAAU,CAAC;AAEhD,SAAgB,kBAAkB,CAChC,EAAiB,EACjB,SAAsC;IAEtC,0DAA0D;IAC1D,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;IAC5D,OAAO,EAAE,CAAC,SAAS,CAAC,6BAAqB,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACnE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;QAEhD,IAAA,0BAAkB,EAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAA,gBAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEnC,MAAM,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC;QAEhC,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,KAAK,GAAoB;YAC7B,OAAO,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC;YACzB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC;YAChE,SAAS,EAAE;gBACT,IAAI,EAAE,KAAK;gBACX,EAAE,EAAE,KAAK;gBACT,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,QAAQ;wBACd,KAAK;wBACL,MAAM,EAAE,SAAS,CAAC,eAAe;wBACjC,MAAM,EAAE,IAAI,CAAC,QAAQ;wBACrB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;qBAClC;iBACF;aACF;YACD,QAAQ,EAAE,EAAE;SACb,CAAC;QACF,IAAA,wCAAgC,EAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAEhE,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,6BAAqB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAClF,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAElD,MAAM,iBAAiB,GAAG,IAAA,eAAO,EAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YACrD,wEAAwE;YACxE,MAAM,OAAO,GAAG,IAAA,iCAAyB,EAAC,IAAA,iBAAQ,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5E,yFAAyF;YACzF,sFAAsF;YACtF,0FAA0F;YAC1F,sFAAsF;YACtF,0FAA0F;YAC1F,qFAAqF;YACrF,eAAe;YACf,OAAO,OAAO,IAAI,oBAAoB,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAkB,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"oneToOneDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/oneToOneDataLoader.ts"],"names":[],"mappings":";;;AAiBA,gDAuDC;AArED,sDAA+D;AAC/D,sCAAqC;AACrC,oCAMkB;AAElB,oCAAiD;AAEpC,QAAA,qBAAqB,GAAG,UAAU,CAAC;AAEhD,SAAgB,kBAAkB,CAChC,EAAiB,EACjB,SAAsC;IAEtC,yFAAyF;IACzF,6EAA6E;IAC7E,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;IAC5D,OAAO,EAAE,CAAC,SAAS,CAAC,6BAAqB,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACnE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;QAEhD,IAAA,0BAAkB,EAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAA,gBAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEnC,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAkB,CAAC;QACjE,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAoB;YAC7B,OAAO,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC;YACzB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC;YAChE,SAAS,EAAE;gBACT,IAAI,EAAE,KAAK;gBACX,EAAE,EAAE,KAAK;gBACT,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE;wBACrC,MAAM,EAAE,GAAG,CAAC,eAAe;wBAC3B,MAAM,EAAE,IAAI,CAAC,QAAQ;wBACrB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;qBAClC;iBACF;aACF;YACD,QAAQ,EAAE,EAAE;SACb,CAAC;QACF,IAAA,wCAAgC,EAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAEhE,MAAM,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,6BAAqB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAClF,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAElD,MAAM,iBAAiB,GAAG,IAAA,eAAO,EAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YACrD,wEAAwE;YACxE,MAAM,OAAO,GAAG,IAAA,iCAAyB,EAAC,IAAA,iBAAQ,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5E,yFAAyF;YACzF,sFAAsF;YACtF,0FAA0F;YAC1F,sFAAsF;YACtF,0FAA0F;YAC1F,qFAAqF;YACrF,eAAe;YACf,OAAO,OAAO,IAAI,oBAAoB,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAkB,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -75,7 +75,7 @@ export type MaybeTransientFields<T> = "transientFields" extends keyof T ? {
75
75
  } : {};
76
76
  /**
77
77
  * Takes a reactive hint and returns the `ReactiveTarget`s that, should they change, need to
78
- * walk back to the reactive hint's
78
+ * walk back to this watching reactable.
79
79
  *
80
80
  * @param rootType The original type that contained the reactive rule/field, used for helpful error messages
81
81
  * @param entityType The current entity of the step we're walking
@@ -95,16 +95,16 @@ export declare function reverseReactiveHint<T extends Entity>(rootType: MaybeAbs
95
95
  *
96
96
  * For example, with reversals walking through collections:
97
97
  *
98
- * - Given a hint `book: author`
99
- * - Which reverses to `author.books`
100
- * - When we traverse through `a1.books`, we use only the current value, which might have only `[b2]` in it.
98
+ * - Given a hint `book: { author: firstName }`
99
+ * - Which reverses to `author[firstName] -> books`
100
+ * - When we walk through `a1.books`, we use only the current value, which might have only `[b2]` in it.
101
101
  * - We don't need to worry about "the old a1.books" value, which might have previously had `[b1]` in it,
102
102
  * because the `b1.author` changing authors (from `a1` to `a2`) will trigger its own reactivity.
103
103
  *
104
- * Which we can see with reversals walking through references:
104
+ * Contrast with reversals walking through references:
105
105
  *
106
- * - Given a hint `author: books`
107
- * - Which reverses to `book: author`
106
+ * - Given a hint `author: { books: "title" }`
107
+ * - Which reverses to `book[title] -> author`
108
108
  * - When we traverse through `b1.author`, we use both the current value and original value, so that both
109
109
  * "our prior author" and "our new author" see their latest `author.books` collection values.
110
110
  */
@@ -1 +1 @@
1
- {"version":3,"file":"reactiveHints.d.ts","sourceRoot":"","sources":["../src/reactiveHints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reactiveHints.d.ts","sourceRoot":"","sources":["../src/reactiveHints.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ const RecursiveCollection_1 = require("./relations/RecursiveCollection");
18
18
  const utils_1 = require("./utils");
19
19
  /**
20
20
  * Takes a reactive hint and returns the `ReactiveTarget`s that, should they change, need to
21
- * walk back to the reactive hint's
21
+ * walk back to this watching reactable.
22
22
  *
23
23
  * @param rootType The original type that contained the reactive rule/field, used for helpful error messages
24
24
  * @param entityType The current entity of the step we're walking
@@ -45,7 +45,8 @@ function reverseReactiveHint(rootType, entityType, hint, reactForOtherSide, reac
45
45
  const subHintTargets = Object.entries((0, normalizeHints_1.normalizeHint)(hint)).flatMap(([keyMaybeSuffix, subHint]) => {
46
46
  return reverseSubHint(rootType, entityType, hint, meta,
47
47
  // Pass fields & readOnlyFields, so `reverseSubHint` can append any of our primitive fields it finds
48
- fields, readOnlyFields, maybeRecursive, keyMaybeSuffix, subHint);
48
+ fields, readOnlyFields, maybeRecursive, keyMaybeSuffix, // maybeSuffix = might end with `_ro` like `name_ro`
49
+ subHint);
49
50
  });
50
51
  const myTargets = [];
51
52
  // If any of our primitives (or m2o fields) change, establish a reactive path from "here" (entityType)
@@ -91,7 +92,8 @@ function reverseSubHint(rootType, entityType, hint, meta, fields, readOnlyFields
91
92
  case "m2m": {
92
93
  // While o2m and o2o can watch for just FK changes by passing `reactForOtherSide` (the FK lives in the other
93
94
  // table), for m2m reactivity we push the collection name into the reactive hint, because it's effectively
94
- // "the other/reverse side", and JoinRows will trigger it explicitly instead of `setField` for non-m2m keys.
95
+ // "the other/reverse side", and JoinRows will trigger `queueDownstreamReactables` explicitly, instead of
96
+ // `setField` which handles regular/non-m2m mutations.
95
97
  fields.push(field.fieldName);
96
98
  const otherFieldName = maybeAddTypeFilterSuffix(meta, field);
97
99
  return reverseReactiveHint(rootType, field.otherMetadata().cstr, subHint,
@@ -149,14 +151,27 @@ function reverseSubHint(rootType, entityType, hint, meta, fields, readOnlyFields
149
151
  return reverseReactiveHint(rootType, meta.cstr, p.reactiveHint, undefined, false, false);
150
152
  }
151
153
  else if (p instanceof RecursiveCollection_1.RecursiveParentsCollectionImpl) {
154
+ // I.e. if this is `Author.mentorsRecursive`:
155
+ // - fieldName=mentorsRecursive (being watched by the caller)
156
+ // - otherFieldName=menteesRecursive (our reversal for walking down)
157
+ // - m2oFieldName = mentor
158
+ //
159
+ // Note that "reversing parents" is generally easier, b/c when the tree changes, any given node can
160
+ // still "walk down" to find its children w/the "current value" childrenRecursive; and any just-now
161
+ // orphaned parents will themselves trigger their own childrenRecursive changes (i.e. we do not need
162
+ // any "old reference value" / "new reference value" handling).
163
+ //
164
+ // I.e. given a tree of `A is mentor of B is mentor of C`, when B changes mentors, and we need to
165
+ // "walk to all affected/children mentees, so they can observe their new mentorsRecursive", merely
166
+ // walking down from (b itself & it's mentees) will find all affected mentees.
152
167
  const { otherFieldName, m2oFieldName } = p;
153
- // I.e. this is `Author.mentorsRecursive`
154
- // When our mentor changes, tell our immediate; but we ourselves are also "a new mentee"
155
- // of the mentor, so do `fields.push(m2oFieldName)` to notify our immediate books.
168
+ // When a mentor.firstName/etc field changes, walk to its transitive children (through otherFieldName)
169
+ // via the `return reverseReactiveHint` line below.
156
170
  //
157
- // We could technically do "when our mentor changes, it means his list of mentees has changed,
158
- // so go up to him, and then back down to his mentees", but this would load more mentees than
159
- // just "us + our children".
171
+ // But if the `author.mentor` field itself changes, we ourselves are also "a new mentee" of the mentor, so
172
+ // do `fields.push(m2oFieldName)` to notify our direct reactable (a new mentee), and then our transitive
173
+ // children/mentees. This avoids going "up to the mentor, and walking down all of his mentees", which would go
174
+ // through our siblings, which would not have changed/need reactivity.
160
175
  _fields.push(m2oFieldName);
161
176
  maybeRecursive.push({
162
177
  kind: isReadOnly ? "read-only" : "update",
@@ -164,6 +179,28 @@ function reverseSubHint(rootType, entityType, hint, meta, fields, readOnlyFields
164
179
  fields: [m2oFieldName],
165
180
  path: [otherFieldName],
166
181
  });
182
+ // Any reactables who were watching `parentsRecursive`, we'll back down to by going through `childrenRecursive`
183
+ return reverseReactiveHint(rootType, entityType, subHint, undefined, false).map(appendPath(otherFieldName));
184
+ }
185
+ else if (p instanceof RecursiveCollection_1.RecursiveChildrenCollectionImpl) {
186
+ const { otherFieldName, o2mFieldName } = p;
187
+ // I.e. this is `Author.menteesRecursive`
188
+ // - fieldName=menteesRecursive` (being watched by the caller)
189
+ // - otherFieldName=mentorsRecursive` (our reversal for walking up)
190
+ // - The o2m's otherFieldName gives us the FK field (e.g., "mentor") on the child entity.
191
+ //
192
+ // Note that "reversing children" is trickier than reversing parents, b/c when the tree changes,
193
+ // we need to consider both "old reference value" and "new reference value" scenarios.
194
+ const o2mField = meta.allFields[o2mFieldName];
195
+ const m2oFieldName = o2mField.otherFieldName;
196
+ _fields.push(m2oFieldName);
197
+ maybeRecursive.push({
198
+ kind: isReadOnly ? "read-only" : "update",
199
+ entity: entityType,
200
+ fields: [m2oFieldName], // i.e. parent
201
+ path: [otherFieldName], // i.e. parentsRecursive to tell them "observe your new childrenRecursive"
202
+ });
203
+ // Any reactables who were watching `childrenRecursive`, we'll up to by going through `parentsRecursive`
167
204
  return reverseReactiveHint(rootType, entityType, subHint, undefined, false).map(appendPath(otherFieldName));
168
205
  }
169
206
  else {
@@ -201,16 +238,16 @@ function maybeAddTypeFilterSuffix(meta, field) {
201
238
  *
202
239
  * For example, with reversals walking through collections:
203
240
  *
204
- * - Given a hint `book: author`
205
- * - Which reverses to `author.books`
206
- * - When we traverse through `a1.books`, we use only the current value, which might have only `[b2]` in it.
241
+ * - Given a hint `book: { author: firstName }`
242
+ * - Which reverses to `author[firstName] -> books`
243
+ * - When we walk through `a1.books`, we use only the current value, which might have only `[b2]` in it.
207
244
  * - We don't need to worry about "the old a1.books" value, which might have previously had `[b1]` in it,
208
245
  * because the `b1.author` changing authors (from `a1` to `a2`) will trigger its own reactivity.
209
246
  *
210
- * Which we can see with reversals walking through references:
247
+ * Contrast with reversals walking through references:
211
248
  *
212
- * - Given a hint `author: books`
213
- * - Which reverses to `book: author`
249
+ * - Given a hint `author: { books: "title" }`
250
+ * - Which reverses to `book[title] -> author`
214
251
  * - When we traverse through `b1.author`, we use both the current value and original value, so that both
215
252
  * "our prior author" and "our new author" see their latest `author.books` collection values.
216
253
  */
@@ -259,6 +296,22 @@ async function followReverseHint(reactionName, entities, reverseHint) {
259
296
  // Return a tuple of [currentRows, removedRows]
260
297
  promises.push(joinRows.removedFor(m2m, c));
261
298
  }
299
+ // Walk up the old parents
300
+ if (relation instanceof RecursiveCollection_1.RecursiveParentsCollectionImpl) {
301
+ const { m2oFieldName } = relation;
302
+ const changed = (0, fields_1.isChangeableField)(c, m2oFieldName) ? c.changes[m2oFieldName] : undefined;
303
+ if (changed && changed.hasUpdated && changed.originalValue) {
304
+ promises.push(
305
+ // First load the original parent itself
306
+ changed.originalEntity.then((oldParent) => {
307
+ // And then resolve its fieldName=parentsRecursive
308
+ const oldParentRecursiveParents = oldParent[fieldName];
309
+ return oldParentRecursiveParents.load().then((parents) => {
310
+ return [oldParent, ...parents];
311
+ });
312
+ }));
313
+ }
314
+ }
262
315
  }
263
316
  const nextLevel = await Promise.all(promises);
264
317
  // Make a new set so that we dedupe as we go
@@ -318,6 +371,9 @@ function convertToLoadHint(meta, hint, allowCustomKeys = false) {
318
371
  if (p instanceof RecursiveCollection_1.RecursiveParentsCollectionImpl) {
319
372
  (0, utils_1.mergeNormalizedHints)(loadHint, { [p.fieldName]: convertToLoadHint(meta, subHint, allowCustomKeys) });
320
373
  }
374
+ else if (p instanceof RecursiveCollection_1.RecursiveChildrenCollectionImpl) {
375
+ (0, utils_1.mergeNormalizedHints)(loadHint, { [p.fieldName]: convertToLoadHint(meta, subHint, allowCustomKeys) });
376
+ }
321
377
  else if (p && p.reactiveHint) {
322
378
  (0, utils_1.mergeNormalizedHints)(loadHint, convertToLoadHint(meta, p.reactiveHint, allowCustomKeys));
323
379
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reactiveHints.js","sourceRoot":"","sources":["../src/reactiveHints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reactiveHints.js","sourceRoot":"","sources":["../src/reactiveHints.ts"],"names":[],"mappings":";;AA6JA,kDAqDC;AA6ND,8CAuEC;AAGD,8CAoEC;AAyCD,gCAEC;AAED,8DAGC;AAGD,kEAUC;AAznBD,mDAAmF;AACnF,qDAU0B;AAE1B,2CAAiD;AACjD,qCAA6C;AAC7C,mDAAgD;AAEhD,qDAA2F;AAC3F,2CAcqB;AAErB,+DAAgE;AAChE,yEAAkH;AAElH,mCAAoE;AA6GpE;;;;;;;;;GASG;AACH,SAAgB,mBAAmB,CACjC,QAA2C,EAC3C,UAA6C,EAC7C,IAAqB,EACrB,iBAA0B,EAC1B,2BAA0E,EAC1E,UAAmB,IAAI;IAEvB,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,UAAU,CAAC,CAAC;IACrC,+FAA+F;IAC/F,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,cAAc,GAAqB,EAAE,CAAC;IAE5C,2FAA2F;IAC3F,gGAAgG;IAChG,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,2BAA2B,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,yHAAyH;IACzH,MAAM,cAAc,GAAqB,MAAM,CAAC,OAAO,CAAC,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,EAAE;QACjH,OAAO,cAAc,CACnB,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,IAAI;QACJ,oGAAoG;QACpG,MAAM,EACN,cAAc,EACd,cAAc,EACd,cAAc,EAAE,oDAAoD;QACpE,OAAO,CACR,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAqB,EAAE,CAAC;IACvC,sGAAsG;IACtG,wFAAwF;IACxF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,IAAI,2BAA2B,KAAK,iBAAiB,EAAE,CAAC;QACtF,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,mFAAmF;IACnF,6CAA6C;IAC7C,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,cAAc,CACrB,QAA6C,EAC7C,UAA+C,EAC/C,IAAS,EACT,IAAoB,EACpB,MAAgB,EAChB,cAAwB,EACxB,cAAgC,EAChC,cAAsB,EACtB,OAAY;IAEZ,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,yBAAQ,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,yBAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC;IACrD,IAAI,KAAK,EAAE,CAAC;QACV,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,mEAAmE;gBACnE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;gBACxC,mFAAmF;gBACnF,2EAA2E;gBAC3E,uCAAuC;gBACvC,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAC7D,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3C,MAAM,IAAI,KAAK,CACb,mBAAmB,QAAQ,CAAC,IAAI,wEAAwE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAC/H,CAAC;gBACJ,CAAC;gBACD,OAAO,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,CACxF,UAAU,CAAC,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAClD,CAAC;YACJ,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC9B,sFAAsF;gBACtF,iEAAiE;gBACjE,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACvC,OAAO,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,CACnG,UAAU,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CACjD,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;YACD,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,4GAA4G;gBAC5G,0GAA0G;gBAC1G,yGAAyG;gBACzG,sDAAsD;gBACtD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC7B,MAAM,cAAc,GAAG,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC7D,OAAO,mBAAmB,CACxB,QAAQ,EACR,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,EAC1B,OAAO;gBACP,8FAA8F;gBAC9F,wDAAwD;gBACxD,SAAS,EACT,KAAK,EACL,KAAK,CACN,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;YACpC,CAAC;YACD,KAAK,KAAK,CAAC;YACX,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC;gBACxF,MAAM,cAAc,GAAG,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC7D,8FAA8F;gBAC9F,OAAO,mBAAmB,CACxB,QAAQ,EACR,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,EAC1B,OAAO;gBACP,kFAAkF;gBAClF,yFAAyF;gBACzF,KAAK,CAAC,cAAc;gBACpB,8BAA8B;gBAC9B,0DAA0D;gBAC1D,qFAAqF;gBACrF,6DAA6D;gBAC7D,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,EAC3E,KAAK,CACN,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;YACpC,CAAC;YACD,KAAK,YAAY,CAAC;YAClB,KAAK,WAAW,CAAC;YACjB,KAAK,MAAM;gBACT,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClB,OAAO,EAAE,CAAC;YACZ;gBACE,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,CAAC,IAAI,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,qGAAqG;QACrG,6FAA6F;QAC7F,EAAE;QACF,mGAAmG;QACnG,uGAAuG;QACvG,MAAM,CAAC,GAAG,IAAA,6BAAa,EAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,6BAAiB,EAAE,CAAC;YACnC,2GAA2G;YAC3G,6GAA6G;YAC7G,qBAAqB;YACrB,IAAI,UAAU;gBAAE,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CACb,iBAAiB,GAAG,wCAAwC,QAAQ,CAAC,IAAI,YAAY,IAAI,CAAC,SAAS,CACjG,IAAI,CACL,+CAA+C,CACjD,CAAC;YACJ,CAAC;YACD,OAAO,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3F,CAAC;aAAM,IAAI,CAAC,YAAY,mCAAkB,EAAE,CAAC;YAC3C,yGAAyG;YACzG,kBAAkB;YAClB,IAAI,UAAU;gBAAE,OAAO,EAAE,CAAC;YAC1B,OAAO,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3F,CAAC;aAAM,IAAI,CAAC,YAAY,oDAA8B,EAAE,CAAC;YACvD,6CAA6C;YAC7C,6DAA6D;YAC7D,oEAAoE;YACpE,0BAA0B;YAC1B,EAAE;YACF,mGAAmG;YACnG,mGAAmG;YACnG,oGAAoG;YACpG,+DAA+D;YAC/D,EAAE;YACF,iGAAiG;YACjG,kGAAkG;YAClG,8EAA8E;YAC9E,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;YAC3C,sGAAsG;YACtG,mDAAmD;YACnD,EAAE;YACF,0GAA0G;YAC1G,wGAAwG;YACxG,8GAA8G;YAC9G,sEAAsE;YACtE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3B,cAAc,CAAC,IAAI,CAAC;gBAClB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;gBACzC,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,CAAC,YAAY,CAAC;gBACtB,IAAI,EAAE,CAAC,cAAc,CAAC;aACvB,CAAC,CAAC;YACH,+GAA+G;YAC/G,OAAO,mBAAmB,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;QAC9G,CAAC;aAAM,IAAI,CAAC,YAAY,qDAA+B,EAAE,CAAC;YACxD,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;YAC3C,yCAAyC;YACzC,8DAA8D;YAC9D,mEAAmE;YACnE,yFAAyF;YACzF,EAAE;YACF,gGAAgG;YAChG,sFAAsF;YACtF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAmC,CAAC;YAChF,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3B,cAAc,CAAC,IAAI,CAAC;gBAClB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;gBACzC,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,cAAc;gBACtC,IAAI,EAAE,CAAC,cAAc,CAAC,EAAE,0EAA0E;aACnG,CAAC,CAAC;YACH,wGAAwG;YACxG,OAAO,mBAAmB,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;QAC9G,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,CAAC,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,IAAoB,EACpB,KAAoG;IAEpG,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACzE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,4FAA4F;QAC5F,MAAM,mBAAmB,GAAG,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC;QACjG,IAAI,CAAC,mBAAmB;YAAE,IAAA,YAAI,EAAC,YAAY,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;QACjG,OAAO,KAAK,CAAC,cAAc,CAAC;IAC9B,CAAC;IACD,4FAA4F;IAC5F,yFAAyF;IACzF,+EAA+E;IAC/E,MAAM,eAAe,GAAG,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC;IACnD,yFAAyF;IACzF,+FAA+F;IAC/F,yCAAyC;IACzC,MAAM,yBAAyB,GAC7B,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,IAAK,UAAkB,CAAC,aAAa,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;IAC1G,OAAO,eAAe,IAAI,yBAAyB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;AACtH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACI,KAAK,UAAU,iBAAiB,CACrC,YAAoB,EACpB,QAAkB,EAClB,WAAqB;IAErB,yCAAyC;IACzC,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IAC/B,gDAAgD;IAChD,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QAC5B,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,0DAA0D;QAC1D,KAAK,MAAM,CAAC,IAAI,OAAmB,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9B,yGAAyG;YACzG,uGAAuG;YACvG,4GAA4G;YAC5G,mCAAmC;YACnC,EAAE;YACF,wGAAwG;YACxG,uGAAuG;YACvG,gHAAgH;YAChH,2GAA2G;YAC3G,yDAAyD;YACzD,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,qJAAqJ;YACrJ,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YAC3E,sCAAsC;YACtC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACnC,6FAA6F;YAC7F,4FAA4F;YAC5F,sBAAsB;YACtB,MAAM,SAAS,GAAG,IAAA,4BAAW,EAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;YACzD,MAAM,WAAW,GAAG,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,MAAM,CAAC;YAChE,MAAM,YAAY,GAAG,SAAS,KAAK,KAAK,CAAC;YACzC,MAAM,OAAO,GAAG,IAAA,0BAAiB,EAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAsB,CAAC,CAAC,CAAC,SAAS,CAAC;YACzG,uEAAuE;YACvE,IAAI,WAAW,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC1E,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAE,OAAqC,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;YACtG,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS,CAAmC,CAAC;gBAC3D,MAAM,QAAQ,GAAG,IAAA,gCAAgB,EAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC/D,+CAA+C;gBAC/C,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,0BAA0B;YAC1B,IAAI,QAAQ,YAAY,oDAA8B,EAAE,CAAC;gBACvD,MAAM,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;gBAClC,MAAM,OAAO,GAAG,IAAA,0BAAiB,EAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAsB,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC/G,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;oBAC3D,QAAQ,CAAC,IAAI;oBACX,wCAAwC;oBACvC,OAAqC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;wBACvE,kDAAkD;wBAClD,MAAM,yBAAyB,GAAI,SAAiB,CAAC,SAAS,CAAC,CAAC;wBAChE,OAAO,yBAAyB,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,OAAY,EAAE,EAAE;4BAC5D,OAAO,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,CAAC;wBACjC,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CACH,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,4CAA4C;QAC5C,OAAO,GAAG,IAAA,qBAAa,EAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACtB,CAAC;AAED,8DAA8D;AAC9D,SAAgB,iBAAiB,CAC/B,IAAoB,EACpB,IAAqB,EACrB,eAAe,GAAG,KAAK;IAEvB,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,oFAAoF;IACpF,qDAAqD;IACrD,KAAK,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC5E,IAAI,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,yBAAQ,EAAE,EAAE,CAAC,CAAC;QAC/C,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAEhC,kEAAkE;QAClE,gEAAgE;QAChE,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,GAAG,CAAC,CAAC;YACnF,IAAI,SAAS,EAAE,CAAC;gBACd,KAAK,GAAG,SAAS,CAAC;gBAClB,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,KAAK,CAAC;gBACX,KAAK,KAAK,CAAC;gBACX,KAAK,KAAK,CAAC;gBACX,KAAK,KAAK;oBACR,IAAA,4BAAoB,EAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;oBAC9G,MAAM;gBACR,KAAK,MAAM;oBACT,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;wBACpC,8DAA8D;wBAC9D,IAAA,4BAAoB,EAAC,QAAQ,EAAE;4BAC7B,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG;4BACnF,yCAAyC;4BACzC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAC3E,CACF;yBACF,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM;gBACR,KAAK,WAAW,CAAC;gBACjB,KAAK,MAAM;oBACT,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;wBAC9B,IAAA,4BAAoB,EAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;oBAChD,CAAC;oBACD,SAAS;gBACX,KAAK,YAAY;oBACf,SAAS;gBACX;oBACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,IAAA,6BAAa,EAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,YAAY,oDAA8B,EAAE,CAAC;gBAChD,IAAA,4BAAoB,EAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;YACvG,CAAC;iBAAM,IAAI,CAAC,YAAY,qDAA+B,EAAE,CAAC;gBACxD,IAAA,4BAAoB,EAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;YACvG,CAAC;iBAAM,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;gBAC/B,IAAA,4BAAoB,EAAC,QAAQ,EAAE,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;YAC3F,CAAC;iBAAM,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC5B,IAAA,YAAI,EAAC,4BAA4B,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAe,CAAC;AACzB,CAAC;AAaD,SAAS,oBAAoB,CAAC,WAAuC,EAAE,OAA2B;IAChG,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACjC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YAC3D,CAAC;iBAAM,IAAI,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;gBACtD,OAAO,MAAM,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,yDAAyD;AACzD,SAAS,eAAe,CAAC,MAAc,EAAE,QAAgB;IACvD,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,MAAM,CAAC,CAAC;IACjC,sCAAsC;IACtC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACxC,kFAAkF;IAClF,kFAAkF;IAClF,KAAK,MAAM,KAAK,IAAI,IAAA,4BAAW,EAAC,IAAA,8BAAkB,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC9D,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;IAC3C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,UAAU,CAAC,GAAW;IACpC,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,SAAgB,yBAAyB,CAAC,GAAW;IACnD,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,8FAA8F;AAC9F,SAAgB,2BAA2B,CAAC,MAAc,EAAE,GAAW;IACrE,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC;QAC3D,kGAAkG;QAClG,MAAM,YAAY,GAAG,IAAA,oCAAmB,EAAC,IAAA,4BAAW,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QACrG,IAAI,CAAC,YAAY;YAAE,OAAO,SAAS,CAAC;QACpC,OAAQ,MAAc,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,OAAQ,MAAc,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,YAAoB;IACtC,OAAO,CAAC,EAAE,EAAE,EAAE;QACZ,gGAAgG;QAChG,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACrC,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,IAAS;IAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;QACpF,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,16 +1,11 @@
1
- import { Collection, Entity, EntityMetadata, IdOf } from "../";
1
+ import { Collection, Entity, EntityMetadata, IdOf, ManyToManyField } from "../";
2
2
  import { AbstractRelationImpl } from "./AbstractRelationImpl";
3
3
  import { RelationT, RelationU } from "./Relation";
4
4
  /** An alias for creating `ManyToManyCollections`s. */
5
- export declare function hasManyToMany<T extends Entity, U extends Entity>(joinTableName: string, columnName: string, otherFieldName: keyof U & string, otherColumnName: string): Collection<T, U>;
5
+ export declare function hasManyToMany<T extends Entity, U extends Entity>(): Collection<T, U>;
6
6
  export declare class ManyToManyCollection<T extends Entity, U extends Entity> extends AbstractRelationImpl<T, U[]> implements Collection<T, U> {
7
7
  #private;
8
- joinTableName: string;
9
- fieldName: keyof T & string;
10
- columnName: string;
11
- otherFieldName: keyof U & string;
12
- otherColumnName: string;
13
- constructor(joinTableName: string, entity: T, fieldName: keyof T & string, columnName: string, otherMeta: EntityMetadata, otherFieldName: keyof U & string, otherColumnName: string);
8
+ constructor(entity: T, field: ManyToManyField);
14
9
  /** Removes pending-hard-delete or soft-deleted entities, unless explicitly asked for. */
15
10
  private filterDeleted;
16
11
  load(opts?: {
@@ -36,6 +31,11 @@ export declare class ManyToManyCollection<T extends Entity, U extends Entity> ex
36
31
  private maybeApplyAddedAndRemovedBeforeLoaded;
37
32
  get meta(): EntityMetadata;
38
33
  get otherMeta(): EntityMetadata;
34
+ get joinTableName(): string;
35
+ get fieldName(): string;
36
+ get otherFieldName(): string & keyof U;
37
+ get columnName(): string;
38
+ get otherColumnName(): string;
39
39
  get hasBeenSet(): boolean;
40
40
  toString(): string;
41
41
  [RelationT]: T;
@@ -1 +1 @@
1
- {"version":3,"file":"ManyToManyCollection.d.ts","sourceRoot":"","sources":["../../src/relations/ManyToManyCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EAEV,MAAM,EACN,cAAc,EAId,IAAI,EAGL,MAAM,KAAK,CAAC;AAKb,OAAO,EAAE,oBAAoB,EAAmB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAElD,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAC9D,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,CAAC,GAAG,MAAM,EAChC,eAAe,EAAE,MAAM,GACtB,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAclB;AAED,qBAAa,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAClE,SAAQ,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CACnC,YAAW,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;;IASlB,aAAa,EAAE,MAAM;IAOrB,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM;IAC3B,UAAU,EAAE,MAAM;IAElB,cAAc,EAAE,MAAM,CAAC,GAAG,MAAM;IAChC,eAAe,EAAE,MAAM;gBAXvB,aAAa,EAAE,MAAM,EAM5B,MAAM,EAAE,CAAC,EACF,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,EAC3B,UAAU,EAAE,MAAM,EACzB,SAAS,EAAE,cAAc,EAClB,cAAc,EAAE,MAAM,CAAC,GAAG,MAAM,EAChC,eAAe,EAAE,MAAM;IAShC,yFAAyF;IACzF,OAAO,CAAC,aAAa;IAMf,IAAI,CAAC,IAAI,GAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAgB5F,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAqBzC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB1C,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,UAAQ,GAAG,IAAI;IAiBvC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,UAAQ,GAAG,IAAI;IAgB1C,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,OAAO,IAAI,IAAI;IAKf,MAAM,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI;IAaxE,OAAO,CAAC,KAAK;IASb,IAAI,cAAc,IAAI,CAAC,EAAE,CAExB;IAED,IAAI,GAAG,IAAI,CAAC,EAAE,CAEb;IAED,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,IAAI;IAkB/B,SAAS,IAAI,IAAI;IAYjB,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI;IAK9B,kBAAkB;IAMZ,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAW7C,OAAO,CAAC,qCAAqC;IAqB7C,IAAI,IAAI,IAAI,cAAc,CAEzB;IAED,IAAI,SAAS,IAAI,cAAc,CAE9B;IAMD,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,QAAQ,IAAI,MAAM;IASlB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAS;IACvB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAS;CACxB"}
1
+ {"version":3,"file":"ManyToManyCollection.d.ts","sourceRoot":"","sources":["../../src/relations/ManyToManyCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EAEV,MAAM,EACN,cAAc,EAId,IAAI,EACJ,eAAe,EAEhB,MAAM,KAAK,CAAC;AAKb,OAAO,EAAE,oBAAoB,EAAmB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAElD,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,KAAK,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAKpF;AAED,qBAAa,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAClE,SAAQ,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CACnC,YAAW,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;;gBAaf,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe;IAQ7C,yFAAyF;IACzF,OAAO,CAAC,aAAa;IAMf,IAAI,CAAC,IAAI,GAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAgB5F,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAqBzC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB1C,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,UAAQ,GAAG,IAAI;IAiBvC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,UAAQ,GAAG,IAAI;IAgB1C,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,OAAO,IAAI,IAAI;IAKf,MAAM,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI;IAaxE,OAAO,CAAC,KAAK;IASb,IAAI,cAAc,IAAI,CAAC,EAAE,CAExB;IAED,IAAI,GAAG,IAAI,CAAC,EAAE,CAEb;IAED,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,IAAI;IAkB/B,SAAS,IAAI,IAAI;IAYjB,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI;IAK9B,kBAAkB;IAMZ,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAW7C,OAAO,CAAC,qCAAqC;IAqB7C,IAAI,IAAI,IAAI,cAAc,CAEzB;IAED,IAAI,SAAS,IAAI,cAAc,CAE9B;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,cAAc,IAAI,MAAM,GAAG,MAAM,CAAC,CAErC;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAMD,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,QAAQ,IAAI,MAAM;IASlB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAS;IACvB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAS;CACxB"}
@@ -10,38 +10,26 @@ const utils_1 = require("../utils");
10
10
  const AbstractRelationImpl_1 = require("./AbstractRelationImpl");
11
11
  const Relation_1 = require("./Relation");
12
12
  /** An alias for creating `ManyToManyCollections`s. */
13
- function hasManyToMany(joinTableName, columnName, otherFieldName, otherColumnName) {
14
- let otherMeta;
13
+ function hasManyToMany() {
15
14
  return (0, newEntity_1.lazyField)((entity, fieldName) => {
16
- otherMeta ??= (0, newEntity_1.resolveOtherMeta)(entity, fieldName);
17
- return new ManyToManyCollection(joinTableName, entity, fieldName, columnName, otherMeta, otherFieldName, otherColumnName);
15
+ const m2m = (0, __1.getMetadata)(entity).allFields[fieldName];
16
+ return new ManyToManyCollection(entity, m2m);
18
17
  });
19
18
  }
20
19
  class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
21
- joinTableName;
22
- fieldName;
23
- columnName;
24
- otherFieldName;
25
- otherColumnName;
26
- #fieldName;
20
+ #field;
27
21
  #loaded;
28
22
  #addedBeforeLoaded;
29
23
  #removedBeforeLoaded;
30
24
  #hasBeenSet = false;
31
- constructor(joinTableName,
32
25
  // I.e. when entity = Book:
33
26
  // fieldName == tags, because it's our collection to tags
34
27
  // columnName = book_id, what we use as the `where book_id = us` to find our join table rows
35
28
  // otherFieldName = books, how tags points to us
36
29
  // otherColumnName = tag_id, how the other side finds its join table rows
37
- entity, fieldName, columnName, otherMeta, otherFieldName, otherColumnName) {
30
+ constructor(entity, field) {
38
31
  super(entity);
39
- this.joinTableName = joinTableName;
40
- this.fieldName = fieldName;
41
- this.columnName = columnName;
42
- this.otherFieldName = otherFieldName;
43
- this.otherColumnName = otherColumnName;
44
- this.#fieldName = fieldName;
32
+ this.#field = field;
45
33
  if ((0, __1.getInstanceData)(entity).isOrWasNew) {
46
34
  this.#loaded = [];
47
35
  }
@@ -250,10 +238,25 @@ class ManyToManyCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
250
238
  return (0, __1.getMetadata)(this.entity);
251
239
  }
252
240
  get otherMeta() {
253
- return (0, __1.getMetadata)(this.entity).allFields[this.#fieldName].otherMetadata();
241
+ return (0, __1.getMetadata)(this.entity).allFields[this.fieldName].otherMetadata();
242
+ }
243
+ get joinTableName() {
244
+ return this.#field.joinTableName;
245
+ }
246
+ get fieldName() {
247
+ return this.#field.fieldName;
248
+ }
249
+ get otherFieldName() {
250
+ return this.#field.otherFieldName;
251
+ }
252
+ get columnName() {
253
+ return this.#field.columnNames[0];
254
+ }
255
+ get otherColumnName() {
256
+ return this.#field.columnNames[1];
254
257
  }
255
258
  get #isCascadeDelete() {
256
- return (0, AbstractRelationImpl_1.isCascadeDelete)(this, this.#fieldName);
259
+ return (0, AbstractRelationImpl_1.isCascadeDelete)(this, this.fieldName);
257
260
  }
258
261
  get hasBeenSet() {
259
262
  return this.#hasBeenSet;