@entity-access/entity-access 1.0.164 → 1.0.166

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 (79) hide show
  1. package/dist/decorators/IColumn.d.ts +2 -0
  2. package/dist/decorators/IColumn.d.ts.map +1 -1
  3. package/dist/decorators/IForeignKeyConstraint.d.ts +12 -0
  4. package/dist/decorators/IForeignKeyConstraint.d.ts.map +1 -0
  5. package/dist/decorators/IForeignKeyConstraint.js +2 -0
  6. package/dist/decorators/IForeignKeyConstraint.js.map +1 -0
  7. package/dist/decorators/Relate.d.ts +5 -0
  8. package/dist/decorators/Relate.d.ts.map +1 -1
  9. package/dist/decorators/Relate.js +2 -1
  10. package/dist/decorators/Relate.js.map +1 -1
  11. package/dist/drivers/base/BaseDriver.d.ts +2 -1
  12. package/dist/drivers/base/BaseDriver.d.ts.map +1 -1
  13. package/dist/drivers/base/BaseDriver.js +60 -1
  14. package/dist/drivers/base/BaseDriver.js.map +1 -1
  15. package/dist/drivers/sql-server/ExpressionToSqlServer.d.ts +2 -1
  16. package/dist/drivers/sql-server/ExpressionToSqlServer.d.ts.map +1 -1
  17. package/dist/drivers/sql-server/ExpressionToSqlServer.js +35 -2
  18. package/dist/drivers/sql-server/ExpressionToSqlServer.js.map +1 -1
  19. package/dist/entity-query/EntityType.d.ts.map +1 -1
  20. package/dist/entity-query/EntityType.js +8 -0
  21. package/dist/entity-query/EntityType.js.map +1 -1
  22. package/dist/migrations/Migrations.d.ts +3 -1
  23. package/dist/migrations/Migrations.d.ts.map +1 -1
  24. package/dist/migrations/Migrations.js +17 -0
  25. package/dist/migrations/Migrations.js.map +1 -1
  26. package/dist/migrations/postgres/PostgresAutomaticMigrations.d.ts +2 -0
  27. package/dist/migrations/postgres/PostgresAutomaticMigrations.d.ts.map +1 -1
  28. package/dist/migrations/postgres/PostgresAutomaticMigrations.js +39 -0
  29. package/dist/migrations/postgres/PostgresAutomaticMigrations.js.map +1 -1
  30. package/dist/migrations/sql-server/SqlServerAutomaticMigrations.d.ts +2 -0
  31. package/dist/migrations/sql-server/SqlServerAutomaticMigrations.d.ts.map +1 -1
  32. package/dist/migrations/sql-server/SqlServerAutomaticMigrations.js +39 -0
  33. package/dist/migrations/sql-server/SqlServerAutomaticMigrations.js.map +1 -1
  34. package/dist/model/EntitySource.d.ts +2 -0
  35. package/dist/model/EntitySource.d.ts.map +1 -1
  36. package/dist/model/EntitySource.js +7 -0
  37. package/dist/model/EntitySource.js.map +1 -1
  38. package/dist/query/ast/ExpressionToSql.d.ts +2 -1
  39. package/dist/query/ast/ExpressionToSql.d.ts.map +1 -1
  40. package/dist/query/ast/ExpressionToSql.js +28 -1
  41. package/dist/query/ast/ExpressionToSql.js.map +1 -1
  42. package/dist/query/ast/Expressions.d.ts +8 -1
  43. package/dist/query/ast/Expressions.d.ts.map +1 -1
  44. package/dist/query/ast/Expressions.js +6 -0
  45. package/dist/query/ast/Expressions.js.map +1 -1
  46. package/dist/query/ast/Visitor.d.ts +2 -1
  47. package/dist/query/ast/Visitor.d.ts.map +1 -1
  48. package/dist/query/ast/Visitor.js +5 -0
  49. package/dist/query/ast/Visitor.js.map +1 -1
  50. package/dist/tests/model/ShoppingContext.d.ts.map +1 -1
  51. package/dist/tests/model/ShoppingContext.js +4 -1
  52. package/dist/tests/model/ShoppingContext.js.map +1 -1
  53. package/dist/tsconfig.tsbuildinfo +1 -1
  54. package/dist/workflows/WorkflowContext.d.ts +15 -12
  55. package/dist/workflows/WorkflowContext.d.ts.map +1 -1
  56. package/dist/workflows/WorkflowContext.js +6 -5
  57. package/dist/workflows/WorkflowContext.js.map +1 -1
  58. package/dist/workflows/WorkflowStorage.d.ts +7 -2
  59. package/dist/workflows/WorkflowStorage.d.ts.map +1 -1
  60. package/dist/workflows/WorkflowStorage.js +33 -20
  61. package/dist/workflows/WorkflowStorage.js.map +1 -1
  62. package/package.json +3 -3
  63. package/src/decorators/IColumn.ts +3 -0
  64. package/src/decorators/IForeignKeyConstraint.ts +19 -0
  65. package/src/decorators/Relate.ts +8 -1
  66. package/src/drivers/base/BaseDriver.ts +70 -1
  67. package/src/drivers/sql-server/ExpressionToSqlServer.ts +45 -3
  68. package/src/entity-query/EntityType.ts +9 -0
  69. package/src/migrations/Migrations.ts +25 -2
  70. package/src/migrations/postgres/PostgresAutomaticMigrations.ts +50 -0
  71. package/src/migrations/sql-server/SqlServerAutomaticMigrations.ts +47 -0
  72. package/src/model/EntitySource.ts +13 -1
  73. package/src/query/ast/ExpressionToSql.ts +37 -2
  74. package/src/query/ast/Expressions.ts +10 -1
  75. package/src/query/ast/Visitor.ts +6 -1
  76. package/src/tests/model/ShoppingContext.ts +4 -1
  77. package/src/workflows/WorkflowContext.ts +25 -10
  78. package/src/workflows/WorkflowStorage.ts +36 -23
  79. package/tsconfig.json +1 -1
