tspace-mysql 1.9.0 → 1.9.1

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 (108) hide show
  1. package/README.md +4357 -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 +11 -7
  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 +4 -1
  12. package/dist/lib/core/Abstracts/AbstractDB.js.map +1 -1
  13. package/dist/lib/core/Abstracts/AbstractView.js.map +1 -1
  14. package/dist/lib/core/Blueprint.d.ts +30 -10
  15. package/dist/lib/core/Blueprint.js +39 -14
  16. package/dist/lib/core/Blueprint.js.map +1 -1
  17. package/dist/lib/core/Builder.d.ts +263 -9
  18. package/dist/lib/core/Builder.js +610 -347
  19. package/dist/lib/core/Builder.js.map +1 -1
  20. package/dist/lib/core/Cache/DBCache.js +19 -20
  21. package/dist/lib/core/Cache/DBCache.js.map +1 -1
  22. package/dist/lib/core/Cache/MemoryCache.js +3 -3
  23. package/dist/lib/core/Cache/MemoryCache.js.map +1 -1
  24. package/dist/lib/core/Cache/RedisCache.js +27 -17
  25. package/dist/lib/core/Cache/RedisCache.js.map +1 -1
  26. package/dist/lib/core/Cache/index.js +5 -4
  27. package/dist/lib/core/Cache/index.js.map +1 -1
  28. package/dist/lib/core/Contracts/AlterTable.d.ts +152 -0
  29. package/dist/lib/core/Contracts/AlterTable.js +243 -0
  30. package/dist/lib/core/Contracts/AlterTable.js.map +1 -0
  31. package/dist/lib/core/Contracts/Audit.js +2 -5
  32. package/dist/lib/core/Contracts/Audit.js.map +1 -1
  33. package/dist/lib/core/DB.d.ts +101 -9
  34. package/dist/lib/core/DB.js +168 -29
  35. package/dist/lib/core/DB.js.map +1 -1
  36. package/dist/lib/core/Decorator.d.ts +144 -16
  37. package/dist/lib/core/Decorator.js +156 -14
  38. package/dist/lib/core/Decorator.js.map +1 -1
  39. package/dist/lib/core/Driver/index.d.ts +43 -9
  40. package/dist/lib/core/Driver/index.js +9 -7
  41. package/dist/lib/core/Driver/index.js.map +1 -1
  42. package/dist/lib/core/Driver/mariadb/MariadbDriver.js +74 -27
  43. package/dist/lib/core/Driver/mariadb/MariadbDriver.js.map +1 -1
  44. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.d.ts +45 -9
  45. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js +165 -21
  46. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js.map +1 -1
  47. package/dist/lib/core/Driver/mongodb/MongodbDriver.d.ts +24 -0
  48. package/dist/lib/core/Driver/mongodb/MongodbDriver.js +255 -0
  49. package/dist/lib/core/Driver/mongodb/MongodbDriver.js.map +1 -0
  50. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.d.ts +141 -0
  51. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js +563 -0
  52. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js.map +1 -0
  53. package/dist/lib/core/Driver/mysql/MysqlDriver.js +105 -95
  54. package/dist/lib/core/Driver/mysql/MysqlDriver.js.map +1 -1
  55. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.d.ts +45 -9
  56. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js +165 -21
  57. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js.map +1 -1
  58. package/dist/lib/core/Driver/postgres/PostgresDriver.js +97 -72
  59. package/dist/lib/core/Driver/postgres/PostgresDriver.js.map +1 -1
  60. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.d.ts +50 -9
  61. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js +296 -41
  62. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js.map +1 -1
  63. package/dist/lib/core/Driver/sqlite/SqliteDriver.d.ts +20 -0
  64. package/dist/lib/core/Driver/sqlite/SqliteDriver.js +192 -0
  65. package/dist/lib/core/Driver/sqlite/SqliteDriver.js.map +1 -0
  66. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.d.ts +144 -0
  67. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js +689 -0
  68. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js.map +1 -0
  69. package/dist/lib/core/JoinModel.js +2 -2
  70. package/dist/lib/core/JoinModel.js.map +1 -1
  71. package/dist/lib/core/Meta.d.ts +17 -11
  72. package/dist/lib/core/Meta.js +25 -19
  73. package/dist/lib/core/Meta.js.map +1 -1
  74. package/dist/lib/core/Model.d.ts +450 -108
  75. package/dist/lib/core/Model.js +1031 -587
  76. package/dist/lib/core/Model.js.map +1 -1
  77. package/dist/lib/{tools/index.d.ts → core/Package.d.ts} +11 -3
  78. package/dist/lib/{tools/index.js → core/Package.js} +20 -7
  79. package/dist/lib/core/Package.js.map +1 -0
  80. package/dist/lib/core/Pool.js +42 -30
  81. package/dist/lib/core/Pool.js.map +1 -1
  82. package/dist/lib/core/Queue.d.ts +240 -0
  83. package/dist/lib/core/Queue.js +686 -0
  84. package/dist/lib/core/Queue.js.map +1 -0
  85. package/dist/lib/core/RelationManager.js +27 -25
  86. package/dist/lib/core/RelationManager.js.map +1 -1
  87. package/dist/lib/core/Repository.d.ts +73 -207
  88. package/dist/lib/core/Repository.js +120 -235
  89. package/dist/lib/core/Repository.js.map +1 -1
  90. package/dist/lib/core/Schema.d.ts +218 -0
  91. package/dist/lib/core/Schema.js +370 -65
  92. package/dist/lib/core/Schema.js.map +1 -1
  93. package/dist/lib/core/StateManager.d.ts +25 -12
  94. package/dist/lib/core/StateManager.js +10 -5
  95. package/dist/lib/core/StateManager.js.map +1 -1
  96. package/dist/lib/core/UtilityTypes.d.ts +85 -56
  97. package/dist/lib/core/UtilityTypes.js.map +1 -1
  98. package/dist/lib/core/index.d.ts +4 -0
  99. package/dist/lib/core/index.js +6 -2
  100. package/dist/lib/core/index.js.map +1 -1
  101. package/dist/lib/types/decorator/index.d.ts +1 -1
  102. package/dist/lib/types/index.d.ts +69 -22
  103. package/dist/lib/types/repository/index.d.ts +68 -37
  104. package/dist/lib/utils/index.d.ts +11 -1
  105. package/dist/lib/utils/index.js +58 -2
  106. package/dist/lib/utils/index.js.map +1 -1
  107. package/package.json +14 -6
  108. package/dist/lib/tools/index.js.map +0 -1
