joist-orm 1.61.1 → 1.63.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 (41) hide show
  1. package/build/src/EntityFilter.d.ts +1 -0
  2. package/build/src/EntityManager.d.ts +7 -3
  3. package/build/src/EntityManager.js +1 -1
  4. package/build/src/EntityManager.js.map +1 -1
  5. package/build/src/QueryBuilder.js +4 -102
  6. package/build/src/QueryBuilder.js.map +1 -1
  7. package/build/src/QueryParser.d.ts +15 -8
  8. package/build/src/QueryParser.js +17 -5
  9. package/build/src/QueryParser.js.map +1 -1
  10. package/build/src/dataloaders/lensDataLoader.d.ts +10 -0
  11. package/build/src/dataloaders/lensDataLoader.js +165 -0
  12. package/build/src/dataloaders/lensDataLoader.js.map +1 -0
  13. package/build/src/drivers/{driver.d.ts → Driver.d.ts} +6 -0
  14. package/build/src/drivers/{driver.js → Driver.js} +1 -1
  15. package/build/src/drivers/Driver.js.map +1 -0
  16. package/build/src/drivers/InMemoryDriver.d.ts +6 -1
  17. package/build/src/drivers/InMemoryDriver.js +3 -0
  18. package/build/src/drivers/InMemoryDriver.js.map +1 -1
  19. package/build/src/drivers/PostgresDriver.d.ts +6 -4
  20. package/build/src/drivers/PostgresDriver.js +7 -2
  21. package/build/src/drivers/PostgresDriver.js.map +1 -1
  22. package/build/src/drivers/buildKnexQuery.d.ts +17 -0
  23. package/build/src/drivers/buildKnexQuery.js +118 -0
  24. package/build/src/drivers/buildKnexQuery.js.map +1 -0
  25. package/build/src/drivers/index.d.ts +1 -1
  26. package/build/src/drivers/index.js +1 -1
  27. package/build/src/index.d.ts +4 -0
  28. package/build/src/index.js +3 -1
  29. package/build/src/index.js.map +1 -1
  30. package/build/src/loadLens.d.ts +8 -3
  31. package/build/src/loadLens.js +62 -1
  32. package/build/src/loadLens.js.map +1 -1
  33. package/build/src/relations/CustomReference.d.ts +1 -1
  34. package/build/src/relations/CustomReference.js.map +1 -1
  35. package/build/src/relations/hasManyThrough.js +1 -3
  36. package/build/src/relations/hasManyThrough.js.map +1 -1
  37. package/build/src/relations/hasOneThrough.js +1 -3
  38. package/build/src/relations/hasOneThrough.js.map +1 -1
  39. package/build/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +2 -2
  41. package/build/src/drivers/driver.js.map +0 -1
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.lensDataLoader = void 0;
7
+ const dataloader_1 = __importDefault(require("dataloader"));
8
+ const EntityMetadata_1 = require("../EntityMetadata");
9
+ const keys_1 = require("../keys");
10
+ const loadLens_1 = require("../loadLens");
11
+ const QueryBuilder_1 = require("../QueryBuilder");
12
+ const QueryParser_1 = require("../QueryParser");
13
+ const utils_1 = require("../utils");
14
+ /**
15
+ * Loads lens paths via SQL.
16
+ *
17
+ * I.e. instead of loading `author.load(a => a.books.reviews)` by pulling all
18
+ * Books into memory, we do a join from the Author to BookReviews.
19
+ */
20
+ function lensDataLoader(em, type, startIsArray, paths) {
21
+ // Batch lens loads by type + path to avoid N+1s
22
+ const key = `${type.name}:${paths.join("/")}`;
23
+ return (0, utils_1.getOrSet)(em.findLoaders, key, () => {
24
+ return new dataloader_1.default(async (sourceIds) => {
25
+ const aliases = {};
26
+ function getAlias(tableName) {
27
+ const abbrev = (0, QueryBuilder_1.abbreviation)(tableName);
28
+ const i = aliases[abbrev] || 0;
29
+ aliases[abbrev] = i + 1;
30
+ return i === 0 ? abbrev : `${abbrev}${i}`;
31
+ }
32
+ // br.load(br => br.book.author)
33
+ // select br.id as __source_id, a.*
34
+ // from authors a
35
+ // join books b ON b.author_id = a.id
36
+ // join book_reviews br ON br.book_id = br.id
37
+ // where br.id in (keys)
38
+ // source=BR, target=Author, fields=books,bookReviews
39
+ // a.load(a => a.books.reviews)
40
+ // select b.author_id as __source_id, br.*
41
+ // from book_reviews br
42
+ // join books b on b.id = br.book_id
43
+ // where b.author_id in (keys)
44
+ const source = (0, EntityMetadata_1.getMetadata)(type);
45
+ // Walk source -> paths -> the target, and return the target -> source fields
46
+ const [target, fields] = (0, loadLens_1.mapPathsToTarget)(source, paths);
47
+ let resultIsArray = startIsArray;
48
+ const alias = getAlias(target.tableName);
49
+ const selects = [`${alias}.*`];
50
+ const tables = [{ alias, join: "primary", table: target.tableName }];
51
+ (0, QueryParser_1.addTablePerClassJoinsAndClassTag)(selects, tables, target, alias, true);
52
+ const conditions = [];
53
+ function maybeAddNotSoftDeleted(other, alias) {
54
+ if (other.timestampFields.deletedAt) {
55
+ const column = other.allFields[other.timestampFields.deletedAt].serde?.columns[0].columnName;
56
+ conditions.push({ alias, column, cond: { kind: "is-null" } });
57
+ }
58
+ }
59
+ let lastAlias = alias;
60
+ fields.forEach(([, field], i) => {
61
+ const isLast = i === fields.length - 1;
62
+ switch (field.kind) {
63
+ case "o2m": {
64
+ // This is `Publisher.authors` and we want to join in the authors table,
65
+ // so get the `Author.publisher` field to know the column name
66
+ const other = field.otherMetadata();
67
+ const m2o = other.allFields[field.otherFieldName];
68
+ const alias = getAlias(other.tableName);
69
+ tables.push({
70
+ alias,
71
+ join: "inner",
72
+ table: other.tableName,
73
+ col1: `${alias}.${m2o.serde.columns[0].columnName}`,
74
+ col2: `${lastAlias}.id`,
75
+ });
76
+ maybeAddNotSoftDeleted(other, alias);
77
+ if (isLast) {
78
+ selects.push(`${alias}.id as __source_id`);
79
+ conditions.push({
80
+ alias,
81
+ column: "id",
82
+ cond: { kind: "in", value: (0, keys_1.deTagIds)(source, sourceIds) },
83
+ });
84
+ }
85
+ lastAlias = alias;
86
+ break;
87
+ }
88
+ case "m2o": {
89
+ // This is `Book.author` and we want to join in the authors table
90
+ const other = field.otherMetadata();
91
+ const alias = getAlias(other.tableName);
92
+ if (!isLast) {
93
+ tables.push({
94
+ alias,
95
+ join: "inner",
96
+ table: other.tableName,
97
+ col1: `${alias}.id`,
98
+ col2: `${lastAlias}.${field.serde.columns[0].columnName}`,
99
+ });
100
+ maybeAddNotSoftDeleted(other, alias);
101
+ }
102
+ else {
103
+ selects.push(`${lastAlias}.${field.serde.columns[0].columnName} as __source_id`);
104
+ conditions.push({
105
+ alias: lastAlias,
106
+ column: field.serde.columns[0].columnName,
107
+ cond: { kind: "in", value: (0, keys_1.deTagIds)(source, sourceIds) },
108
+ });
109
+ // Need to add filter for soft-deleted...
110
+ }
111
+ resultIsArray = true;
112
+ lastAlias = alias;
113
+ break;
114
+ }
115
+ case "m2m": {
116
+ // This is `Book.tags` and we want to join through the m2m table
117
+ const other = field.otherMetadata();
118
+ const alias = getAlias(other.tableName);
119
+ tables.push({
120
+ alias: `${alias}_m2m`,
121
+ join: "inner",
122
+ table: field.joinTableName,
123
+ col1: `${alias}_m2m.${field.columnNames[0]}`,
124
+ col2: `${lastAlias}.id`,
125
+ });
126
+ // If this is the last table, we could skip this join like we do for m2os
127
+ tables.push({
128
+ alias,
129
+ join: "inner",
130
+ table: other.tableName,
131
+ col1: `${alias}.id`,
132
+ col2: `${alias}_m2m.${field.columnNames[1]}`,
133
+ });
134
+ maybeAddNotSoftDeleted(other, alias);
135
+ if (isLast) {
136
+ selects.push(`${alias}.id as __source_id`);
137
+ conditions.push({ alias, column: "id", cond: { kind: "in", value: (0, keys_1.deTagIds)(source, sourceIds) } });
138
+ }
139
+ resultIsArray = true;
140
+ lastAlias = alias;
141
+ break;
142
+ }
143
+ default:
144
+ throw new Error("Unsupported field kind: " + field.kind);
145
+ }
146
+ });
147
+ // Get back `__source_id, target.*`
148
+ const parsed = { selects, tables, conditions };
149
+ const rows = await em.driver.executeFind(em, parsed, {});
150
+ // Group the target entities (i.e. BookReview) by the source id we reached them from.
151
+ const entitiesBySourceId = new Map([...(0, utils_1.groupBy)(rows, (row) => row["__source_id"]).entries()].map(([sourceId, rows]) => {
152
+ // We may technically re-hydrate the same entity twice if it was reached
153
+ // via multiple sources, but that should be fine/get deduped by hydrate.
154
+ return [(0, keys_1.tagId)(source, sourceId), rows.map((row) => em.hydrate(target.cstr, row))];
155
+ }));
156
+ // Re-order the output by the batched input
157
+ return sourceIds.map((id) => {
158
+ const result = entitiesBySourceId.get(id);
159
+ return resultIsArray ? [...new Set(result ?? [])] : result?.[0];
160
+ });
161
+ });
162
+ });
163
+ }
164
+ exports.lensDataLoader = lensDataLoader;
165
+ //# sourceMappingURL=lensDataLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lensDataLoader.js","sourceRoot":"","sources":["../../../src/dataloaders/lensDataLoader.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { Entity } from "../Entity";
3
3
  import { FilterAndSettings } from "../EntityFilter";
