tspace-mysql 1.9.0 → 1.9.1-beta.2

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 (118) hide show
  1. package/README.md +4580 -133
  2. package/dist/lib/config/index.d.ts +2 -2
  3. package/dist/lib/config/index.js +24 -16
  4. package/dist/lib/config/index.js.map +1 -1
  5. package/dist/lib/constants/index.d.ts +10 -1
  6. package/dist/lib/constants/index.js +11 -2
  7. package/dist/lib/constants/index.js.map +1 -1
  8. package/dist/lib/core/Abstracts/AbstractBuilder.d.ts +27 -23
  9. package/dist/lib/core/Abstracts/AbstractBuilder.js +11 -13
  10. package/dist/lib/core/Abstracts/AbstractBuilder.js.map +1 -1
  11. package/dist/lib/core/Abstracts/AbstractDB.d.ts +5 -2
  12. package/dist/lib/core/Abstracts/AbstractDB.js.map +1 -1
  13. package/dist/lib/core/Abstracts/AbstractModel.d.ts +7 -2
  14. package/dist/lib/core/Abstracts/AbstractModel.js.map +1 -1
  15. package/dist/lib/core/Abstracts/AbstractView.js.map +1 -1
  16. package/dist/lib/core/Blueprint.d.ts +37 -17
  17. package/dist/lib/core/Blueprint.js +38 -14
  18. package/dist/lib/core/Blueprint.js.map +1 -1
  19. package/dist/lib/core/Builder.d.ts +314 -42
  20. package/dist/lib/core/Builder.js +686 -391
  21. package/dist/lib/core/Builder.js.map +1 -1
  22. package/dist/lib/core/Cache/DBCache.js +19 -20
  23. package/dist/lib/core/Cache/DBCache.js.map +1 -1
  24. package/dist/lib/core/Cache/MemoryCache.js +3 -3
  25. package/dist/lib/core/Cache/MemoryCache.js.map +1 -1
  26. package/dist/lib/core/Cache/RedisCache.js +27 -17
  27. package/dist/lib/core/Cache/RedisCache.js.map +1 -1
  28. package/dist/lib/core/Cache/index.js +37 -17
  29. package/dist/lib/core/Cache/index.js.map +1 -1
  30. package/dist/lib/core/Contracts/AlterTable.d.ts +152 -0
  31. package/dist/lib/core/Contracts/AlterTable.js +243 -0
  32. package/dist/lib/core/Contracts/AlterTable.js.map +1 -0
  33. package/dist/lib/core/Contracts/Audit.d.ts +1 -1
  34. package/dist/lib/core/Contracts/Audit.js +2 -5
  35. package/dist/lib/core/Contracts/Audit.js.map +1 -1
  36. package/dist/lib/core/Contracts/Logger.d.ts +1 -1
  37. package/dist/lib/core/Contracts/Logger.js.map +1 -1
  38. package/dist/lib/core/DB.d.ts +103 -11
  39. package/dist/lib/core/DB.js +158 -32
  40. package/dist/lib/core/DB.js.map +1 -1
  41. package/dist/lib/core/Decorator.d.ts +144 -16
  42. package/dist/lib/core/Decorator.js +156 -14
  43. package/dist/lib/core/Decorator.js.map +1 -1
  44. package/dist/lib/core/Driver/index.d.ts +50 -14
  45. package/dist/lib/core/Driver/index.js +13 -9
  46. package/dist/lib/core/Driver/index.js.map +1 -1
  47. package/dist/lib/core/Driver/mariadb/MariadbDriver.js +84 -29
  48. package/dist/lib/core/Driver/mariadb/MariadbDriver.js.map +1 -1
  49. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.d.ts +48 -12
  50. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js +189 -28
  51. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js.map +1 -1
  52. package/dist/lib/core/Driver/mongodb/MongodbDriver.d.ts +24 -0
  53. package/dist/lib/core/Driver/mongodb/MongodbDriver.js +261 -0
  54. package/dist/lib/core/Driver/mongodb/MongodbDriver.js.map +1 -0
  55. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.d.ts +141 -0
  56. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js +571 -0
  57. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js.map +1 -0
  58. package/dist/lib/core/Driver/mysql/MysqlDriver.js +115 -97
  59. package/dist/lib/core/Driver/mysql/MysqlDriver.js.map +1 -1
  60. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.d.ts +48 -12
  61. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js +189 -28
  62. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js.map +1 -1
  63. package/dist/lib/core/Driver/postgres/PostgresDriver.js +106 -73
  64. package/dist/lib/core/Driver/postgres/PostgresDriver.js.map +1 -1
  65. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.d.ts +53 -12
  66. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js +318 -48
  67. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js.map +1 -1
  68. package/dist/lib/core/Driver/sqlite/SqliteDriver.d.ts +21 -0
  69. package/dist/lib/core/Driver/sqlite/SqliteDriver.js +213 -0
  70. package/dist/lib/core/Driver/sqlite/SqliteDriver.js.map +1 -0
  71. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.d.ts +146 -0
  72. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js +705 -0
  73. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js.map +1 -0
  74. package/dist/lib/core/Join.d.ts +63 -5
  75. package/dist/lib/core/Join.js +92 -15
  76. package/dist/lib/core/Join.js.map +1 -1
  77. package/dist/lib/core/JoinModel.d.ts +65 -9
  78. package/dist/lib/core/JoinModel.js +81 -52
  79. package/dist/lib/core/JoinModel.js.map +1 -1
  80. package/dist/lib/core/Meta.d.ts +22 -16
  81. package/dist/lib/core/Meta.js +28 -21
  82. package/dist/lib/core/Meta.js.map +1 -1
  83. package/dist/lib/core/Model.d.ts +644 -134
  84. package/dist/lib/core/Model.js +1361 -631
  85. package/dist/lib/core/Model.js.map +1 -1
  86. package/dist/lib/{tools/index.d.ts → core/Package.d.ts} +11 -3
  87. package/dist/lib/{tools/index.js → core/Package.js} +20 -7
  88. package/dist/lib/core/Package.js.map +1 -0
  89. package/dist/lib/core/Pool.js +42 -30
  90. package/dist/lib/core/Pool.js.map +1 -1
  91. package/dist/lib/core/Queue.d.ts +249 -0
  92. package/dist/lib/core/Queue.js +726 -0
  93. package/dist/lib/core/Queue.js.map +1 -0
  94. package/dist/lib/core/RelationManager.d.ts +4 -4
  95. package/dist/lib/core/RelationManager.js +168 -41
  96. package/dist/lib/core/RelationManager.js.map +1 -1
  97. package/dist/lib/core/Repository.d.ts +73 -207
  98. package/dist/lib/core/Repository.js +122 -234
  99. package/dist/lib/core/Repository.js.map +1 -1
  100. package/dist/lib/core/Schema.d.ts +211 -1
  101. package/dist/lib/core/Schema.js +370 -65
  102. package/dist/lib/core/Schema.js.map +1 -1
  103. package/dist/lib/core/StateManager.d.ts +31 -12
  104. package/dist/lib/core/StateManager.js +11 -5
  105. package/dist/lib/core/StateManager.js.map +1 -1
  106. package/dist/lib/core/UtilityTypes.d.ts +103 -81
  107. package/dist/lib/core/UtilityTypes.js.map +1 -1
  108. package/dist/lib/core/index.d.ts +4 -0
  109. package/dist/lib/core/index.js +6 -2
  110. package/dist/lib/core/index.js.map +1 -1
  111. package/dist/lib/types/decorator/index.d.ts +1 -1
  112. package/dist/lib/types/index.d.ts +120 -30
  113. package/dist/lib/types/repository/index.d.ts +68 -37
  114. package/dist/lib/utils/index.d.ts +13 -2
  115. package/dist/lib/utils/index.js +81 -2
  116. package/dist/lib/utils/index.js.map +1 -1
  117. package/package.json +14 -6
  118. package/dist/lib/tools/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqliteQueryBuilder.js","sourceRoot":"","sources":["../../../../../src/lib/core/Driver/sqlite/SqliteQueryBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,71 @@