@@ -1,5 +1,6 @@
1
1
  import EntityType from "../entity-query/EntityType.js";
2
2
  import { IClassOf } from "./IClassOf.js";
3
+ import { IForeignKeyConstraint } from "./IForeignKeyConstraint.js";
3
4
  import { ISqlType } from "./ISqlType.js";
4
5
  export interface IColumn {
5
6
  name?: string;
@@ -73,5 +74,6 @@ export interface IEntityRelation {
73
74
  relatedEntity?: EntityType;
74
75
  relatedRelation?: IEntityRelation;
75
76
  dotNotCreateIndex?: boolean;
77
+ foreignKeyConstraint?: IForeignKeyConstraint;
76
78
  }
77
79
  //# sourceMappingURL=IColumn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IColumn.d.ts","sourceRoot":"","sources":["../../src/decorators/IColumn.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,MAAM,WAAW,OAAO;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;;;OAGG;IACH,UAAU,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC;IACxC,SAAS,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACpC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEzB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,CAAC;IAEX;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAE;IAEhC;;OAEG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;IAE7B,QAAQ,CAAC,EAAE,GAAG,CAAC;IAEf,MAAM,CAAC,EAAE,GAAG,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAE5B,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,qBAAqB,CAAC,MAAA;IAGtB,UAAU,EAAE,MAAM,CAAC;IAEnB,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAEhC,uBAAuB,CAAC,EAAE,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,WAAW,EAAE,MAAM,CAAC;IAEpB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,aAAa,CAAC,EAAE,UAAU,CAAC;IAE3B,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAE/B"}
1
+ {"version":3,"file":"IColumn.d.ts","sourceRoot":"","sources":["../../src/decorators/IColumn.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,MAAM,WAAW,OAAO;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;;;OAGG;IACH,UAAU,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC;IACxC,SAAS,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACpC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEzB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,CAAC;IAEX;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAE;IAEhC;;OAEG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;IAE7B,QAAQ,CAAC,EAAE,GAAG,CAAC;IAEf,MAAM,CAAC,EAAE,GAAG,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAE5B,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,qBAAqB,CAAC,MAAA;IAGtB,UAAU,EAAE,MAAM,CAAC;IAEnB,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAEhC,uBAAuB,CAAC,EAAE,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,WAAW,EAAE,MAAM,CAAC;IAEpB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,aAAa,CAAC,EAAE,UAAU,CAAC;IAE3B,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;CAEhD"}
@@ -0,0 +1,12 @@
1
+ import type EntityType from "../entity-query/EntityType.js";
2
+ import { IColumn } from "./IColumn.js";
3
+ export interface IForeignKeyConstraint {
4
+ name?: string;
5
+ type?: EntityType;
6
+ validate?: boolean;
7
+ index?: boolean;
8
+ cascade?: "delete" | "restrict" | "set-null" | "set-default";
9
+ column?: IColumn;
10
+ refColumns?: IColumn[];
11
+ }
12
+ //# sourceMappingURL=IForeignKeyConstraint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IForeignKeyConstraint.d.ts","sourceRoot":"","sources":["../../src/decorators/IForeignKeyConstraint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,MAAM,WAAW,qBAAqB;IAElC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,CAAC;IAE7D,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;CAC1B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IForeignKeyConstraint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IForeignKeyConstraint.js","sourceRoot":"","sources":["../../src/decorators/IForeignKeyConstraint.ts"],"names":[],"mappings":""}
@@ -1,15 +1,18 @@
1
1
  import type { IClassOf } from "./IClassOf.js";
2
+ import { IForeignKeyConstraint } from "./IForeignKeyConstraint.js";
2
3
  export interface IRelatedType<T, TRelated> {
3
4
  property: (item: T) => TRelated;
4
5
  inverseProperty: (item: TRelated) => T[];
5
6
  inverseKey?: (item: TRelated) => any;
6
7
  dotNotCreateIndex?: boolean;
8
+ foreignKeyConstraint?: IForeignKeyConstraint;
7
9
  }
8
10
  export interface IRelatedTypeOne<T, TRelated> {
9
11
  property: (item: T) => TRelated;
10
12
  inverseProperty: (item: TRelated) => T;
11
13
  inverseKey?: (item: TRelated) => any;
12
14
  dotNotCreateIndex?: boolean;
15
+ foreignKeyConstraint?: IForeignKeyConstraint;
13
16
  }
14
17
  export interface IRelatedTypeWithType<T, TRelated> {
15
18
  type: () => IClassOf<TRelated>;
@@ -17,6 +20,7 @@ export interface IRelatedTypeWithType<T, TRelated> {
17
20
  inverseProperty: (item: TRelated) => T[];
18
21
  inverseKey?: (item: TRelated) => any;
19
22
  dotNotCreateIndex?: boolean;
23
+ foreignKeyConstraint?: IForeignKeyConstraint;
20
24
  }
21
25
  export interface IRelatedTypeOneWithType<T, TRelated> {
22
26
  type: () => IClassOf<TRelated>;
@@ -24,6 +28,7 @@ export interface IRelatedTypeOneWithType<T, TRelated> {
24
28
  inverseProperty: (item: TRelated) => T;
25
29
  inverseKey?: (item: TRelated) => any;
26
30
  dotNotCreateIndex?: boolean;
31
+ foreignKeyConstraint?: IForeignKeyConstraint;
27
32
  }
28
33
  export declare function RelateTo<T, TRelated>(p: IRelatedTypeWithType<T, TRelated>): (target: T, key: string) => any;
29
34
  export declare function RelateTo<T, TRelated>(c: IClassOf<TRelated>, p: IRelatedType<T, TRelated>): (target: T, key: string) => any;
@@ -1 +1 @@
1
- {"version":3,"file":"Relate.d.ts","sourceRoot":"","sources":["../../src/decorators/Relate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAI9C,MAAM,WAAW,YAAY,CAAC,CAAC,EAAE,QAAQ;IACrC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC;IAChC,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,CAAC,EAAE,CAAC;IACzC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,GAAG,CAAC;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,EAAE,QAAQ;IACxC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC;IAChC,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,GAAG,CAAC;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC,EAAE,QAAQ;IAC7C,IAAI,EAAE,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC;IAChC,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,CAAC,EAAE,CAAC;IACzC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,GAAG,CAAC;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC,EAAE,QAAQ;IAChD,IAAI,EAAE,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC;IAChC,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,GAAG,CAAC;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AACD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,oBAAoB,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;AAC7G,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;AAkC5H,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,uBAAuB,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;AACnH,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC"}
1
+ {"version":3,"file":"Relate.d.ts","sourceRoot":"","sources":["../../src/decorators/Relate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAKnE,MAAM,WAAW,YAAY,CAAC,CAAC,EAAE,QAAQ;IACrC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC;IAChC,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,CAAC,EAAE,CAAC;IACzC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,GAAG,CAAC;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;CAChD;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,EAAE,QAAQ;IACxC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC;IAChC,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,GAAG,CAAC;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;CAChD;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC,EAAE,QAAQ;IAC7C,IAAI,EAAE,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC;IAChC,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,CAAC,EAAE,CAAC;IACzC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,GAAG,CAAC;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;CAChD;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC,EAAE,QAAQ;IAChD,IAAI,EAAE,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC;IAChC,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,GAAG,CAAC;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;CAChD;AACD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,oBAAoB,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;AAC7G,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;AAmC5H,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,uBAAuB,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;AACnH,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC"}
@@ -8,7 +8,7 @@ export function RelateTo(c, p) {
8
8
  c = void 0;
9
9
  }
10
10
  }
11
- const { property, inverseKey: invKey, inverseProperty, dotNotCreateIndex } = p;
11
+ const { property, inverseKey: invKey, inverseProperty, dotNotCreateIndex, foreignKeyConstraint } = p;
12
12
  return (target, foreignKey) => {
13
13
  const cn = target.constructor ?? target;
14
14
  const entityType = SchemaRegistry.model(cn);
@@ -21,6 +21,7 @@ export function RelateTo(c, p) {
21
21
  relatedTypeClassFactory: p.type,
22
22
  relatedName: NameParser.parseMember(inverseProperty),
23
23
  relatedKey: invKey ? NameParser.parseMember(invKey) : void 0,
24
+ foreignKeyConstraint,
24
25
  dotNotCreateIndex
25
26
  });
26
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Relate.js","sourceRoot":"","sources":["../../src/decorators/Relate.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAiChD,MAAM,UAAU,QAAQ,CAAC,CAAC,EAAE,CAAE;IAE1B,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;QACd,CAAC,GAAG,CAAC,CAAC;QACN,kBAAkB;QAClB,IAAI,CAAC,CAAC,IAAI,EAAE;YACR,CAAC,GAAG,KAAK,CAAC,CAAC;SACd;KACJ;IAED,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAE/E,OAAO,CAAC,MAAW,EAAE,UAAkB,EAAO,EAAE;QAE5C,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC;QACxC,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAE5C,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE9C,UAAU,CAAC,WAAW,CAAC;YACnB,IAAI,EAAE,UAAU;YAChB,IAAI;YACJ,UAAU;YACV,gBAAgB,EAAE,CAAC;YACnB,uBAAuB,EAAE,CAAC,CAAC,IAAI;YAC/B,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC;YACpD,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC5D,iBAAiB;SACpB,CAAC,CAAC;IAEP,CAAC,CAAC;AACN,CAAC;AAID,MAAM,UAAU,WAAW,CAAC,CAAC,EAAE,CAAE;IAE7B,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;QACd,CAAC,GAAG,CAAC,CAAC;QACN,kBAAkB;QAClB,IAAI,CAAC,CAAC,IAAI,EAAE;YACR,CAAC,GAAG,KAAK,CAAC,CAAC;SACd;KACJ;IAED,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAE/E,OAAO,CAAC,MAAW,EAAE,UAAkB,EAAO,EAAE;QAE5C,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC;QACxC,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAE5C,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE9C,UAAU,CAAC,WAAW,CAAC;YACnB,IAAI,EAAE,UAAU;YAChB,IAAI;YACJ,UAAU;YACV,gBAAgB,EAAE,CAAC;YACnB,uBAAuB,EAAE,CAAC,CAAC,IAAI;YAC/B,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC;YACpD,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC5D,iBAAiB;YACjB,qBAAqB,EAAE,IAAI;SAC9B,CAAC,CAAC;IAEP,CAAC,CAAC;AACN,CAAC;AAED,kEAAkE;AAClE,QAAQ;AACR,sFAAsF;AACtF,WAAW;AAEX,2CAA2C;AAC3C,kDAAkD;AAElD,gDAAgD;AAChD,uCAAuC;AACvC,QAAQ;AAER,MAAM;AACN,gDAAgD;AAEhD,mDAAmD;AACnD,iDAAiD;AAEjD,uCAAuC;AACvC,oBAAoB;AACpB,kDAAkD;AAClD,+BAA+B;AAC/B,mCAAmC;AACnC,wDAAwD;AACxD,4EAA4E;AAC5E,iCAAiC;AACjC,0CAA0C;AAC1C,cAAc;AACd,SAAS;AACT,IAAI"}
1
+ {"version":3,"file":"Relate.js","sourceRoot":"","sources":["../../src/decorators/Relate.ts"],"names":[],"mappings":"AAEA,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAsChD,MAAM,UAAU,QAAQ,CAAC,CAAC,EAAE,CAAE;IAE1B,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;QACd,CAAC,GAAG,CAAC,CAAC;QACN,kBAAkB;QAClB,IAAI,CAAC,CAAC,IAAI,EAAE;YACR,CAAC,GAAG,KAAK,CAAC,CAAC;SACd;KACJ;IAED,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,GAAG,CAAC,CAAC;IAErG,OAAO,CAAC,MAAW,EAAE,UAAkB,EAAO,EAAE;QAE5C,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC;QACxC,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAE5C,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE9C,UAAU,CAAC,WAAW,CAAC;YACnB,IAAI,EAAE,UAAU;YAChB,IAAI;YACJ,UAAU;YACV,gBAAgB,EAAE,CAAC;YACnB,uBAAuB,EAAE,CAAC,CAAC,IAAI;YAC/B,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC;YACpD,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC5D,oBAAoB;YACpB,iBAAiB;SACpB,CAAC,CAAC;IAEP,CAAC,CAAC;AACN,CAAC;AAID,MAAM,UAAU,WAAW,CAAC,CAAC,EAAE,CAAE;IAE7B,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;QACd,CAAC,GAAG,CAAC,CAAC;QACN,kBAAkB;QAClB,IAAI,CAAC,CAAC,IAAI,EAAE;YACR,CAAC,GAAG,KAAK,CAAC,CAAC;SACd;KACJ;IAED,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAE/E,OAAO,CAAC,MAAW,EAAE,UAAkB,EAAO,EAAE;QAE5C,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC;QACxC,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAE5C,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE9C,UAAU,CAAC,WAAW,CAAC;YACnB,IAAI,EAAE,UAAU;YAChB,IAAI;YACJ,UAAU;YACV,gBAAgB,EAAE,CAAC;YACnB,uBAAuB,EAAE,CAAC,CAAC,IAAI;YAC/B,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC;YACpD,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC5D,iBAAiB;YACjB,qBAAqB,EAAE,IAAI;SAC9B,CAAC,CAAC;IAEP,CAAC,CAAC;AACN,CAAC;AAED,kEAAkE;AAClE,QAAQ;AACR,sFAAsF;AACtF,WAAW;AAEX,2CAA2C;AAC3C,kDAAkD;AAElD,gDAAgD;AAChD,uCAAuC;AACvC,QAAQ;AAER,MAAM;AACN,gDAAgD;AAEhD,mDAAmD;AACnD,iDAAiD;AAEjD,uCAAuC;AACvC,oBAAoB;AACpB,kDAAkD;AAClD,+BAA+B;AAC/B,mCAAmC;AACnC,wDAAwD;AACxD,4EAA4E;AAC5E,iCAAiC;AACjC,0CAA0C;AAC1C,cAAc;AACd,SAAS;AACT,IAAI"}
@@ -5,7 +5,7 @@ import QueryCompiler from "../../compiler/QueryCompiler.js";
5
5
  import EntityType from "../../entity-query/EntityType.js";
6
6
  import Migrations from "../../migrations/Migrations.js";
7
7
  import ChangeEntry from "../../model/changes/ChangeEntry.js";
8
- import { DeleteStatement, InsertStatement, UpdateStatement } from "../../query/ast/Expressions.js";
8
+ import { DeleteStatement, Expression, InsertStatement, UpdateStatement } from "../../query/ast/Expressions.js";
9
9
  export interface IRecord {
10
10
  [key: string]: string | boolean | number | Date | Uint8Array | Blob;
11
11
  }
@@ -76,6 +76,7 @@ export declare abstract class BaseDriver {
76
76
  abstract newConnection(): BaseConnection;
77
77
  /** Must dispose ObjectPools */
78
78
  abstract dispose(): any;
79
+ createUpsertExpression(type: EntityType, entity: any, mode: "update" | "upsert" | "insert"): Expression;
79
80
  createInsertExpression(type: EntityType, entity: any): InsertStatement;
80
81
  createUpdateExpression(entry: ChangeEntry): UpdateStatement;
81
82
  createDeleteExpression(type: EntityType, entity: any): DeleteStatement;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseDriver.d.ts","sourceRoot":"","sources":["../../../src/drivers/base/BaseDriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseDriver.d.ts","sourceRoot":"","sources":["../../../src/drivers/base/BaseDriver.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  // Making sure that Symbol.dispose is not undefined
2
2
  import "../../common/IDisposable.js";
3
- import { BinaryExpression, Constant, DeleteStatement, Expression, Identifier, InsertStatement, ReturnUpdated, TableLiteral, UpdateStatement, ValuesStatement } from "../../query/ast/Expressions.js";
3
+ import { BinaryExpression, Constant, DeleteStatement, Expression, Identifier, InsertStatement, ReturnUpdated, TableLiteral, UpdateStatement, UpsertStatement, ValuesStatement } from "../../query/ast/Expressions.js";
4
4
  export const toQuery = (text) => typeof text === "string"
5
5
  ? { text, values: [] }
6
6
  : text;
@@ -64,6 +64,65 @@ export class BaseDriver {
64
64
  constructor(connectionString) {
65
65
  this.connectionString = connectionString;
66
66
  }
67
+ createUpsertExpression(type, entity, mode) {
68
+ const table = type.fullyQualifiedName;
69
+ if (mode === "insert") {
70
+ const fields = [];
71
+ const values = [];
72
+ for (const iterator of type.columns) {
73
+ const value = entity[iterator.name];
74
+ if (value === void 0) {
75
+ continue;
76
+ }
77
+ fields.push(Expression.identifier(iterator.columnName));
78
+ values.push(Expression.constant(value));
79
+ }
80
+ return InsertStatement.create({
81
+ table,
82
+ values: ValuesStatement.create({
83
+ fields,
84
+ values: [values]
85
+ })
86
+ });
87
+ }
88
+ const insert = [];
89
+ const update = [];
90
+ const keys = [];
91
+ for (const iterator of type.columns) {
92
+ const value = entity[iterator.name];
93
+ const assign = Expression.assign(Expression.identifier(iterator.columnName), Expression.constant(value));
94
+ if (iterator.key) {
95
+ keys.push(assign);
96
+ insert.push(assign);
97
+ continue;
98
+ }
99
+ if (value === undefined) {
100
+ continue;
101
+ }
102
+ insert.push(assign);
103
+ if (value === undefined) {
104
+ continue;
105
+ }
106
+ update.push(assign);
107
+ }
108
+ if (mode === "update") {
109
+ let where = null;
110
+ for (const iterator of keys) {
111
+ where = where ? Expression.logicalAnd(where, iterator) : iterator;
112
+ }
113
+ return UpdateStatement.create({
114
+ table,
115
+ set: update,
116
+ where
117
+ });
118
+ }
119
+ return UpsertStatement.create({
120
+ table,
121
+ insert,
122
+ update,
123
+ keys
124
+ });
125
+ }
67
126
  createInsertExpression(type, entity) {
68
127
  const returnFields = [];
69
128
  const fields = [];
@@ -1 +1 @@
1
- {"version":3,"file":"BaseDriver.js","sourceRoot":"","sources":["../../../src/drivers/base/BaseDriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseDriver.js","sourceRoot":"","sources":["../../../src/drivers/base/BaseDriver.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import ExpressionToSql from "../../query/ast/ExpressionToSql.js";
2
- import { BooleanLiteral, InsertStatement, ReturnUpdated, SelectStatement, ValuesStatement } from "../../query/ast/Expressions.js";
2
+ import { BooleanLiteral, InsertStatement, ReturnUpdated, SelectStatement, UpsertStatement, ValuesStatement } from "../../query/ast/Expressions.js";
3
3
  import { ITextQuery } from "../../query/ast/IStringTransformer.js";
4
4
  export default class ExpressionToSqlServer extends ExpressionToSql {
5
5
  visitReturnUpdated(e: ReturnUpdated): ITextQuery;
6
6
  visitInsertStatement(e: InsertStatement): ITextQuery;
7
+ visitUpsertStatement(e: UpsertStatement): ITextQuery;
7
8
  visitSelectStatement(e: SelectStatement): ITextQuery;
8
9
  visitValuesStatement(e: ValuesStatement): ITextQuery;
9
10
  visitBooleanLiteral({ value }: BooleanLiteral): ITextQuery;
@@ -1 +1 @@
1
- {"version":3,"file":"ExpressionToSqlServer.d.ts","sourceRoot":"","sources":["../../../src/drivers/sql-server/ExpressionToSqlServer.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAoC,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACpK,OAAO,EAAE,UAAU,EAAW,MAAM,uCAAuC,CAAC;AAE5E,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,eAAe;IAE9D,kBAAkB,CAAC,CAAC,EAAE,aAAa,GAAG,UAAU;IAkBhD,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,UAAU;IAuBpD,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,UAAU;IA8CpD,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,UAAU;IAUpD,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,cAAc,GAAG,UAAU;CAG7D"}
1
+ {"version":3,"file":"ExpressionToSqlServer.d.ts","sourceRoot":"","sources":["../../../src/drivers/sql-server/ExpressionToSqlServer.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAoC,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACrL,OAAO,EAAE,UAAU,EAAwB,MAAM,uCAAuC,CAAC;AAEzF,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,eAAe;IAE9D,kBAAkB,CAAC,CAAC,EAAE,aAAa,GAAG,UAAU;IAkBhD,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,UAAU;IAuBpD,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,UAAU;IA0CpD,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,UAAU;IA8CpD,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,UAAU;IAUpD,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,cAAc,GAAG,UAAU;CAG7D"}
@@ -1,6 +1,6 @@
1
1
  import ExpressionToSql from "../../query/ast/ExpressionToSql.js";
2
2
  import { NumberLiteral, OrderByExpression, ValuesStatement } from "../../query/ast/Expressions.js";
3
- import { prepare } from "../../query/ast/IStringTransformer.js";
3
+ import { prepare, prepareJoin } from "../../query/ast/IStringTransformer.js";
4
4
  export default class ExpressionToSqlServer extends ExpressionToSql {
5
5
  visitReturnUpdated(e) {
6
6
  if (!e) {
@@ -20,7 +20,7 @@ export default class ExpressionToSqlServer extends ExpressionToSql {
20
20
  return prepare ` OUTPUT ${fields}`;
21
21
  }
22
22
  visitInsertStatement(e) {
23
- const returnValues = this.visit(e.returnValues);
23
+ const returnValues = e.returnValues ? this.visit(e.returnValues) : [];
24
24
  if (e.values instanceof ValuesStatement) {
25
25
  const rows = [];
26
26
  for (const iterator of e.values.values) {
@@ -37,6 +37,39 @@ export default class ExpressionToSqlServer extends ExpressionToSql {
37
37
  }
38
38
  return prepare `INSERT INTO ${this.visit(e.table)} ${returnValues} ${this.visit(e.values)}`;
39
39
  }
40
+ visitUpsertStatement(e) {
41
+ const table = this.visit(e.table);
42
+ const insertColumns = [];
43
+ const insertValues = [];
44
+ const updateSet = [];
45
+ const compare = [];
46
+ for (const { left, right } of e.insert) {
47
+ const c = this.visit(left);
48
+ const v = this.visit(right);
49
+ insertColumns.push(c);
50
+ insertValues.push(v);
51
+ }
52
+ for (const { left, right } of e.update) {
53
+ const c = this.visit(left);
54
+ const v = this.visit(right);
55
+ updateSet.push(prepare `${c} = ${v}`);
56
+ }
57
+ for (const { left, right } of e.keys) {
58
+ const c = this.visit(left);
59
+ const v = this.visit(right);
60
+ compare.push(prepare `${c} = ${v}`);
61
+ }
62
+ return prepare `INSERT INTO ${table} (${prepareJoin(insertColumns)})
63
+ SELECT * FROM (VALUES (${prepareJoin(insertValues)})) as A(${prepareJoin(insertColumns)})
64
+ WHERE NOT EXISTS (SELECT 1 FROM ${table} WHERE ${prepareJoin(compare, " AND ")});
65
+ IF @@ROWCOUNT=0
66
+ BEGIN
67
+ UPDATE ${table}
68
+ SET
69
+ ${prepareJoin(updateSet)}
70
+ WHERE ${prepareJoin(compare, " AND ")}
71
+ END;`;
72
+ }
40
73
  visitSelectStatement(e) {
41
74
  this.prepareStatement(e);
42
75
  const orderBy = e.orderBy?.length > 0 ? prepare `\n\t\tORDER BY ${this.visitArray(e.orderBy)}` : "";
@@ -1 +1 @@
1
- {"version":3,"file":"ExpressionToSqlServer.js","sourceRoot":"","sources":["../../../src/drivers/sql-server/ExpressionToSqlServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExpressionToSqlServer.js","sourceRoot":"","sources":["../../../src/drivers/sql-server/ExpressionToSqlServer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityType.d.ts","sourceRoot":"","sources":["../../src/entity-query/EntityType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAIrD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAkC,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAErH,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,eAAO,MAAM,uBAAuB,eAA8B,CAAC;AACnE,eAAO,MAAM,eAAe,eAA8B,CAAC;AAE3D,MAAM,WAAW,eAAe;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC9B;AAGD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAE3B,SAAgB,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAEzC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,UAAU,EAAE,MAAM,CAAC;IAGnC,SAAgB,OAAO,EAAE,OAAO,EAAE,CAAM;IAExC,SAAgB,SAAS,EAAE,eAAe,EAAE,CAAM;IAElD,SAAgB,OAAO,EAAE,MAAM,EAAE,CAAM;IAEvC,SAAgB,IAAI,EAAE,OAAO,EAAE,CAAM;IAErC,SAAgB,OAAO,EAAE,OAAO,EAAE,CAAM;IAExC,IACW,kBAAkB,oEAO5B;IAED,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,WAAW,CAA2C;IAE9D,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,SAAS,CAAkB;gBAEvB,QAAQ,CAAC,EAAE,UAAU,EAAE,gBAAgB,CAAC,EAAE,kBAAkB;IAUxE,CAAC,uBAAuB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIzC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAM1C,SAAS,CAAC,CAAC,EAAE,OAAO;IAkBpB,SAAS,CAAC,IAAI,EAAE,MAAM;IAItB,QAAQ,CAAC,IAAI,EAAE,MAAM;IAI5B,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,KAAA,KAAK,UAAU;IAiDnE,eAAe;;;;;;;;;;;;;IAiBf,eAAe;;;;;;;;;;;;;IAmBf,GAAG,CAAC,GAAG,EAAE,GAAG;CAWtB"}
1
+ {"version":3,"file":"EntityType.d.ts","sourceRoot":"","sources":["../../src/entity-query/EntityType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAIrD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAkC,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAErH,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,eAAO,MAAM,uBAAuB,eAA8B,CAAC;AACnE,eAAO,MAAM,eAAe,eAA8B,CAAC;AAE3D,MAAM,WAAW,eAAe;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC9B;AAGD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAE3B,SAAgB,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAEzC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,UAAU,EAAE,MAAM,CAAC;IAGnC,SAAgB,OAAO,EAAE,OAAO,EAAE,CAAM;IAExC,SAAgB,SAAS,EAAE,eAAe,EAAE,CAAM;IAElD,SAAgB,OAAO,EAAE,MAAM,EAAE,CAAM;IAEvC,SAAgB,IAAI,EAAE,OAAO,EAAE,CAAM;IAErC,SAAgB,OAAO,EAAE,OAAO,EAAE,CAAM;IAExC,IACW,kBAAkB,oEAO5B;IAED,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,WAAW,CAA2C;IAE9D,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,SAAS,CAAkB;gBAEvB,QAAQ,CAAC,EAAE,UAAU,EAAE,gBAAgB,CAAC,EAAE,kBAAkB;IAUxE,CAAC,uBAAuB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIzC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAM1C,SAAS,CAAC,CAAC,EAAE,OAAO;IAkBpB,SAAS,CAAC,IAAI,EAAE,MAAM;IAItB,QAAQ,CAAC,IAAI,EAAE,MAAM;IAI5B,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,KAAA,KAAK,UAAU;IA0DnE,eAAe;;;;;;;;;;;;;IAiBf,eAAe;;;;;;;;;;;;;IAmBf,GAAG,CAAC,GAAG,EAAE,GAAG;CAWtB"}
@@ -104,6 +104,14 @@ export default class EntityType {
104
104
  relatedType.relations.push(inverseRelation);
105
105
  inverseRelation.relatedRelation = relation;
106
106
  relation.relatedRelation = inverseRelation;
107
+ let { foreignKeyConstraint } = relation;
108
+ if (foreignKeyConstraint) {
109
+ foreignKeyConstraint = { ...foreignKeyConstraint };
110
+ relation.foreignKeyConstraint = foreignKeyConstraint;
111
+ foreignKeyConstraint.name ||= `FK_${this.name}_${fkColumn.name}_${this.typeClass.name}_${relatedType.keys[0].name}`;
112
+ foreignKeyConstraint.column = fkColumn;
113
+ foreignKeyConstraint.refColumns = relatedType.keys;
114
+ }
107
115
  return relation;
108
116
  }
109
117
  selectAllFields() {
@@ -1 +1 @@
1
- {"version":3,"file":"EntityType.js","sourceRoot":"","sources":["../../src/entity-query/EntityType.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityType.js","sourceRoot":"","sources":["../../src/entity-query/EntityType.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type QueryCompiler from "../compiler/QueryCompiler.js";
2
- import { IIndex } from "../decorators/IIndex.js";
2
+ import type { IForeignKeyConstraint } from "../decorators/IForeignKeyConstraint.js";
3
+ import type { IIndex } from "../decorators/IIndex.js";
3
4
  import type EntityType from "../entity-query/EntityType.js";
4
5
  import type EntityContext from "../model/EntityContext.js";
5
6
  export default abstract class Migrations {
@@ -9,5 +10,6 @@ export default abstract class Migrations {
9
10
  migrateIndexInternal(context: EntityContext, index: IIndex, type: EntityType): Promise<void>;
10
11
  abstract migrateIndex(context: EntityContext, index: IIndex, type: EntityType): any;
11
12
  abstract migrateTable(context: EntityContext, type: EntityType): Promise<any>;
13
+ abstract migrateForeignKey(context: EntityContext, constraint: IForeignKeyConstraint): any;
12
14
  }
13
15
  //# sourceMappingURL=Migrations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Migrations.d.ts","sourceRoot":"","sources":["../../src/migrations/Migrations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,aAAa,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAC5D,OAAO,KAAK,aAAa,MAAM,2BAA2B,CAAC;AAG3D,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,UAAU;IAExB,SAAS,CAAC,QAAQ,EAAE,aAAa;gBAAvB,QAAQ,EAAE,aAAa;IAEhC,OAAO,CAAC,OAAO,EAAE,aAAa;IA+BrC,oBAAoB,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IAwBlF,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IAE7E,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;CAGhF"}
1
+ {"version":3,"file":"Migrations.d.ts","sourceRoot":"","sources":["../../src/migrations/Migrations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,aAAa,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAC5D,OAAO,KAAK,aAAa,MAAM,2BAA2B,CAAC;AAG3D,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,UAAU;IAExB,SAAS,CAAC,QAAQ,EAAE,aAAa;gBAAvB,QAAQ,EAAE,aAAa;IAEhC,OAAO,CAAC,OAAO,EAAE,aAAa;IAoDrC,oBAAoB,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IAwBlF,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IAE7E,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAE7E,QAAQ,CAAC,iBAAiB,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB;CAGvF"}
@@ -27,6 +27,23 @@ export default class Migrations {
27
27
  for (const index of type.indexes) {
28
28
  await this.migrateIndexInternal(context, index, type);
29
29
  }
30
+ for (const { isInverseRelation, foreignKeyConstraint, relatedTypeClass } of type.relations) {
31
+ if (isInverseRelation) {
32
+ continue;
33
+ }
34
+ if (!foreignKeyConstraint) {
35
+ continue;
36
+ }
37
+ const relatedEntity = model.register(relatedTypeClass)[modelSymbol];
38
+ foreignKeyConstraint.type = type;
39
+ foreignKeyConstraint.column = type.getProperty(foreignKeyConstraint.column.name).field;
40
+ const refColumns = foreignKeyConstraint.refColumns;
41
+ foreignKeyConstraint.refColumns = [];
42
+ for (const iterator of refColumns) {
43
+ foreignKeyConstraint.refColumns.push(relatedEntity.getProperty(iterator.name).field);
44
+ }
45
+ await this.migrateForeignKey(context, foreignKeyConstraint);
46
+ }
30
47
  }
31
48
  }
32
49
  async migrateIndexInternal(context, index, type) {
@@ -1 +1 @@
1
- {"version":3,"file":"Migrations.js","sourceRoot":"","sources":["../../src/migrations/Migrations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Migrations.js","sourceRoot":"","sources":["../../src/migrations/Migrations.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { IColumn } from "../../decorators/IColumn.js";
2
+ import { IForeignKeyConstraint } from "../../decorators/IForeignKeyConstraint.js";
2
3
  import { IIndex } from "../../decorators/IIndex.js";
3
4
  import { BaseConnection } from "../../drivers/base/BaseDriver.js";
4
5
  import EntityType from "../../entity-query/EntityType.js";
@@ -10,5 +11,6 @@ export default class PostgresAutomaticMigrations extends PostgresMigrations {
10
11
  createColumns(driver: BaseConnection, type: EntityType, nonKeyColumns: IColumn[]): Promise<void>;
11
12
  createTable(driver: BaseConnection, type: EntityType, keys: IColumn[]): Promise<void>;
12
13
  migrateIndex(context: EntityContext, index: IIndex, type: EntityType): Promise<void>;
14
+ migrateForeignKey(context: EntityContext, constraint: IForeignKeyConstraint): Promise<void>;
13
15
  }
14
16
  //# sourceMappingURL=PostgresAutomaticMigrations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresAutomaticMigrations.d.ts","sourceRoot":"","sources":["../../../src/migrations/postgres/PostgresAutomaticMigrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,cAAc,EAAc,MAAM,kCAAkC,CAAC;AAC9E,OAAO,UAAU,MAAM,kCAAkC,CAAC;AAC1D,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAEzD,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAEzD,MAAM,CAAC,OAAO,OAAO,2BAA4B,SAAQ,kBAAkB;IAEjE,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU;IAoBrD,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE;IAc5E,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE;IAgChF,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;IAqCrE,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;CAmB7E"}
1
+ {"version":3,"file":"PostgresAutomaticMigrations.d.ts","sourceRoot":"","sources":["../../../src/migrations/postgres/PostgresAutomaticMigrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,cAAc,EAAc,MAAM,kCAAkC,CAAC;AAC9E,OAAO,UAAU,MAAM,kCAAkC,CAAC;AAC1D,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAEzD,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAEzD,MAAM,CAAC,OAAO,OAAO,2BAA4B,SAAQ,kBAAkB;IAEjE,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU;IAoBrD,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE;IAc5E,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE;IAgChF,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;IAqCrE,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IAkBpE,iBAAiB,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB;CAkDpF"}
@@ -95,5 +95,44 @@ export default class PostgresAutomaticMigrations extends PostgresMigrations {
95
95
  }
96
96
  await driver.executeQuery(query);
97
97
  }
98
+ async migrateForeignKey(context, constraint) {
99
+ const { type } = constraint;
100
+ const name = type.schema
101
+ ? type.schema + "." + type.name
102
+ : type.name;
103
+ let text = `select constraint_name
104
+ from information_schema.constraint_column_usage
105
+ where table_name = $1 and constraint_name = $2 `;
106
+ const values = [type.name, constraint.name];
107
+ if (type.schema) {
108
+ text += " and schema_name = $3";
109
+ values.push(type.schema);
110
+ }
111
+ const driver = context.connection;
112
+ const r = await driver.executeQuery({ text, values });
113
+ if (r.rows?.length) {
114
+ return;
115
+ }
116
+ text = `ALTER TABLE ${name} ADD CONSTRAINT ${constraint.name}
117
+ foreign key (${constraint.column.columnName})
118
+ references ${constraint.refColumns[0].entityType.name}(
119
+ ${constraint.refColumns.map((x) => x.columnName).join(",")}
120
+ ) `;
121
+ switch (constraint.cascade) {
122
+ case "delete":
123
+ text += " ON DELETE CASCADE";
124
+ break;
125
+ case "set-null":
126
+ text += " ON DELETE SET NULL";
127
+ break;
128
+ case "set-default":
129
+ text += " ON DELETE SET DEFAULT";
130
+ break;
131
+ case "restrict":
132
+ text += " ON DELETE RESTRICT";
133
+ break;
134
+ }
135
+ await driver.executeQuery(text);
136
+ }
98
137
  }
99
138
  //# sourceMappingURL=PostgresAutomaticMigrations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresAutomaticMigrations.js","sourceRoot":"","sources":["../../../src/migrations/postgres/PostgresAutomaticMigrations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostgresAutomaticMigrations.js","sourceRoot":"","sources":["../../../src/migrations/postgres/PostgresAutomaticMigrations.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { IColumn } from "../../decorators/IColumn.js";
2
+ import { IForeignKeyConstraint } from "../../decorators/IForeignKeyConstraint.js";
2
3
  import { IIndex } from "../../decorators/IIndex.js";
3
4
  import { BaseConnection } from "../../drivers/base/BaseDriver.js";
4
5
  import EntityType from "../../entity-query/EntityType.js";
@@ -10,5 +11,6 @@ export default class SqlServerAutomaticMigrations extends SqlServerMigrations {
10
11
  createColumns(driver: BaseConnection, type: EntityType, nonKeyColumns: IColumn[]): Promise<void>;
11
12
  createTable(driver: BaseConnection, type: EntityType, keys: IColumn[]): Promise<void>;
12
13
  migrateIndex(context: EntityContext, index: IIndex, type: EntityType): Promise<void>;
14
+ migrateForeignKey(context: EntityContext, constraint: IForeignKeyConstraint): Promise<void>;
13
15
  }
14
16
  //# sourceMappingURL=SqlServerAutomaticMigrations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqlServerAutomaticMigrations.d.ts","sourceRoot":"","sources":["../../../src/migrations/sql-server/SqlServerAutomaticMigrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,cAAc,EAAc,MAAM,kCAAkC,CAAC;AAE9E,OAAO,UAAU,MAAM,kCAAkC,CAAC;AAC1D,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAEzD,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,mBAAmB;IAEnE,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU;IAoBrD,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE;IAc5E,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE;IAqChF,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;IAmCrE,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;CAsB7E"}
1
+ {"version":3,"file":"SqlServerAutomaticMigrations.d.ts","sourceRoot":"","sources":["../../../src/migrations/sql-server/SqlServerAutomaticMigrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,cAAc,EAAc,MAAM,kCAAkC,CAAC;AAE9E,OAAO,UAAU,MAAM,kCAAkC,CAAC;AAC1D,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAEzD,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,mBAAmB;IAEnE,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU;IAoBrD,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE;IAc5E,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE;IAqChF,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;IAmCrE,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IAqBpE,iBAAiB,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB;CA+CpF"}