@spinajs/orm 2.0.46 → 2.0.49

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 (65) hide show
  1. package/README.md +11 -11
  2. package/lib/builders.d.ts +9 -8
  3. package/lib/builders.d.ts.map +1 -0
  4. package/lib/builders.js +277 -310
  5. package/lib/builders.js.map +1 -1
  6. package/lib/converters.d.ts +4 -3
  7. package/lib/converters.d.ts.map +1 -0
  8. package/lib/converters.js +11 -19
  9. package/lib/converters.js.map +1 -1
  10. package/lib/decorators.d.ts +4 -3
  11. package/lib/decorators.d.ts.map +1 -0
  12. package/lib/decorators.js +71 -99
  13. package/lib/decorators.js.map +1 -1
  14. package/lib/dehydrators.d.ts +2 -1
  15. package/lib/dehydrators.d.ts.map +1 -0
  16. package/lib/dehydrators.js +9 -16
  17. package/lib/dehydrators.js.map +1 -1
  18. package/lib/driver.d.ts +6 -5
  19. package/lib/driver.d.ts.map +1 -0
  20. package/lib/driver.js +20 -24
  21. package/lib/driver.js.map +1 -1
  22. package/lib/enums.d.ts +2 -1
  23. package/lib/enums.d.ts.map +1 -0
  24. package/lib/enums.js +14 -17
  25. package/lib/enums.js.map +1 -1
  26. package/lib/exceptions.d.ts +2 -1
  27. package/lib/exceptions.d.ts.map +1 -0
  28. package/lib/exceptions.js +2 -6
  29. package/lib/exceptions.js.map +1 -1
  30. package/lib/hydrators.d.ts +2 -1
  31. package/lib/hydrators.d.ts.map +1 -0
  32. package/lib/hydrators.js +23 -28
  33. package/lib/hydrators.js.map +1 -1
  34. package/lib/index.d.ts +16 -15
  35. package/lib/index.d.ts.map +1 -0
  36. package/lib/index.js +15 -31
  37. package/lib/index.js.map +1 -1
  38. package/lib/interfaces.d.ts +10 -9
  39. package/lib/interfaces.d.ts.map +1 -0
  40. package/lib/interfaces.js +76 -89
  41. package/lib/interfaces.js.map +1 -1
  42. package/lib/model.d.ts +8 -7
  43. package/lib/model.d.ts.map +1 -0
  44. package/lib/model.js +116 -154
  45. package/lib/model.js.map +1 -1
  46. package/lib/orm.d.ts +4 -3
  47. package/lib/orm.d.ts.map +1 -0
  48. package/lib/orm.js +45 -74
  49. package/lib/orm.js.map +1 -1
  50. package/lib/relations.d.ts +6 -11
  51. package/lib/relations.d.ts.map +1 -0
  52. package/lib/relations.js +56 -90
  53. package/lib/relations.js.map +1 -1
  54. package/lib/statements.d.ts +6 -7
  55. package/lib/statements.d.ts.map +1 -0
  56. package/lib/statements.js +55 -86
  57. package/lib/statements.js.map +1 -1
  58. package/lib/types.d.ts +15 -14
  59. package/lib/types.d.ts.map +1 -0
  60. package/lib/types.js +1 -2
  61. package/lib/wrappers.d.ts +2 -1
  62. package/lib/wrappers.d.ts.map +1 -0
  63. package/lib/wrappers.js +4 -7
  64. package/lib/wrappers.js.map +1 -1
  65. package/package.json +63 -61
package/lib/builders.js CHANGED
@@ -1,66 +1,30 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
1
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
2
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
3
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
23
6
  };
24
- var __importStar = (this && this.__importStar) || function (mod) {
25
- if (mod && mod.__esModule) return mod;
26
- var result = {};
27
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
- __setModuleDefault(result, mod);
29
- return result;
30
- };
31
7
  var __metadata = (this && this.__metadata) || function (k, v) {
32
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
33
9
  };
34
- var RawQuery_1, WhereBuilder_1;
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.SchemaQueryBuilder = exports.ScheduleQueryBuilder = exports.DropEventQueryBuilder = exports.EventQueryBuilder = exports.EventIntervalDesc = exports.CloneTableQueryBuilder = exports.TruncateTableQueryBuilder = exports.TableQueryBuilder = exports.AlterTableQueryBuilder = exports.DropTableQueryBuilder = exports.TableExistsQueryBuilder = exports.AlterColumnQueryBuilder = exports.ColumnQueryBuilder = exports.ForeignKeyBuilder = exports.IndexQueryBuilder = exports.InsertQueryBuilder = exports.UpdateQueryBuilder = exports.OnDuplicateQueryBuilder = exports.DeleteQueryBuilder = exports.SelectQueryBuilderC = exports.SelectQueryBuilder = exports.WhereBuilder = exports.WithRecursiveBuilder = exports.JoinBuilder = exports.GroupByBuilder = exports.RawQuery = exports.ColumnsBuilder = exports.OrderByBuilder = exports.LimitBuilder = exports.QueryBuilder = exports.Builder = void 0;
10
+ var RawQuery_1, WhereBuilder_1, SelectQueryBuilder_1;
37
11
  /* eslint-disable prettier/prettier */
38
- const di_1 = require("@spinajs/di");
39
- const exceptions_1 = require("@spinajs/exceptions");
40
- const exceptions_2 = require("./exceptions");
41
- const _ = __importStar(require("lodash"));
42
- const typescript_mix_1 = require("typescript-mix");
43
- const enums_1 = require("./enums");
44
- const interfaces_1 = require("./interfaces");
45
- const statements_1 = require("./statements");
46
- const driver_1 = require("./driver");
47
- const model_1 = require("./model");
48
- const relations_1 = require("./relations");
49
- const orm_1 = require("./orm");
12
+ import { Container, Inject, NewInstance, DI, Injectable } from '@spinajs/di';
13
+ import { InvalidArgument, MethodNotImplemented, InvalidOperation } from '../../exceptions/lib/index.js';
14
+ import { OrmException } from './exceptions.js';
15
+ import _ from 'lodash';
16
+ import { use } from 'typescript-mix';
17
+ import { ColumnMethods, ColumnType, QueryMethod, SordOrder, WhereBoolean, SqlOperator, JoinMethod } from './enums.js';
18
+ import { DeleteQueryCompiler, InsertQueryCompiler, SelectQueryCompiler, TruncateTableQueryCompiler, TableQueryCompiler, AlterTableQueryCompiler, UpdateQueryCompiler, QueryContext, IndexQueryCompiler, RelationType, ReferentialAction, DefaultValueBuilder, ColumnAlterationType, TableExistsCompiler, DropTableCompiler, TableCloneQueryCompiler, QueryMiddleware, DropEventQueryCompiler, EventQueryCompiler } from './interfaces.js';
19
+ import { BetweenStatement, ColumnMethodStatement, ColumnStatement, ExistsQueryStatement, InSetStatement, InStatement, RawQueryStatement, WhereQueryStatement, WhereStatement, ColumnRawStatement, JoinStatement, WithRecursiveStatement, GroupByStatement, Wrap } from './statements.js';
20
+ import { OrmDriver } from './driver.js';
21
+ import { extractModelDescriptor } from './model.js';
22
+ import { BelongsToRelation, OneToManyRelation, ManyToManyRelation, BelongsToRecursiveRelation } from './relations.js';
23
+ import { Orm } from './orm.js';
50
24
  function isWhereOperator(val) {
51
- return _.isString(val) && Object.values(enums_1.SqlOperator).includes(val.toLowerCase());
25
+ return _.isString(val) && Object.values(SqlOperator).includes(val.toLowerCase());
52
26
  }