4
4
  import { EntityManager, MaybeAbstractEntityConstructor } from "../EntityManager";
5
5
  import { EntityMetadata } from "../EntityMetadata";
6
+ import { ParsedFindQuery } from "../QueryParser";
6
7
  import { ManyToManyCollection, ManyToManyLargeCollection, OneToManyCollection, OneToManyLargeCollection, OneToOneReferenceImpl } from "../relations";
7
8
  import { JoinRow } from "../relations/ManyToManyCollection";
8
9
  import { JoinRowTodo, Todo } from "../Todo";
@@ -21,6 +22,11 @@ export interface Driver {
21
22
  /** Batch loads o2o rows, for all entities in `untaggedIds`. */
22
23
  loadOneToOne<T extends Entity, U extends Entity>(em: EntityManager, reference: OneToOneReferenceImpl<T, U>, untaggedIds: readonly string[]): Promise<unknown[]>;
23
24
  find<T extends Entity>(em: EntityManager, type: MaybeAbstractEntityConstructor<T>, queries: readonly FilterAndSettings<T>[]): Promise<unknown[][]>;
25
+ /** Executes a low-level `ParsedFindQuery` against the database and returns the rows. */
26
+ executeFind(em: EntityManager, parsed: ParsedFindQuery, settings: {
27
+ limit?: number;
28
+ offset?: number;
29
+ }): Promise<any[]>;
24
30
  transaction<T>(em: EntityManager, fn: (txn: Knex.Transaction) => Promise<T>, isolationLevel?: "serializable"): Promise<T>;
25
31
  assignNewIds(em: EntityManager, todos: Record<string, Todo>): Promise<void>;
26
32
  flushEntities(em: EntityManager, todos: Record<string, Todo>): Promise<void>;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=driver.js.map
3
+ //# sourceMappingURL=Driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Driver.js","sourceRoot":"","sources":["../../../src/drivers/Driver.ts"],"names":[],"mappings":""}
@@ -3,10 +3,11 @@ import { Entity } from "../Entity";
3
3
  import { FilterAndSettings } from "../EntityFilter";
4
4
  import { EntityConstructor, EntityManager } from "../EntityManager";
5
5
  import { EntityMetadata } from "../EntityMetadata";
6
+ import { ParsedFindQuery } from "../QueryParser";
6
7
  import { ManyToManyCollection, OneToManyCollection, OneToOneReferenceImpl } from "../relations";
7
8
  import { JoinRow } from "../relations/ManyToManyCollection";
8
9
  import { JoinRowTodo, Todo } from "../Todo";
9
- import { Driver } from "./driver";
10
+ import { Driver } from "./Driver";
10
11
  export declare class InMemoryDriver implements Driver {
11
12
  private data;
12
13
  private onQuery;
@@ -17,6 +18,10 @@ export declare class InMemoryDriver implements Driver {
17
18
  delete(tableName: string, id: number): void;
18
19
  clear(): void;
19
20
  find<T extends Entity>(em: EntityManager, type: EntityConstructor<T>, queries: readonly FilterAndSettings<T>[]): Promise<unknown[][]>;
21
+ executeFind(em: EntityManager, parsed: ParsedFindQuery, settings: {
22
+ limit?: number;
23
+ offset?: number;
24
+ }): Promise<any[]>;
20
25
  assignNewIds(em: EntityManager, todos: Record<string, Todo>): Promise<void>;
21
26
  flushEntities(em: EntityManager, todos: Record<string, Todo>): Promise<void>;
22
27
  flushJoinTables(em: EntityManager, joinRows: Record<string, JoinRowTodo>): Promise<void>;
@@ -56,6 +56,9 @@ class InMemoryDriver {
56
56
  return ensureUnderLimit(sorted.slice(offset, offset + (limit ?? sorted.length)));
57
57
  });
58
58
  }
59
+ async executeFind(em, parsed, settings) {
60
+ throw new Error("Not implemented");
61
+ }
59
62
  async assignNewIds(em, todos) {
60
63
  // do our version of assign ids
61
64
  Object.entries(todos).forEach(([_, todo]) => {
@@ -1 +1 @@
1
- {"version":3,"file":"InMemoryDriver.js","sourceRoot":"","sources":["../../../src/drivers/InMemoryDriver.ts"],"names":[],"mappings":";;;AAGA,oDAAiF;AACjF,sDAAgE;AAChE,kCAA8G;AAC9G,gDAAqE;AAGrE,oCAAoC;AAEpC,oCAA2C;AAG3C,MAAa,cAAc;IACzB,wDAAwD;IAChD,IAAI,GAAwC,EAAE,CAAC;IACvD,iFAAiF;IACjF,qFAAqF;IACrF,mFAAmF;IACnF,uFAAuF;IACvF,sFAAsF;IACtF,EAAE;IACF,qFAAqF;IACrF,oFAAoF;IACpF,0EAA0E;IAClE,OAAO,CAAa;IAE5B,YAAY,OAAoB;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,SAAiB;QACtB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,SAAiB,EAAE,GAAQ;QAChC,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,8CAA8C;QAC9C,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,cAAc;IAClE,CAAC;IAED,MAAM,CAAC,SAAiB,EAAE,GAAQ;QAChC,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,WAAW,EAAE,GAAG,GAAG,EAAE,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,SAAiB,EAAE,EAAU;QAClC,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CACR,EAAiB,EACjB,IAA0B,EAC1B,OAAwC;QAExC,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC;YACpD,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YAC5E,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnG,OAAO,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAiB,EAAE,KAA2B;QAC/D,+BAA+B;QAC/B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE;YAC1C,IAAI,CAAC,OAAO;iBACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC;iBACjC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACb,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAChD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAA,kBAAW,EAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;YACrD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAiB,EAAE,KAA2B;QAChE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAE7B,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAEnC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE;YAC1C,wEAAwE;YACxE,oDAAoD;YACpD,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,uDAAuD;gBACvD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;gBACtC,MAAM,EAAE,GAAG,IAAA,cAAO,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC9C,MAAM,GAAG,GAAwB,EAAE,CAAC;gBACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;qBAChC,MAAM,CAAC,gBAAQ,CAAC;qBAChB,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAU,CAAC,CAAC;qBAC3D,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;oBACjB,+CAA+C;oBAC/C,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;gBACtD,CAAC,CAAC,CAAC;gBACL,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YACtD,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACzB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,MAAM,EAAE,GAAG,IAAA,cAAO,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC9C,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAiB,EAAE,QAAqC;QAC5E,KAAK,MAAM,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YACrF,+BAA+B;YAC/B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtB,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;YACD,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACtB,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,SAAS,EAAE,GAAG,GAAG,CAAC;gBAC3D,iFAAiF;gBACjF,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBACrC,MAAM,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAA,4BAAW,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;oBAC7E,SAAS,CAAC,GAAG,CAAC,GAAG,IAAA,kBAAW,EAAC,IAAI,EAAE,IAAA,gCAAyB,EAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAChF,CAAC,CAAC,CAAC;gBACH,8BAA8B;gBAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC3E,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC5C,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxE,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,EAAE;oBACb,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;oBACtC,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC,EAAY,CAAC;iBACjC;qBAAM;oBACL,GAAG,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;iBACtB;YACH,CAAC,CAAC,CAAC;YAEH,wFAAwF;YACxF,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,IAAA,iBAAS,EAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YAEpE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,EAAG,CAAC,CAAC,CAAC;aAC/D;YAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBACxB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;oBAC5D,IAAI;yBACD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;wBACd,MAAM,CAAC,GACL,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,IAAA,cAAO,EAAC,GAAG,CAAC,IAAI,EAAE,IAAA,gCAAyB,EAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAE,CAAC,CAAC;wBACzG,MAAM,CAAC,GACL,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;4BAChC,IAAA,cAAO,EAAC,GAAG,CAAC,SAAS,EAAE,IAAA,gCAAyB,EAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAE,CAAC,CAAC;wBACnF,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC,CAAC;yBACD,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9D,CAAC,CAAC,CAAC;aACJ;SACF;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CACR,EAAiB,EACjB,IAAuB,EACvB,WAA8B;QAE9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,EAAiB,EACjB,UAAsC,EACtC,IAAuB;QAEvB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,MAAM,GAAG,GAA6B,EAAE,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAA,qBAAc,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACzB,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,EAAiB,EACjB,UAAsC,EACtC,IAAuB;QAEvB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;QACvE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;QAC/E,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACzB,MAAM,IAAI,GAAG,GAAG,OAAO,IAAI,IAAA,YAAK,EAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,IAAI,IAAA,YAAK,EAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC3F,MAAM,IAAI,GAAG,GAAG,OAAO,IAAI,IAAA,YAAK,EAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,IAAI,IAAA,YAAK,EAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC3F,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,EAAiB,EACjB,UAAqC,EACrC,WAA8B;QAE9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,EAAiB,EACjB,UAAqC,EACrC,IAAuB;QAEvB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,oEAAoE;QACpE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACzB,MAAM,IAAI,GAAG,MAAM,IAAA,YAAK,EAAC,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,GAAG,GAAG,UAAU,CAAC,eAAe,IAAI,IAAA,YAAK,EAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;YACxG,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,EAAiB,EACjB,SAAsC,EACtC,WAA8B;QAE9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,WAAW,CACT,EAAiB,EACjB,EAAyC,EACzC,cAA+B;QAE/B,OAAO,EAAE,CAAC,SAAU,CAAC,CAAC;IACxB,CAAC;IAED,WAAW,CAAC,SAAiB;QAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;IACvC,CAAC;IAEO,MAAM,CAAC,SAAiB;QAC9B,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9D,CAAC;CACF;AA7PD,wCA6PC;AAED,oCAAoC;AACpC,SAAS,QAAQ,CAAC,CAAM,EAAE,CAAM;IAC9B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;QAC5B,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;KACpC;SAAM;QACL,OAAO,CAAC,KAAK,CAAC,CAAC;KAChB;AACH,CAAC;AAED,MAAM,GAAG,GAAG;IACV,EAAE,EAAE,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IACnC,GAAG,EAAE,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;IACrC,EAAE,EAAE,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IACnC,GAAG,EAAE,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;IACrC,IAAI,EAAE,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,KAAK,EAAE,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,OAAO,EAAE,CAAC,CAAS,EAAE,CAAW,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAC5D,CAAC;AAEF,SAAS,UAAU,CAAC,MAAsB,EAAE,IAAyB,EAAE,GAAQ,EAAE,KAAc;IAC7F,OAAO,MAAM,CAAC,OAAO,CAAC,KAAY,CAAC;SAChC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;SAC3C,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAA,YAAI,GAAE,CAAC;QAC/C,qCAAqC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAA,YAAI,GAAE,CAAC;QACtD,4DAA4D;QAC5D,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC;QACvF,QAAQ,KAAK,CAAC,IAAI,EAAE;YAClB,KAAK,YAAY,CAAC;YAClB,KAAK,WAAW,CAAC;YACjB,KAAK,MAAM;gBACT,IAAI,EAAE,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC;gBACvB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;oBACzB,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAE,KAAK,CAAC,cAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3D;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;oBACtC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,kBAAW,EAAC,IAAI,EAAE,CAAQ,CAAC,CAAC;iBACzC;gBACD,MAAM,MAAM,GAAG,IAAA,8BAAgB,EAAC,KAA8B,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnE,QAAQ,MAAM,CAAC,IAAI,EAAE;oBACnB,KAAK,IAAI;wBACP,OAAO,YAAY,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC3C,KAAK,IAAI;wBACP,OAAO,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBAClD,KAAK,IAAI;wBACP,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;oBACrD,KAAK,IAAI,CAAC;oBACV,KAAK,KAAK,CAAC;oBACX,KAAK,IAAI,CAAC;oBACV,KAAK,KAAK,CAAC;oBACX,KAAK,MAAM,CAAC;oBACZ,KAAK,OAAO,CAAC;oBACb,KAAK,SAAS;wBACZ,MAAM,CAAC,GAAG,YAAY,CAAC;wBACvB,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC3B,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBAC5B,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAClB;wBACE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;iBAClC;YACH,KAAK,KAAK;gBACR,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;gBACxC,MAAM,EAAE,GAAG,IAAA,+BAAiB,EAAC,KAAK,CAAC,CAAC;gBACpC,IAAI,CAAC,EAAE,EAAE;oBACP,OAAO;iBACR;gBACD,QAAQ,EAAE,CAAC,IAAI,EAAE;oBACf,KAAK,IAAI;wBACP,OAAO,YAAY,KAAK,EAAE,CAAC,KAAK,CAAC;oBACnC,KAAK,IAAI;wBACP,OAAO,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;oBAC1C,KAAK,IAAI;wBACP,OAAO,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;oBACzC,KAAK,MAAM;wBACT,IAAI,YAAY,KAAK,IAAI,EAAE;4BACzB,OAAO,KAAK,CAAC;yBACd;wBACD,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;wBACvE,OAAO,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;oBAC/D;wBACE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;iBAClC;YACH;gBACE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;SAClC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,IAAI,CAAC,MAAsB,EAAE,IAAyB,EAAE,OAAe,EAAE,CAAM,EAAE,CAAM;IAC9F,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAI,OAAe,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE;QACvC,6DAA6D;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAA,YAAI,GAAE,CAAC;QAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;YACxB,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzD,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SACjD;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;SAC5D;KACF;IACD,MAAM,IAAI,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAA,YAAI,GAAE,CAAC;IAChD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAChD,gDAAgD;IAChD,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AAC7C,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAe;IACvC,IAAI,IAAI,CAAC,MAAM,IAAI,2BAAW,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,2BAAW,OAAO,CAAC,CAAC;KACjE;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"InMemoryDriver.js","sourceRoot":"","sources":["../../../src/drivers/InMemoryDriver.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
1
  import { Knex } from "knex";
2
- import { Entity, EntityConstructor, EntityManager, EntityMetadata, FilterAndSettings, OneToManyCollection } from "../index";
2
+ import { Entity, EntityConstructor, EntityManager, EntityMetadata, FilterAndSettings, OneToManyCollection, ParsedFindQuery } from "../index";
3
3
  import { ManyToManyCollection, OneToOneReferenceImpl } from "../relations";
4
4
  import { JoinRow } from "../relations/ManyToManyCollection";
5
5
  import { JoinRowTodo, Todo } from "../Todo";
6
- import { Driver } from "./driver";
6
+ import { Driver } from "./Driver";
7
7
  import { IdAssigner } from "./IdAssigner";
8
- import QueryBuilder = Knex.QueryBuilder;
9
8
  export interface PostgresDriverOpts {
10
9
  idAssigner?: IdAssigner;
11
10
  }
@@ -34,11 +33,14 @@ export declare class PostgresDriver implements Driver {
34
33
  findOneToMany<T extends Entity, U extends Entity>(em: EntityManager, collection: OneToManyCollection<T, U>, keys: readonly string[]): Promise<U[]>;
35
34
  loadOneToOne<T extends Entity, U extends Entity>(em: EntityManager, reference: OneToOneReferenceImpl<T, U>, untaggedIds: readonly string[]): Promise<unknown[]>;
36
35
  find<T extends Entity>(em: EntityManager, type: EntityConstructor<T>, queries: FilterAndSettings<T>[]): Promise<unknown[][]>;
36
+ executeFind(em: EntityManager, parsed: ParsedFindQuery, settings: {
37
+ limit?: number;
38
+ offset?: number;
39
+ }): Promise<any[]>;
37
40
  transaction<T>(em: EntityManager, fn: (txn: Knex.Transaction) => Promise<T>, isolationLevel?: "serializable"): Promise<T>;
38
41
  assignNewIds(em: EntityManager, todos: Record<string, Todo>): Promise<void>;
39
42
  flushEntities(em: EntityManager, todos: Record<string, Todo>): Promise<void>;
40
43
  flushJoinTables(em: EntityManager, joinRows: Record<string, JoinRowTodo>): Promise<void>;
41
44
  private getMaybeInTxnKnex;
42
45
  }
43
- export declare function addTablePerClassJoinsAndClassTag(knex: Knex, meta: EntityMetadata<any>, q: QueryBuilder, mainAlias?: string): void;
44
46
  export declare function needsClassPerTableJoins(meta: EntityMetadata<any>): boolean;
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.needsClassPerTableJoins = exports.addTablePerClassJoinsAndClassTag = exports.PostgresDriver = void 0;
3
+ exports.needsClassPerTableJoins = exports.PostgresDriver = void 0;
4
4
  const findDataLoader_1 = require("../dataloaders/findDataLoader");
5
5
  const index_1 = require("../index");
6
6
  const utils_1 = require("../utils");
7
+ const buildKnexQuery_1 = require("./buildKnexQuery");
7
8
  const IdAssigner_1 = require("./IdAssigner");
8
9
  let lastNow = new Date();
9
10
  /**
@@ -182,6 +183,10 @@ class PostgresDriver {
182
183
  });
183
184
  return result;
184
185
  }
186
+ async executeFind(em, parsed, settings) {
187
+ const knex = this.getMaybeInTxnKnex(em);
188
+ return (0, buildKnexQuery_1.buildKnexQuery)(knex, parsed, settings);
189
+ }
185
190
  async transaction(em, fn, isolationLevel) {
186
191
  const knex = this.getMaybeInTxnKnex(em);
187
192
  const alreadyInTxn = "commit" in knex;
@@ -473,6 +478,7 @@ function groupEntitiesByTable(entities) {
473
478
  });
474
479
  return [...entitiesByType.entries()];
475
480
  }
481
+ // We should eventually delete this and have all callers use `ParsedFindQuery`
476
482
  function addTablePerClassJoinsAndClassTag(knex, meta, q, mainAlias = "b") {
477
483
  // When `.load(Publisher)` is called, join in sub-tables like `SmallPublisher` and `LargePublisher`
478
484
  meta.subTypes.forEach((st, i) => {
@@ -491,7 +497,6 @@ function addTablePerClassJoinsAndClassTag(knex, meta, q, mainAlias = "b") {
491
497
  q.select(knex.raw(`CASE ${meta.subTypes.map((st, i) => `WHEN s${i}.id IS NOT NULL THEN '${st.type}'`).join(" ")} ELSE '${meta.type}' END as __class`));
492
498
  }
493
499
  }
494
- exports.addTablePerClassJoinsAndClassTag = addTablePerClassJoinsAndClassTag;
495
500
  function needsClassPerTableJoins(meta) {
496
501
  return meta.subTypes.length > 0 || meta.baseTypes.length > 0;
497
502
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresDriver.js","sourceRoot":"","sources":["../../../src/drivers/PostgresDriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostgresDriver.js","sourceRoot":"","sources":["../../../src/drivers/PostgresDriver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Knex } from "knex";
2
+ import { ParsedFindQuery } from "../QueryParser";
3
+ import QueryBuilder = Knex.QueryBuilder;
4
+ /**
5
+ * Transforms `ParsedFindQuery` into a Knex query.
6
+ *
7
+ * In theory this should be implemented within each Driver, because it's generally
8
+ * a private API, but:
9
+ *
10
+ * a) Multiple drivers will likely be based on Knex, and
11
+ * b) We've already leaked the `QueryBuilder.ts` `buildQuery` API for letting Joist
12
+ * do the boilerplate joins/conditions, and then letting the user had more as needed.
13
+ */
14
+ export declare function buildKnexQuery(knex: Knex, parsed: ParsedFindQuery, settings: {
15
+ limit?: number;
16
+ offset?: number;
17
+ }): QueryBuilder<{}, unknown[]>;
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildKnexQuery = void 0;
4
+ const EntityGraphQLFilter_1 = require("../EntityGraphQLFilter");
5
+ const EntityManager_1 = require("../EntityManager");
6
+ const utils_1 = require("../utils");
7
+ /**
8
+ * Transforms `ParsedFindQuery` into a Knex query.
9
+ *
10
+ * In theory this should be implemented within each Driver, because it's generally
11
+ * a private API, but:
12
+ *
13
+ * a) Multiple drivers will likely be based on Knex, and
14
+ * b) We've already leaked the `QueryBuilder.ts` `buildQuery` API for letting Joist
15
+ * do the boilerplate joins/conditions, and then letting the user had more as needed.
16
+ */
17
+ function buildKnexQuery(knex, parsed, settings) {
18
+ const { limit, offset } = settings;
19
+ // If we're doing o2m joins, add a `DISTINCT` clause to avoid duplicates
20
+ const needsDistinct = parsed.tables.some((t) => t.join === "outer" && t.distinct !== false);
21
+ const primary = parsed.tables.find((t) => t.join === "primary");
22
+ let query = knex.from(`${primary.table} AS ${primary.alias}`);
23
+ parsed.selects.forEach((s, i) => {
24
+ const maybeDistinct = i === 0 && needsDistinct ? "distinct " : "";
25
+ query.select(knex.raw(`${maybeDistinct}${s}`));
26
+ });
27
+ parsed.tables.forEach((t) => {
28
+ switch (t.join) {
29
+ case "inner":
30
+ query.join(`${t.table} AS ${t.alias}`, t.col1, t.col2);
31
+ break;
32
+ case "outer":
33
+ query.leftOuterJoin(`${t.table} AS ${t.alias}`, t.col1, t.col2);
34
+ break;
35
+ case "primary":
36
+ // ignore
37
+ break;
38
+ default:
39
+ (0, utils_1.assertNever)(t);
40
+ }
41
+ });
42
+ parsed.conditions.forEach((c) => {
43
+ addColumnCondition(query, c);
44
+ });
45
+ parsed.complexConditions &&
46
+ parsed.complexConditions.forEach((c) => {
47
+ addComplexCondition(query, c);
48
+ });
49
+ parsed.orderBys &&
50
+ parsed.orderBys.forEach(({ alias, column, order }) => {
51
+ // If we're doing "select distinct" for o2m joins, then all order bys must be selects
52
+ if (needsDistinct) {
53
+ query.select(`${alias}.${column}`);
54
+ }
55
+ query.orderBy(`${alias}.${column}`, order);
56
+ });
57
+ // Even if they already added orders, add id as the last one to get deterministic output
58
+ query.orderBy(`${primary.alias}.id`);
59
+ query.limit(limit || EntityManager_1.entityLimit);
60
+ if (offset) {
61
+ query.offset(offset);
62
+ }
63
+ return query;
64
+ }
65
+ exports.buildKnexQuery = buildKnexQuery;
66
+ function addComplexCondition(query, complex) {
67
+ query.where((q) => {
68
+ const op = complex.op === "and" ? "andWhere" : "orWhere";
69
+ complex.conditions.forEach((c) => {
70
+ if ("op" in c) {
71
+ q[op]((q) => addComplexCondition(q, c));
72
+ }
73
+ else {
74
+ q[op]((q) => addColumnCondition(q, c));
75
+ }
76
+ });
77
+ });
78
+ }
79
+ function addColumnCondition(query, cc) {
80
+ const { alias, column, cond } = cc;
81
+ const columnName = `${alias}.${column}`;
82
+ switch (cond.kind) {
83
+ case "eq":
84
+ case "ne":
85
+ case "gte":
86
+ case "gt":
87
+ case "lte":
88
+ case "lt":
89
+ case "like":
90
+ case "ilike":
91
+ const fn = EntityGraphQLFilter_1.opToFn[cond.kind] ?? (0, utils_1.fail)(`Invalid operator ${cond.kind}`);
92
+ query.where(columnName, fn, cond.value);
93
+ break;
94
+ case "is-null":
95
+ query.whereNull(columnName);
96
+ break;
97
+ case "not-null":
98
+ query.whereNotNull(columnName);
99
+ break;
100
+ case "in":
101
+ query.whereIn(columnName, cond.value);
102
+ break;
103
+ case "nin":
104
+ query.whereNotIn(columnName, cond.value);
105
+ break;
106
+ case "@>":
107
+ query.where(columnName, "@>", cond.value);
108
+ break;
109
+ case "between":
110
+ const [min, max] = cond.value;
111
+ query.where(columnName, ">=", min);
112
+ query.where(columnName, "<=", max);
113
+ break;
114
+ default:
115
+ (0, utils_1.assertNever)(cond);
116
+ }
117
+ }
118
+ //# sourceMappingURL=buildKnexQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildKnexQuery.js","sourceRoot":"","sources":["../../../src/drivers/buildKnexQuery.ts"],"names":[],"mappings":"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"}