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,261 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MongodblDriver = void 0;
4
+ const __1 = require("..");
5
+ const MongodbQueryBuilder_1 = require("./MongodbQueryBuilder");
6
+ class MongodblDriver extends __1.BaseDriver {
7
+ db;
8
+ _connecting;
9
+ constructor(options) {
10
+ super();
11
+ this.options = options;
12
+ }
13
+ connect() {
14
+ const options = this.options;
15
+ const { MongoClient } = this.import("mongodb");
16
+ const url = `mongodb://${options.user || options.username}:${options.password}` +
17
+ `@${options.host}:${options.port}` +
18
+ `/${options.database}` +
19
+ `?authSource=admin`;
20
+ this.pool = new MongoClient(url, {
21
+ maxPoolSize: options.connectionLimit ?? 20,
22
+ minPoolSize: Math.floor((options.connectionLimit ?? 20) * 0.3),
23
+ maxIdleTimeMS: 1000 * 90,
24
+ });
25
+ this._connecting = this.pool
26
+ .connect()
27
+ .then(() => {
28
+ this.db = this.pool.db(options.database);
29
+ if (this.options.CONNECTION_SUCCESS) {
30
+ console.log(this._messageConnected("MongoDB connected"));
31
+ }
32
+ })
33
+ .catch((err) => {
34
+ const message = this._messageError.bind(this);
35
+ console.log(message(err?.message));
36
+ if (this.options.CONNECTION_ERROR)
37
+ process.exit();
38
+ });
39
+ return {
40
+ database: () => options.database,
41
+ on: (event, data) => this.on(event, data),
42
+ queryBuilder: MongodbQueryBuilder_1.MongodbQueryBuilder,
43
+ query: async (collection) => this._query(collection),
44
+ connection: () => this._connection(),
45
+ end: () => this._end(),
46
+ };
47
+ }
48
+ disconnect(pool) {
49
+ if (pool == null)
50
+ return;
51
+ pool?.end(() => {
52
+ pool = undefined;
53
+ });
54
+ }
55
+ async _query(pipeline) {
56
+ if (this.db == null) {
57
+ await this._connecting;
58
+ }
59
+ if (this.db?.collection == null) {
60
+ throw new Error("Failed to establish a connection to the collection.");
61
+ }
62
+ const { type, collection, args } = this._parseInput(pipeline);
63
+ const col = this.db.collection(collection);
64
+ let results;
65
+ switch (type) {
66
+ case 'aggregate':
67
+ results = await col.aggregate(args).toArray();
68
+ break;
69
+ case 'insertMany':
70
+ results = await col.insertMany(args);
71
+ break;
72
+ case 'updateMany':
73
+ results = await col.updateMany(args.filter, args.update);
74
+ break;
75
+ case 'deleteMany':
76
+ results = await col.deleteMany(args);
77
+ break;
78
+ default:
79
+ throw new Error('Unsupported query type');
80
+ }
81
+ this.meta(results, pipeline);
82
+ return this.returning(results);
83
+ }
84
+ async _connection() {
85
+ if (this.db == null) {
86
+ await this._connecting;
87
+ }
88
+ const client = this.pool;
89
+ const session = client.startSession();
90
+ let closed = false;
91
+ let inTransaction = false;
92
+ const supportsTransaction = client?.topology?.s?.description?.type !== "Single";
93
+ const query = async (collectionName) => {
94
+ if (closed) {
95
+ throw new Error(this.MESSAGE_TRX_CLOSED);
96
+ }
97
+ const start = Date.now();
98
+ const collection = this.db.collection(collectionName);
99
+ let data;
100
+ if (supportsTransaction && inTransaction) {
101
+ data = await collection.aggregate([], { session }).toArray();
102
+ }
103
+ else {
104
+ data = await collection.aggregate([]).toArray();
105
+ }
106
+ this._detectEventQuery({
107
+ start,
108
+ sql: collectionName,
109
+ });
110
+ this.meta(data, collectionName);
111
+ return this.returning(data);
112
+ };
113
+ const startTransaction = async () => {
114
+ if (closed) {
115
+ throw new Error(this.MESSAGE_TRX_CLOSED);
116
+ }
117
+ if (!supportsTransaction) {
118
+ throw new Error("MongoDB is running in standalone mode. Transactions are not supported.");
119
+ }
120
+ if (inTransaction) {
121
+ throw new Error("Transaction already started");
122
+ }
123
+ session.startTransaction();
124
+ inTransaction = true;
125
+ };
126
+ const commit = async () => {
127
+ if (closed) {
128
+ throw new Error(this.MESSAGE_TRX_CLOSED);
129
+ }
130
+ if (supportsTransaction && inTransaction) {
131
+ await session.commitTransaction();
132
+ }
133
+ inTransaction = false;
134
+ await end();
135
+ };
136
+ const rollback = async () => {
137
+ if (closed)
138
+ return;
139
+ if (supportsTransaction && inTransaction) {
140
+ await session.abortTransaction();
141
+ }
142
+ inTransaction = false;
143
+ await end();
144
+ };
145
+ const end = async () => {
146
+ if (closed)
147
+ return;
148
+ closed = true;
149
+ await session.endSession();
150
+ };
151
+ return {
152
+ on: (event, data) => this.on(event, data),
153
+ queryBuilder: MongodbQueryBuilder_1.MongodbQueryBuilder,
154
+ query,
155
+ startTransaction,
156
+ commit,
157
+ rollback,
158
+ end,
159
+ release: async () => {
160
+ return;
161
+ }
162
+ };
163
+ }
164
+ async _end() {
165
+ if (!this.pool)
166
+ return;
167
+ await this.pool.close();
168
+ this.pool = undefined;
169
+ console.log("MongoDB connection closed");
170
+ }
171
+ meta(results, pipeline) {
172
+ if (Array.isArray(results))
173
+ return;
174
+ if (results.$meta == null)
175
+ results.$meta = {};
176
+ const command = this._detectQueryType(pipeline);
177
+ results.$meta = {
178
+ command
179
+ };
180
+ if (command === "INSERT") {
181
+ const insertIds = Object.values(results.insertedIds);
182
+ results.$meta = {
183
+ ...results.$meta,
184
+ insertIds,
185
+ affected: true,
186
+ };
187
+ }
188
+ if (command === "UPDATE" || command === "DELETE") {
189
+ results.$meta = {
190
+ ...results.$meta,
191
+ insertIds: [],
192
+ affected: Boolean(results.affectedRows),
193
+ };
194
+ }
195
+ }
196
+ returning(results) {
197
+ if (Array.isArray(results))
198
+ return results;
199
+ return results;
200
+ }
201
+ _parseInput(input) {
202
+ let match = input.match(/db\.([a-zA-Z0-9_]+)\.aggregate\((\[.*\])\)\.toArray\(\)/);
203
+ if (match) {
204
+ const [, collection, pipelineStr] = match;
205
+ return {
206
+ type: 'aggregate',
207
+ collection,
208
+ args: JSON.parse(pipelineStr)
209
+ };
210
+ }
211
+ match = input.match(/db\.([a-zA-Z0-9_]+)\.insertMany\((\[.*\])\)/);
212
+ if (match) {
213
+ const [, collection, docsStr] = match;
214
+ return {
215
+ type: 'insertMany',
216
+ collection,
217
+ args: JSON.parse(docsStr)
218
+ };
219
+ }
220
+ match = input.match(/db\.([a-zA-Z0-9_]+)\.updateMany\((\{.*\}),\s*(\{.*\})\)/);
221
+ if (match) {
222
+ const [, collection, filterStr, updateStr] = match;
223
+ return {
224
+ type: 'updateMany',
225
+ collection,
226
+ args: {
227
+ filter: JSON.parse(filterStr),
228
+ update: JSON.parse(updateStr)
229
+ }
230
+ };
231
+ }
232
+ match = input.match(/db\.([a-zA-Z0-9_]+)\.deleteMany\((\{.*\})\)/);
233
+ if (match) {
234
+ const [, collection, filterStr] = match;
235
+ return {
236
+ type: 'deleteMany',
237
+ collection,
238
+ args: JSON.parse(filterStr)
239
+ };
240
+ }
241
+ return { type: 'unknown', collection: '', args: null };
242
+ }
243
+ _detectQueryType(query) {
244
+ const { type } = this._parseInput(query);
245
+ const selectRegex = /^\s*aggregate\b/i;
246
+ const updateRegex = /^\s*updateMany\b/i;
247
+ const insertRegex = /^\s*insertMany\b/i;
248
+ const deleteRegex = /^\s*deleteMany\b/i;
249
+ if (selectRegex.test(type))
250
+ return "SELECT";
251
+ if (updateRegex.test(type))
252
+ return "UPDATE";
253
+ if (insertRegex.test(type))
254
+ return "INSERT";
255
+ if (deleteRegex.test(type))
256
+ return "DELETE";
257
+ return "UNKNOWN";
258
+ }
259
+ }
260
+ exports.MongodblDriver = MongodblDriver;
261
+ //# sourceMappingURL=MongodbDriver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongodbDriver.js","sourceRoot":"","sources":["../../../../../src/lib/core/Driver/mongodb/MongodbDriver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ import { QueryBuilder } from "..";
2
+ import { Blueprint } from "../../Blueprint";
3
+ import { StateManager } from "../../StateManager";
4
+ export declare class MongodbQueryBuilder extends QueryBuilder {
5
+ constructor(state: StateManager);
6
+ select: () => string;
7
+ insert(): string;
8
+ update(): string;
9
+ remove(): string;
10
+ any(): string;
11
+ getColumns({ database, table }: {
12
+ database: string;
13
+ table: string;
14
+ }): string;
15
+ getSchema({ database, table }: {
16
+ database: string;
17
+ table: string;
18
+ }): string;
19
+ getTables(database: string): string;
20
+ hasTable({ database, table }: {
21
+ database: string;
22
+ table: string;
23
+ }): string;
24
+ createDatabase(database: string): string;
25
+ createTable({ database, table, schema, }: {
26
+ database: string;
27
+ table: string;
28
+ schema: Record<string, Blueprint> | string[];
29
+ }): string;
30
+ addColumn({ table, column, type, attributes, after, }: {
31
+ table: string;
32
+ column: string;
33
+ type: string;
34
+ attributes: string[];
35
+ after: string;
36
+ }): string;
37
+ changeColumn({ table, column, type, attributes, }: {
38
+ table: string;
39
+ column: string;
40
+ type: string;
41
+ attributes: string[];
42
+ }): string;
43
+ getChildFKs({ database, table }: {
44
+ database: string;
45
+ table: string;
46
+ }): string;
47
+ getFKs({ database, table }: {
48
+ database: string;
49
+ table: string;
50
+ }): string;
51
+ hasFK({ database, table, constraint, }: {
52
+ database: string;
53
+ table: string;
54
+ constraint: string;
55
+ }): string;
56
+ addFK({ table, tableRef, key, constraint, foreign, }: {
57
+ table: string;
58
+ tableRef: string;
59
+ key: string;
60
+ constraint: string;
61
+ foreign: {
62
+ references: string;
63
+ onDelete: string;
64
+ onUpdate: string;
65
+ };
66
+ }): string;
67
+ dropFK({ table, constraint, }: {
68
+ table: string;
69
+ constraint: string;
70
+ }): string;
71
+ getIndexes({ database, table }: {
72
+ database: string;
73
+ table: string;
74
+ }): string;
75
+ hasIndex({ database, table, name, }: {
76
+ database: string;
77
+ table: string;
78
+ name: string;
79
+ }): string;
80
+ addIndex({ table, name, columns, }: {
81
+ table: string;
82
+ name: string;
83
+ columns: string[];
84
+ }): string;
85
+ dropIndex({ table, name, }: {
86
+ table: string;
87
+ name: string;
88
+ }): string;
89
+ hasUnique({ database, table, name, }: {
90
+ database: string;
91
+ table: string;
92
+ name: string;
93
+ }): string;
94
+ addUnique({ table, name, columns }: {
95
+ table: string;
96
+ name: string;
97
+ columns: string[];
98
+ }): string;
99
+ dropUnique({ table, name, }: {
100
+ table: string;
101
+ name: string;
102
+ }): string;
103
+ hasPrimaryKey({ database, table, }: {
104
+ database: string;
105
+ table: string;
106
+ }): string;
107
+ addPrimaryKey({ table, columns, }: {
108
+ table: string;
109
+ columns: string[];
110
+ }): string;
111
+ dropPrimaryKey({ table }: {
112
+ table: string;
113
+ }): string;
114
+ getDatabase(database: string): string;
115
+ dropDatabase(database: string): string;
116
+ dropView(view: string): string;
117
+ dropTable(table: string): string;
118
+ truncate(table: string): string;
119
+ sleep(second: number): string;
120
+ format(pipeline: (string | null)[] | string): string;
121
+ getActiveConnections(): string;
122
+ getMaxConnections(): string;
123
+ lockTable(mode: 'WRITE' | 'READ'): string;
124
+ unlockTable(): string;
125
+ protected bindJoin(values: string[]): string;
126
+ protected bindWhere(values: any[]): string;
127
+ protected bindOrderBy(values: string[]): string;
128
+ protected bindGroupBy(values: string[]): string;
129
+ protected bindSelect(values: string[]): string;
130
+ protected bindFrom({ from, alias, rawAlias, }: {
131
+ from: string[];
132
+ alias: string | null;
133
+ rawAlias: string | null;
134
+ }): string;
135
+ protected bindLimit(limit: string | number | null): string;
136
+ protected bindOffset(offset: string | number | null): string;
137
+ protected bindHaving(having: string | null): string;
138
+ protected bindRowLevelLock(mode: "FOR_UPDATE" | "FOR_SHARE" | null): string;
139
+ private _objectId;
140
+ private _parseWheres;
141
+ }