53
27
  let Builder = class Builder {
54
- constructor(container, driver, model) {
55
- this._middlewares = [];
56
- this._queryMiddlewares = [];
57
- this._driver = driver;
58
- this._container = container;
59
- this._model = model;
60
- this._nonSelect = true;
61
- this._asRaw = false;
62
- this._queryMiddlewares = di_1.DI.resolve(Array.ofType(interfaces_1.QueryMiddleware));
63
- }
64
28
  get Driver() {
65
29
  return this._driver;
66
30
  }
@@ -70,6 +34,16 @@ let Builder = class Builder {
70
34
  get Model() {
71
35
  return this._model;
72
36
  }
37
+ constructor(container, driver, model) {
38
+ this._middlewares = [];
39
+ this._queryMiddlewares = [];
40
+ this._driver = driver;
41
+ this._container = container;
42
+ this._model = model;
43
+ this._nonSelect = true;
44
+ this._asRaw = false;
45
+ this._queryMiddlewares = DI.resolve(Array.ofType(QueryMiddleware));
46
+ }
73
47
  then(onfulfilled, onrejected) {
74
48
  const execute = (compiled) => {
75
49
  return this._driver
@@ -144,15 +118,15 @@ let Builder = class Builder {
144
118
  * Builds query that is ready to use in DB
145
119
  */
146
120
  toDB() {
147
- throw new exceptions_1.MethodNotImplemented();
121
+ throw new MethodNotImplemented();
148
122
  }
149
123
  };
150
124
  Builder = __decorate([
151
- (0, di_1.NewInstance)(),
152
- (0, di_1.Inject)(di_1.Container),
153
- __metadata("design:paramtypes", [Object, driver_1.OrmDriver, Object])
125
+ NewInstance(),
126
+ Inject(Container),
127
+ __metadata("design:paramtypes", [Object, OrmDriver, Object])
154
128
  ], Builder);
155
- exports.Builder = Builder;
129
+ export { Builder };
156
130
  /**
157
131
  * Base class for queires. Implements basic query functionality
158
132
  *
@@ -192,7 +166,7 @@ let QueryBuilder = class QueryBuilder extends Builder {
192
166
  */
193
167
  database(database) {
194
168
  if (!database) {
195
- throw new exceptions_1.InvalidArgument(`schema argument cannot be null or empty`);
169
+ throw new InvalidArgument(`schema argument cannot be null or empty`);
196
170
  }
197
171
  this._database = database;
198
172
  return this;
@@ -210,7 +184,7 @@ let QueryBuilder = class QueryBuilder extends Builder {
210
184
  */
211
185
  setTable(table, alias) {
212
186
  if (!table.trim()) {
213
- throw new exceptions_1.InvalidArgument('table name is empty');
187
+ throw new InvalidArgument('table name is empty');
214
188
  }
215
189
  this._table = table;
216
190
  this.setAlias(alias);
@@ -230,11 +204,11 @@ let QueryBuilder = class QueryBuilder extends Builder {
230
204
  }
231
205
  };
232
206
  QueryBuilder = __decorate([
233
- (0, di_1.NewInstance)(),
234
- (0, di_1.Inject)(di_1.Container),
235
- __metadata("design:paramtypes", [Object, driver_1.OrmDriver, Object])
207
+ NewInstance(),
208
+ Inject(Container),
209
+ __metadata("design:paramtypes", [Object, OrmDriver, Object])
236
210
  ], QueryBuilder);
237
- exports.QueryBuilder = QueryBuilder;
211
+ export { QueryBuilder };
238
212
  let LimitBuilder = class LimitBuilder {
239
213
  constructor() {
240
214
  this._first = false;
@@ -245,14 +219,14 @@ let LimitBuilder = class LimitBuilder {
245
219
  }
246
220
  take(count) {
247
221
  if (count <= 0) {
248
- throw new exceptions_1.InvalidArgument(`take count cannot be negative number`);
222
+ throw new InvalidArgument(`take count cannot be negative number`);
249
223
  }
250
224
  this._limit.limit = count;
251
225
  return this;
252
226
  }
253
227
  skip(count) {
254
228
  if (count < 0) {
255
- throw new exceptions_1.InvalidArgument(`skip count cannot be negative number`);
229
+ throw new InvalidArgument(`skip count cannot be negative number`);
256
230
  }
257
231
  this._limit.offset = count;
258
232
  return this;
@@ -263,7 +237,7 @@ let LimitBuilder = class LimitBuilder {
263
237
  return (await this);
264
238
  }
265
239
  async firstOrFail() {
266
- return this.firstOrThrow(new exceptions_2.OrmException('not found'));
240
+ return this.firstOrThrow(new OrmException('not found'));
267
241
  }
268
242
  async orThrow(error) {
269
243
  const result = (await this);
@@ -284,15 +258,15 @@ let LimitBuilder = class LimitBuilder {
284
258
  }
285
259
  };
286
260
  LimitBuilder = __decorate([
287
- (0, di_1.NewInstance)(),
261
+ NewInstance(),
288
262
  __metadata("design:paramtypes", [])
289
263
  ], LimitBuilder);
290
- exports.LimitBuilder = LimitBuilder;
264
+ export { LimitBuilder };
291
265
  let OrderByBuilder = class OrderByBuilder {
292
266
  constructor() {
293
267
  this._sort = {
294
268
  column: '',
295
- order: enums_1.SordOrder.ASC,
269
+ order: SordOrder.ASC,
296
270
  };
297
271
  }
298
272
  order(column, direction) {
@@ -305,14 +279,14 @@ let OrderByBuilder = class OrderByBuilder {
305
279
  orderBy(column) {
306
280
  this._sort = {
307
281
  column,
308
- order: enums_1.SordOrder.ASC,
282
+ order: SordOrder.ASC,
309
283
  };
310
284
  return this;
311
285
  }
312
286
  orderByDescending(column) {
313
287
  this._sort = {
314
288
  column,
315
- order: enums_1.SordOrder.DESC,
289
+ order: SordOrder.DESC,
316
290
  };
317
291
  return this;
318
292
  }
@@ -321,10 +295,10 @@ let OrderByBuilder = class OrderByBuilder {
321
295
  }
322
296
  };
323
297
  OrderByBuilder = __decorate([
324
- (0, di_1.NewInstance)(),
298
+ NewInstance(),
325
299
  __metadata("design:paramtypes", [])
326
300
  ], OrderByBuilder);
327
- exports.OrderByBuilder = OrderByBuilder;
301
+ export { OrderByBuilder };
328
302
  let ColumnsBuilder = class ColumnsBuilder {
329
303
  constructor() {
330
304
  this._columns = [];
@@ -342,24 +316,24 @@ let ColumnsBuilder = class ColumnsBuilder {
342
316
  return this;
343
317
  }
344
318
  columns(names) {
345
- const descriptor = (0, model_1.extractModelDescriptor)(this._model);
319
+ const descriptor = extractModelDescriptor(this._model);
346
320
  this._columns = names.map((n) => {
347
- return this._container.resolve(statements_1.ColumnStatement, [n, null, this._tableAlias, descriptor === null || descriptor === void 0 ? void 0 : descriptor.Columns.find((c) => c.Name === n)]);
321
+ return this._container.resolve(ColumnStatement, [n, null, this._tableAlias, descriptor?.Columns.find((c) => c.Name === n)]);
348
322
  });
349
323
  return this;
350
324
  }
351
325
  select(column, alias) {
352
- const descriptor = (0, model_1.extractModelDescriptor)(this._model);
326
+ const descriptor = extractModelDescriptor(this._model);
353
327
  if (column instanceof Map) {
354
328
  column.forEach((alias, colName) => {
355
- this._columns.push(this._container.resolve(statements_1.ColumnStatement, [colName, alias, this._tableAlias, descriptor === null || descriptor === void 0 ? void 0 : descriptor.Columns.find((c) => c.Name === colName)]));
329
+ this._columns.push(this._container.resolve(ColumnStatement, [colName, alias, this._tableAlias, descriptor?.Columns.find((c) => c.Name === colName)]));
356
330
  });
357
331
  }
358
332
  if (column instanceof RawQuery) {
359
- this._columns.push(this._container.resolve(statements_1.ColumnRawStatement, [column, null, this._tableAlias]));
333
+ this._columns.push(this._container.resolve(ColumnRawStatement, [column, null, this._tableAlias]));
360
334
  }
361
335
  else {
362
- this._columns.push(this._container.resolve(statements_1.ColumnStatement, [column, alias, this._tableAlias, descriptor === null || descriptor === void 0 ? void 0 : descriptor.Columns.find((c) => c.Name === column)]));
336
+ this._columns.push(this._container.resolve(ColumnStatement, [column, alias, this._tableAlias, descriptor?.Columns.find((c) => c.Name === column)]));
363
337
  }
364
338
  return this;
365
339
  }
@@ -368,17 +342,11 @@ let ColumnsBuilder = class ColumnsBuilder {
368
342
  }
369
343
  };
370
344
  ColumnsBuilder = __decorate([
371
- (0, di_1.NewInstance)(),
345
+ NewInstance(),
372
346
  __metadata("design:paramtypes", [])
373
347
  ], ColumnsBuilder);
374
- exports.ColumnsBuilder = ColumnsBuilder;
348
+ export { ColumnsBuilder };
375
349
  let RawQuery = RawQuery_1 = class RawQuery {
376
- constructor(query, bindings) {
377
- this._query = '';
378
- this._bindings = [];
379
- this._query = query;
380
- this._bindings = bindings;
381
- }
382
350
  get Query() {
383
351
  return this._query;
384
352
  }
@@ -388,13 +356,19 @@ let RawQuery = RawQuery_1 = class RawQuery {
388
356
  static create(query, bindings) {
389
357
  return new RawQuery_1(query, bindings);
390
358
  }
359
+ constructor(query, bindings) {
360
+ this._query = '';
361
+ this._bindings = [];
362
+ this._query = query;
363
+ this._bindings = bindings;
364
+ }
391
365
  };
392
366
  RawQuery = RawQuery_1 = __decorate([
393
- (0, di_1.NewInstance)(),
367
+ NewInstance(),
394
368
  __metadata("design:paramtypes", [String, Array])
395
369
  ], RawQuery);
396
- exports.RawQuery = RawQuery;
397
- class GroupByBuilder {
370
+ export { RawQuery };
371
+ export class GroupByBuilder {
398
372
  constructor() {
399
373
  this._groupStatements = [];
400
374
  }
@@ -406,98 +380,96 @@ class GroupByBuilder {
406
380
  return this;
407
381
  }
408
382
  groupBy(expression) {
409
- this._groupStatements.push(this._container.resolve(statements_1.GroupByStatement, [expression]));
383
+ this._groupStatements.push(this._container.resolve(GroupByStatement, [expression]));
410
384
  return this;
411
385
  }
412
386
  }
413
- exports.GroupByBuilder = GroupByBuilder;
414
- class JoinBuilder {
387
+ export class JoinBuilder {
388
+ get JoinStatements() {
389
+ return this._joinStatements;
390
+ }
415
391
  constructor(container) {
416
392
  this._joinStatements = [];
417
393
  this._container = container;
418
394
  this._joinStatements = [];
419
395
  }
420
- get JoinStatements() {
421
- return this._joinStatements;
422
- }
423
396
  clearJoins() {
424
397
  this._joinStatements = [];
425
398
  return this;
426
399
  }
427
400
  innerJoin(_table, _AliasOrForeignKey, _fkOrPkKey, _primaryKey) {
428
- this.addJoinStatement.call(this, enums_1.JoinMethod.INNER, ...arguments);
401
+ this.addJoinStatement.call(this, JoinMethod.INNER, ...arguments);
429
402
  return this;
430
403
  }
431
404
  leftJoin(_table, _AliasOrForeignKey, _fkOrPkKey, _primaryKey) {
432
- this.addJoinStatement.call(this, enums_1.JoinMethod.LEFT, ...arguments);
405
+ this.addJoinStatement.call(this, JoinMethod.LEFT, ...arguments);
433
406
  return this;
434
407
  }
435
408
  leftOuterJoin(_table, _AliasOrForeignKey, _fkOrPkKey, _primaryKey) {
436
- this.addJoinStatement.call(this, enums_1.JoinMethod.LEFT_OUTER, ...arguments);
409
+ this.addJoinStatement.call(this, JoinMethod.LEFT_OUTER, ...arguments);
437
410
  return this;
438
411
  }
439
412
  rightJoin(_table, _AliasOrForeignKey, _fkOrPkKey, _primaryKey) {
440
- this.addJoinStatement.call(this, enums_1.JoinMethod.RIGHT, ...arguments);
413
+ this.addJoinStatement.call(this, JoinMethod.RIGHT, ...arguments);
441
414
  return this;
442
415
  }
443
416
  rightOuterJoin(_table, _AliasOrForeignKey, _fkOrPkKey, _primaryKey) {
444
- this.addJoinStatement.call(this, enums_1.JoinMethod.RIGHT_OUTER, ...arguments);
417
+ this.addJoinStatement.call(this, JoinMethod.RIGHT_OUTER, ...arguments);
445
418
  return this;
446
419
  }
447
420
  fullOuterJoin(_table, _AliasOrForeignKey, _fkOrPkKey, _primaryKey) {
448
- this.addJoinStatement.call(this, enums_1.JoinMethod.FULL_OUTER, ...arguments);
421
+ this.addJoinStatement.call(this, JoinMethod.FULL_OUTER, ...arguments);
449
422
  return this;
450
423
  }
451
424
  crossJoin(_table, _AliasOrForeignKey, _fkOrPkKey, _primaryKey) {
452
- this.addJoinStatement.call(this, enums_1.JoinMethod.CROSS, ...arguments);
425
+ this.addJoinStatement.call(this, JoinMethod.CROSS, ...arguments);
453
426
  return this;
454
427
  }
455
428
  addJoinStatement(method, table, AliasOrForeignKey, fkOrPkKey, primaryKey) {
456
429
  let stmt = null;
457
430
  if (arguments.length === 3) {
458
- stmt = this._container.resolve(statements_1.JoinStatement, [this, this._model, table, method, AliasOrForeignKey]);
431
+ stmt = this._container.resolve(JoinStatement, [this, this._model, table, method, AliasOrForeignKey]);
459
432
  }
460
433
  else if (arguments.length === 4) {
461
- stmt = this._container.resolve(statements_1.JoinStatement, [this, this._model, table, method, AliasOrForeignKey, fkOrPkKey, null, this._tableAlias]);
434
+ stmt = this._container.resolve(JoinStatement, [this, this._model, table, method, AliasOrForeignKey, fkOrPkKey, null, this._tableAlias]);
462
435
  }
463
436
  else if (arguments.length === 5) {
464
- stmt = this._container.resolve(statements_1.JoinStatement, [this, this._model, table, method, fkOrPkKey, primaryKey, AliasOrForeignKey, this._tableAlias]);
437
+ stmt = this._container.resolve(JoinStatement, [this, this._model, table, method, fkOrPkKey, primaryKey, AliasOrForeignKey, this._tableAlias]);
465
438
  }
466
439
  else {
467
- stmt = this._container.resolve(statements_1.JoinStatement, [this, this._model, table, method]);
440
+ stmt = this._container.resolve(JoinStatement, [this, this._model, table, method]);
468
441
  }
469
442
  this.JoinStatements.push(stmt);
470
443
  }
471
444
  }
472
- exports.JoinBuilder = JoinBuilder;
473
445
  let WithRecursiveBuilder = class WithRecursiveBuilder {
474
446
  get CteRecursive() {
475
447
  return this._cteStatement;
476
448
  }
477
449
  withRecursive(rcKeyName, pkName) {
478
- this._cteStatement = this._container.resolve(statements_1.WithRecursiveStatement, ['cte', this, rcKeyName, pkName]);
450
+ this._cteStatement = this._container.resolve(WithRecursiveStatement, ['cte', this, rcKeyName, pkName]);
479
451
  return this;
480
452
  }
481
453
  };
482
454
  WithRecursiveBuilder = __decorate([
483
- (0, di_1.NewInstance)()
455
+ NewInstance()
484
456
  ], WithRecursiveBuilder);
485
- exports.WithRecursiveBuilder = WithRecursiveBuilder;
457
+ export { WithRecursiveBuilder };
486
458
  let WhereBuilder = WhereBuilder_1 = class WhereBuilder {
487
- constructor(container, tableAlias) {
488
- this._statements = [];
489
- this._boolean = enums_1.WhereBoolean.AND;
490
- this._container = container;
491
- this._boolean = enums_1.WhereBoolean.AND;
492
- this._statements = [];
493
- this._tableAlias = tableAlias;
494
- }
495
459
  get Statements() {
496
460
  return this._statements;
497
461
  }
498
462
  get Op() {
499
463
  return this._boolean;
500
464
  }
465
+ constructor(container, tableAlias) {
466
+ this._statements = [];
467
+ this._boolean = WhereBoolean.AND;
468
+ this._container = container;
469
+ this._boolean = WhereBoolean.AND;
470
+ this._statements = [];
471
+ this._tableAlias = tableAlias;
472
+ }
501
473
  where(column, operator, value) {
502
474
  const self = this;
503
475
  // Support "where true || where false"
@@ -505,18 +477,18 @@ let WhereBuilder = WhereBuilder_1 = class WhereBuilder {
505
477
  return this.where(RawQuery.create(column ? 'TRUE' : 'FALSE'));
506
478
  }
507
479
  if (column instanceof RawQuery) {
508
- this.Statements.push(this._container.resolve(statements_1.RawQueryStatement, [column.Query, column.Bindings, self._tableAlias]));
480
+ this.Statements.push(this._container.resolve(RawQueryStatement, [column.Query, column.Bindings, self._tableAlias]));
509
481
  return this;
510
482
  }
511
483
  // handle nested where's
512
484
  if (_.isFunction(column)) {
513
485
  const builder = new WhereBuilder_1(this._container, this._tableAlias);
514
486
  column.call(builder);
515
- self.Statements.push(this._container.resolve(statements_1.WhereQueryStatement, [builder, self._tableAlias]));
487
+ self.Statements.push(this._container.resolve(WhereQueryStatement, [builder, self._tableAlias]));
516
488
  return this;
517
489
  }
518
490
  // handle simple key = object[key] AND ....
519
- if (_.isObject(column) && !(column instanceof statements_1.Wrap)) {
491
+ if (_.isObject(column) && !(column instanceof Wrap)) {
520
492
  return this.whereObject(column);
521
493
  }
522
494
  if (typeof value === 'undefined') {
@@ -530,15 +502,15 @@ let WhereBuilder = WhereBuilder_1 = class WhereBuilder {
530
502
  function _handleForTwo(c, v) {
531
503
  let sVal = v;
532
504
  if (sVal === undefined) {
533
- throw new exceptions_1.InvalidArgument(`value cannot be undefined`);
505
+ throw new InvalidArgument(`value cannot be undefined`);
534
506
  }
535
- if (!_.isString(c) && !(c instanceof statements_1.Wrap)) {
536
- throw new exceptions_1.InvalidArgument(`column is not of type string or wrapped.`);
507
+ if (!_.isString(c) && !(c instanceof Wrap)) {
508
+ throw new InvalidArgument(`column is not of type string or wrapped.`);
537
509
  }
538
510
  if (sVal === null) {
539
511
  return this.whereNull(c);
540
512
  }
541
- self._statements.push(self._container.resolve(statements_1.WhereStatement, [c, enums_1.SqlOperator.EQ, sVal, self._tableAlias, this._container, self._model]));
513
+ self._statements.push(self._container.resolve(WhereStatement, [c, SqlOperator.EQ, sVal, self._tableAlias, this._container, self._model]));
542
514
  return self;
543
515
  }
544
516
  /**
@@ -548,76 +520,76 @@ let WhereBuilder = WhereBuilder_1 = class WhereBuilder {
548
520
  function _handleForThree(c, o, v) {
549
521
  let sVal = v;
550
522
  if (!isWhereOperator(o)) {
551
- throw new exceptions_1.InvalidArgument(`operator ${o} is invalid`);
523
+ throw new InvalidArgument(`operator ${o} is invalid`);
552
524
  }
553
- if (!_.isString(c) && !(c instanceof statements_1.Wrap)) {
554
- throw new exceptions_1.InvalidArgument(`column is not of type string or wrapped.`);
525
+ if (!_.isString(c) && !(c instanceof Wrap)) {
526
+ throw new InvalidArgument(`column is not of type string or wrapped.`);
555
527
  }
556
528
  if (sVal === null) {
557
529
  return this.whereNull(c);
558
530
  }
559
531
  if (sVal === null) {
560
- return o === enums_1.SqlOperator.NOT_NULL ? this.whereNotNull(c) : this.whereNull(c);
532
+ return o === SqlOperator.NOT_NULL ? this.whereNotNull(c) : this.whereNull(c);
561
533
  }
562
- self._statements.push(self._container.resolve(statements_1.WhereStatement, [c, o, sVal, self._tableAlias, this._container, self._model]));
534
+ self._statements.push(self._container.resolve(WhereStatement, [c, o, sVal, self._tableAlias, this._container, self._model]));
563
535
  return this;
564
536
  }
565
537
  }
566
538
  orWhere(column, ..._args) {
567
- this._boolean = enums_1.WhereBoolean.OR;
539
+ this._boolean = WhereBoolean.OR;
568
540
  return this.where(column, ...Array.from(arguments).slice(1));
569
541
  }
570
542
  andWhere(column, ..._args) {
571
- this._boolean = enums_1.WhereBoolean.AND;
543
+ this._boolean = WhereBoolean.AND;
572
544
  return this.where(column, ...Array.from(arguments).slice(1));
573
545
  }
574
546
  whereObject(obj) {
575
547
  for (const key of Object.keys(obj)) {
576
- this.andWhere(key, enums_1.SqlOperator.EQ, obj[key]);
548
+ this.andWhere(key, SqlOperator.EQ, obj[key]);
577
549
  }
578
550
  return this;
579
551
  }
580
552
  whereNotNull(column) {
581
- this._statements.push(this._container.resolve(statements_1.WhereStatement, [column, enums_1.SqlOperator.NOT_NULL, null, this._tableAlias, this._container]));
553
+ this._statements.push(this._container.resolve(WhereStatement, [column, SqlOperator.NOT_NULL, null, this._tableAlias, this._container]));
582
554
  return this;
583
555
  }
584
556
  whereNull(column) {
585
- this._statements.push(this._container.resolve(statements_1.WhereStatement, [column, enums_1.SqlOperator.NULL, null, this._tableAlias, this._container]));
557
+ this._statements.push(this._container.resolve(WhereStatement, [column, SqlOperator.NULL, null, this._tableAlias, this._container]));
586
558
  return this;
587
559
  }
588
560
  whereNot(column, val) {
589
- return this.where(column, enums_1.SqlOperator.NOT, val);
561
+ return this.where(column, SqlOperator.NOT, val);
590
562
  }
591
563
  whereIn(column, val) {
592
- this._statements.push(this._container.resolve(statements_1.InStatement, [column, val, false, this._tableAlias, this._container]));
564
+ this._statements.push(this._container.resolve(InStatement, [column, val, false, this._tableAlias, this._container]));
593
565
  return this;
594
566
  }
595
567
  whereNotIn(column, val) {
596
- this._statements.push(this._container.resolve(statements_1.InStatement, [column, val, true, this._tableAlias, this._container]));
568
+ this._statements.push(this._container.resolve(InStatement, [column, val, true, this._tableAlias, this._container]));
597
569
  return this;
598
570
  }
599
571
  whereExist(query) {
600
- this._statements.push(this._container.resolve(statements_1.ExistsQueryStatement, [query, false]));
572
+ this._statements.push(this._container.resolve(ExistsQueryStatement, [query, false]));
601
573
  return this;
602
574
  }
603
575
  whereNotExists(query) {
604
- this._statements.push(this._container.resolve(statements_1.ExistsQueryStatement, [query, true]));
576
+ this._statements.push(this._container.resolve(ExistsQueryStatement, [query, true]));
605
577
  return this;
606
578
  }
607
579
  whereBetween(column, val) {
608
- this._statements.push(this._container.resolve(statements_1.BetweenStatement, [column, val, false, this._tableAlias]));
580
+ this._statements.push(this._container.resolve(BetweenStatement, [column, val, false, this._tableAlias]));
609
581
  return this;
610
582
  }
611
583
  whereNotBetween(column, val) {
612
- this._statements.push(this._container.resolve(statements_1.BetweenStatement, [column, val, true, this._tableAlias]));
584
+ this._statements.push(this._container.resolve(BetweenStatement, [column, val, true, this._tableAlias]));
613
585
  return this;
614
586
  }
615
587
  whereInSet(column, val) {
616
- this._statements.push(this._container.resolve(statements_1.InSetStatement, [column, val, false, this._tableAlias]));
588
+ this._statements.push(this._container.resolve(InSetStatement, [column, val, false, this._tableAlias]));
617
589
  return this;
618
590
  }
619
591
  whereNotInSet(column, val) {
620
- this._statements.push(this._container.resolve(statements_1.InSetStatement, [column, val, true, this._tableAlias]));
592
+ this._statements.push(this._container.resolve(InSetStatement, [column, val, true, this._tableAlias]));
621
593
  return this;
622
594
  }
623
595
  clearWhere() {
@@ -626,11 +598,20 @@ let WhereBuilder = WhereBuilder_1 = class WhereBuilder {
626
598
  }
627
599
  };
628
600
  WhereBuilder = WhereBuilder_1 = __decorate([
629
- (0, di_1.NewInstance)(),
630
- __metadata("design:paramtypes", [di_1.Container, String])
601
+ NewInstance(),
602
+ __metadata("design:paramtypes", [Container, String])
631
603
  ], WhereBuilder);
632
- exports.WhereBuilder = WhereBuilder;
633
- class SelectQueryBuilder extends QueryBuilder {
604
+ export { WhereBuilder };
605
+ let SelectQueryBuilder = SelectQueryBuilder_1 = class SelectQueryBuilder extends QueryBuilder {
606
+ get Owner() {
607
+ return this._owner;
608
+ }
609
+ get IsDistinct() {
610
+ return this._distinct;
611
+ }
612
+ get Relations() {
613
+ return this._relations;
614
+ }
634
615
  constructor(container, driver, model, owner) {
635
616
  super(container, driver, model);
636
617
  this._columns = [];
@@ -643,11 +624,11 @@ class SelectQueryBuilder extends QueryBuilder {
643
624
  this._relations = [];
644
625
  this._owner = owner;
645
626
  this._distinct = false;
646
- this._method = enums_1.QueryMethod.SELECT;
647
- this._boolean = enums_1.WhereBoolean.AND;
627
+ this._method = QueryMethod.SELECT;
628
+ this._boolean = WhereBoolean.AND;
648
629
  this._sort = {
649
630
  column: '',
650
- order: enums_1.SordOrder.ASC,
631
+ order: SordOrder.ASC,
651
632
  };
652
633
  this._first = false;
653
634
  this._limit = {
@@ -655,18 +636,9 @@ class SelectQueryBuilder extends QueryBuilder {
655
636
  offset: -1,
656
637
  };
657
638
  this._nonSelect = false;
658
- this.QueryContext = interfaces_1.QueryContext.Select;
639
+ this.QueryContext = QueryContext.Select;
659
640
  this._queryMiddlewares.forEach((x) => x.afterQueryCreation(this));
660
641
  }
661
- get Owner() {
662
- return this._owner;
663
- }
664
- get IsDistinct() {
665
- return this._distinct;
666
- }
667
- get Relations() {
668
- return this._relations;
669
- }
670
642
  async asRaw() {
671
643
  this._asRaw = true;
672
644
  return (await this);
@@ -679,12 +651,12 @@ class SelectQueryBuilder extends QueryBuilder {
679
651
  return this;
680
652
  }
681
653
  clone() {
682
- const builder = new SelectQueryBuilder(this._container, this._driver, this._model, this._owner);
654
+ const builder = new SelectQueryBuilder_1(this._container, this._driver, this._model, this._owner);
683
655
  builder._columns = this._columns.slice(0);
684
656
  builder._joinStatements = this._joinStatements.slice(0);
685
657
  builder._statements = this._statements.slice(0);
686
- builder._limit = Object.assign({}, this._limit);
687
- builder._sort = Object.assign({}, this._sort);
658
+ builder._limit = { ...this._limit };
659
+ builder._sort = { ...this._sort };
688
660
  builder._boolean = this._boolean;
689
661
  builder._distinct = this._distinct;
690
662
  builder._table = this._table;
@@ -692,7 +664,6 @@ class SelectQueryBuilder extends QueryBuilder {
692
664
  return builder;
693
665
  }
694
666
  populate(relation, callback) {
695
- var _a;
696
667
  // if relation was already populated, just call callback on it
697
668
  const fRelation = this._relations.find((r) => r.Name === relation);
698
669
  if (fRelation) {
@@ -700,27 +671,27 @@ class SelectQueryBuilder extends QueryBuilder {
700
671
  return;
701
672
  }
702
673
  let relInstance = null;
703
- const descriptor = (0, model_1.extractModelDescriptor)(this._model);
674
+ const descriptor = extractModelDescriptor(this._model);
704
675
  if (!descriptor.Relations.has(relation)) {
705
- throw new exceptions_1.InvalidArgument(`Relation ${relation} not exists in model ${(_a = this._model) === null || _a === void 0 ? void 0 : _a.constructor.name}`);
676
+ throw new InvalidArgument(`Relation ${relation} not exists in model ${this._model?.constructor.name}`);
706
677
  }
707
678
  const relDescription = descriptor.Relations.get(relation);
708
- if (relDescription.Type === interfaces_1.RelationType.One && relDescription.Recursive) {
709
- relInstance = this._container.resolve(relations_1.BelongsToRecursiveRelation, [this._container.get(orm_1.Orm), this, relDescription, this._owner]);
679
+ if (relDescription.Type === RelationType.One && relDescription.Recursive) {
680
+ relInstance = this._container.resolve(BelongsToRecursiveRelation, [this._container.get(Orm), this, relDescription, this._owner]);
710
681
  }
711
682
  else {
712
683
  if (relDescription.Recursive) {
713
- throw new exceptions_1.InvalidOperation(`cannot mark relation as recursive with non one-to-one relation type`);
684
+ throw new InvalidOperation(`cannot mark relation as recursive with non one-to-one relation type`);
714
685
  }
715
686
  switch (relDescription.Type) {
716
- case interfaces_1.RelationType.One:
717
- relInstance = this._container.resolve(relations_1.BelongsToRelation, [this._container.get(orm_1.Orm), this, relDescription, this._owner]);
687
+ case RelationType.One:
688
+ relInstance = this._container.resolve(BelongsToRelation, [this._container.get(Orm), this, relDescription, this._owner]);
718
689
  break;
719
- case interfaces_1.RelationType.Many:
720
- relInstance = this._container.resolve(relations_1.OneToManyRelation, [this._container.get(orm_1.Orm), this, relDescription, this._owner]);
690
+ case RelationType.Many:
691
+ relInstance = this._container.resolve(OneToManyRelation, [this._container.get(Orm), this, relDescription, this._owner]);
721
692
  break;
722
- case interfaces_1.RelationType.ManyToMany:
723
- relInstance = this._container.resolve(relations_1.ManyToManyRelation, [this._container.get(orm_1.Orm), this, relDescription, null]);
693
+ case RelationType.ManyToMany:
694
+ relInstance = this._container.resolve(ManyToManyRelation, [this._container.get(Orm), this, relDescription, null]);
724
695
  break;
725
696
  }
726
697
  }
@@ -737,34 +708,34 @@ class SelectQueryBuilder extends QueryBuilder {
737
708
  this._middlewares = this._middlewares.concat(builder._middlewares);
738
709
  }
739
710
  min(column, as) {
740
- this._columns.push(this._container.resolve(statements_1.ColumnMethodStatement, [column, enums_1.ColumnMethods.MIN, as, this._tableAlias]));
711
+ this._columns.push(this._container.resolve(ColumnMethodStatement, [column, ColumnMethods.MIN, as, this._tableAlias]));
741
712
  return this;
742
713
  }
743
714
  max(column, as) {
744
- this._columns.push(this._container.resolve(statements_1.ColumnMethodStatement, [column, enums_1.ColumnMethods.MAX, as, this._tableAlias]));
715
+ this._columns.push(this._container.resolve(ColumnMethodStatement, [column, ColumnMethods.MAX, as, this._tableAlias]));
745
716
  return this;
746
717
  }
747
718
  count(column, as) {
748
- this._columns.push(this._container.resolve(statements_1.ColumnMethodStatement, [column, enums_1.ColumnMethods.COUNT, as, this._tableAlias]));
719
+ this._columns.push(this._container.resolve(ColumnMethodStatement, [column, ColumnMethods.COUNT, as, this._tableAlias]));
749
720
  return this;
750
721
  }
751
722
  sum(column, as) {
752
- this._columns.push(this._container.resolve(statements_1.ColumnMethodStatement, [column, enums_1.ColumnMethods.SUM, as, this._tableAlias]));
723
+ this._columns.push(this._container.resolve(ColumnMethodStatement, [column, ColumnMethods.SUM, as, this._tableAlias]));
753
724
  return this;
754
725
  }
755
726
  avg(column, as) {
756
- this._columns.push(this._container.resolve(statements_1.ColumnMethodStatement, [column, enums_1.ColumnMethods.AVG, as, this._tableAlias]));
727
+ this._columns.push(this._container.resolve(ColumnMethodStatement, [column, ColumnMethods.AVG, as, this._tableAlias]));
757
728
  return this;
758
729
  }
759
730
  distinct() {
760
731
  if (this._columns.length === 0 || this._columns[0].IsWildcard) {
761
- throw new exceptions_1.InvalidOperation('Cannot force DISTINCT on unknown column');
732
+ throw new InvalidOperation('Cannot force DISTINCT on unknown column');
762
733
  }
763
734
  this._distinct = true;
764
735
  return this;
765
736
  }
766
737
  toDB() {
767
- const compiler = this._container.resolve(interfaces_1.SelectQueryCompiler, [this]);
738
+ const compiler = this._container.resolve(SelectQueryCompiler, [this]);
768
739
  return compiler.compile();
769
740
  }
770
741
  then(onfulfilled, onrejected) {
@@ -790,37 +761,41 @@ class SelectQueryBuilder extends QueryBuilder {
790
761
  async execute() {
791
762
  return (await this);
792
763
  }
793
- }
764
+ };
794
765
  __decorate([
795
- (0, typescript_mix_1.use)(WhereBuilder, LimitBuilder, OrderByBuilder, ColumnsBuilder, JoinBuilder, WithRecursiveBuilder, GroupByBuilder),
766
+ use(WhereBuilder, LimitBuilder, OrderByBuilder, ColumnsBuilder, JoinBuilder, WithRecursiveBuilder, GroupByBuilder),
796
767
  __metadata("design:type", Object)
797
768
  ], SelectQueryBuilder.prototype, "this", void 0);
798
- exports.SelectQueryBuilder = SelectQueryBuilder;
799
- class SelectQueryBuilderC extends SelectQueryBuilder {
769
+ SelectQueryBuilder = SelectQueryBuilder_1 = __decorate([
770
+ Injectable(SelectQueryBuilder_1),
771
+ __metadata("design:paramtypes", [Object, OrmDriver, Object, Object])
772
+ ], SelectQueryBuilder);
773
+ export { SelectQueryBuilder };
774
+ export class SelectQueryBuilderC extends SelectQueryBuilder {
800
775
  }
801
- exports.SelectQueryBuilderC = SelectQueryBuilderC;
802
- class DeleteQueryBuilder extends QueryBuilder {
776
+ export class DeleteQueryBuilder extends QueryBuilder {
803
777
  constructor(container, driver, model) {
804
778
  super(container, driver, model);
805
- this._method = enums_1.QueryMethod.DELETE;
779
+ this._method = QueryMethod.DELETE;
806
780
  this._statements = [];
807
- this._boolean = enums_1.WhereBoolean.AND;
781
+ this._boolean = WhereBoolean.AND;
808
782
  this._limit = {
809
783
  limit: -1,
810
784
  offset: -1,
811
785
  };
812
- this.QueryContext = interfaces_1.QueryContext.Delete;
786
+ this.QueryContext = QueryContext.Delete;
813
787
  }
814
788
  toDB() {
815
- return this._container.resolve(interfaces_1.DeleteQueryCompiler, [this]).compile();
789
+ return this._container.resolve(DeleteQueryCompiler, [this]).compile();
816
790
  }
817
791
  }
818
792
  __decorate([
819
- (0, typescript_mix_1.use)(WhereBuilder, LimitBuilder),
793
+ use(WhereBuilder, LimitBuilder)
794
+ /// @ts-ignore
795
+ ,
820
796
  __metadata("design:type", Object)
821
797
  ], DeleteQueryBuilder.prototype, "this", void 0);
822
- exports.DeleteQueryBuilder = DeleteQueryBuilder;
823
- class OnDuplicateQueryBuilder {
798
+ export class OnDuplicateQueryBuilder {
824
799
  constructor(container, insertQueryBuilder, column) {
825
800
  this._parent = insertQueryBuilder;
826
801
  this._container = container;
@@ -846,18 +821,17 @@ class OnDuplicateQueryBuilder {
846
821
  return this._parent.toDB();
847
822
  }
848
823
  }
849
- exports.OnDuplicateQueryBuilder = OnDuplicateQueryBuilder;
850
- class UpdateQueryBuilder extends QueryBuilder {
824
+ export class UpdateQueryBuilder extends QueryBuilder {
825
+ get Value() {
826
+ return this._value;
827
+ }
851
828
  constructor(container, driver, model) {
852
829
  super(container, driver, model);
853
830
  this._value = {};
854
- this._method = enums_1.QueryMethod.UPDATE;
855
- this._boolean = enums_1.WhereBoolean.AND;
831
+ this._method = QueryMethod.UPDATE;
832
+ this._boolean = WhereBoolean.AND;
856
833
  this._statements = [];
857
- this.QueryContext = interfaces_1.QueryContext.Update;
858
- }
859
- get Value() {
860
- return this._value;
834
+ this.QueryContext = QueryContext.Update;
861
835
  }
862
836
  in(name) {
863
837
  this.setTable(name);
@@ -868,22 +842,14 @@ class UpdateQueryBuilder extends QueryBuilder {
868
842
  return this;
869
843
  }
870
844
  toDB() {
871
- return this._container.resolve(interfaces_1.UpdateQueryCompiler, [this]).compile();
845
+ return this._container.resolve(UpdateQueryCompiler, [this]).compile();
872
846
  }
873
847
  }
874
848
  __decorate([
875
- (0, typescript_mix_1.use)(WhereBuilder),
849
+ use(WhereBuilder),
876
850
  __metadata("design:type", Object)
877
851
  ], UpdateQueryBuilder.prototype, "this", void 0);
878
- exports.UpdateQueryBuilder = UpdateQueryBuilder;
879
- class InsertQueryBuilder extends QueryBuilder {
880
- constructor(container, driver, model) {
881
- super(container, driver, model);
882
- this._method = enums_1.QueryMethod.INSERT;
883
- this._columns = [];
884
- this._values = [];
885
- this.QueryContext = interfaces_1.QueryContext.Insert;
886
- }
852
+ export class InsertQueryBuilder extends QueryBuilder {
887
853
  get Values() {
888
854
  return this._values;
889
855
  }
@@ -896,6 +862,13 @@ class InsertQueryBuilder extends QueryBuilder {
896
862
  get Replace() {
897
863
  return this._replace;
898
864
  }
865
+ constructor(container, driver, model) {
866
+ super(container, driver, model);
867
+ this._method = QueryMethod.INSERT;
868
+ this._columns = [];
869
+ this._values = [];
870
+ this.QueryContext = QueryContext.Insert;
871
+ }
899
872
  /**
900
873
  * Sets insert to ignore on duplicate
901
874
  */
@@ -940,7 +913,7 @@ class InsertQueryBuilder extends QueryBuilder {
940
913
  onDuplicate(column) {
941
914
  let columnToCheck = column;
942
915
  if (!columnToCheck && this._model) {
943
- const dsc = (0, model_1.extractModelDescriptor)(this._model);
916
+ const dsc = extractModelDescriptor(this._model);
944
917
  columnToCheck = dsc.Columns.filter((c) => c.Unique).map((c) => c.Name);
945
918
  }
946
919
  this._update = true;
@@ -948,18 +921,17 @@ class InsertQueryBuilder extends QueryBuilder {
948
921
  return this.DuplicateQueryBuilder;
949
922
  }
950
923
  toDB() {
951
- return this._container.resolve(interfaces_1.InsertQueryCompiler, [this]).compile();
924
+ return this._container.resolve(InsertQueryCompiler, [this]).compile();
952
925
  }
953
926
  }
954
927
  __decorate([
955
- (0, typescript_mix_1.use)(ColumnsBuilder),
928
+ use(ColumnsBuilder),
956
929
  __metadata("design:type", Object)
957
930
  ], InsertQueryBuilder.prototype, "this", void 0);
958
- exports.InsertQueryBuilder = InsertQueryBuilder;
959
931
  let IndexQueryBuilder = class IndexQueryBuilder extends Builder {
960
932
  constructor(container, driver) {
961
933
  super(container, driver);
962
- this.QueryContext = interfaces_1.QueryContext.Schema;
934
+ this.QueryContext = QueryContext.Schema;
963
935
  }
964
936
  name(name) {
965
937
  this.Name = name;
@@ -978,19 +950,19 @@ let IndexQueryBuilder = class IndexQueryBuilder extends Builder {
978
950
  return this;
979
951
  }
980
952
  toDB() {
981
- return this._container.resolve(interfaces_1.IndexQueryCompiler, [this]).compile();
953
+ return this._container.resolve(IndexQueryCompiler, [this]).compile();
982
954
  }
983
955
  };
984
956
  IndexQueryBuilder = __decorate([
985
- (0, di_1.NewInstance)(),
986
- (0, di_1.Inject)(di_1.Container),
987
- __metadata("design:paramtypes", [di_1.Container, driver_1.OrmDriver])
957
+ NewInstance(),
958
+ Inject(Container),
959
+ __metadata("design:paramtypes", [Container, OrmDriver])
988
960
  ], IndexQueryBuilder);
989
- exports.IndexQueryBuilder = IndexQueryBuilder;
961
+ export { IndexQueryBuilder };
990
962
  let ForeignKeyBuilder = class ForeignKeyBuilder {
991
963
  constructor() {
992
- this.OnDeleteAction = interfaces_1.ReferentialAction.NoAction;
993
- this.OnUpdateAction = interfaces_1.ReferentialAction.NoAction;
964
+ this.OnDeleteAction = ReferentialAction.NoAction;
965
+ this.OnUpdateAction = ReferentialAction.NoAction;
994
966
  }
995
967
  /**
996
968
  *
@@ -1038,16 +1010,16 @@ let ForeignKeyBuilder = class ForeignKeyBuilder {
1038
1010
  * Shorhand for on update and on delete cascade settings
1039
1011
  */
1040
1012
  cascade() {
1041
- this.OnUpdateAction = interfaces_1.ReferentialAction.Cascade;
1042
- this.OnDeleteAction = interfaces_1.ReferentialAction.Cascade;
1013
+ this.OnUpdateAction = ReferentialAction.Cascade;
1014
+ this.OnDeleteAction = ReferentialAction.Cascade;
1043
1015
  return this;
1044
1016
  }
1045
1017
  };
1046
1018
  ForeignKeyBuilder = __decorate([
1047
- (0, di_1.NewInstance)(),
1019
+ NewInstance(),
1048
1020
  __metadata("design:paramtypes", [])
1049
1021
  ], ForeignKeyBuilder);
1050
- exports.ForeignKeyBuilder = ForeignKeyBuilder;
1022
+ export { ForeignKeyBuilder };
1051
1023
  let ColumnQueryBuilder = class ColumnQueryBuilder {
1052
1024
  constructor(container, name, type, ...args) {
1053
1025
  this.container = container;
@@ -1080,7 +1052,7 @@ let ColumnQueryBuilder = class ColumnQueryBuilder {
1080
1052
  return this;
1081
1053
  }
1082
1054
  default() {
1083
- this.Default = this.container.resolve((interfaces_1.DefaultValueBuilder), [this]);
1055
+ this.Default = this.container.resolve((DefaultValueBuilder), [this]);
1084
1056
  return this.Default;
1085
1057
  }
1086
1058
  primaryKey() {
@@ -1101,28 +1073,28 @@ let ColumnQueryBuilder = class ColumnQueryBuilder {
1101
1073
  }
1102
1074
  };
1103
1075
  ColumnQueryBuilder = __decorate([
1104
- (0, di_1.NewInstance)(),
1105
- (0, di_1.Inject)(di_1.Container),
1076
+ NewInstance(),
1077
+ Inject(Container),
1106
1078
  __metadata("design:paramtypes", [Object, String, String, Object])
1107
1079
  ], ColumnQueryBuilder);
1108
- exports.ColumnQueryBuilder = ColumnQueryBuilder;
1080
+ export { ColumnQueryBuilder };
1109
1081
  let AlterColumnQueryBuilder = class AlterColumnQueryBuilder extends ColumnQueryBuilder {
1110
1082
  constructor(container, name, type, ...args) {
1111
1083
  super(container, name, type, ...args);
1112
1084
  this.OldName = name;
1113
1085
  // we assume add by default
1114
- this.AlterType = interfaces_1.ColumnAlterationType.Add;
1086
+ this.AlterType = ColumnAlterationType.Add;
1115
1087
  }
1116
1088
  addColumn() {
1117
- this.AlterType = interfaces_1.ColumnAlterationType.Add;
1089
+ this.AlterType = ColumnAlterationType.Add;
1118
1090
  return this;
1119
1091
  }
1120
1092
  modify() {
1121
- this.AlterType = interfaces_1.ColumnAlterationType.Modify;
1093
+ this.AlterType = ColumnAlterationType.Modify;
1122
1094
  return this;
1123
1095
  }
1124
1096
  rename(newName) {
1125
- this.AlterType = interfaces_1.ColumnAlterationType.Rename;
1097
+ this.AlterType = ColumnAlterationType.Rename;
1126
1098
  this.Name = newName;
1127
1099
  return this;
1128
1100
  }
@@ -1132,22 +1104,21 @@ let AlterColumnQueryBuilder = class AlterColumnQueryBuilder extends ColumnQueryB
1132
1104
  }
1133
1105
  };
1134
1106
  AlterColumnQueryBuilder = __decorate([
1135
- (0, di_1.Inject)(di_1.Container),
1107
+ Inject(Container),
1136
1108
  __metadata("design:paramtypes", [Object, String, String, Object])
1137
1109
  ], AlterColumnQueryBuilder);
1138
- exports.AlterColumnQueryBuilder = AlterColumnQueryBuilder;
1139
- class TableExistsQueryBuilder extends QueryBuilder {
1110
+ export { AlterColumnQueryBuilder };
1111
+ export class TableExistsQueryBuilder extends QueryBuilder {
1140
1112
  constructor(container, driver, name) {
1141
1113
  super(container, driver, null);
1142
1114
  this.setTable(name);
1143
- this.QueryContext = interfaces_1.QueryContext.Select;
1115
+ this.QueryContext = QueryContext.Select;
1144
1116
  }
1145
1117
  toDB() {
1146
- return this._container.resolve(interfaces_1.TableExistsCompiler, [this]).compile();
1118
+ return this._container.resolve(TableExistsCompiler, [this]).compile();
1147
1119
  }
1148
1120
  }
1149
- exports.TableExistsQueryBuilder = TableExistsQueryBuilder;
1150
- class DropTableQueryBuilder extends QueryBuilder {
1121
+ export class DropTableQueryBuilder extends QueryBuilder {
1151
1122
  constructor(container, driver, name, database) {
1152
1123
  super(container, driver, null);
1153
1124
  this.setTable(name);
@@ -1155,28 +1126,27 @@ class DropTableQueryBuilder extends QueryBuilder {
1155
1126
  this.database(database);
1156
1127
  }
1157
1128
  this.Exists = false;
1158
- this.QueryContext = interfaces_1.QueryContext.Schema;
1129
+ this.QueryContext = QueryContext.Schema;
1159
1130
  }
1160
1131
  ifExists() {
1161
1132
  this.Exists = true;
1162
1133
  return this;
1163
1134
  }
1164
1135
  toDB() {
1165
- return this._container.resolve(interfaces_1.DropTableCompiler, [this]).compile();
1136
+ return this._container.resolve(DropTableCompiler, [this]).compile();
1166
1137
  }
1167
1138
  }
1168
- exports.DropTableQueryBuilder = DropTableQueryBuilder;
1169
- class AlterTableQueryBuilder extends QueryBuilder {
1139
+ export class AlterTableQueryBuilder extends QueryBuilder {
1140
+ get Columns() {
1141
+ return this._columns;
1142
+ }
1170
1143
  constructor(container, driver, name) {
1171
1144
  super(container, driver, null);
1172
1145
  this.setTable(name);
1173
- this.QueryContext = interfaces_1.QueryContext.Schema;
1146
+ this.QueryContext = QueryContext.Schema;
1174
1147
  this._columns = [];
1175
1148
  this.DroppedColumns = [];
1176
1149
  }
1177
- get Columns() {
1178
- return this._columns;
1179
- }
1180
1150
  /**
1181
1151
  * Renames table
1182
1152
  *
@@ -1189,22 +1159,10 @@ class AlterTableQueryBuilder extends QueryBuilder {
1189
1159
  this.DroppedColumns.push(column);
1190
1160
  }
1191
1161
  toDB() {
1192
- return this._container.resolve(interfaces_1.AlterTableQueryCompiler, [this]).compile();
1162
+ return this._container.resolve(AlterTableQueryCompiler, [this]).compile();
1193
1163
  }
1194
1164
  }
1195
- exports.AlterTableQueryBuilder = AlterTableQueryBuilder;
1196
- class TableQueryBuilder extends QueryBuilder {
1197
- constructor(container, driver, name) {
1198
- super(container, driver, null);
1199
- this._charset = '';
1200
- this._comment = '';
1201
- this._columns = [];
1202
- this._foreignKeys = [];
1203
- this._temporary = false;
1204
- this._trackHistory = false;
1205
- this.setTable(name);
1206
- this.QueryContext = interfaces_1.QueryContext.Schema;
1207
- }
1165
+ export class TableQueryBuilder extends QueryBuilder {
1208
1166
  /**
1209
1167
  * Alias for string(name, 36 )
1210
1168
  */
@@ -1245,6 +1203,17 @@ class TableQueryBuilder extends QueryBuilder {
1245
1203
  get TrackHistory() {
1246
1204
  return this._trackHistory;
1247
1205
  }
1206
+ constructor(container, driver, name) {
1207
+ super(container, driver, null);
1208
+ this._charset = '';
1209
+ this._comment = '';
1210
+ this._columns = [];
1211
+ this._foreignKeys = [];
1212
+ this._temporary = false;
1213
+ this._trackHistory = false;
1214
+ this.setTable(name);
1215
+ this.QueryContext = QueryContext.Schema;
1216
+ }
1248
1217
  increments(name) {
1249
1218
  return this.int(name).autoIncrement().notNull().primaryKey();
1250
1219
  }
@@ -1261,10 +1230,9 @@ class TableQueryBuilder extends QueryBuilder {
1261
1230
  return builder;
1262
1231
  }
1263
1232
  toDB() {
1264
- return this._container.resolve(interfaces_1.TableQueryCompiler, [this]).compile();
1233
+ return this._container.resolve(TableQueryCompiler, [this]).compile();
1265
1234
  }
1266
1235
  }
1267
- exports.TableQueryBuilder = TableQueryBuilder;
1268
1236
  let TruncateTableQueryBuilder = class TruncateTableQueryBuilder extends QueryBuilder {
1269
1237
  constructor(container, driver) {
1270
1238
  super(container, driver);
@@ -1272,24 +1240,16 @@ let TruncateTableQueryBuilder = class TruncateTableQueryBuilder extends QueryBui
1272
1240
  this.driver = driver;
1273
1241
  }
1274
1242
  toDB() {
1275
- return this._container.resolve(interfaces_1.TruncateTableQueryCompiler, [this]).compile();
1243
+ return this._container.resolve(TruncateTableQueryCompiler, [this]).compile();
1276
1244
  }
1277
1245
  };
1278
1246
  TruncateTableQueryBuilder = __decorate([
1279
- (0, di_1.NewInstance)(),
1280
- (0, di_1.Inject)(di_1.Container),
1281
- __metadata("design:paramtypes", [di_1.Container, driver_1.OrmDriver])
1247
+ NewInstance(),
1248
+ Inject(Container),
1249
+ __metadata("design:paramtypes", [Container, OrmDriver])
1282
1250
  ], TruncateTableQueryBuilder);
1283
- exports.TruncateTableQueryBuilder = TruncateTableQueryBuilder;
1251
+ export { TruncateTableQueryBuilder };
1284
1252
  let CloneTableQueryBuilder = class CloneTableQueryBuilder extends QueryBuilder {
1285
- constructor(container, driver) {
1286
- super(container, driver);
1287
- this.container = container;
1288
- this.driver = driver;
1289
- this._shallow = true;
1290
- this._cloneSrc = '';
1291
- this._temporary = false;
1292
- }
1293
1253
  get CloneSource() {
1294
1254
  return this._cloneSrc;
1295
1255
  }
@@ -1302,6 +1262,14 @@ let CloneTableQueryBuilder = class CloneTableQueryBuilder extends QueryBuilder {
1302
1262
  get Filter() {
1303
1263
  return this._filter;
1304
1264
  }
1265
+ constructor(container, driver) {
1266
+ super(container, driver);
1267
+ this.container = container;
1268
+ this.driver = driver;
1269
+ this._shallow = true;
1270
+ this._cloneSrc = '';
1271
+ this._temporary = false;
1272
+ }
1305
1273
  /**
1306
1274
  * Clones table structure without data
1307
1275
  * Shorthand for createTable(( table) => table.clone("new"));
@@ -1333,18 +1301,17 @@ let CloneTableQueryBuilder = class CloneTableQueryBuilder extends QueryBuilder {
1333
1301
  return this;
1334
1302
  }
1335
1303
  toDB() {
1336
- return this._container.resolve(interfaces_1.TableCloneQueryCompiler, [this]).compile();
1304
+ return this._container.resolve(TableCloneQueryCompiler, [this]).compile();
1337
1305
  }
1338
1306
  };
1339
1307
  CloneTableQueryBuilder = __decorate([
1340
- (0, di_1.NewInstance)(),
1341
- (0, di_1.Inject)(di_1.Container),
1342
- __metadata("design:paramtypes", [di_1.Container, driver_1.OrmDriver])
1308
+ NewInstance(),
1309
+ Inject(Container),
1310
+ __metadata("design:paramtypes", [Container, OrmDriver])
1343
1311
  ], CloneTableQueryBuilder);
1344
- exports.CloneTableQueryBuilder = CloneTableQueryBuilder;
1345
- class EventIntervalDesc {
1312
+ export { CloneTableQueryBuilder };
1313
+ export class EventIntervalDesc {
1346
1314
  }
1347
- exports.EventIntervalDesc = EventIntervalDesc;
1348
1315
  let EventQueryBuilder = class EventQueryBuilder extends QueryBuilder {
1349
1316
  constructor(container, driver, Name) {
1350
1317
  super(container, driver);
@@ -1380,7 +1347,7 @@ let EventQueryBuilder = class EventQueryBuilder extends QueryBuilder {
1380
1347
  * @param sql - code to execute, could be raw sql query, single builder, or multiple builders that will be executed on by one
1381
1348
  */
1382
1349
  do(sql) {
1383
- if (sql instanceof statements_1.RawQueryStatement) {
1350
+ if (sql instanceof RawQueryStatement) {
1384
1351
  this.RawSql = sql;
1385
1352
  }
1386
1353
  else if (Array.isArray(sql)) {
@@ -1400,15 +1367,15 @@ let EventQueryBuilder = class EventQueryBuilder extends QueryBuilder {
1400
1367
  this.Comment = comment;
1401
1368
  }
1402
1369
  toDB() {
1403
- return this._container.resolve(interfaces_1.EventQueryCompiler, [this]).compile();
1370
+ return this._container.resolve(EventQueryCompiler, [this]).compile();
1404
1371
  }
1405
1372
  };
1406
1373
  EventQueryBuilder = __decorate([
1407
- (0, di_1.NewInstance)(),
1408
- (0, di_1.Inject)(di_1.Container),
1409
- __metadata("design:paramtypes", [di_1.Container, driver_1.OrmDriver, String])
1374
+ NewInstance(),
1375
+ Inject(Container),
1376
+ __metadata("design:paramtypes", [Container, OrmDriver, String])
1410
1377
  ], EventQueryBuilder);
1411
- exports.EventQueryBuilder = EventQueryBuilder;
1378
+ export { EventQueryBuilder };
1412
1379
  let DropEventQueryBuilder = class DropEventQueryBuilder extends QueryBuilder {
1413
1380
  constructor(container, driver, Name) {
1414
1381
  super(container, driver);
@@ -1417,15 +1384,15 @@ let DropEventQueryBuilder = class DropEventQueryBuilder extends QueryBuilder {
1417
1384
  this.Name = Name;
1418
1385
  }
1419
1386
  toDB() {
1420
- return this._container.resolve(interfaces_1.DropEventQueryCompiler, [this]).compile();
1387
+ return this._container.resolve(DropEventQueryCompiler, [this]).compile();
1421
1388
  }
1422
1389
  };
1423
1390
  DropEventQueryBuilder = __decorate([
1424
- (0, di_1.NewInstance)(),
1425
- (0, di_1.Inject)(di_1.Container),
1426
- __metadata("design:paramtypes", [di_1.Container, driver_1.OrmDriver, String])
1391
+ NewInstance(),
1392
+ Inject(Container),
1393
+ __metadata("design:paramtypes", [Container, OrmDriver, String])
1427
1394
  ], DropEventQueryBuilder);
1428
- exports.DropEventQueryBuilder = DropEventQueryBuilder;
1395
+ export { DropEventQueryBuilder };
1429
1396
  /**
1430
1397
  * Creates schedule job in database engine.
1431
1398
  * Note, some engines does not support this, so it will implemented
@@ -1446,11 +1413,11 @@ let ScheduleQueryBuilder = class ScheduleQueryBuilder {
1446
1413
  }
1447
1414
  };
1448
1415
  ScheduleQueryBuilder = __decorate([
1449
- (0, di_1.NewInstance)(),
1450
- (0, di_1.Inject)(di_1.Container),
1451
- __metadata("design:paramtypes", [di_1.Container, driver_1.OrmDriver])
1416
+ NewInstance(),
1417
+ Inject(Container),
1418
+ __metadata("design:paramtypes", [Container, OrmDriver])
1452
1419
  ], ScheduleQueryBuilder);
1453
- exports.ScheduleQueryBuilder = ScheduleQueryBuilder;
1420
+ export { ScheduleQueryBuilder };
1454
1421
  let SchemaQueryBuilder = class SchemaQueryBuilder {
1455
1422
  constructor(container, driver) {
1456
1423
  this.container = container;
@@ -1490,19 +1457,19 @@ let SchemaQueryBuilder = class SchemaQueryBuilder {
1490
1457
  }
1491
1458
  };
1492
1459
  SchemaQueryBuilder = __decorate([
1493
- (0, di_1.NewInstance)(),
1494
- (0, di_1.Inject)(di_1.Container),
1495
- __metadata("design:paramtypes", [di_1.Container, driver_1.OrmDriver])
1460
+ NewInstance(),
1461
+ Inject(Container),
1462
+ __metadata("design:paramtypes", [Container, OrmDriver])
1496
1463
  ], SchemaQueryBuilder);
1497
- exports.SchemaQueryBuilder = SchemaQueryBuilder;
1498
- Object.values(enums_1.ColumnType).forEach((type) => {
1464
+ export { SchemaQueryBuilder };
1465
+ Object.values(ColumnType).forEach((type) => {
1499
1466
  TableQueryBuilder.prototype[type] = function (name, ...args) {
1500
1467
  const _builder = new ColumnQueryBuilder(this.Container, name, type, ...args);
1501
1468
  this._columns.push(_builder);
1502
1469
  return _builder;
1503
1470
  };
1504
1471
  });
1505
- Object.values(enums_1.ColumnType).forEach((type) => {
1472
+ Object.values(ColumnType).forEach((type) => {
1506
1473
  AlterTableQueryBuilder.prototype[type] = function (name, ...args) {
1507
1474
  const _builder = new AlterColumnQueryBuilder(this.Container, name, type, ...args);
1508
1475
  this._columns.push(_builder);