@typetron/framework 0.3.11 → 0.3.14

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 (161) hide show
  1. package/Container/Container.js +3 -3
  2. package/Database/Connection.d.ts +2 -5
  3. package/Database/Connection.d.ts.map +1 -1
  4. package/Database/Connection.js +4 -4
  5. package/Database/Decorators.d.ts +7 -2
  6. package/Database/Decorators.d.ts.map +1 -1
  7. package/Database/Decorators.js +6 -3
  8. package/Database/Decorators.js.map +1 -1
  9. package/Database/Drivers/DatabaseDriver.d.ts +4 -6
  10. package/Database/Drivers/DatabaseDriver.d.ts.map +1 -1
  11. package/Database/Drivers/DatabaseDriver.js.map +1 -1
  12. package/Database/Drivers/MySQL/Alter/index.d.ts +34 -0
  13. package/Database/Drivers/MySQL/Alter/index.d.ts.map +1 -0
  14. package/Database/Drivers/MySQL/Alter/index.js +65 -0
  15. package/Database/Drivers/MySQL/Alter/index.js.map +1 -0
  16. package/Database/Drivers/MySQL/ColumnDefinition.d.ts +7 -0
  17. package/Database/Drivers/MySQL/ColumnDefinition.d.ts.map +1 -0
  18. package/Database/Drivers/MySQL/ColumnDefinition.js +18 -0
  19. package/Database/Drivers/MySQL/ColumnDefinition.js.map +1 -0
  20. package/Database/Drivers/MySQL/Create.d.ts +10 -0
  21. package/Database/Drivers/MySQL/Create.d.ts.map +1 -0
  22. package/Database/Drivers/MySQL/Create.js +43 -0
  23. package/Database/Drivers/MySQL/Create.js.map +1 -0
  24. package/Database/Drivers/MySQL/MysqlDriver.d.ts +7 -3
  25. package/Database/Drivers/MySQL/MysqlDriver.d.ts.map +1 -1
  26. package/Database/Drivers/MySQL/MysqlDriver.js +27 -15
  27. package/Database/Drivers/MySQL/MysqlDriver.js.map +1 -1
  28. package/Database/Drivers/MySQL/Schema.d.ts +12 -2
  29. package/Database/Drivers/MySQL/Schema.d.ts.map +1 -1
  30. package/Database/Drivers/MySQL/Schema.js +57 -3
  31. package/Database/Drivers/MySQL/Schema.js.map +1 -1
  32. package/Database/Drivers/MySQL/index.d.ts +1 -0
  33. package/Database/Drivers/MySQL/index.d.ts.map +1 -1
  34. package/Database/Drivers/MySQL/index.js +14 -0
  35. package/Database/Drivers/MySQL/index.js.map +1 -1
  36. package/Database/Drivers/SQL/Schema.d.ts +3 -8
  37. package/Database/Drivers/SQL/Schema.d.ts.map +1 -1
  38. package/Database/Drivers/SQL/Schema.js +21 -63
  39. package/Database/Drivers/SQL/Schema.js.map +1 -1
  40. package/Database/Drivers/SQL/Statements/Alter.d.ts +2 -2
  41. package/Database/Drivers/SQL/Statements/Alter.d.ts.map +1 -1
  42. package/Database/Drivers/SQL/Statements/Alter.js +8 -8
  43. package/Database/Drivers/SQL/Statements/Alter.js.map +1 -1
  44. package/Database/Drivers/SQL/Statements/BaseStatement.d.ts +2 -2
  45. package/Database/Drivers/SQL/Statements/BaseStatement.d.ts.map +1 -1
  46. package/Database/Drivers/SQL/Statements/BaseStatement.js +3 -3
  47. package/Database/Drivers/SQL/Statements/BaseStatement.js.map +1 -1
  48. package/Database/Drivers/SQL/Statements/Delete.d.ts +1 -1
  49. package/Database/Drivers/SQL/Statements/Delete.d.ts.map +1 -1
  50. package/Database/Drivers/SQL/Statements/Delete.js +4 -6
  51. package/Database/Drivers/SQL/Statements/Delete.js.map +1 -1
  52. package/Database/Drivers/SQL/Statements/Insert.d.ts +1 -1
  53. package/Database/Drivers/SQL/Statements/Insert.d.ts.map +1 -1
  54. package/Database/Drivers/SQL/Statements/Insert.js +3 -2
  55. package/Database/Drivers/SQL/Statements/Insert.js.map +1 -1
  56. package/Database/Drivers/SQL/Statements/Select.d.ts +1 -1
  57. package/Database/Drivers/SQL/Statements/Select.d.ts.map +1 -1
  58. package/Database/Drivers/SQL/Statements/Select.js +9 -12
  59. package/Database/Drivers/SQL/Statements/Select.js.map +1 -1
  60. package/Database/Drivers/SQL/Statements/Update.d.ts +1 -1
  61. package/Database/Drivers/SQL/Statements/Update.d.ts.map +1 -1
  62. package/Database/Drivers/SQL/Statements/Update.js +6 -8
  63. package/Database/Drivers/SQL/Statements/Update.js.map +1 -1
  64. package/Database/Drivers/SQL/index.d.ts +9 -0
  65. package/Database/Drivers/SQL/index.d.ts.map +1 -0
  66. package/Database/Drivers/SQL/index.js +3 -0
  67. package/Database/Drivers/SQL/index.js.map +1 -0
  68. package/Database/Drivers/SQLite/Create.d.ts +10 -0
  69. package/Database/Drivers/SQLite/Create.d.ts.map +1 -0
  70. package/Database/Drivers/SQLite/Create.js +42 -0
  71. package/Database/Drivers/SQLite/Create.js.map +1 -0
  72. package/Database/Drivers/SQLite/Schema.d.ts +12 -2
  73. package/Database/Drivers/SQLite/Schema.d.ts.map +1 -1
  74. package/Database/Drivers/SQLite/Schema.js +38 -3
  75. package/Database/Drivers/SQLite/Schema.js.map +1 -1
  76. package/Database/Drivers/SQLite/SqliteDriver.d.ts +7 -3
  77. package/Database/Drivers/SQLite/SqliteDriver.d.ts.map +1 -1
  78. package/Database/Drivers/SQLite/SqliteDriver.js +22 -9
  79. package/Database/Drivers/SQLite/SqliteDriver.js.map +1 -1
  80. package/Database/Drivers/SQLite/index.d.ts +1 -0
  81. package/Database/Drivers/SQLite/index.d.ts.map +1 -1
  82. package/Database/Drivers/SQLite/index.js +13 -0
  83. package/Database/Drivers/SQLite/index.js.map +1 -1
  84. package/Database/Drivers/SchemaContract.d.ts +1 -3
  85. package/Database/Drivers/SchemaContract.d.ts.map +1 -1
  86. package/Database/Drivers/SchemaContract.js.map +1 -1
  87. package/Database/Drivers/Statement.d.ts +4 -3
  88. package/Database/Drivers/Statement.d.ts.map +1 -1
  89. package/Database/Drivers/Statement.js +4 -2
  90. package/Database/Drivers/Statement.js.map +1 -1
  91. package/Database/Entity.js +2 -1
  92. package/Database/Entity.js.map +1 -1
  93. package/Database/EntityQuery.d.ts +4 -4
  94. package/Database/EntityQuery.d.ts.map +1 -1
  95. package/Database/EntityQuery.js.map +1 -1
  96. package/Database/Expression.d.ts +2 -4
  97. package/Database/Expression.d.ts.map +1 -1
  98. package/Database/Expression.js +0 -6
  99. package/Database/Expression.js.map +1 -1
  100. package/Database/Fields.d.ts.map +1 -1
  101. package/Database/Fields.js +1 -1
  102. package/Database/Fields.js.map +1 -1
  103. package/Database/Helpers.d.ts.map +1 -1
  104. package/Database/Helpers.js +8 -2
  105. package/Database/Helpers.js.map +1 -1
  106. package/Database/Migrations/Migrator.d.ts +1 -1
  107. package/Database/Migrations/Migrator.d.ts.map +1 -1
  108. package/Database/Migrations/Migrator.js +1 -1
  109. package/Database/Migrations/Migrator.js.map +1 -1
  110. package/Database/Query.d.ts +11 -10
  111. package/Database/Query.d.ts.map +1 -1
  112. package/Database/Query.js +6 -4
  113. package/Database/Query.js.map +1 -1
  114. package/Database/StringExpression.d.ts +7 -0
  115. package/Database/StringExpression.d.ts.map +1 -0
  116. package/Database/StringExpression.js +15 -0
  117. package/Database/StringExpression.js.map +1 -0
  118. package/Database/Types.d.ts +3 -3
  119. package/Database/Types.d.ts.map +1 -1
  120. package/Database/Types.js +1 -1
  121. package/Database/index.d.ts +2 -1
  122. package/Database/index.d.ts.map +1 -1
  123. package/Database/index.js +1 -0
  124. package/Database/index.js.map +1 -1
  125. package/Encryption/index.d.ts.map +1 -1
  126. package/Encryption/index.js +4 -1
  127. package/Encryption/index.js.map +1 -1
  128. package/Framework/Config/DatabaseConfig.d.ts.map +1 -1
  129. package/Framework/Config/DatabaseConfig.js.map +1 -1
  130. package/Framework/Providers/DatabaseProvider.js +1 -1
  131. package/Framework/Providers/DatabaseProvider.js.map +1 -1
  132. package/Readme.md +123 -123
  133. package/Support/Array.d.ts +4 -2
  134. package/Support/Array.d.ts.map +1 -1
  135. package/Support/Array.js +8 -2
  136. package/Support/Array.js.map +1 -1
  137. package/package.json +66 -66
  138. package/tests/Database/Drivers/MySQL/AlterTest.d.ts +2 -0
  139. package/tests/Database/Drivers/MySQL/AlterTest.d.ts.map +1 -0
  140. package/tests/Database/Drivers/MySQL/AlterTest.js +144 -0
  141. package/tests/Database/Drivers/MySQL/AlterTest.js.map +1 -0
  142. package/tests/Database/Drivers/MySQL/CreateTest.d.ts +2 -0
  143. package/tests/Database/Drivers/MySQL/CreateTest.d.ts.map +1 -0
  144. package/tests/Database/Drivers/MySQL/CreateTest.js +64 -0
  145. package/tests/Database/Drivers/MySQL/CreateTest.js.map +1 -0
  146. package/tests/Database/Drivers/MysqlDriverTest.d.ts +2 -0
  147. package/tests/Database/Drivers/MysqlDriverTest.d.ts.map +1 -0
  148. package/tests/Database/Drivers/MysqlDriverTest.js +174 -0
  149. package/tests/Database/Drivers/MysqlDriverTest.js.map +1 -0
  150. package/tests/Database/Drivers/SqliteDriverTest.d.ts +2 -0
  151. package/tests/Database/Drivers/SqliteDriverTest.d.ts.map +1 -0
  152. package/tests/Database/Drivers/SqliteDriverTest.js +156 -0
  153. package/tests/Database/Drivers/SqliteDriverTest.js.map +1 -0
  154. package/tests/Database/QueryTest.js +59 -55
  155. package/tests/Database/QueryTest.js.map +1 -1
  156. package/tests/Database/utils.d.ts +6 -0
  157. package/tests/Database/utils.d.ts.map +1 -0
  158. package/tests/Database/utils.js +19 -0
  159. package/tests/Database/utils.js.map +1 -0
  160. package/tests/Support/ArrayTest.js +42 -2
  161. package/tests/Support/ArrayTest.js.map +1 -1