1
1
  import { Builder } from "./Builder";
2
2
  declare class Join {
3
- protected self: Builder;
3
+ protected builder: Builder<any>;
4
4
  protected type: 'INNER_JOIN' | 'LEFT_JOIN' | 'RIGHT_JOIN' | 'CROSS_JOIN';
5
5
  private join;
6
- constructor(self: Builder, type?: 'INNER_JOIN' | 'LEFT_JOIN' | 'RIGHT_JOIN' | 'CROSS_JOIN');
7
- on(localKey: `${string}.${string}`, referenceKey?: `${string}.${string}`): this;
8
- and(localKey: `${string}.${string}`, referenceKey?: `${string}.${string}`): this;
9
- or(localKey: `${string}.${string}`, referenceKey?: `${string}.${string}`): this;
6
+ constructor(builder: Builder<any>, type?: 'INNER_JOIN' | 'LEFT_JOIN' | 'RIGHT_JOIN' | 'CROSS_JOIN');
7
+ /**
8
+ * The 'on' method is used to Adds an ON condition to the current JOIN clause.
9
+ *
10
+ * Creates a join condition by comparing two column references.
11
+ * Both parameters must be fully qualified column names in the
12
+ * format `table.column`.
13
+ *
14
+ * @param localKey - The local column reference (e.g. `users.id`).
15
+ * @param referenceKey - The referenced column reference (e.g. `posts.user_id`).
16
+ *
17
+ * @returns The current join builder instance for method chaining.
18
+ *
19
+ * @example
20
+ * new User()
21
+ * .join((join) => join.on('users.id', 'posts.user_id'));
22
+ *
23
+ */
24
+ on(localKey: `${string}.${string}`, referenceKey: `${string}.${string}`): this;
25
+ /**
26
+ * The 'and' method is used to Adds an additional condition to the current JOIN ON clause using AND.
27
+ *
28
+ * This method must be called after `.on()`.
29
+ *
30
+ * @param localKey - The left-side column reference.
31
+ * @param referenceKey - The right-side column reference.
32
+ *
33
+ * @returns The current join builder instance.
34
+ *
35
+ * @example
36
+ * new User()
37
+ * .join((join) =>
38
+ * join
39
+ * .on('users.id', 'posts.user_id')
40
+ * .and('posts.type', 'article')
41
+ * .and('posts.published', true)
42
+ * );
43
+ */
44
+ and(localKey: `${string}.${string}`, referenceKey: `${string}.${string}` | string | number | boolean | null | (string | number | boolean | null)[]): this;
45
+ and(localKey: `${string}.${string}`, operator: "=" | "<" | ">" | "!=" | "<>" | "<=" | ">=" | "LIKE" | "like", referenceKey?: `${string}.${string}` | string | number | boolean | null | (string | number | boolean | null)[]): this;
46
+ /**
47
+ * The 'or' method is used to Adds an additional condition to the current JOIN ON clause using OR.
48
+ *
49
+ * This method must be called after `.on()`.
50
+ *
51
+ * @param localKey - The left-side column reference.
52
+ * @param referenceKey - The right-side column reference.
53
+ *
54
+ * @returns The current join builder instance.
55
+ *
56
+ * @example
57
+ * new User()
58
+ * .join((join) =>
59
+ * join
60
+ * .on('users.id', 'posts.user_id')
61
+ * .or('posts.type', 'article')
62
+ * .or('posts.published', true)
63
+ * );
64
+ */
65
+ or(localKey: `${string}.${string}`, referenceKey: `${string}.${string}` | string | number | boolean | null | (string | number | boolean | null)[]): this;
66
+ or(localKey: `${string}.${string}`, operator: "=" | "<" | ">" | "!=" | "<>" | "<=" | ">=" | "LIKE" | "like", referenceKey?: `${string}.${string}` | string | number | boolean | null | (string | number | boolean | null)[]): this;
10
67
  protected toString(): string;
68
+ private formatValue;
11
69
  }
