@typetron/framework 0.5.42 → 0.5.43
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.
- package/Database/Readme.md +4 -0
- package/build/Database/Drivers/DatabaseDriver.d.ts +2 -0
- package/build/Database/Drivers/DatabaseDriver.d.ts.map +1 -1
- package/build/Database/Drivers/DatabaseDriver.js +15 -0
- package/build/Database/Drivers/DatabaseDriver.js.map +1 -1
- package/build/Database/Drivers/SQL/Alter/index.d.ts +8 -0
- package/build/Database/Drivers/SQL/Alter/index.d.ts.map +1 -1
- package/build/Database/Drivers/SQL/Alter/index.js +20 -1
- package/build/Database/Drivers/SQL/Alter/index.js.map +1 -1
- package/build/Database/Drivers/SQL/Schema.d.ts +5 -0
- package/build/Database/Drivers/SQL/Schema.d.ts.map +1 -1
- package/build/Database/Drivers/SQL/Schema.js +20 -0
- package/build/Database/Drivers/SQL/Schema.js.map +1 -1
- package/build/Database/Drivers/SQLite/Schema.d.ts +2 -0
- package/build/Database/Drivers/SQLite/Schema.d.ts.map +1 -1
- package/build/Database/Drivers/SQLite/Schema.js +2 -0
- package/build/Database/Drivers/SQLite/Schema.js.map +1 -1
- package/package.json +1 -1
package/Database/Readme.md
CHANGED
|
@@ -41,6 +41,10 @@ Postgres notes:
|
|
|
41
41
|
synchronized.
|
|
42
42
|
- `limit` is not supported on `update` and `delete` queries and throws an error.
|
|
43
43
|
|
|
44
|
+
Schema synchronization on MySQL and Postgres adds a foreign key for each `BelongsTo` relation between synchronized entities, named
|
|
45
|
+
`<table>_<column>_foreign`. Existing rows must already match or synchronization fails, and deleting a referenced row fails until the rows
|
|
46
|
+
pointing to it are gone. SQLite tables get no foreign keys, and neither do `BelongsToMany` pivot tables.
|
|
47
|
+
|
|
44
48
|
## Queries and Entities
|
|
45
49
|
|
|
46
50
|
Start a query with `Query.table`, or extend `Entity` and decorate mapped properties. The following example defines an entity and exercises
|
|
@@ -23,6 +23,8 @@ export declare abstract class DatabaseDriver {
|
|
|
23
23
|
name: string;
|
|
24
24
|
}[]>;
|
|
25
25
|
tableExists(table: string): Promise<boolean>;
|
|
26
|
+
/** Names of the columns in `table` that have a foreign key */
|
|
27
|
+
tableForeignKeys(table: string): Promise<string[]>;
|
|
26
28
|
/**
|
|
27
29
|
* SQL condition matching `table_schema` to the connection's schema, with its bindings.
|
|
28
30
|
* Defaults to the SQL standard `current_schema()`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseDriver.d.ts","sourceRoot":"","sources":["../../../Database/Drivers/DatabaseDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAExE,UAAU,cAAc;IACpB,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;CACjC;AAED,8BAAsB,cAAc;IAEhC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAA;IAEnC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAE/B,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/D,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/C,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEtE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAEjE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAE5E,MAAM,IAAI,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAW7B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYlD;;;OAGG;IACH,SAAS,CAAC,aAAa,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IAI/C,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;CAC3E"}
|
|
1
|
+
{"version":3,"file":"DatabaseDriver.d.ts","sourceRoot":"","sources":["../../../Database/Drivers/DatabaseDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAExE,UAAU,cAAc;IACpB,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC/B,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;CACjC;AAED,8BAAsB,cAAc;IAEhC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAA;IAEnC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAE/B,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/D,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/C,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEtE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAEjE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAE5E,MAAM,IAAI,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAW7B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYlD,8DAA8D;IACxD,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAkBxD;;;OAGG;IACH,SAAS,CAAC,aAAa,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IAI/C,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;CAC3E"}
|
|
@@ -17,6 +17,21 @@ class DatabaseDriver {
|
|
|
17
17
|
and table_schema = ${schemaCondition}
|
|
18
18
|
`, [table, ...params]));
|
|
19
19
|
}
|
|
20
|
+
/** Names of the columns in `table` that have a foreign key */
|
|
21
|
+
async tableForeignKeys(table) {
|
|
22
|
+
const [schemaCondition, params] = this.currentSchema();
|
|
23
|
+
const keys = await this.get(`select k.column_name as name
|
|
24
|
+
from information_schema.table_constraints c
|
|
25
|
+
join information_schema.key_column_usage k
|
|
26
|
+
on k.constraint_name = c.constraint_name
|
|
27
|
+
and k.table_schema = c.table_schema
|
|
28
|
+
and k.table_name = c.table_name
|
|
29
|
+
where c.constraint_type = 'FOREIGN KEY'
|
|
30
|
+
and c.table_name = ?
|
|
31
|
+
and c.table_schema = ${schemaCondition}
|
|
32
|
+
`, [table, ...params]);
|
|
33
|
+
return keys.pluck('name');
|
|
34
|
+
}
|
|
20
35
|
/**
|
|
21
36
|
* SQL condition matching `table_schema` to the connection's schema, with its bindings.
|
|
22
37
|
* Defaults to the SQL standard `current_schema()`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseDriver.js","sourceRoot":"","sources":["../../../Database/Drivers/DatabaseDriver.ts"],"names":[],"mappings":";;;AAeA,MAAsB,cAAc;IAgBhC,MAAM;QACF,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACtD,OAAO,IAAI,CAAC,GAAG,CACX;;oCAEwB,eAAe;aACtC,EACD,MAAM,CACT,CAAA;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa;QAC3B,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACtD,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAC3B;;;oCAGwB,eAAe;aACtC,EACD,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,CACrB,CAAC,CAAA;IACN,CAAC;IAED;;;OAGG;IACO,aAAa;QACnB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;CAGJ;
|
|
1
|
+
{"version":3,"file":"DatabaseDriver.js","sourceRoot":"","sources":["../../../Database/Drivers/DatabaseDriver.ts"],"names":[],"mappings":";;;AAeA,MAAsB,cAAc;IAgBhC,MAAM;QACF,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACtD,OAAO,IAAI,CAAC,GAAG,CACX;;oCAEwB,eAAe;aACtC,EACD,MAAM,CACT,CAAA;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa;QAC3B,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACtD,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAC3B;;;oCAGwB,eAAe;aACtC,EACD,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,CACrB,CAAC,CAAA;IACN,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,gBAAgB,CAAC,KAAa;QAChC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACtD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CACvB;;;;;;;;sCAQ0B,eAAe;aACxC,EACD,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,CACrB,CAAA;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED;;;OAGG;IACO,aAAa;QACnB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;CAGJ;AAnED,wCAmEC"}
|
|
@@ -28,6 +28,14 @@ export declare class AddConstraint extends AlterOption {
|
|
|
28
28
|
constructor(column: ColumnDefinitionOptions, type: Constraints);
|
|
29
29
|
toSQL(): string;
|
|
30
30
|
}
|
|
31
|
+
export declare class AddForeignKey extends Expression {
|
|
32
|
+
table: string;
|
|
33
|
+
column: string;
|
|
34
|
+
relatedTable: string;
|
|
35
|
+
relatedColumn: string;
|
|
36
|
+
constructor(table: string, column: string, relatedTable: string, relatedColumn: string);
|
|
37
|
+
toSQL(): string;
|
|
38
|
+
}
|
|
31
39
|
export declare class DropColumn extends Expression {
|
|
32
40
|
column: string;
|
|
33
41
|
constructor(column: string);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../Database/Drivers/SQL/Alter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,IAAI,CAAA;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAoB,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AAEnF,oBAAY,WAAW;IACnB,UAAU,gBAAgB;IAC1B,UAAU,gBAAgB;CAC7B;AAED,8BAAsB,WAAY,SAAQ,UAAU;IAC7B,MAAM,EAAE,uBAAuB;gBAA/B,MAAM,EAAE,uBAAuB;IAElD,QAAQ,CAAC,KAAK,IAAI,MAAM;CAC3B;AAED,qBAAa,SAAU,SAAQ,WAAW;IACtC,SAAS,CAAC,gBAAgB,EAAE,2BAA2B,CAAmB;IAE1E,KAAK,IAAI,MAAM;CAGlB;AAED,qBAAa,eAAgB,SAAQ,WAAW;IAC5C,KAAK,IAAI,MAAM;CAIlB;AAED,qBAAa,WAAY,SAAQ,WAAW;IACxC,KAAK,IAAI,MAAM;CAIlB;AAED,qBAAa,aAAc,SAAQ,WAAW;IAC1C,KAAK,IAAI,MAAM;CAGlB;AAED,qBAAa,aAAc,SAAQ,WAAW;IAEU,IAAI,EAAE,WAAW;gBAAzD,MAAM,EAAE,uBAAuB,EAAS,IAAI,EAAE,WAAW;IAErE,KAAK,IAAI,MAAM;CAGlB;AAED,qBAAa,UAAW,SAAQ,UAAU;IACnB,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;IAEjC,KAAK,IAAI,MAAM;CAGlB;AAED,qBAAa,KAAM,SAAQ,UAAU;IACd,KAAK,EAAE,MAAM;IAAS,YAAY,EAAE,UAAU,EAAE;gBAAhD,KAAK,EAAE,MAAM,EAAS,YAAY,EAAE,UAAU,EAAE;IAEnE,KAAK;CAMR"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../Database/Drivers/SQL/Alter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,IAAI,CAAA;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAoB,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AAEnF,oBAAY,WAAW;IACnB,UAAU,gBAAgB;IAC1B,UAAU,gBAAgB;CAC7B;AAED,8BAAsB,WAAY,SAAQ,UAAU;IAC7B,MAAM,EAAE,uBAAuB;gBAA/B,MAAM,EAAE,uBAAuB;IAElD,QAAQ,CAAC,KAAK,IAAI,MAAM;CAC3B;AAED,qBAAa,SAAU,SAAQ,WAAW;IACtC,SAAS,CAAC,gBAAgB,EAAE,2BAA2B,CAAmB;IAE1E,KAAK,IAAI,MAAM;CAGlB;AAED,qBAAa,eAAgB,SAAQ,WAAW;IAC5C,KAAK,IAAI,MAAM;CAIlB;AAED,qBAAa,WAAY,SAAQ,WAAW;IACxC,KAAK,IAAI,MAAM;CAIlB;AAED,qBAAa,aAAc,SAAQ,WAAW;IAC1C,KAAK,IAAI,MAAM;CAGlB;AAED,qBAAa,aAAc,SAAQ,WAAW;IAEU,IAAI,EAAE,WAAW;gBAAzD,MAAM,EAAE,uBAAuB,EAAS,IAAI,EAAE,WAAW;IAErE,KAAK,IAAI,MAAM;CAGlB;AAED,qBAAa,aAAc,SAAQ,UAAU;IACtB,KAAK,EAAE,MAAM;IAAS,MAAM,EAAE,MAAM;IAAS,YAAY,EAAE,MAAM;IAAS,aAAa,EAAE,MAAM;gBAA/F,KAAK,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM,EAAS,YAAY,EAAE,MAAM,EAAS,aAAa,EAAE,MAAM;IAIlH,KAAK,IAAI,MAAM;CAKlB;AAED,qBAAa,UAAW,SAAQ,UAAU;IACnB,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;IAEjC,KAAK,IAAI,MAAM;CAGlB;AAED,qBAAa,KAAM,SAAQ,UAAU;IACd,KAAK,EAAE,MAAM;IAAS,YAAY,EAAE,UAAU,EAAE;gBAAhD,KAAK,EAAE,MAAM,EAAS,YAAY,EAAE,UAAU,EAAE;IAEnE,KAAK;CAMR"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Alter = exports.DropColumn = exports.AddConstraint = exports.AddPrimaryKey = exports.AddIdentity = exports.AlterColumnType = exports.AddColumn = exports.AlterOption = exports.Constraints = void 0;
|
|
3
|
+
exports.Alter = exports.DropColumn = exports.AddForeignKey = exports.AddConstraint = exports.AddPrimaryKey = exports.AddIdentity = exports.AlterColumnType = exports.AddColumn = exports.AlterOption = exports.Constraints = void 0;
|
|
4
4
|
const Helpers_1 = require("../../../Helpers");
|
|
5
5
|
const Expression_1 = require("../../../Expression");
|
|
6
6
|
const ColumnDefinition_1 = require("../ColumnDefinition");
|
|
@@ -55,6 +55,25 @@ class AddConstraint extends AlterOption {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
exports.AddConstraint = AddConstraint;
|
|
58
|
+
class AddForeignKey extends Expression_1.Expression {
|
|
59
|
+
table;
|
|
60
|
+
column;
|
|
61
|
+
relatedTable;
|
|
62
|
+
relatedColumn;
|
|
63
|
+
constructor(table, column, relatedTable, relatedColumn) {
|
|
64
|
+
super();
|
|
65
|
+
this.table = table;
|
|
66
|
+
this.column = column;
|
|
67
|
+
this.relatedTable = relatedTable;
|
|
68
|
+
this.relatedColumn = relatedColumn;
|
|
69
|
+
}
|
|
70
|
+
toSQL() {
|
|
71
|
+
const name = `${this.table}_${this.column}_foreign`;
|
|
72
|
+
return `ADD CONSTRAINT ${(0, Helpers_1.wrap)(name)} ${Constraints.ForeignKey} (${(0, Helpers_1.wrap)(this.column)})
|
|
73
|
+
REFERENCES ${(0, Helpers_1.wrap)(this.relatedTable)} (${(0, Helpers_1.wrap)(this.relatedColumn)})`;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.AddForeignKey = AddForeignKey;
|
|
58
77
|
class DropColumn extends Expression_1.Expression {
|
|
59
78
|
column;
|
|
60
79
|
constructor(column) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../Database/Drivers/SQL/Alter/index.ts"],"names":[],"mappings":";;;AACA,8CAAuC;AACvC,oDAAgD;AAChD,0DAAmF;AAEnF,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,yCAA0B,CAAA;IAC1B,yCAA0B,CAAA;AAC9B,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAED,MAAsB,WAAY,SAAQ,uBAAU;IAC7B;IAAnB,YAAmB,MAA+B;QAAG,KAAK,EAAE,CAAA;QAAzC,WAAM,GAAN,MAAM,CAAyB;IAAU,CAAC;CAGhE;AAJD,kCAIC;AAED,MAAa,SAAU,SAAQ,WAAW;IAC5B,gBAAgB,GAAgC,mCAAgB,CAAA;IAE1E,KAAK;QACD,OAAO,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAA;IAClE,CAAC;CACJ;AAND,8BAMC;AAED,MAAa,eAAgB,SAAQ,WAAW;IAC5C,KAAK;QACD,MAAM,MAAM,GAAG,IAAA,cAAI,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACrC,OAAO,gBAAgB,MAAM,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,UAAU,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IACjG,CAAC;CACJ;AALD,0CAKC;AAED,MAAa,WAAY,SAAQ,WAAW;IACxC,KAAK;QACD,MAAM,MAAM,GAAG,IAAA,cAAI,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACrC,OAAO,gBAAgB,MAAM,+BAA+B,MAAM,uCAAuC,CAAA;IAC7G,CAAC;CACJ;AALD,kCAKC;AAED,MAAa,aAAc,SAAQ,WAAW;IAC1C,KAAK;QACD,OAAO,oBAAoB,IAAA,cAAI,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA;IACxD,CAAC;CACJ;AAJD,sCAIC;AAED,MAAa,aAAc,SAAQ,WAAW;IAEU;IAApD,YAAY,MAA+B,EAAS,IAAiB;QAAG,KAAK,CAAC,MAAM,CAAC,CAAA;QAAjC,SAAI,GAAJ,IAAI,CAAa;IAAgB,CAAC;IAEtF,KAAK;QACD,OAAO,kBAAkB,IAAI,CAAC,IAAI,KAAK,IAAA,cAAI,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA;IACpE,CAAC;CACJ;AAPD,sCAOC;AAED,MAAa,UAAW,SAAQ,uBAAU;IACnB;IAAnB,YAAmB,MAAc;QAAG,KAAK,EAAE,CAAA;QAAxB,WAAM,GAAN,MAAM,CAAQ;IAAU,CAAC;IAE5C,KAAK;QACD,OAAO,eAAe,IAAA,cAAI,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAA;IAC7C,CAAC;CACJ;AAND,gCAMC;AAED,MAAa,KAAM,SAAQ,uBAAU;IACd;IAAsB;IAAzC,YAAmB,KAAa,EAAS,YAA0B;QAAG,KAAK,EAAE,CAAA;QAA1D,UAAK,GAAL,KAAK,CAAQ;QAAS,iBAAY,GAAZ,YAAY,CAAc;IAAU,CAAC;IAE9E,KAAK;QACD,OAAO;0BACW,IAAA,cAAI,EAAC,IAAI,CAAC,KAAK,CAAC;kBACxB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;SACrE,CAAA;IACL,CAAC;CACJ;AATD,sBASC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../Database/Drivers/SQL/Alter/index.ts"],"names":[],"mappings":";;;AACA,8CAAuC;AACvC,oDAAgD;AAChD,0DAAmF;AAEnF,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,yCAA0B,CAAA;IAC1B,yCAA0B,CAAA;AAC9B,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAED,MAAsB,WAAY,SAAQ,uBAAU;IAC7B;IAAnB,YAAmB,MAA+B;QAAG,KAAK,EAAE,CAAA;QAAzC,WAAM,GAAN,MAAM,CAAyB;IAAU,CAAC;CAGhE;AAJD,kCAIC;AAED,MAAa,SAAU,SAAQ,WAAW;IAC5B,gBAAgB,GAAgC,mCAAgB,CAAA;IAE1E,KAAK;QACD,OAAO,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAA;IAClE,CAAC;CACJ;AAND,8BAMC;AAED,MAAa,eAAgB,SAAQ,WAAW;IAC5C,KAAK;QACD,MAAM,MAAM,GAAG,IAAA,cAAI,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACrC,OAAO,gBAAgB,MAAM,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,UAAU,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IACjG,CAAC;CACJ;AALD,0CAKC;AAED,MAAa,WAAY,SAAQ,WAAW;IACxC,KAAK;QACD,MAAM,MAAM,GAAG,IAAA,cAAI,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACrC,OAAO,gBAAgB,MAAM,+BAA+B,MAAM,uCAAuC,CAAA;IAC7G,CAAC;CACJ;AALD,kCAKC;AAED,MAAa,aAAc,SAAQ,WAAW;IAC1C,KAAK;QACD,OAAO,oBAAoB,IAAA,cAAI,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA;IACxD,CAAC;CACJ;AAJD,sCAIC;AAED,MAAa,aAAc,SAAQ,WAAW;IAEU;IAApD,YAAY,MAA+B,EAAS,IAAiB;QAAG,KAAK,CAAC,MAAM,CAAC,CAAA;QAAjC,SAAI,GAAJ,IAAI,CAAa;IAAgB,CAAC;IAEtF,KAAK;QACD,OAAO,kBAAkB,IAAI,CAAC,IAAI,KAAK,IAAA,cAAI,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA;IACpE,CAAC;CACJ;AAPD,sCAOC;AAED,MAAa,aAAc,SAAQ,uBAAU;IACtB;IAAsB;IAAuB;IAA6B;IAA7F,YAAmB,KAAa,EAAS,MAAc,EAAS,YAAoB,EAAS,aAAqB;QAC9G,KAAK,EAAE,CAAA;QADQ,UAAK,GAAL,KAAK,CAAQ;QAAS,WAAM,GAAN,MAAM,CAAQ;QAAS,iBAAY,GAAZ,YAAY,CAAQ;QAAS,kBAAa,GAAb,aAAa,CAAQ;IAElH,CAAC;IAED,KAAK;QACD,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,UAAU,CAAA;QACnD,OAAO,kBAAkB,IAAA,cAAI,EAAC,IAAI,CAAC,IAAI,WAAW,CAAC,UAAU,KAAK,IAAA,cAAI,EAAC,IAAI,CAAC,MAAM,CAAC;6BAC9D,IAAA,cAAI,EAAC,IAAI,CAAC,YAAY,CAAC,KAAK,IAAA,cAAI,EAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAA;IAChF,CAAC;CACJ;AAVD,sCAUC;AAED,MAAa,UAAW,SAAQ,uBAAU;IACnB;IAAnB,YAAmB,MAAc;QAAG,KAAK,EAAE,CAAA;QAAxB,WAAM,GAAN,MAAM,CAAQ;IAAU,CAAC;IAE5C,KAAK;QACD,OAAO,eAAe,IAAA,cAAI,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAA;IAC7C,CAAC;CACJ;AAND,gCAMC;AAED,MAAa,KAAM,SAAQ,uBAAU;IACd;IAAsB;IAAzC,YAAmB,KAAa,EAAS,YAA0B;QAAG,KAAK,EAAE,CAAA;QAA1D,UAAK,GAAL,KAAK,CAAQ;QAAS,iBAAY,GAAZ,YAAY,CAAc;IAAU,CAAC;IAE9E,KAAK;QACD,OAAO;0BACW,IAAA,cAAI,EAAC,IAAI,CAAC,KAAK,CAAC;kBACxB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;SACrE,CAAA;IACL,CAAC;CACJ;AATD,sBASC"}
|
|
@@ -10,6 +10,11 @@ export declare abstract class Schema extends SchemaContract {
|
|
|
10
10
|
* Alters columns in place. Statements default to standard SQL; dialects override the ones they spell differently.
|
|
11
11
|
*/
|
|
12
12
|
protected syncTableColumns(table: string, columnsMetadata: ColumnField<Entity>[]): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Runs after every table exists, since a relation can point to a table created later.
|
|
15
|
+
* Relations to entities outside this synchronization are skipped.
|
|
16
|
+
*/
|
|
17
|
+
protected syncForeignKeys(entitiesMetadata: EntityMetadata<Entity, Entity>[]): Promise<void>;
|
|
13
18
|
protected createStatement(table: string, columns: ColumnDefinitionOptions[]): Expression;
|
|
14
19
|
protected addColumn(column: ColumnDefinitionOptions): Expression;
|
|
15
20
|
protected changeColumnType(column: ColumnDefinitionOptions): Expression;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/SQL/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAsB,WAAW,EAAE,MAAM,EAAqB,cAAc,EAAE,UAAU,EAAgB,MAAM,OAAO,CAAA;AAC5H,OAAO,EAAE,uBAAuB,EAAE,MAAM,GAAG,CAAA;AAI3C,8BAAsB,MAAO,SAAQ,cAAc;IAG/C,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAE3C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE;IAMpD,WAAW,CAAC,gBAAgB,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/SQL/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAsB,WAAW,EAAE,MAAM,EAAqB,cAAc,EAAE,UAAU,EAAgB,MAAM,OAAO,CAAA;AAC5H,OAAO,EAAE,uBAAuB,EAAE,MAAM,GAAG,CAAA;AAI3C,8BAAsB,MAAO,SAAQ,cAAc;IAG/C,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAE3C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE;IAMpD,WAAW,CAAC,gBAAgB,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;IAqCpE,gCAAgC,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,uBAAuB;IAWxF;;OAEG;cACa,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE;IA+CtF;;;OAGG;cACa,eAAe,CAAC,gBAAgB,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;IAsBlF,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE,GAAG,UAAU;IAIxF,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,uBAAuB,GAAG,UAAU;IAIhE,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,UAAU;IAIvE,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,UAAU;IAIvE,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,uBAAuB,GAAG,UAAU;IAIpE,OAAO,CAAC,kCAAkC;CAS7C"}
|
|
@@ -41,6 +41,7 @@ class Schema extends SchemaContract_1.SchemaContract {
|
|
|
41
41
|
}
|
|
42
42
|
await this.syncTableColumns(name, columns);
|
|
43
43
|
}
|
|
44
|
+
await this.syncForeignKeys(entitiesMetadata);
|
|
44
45
|
}
|
|
45
46
|
columnMetadataToColumnDefinition(metadata) {
|
|
46
47
|
return {
|
|
@@ -89,6 +90,25 @@ class Schema extends SchemaContract_1.SchemaContract {
|
|
|
89
90
|
await this.driver.run(new Alter_1.Alter(table, additionalAlters).toSQL());
|
|
90
91
|
}
|
|
91
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Runs after every table exists, since a relation can point to a table created later.
|
|
95
|
+
* Relations to entities outside this synchronization are skipped.
|
|
96
|
+
*/
|
|
97
|
+
async syncForeignKeys(entitiesMetadata) {
|
|
98
|
+
const tables = entitiesMetadata.pluck('table');
|
|
99
|
+
for (const metadata of entitiesMetadata) {
|
|
100
|
+
const table = metadata.table;
|
|
101
|
+
const relationships = Object.values(metadata.relationships).filter(field => tables.includes(field.related.getTable()));
|
|
102
|
+
if (relationships.empty()) {
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
const foreignKeys = await this.driver.tableForeignKeys(table);
|
|
106
|
+
const missing = relationships.filter(field => !foreignKeys.includes(field.column));
|
|
107
|
+
if (!missing.empty()) {
|
|
108
|
+
await this.driver.run(new Alter_1.Alter(table, missing.map(field => new Alter_1.AddForeignKey(table, field.column, field.related.getTable(), field.related.getPrimaryKey()))).toSQL());
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
92
112
|
createStatement(table, columns) {
|
|
93
113
|
return new Create_1.Create(table, columns);
|
|
94
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../../Database/Drivers/SQL/Schema.ts"],"names":[],"mappings":";;;AAAA,sDAAkD;AAClD,6BAA4H;AAE5H,qCAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../../Database/Drivers/SQL/Schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,8 @@ export declare class Schema extends BaseSchema {
|
|
|
6
6
|
protected typesMatches: Map<any, string>;
|
|
7
7
|
protected createStatement(table: string, columns: ColumnDefinitionOptions[]): Create;
|
|
8
8
|
protected syncTableColumns(table: string, columnsMetadata: ColumnField<Entity>[]): Promise<void>;
|
|
9
|
+
/** SQLite can't add a foreign key to an existing table */
|
|
10
|
+
protected syncForeignKeys(): Promise<void>;
|
|
9
11
|
/** Columns as SQLite declares them, so an unchanged table is left alone */
|
|
10
12
|
private columnsSignature;
|
|
11
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/SQLite/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAA;AAGhD,qBAAa,MAAO,SAAQ,UAAU;IAElC,SAAS,CAAC,YAAY,mBAAe;IAErC,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE;cAI3D,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE;IA6BtF,2EAA2E;IAC3E,OAAO,CAAC,gBAAgB;CAM3B"}
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/SQLite/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAA;AAGhD,qBAAa,MAAO,SAAQ,UAAU;IAElC,SAAS,CAAC,YAAY,mBAAe;IAErC,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE;cAI3D,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE;IA6BtF,0DAA0D;cAC1C,eAAe;IAE/B,2EAA2E;IAC3E,OAAO,CAAC,gBAAgB;CAM3B"}
|
|
@@ -37,6 +37,8 @@ class Schema extends Schema_1.Schema {
|
|
|
37
37
|
throw error;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
+
/** SQLite can't add a foreign key to an existing table */
|
|
41
|
+
async syncForeignKeys() { }
|
|
40
42
|
/** Columns as SQLite declares them, so an unchanged table is left alone */
|
|
41
43
|
columnsSignature(columns) {
|
|
42
44
|
return columns
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../../Database/Drivers/SQLite/Schema.ts"],"names":[],"mappings":";;;AACA,0CAAoD;AACpD,qCAAiC;AACjC,wBAAgC;AAEhC,2CAAoC;AAEpC,MAAa,MAAO,SAAQ,eAAU;IAExB,YAAY,GAAG,eAAY,CAAA;IAE3B,eAAe,CAAC,KAAa,EAAE,OAAkC;QACvE,OAAO,IAAI,eAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,KAAa,EAAE,eAAsC;QAClF,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,QAAQ,CAAC,CAAC,CAAA;QAChG,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QAE1D,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC;YACjG,OAAM;QACV,CAAC;QAED,mFAAmF;QACnF,kFAAkF;QAClF,MAAM,kBAAkB,GAAG,KAAK,GAAG,YAAY,CAAA;QAC/C,MAAM,UAAU,GAAG,IAAA,cAAI,EAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QAC1F,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QACxC,IAAI,CAAC;YACD,8DAA8D;YAC9D,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,kBAAkB,EAAE,CAAC,CAAA;YACnE,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAA;YACtD,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,kBAAkB,IAAI,UAAU;4CACrC,UAAU;0CACZ,KAAK,EAAE,CAAC,CAAA;YACtC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,KAAK,EAAE,CAAC,CAAA;YAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,kBAAkB,cAAc,KAAK,EAAE,CAAC,CAAA;YAC7E,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACjC,MAAM,KAAK,CAAA;QACf,CAAC;IACL,CAAC;IAED,2EAA2E;IACnE,gBAAgB,CAAC,OAAkC;QACvD,OAAO,OAAO;aACT,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;aAClG,IAAI,EAAE;aACN,IAAI,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC;CACJ;
|
|
1
|
+
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../../Database/Drivers/SQLite/Schema.ts"],"names":[],"mappings":";;;AACA,0CAAoD;AACpD,qCAAiC;AACjC,wBAAgC;AAEhC,2CAAoC;AAEpC,MAAa,MAAO,SAAQ,eAAU;IAExB,YAAY,GAAG,eAAY,CAAA;IAE3B,eAAe,CAAC,KAAa,EAAE,OAAkC;QACvE,OAAO,IAAI,eAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,KAAa,EAAE,eAAsC;QAClF,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,QAAQ,CAAC,CAAC,CAAA;QAChG,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QAE1D,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC;YACjG,OAAM;QACV,CAAC;QAED,mFAAmF;QACnF,kFAAkF;QAClF,MAAM,kBAAkB,GAAG,KAAK,GAAG,YAAY,CAAA;QAC/C,MAAM,UAAU,GAAG,IAAA,cAAI,EAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QAC1F,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QACxC,IAAI,CAAC;YACD,8DAA8D;YAC9D,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,kBAAkB,EAAE,CAAC,CAAA;YACnE,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAA;YACtD,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,kBAAkB,IAAI,UAAU;4CACrC,UAAU;0CACZ,KAAK,EAAE,CAAC,CAAA;YACtC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,KAAK,EAAE,CAAC,CAAA;YAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,kBAAkB,cAAc,KAAK,EAAE,CAAC,CAAA;YAC7E,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACjC,MAAM,KAAK,CAAA;QACf,CAAC;IACL,CAAC;IAED,0DAA0D;IAChD,KAAK,CAAC,eAAe,KAAI,CAAC;IAEpC,2EAA2E;IACnE,gBAAgB,CAAC,OAAkC;QACvD,OAAO,OAAO;aACT,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;aAClG,IAAI,EAAE;aACN,IAAI,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC;CACJ;AA/CD,wBA+CC"}
|