@@ -81,9 +81,9 @@ class Container {
81
81
  return abstract;
82
82
  }
83
83
  if (abstract === undefined) {
84
- throw new Error(`
85
- Cannot resolve a parameter having the value undefined.
86
- This might be due to circular dependencies in your app
84
+ throw new Error(`
85
+ Cannot resolve a parameter having the value undefined.
86
+ This might be due to circular dependencies in your app
87
87
  `);
88
88
  }
89
89
  if (typeof abstract === 'symbol') {
@@ -1,6 +1,6 @@
1
1
  import { Query } from './Query';
2
2
  import { DatabaseDriver } from './Drivers/DatabaseDriver';
3
- import { SqlValue } from '@Typetron/Database/Types';
3
+ import { SqlValue } from './Types';
4
4
  export declare class Connection {
5
5
  driver: DatabaseDriver;
6
6
  constructor(driver: DatabaseDriver);
@@ -16,9 +16,6 @@ export declare class Connection {
16
16
  name: string;
17
17
  }[]>;
18
18
  tableExists(table: string): Promise<Boolean>;
19
- tableColumns(table: string): Promise<{
20
- name: string;
21
- type: string;
22
- }[]>;
19
+ tableColumns(table: string): Promise<import("./Drivers/SQL").ColumnDefinitionOptions[]>;
23
20
  }
24
21
  //# sourceMappingURL=Connection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Connection.d.ts","sourceRoot":"","sources":["../../Database/Connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,qBAAa,UAAU;IAEA,MAAM,EAAE,cAAc;gBAAtB,MAAM,EAAE,cAAc;IAEnC,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9C,QAAQ,CAAC,KAAK,EAAE,MAAM;IAIhB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAIrC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAIjD,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAIlE,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIlE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE,MAAM;;;IAIN,WAAW,CAAC,KAAK,EAAE,MAAM;IAIzB,YAAY,CAAC,KAAK,EAAE,MAAM;;;;CAGnC"}
1
+ {"version":3,"file":"Connection.d.ts","sourceRoot":"","sources":["../../Database/Connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,qBAAa,UAAU;IAEA,MAAM,EAAE,cAAc;gBAAtB,MAAM,EAAE,cAAc;IAEnC,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9C,QAAQ,CAAC,KAAK,EAAE,MAAM;IAIhB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAIrC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAIjD,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAIlE,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIlE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE,MAAM;;;IAIN,WAAW,CAAC,KAAK,EAAE,MAAM;IAIzB,YAAY,CAAC,KAAK,EAAE,MAAM;CAGnC"}
@@ -6,19 +6,19 @@ class Connection {
6
6
  this.driver = driver;
7
7
  }
8
8
  async run(query) {
9
- return this.driver.run(query.toSql(), query.getBindings());
9
+ return this.driver.run(query.toSQL(), query.getBindings());
10
10
  }
11
11
  async insertOne(query) {
12
- return this.driver.insertOne(query.toSql(), query.getBindings());
12
+ return this.driver.insertOne(query.toSQL(), query.getBindings());
13
13
  }
14
14
  truncate(table) {
15
15
  return this.driver.truncate(table);
16
16
  }
17
17
  async get(query) {
18
- return await this.driver.get(query.toSql(), query.getBindings());
18
+ return await this.driver.get(query.toSQL(), query.getBindings());
19
19
  }
20
20
  async first(query) {
21
- return await this.driver.first(query.toSql(), query.getBindings());
21
+ return await this.driver.first(query.toSQL(), query.getBindings());
22
22
  }
23
23
  async getRaw(rawQuery, params = []) {
24
24
  return await this.driver.get(rawQuery, params);
@@ -1,4 +1,4 @@
1
- import { ChildObject, Constructor, KeysOfType } from '../Support';
1
+ import { ChildObject, Constructor, KeysOfType } from '@Typetron/Support';
2
2
  import { Entity } from './Entity';
3
3
  import { BelongsToManyField, BelongsToManyFieldOptions, ColumnField, HasManyField, HasOneField, RelationshipField } from './Fields';
4
4
  import { List } from './List';
@@ -21,7 +21,12 @@ export declare class EntityMetadata<T extends Entity> extends EntityOptions<T> {
21
21
  static get<T extends Entity>(entity: T): EntityMetadata<T>;
22
22
  }
23
23
  export declare function Options<T extends Entity>(options?: EntityOptions<T>): (entity: object) => void;
24
- export declare function Column<T extends Entity>(column?: string): (entity: object, name: string) => void;
24
+ export declare function Column<T extends Entity>(column?: string | {
25
+ type: any;
26
+ }): PropertyDecorator;
27
+ export declare function Column<T extends Entity>(column: string, options?: {
28
+ type: any;
29
+ }): PropertyDecorator;
25
30
  export declare function JSONColumn<T extends Entity>(column?: string): (entity: object, name: string) => void;
26
31
  export declare function Enum<T extends Entity>(...values: string[]): (entity: object, name: string) => void;
27
32
  export declare function PrimaryColumn<T extends Entity>(column?: string): (entity: object, name: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"Decorators.d.ts","sourceRoot":"","sources":["../../Database/Decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAGH,kBAAkB,EAClB,yBAAyB,EACzB,WAAW,EAEX,YAAY,EAEZ,WAAW,EAGX,iBAAiB,EACpB,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,eAAO,MAAM,iBAAiB,qBAAqB,CAAA;AAEnD,oBAAY,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjC,qBAAa,aAAa,CAAC,CAAC,SAAS,MAAM;IACvC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAA;CACpD;AAED,qBAAa,cAAc,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IAClE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAK;IAC5C,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAK;IAChE,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAK;IAC3H,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB,IAAI,gBAAgB;;MAEnB;IAED,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC;CAKzC;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,GAAE,aAAa,CAAC,CAAC,CAAM,YACpD,MAAM,UAOzB;AAQD,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,YAC3B,MAAM,QAAQ,MAAM,UAKhD;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,YAC/B,MAAM,QAAQ,MAAM,UAIhD;AAED,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,YAC7B,MAAM,QAAQ,MAAM,UAEhD;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,YAClC,MAAM,QAAQ,MAAM,UAKhD;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,YAC9B,MAAM,QAAQ,MAAM,UAMhD;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,YAC9B,MAAM,QAAQ,MAAM,UAMhD;AAKD,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EACvD,IAAI,EAAE,MAAM,WAAW,CAAC,CAAC,CAAC,EAM1B,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,YAGzC,MAAM,YAAY,MAAM,UAUpD;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,yBAAyB,YAC5D,MAAM,YAAY,MAAM,UAKpD"}
1
+ {"version":3,"file":"Decorators.d.ts","sourceRoot":"","sources":["../../Database/Decorators.ts"],"names":[],"mappings":"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"}
@@ -38,10 +38,13 @@ function setField(entity, field) {
38
38
  entityMetadata.columns[field.property] = field;
39
39
  Reflect.defineMetadata(exports.EntityMetadataKey, entityMetadata, entity);
40
40
  }
41
- function Column(column) {
41
+ // tslint:disable-next-line:no-any
42
+ function Column(column, options) {
42
43
  return function (entity, name) {
43
- const type = Reflect.getMetadata('design:type', entity, name);
44
- const field = new Fields_1.ColumnField(entity.constructor, name, () => type, column || name);
44
+ var _a;
45
+ const actualColumn = typeof column === 'string' ? column : undefined;
46
+ const type = (_a = options === null || options === void 0 ? void 0 : options.type) !== null && _a !== void 0 ? _a : Reflect.getMetadata('design:type', entity, name);
47
+ const field = new Fields_1.ColumnField(entity.constructor, String(name), () => type, actualColumn || String(name));
45
48
  setField(entity, field);
46
49
  };
47
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Decorators.js","sourceRoot":"","sources":["../../Database/Decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Decorators.js","sourceRoot":"","sources":["../../Database/Decorators.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { SqlValue } from '@Typetron/Database/Types';
1
+ import { SqlValue } from '../Types';
2
2
  import { Statement } from './Statement';
3
3
  import { Constructor } from '@Typetron/Support';
4
- import { SchemaContract } from '@Typetron/Database/Drivers/SchemaContract';
4
+ import { SchemaContract } from './SchemaContract';
5
+ import { ColumnDefinitionOptions } from '@Typetron/Database/Drivers/SQL';
5
6
  interface StatementsList {
6
7
  create: Constructor<Statement>;
7
8
  select: Constructor<Statement>;
@@ -22,10 +23,7 @@ export declare abstract class DatabaseDriver {
22
23
  name: string;
23
24
  }[]>;
24
25
  abstract tableExists(table: string): Promise<Boolean>;
25
- abstract tableColumns(table: string): Promise<{
26
- name: string;
27
- type: string;
28
- }[]>;
26
+ abstract tableColumns(table: string): Promise<ColumnDefinitionOptions[]>;
29
27
  }
30
28
  export {};
31
29
  //# sourceMappingURL=DatabaseDriver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseDriver.d.ts","sourceRoot":"","sources":["../../../Database/Drivers/DatabaseDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAA;AAE1E,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,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAEpE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAE5E,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAE5C,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAErD,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;CAChF"}
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,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAEpE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAE5E,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAE5C,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAErD,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;CAC3E"}
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseDriver.js","sourceRoot":"","sources":["../../../Database/Drivers/DatabaseDriver.ts"],"names":[],"mappings":";;;AAcA,MAAsB,cAAc;CAqBnC;AArBD,wCAqBC"}
1
+ {"version":3,"file":"DatabaseDriver.js","sourceRoot":"","sources":["../../../Database/Drivers/DatabaseDriver.ts"],"names":[],"mappings":";;;AAeA,MAAsB,cAAc;CAqBnC;AArBD,wCAqBC"}
@@ -0,0 +1,34 @@
1
+ import { ColumnDefinitionOptions } from '../../../Drivers/SQL';
2
+ import { Expression } from '@Typetron/Database';
3
+ export declare enum Constraints {
4
+ PrimaryKey = "PRIMARY KEY",
5
+ ForeignKey = "FOREIGN KEY"
6
+ }
7
+ export declare abstract class AlterOption extends Expression {
8
+ column: ColumnDefinitionOptions;
9
+ constructor(column: ColumnDefinitionOptions);
10
+ abstract toSQL(): string;
11
+ }
12
+ export declare class AddColumn extends AlterOption {
13
+ toSQL(): string;
14
+ }
15
+ export declare class AddConstraint extends AlterOption {
16
+ type: Constraints;
17
+ constructor(column: ColumnDefinitionOptions, type: Constraints);
18
+ toSQL(): string;
19
+ }
20
+ export declare class ModifyColumn extends AlterOption {
21
+ toSQL(): string;
22
+ }
23
+ export declare class DropColumn extends Expression {
24
+ column: string;
25
+ constructor(column: string);
26
+ toSQL(): string;
27
+ }
28
+ export declare class Alter extends Expression {
29
+ table: string;
30
+ alterOptions: Expression[];
31
+ constructor(table: string, alterOptions: Expression[]);
32
+ toSQL(): string;
33
+ }
34
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../Database/Drivers/MySQL/Alter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAG9D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,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,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,YAAa,SAAQ,WAAW;IACzC,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"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Alter = exports.DropColumn = exports.ModifyColumn = exports.AddConstraint = exports.AddColumn = exports.AlterOption = exports.Constraints = void 0;
4
+ const Helpers_1 = require("../../../Helpers");
5
+ const ColumnDefinition_1 = require("@Typetron/Database/Drivers/MySQL/ColumnDefinition");
6
+ const Database_1 = require("@Typetron/Database");
7
+ var Constraints;
8
+ (function (Constraints) {
9
+ Constraints["PrimaryKey"] = "PRIMARY KEY";
10
+ Constraints["ForeignKey"] = "FOREIGN KEY";
11
+ })(Constraints = exports.Constraints || (exports.Constraints = {}));
12
+ class AlterOption extends Database_1.Expression {
13
+ constructor(column) {
14
+ super();
15
+ this.column = column;
16
+ }
17
+ }
18
+ exports.AlterOption = AlterOption;
19
+ class AddColumn extends AlterOption {
20
+ toSQL() {
21
+ return `ADD ${new ColumnDefinition_1.ColumnDefinition(this.column).toSQL()}`;
22
+ }
23
+ }
24
+ exports.AddColumn = AddColumn;
25
+ class AddConstraint extends AlterOption {
26
+ constructor(column, type) {
27
+ super(column);
28
+ this.type = type;
29
+ }
30
+ toSQL() {
31
+ return `ADD CONSTRAINT ${this.type} (${this.column.name})`;
32
+ }
33
+ }
34
+ exports.AddConstraint = AddConstraint;
35
+ class ModifyColumn extends AlterOption {
36
+ toSQL() {
37
+ return `MODIFY ${new ColumnDefinition_1.ColumnDefinition(this.column).toSQL()}`;
38
+ }
39
+ }
40
+ exports.ModifyColumn = ModifyColumn;
41
+ class DropColumn extends Database_1.Expression {
42
+ constructor(column) {
43
+ super();
44
+ this.column = column;
45
+ }
46
+ toSQL() {
47
+ return `DROP COLUMN ${Helpers_1.wrap(this.column)}`;
48
+ }
49
+ }
50
+ exports.DropColumn = DropColumn;
51
+ class Alter extends Database_1.Expression {
52
+ constructor(table, alterOptions) {
53
+ super();
54
+ this.table = table;
55
+ this.alterOptions = alterOptions;
56
+ }
57
+ toSQL() {
58
+ return `
59
+ ALTER TABLE ${Helpers_1.wrap(this.table)}
60
+ ${this.alterOptions.map(option => option.toSQL()).join(', \n')}
61
+ `;
62
+ }
63
+ }
64
+ exports.Alter = Alter;
65
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../Database/Drivers/MySQL/Alter/index.ts"],"names":[],"mappings":";;;AACA,8CAAuC;AACvC,wFAAoF;AACpF,iDAA+C;AAE/C,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,yCAA0B,CAAA;IAC1B,yCAA0B,CAAA;AAC9B,CAAC,EAHW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAGtB;AAED,MAAsB,WAAY,SAAQ,qBAAU;IAChD,YAAmB,MAA+B;QAAG,KAAK,EAAE,CAAA;QAAzC,WAAM,GAAN,MAAM,CAAyB;IAAU,CAAC;CAGhE;AAJD,kCAIC;AAED,MAAa,SAAU,SAAQ,WAAW;IACtC,KAAK;QACD,OAAO,OAAO,IAAI,mCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAA;IAC7D,CAAC;CACJ;AAJD,8BAIC;AAED,MAAa,aAAc,SAAQ,WAAW;IAE1C,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,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAA;IAC9D,CAAC;CACJ;AAPD,sCAOC;AAED,MAAa,YAAa,SAAQ,WAAW;IACzC,KAAK;QACD,OAAO,UAAU,IAAI,mCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAA;IAChE,CAAC;CACJ;AAJD,oCAIC;AAED,MAAa,UAAW,SAAQ,qBAAU;IACtC,YAAmB,MAAc;QAAG,KAAK,EAAE,CAAA;QAAxB,WAAM,GAAN,MAAM,CAAQ;IAAU,CAAC;IAE5C,KAAK;QACD,OAAO,eAAe,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAA;IAC7C,CAAC;CACJ;AAND,gCAMC;AAED,MAAa,KAAM,SAAQ,qBAAU;IACjC,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,cAAI,CAAC,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"}
@@ -0,0 +1,7 @@
1
+ import { ColumnDefinitionOptions } from '../../Drivers/SQL';
2
+ export declare class ColumnDefinition {
3
+ options: ColumnDefinitionOptions;
4
+ constructor(options: ColumnDefinitionOptions);
5
+ toSQL(): string;
6
+ }
7
+ //# sourceMappingURL=ColumnDefinition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnDefinition.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/ColumnDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAG3D,qBAAa,gBAAgB;IACN,OAAO,EAAE,uBAAuB;gBAAhC,OAAO,EAAE,uBAAuB;IAEnD,KAAK;CASR"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ColumnDefinition = void 0;
4
+ const Helpers_1 = require("../../Helpers");
5
+ class ColumnDefinition {
6
+ constructor(options) {
7
+ this.options = options;
8
+ }
9
+ toSQL() {
10
+ const sqlParts = [Helpers_1.wrap(this.options.name), this.options.type];
11
+ if (this.options.autoIncrement) {
12
+ sqlParts.push('AUTO_INCREMENT');
13
+ }
14
+ return sqlParts.join(' ');
15
+ }
16
+ }
17
+ exports.ColumnDefinition = ColumnDefinition;
18
+ //# sourceMappingURL=ColumnDefinition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnDefinition.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/ColumnDefinition.ts"],"names":[],"mappings":";;;AACA,2CAAoC;AAEpC,MAAa,gBAAgB;IACzB,YAAmB,OAAgC;QAAhC,YAAO,GAAP,OAAO,CAAyB;IAAG,CAAC;IAEvD,KAAK;QACD,MAAM,QAAQ,GAAG,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAE7D,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YAC5B,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;SAClC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;CACJ;AAZD,4CAYC"}
@@ -0,0 +1,10 @@
1
+ import { BaseStatement } from '../SQL/Statements/BaseStatement';
2
+ import { ColumnDefinitionOptions } from '../SQL';
3
+ export declare class Create extends BaseStatement {
4
+ columns: ColumnDefinitionOptions[];
5
+ constructor(table: string, columns?: ColumnDefinitionOptions[]);
6
+ toSQL(): string;
7
+ private getColumnsSQL;
8
+ private getColumnSQL;
9
+ }
10
+ //# sourceMappingURL=Create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Create.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAA;AAGhD,qBAAa,MAAO,SAAQ,aAAa;IAEH,OAAO,EAAE,uBAAuB,EAAE;gBAAxD,KAAK,EAAE,MAAM,EAAS,OAAO,GAAE,uBAAuB,EAAO;IAYzE,KAAK;IAeL,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;CASvB"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Create = void 0;
4
+ const BaseStatement_1 = require("../SQL/Statements/BaseStatement");
5
+ const Helpers_1 = require("../../Helpers");
6
+ class Create extends BaseStatement_1.BaseStatement {
7
+ constructor(table, columns = []) {
8
+ super({
9
+ table,
10
+ columns: [],
11
+ joins: [],
12
+ wheres: [],
13
+ groups: [],
14
+ orders: [],
15
+ having: []
16
+ });
17
+ this.columns = columns;
18
+ }
19
+ toSQL() {
20
+ const definitions = this.getColumnsSQL(this.columns);
21
+ this.columns.where('primaryKey').whenNotEmpty(primaryColumns => {
22
+ definitions.push(`PRIMARY KEY (${primaryColumns.pluck('name').join(', ')})`);
23
+ });
24
+ return `
25
+ CREATE TABLE ${this.table}
26
+ (
27
+ ${definitions.join(', \n')}
28
+ )
29
+ `;
30
+ }
31
+ getColumnsSQL(columns) {
32
+ return columns.map(this.getColumnSQL);
33
+ }
34
+ getColumnSQL(column) {
35
+ const sqlParts = [Helpers_1.wrap(column.name), column.type];
36
+ if (column.autoIncrement) {
37
+ sqlParts.push('AUTO_INCREMENT');
38
+ }
39
+ return sqlParts.join(' ');
40
+ }
41
+ }
42
+ exports.Create = Create;
43
+ //# sourceMappingURL=Create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Create.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Create.ts"],"names":[],"mappings":";;;AAAA,mEAA+D;AAE/D,2CAAoC;AAEpC,MAAa,MAAO,SAAQ,6BAAa;IAErC,YAAY,KAAa,EAAS,UAAqC,EAAE;QACrE,KAAK,CAAC;YACF,KAAK;YACL,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;SACb,CAAC,CAAA;QAT4B,YAAO,GAAP,OAAO,CAAgC;IAUzE,CAAC;IAED,KAAK;QACD,MAAM,WAAW,GAAa,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAE9D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE;YAC3D,WAAW,CAAC,IAAI,CAAC,gBAAgB,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChF,CAAC,CAAC,CAAA;QAEF,OAAO;2BACY,IAAI,CAAC,KAAK;;kBAEnB,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;;SAEjC,CAAA;IACL,CAAC;IAEO,aAAa,CAAC,OAAkC;QACpD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACzC,CAAC;IAEO,YAAY,CAAC,MAA+B;QAChD,MAAM,QAAQ,GAAG,CAAC,cAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAEjD,IAAI,MAAM,CAAC,aAAa,EAAE;YACtB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;SAClC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;CACJ;AA1CD,wBA0CC"}
@@ -1,7 +1,7 @@
1
- import { DatabaseDriver } from '@Typetron/Database/Drivers/DatabaseDriver';
1
+ import { DatabaseDriver } from '../DatabaseDriver';
2
2
  import { Connection, ConnectionConfig, OkPacket } from 'mysql';
3
- import { SqlValue } from '@Typetron/Database/Types';
4
- import { Create } from '../SQL/Statements/Create';
3
+ import { SqlValue } from '../../Types';
4
+ import { Create } from './Create';
5
5
  import { Select } from '../SQL/Statements/Select';
6
6
  import { Insert } from '../SQL/Statements/Insert';
7
7
  import { Delete } from '../SQL/Statements/Delete';
@@ -33,6 +33,10 @@ export declare class MysqlDriver extends DatabaseDriver {
33
33
  tableColumns(table: string): Promise<{
34
34
  name: string;
35
35
  type: string;
36
+ nullable: boolean;
37
+ default: string | number | undefined;
38
+ autoIncrement: 0 | 1;
39
+ primaryKey: boolean;
36
40
  }[]>;
37
41
  }
38
42
  //# sourceMappingURL=MysqlDriver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MysqlDriver.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/MysqlDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAoB,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGlD,qBAAa,WAAY,SAAQ,cAAc;IAC3C,UAAU,EAAE,UAAU,CAAA;IAEtB,MAAM,EAAE,cAAc,CAAmB;IAEzC,UAAU;;;;;;;MAOT;gBAEW,gBAAgB,EAAE,gBAAgB;IAUxC,QAAQ,CAAC,KAAK,EAAE,MAAM;IAI5B,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC;IAYlE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO;IAI1C,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAI5D,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAI5D,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAIxE,MAAM;cACqB,MAAM;;IASjC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW5C,YAAY,CAAC,KAAK,EAAE,MAAM;cACC,MAAM;cAAQ,MAAM;;CAUlD"}
1
+ {"version":3,"file":"MysqlDriver.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/MysqlDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAoB,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAYlD,qBAAa,WAAY,SAAQ,cAAc;IAC3C,UAAU,EAAE,UAAU,CAAA;IAEtB,MAAM,EAAE,cAAc,CAAmB;IAEzC,UAAU;;;;;;;MAOT;gBAEW,gBAAgB,EAAE,gBAAgB;IAUxC,QAAQ,CAAC,KAAK,EAAE,MAAM;IAI5B,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC;IAYlE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO;IAI1C,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAI5D,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAI5D,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAIxE,MAAM;cACqB,MAAM;;IASjC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWtC,YAAY,CAAC,KAAK,EAAE,MAAM;;;;;;;;CAwBnC"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MysqlDriver = void 0;
4
- const DatabaseDriver_1 = require("@Typetron/Database/Drivers/DatabaseDriver");
4
+ const DatabaseDriver_1 = require("../DatabaseDriver");
5
5
  const mysql_1 = require("mysql");
6
- const Create_1 = require("../SQL/Statements/Create");
6
+ const Create_1 = require("./Create");
7
7
  const Select_1 = require("../SQL/Statements/Select");
8
8
  const Insert_1 = require("../SQL/Statements/Insert");
9
9
  const Delete_1 = require("../SQL/Statements/Delete");
@@ -56,25 +56,37 @@ class MysqlDriver extends DatabaseDriver_1.DatabaseDriver {
56
56
  return (await this.runRaw(query, params)).insertId;
57
57
  }
58
58
  tables() {
59
- return this.get(`select TABLE_NAME as name
60
- from information_schema.TABLES
61
- WHERE table_schema = ?
59
+ return this.get(`select TABLE_NAME as name
60
+ from information_schema.TABLES
61
+ WHERE table_schema = ?
62
62
  `, [this.connection.config.database]);
63
63
  }
64
64
  tableExists(table) {
65
- return this.first(`select *
66
- from information_schema.tables
67
- where table_name = ?
68
- and table_schema = ?
65
+ return this.first(`select *
66
+ from information_schema.tables
67
+ where table_name = ?
68
+ and table_schema = ?
69
69
  `, [table, this.connection.config.database]);
70
70
  }
71
- tableColumns(table) {
72
- return this.get(`select COLUMN_NAME as name,
73
- DATA_TYPE as type
74
- from information_schema.COLUMNS
75
- where table_name = ?
76
- and table_schema = ?
71
+ async tableColumns(table) {
72
+ const columnsInfo = await this.get(`select cast(IS_NULLABLE = 'YES' as unsigned) as nullable,
73
+ cast(EXTRA = 'auto_increment' as unsigned) as autoIncrement,
74
+ cast(COLUMN_KEY = 'PRI' as unsigned) as primaryKey,
75
+ COLUMN_NAME as name,
76
+ DATA_TYPE as type,
77
+ COLUMN_DEFAULT as 'default'
78
+ from information_schema.COLUMNS
79
+ where table_name = ?
80
+ and table_schema = ?
77
81
  `, [table, this.connection.config.database]);
82
+ return columnsInfo.map(info => ({
83
+ name: info.name,
84
+ type: info.type,
85
+ nullable: Boolean(info.nullable),
86
+ default: info.default,
87
+ autoIncrement: info.autoIncrement,
88
+ primaryKey: Boolean(info.primaryKey)
89
+ }));
78
90
  }
79
91
  }
80
92
  exports.MysqlDriver = MysqlDriver;
@@ -1 +1 @@
1
- {"version":3,"file":"MysqlDriver.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/MysqlDriver.ts"],"names":[],"mappings":";;;AAAA,8EAA0E;AAC1E,iCAAgF;AAEhF,qDAAiD;AACjD,qDAAiD;AACjD,qDAAiD;AACjD,qDAAiD;AACjD,qDAAiD;AACjD,mDAA+C;AAE/C,qCAAiC;AAEjC,MAAa,WAAY,SAAQ,+BAAc;IAc3C,YAAY,gBAAkC;QAC1C,KAAK,EAAE,CAAA;QAZX,WAAM,GAAmB,IAAI,eAAM,CAAC,IAAI,CAAC,CAAA;QAEzC,eAAU,GAAG;YACT,MAAM,EAAE,eAAM;YACd,MAAM,EAAE,eAAM;YACd,MAAM,EAAE,eAAM;YACd,MAAM,EAAE,eAAM;YACd,MAAM,EAAE,eAAM;YACd,KAAK,EAAE,aAAK;SACf,CAAA;QAIG,IAAI,CAAC,UAAU,GAAG,wBAAgB,CAAC;YAC/B,cAAc,EAAE,KAAK;YACrB,GAAG,gBAAgB;SACtB,CAAC,CAAA;QAEF,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAa;QACxB,MAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,CAAI,KAAa,EAAE,SAAqB,EAAE;QAC5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC5D,IAAI,KAAK,EAAE;oBACP,KAAK,CAAC,OAAO,IAAI,YAAY,KAAK,CAAC,GAAG,GAAG,CAAA;oBACzC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;iBACvB;gBACD,OAAO,CAAC,OAAO,CAAC,CAAA;YACpB,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAa,EAAE,SAAqB,EAAE;QAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,KAAa,EAAE,SAAqB,EAAE;QAC/C,OAAQ,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAS,CAAA;IACpD,CAAC;IAED,KAAK,CAAC,KAAK,CAAI,KAAa,EAAE,SAAqB,EAAE;;QACjD,aAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAS,CAAA,0CAAG,CAAC,EAAC;IACzD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,SAAqB,EAAE;QAClD,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAc,CAAA,CAAC,QAAQ,CAAA;IAClE,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,GAAG,CACX;;;aAGC,EACD,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CACpC,CAAA;IACL,CAAC;IAED,WAAW,CAAC,KAAa;QACrB,OAAO,IAAI,CAAC,KAAK,CACb;;;;aAIC,EACD,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC3C,CAAA;IACL,CAAC;IAED,YAAY,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,GAAG,CACX;;;;;aAKC,EACD,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC3C,CAAA;IACL,CAAC;CACJ;AAxFD,kCAwFC"}
1
+ {"version":3,"file":"MysqlDriver.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/MysqlDriver.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,16 @@
1
- import { ColumnField, Entity } from '@Typetron/Database';
1
+ import { ColumnField, Entity } from '../..';
2
2
  import { Schema as BaseSchema } from '../SQL/Schema';
3
3
  export declare class Schema extends BaseSchema {
4
- addColumn(table: string, column: ColumnField<Entity>): Promise<void>;
4
+ columnMetadataToColumnDefinition(metadata: ColumnField<Entity>): {
5
+ name: string;
6
+ primaryKey: boolean;
7
+ autoIncrement: number;
8
+ type: string;
9
+ default: undefined;
10
+ nullable: boolean;
11
+ };
12
+ create(table: string, columns: ColumnField<Entity>[]): Promise<void>;
13
+ protected syncTableColumns(table: string, columnsMetadata: ColumnField<Entity>[]): Promise<void>;
14
+ private getColumnTypeBasedOnTypescriptType;
5
15
  }
6
16
  //# sourceMappingURL=Schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AAEpD,qBAAa,MAAO,SAAQ,UAAU;IAE5B,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;CAK7D"}
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAA4B,MAAM,OAAO,CAAA;AACrE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AAMpD,qBAAa,MAAO,SAAQ,UAAU;IAElC,gCAAgC,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC;;;;;;;;IAWxD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE;cAO1C,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE;IA6CtF,OAAO,CAAC,kCAAkC;CAS7C"}
@@ -1,11 +1,65 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Schema = void 0;
4
+ const __1 = require("../..");
4
5
  const Schema_1 = require("../SQL/Schema");
6
+ const Create_1 = require("./Create");
7
+ const _1 = require(".");
8
+ const Alter_1 = require("./Alter");
5
9
  class Schema extends Schema_1.Schema {
6
- async addColumn(table, column) {
7
- await this.driver.run(`ALTER TABLE ${table}
8
- ADD ${this.getColumnSql(column)}`);
10
+ columnMetadataToColumnDefinition(metadata) {
11
+ return {
12
+ name: metadata.column,
13
+ primaryKey: metadata.constructor === __1.PrimaryField,
14
+ autoIncrement: Number(metadata.constructor === __1.PrimaryField),
15
+ type: this.getColumnTypeBasedOnTypescriptType(metadata),
16
+ default: undefined,
17
+ nullable: true
18
+ };
19
+ }
20
+ async create(table, columns) {
21
+ const columnsDefinitions = columns.map(column => this.columnMetadataToColumnDefinition(column));
22
+ const createStatement = new Create_1.Create(table, columnsDefinitions);
23
+ await this.driver.run(createStatement.toSQL());
24
+ }
25
+ async syncTableColumns(table, columnsMetadata) {
26
+ const columns = columnsMetadata.map(metadata => this.columnMetadataToColumnDefinition(metadata));
27
+ const tableColumns = await this.driver.tableColumns(table);
28
+ let alters = [];
29
+ alters = alters.concat(columns
30
+ .whereNotIn('name', tableColumns.pluck('name'))
31
+ .map(column => new Alter_1.AddColumn({ ...column, autoIncrement: undefined })));
32
+ columns.whereIn('name', tableColumns.pluck('name'))
33
+ .forEach(column => {
34
+ var _a;
35
+ const typeInDB = (_a = tableColumns.findWhere('name', column.name)) === null || _a === void 0 ? void 0 : _a.type;
36
+ if (typeInDB !== column.type) {
37
+ alters.push(new Alter_1.ModifyColumn(column));
38
+ }
39
+ });
40
+ alters = alters.concat(tableColumns
41
+ .whereNotIn('name', columns.pluck('name'))
42
+ .map(tableColumn => new Alter_1.DropColumn(tableColumn.name)));
43
+ await this.driver.run(new Alter_1.Alter(table, alters).toSQL());
44
+ const additionalAlters = [];
45
+ columns.forEach(column => {
46
+ const dbInfo = tableColumns.findWhere('name', column.name);
47
+ if (column.primaryKey && !(dbInfo === null || dbInfo === void 0 ? void 0 : dbInfo.primaryKey)) {
48
+ additionalAlters.push(new Alter_1.AddConstraint(column, Alter_1.Constraints.PrimaryKey));
49
+ }
50
+ if (column.autoIncrement && !(dbInfo === null || dbInfo === void 0 ? void 0 : dbInfo.autoIncrement)) {
51
+ additionalAlters.push(new Alter_1.ModifyColumn(column));
52
+ }
53
+ });
54
+ if (!additionalAlters.empty()) {
55
+ await this.driver.run(new Alter_1.Alter(table, additionalAlters).toSQL());
56
+ }
57
+ }
58
+ getColumnTypeBasedOnTypescriptType(column) {
59
+ var _a, _b, _c;
60
+ const typePrototype = Array.from(_1.typesMatches.keys())
61
+ .find(key => column.type().prototype instanceof key) || String;
62
+ return (_c = (_b = (_a = _1.typesMatches.get(column.type())) !== null && _a !== void 0 ? _a : _1.typesMatches.get(column.constructor)) !== null && _b !== void 0 ? _b : _1.typesMatches.get(typePrototype)) !== null && _c !== void 0 ? _c : _1.typesMatches.get(String);
9
63
  }
10
64
  }
11
65
  exports.Schema = Schema;
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Schema.ts"],"names":[],"mappings":";;;AACA,0CAAoD;AAEpD,MAAa,MAAO,SAAQ,eAAU;IAElC,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,MAA2B;QACtD,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,KAAK;kBAChC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC1C,CAAC;CAEJ;AAPD,wBAOC"}
1
+ {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/Schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
+ export declare const typesMatches: Map<any, string>;
1
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../Database/Drivers/MySQL/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,kBAQvB,CAAA"}