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
@@ -1,4 +1,4 @@
1
- declare class Tool {
1
+ declare class Package {
2
2
  static import(name: string): any;
3
3
  static get fs(): {
4
4
  existsSync: (v: string) => any;
@@ -15,6 +15,14 @@ declare class Tool {
15
15
  static get dotenv(): {
16
16
  config: (options?: Record<string, any>) => any;
17
17
  };
18
+ static get redis(): {
19
+ createClient: ({ url, socket }: {
20
+ url: string;
21
+ socket?: {
22
+ reconnectStrategy: () => boolean;
23
+ };
24
+ }) => any;
25
+ };
18
26
  }
19
- export { Tool };
20
- export default Tool;
27
+ export { Package };
28
+ export default Package;
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Tool = void 0;
4
- class Tool {
3
+ exports.Package = void 0;
4
+ class Package {
5
5
  static import(name) {
6
6
  try {
7
7
  return require(name);
8
8
  }
9
9
  catch (err) {
10
- throw new Error(`The package '${name}' does not exist. Please try installing the package using : npm install ${name} --save`);
10
+ throw new Error(`The package '${name}' caused by '${err.message}'. Please try installing the package using : npm install ${name} --save`);
11
11
  }
12
12
  }
13
13
  static get fs() {
@@ -48,10 +48,23 @@ class Tool {
48
48
  };
49
49
  }
50
50
  catch (err) {
51
- throw new Error(`The package 'dotenv' is either not supported or not found. Please ensure you are running in a Node.js environment or try installing it with : npm install dotenv --save`);
51
+ throw new Error(`The package 'dotenv' caused by '${err.message}'. Please try installing the package using : npm install dotenv --save`);
52
+ }
53
+ }
54
+ static get redis() {
55
+ try {
56
+ const redis = require('redis'); // redis@5.6.0+
57
+ return {
58
+ createClient: ({ url, socket }) => {
59
+ return redis.createClient({ url, socket });
60
+ }
61
+ };
62
+ }
63
+ catch (err) {
64
+ throw new Error(`The package 'redis' caused by '${err.message}'. Please try installing the package using : npm install redis@5.6.0 --save`);
52
65
  }
53
66
  }
54
67
  }
55
- exports.Tool = Tool;
56
- exports.default = Tool;
57
- //# sourceMappingURL=index.js.map
68
+ exports.Package = Package;
69
+ exports.default = Package;
70
+ //# sourceMappingURL=Package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Package.js","sourceRoot":"","sources":["../../../src/lib/core/Package.ts"],"names":[],"mappings":"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"}
@@ -34,10 +34,12 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.Pool = exports.loadOptionsEnv = exports.PoolConnection = void 0;
37
- const tools_1 = require("../tools");
37
+ const Package_1 = require("../core/Package");
38
38
  const MysqlDriver_1 = require("./Driver/mysql/MysqlDriver");
39
39
  const PostgresDriver_1 = require("./Driver/postgres/PostgresDriver");
40
40
  const MariadbDriver_1 = require("./Driver/mariadb/MariadbDriver");
41
+ const MongodbDriver_1 = require("./Driver/mongodb/MongodbDriver");
42
+ const SqliteDriver_1 = require("./Driver/sqlite/SqliteDriver");
41
43
  const config_1 = __importStar(require("../config"));
42
44
  Object.defineProperty(exports, "loadOptionsEnv", { enumerable: true, get: function () { return config_1.loadOptionsEnv; } });
43
45
  class PoolConnection {
@@ -75,10 +77,18 @@ class PoolConnection {
75
77
  this.POOL = new PostgresDriver_1.PostgresDriver(options).connect();
76
78
  break;
77
79
  }
78
- case 'mariadb': {
80
+ case "mariadb": {
79
81
  this.POOL = new MariadbDriver_1.MariadbDriver(options).connect();
80
82
  break;
81
83
  }
84
+ case "mongodb": {
85
+ this.POOL = new MongodbDriver_1.MongodblDriver(options).connect();
86
+ break;
87
+ }
88
+ case "sqlite": {
89
+ this.POOL = new SqliteDriver_1.SqliteDriver(options).connect();
90
+ break;
91
+ }
82
92
  default:
83
93
  throw new Error("No default driver specified");
84
94
  }
@@ -91,11 +101,11 @@ class PoolConnection {
91
101
  case "mysql2": {
92
102
  return new MysqlDriver_1.MysqlDriver(options).disconnect(this.POOL);
93
103
  }
94
- case 'pg':
95
- case 'postgres': {
104
+ case "pg":
105
+ case "postgres": {
96
106
  return new PostgresDriver_1.PostgresDriver(options).disconnect(this.POOL);
97
107
  }
98
- case 'mariadb': {
108
+ case "mariadb": {
99
109
  return new MariadbDriver_1.MariadbDriver(options).disconnect(this.POOL);
100
110
  }
101
111
  default:
@@ -107,17 +117,19 @@ class PoolConnection {
107
117
  return this.CLUSTER;
108
118
  }
109
119
  const options = Object.fromEntries(this.OPTIONS);
110
- const parseList = (value) => String(value).split(',').map(v => v.trim());
120
+ const parseList = (value) => String(value)
121
+ .split(",")
122
+ .map((v) => v.trim());
111
123
  const getValue = (arr, index) => arr[index] != null ? arr[index] : arr[arr.length - 1];
112
124
  const hostList = parseList(options.host);
113
125
  const hosts = [];
114
126
  const types = [];
115
127
  hostList.forEach((h, i) => {
116
- let type = i === 0 ? 'master' : 'slave';
128
+ let type = i === 0 ? "master" : "slave";
117
129
  let host = h;
118
- if (h.includes('@')) {
119
- const [_t, _h] = h.split('@');
120
- type = _t === 'master' ? 'master' : 'slave';
130
+ if (h.includes("@")) {
131
+ const [_t, _h] = h.split("@");
132
+ type = _t === "master" ? "master" : "slave";
121
133
  host = _h;
122
134
  }
123
135
  hosts.push(host);
@@ -125,70 +137,70 @@ class PoolConnection {
125
137
  });
126
138
  const usernames = parseList(options.user);
127
139
  const passwords = parseList(options.password);
128
- const ports = parseList(options.port).map(v => +v);
140
+ const ports = parseList(options.port).map((v) => +v);
129
141
  const writerOptions = hosts
130
142
  .map((host, i) => {
131
- if (types[i] !== 'master')
143
+ if (types[i] !== "master")
132
144
  return null;
133
145
  return {
134
146
  host,
135
147
  port: getValue(ports, i),
136
148
  username: getValue(usernames, i),
137
- password: getValue(passwords, i)
149
+ password: getValue(passwords, i),
138
150
  };
139
151
  })
140
152
  .filter(Boolean);
141
153
  const writers = writerOptions.map((opt, i) => {
142
154
  return {
143
155
  pool: {
144
- type: 'master',
156
+ type: "master",
145
157
  node: +i + 1,
146
158
  host: opt.host,
147
159
  port: opt.port,
148
- username: opt.username
160
+ username: opt.username,
149
161
  },
150
162
  ...new PoolConnection().connect({
151
163
  ...options,
152
- ...opt
153
- })
164
+ ...opt,
165
+ }),
154
166
  };
155
167
  });
156
168
  const readerOptions = hosts
157
169
  .map((host, i) => {
158
- if (types[i] !== 'slave')
170
+ if (types[i] !== "slave")
159
171
  return null;
160
172
  return {
161
173
  host,
162
174
  port: getValue(ports, i),
163
175
  username: getValue(usernames, i),
164
- password: getValue(passwords, i)
176
+ password: getValue(passwords, i),
165
177
  };
166
178
  })
167
179
  .filter(Boolean);
168
180
  const readers = readerOptions.map((opt, i) => {
169
181
  return {
170
182
  pool: {
171
- type: 'slave',
183
+ type: "slave",
172
184
  node: +i + 1,
173
185
  host: opt.host,
174
186
  port: opt.port,
175
- username: opt.username
187
+ username: opt.username,
176
188
  },
177
189
  ...new PoolConnection().connect({
178
190
  ...options,
179
- ...opt
180
- })
191
+ ...opt,
192
+ }),
181
193
  };
182
194
  });
183
195
  if (!writers.length) {
184
- throw new Error('No master nodes found. Please verify your cluster config.');
196
+ throw new Error("[DB_CLUSTER] Cluster mode requires at least one writer node. Please check your configuration.");
185
197
  }
186
198
  if (!readers.length) {
187
- throw new Error('No slave nodes found. Please verify your cluster config.');
199
+ throw new Error("[DB_CLUSTER] Cluster mode requires at least one reader node. Please check your configuration.");
188
200
  }
189
201
  this.CLUSTER = {
190
202
  masters: writers,
191
- slaves: readers
203
+ slaves: readers,
192
204
  };
193
205
  return this.CLUSTER;
194
206
  }
@@ -203,7 +215,7 @@ class PoolConnection {
203
215
  password: String(config_1.default.PASSWORD),
204
216
  // ------------------ custom ----------------------------
205
217
  driver: String(config_1.default.DRIVER ?? "mysql2"),
206
- cluster: Boolean(config_1.default.CLUSTER ?? false)
218
+ cluster: Boolean(config_1.default.CLUSTER ?? false),
207
219
  }));
208
220
  }
209
221
  _loadOptions() {
@@ -224,11 +236,11 @@ class PoolConnection {
224
236
  * charset =
225
237
  * }
226
238
  */
227
- const dbOptionsPath = tools_1.Tool.path.join(tools_1.Tool.path.resolve(), "db.tspace");
228
- const dbOptionsExists = tools_1.Tool.fs.existsSync(dbOptionsPath);
239
+ const dbOptionsPath = Package_1.Package.path.join(Package_1.Package.path.resolve(), "db.tspace");
240
+ const dbOptionsExists = Package_1.Package.fs.existsSync(dbOptionsPath);
229
241
  if (!dbOptionsExists)
230
242
  return this._defaultOptions();
231
- const dbOptions = tools_1.Tool.fs.readFileSync(dbOptionsPath, "utf8");
243
+ const dbOptions = Package_1.Package.fs.readFileSync(dbOptionsPath, "utf8");
232
244
  const options = this._convertStringToObject(dbOptions);
233
245
  if (options == null)
234
246
  return this._defaultOptions();
@@ -1 +1 @@
1
- {"version":3,"file":"Pool.js","sourceRoot":"","sources":["../../../src/lib/core/Pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Pool.js","sourceRoot":"","sources":["../../../src/lib/core/Pool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAiD;AACjD,4DAA4D;AAC5D,qEAAkE;AAClE,kEAAgE;AAChE,kEAAgE;AAChE,+DAA8D;AAE9D,oDAEmB;AAwVV,+FAzVP,uBAAc,OAyVO;AAhVvB,MAAa,cAAc;IACjB,OAAO,GAAqB,IAAI,CAAC,YAAY,EAAE,CAAC;IAChD,IAAI,GAA0B,IAAI,CAAC;IACnC,OAAO,GAAgC,IAAI,CAAC;IAEpD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,YAAY,OAAkB;QAC5B,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CACpB,MAAM,CAAC,OAAO,CAAC;gBACb,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;gBACnC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;aACvC,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAEM,OAAO,CAAC,OAA6B;QAC1C,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5D,QAAQ,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACvB,KAAK,OAAO,CAAC;YACb,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,IAAI,GAAG,IAAI,yBAAW,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC/C,MAAM;YACR,CAAC;YAED,KAAK,IAAI,CAAC;YACV,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,IAAI,GAAG,IAAI,+BAAc,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;gBAClD,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,GAAG,IAAI,6BAAa,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;gBACjD,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,GAAG,IAAI,8BAAc,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;gBAClD,MAAM;YACR,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,IAAI,GAAG,IAAI,2BAAY,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;gBAChD,MAAM;YACR,CAAC;YAED;gBACE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAEM,UAAU;QACf,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,QAAQ,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACvB,KAAK,OAAO,CAAC;YACb,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,OAAO,IAAI,yBAAW,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxD,CAAC;YAED,KAAK,IAAI,CAAC;YACV,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,OAAO,IAAI,+BAAc,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3D,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,OAAO,IAAI,6BAAa,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,CAAC;YAED;gBACE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAEM,cAAc;QACnB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CAClC,MAAM,CAAC,KAAK,CAAC;aACV,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1B,MAAM,QAAQ,GAAG,CAAC,GAAU,EAAE,KAAa,EAAE,EAAE,CAC7C,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAExD,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,KAAK,GAA2B,EAAE,CAAC;QAEzC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACxB,IAAI,IAAI,GAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5D,IAAI,IAAI,GAAG,CAAC,CAAC;YAEb,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC9B,IAAI,GAAG,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC5C,IAAI,GAAG,EAAE,CAAC;YACZ,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAa,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAS/D,MAAM,aAAa,GAKb,KAAK;aACR,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACf,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YACvC,OAAO;gBACL,IAAI;gBACJ,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;gBACxB,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;gBAChC,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;aACjC,CAAC;QACJ,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAe,CAAC;QAEjC,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YAC3C,OAAO;gBACL,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;oBACZ,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;iBACvB;gBACD,GAAG,IAAI,cAAc,EAAE,CAAC,OAAO,CAAC;oBAC9B,GAAG,OAAO;oBACV,GAAG,GAAG;iBACP,CAAC;aACH,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,KAAK;aACxB,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACf,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO;gBAAE,OAAO,IAAI,CAAC;YACtC,OAAO;gBACL,IAAI;gBACJ,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;gBACxB,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;gBAChC,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;aACjC,CAAC;QACJ,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAe,CAAC;QAEjC,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YAC3C,OAAO;gBACL,IAAI,EAAE;oBACJ,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;oBACZ,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;iBACvB;gBACD,GAAG,IAAI,cAAc,EAAE,CAAC,OAAO,CAAC;oBAC9B,GAAG,OAAO;oBACV,GAAG,GAAG;iBACP,CAAC;aACH,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAAO,GAAG;YACb,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,OAAO;SAChB,CAAC;QAEF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEO,eAAe;QACrB,OAAO,IAAI,GAAG,CACZ,MAAM,CAAC,OAAO,CAAC;YACb,eAAe,EAAE,MAAM,CAAC,gBAAM,CAAC,gBAAgB,CAAC;YAChD,WAAW,EAAE,OAAO,CAAC,gBAAM,CAAC,YAAY,CAAC;YACzC,IAAI,EAAE,MAAM,CAAC,gBAAM,CAAC,IAAI,CAAC;YACzB,IAAI,EAAE,MAAM,CAAC,gBAAM,CAAC,IAAI,CAAC;YACzB,QAAQ,EAAE,MAAM,CAAC,gBAAM,CAAC,QAAQ,CAAC;YACjC,IAAI,EAAE,MAAM,CAAC,gBAAM,CAAC,QAAQ,CAAC;YAC7B,QAAQ,EAAE,MAAM,CAAC,gBAAM,CAAC,QAAQ,CAAC;YACjC,yDAAyD;YACzD,MAAM,EAAE,MAAM,CAAC,gBAAM,CAAC,MAAM,IAAI,QAAQ,CAAC;YACzC,OAAO,EAAE,OAAO,CAAC,gBAAM,CAAC,OAAO,IAAI,KAAK,CAAC;SAC1C,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC;YACH;;;;;;;;;;;;;;;eAeG;YACH,MAAM,aAAa,GAAG,iBAAO,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;YAC7E,MAAM,eAAe,GAAG,iBAAO,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAE7D,IAAI,CAAC,eAAe;gBAAE,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;YAEpD,MAAM,SAAS,GAAW,iBAAO,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAEzE,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAEvD,IAAI,OAAO,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;YAEnD,OAAO,IAAI,GAAG,CACZ,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CACxB,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAEO,sBAAsB,CAC5B,GAAW,EACX,MAAM,GAAG,IAAI;QAEb,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7D,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,OAAO,GAAa,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACjC,MAAM,KAAK,GAAa,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAC/B,MAAM,SAAS,GAAwB,EAAE,CAAC;QAC1C,IAAI,SAAS,GAAW,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,SAAS,GAAQ,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACnD,MAAM,cAAc,GAAQ,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAE5C,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;gBACtB,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACzB,SAAS;YACX,CAAC;YAED,IAAI,cAAc,IAAI,IAAI,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;gBACpD,SAAS,GAAG,EAAE,CAAC;gBACf,SAAS;YACX,CAAC;YAED,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI;gBAAE,SAAS;YAE3C,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC;gBAAE,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;YACpE,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpC,CAAC;QAED,OAAO,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC;IACrE,CAAC;IAEO,2BAA2B,CACjC,IAAyB;QAEzB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,IAAI,KAAK,IAAI,IAAI;gBAAE,SAAS;YAC5B,IACE,OAAO,KAAK,KAAK,QAAQ;gBACzB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EACxD,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC5C,SAAS;YACX,CAAC;YACD,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACO,OAAO;QACb,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAY,CAAC;IACnE,CAAC;CACF;AApUD,wCAoUC;AAED;;;;;;;GAOG;AACH,MAAM,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;AAGjB,oBAAI;AAErB,kBAAe,IAAI,CAAC"}
@@ -0,0 +1,240 @@
1
+ import type { T } from "./UtilityTypes";
2
+ import { Blueprint } from "./Blueprint";
3
+ import { Model } from "./Model";
4
+ export type Job<T = any> = {
5
+ id: number;
6
+ name: string;
7
+ status: 'pending' | 'active' | 'completed' | 'failed';
8
+ payload: T;
9
+ };
10
+ type Handler = (job: Job) => any | Promise<any>;
11
+ type QueueAddOptions = {
12
+ delayMs?: number;
13
+ priority?: number;
14
+ metadata?: Record<string, any>;
15
+ maxAttempts?: number;
16
+ };
17
+ type QueueProcessOptions = {
18
+ interval?: number;
19
+ concurrency?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 15 | 20 | 25 | 30;
20
+ };
21
+ declare const schema: {
22
+ id: Blueprint<number>;
23
+ uuid: Blueprint<string | null>;
24
+ name: Blueprint<string>;
25
+ status: Blueprint<"pending" | "active" | "completed" | "failed">;
26
+ priority: Blueprint<number>;
27
+ payload: Blueprint<string | null>;
28
+ result: Blueprint<string | null>;
29
+ error: Blueprint<string | null>;
30
+ metadata: Blueprint<string | null>;
31
+ attempts: Blueprint<number>;
32
+ max_attempts: Blueprint<number>;
33
+ locked_by: Blueprint<string | null>;
34
+ locked_at: Blueprint<string | Date | null>;
35
+ available_at: Blueprint<string | Date>;
36
+ completed_at: Blueprint<string | Date | null>;
37
+ created_at: Blueprint<string | Date | null>;
38
+ updated_at: Blueprint<string | Date | null>;
39
+ };
40
+ type TS = T.Schema<typeof schema>;
41
+ declare class Worker extends Model<TS> {
42
+ private HOSTNAME;
43
+ private INSPECT_EXEC;
44
+ private STOPPING;
45
+ private IS_FLUSHING;
46
+ private LIMIT_CONNECTIONS;
47
+ private MAX_IDLE_RETRIES;
48
+ private ACTIVE_JOBS;
49
+ private BATCH_SIZE;
50
+ private MAX_WAIT_MS;
51
+ private BUFFER;
52
+ private WORKER_STATE;
53
+ protected boot(): void;
54
+ initialize(opts?: {
55
+ inspect?: boolean;
56
+ flush?: boolean;
57
+ hostname?: string;
58
+ maxIdleRetries?: number;
59
+ limitConnections?: number;
60
+ }): Promise<this>;
61
+ shutdown(): Promise<void>;
62
+ flush(): Promise<void>;
63
+ getJobOverallStats(name?: string): Promise<{
64
+ total: number;
65
+ completed: number;
66
+ active: number;
67
+ pending: number;
68
+ failed: number;
69
+ }>;
70
+ getJobStats(name?: string): Promise<{
71
+ name: string;
72
+ completed: number;
73
+ active: number;
74
+ pending: number;
75
+ failed: number;
76
+ }[]>;
77
+ getNames(): Promise<any[]>;
78
+ add(name: string, payload: any, opts?: QueueAddOptions): Promise<void>;
79
+ process(name: string, handler: Handler, opts?: QueueProcessOptions): Promise<void>;
80
+ private _runJob;
81
+ private _waitForSafeConnections;
82
+ private _dequeueMany;
83
+ private _flushBuffer;
84
+ private _wakeWorker;
85
+ private safeJsonParse;
86
+ private safeJsonStringify;
87
+ }
88
+ /**
89
+ * Queue facade class (static API wrapper)
90
+ *
91
+ * This class provides a singleton-style interface over the underlying Worker instance.
92
+ * It must be initialized before use via `Queue.start()`.
93
+ *
94
+ * @example
95
+ * ```ts
96
+ * const sendEmail = (job) => console.log('send mail :' + job.payload.email)
97
+ *
98
+ * await Queue.start({ inspect : true, flush : true // **remove all jobs });
99
+ *
100
+ * // register
101
+ * Queue.progress("send-email", async (job) => {
102
+ * return await sendEmail(job);
103
+ * }, { concurrency : 3 });
104
+ *
105
+ * // add
106
+ * Queue.add("send-email", { email: "test@gmail.com" });
107
+ *
108
+ * ```
109
+ */
110
+ declare class Queue {
111
+ /**
112
+ * Internal Worker instance used for all queue operations.
113
+ * @type {Worker | null}
114
+ */
115
+ private static WORKER;
116
+ private static MESSAGE;
117
+ /**
118
+ * The 'start' method is used to initialize the Queue system.
119
+ * Creates and prepares the underlying Worker instance.
120
+ * @param {Object} [opts] - options (inspect, flush)
121
+ * @property {boolean} opts.inspect queue work flow
122
+ * @property {boolean} opts.flush remove all queue
123
+ * @property {number} opts.maxIdleRetries - Maximum idle time () when no jobs are available
124
+ * @property {number} opts.limitConnections - Allowed DB connections limit before pausing
125
+ * @returns {Promise<void>}
126
+ */
127
+ static start(opts?: {
128
+ inspect?: boolean;
129
+ flush?: boolean;
130
+ hostname?: string;
131
+ maxIdleRetries?: number;
132
+ limitConnections?: 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 150 | 200;
133
+ }): Promise<void>;
134
+ /**
135
+ * The 'end' method is used to shutdown the Queue system.
136
+ *
137
+ * @returns {Promise<void>}
138
+ */
139
+ static end(): Promise<void>;
140
+ /**
141
+ * The 'flush' method is used to flush all jobs in the queue (dangerous operation).
142
+ *
143
+ * @throws {Error} If Queue is not initialized.
144
+ * @returns {Promise<void>}
145
+ */
146
+ static flush(): Promise<void>;
147
+ /**
148
+ * The 'getJobOverallStats' method is used to get aggregated queue statistics.
149
+ *
150
+ * @param {string} [name] - Optional queue name filter.
151
+ * @throws {Error} If Queue is not initialized.
152
+ * @returns {Promise<any>}
153
+ */
154
+ static getJobOverallStats(name?: string): Promise<{
155
+ total: number;
156
+ completed: number;
157
+ active: number;
158
+ pending: number;
159
+ failed: number;
160
+ }>;
161
+ /**
162
+ * The 'getJobStats' method is used to Get jobs statistics grouped by name.
163
+ *
164
+ * @param {string} [name] - Optional queue name filter.
165
+ * @throws {Error} If Queue is not initialized.
166
+ * @returns {Promise<Record<string,any>>}
167
+ */
168
+ static getJobStats(name?: string): Promise<{
169
+ completed: number;
170
+ active: number;
171
+ pending: number;
172
+ failed: number;
173
+ }[]>;
174
+ /**
175
+ * Get all unique queue names.
176
+ *
177
+ * @throws {Error} If Queue is not initialized.
178
+ * @returns {Promise<string[]>}
179
+ */
180
+ static getNames(): Promise<string[]>;
181
+ /**
182
+ * Access raw Worker instance safely.
183
+ *
184
+ * @param {(worker: Worker) => any} cb - Callback with Worker instance.
185
+ * @throws {Error} If Queue is not initialized.
186
+ * @returns {Promise<Work>}
187
+ */
188
+ static worker(cb: (worker: Worker) => any): Promise<Worker>;
189
+ /**
190
+ * Start a worker for processing jobs of a specific name.
191
+ *
192
+ * @param {string} name - Queue name to process.
193
+ * @param {Handler} handler - Job handler function.
194
+ * @param {QueueProcessOptions} [opts] - Job options (interval, concurrency)
195
+ * @throws {Error} If Queue is not initialized.
196
+ * @returns {Promise<void>}
197
+ *
198
+ * @example
199
+ * const helloWorld = (job) => console.log('hello world :' + job.id);
200
+ *
201
+ * Queue.progress("hello", async (job) => {
202
+ * return await helloWorld(job)
203
+ * }, { concurrency : 3 });
204
+ */
205
+ static process(name: string, handler: Handler, opts?: QueueProcessOptions): Promise<void>;
206
+ /**
207
+ * Start a worker for processing jobs of a specific name.
208
+ *
209
+ * @param {string} name - Queue name to process.
210
+ * @param {Handler} handler - Job handler function.
211
+ * @param {QueueProcessOptions} [opts] - Job options (interval, concurrency)
212
+ * @throws {Error} If Queue is not initialized.
213
+ * @returns {Promise<void>}
214
+ *
215
+ * @example
216
+ * const helloWorld = (job) => console.log('hello world :' + job.id);
217
+ *
218
+ * Queue.on("hello", async (job) => {
219
+ * return await helloWorld(job)
220
+ * }, { concurrency : 3 });
221
+ */
222
+ static on(name: string, handler: Handler, opts?: QueueProcessOptions): Promise<void>;
223
+ /**
224
+ * Add a new job into the queue.
225
+ *
226
+ * @param {string} name - Queue name / job type.
227
+ * @param {any} payload - Job payload data.
228
+ * @param {QueueAddOptions} [opts] - Job options (delay, priority, retry, etc.)
229
+ * @throws {Error} If Queue is not initialized.
230
+ * @returns {Promise<T.Result<Worker>>}
231
+ *
232
+ * @example
233
+ * ```ts
234
+ * Queue.add("send-email", { email: "test@gmail.com" });
235
+ * ```
236
+ */
237
+ static add(name: string, payload: any, opts?: QueueAddOptions): Promise<void>;
238
+ }
239
+ export { Queue };
240
+ export default Queue;