12
70
  export { Join };
13
71
  export default Join;
@@ -1,42 +1,104 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Join = void 0;
4
+ const utils_1 = require("../utils");
4
5
  class Join {
5
- self;
6
+ builder;
6
7
  type;
7
8
  join = [];
8
- constructor(self, type = 'INNER_JOIN') {
9
- this.self = self;
9
+ constructor(builder, type = 'INNER_JOIN') {
10
+ this.builder = builder;
10
11
  this.type = type;
11
12
  }
13
+ /**
14
+ * The 'on' method is used to Adds an ON condition to the current JOIN clause.
15
+ *
16
+ * Creates a join condition by comparing two column references.
17
+ * Both parameters must be fully qualified column names in the
18
+ * format `table.column`.
19
+ *
20
+ * @param localKey - The local column reference (e.g. `users.id`).
21
+ * @param referenceKey - The referenced column reference (e.g. `posts.user_id`).
22
+ *
23
+ * @returns The current join builder instance for method chaining.
24
+ *
25
+ * @example
26
+ * new User()
27
+ * .join((join) => join.on('users.id', 'posts.user_id'));
28
+ *
29
+ */
12
30
  on(localKey, referenceKey) {
13
- const table = referenceKey?.split('.')?.shift();
31
+ const table = referenceKey.split('.')?.shift();
14
32
  const join = [
15
- `${this.self['$constants'](this.type)}`,
16
- `\`${table}\` ${this.self['$constants']('ON')}`,
17
- `${this.self.bindColumn(localKey)} = ${this.self.bindColumn(String(referenceKey))}`
33
+ `${this.builder['$constants'](this.type)}`,
34
+ `\`${table}\` ${this.builder['$constants']('ON')}`,
35
+ `${this.builder.bindColumn(localKey)} = ${this.builder.bindColumn(String(referenceKey))}`
18
36
  ].join(' ');
19
37
  this.join.push(join);
20
38
  return this;
21
39
  }
22
- and(localKey, referenceKey) {
40
+ and(localKey, operator, referenceKey) {
23
41
  if (!this.join.length) {
24
- return this.on(localKey, referenceKey);
42
+ throw new Error("Call .on() before using this");
43
+ }
44
+ [referenceKey, operator] = utils_1.utils.valueAndOperator(referenceKey, operator, arguments.length === 2);
45
+ if (typeof referenceKey === 'string' && /\./.test(referenceKey)) {
46
+ const join = [
47
+ this.builder['$constants']('AND'),
48
+ this.builder.bindColumn(localKey),
49
+ operator,
50
+ this.builder.bindColumn(String(referenceKey))
51
+ ].join(' ');
52
+ this.join.push(join);
53
+ return this;
54
+ }
55
+ const format = this.formatValue(referenceKey, operator);
56
+ if (format.isRaw) {
57
+ const join = [
58
+ this.builder['$constants']('AND'),
59
+ this.builder.bindColumn(localKey),
60
+ format.value
61
+ ].join(' ');
62
+ this.join.push(join);
63
+ return this;
25
64
  }
26
65
  const join = [
27
- `${this.self['$constants']('AND')}`,
28
- `${this.self.bindColumn(localKey)} = ${this.self.bindColumn(String(referenceKey))}`
66
+ this.builder['$constants']('AND'),
67
+ this.builder.bindColumn(localKey),
68
+ format.operator,
69
+ format.value
29
70
  ].join(' ');
30
71
  this.join.push(join);
31
72
  return this;
32
73
  }
33
- or(localKey, referenceKey) {
74
+ or(localKey, operator, referenceKey) {
34
75
  if (!this.join.length) {
35
- return this.on(localKey, referenceKey);
76
+ throw new Error("Call .on() before using this");
77
+ }
78
+ [referenceKey, operator] = utils_1.utils.valueAndOperator(referenceKey, operator, arguments.length === 2);
79
+ if (typeof referenceKey === 'string' && /\./.test(referenceKey)) {
80
+ const join = [
81
+ `${this.builder['$constants']('OR')}`,
82
+ `${this.builder.bindColumn(localKey)} ${operator} ${this.builder.bindColumn(String(referenceKey))}`
83
+ ].join(' ');
84
+ this.join.push(join);
85
+ return this;
86
+ }
87
+ const format = this.formatValue(referenceKey, operator);
88
+ if (format.isRaw) {
89
+ const join = [
90
+ this.builder['$constants']('OR'),
91
+ this.builder.bindColumn(localKey),
92
+ format.value
93
+ ].join(' ');
94
+ this.join.push(join);
95
+ return this;
36
96
  }
37
97
  const join = [
38
- `${this.self['$constants']('OR')}`,
39
- `${this.self.bindColumn(localKey)} = ${this.self.bindColumn(String(referenceKey))}`
98
+ this.builder['$constants']('OR'),
99
+ this.builder.bindColumn(localKey),
100
+ format.operator,
101
+ format.value
40
102
  ].join(' ');
41
103
  this.join.push(join);
42
104
  return this;
@@ -44,6 +106,21 @@ class Join {
44
106
  toString() {
45
107
  return this.join.join(' ');
46
108
  }
109
+ formatValue(value, operator) {
110
+ let formated = utils_1.utils.formatQueryValue(value);
111
+ if (utils_1.utils.checkValueHasRaw(value)) {
112
+ return { isRaw: true, value: formated, operator: null };
113
+ }
114
+ if (value == null) {
115
+ formated = '';
116
+ operator = `${this.builder['$constants']('IS_NULL')}`;
117
+ }
118
+ if (Array.isArray(value)) {
119
+ formated = `(${value.map((v) => utils_1.utils.formatQueryValue(v)).join(', ')})`;
120
+ operator = `${this.builder['$constants']('IN')}`;
121
+ }
122
+ return { isRaw: false, value: formated, operator };
123
+ }
47
124
  }
48
125
  exports.Join = Join;
49
126
  exports.default = Join;
@@ -1 +1 @@
1
- {"version":3,"file":"Join.js","sourceRoot":"","sources":["../../../src/lib/core/Join.ts"],"names":[],"mappings":";;;AACA,MAAM,IAAI;IAIQ;IACA;IAJN,IAAI,GAAc,EAAE,CAAA;IAE5B,YACc,IAAc,EACd,OAAkE,YAAY;QAD9E,SAAI,GAAJ,IAAI,CAAU;QACd,SAAI,GAAJ,IAAI,CAA0E;IACzF,CAAC;IAEJ,EAAE,CAAE,QAA+B,EAAE,YAAqC;QAEtE,MAAM,KAAK,GAAG,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAA;QAE/C,MAAM,IAAI,GAAG;YACT,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACvC,KAAK,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE;YAC/C,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE;SACtF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEpB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,GAAG,CAAE,QAA+B,EAAE,YAAqC;QAEvE,IAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAEnB,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC1C,CAAC;QAED,MAAM,IAAI,GAAG;YACT,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,EAAE;YACnC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE;SACtF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEpB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,EAAE,CAAE,QAA+B,EAAE,YAAqC;QAEtE,IAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAEnB,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC1C,CAAC;QAED,MAAM,IAAI,GAAG;YACT,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE;YAClC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE;SACtF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEpB,OAAO,IAAI,CAAA;IACf,CAAC;IAES,QAAQ;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;CACJ;AAEQ,oBAAI;AACb,kBAAe,IAAI,CAAA"}
1
+ {"version":3,"file":"Join.js","sourceRoot":"","sources":["../../../src/lib/core/Join.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,75 @@
1
1
  import { Model } from "./Model";
2
2
  import type { TModelOrObject } from "../types";
3
3
  declare class JoinModel {
4
- protected model: Model;
4
+ protected model: Model<any, any, any>;
5
5
  protected type: 'INNER_JOIN' | 'LEFT_JOIN' | 'RIGHT_JOIN' | 'CROSS_JOIN';
6
6
  private join;
7
- constructor(model: Model, type?: 'INNER_JOIN' | 'LEFT_JOIN' | 'RIGHT_JOIN' | 'CROSS_JOIN');
7
+ constructor(model: Model<any, any, any>, type?: 'INNER_JOIN' | 'LEFT_JOIN' | 'RIGHT_JOIN' | 'CROSS_JOIN');
8
+ /**
9
+ * The 'on' method is used to Adds an ON condition to the current JOIN clause.
10
+ *
11
+ * Creates a join condition by comparing two column references.
12
+ * Both parameters must be fully qualified column names in the
13
+ * format `table.column`.
14
+ *
15
+ * @param {TModelOrObject | `${string}.${string}`} m1 The model (e.g User)
16
+ * @param {TModelOrObject | `${string}.${string}`} m2 The model reference (e.g. Post).
17
+ *
18
+ * @returns The current join model instance for method chaining.
19
+ *
20
+ * @example
21
+ * new User()
22
+ * .joinModel((join) => join.on(User, Post));
23
+ *
24
+ */
25
+ on(m1: `${string}.${string}`, m2: `${string}.${string}`): this;
8
26
  on(m1: TModelOrObject, m2: TModelOrObject): this;
9
- and(m1: TModelOrObject, m2: TModelOrObject): this;
10
- or(m1: TModelOrObject, m2: TModelOrObject): this;
11
- onRaw(localKey: `${string}.${string}`, referenceKey?: `${string}.${string}`): this;
12
- andRaw(localKey: `${string}.${string}`, referenceKey?: `${string}.${string}`): this;
13
- orRaw(localKey: `${string}.${string}`, referenceKey?: `${string}.${string}`): this;
27
+ /**
28
+ * The 'and' method is used to Adds an additional condition to the current JOIN ON clause using AND.
29
+ *
30
+ * This method must be called after `.on()`.
31
+ *
32
+ * @param localKey - The left-side column reference.
33
+ * @param referenceKey - The right-side column reference.
34
+ *
35
+ * @returns The current join model instance.
36
+ *
37
+ * @example
38
+ * new User()
39
+ * .joinModel((join) =>
40
+ * join
41
+ * .on(User, Post)
42
+ * .and(Post.columnRef('type'), 'article')
43
+ * .and(Post.columnRef('published'), true)
44
+ * );
45
+ */
46
+ and(localKey: `${string}.${string}`, referenceKey: `${string}.${string}` | string | number | boolean | null | (string | number | boolean | null)[]): this;
47
+ and(localKey: `${string}.${string}`, operator: "=" | "<" | ">" | "!=" | "<>" | "<=" | ">=" | "LIKE" | "like", referenceKey?: `${string}.${string}` | string | number | boolean | null | (string | number | boolean | null)[]): this;
48
+ /**
49
+ * The 'or' method is used to Adds an additional condition to the current JOIN ON clause using OR.
50
+ *
51
+ * This method must be called after `.on()`.
52
+ *
53
+ * @param localKey - The left-side column reference.
54
+ * @param referenceKey - The right-side column reference.
55
+ *
56
+ * @returns The current join model instance.
57
+ *
58
+ * @example
59
+ * new User()
60
+ * .joinModel((join) =>
61
+ * join
62
+ * .on(User, Post)
63
+ * .or('posts.type', 'article')
64
+ * .or('posts.published', true)
65
+ * );
66
+ */
67
+ or(localKey: `${string}.${string}`, referenceKey: `${string}.${string}` | string | number | boolean | null | (string | number | boolean | null)[]): this;
68
+ or(localKey: `${string}.${string}`, operator: "=" | "<" | ">" | "!=" | "<>" | "<=" | ">=" | "LIKE" | "like", referenceKey?: `${string}.${string}` | string | number | boolean | null | (string | number | boolean | null)[]): this;
14
69
  protected toString(): string;
15
- private _handleJoinModel;
16
- private _handleCombindJoin;
70
+ private handleJoinModel;
71
+ private onRaw;
72
+ private formatValue;
17
73
  }
18
74
  export { JoinModel };
19
75
  export default JoinModel;
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.JoinModel = void 0;
7
7
  const pluralize_1 = __importDefault(require("pluralize"));
8
8
  const Model_1 = require("./Model");
9
+ const utils_1 = require("../utils");
9
10
  class JoinModel {
10
11
  model;
11
12
  type;
@@ -15,7 +16,10 @@ class JoinModel {
15
16
  this.type = type;
16
17
  }
17
18
  on(m1, m2) {
18
- const { alias1, alias2, table1, table2, model1, model2, localKey, foreignKey } = this._handleJoinModel(m1, m2);
19
+ if (typeof m1 === 'string' && typeof m2 === 'string') {
20
+ return this.onRaw(m1, m2);
21
+ }
22
+ const { alias1, alias2, table1, table2, model1, model2, localKey, foreignKey } = this.handleJoinModel(m1, m2);
19
23
  const copy = new Model_1.Model()
20
24
  .copyModel(this.model);
21
25
  const joinMethod = {
@@ -32,7 +36,7 @@ class JoinModel {
32
36
  this.model.bindColumn(whereClause),
33
37
  this.model['$constants']('IS_NULL')
34
38
  ].join(' ');
35
- if (!wheres.some((where) => where.includes(softDeleteIsNull))) {
39
+ if (!wheres.some((v) => v.column?.includes(softDeleteIsNull))) {
36
40
  this.model.whereNull(whereClause);
37
41
  }
38
42
  }
@@ -43,59 +47,73 @@ class JoinModel {
43
47
  this.model.bindColumn(whereClause),
44
48
  this.model['$constants']('IS_NULL')
45
49
  ].join(' ');
46
- if (!wheres.some((where) => where.includes(softDeleteIsNull))) {
50
+ if (!wheres.some((v) => v.column?.includes(softDeleteIsNull))) {
47
51
  this.model.whereNull(whereClause);
48
52
  }
49
53
  }
50
54
  this.join.push(...copy['$state'].get('JOIN'));
51
55
  return this;
52
56
  }
53
- and(m1, m2) {
57
+ and(localKey, operator, referenceKey) {
54
58
  if (!this.join.length) {
55
- return this.on(m1, m2);
59
+ throw new Error("Call .on() before using this");
56
60
  }
57
- const { alias1, alias2, table1, table2, localKey, foreignKey } = this._handleJoinModel(m1, m2);
58
- const join = this._handleCombindJoin(`${alias1 === '' ? table1 : `${table1}|${alias1}`}.${localKey}`, `${alias2 === '' ? table2 : `${table2}|${alias2}`}.${foreignKey}`);
59
- this.join.push(join);
60
- return this;
61
- }
62
- or(m1, m2) {
63
- if (!this.join.length) {
64
- return this.on(m1, m2);
61
+ [referenceKey, operator] = utils_1.utils.valueAndOperator(referenceKey, operator, arguments.length === 2);
62
+ if (typeof referenceKey === 'string' && /\./.test(referenceKey)) {
63
+ const join = [
64
+ `${this.model['$constants']('AND')}`,
65
+ `${this.model.bindColumn(localKey)} ${operator} ${this.model.bindColumn(String(referenceKey))}`
66
+ ].join(' ');
67
+ this.join.push(join);
68
+ return this;
65
69
  }
66
- const { alias1, alias2, table1, table2, model1, model2, localKey, foreignKey } = this._handleJoinModel(m1, m2);
67
- const join = this._handleCombindJoin(`${alias1 === '' ? table1 : `${table1}|${alias1}`}.${localKey}`, `${alias2 === '' ? table2 : `${table2}|${alias2}`}.${foreignKey}`, { operator: 'OR' });
68
- this.join.push(join);
69
- return this;
70
- }
71
- onRaw(localKey, referenceKey) {
72
- const table = referenceKey?.split('.')?.shift();
73
- const join = [
74
- `${this.model['$constants'](this.type)}`,
75
- `\`${table}\` ${this.model['$constants']('ON')}`,
76
- `${this.model.bindColumn(localKey)} = ${this.model.bindColumn(String(referenceKey))}`
77
- ].join(' ');
78
- this.join.push(join);
79
- return this;
80
- }
81
- andRaw(localKey, referenceKey) {
82
- if (!this.join.length) {
83
- return this.onRaw(localKey, referenceKey);
70
+ const format = this.formatValue(referenceKey, operator);
71
+ if (format.isRaw) {
72
+ const join = [
73
+ this.model['$constants']('AND'),
74
+ this.model.bindColumn(localKey),
75
+ format.value
76
+ ].join(' ');
77
+ this.join.push(join);
78
+ return this;
84
79
  }
85
80
  const join = [
86
- `${this.model['$constants']('AND')}`,
87
- `${this.model.bindColumn(localKey)} = ${this.model.bindColumn(String(referenceKey))}`
81
+ this.model['$constants']('AND'),
82
+ this.model.bindColumn(localKey),
83
+ format.operator,
84
+ format.value
88
85
  ].join(' ');
89
86
  this.join.push(join);
90
87
  return this;
91
88
  }
92
- orRaw(localKey, referenceKey) {
89
+ or(localKey, operator, referenceKey) {
93
90
  if (!this.join.length) {
94
- return this.onRaw(localKey, referenceKey);
91
+ throw new Error("Call .on() before using this");
92
+ }
93
+ [referenceKey, operator] = utils_1.utils.valueAndOperator(referenceKey, operator, arguments.length === 2);
94
+ if (typeof referenceKey === 'string' && /\./.test(referenceKey)) {
95
+ const join = [
96
+ `${this.model['$constants']('OR')}`,
97
+ `${this.model.bindColumn(localKey)} ${operator} ${this.model.bindColumn(String(referenceKey))}`
98
+ ].join(' ');
99
+ this.join.push(join);
100
+ return this;
101
+ }
102
+ const format = this.formatValue(referenceKey, operator);
103
+ if (format.isRaw) {
104
+ const join = [
105
+ this.model['$constants']('OR'),
106
+ this.model.bindColumn(localKey),
107
+ format.value
108
+ ].join(' ');
109
+ this.join.push(join);
110
+ return this;
95
111
  }
96
112
  const join = [
97
- `${this.model['$constants']('OR')}`,
98
- `${this.model.bindColumn(localKey)} = ${this.model.bindColumn(String(referenceKey))}`
113
+ this.model['$constants']('OR'),
114
+ this.model.bindColumn(localKey),
115
+ format.operator,
116
+ format.value
99
117
  ].join(' ');
100
118
  this.join.push(join);
101
119
  return this;
@@ -103,7 +121,10 @@ class JoinModel {
103
121
  toString() {
104
122
  return this.join.join(' ');
105
123
  }
106
- _handleJoinModel(m1, m2) {
124
+ handleJoinModel(m1, m2) {
125
+ if (typeof m1 === 'string' || typeof m2 === 'string') {
126
+ throw new Error('Please Check your callback');
127
+ }
107
128
  let model1 = typeof m1 === 'object' ? new m1.model() : new m1();
108
129
  let model2 = typeof m2 === 'object' ? new m2.model() : new m2();
109
130
  let localKey = typeof m1 === 'object' ? m1.key != null && m1.key !== '' ? String(m1.key) : '' : '';
@@ -138,22 +159,30 @@ class JoinModel {
138
159
  foreignKey
139
160
  };
140
161
  }
141
- _handleCombindJoin(localKey, referenceKey, { operator = 'AND' } = {}) {
142
- let table = referenceKey?.split('.')?.shift();
143
- const aliasRef = /\|/.test(String(table));
144
- if (aliasRef) {
145
- const tableRef = table?.split('|')?.shift();
146
- table = `\`${tableRef}\` ${this.model['$constants']('AS')} \`${table?.split('|')?.pop()}\``;
147
- referenceKey = String(referenceKey?.split('|')?.pop() ?? referenceKey);
148
- }
149
- const alias = /\|/.test(String(localKey));
150
- if (alias) {
151
- localKey = String(localKey?.split('|')?.pop() ?? localKey);
152
- }
153
- return [
154
- `${this.model['$constants'](operator)}`,
162
+ onRaw(localKey, referenceKey) {
163
+ const table = referenceKey.split('.')?.shift();
164
+ const join = [
165
+ `${this.model['$constants'](this.type)}`,
166
+ `\`${table}\` ${this.model['$constants']('ON')}`,
155
167
  `${this.model.bindColumn(localKey)} = ${this.model.bindColumn(String(referenceKey))}`
156
168
  ].join(' ');
169
+ this.join.push(join);
170
+ return this;
171
+ }
172
+ formatValue(value, operator) {
173
+ let formated = utils_1.utils.formatQueryValue(value);
174
+ if (utils_1.utils.checkValueHasRaw(value)) {
175
+ return { isRaw: true, value: formated, operator: null };
176
+ }
177
+ if (value == null) {
178
+ formated = '';
179
+ operator = `${this.model['$constants']('IS_NULL')}`;
180
+ }
181
+ if (Array.isArray(value)) {
182
+ formated = `(${value.map((v) => utils_1.utils.formatQueryValue(v)).join(', ')})`;
183
+ operator = `${this.model['$constants']('IN')}`;
184
+ }
185
+ return { isRaw: false, value: formated, operator };
157
186
  }
158
187
  }
159
188
  exports.JoinModel = JoinModel;
@@ -1 +1 @@
1
- {"version":3,"file":"JoinModel.js","sourceRoot":"","sources":["../../../src/lib/core/JoinModel.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAiC;AACjC,mCAA+B;AAK/B,MAAM,SAAS;IAIG;IACA;IAJN,IAAI,GAAc,EAAE,CAAA;IAE5B,YACc,KAAa,EACb,OAAkE,YAAY;QAD9E,UAAK,GAAL,KAAK,CAAQ;QACb,SAAI,GAAJ,IAAI,CAA0E;IACzF,CAAC;IAEJ,EAAE,CAAE,EAAkB,EAAE,EAAmB;QAEvC,MAAM,EACF,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,QAAQ,EACR,UAAU,EACb,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAEjC,MAAM,IAAI,GAAG,IAAI,aAAK,EAAE;aACvB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAEtB,MAAM,UAAU,GAAG;YACf,YAAY,EAAG,MAAM;YACrB,WAAW,EAAI,UAAU;YACzB,YAAY,EAAG,WAAW;YAC1B,YAAY,EAAG,WAAW;SAC7B,CAAC,IAAI,CAAC,IAAI,CAAoD,CAAA;QAE/D,IAAI,CAAC,UAAU,CAAC,CACZ,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,MAAM,EAAE,IAAI,QAAQ,EAAE,EAC/D,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,MAAM,EAAE,IAAI,UAAU,EAAE,CACpE,CAAA;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAEhF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAEhD,MAAM,WAAW,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAA;YAEtG,MAAM,gBAAgB,GAAG;gBACrB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;aACtC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEX,IAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAE,CAAC,EAAE,CAAC;gBACpE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;YACrC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAChD,MAAM,WAAW,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAA;YACtG,MAAM,gBAAgB,GAAG;gBACrB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;aACtC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEX,IAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAE,CAAC,EAAE,CAAC;gBACpE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;YACrC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QAE7C,OAAO,IAAI,CAAA;IACf,CAAC;IAED,GAAG,CAAE,EAAkB,EAAE,EAAmB;QAExC,IAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAC1B,CAAC;QAED,MAAM,EACF,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,QAAQ,EACR,UAAU,EACb,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAChC,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,MAAM,EAAE,IAAI,QAAQ,EAAE,EAC/D,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,MAAM,EAAE,IAAI,UAAU,EAAE,CACpE,CAAA;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEpB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,EAAE,CAAE,EAAkB,EAAE,EAAmB;QAEvC,IAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAC1B,CAAC;QAED,MAAM,EACF,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,QAAQ,EACR,UAAU,EACb,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAChC,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,MAAM,EAAE,IAAI,QAAQ,EAAE,EAC/D,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,MAAM,EAAE,IAAI,UAAU,EAAE,EACjE,EAAE,QAAQ,EAAG,IAAI,EAAC,CACrB,CAAA;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEpB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,KAAK,CAAE,QAA+B,EAAE,YAAqC;QAEzE,MAAM,KAAK,GAAG,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAA;QAE/C,MAAM,IAAI,GAAG;YACT,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACxC,KAAK,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE;YAChD,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE;SACxF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEpB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,MAAM,CAAE,QAA+B,EAAE,YAAqC;QAE1E,IAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC7C,CAAC;QAED,MAAM,IAAI,GAAG;YACT,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,EAAE;YACpC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE;SACxF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEpB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,KAAK,CAAE,QAA+B,EAAE,YAAqC;QAEzE,IAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAEnB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC7C,CAAC;QAED,MAAM,IAAI,GAAG;YACT,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE;YACnC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE;SACxF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEpB,OAAO,IAAI,CAAA;IACf,CAAC;IAES,QAAQ;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IAEO,gBAAgB,CACpB,EAAkB,EAClB,EAAkB;QAGlB,IAAI,MAAM,GAAiB,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAA;QAC7E,IAAI,MAAM,GAAiB,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAA;QAC7E,IAAI,QAAQ,GAAe,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAC9G,IAAI,UAAU,GAAa,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAC9G,IAAI,MAAM,GAAiB,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5G,IAAI,MAAM,GAAiB,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAE5G,IAAG,MAAM,KAAK,EAAE,EAAE,CAAC;YACf,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChF,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC5B,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACxB,CAAC;QAED,IAAG,MAAM,KAAK,EAAE,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACxB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,CAAA;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,CAAA;QAEpC,QAAQ,GAAK,CAAE,QAAQ,KAAK,EAAE,IAAI,QAAQ,IAAI,IAAI,CAAE;YAChD,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,QAAQ,CAAA;QAEd,UAAU,GAAG,CAAE,UAAU,KAAK,EAAE,IAAI,UAAU,IAAI,IAAI,CAAE;YACpD,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,mBAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;YAC7D,CAAC,CAAC,UAAU,CAAA;QAEhB,OAAO;YACH,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,MAAM;YACN,QAAQ;YACR,UAAU;SACb,CAAA;IACL,CAAC;IAEO,kBAAkB,CAAE,QAA+B,EAAG,YAAqC,EAAG,EAAE,QAAQ,GAAG,KAAK,KAAkC,EAAE;QAExJ,IAAI,KAAK,GAAG,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAA;QAE7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAEzC,IAAG,QAAQ,EAAE,CAAC;YAEV,MAAM,QAAQ,GAAG,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAA;YAE3C,KAAK,GAAG,KAAK,QAAQ,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAA;YAE3F,YAAY,GAAI,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,YAAY,CAA0B,CAAA;QACpG,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;QAEzC,IAAG,KAAK,EAAE,CAAC;YACP,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,QAAQ,CAA0B,CAAA;QACvF,CAAC;QAED,OAAO;YACH,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE;YACvC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE;SACxF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACf,CAAC;CACJ;AAEQ,8BAAS;AAClB,kBAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"JoinModel.js","sourceRoot":"","sources":["../../../src/lib/core/JoinModel.ts"],"names":[],"mappings":"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"}