@@ -0,0 +1,24 @@
1
+ import { BaseDriver } from "..";
2
+ import { MongodbQueryBuilder } from "./MongodbQueryBuilder";
3
+ import type { TConnection, TPoolEvent } from "../../../types";
4
+ export declare class MongodblDriver extends BaseDriver {
5
+ private db;
6
+ private _connecting;
7
+ constructor(options: Record<string, any>);
8
+ connect(this: MongodblDriver): {
9
+ database: () => string;
10
+ on: (event: TPoolEvent, data: any) => MongodblDriver;
11
+ queryBuilder: typeof MongodbQueryBuilder;
12
+ query: (collection: string) => Promise<any>;
13
+ connection: () => Promise<TConnection>;
14
+ end: () => Promise<void>;
15
+ };
16
+ disconnect(pool: any): void;
17
+ private _query;
18
+ private _connection;
19
+ private _end;
20
+ protected meta(results: any, pipeline: string): void;
21
+ protected returning(results: any): any;
22
+ private _parseInput;
23
+ protected _detectQueryType(query: string): "SELECT" | "UPDATE" | "DELETE" | "INSERT" | "UNKNOWN";
24
+ }
@@ -0,0 +1,255 @@
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.password}@${options.host}:${options.port}/${options.database}?authSource=admin`;
17
+ this.pool = new MongoClient(url, {
18
+ maxPoolSize: options.connectionLimit ?? 10,
19
+ minPoolSize: Math.max(2, Math.floor((options.connectionLimit ?? 10) / 3)),
20
+ maxIdleTimeMS: 1000 * 60,
21
+ });
22
+ this._connecting = this.pool
23
+ .connect()
24
+ .then(() => {
25
+ this.db = this.pool.db(options.database);
26
+ if (this.options.CONNECTION_SUCCESS) {
27
+ console.log(this._messageConnected("MongoDB connected"));
28
+ }
29
+ })
30
+ .catch((err) => {
31
+ const message = this._messageError.bind(this);
32
+ console.log(message(err?.message));
33
+ if (this.options.CONNECTION_ERROR)
34
+ process.exit();
35
+ });
36
+ return {
37
+ database: () => options.database,
38
+ on: (event, data) => this.on(event, data),
39
+ queryBuilder: MongodbQueryBuilder_1.MongodbQueryBuilder,
40
+ query: async (collection) => this._query(collection),
41
+ connection: () => this._connection(),
42
+ end: () => this._end(),
43
+ };
44
+ }
45
+ disconnect(pool) {
46
+ if (pool == null)
47
+ return;
48
+ pool?.end(() => {
49
+ pool = undefined;
50
+ });
51
+ }
52
+ async _query(pipeline) {
53
+ if (this.db == null) {
54
+ await this._connecting;
55
+ }
56
+ if (this.db?.collection == null) {
57
+ throw new Error("Failed to establish a connection to the collection.");
58
+ }
59
+ const { type, collection, args } = this._parseInput(pipeline);
60
+ const col = this.db.collection(collection);
61
+ let results;
62
+ switch (type) {
63
+ case 'aggregate':
64
+ results = await col.aggregate(args).toArray();
65
+ break;
66
+ case 'insertMany':
67
+ results = await col.insertMany(args);
68
+ break;
69
+ case 'updateMany':
70
+ results = await col.updateMany(args.filter, args.update);
71
+ break;
72
+ case 'deleteMany':
73
+ results = await col.deleteMany(args);
74
+ break;
75
+ default:
76
+ throw new Error('Unsupported query type');
77
+ }
78
+ this.meta(results, pipeline);
79
+ return this.returning(results);
80
+ }
81
+ async _connection() {
82
+ if (this.db == null) {
83
+ await this._connecting;
84
+ }
85
+ const client = this.pool;
86
+ const session = client.startSession();
87
+ let closed = false;
88
+ let inTransaction = false;
89
+ const supportsTransaction = client?.topology?.s?.description?.type !== "Single";
90
+ const ensureOpen = () => {
91
+ if (closed)
92
+ throw new Error(this.MESSAGE_TRX_CLOSED);
93
+ };
94
+ const query = async (collectionName) => {
95
+ ensureOpen();
96
+ const start = Date.now();
97
+ const collection = this.db.collection(collectionName);
98
+ let data;
99
+ if (supportsTransaction && inTransaction) {
100
+ data = await collection.aggregate([], { session }).toArray();
101
+ }
102
+ else {
103
+ data = await collection.aggregate([]).toArray();
104
+ }
105
+ this._detectEventQuery({
106
+ start,
107
+ sql: collectionName,
108
+ });
109
+ this.meta(data, collectionName);
110
+ return this.returning(data);
111
+ };
112
+ const startTransaction = async () => {
113
+ ensureOpen();
114
+ if (!supportsTransaction) {
115
+ throw new Error("MongoDB is running in standalone mode. Transactions are not supported.");
116
+ }
117
+ if (inTransaction) {
118
+ throw new Error("Transaction already started");
119
+ }
120
+ session.startTransaction();
121
+ inTransaction = true;
122
+ };
123
+ const commit = async () => {
124
+ ensureOpen();
125
+ if (supportsTransaction && inTransaction) {
126
+ await session.commitTransaction();
127
+ }
128
+ inTransaction = false;
129
+ await end();
130
+ };
131
+ const rollback = async () => {
132
+ ensureOpen();
133
+ if (supportsTransaction && inTransaction) {
134
+ await session.abortTransaction();
135
+ }
136
+ inTransaction = false;
137
+ await end();
138
+ };
139
+ const end = async () => {
140
+ if (closed)
141
+ return;
142
+ closed = true;
143
+ await session.endSession();
144
+ };
145
+ return {
146
+ on: (event, data) => this.on(event, data),
147
+ queryBuilder: MongodbQueryBuilder_1.MongodbQueryBuilder,
148
+ query,
149
+ startTransaction,
150
+ commit,
151
+ rollback,
152
+ end,
153
+ release: async () => {
154
+ return;
155
+ }
156
+ };
157
+ }
158
+ async _end() {
159
+ if (!this.pool)
160
+ return;
161
+ await this.pool.close();
162
+ this.pool = undefined;
163
+ console.log("MongoDB connection closed");
164
+ }
165
+ meta(results, pipeline) {
166
+ if (Array.isArray(results))
167
+ return;
168
+ if (results.$meta == null)
169
+ results.$meta = {};
170
+ const command = this._detectQueryType(pipeline);
171
+ results.$meta = {
172
+ command
173
+ };
174
+ if (command === "INSERT") {
175
+ const insertIds = Object.values(results.insertedIds);
176
+ results.$meta = {
177
+ ...results.$meta,
178
+ insertIds,
179
+ affected: true,
180
+ };
181
+ }
182
+ if (command === "UPDATE" || command === "DELETE") {
183
+ results.$meta = {
184
+ ...results.$meta,
185
+ insertIds: [],
186
+ affected: Boolean(results.affectedRows),
187
+ };
188
+ }
189
+ }
190
+ returning(results) {
191
+ if (Array.isArray(results))
192
+ return results;
193
+ return results;
194
+ }
195
+ _parseInput(input) {
196
+ let match = input.match(/db\.([a-zA-Z0-9_]+)\.aggregate\((\[.*\])\)\.toArray\(\)/);
197
+ if (match) {
198
+ const [, collection, pipelineStr] = match;
199
+ return {
200
+ type: 'aggregate',
201
+ collection,
202
+ args: JSON.parse(pipelineStr)
203
+ };
204
+ }
205
+ match = input.match(/db\.([a-zA-Z0-9_]+)\.insertMany\((\[.*\])\)/);
206
+ if (match) {
207
+ const [, collection, docsStr] = match;
208
+ return {
209
+ type: 'insertMany',
210
+ collection,
211
+ args: JSON.parse(docsStr)
212
+ };
213
+ }
214
+ match = input.match(/db\.([a-zA-Z0-9_]+)\.updateMany\((\{.*\}),\s*(\{.*\})\)/);
215
+ if (match) {
216
+ const [, collection, filterStr, updateStr] = match;
217
+ return {
218
+ type: 'updateMany',
219
+ collection,
220
+ args: {
221
+ filter: JSON.parse(filterStr),
222
+ update: JSON.parse(updateStr)
223
+ }
224
+ };
225
+ }
226
+ match = input.match(/db\.([a-zA-Z0-9_]+)\.deleteMany\((\{.*\})\)/);
227
+ if (match) {
228
+ const [, collection, filterStr] = match;
229
+ return {
230
+ type: 'deleteMany',
231
+ collection,
232
+ args: JSON.parse(filterStr)
233
+ };
234
+ }
235
+ return { type: 'unknown', collection: '', args: null };
236
+ }
237
+ _detectQueryType(query) {
238
+ const { type } = this._parseInput(query);
239
+ const selectRegex = /^\s*aggregate\b/i;
240
+ const updateRegex = /^\s*updateMany\b/i;
241
+ const insertRegex = /^\s*insertMany\b/i;
242
+ const deleteRegex = /^\s*deleteMany\b/i;
243
+ if (selectRegex.test(type))
244
+ return "SELECT";
245
+ if (updateRegex.test(type))
246
+ return "UPDATE";
247
+ if (insertRegex.test(type))
248
+ return "INSERT";
249
+ if (deleteRegex.test(type))
250
+ return "DELETE";
251
+ return "UNKNOWN";
252
+ }
253
+ }
254
+ exports.MongodblDriver = MongodblDriver;
255
+ //# 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
+ protected bindJoin(values: string[]): string;
124
+ protected bindWhere(values: any[]): string;
125
+ protected bindOrderBy(values: string[]): string;
126
+ protected bindGroupBy(values: string[]): string;
127
+ protected bindSelect(values: string[], { distinct }?: {
128
+ distinct?: string;
129
+ }): 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
+ }