@ereactthohir/core 1.1.0

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 (247) hide show
  1. package/README.md +39 -0
  2. package/dist/database/MigrationRunner.d.ts +21 -0
  3. package/dist/database/MigrationRunner.d.ts.map +1 -0
  4. package/dist/database/MigrationRunner.js +60 -0
  5. package/dist/database/MigrationRunner.js.map +1 -0
  6. package/dist/database/Model.d.ts +81 -0
  7. package/dist/database/Model.d.ts.map +1 -0
  8. package/dist/database/Model.js +186 -0
  9. package/dist/database/Model.js.map +1 -0
  10. package/dist/database/QueryBuilder.d.ts +132 -0
  11. package/dist/database/QueryBuilder.d.ts.map +1 -0
  12. package/dist/database/QueryBuilder.js +267 -0
  13. package/dist/database/QueryBuilder.js.map +1 -0
  14. package/dist/database/drivers/SawitDriver.d.ts +7 -0
  15. package/dist/database/drivers/SawitDriver.d.ts.map +1 -0
  16. package/dist/database/drivers/SawitDriver.js +28 -0
  17. package/dist/database/drivers/SawitDriver.js.map +1 -0
  18. package/dist/foundation/Application.d.ts +23 -0
  19. package/dist/foundation/Application.d.ts.map +1 -0
  20. package/dist/foundation/Application.js +71 -0
  21. package/dist/foundation/Application.js.map +1 -0
  22. package/dist/foundation/Cache.d.ts +35 -0
  23. package/dist/foundation/Cache.d.ts.map +1 -0
  24. package/dist/foundation/Cache.js +92 -0
  25. package/dist/foundation/Cache.js.map +1 -0
  26. package/dist/foundation/Config.d.ts +9 -0
  27. package/dist/foundation/Config.d.ts.map +1 -0
  28. package/dist/foundation/Config.js +31 -0
  29. package/dist/foundation/Config.js.map +1 -0
  30. package/dist/foundation/Container.d.ts +24 -0
  31. package/dist/foundation/Container.d.ts.map +1 -0
  32. package/dist/foundation/Container.js +94 -0
  33. package/dist/foundation/Container.js.map +1 -0
  34. package/dist/foundation/Env.d.ts +17 -0
  35. package/dist/foundation/Env.d.ts.map +1 -0
  36. package/dist/foundation/Env.js +57 -0
  37. package/dist/foundation/Env.js.map +1 -0
  38. package/dist/foundation/Events.d.ts +9 -0
  39. package/dist/foundation/Events.d.ts.map +1 -0
  40. package/dist/foundation/Events.js +23 -0
  41. package/dist/foundation/Events.js.map +1 -0
  42. package/dist/foundation/Hooks.d.ts +9 -0
  43. package/dist/foundation/Hooks.d.ts.map +1 -0
  44. package/dist/foundation/Hooks.js +28 -0
  45. package/dist/foundation/Hooks.js.map +1 -0
  46. package/dist/foundation/Logger.d.ts +6 -0
  47. package/dist/foundation/Logger.d.ts.map +1 -0
  48. package/dist/foundation/Logger.js +16 -0
  49. package/dist/foundation/Logger.js.map +1 -0
  50. package/dist/foundation/Middleware.d.ts +7 -0
  51. package/dist/foundation/Middleware.d.ts.map +1 -0
  52. package/dist/foundation/Middleware.js +7 -0
  53. package/dist/foundation/Middleware.js.map +1 -0
  54. package/dist/foundation/Pipeline.d.ts +14 -0
  55. package/dist/foundation/Pipeline.d.ts.map +1 -0
  56. package/dist/foundation/Pipeline.js +63 -0
  57. package/dist/foundation/Pipeline.js.map +1 -0
  58. package/dist/foundation/Queue.d.ts +11 -0
  59. package/dist/foundation/Queue.d.ts.map +1 -0
  60. package/dist/foundation/Queue.js +38 -0
  61. package/dist/foundation/Queue.js.map +1 -0
  62. package/dist/foundation/RateLimiter.d.ts +16 -0
  63. package/dist/foundation/RateLimiter.d.ts.map +1 -0
  64. package/dist/foundation/RateLimiter.js +51 -0
  65. package/dist/foundation/RateLimiter.js.map +1 -0
  66. package/dist/foundation/Scheduler.d.ts +10 -0
  67. package/dist/foundation/Scheduler.d.ts.map +1 -0
  68. package/dist/foundation/Scheduler.js +48 -0
  69. package/dist/foundation/Scheduler.js.map +1 -0
  70. package/dist/foundation/ServiceProvider.d.ts +23 -0
  71. package/dist/foundation/ServiceProvider.d.ts.map +1 -0
  72. package/dist/foundation/ServiceProvider.js +28 -0
  73. package/dist/foundation/ServiceProvider.js.map +1 -0
  74. package/dist/foundation/Session.d.ts +26 -0
  75. package/dist/foundation/Session.d.ts.map +1 -0
  76. package/dist/foundation/Session.js +59 -0
  77. package/dist/foundation/Session.js.map +1 -0
  78. package/dist/foundation/View.d.ts +6 -0
  79. package/dist/foundation/View.d.ts.map +1 -0
  80. package/dist/foundation/View.js +207 -0
  81. package/dist/foundation/View.js.map +1 -0
  82. package/dist/http/ApiResponse.d.ts +38 -0
  83. package/dist/http/ApiResponse.d.ts.map +1 -0
  84. package/dist/http/ApiResponse.js +152 -0
  85. package/dist/http/ApiResponse.js.map +1 -0
  86. package/dist/http/Controller.d.ts +3 -0
  87. package/dist/http/Controller.d.ts.map +1 -0
  88. package/dist/http/Controller.js +7 -0
  89. package/dist/http/Controller.js.map +1 -0
  90. package/dist/http/ExceptionHandler.d.ts +6 -0
  91. package/dist/http/ExceptionHandler.d.ts.map +1 -0
  92. package/dist/http/ExceptionHandler.js +32 -0
  93. package/dist/http/ExceptionHandler.js.map +1 -0
  94. package/dist/http/Kernel.d.ts +8 -0
  95. package/dist/http/Kernel.d.ts.map +1 -0
  96. package/dist/http/Kernel.js +59 -0
  97. package/dist/http/Kernel.js.map +1 -0
  98. package/dist/http/Middleware/AuthMiddleware.d.ts +8 -0
  99. package/dist/http/Middleware/AuthMiddleware.d.ts.map +1 -0
  100. package/dist/http/Middleware/AuthMiddleware.js +17 -0
  101. package/dist/http/Middleware/AuthMiddleware.js.map +1 -0
  102. package/dist/http/Request.d.ts +35 -0
  103. package/dist/http/Request.d.ts.map +1 -0
  104. package/dist/http/Request.js +106 -0
  105. package/dist/http/Request.js.map +1 -0
  106. package/dist/http/Response.d.ts +26 -0
  107. package/dist/http/Response.d.ts.map +1 -0
  108. package/dist/http/Response.js +90 -0
  109. package/dist/http/Response.js.map +1 -0
  110. package/dist/http/Router.d.ts +46 -0
  111. package/dist/http/Router.d.ts.map +1 -0
  112. package/dist/http/Router.js +150 -0
  113. package/dist/http/Router.js.map +1 -0
  114. package/dist/index.d.ts +38 -0
  115. package/dist/index.d.ts.map +1 -0
  116. package/dist/index.js +55 -0
  117. package/dist/index.js.map +1 -0
  118. package/dist/security/CSRF.d.ts +18 -0
  119. package/dist/security/CSRF.d.ts.map +1 -0
  120. package/dist/security/CSRF.js +79 -0
  121. package/dist/security/CSRF.js.map +1 -0
  122. package/dist/security/Encrypter.d.ts +18 -0
  123. package/dist/security/Encrypter.d.ts.map +1 -0
  124. package/dist/security/Encrypter.js +75 -0
  125. package/dist/security/Encrypter.js.map +1 -0
  126. package/dist/security/InputSanitizer.d.ts +23 -0
  127. package/dist/security/InputSanitizer.d.ts.map +1 -0
  128. package/dist/security/InputSanitizer.js +65 -0
  129. package/dist/security/InputSanitizer.js.map +1 -0
  130. package/dist/security/PasswordHasher.d.ts +22 -0
  131. package/dist/security/PasswordHasher.d.ts.map +1 -0
  132. package/dist/security/PasswordHasher.js +68 -0
  133. package/dist/security/PasswordHasher.js.map +1 -0
  134. package/dist/services/Auth.d.ts +20 -0
  135. package/dist/services/Auth.d.ts.map +1 -0
  136. package/dist/services/Auth.js +28 -0
  137. package/dist/services/Auth.js.map +1 -0
  138. package/dist/services/Gate.d.ts +10 -0
  139. package/dist/services/Gate.d.ts.map +1 -0
  140. package/dist/services/Gate.js +36 -0
  141. package/dist/services/Gate.js.map +1 -0
  142. package/dist/services/Service.d.ts +4 -0
  143. package/dist/services/Service.d.ts.map +1 -0
  144. package/dist/services/Service.js +7 -0
  145. package/dist/services/Service.js.map +1 -0
  146. package/dist/services/Validator.d.ts +8 -0
  147. package/dist/services/Validator.d.ts.map +1 -0
  148. package/dist/services/Validator.js +39 -0
  149. package/dist/services/Validator.js.map +1 -0
  150. package/dist/src/database/Model.d.ts +13 -0
  151. package/dist/src/database/Model.d.ts.map +1 -0
  152. package/dist/src/database/Model.js +37 -0
  153. package/dist/src/database/Model.js.map +1 -0
  154. package/dist/src/database/QueryBuilder.d.ts +15 -0
  155. package/dist/src/database/QueryBuilder.d.ts.map +1 -0
  156. package/dist/src/database/QueryBuilder.js +43 -0
  157. package/dist/src/database/QueryBuilder.js.map +1 -0
  158. package/dist/src/database/drivers/SawitDriver.d.ts +7 -0
  159. package/dist/src/database/drivers/SawitDriver.d.ts.map +1 -0
  160. package/dist/src/database/drivers/SawitDriver.js +28 -0
  161. package/dist/src/database/drivers/SawitDriver.js.map +1 -0
  162. package/dist/src/foundation/Application.d.ts +13 -0
  163. package/dist/src/foundation/Application.d.ts.map +1 -0
  164. package/dist/src/foundation/Application.js +41 -0
  165. package/dist/src/foundation/Application.js.map +1 -0
  166. package/dist/src/foundation/Container.d.ts +11 -0
  167. package/dist/src/foundation/Container.d.ts.map +1 -0
  168. package/dist/src/foundation/Container.js +43 -0
  169. package/dist/src/foundation/Container.js.map +1 -0
  170. package/dist/src/foundation/Events.d.ts +9 -0
  171. package/dist/src/foundation/Events.d.ts.map +1 -0
  172. package/dist/src/foundation/Events.js +23 -0
  173. package/dist/src/foundation/Events.js.map +1 -0
  174. package/dist/src/foundation/Logger.d.ts +6 -0
  175. package/dist/src/foundation/Logger.d.ts.map +1 -0
  176. package/dist/src/foundation/Logger.js +16 -0
  177. package/dist/src/foundation/Logger.js.map +1 -0
  178. package/dist/src/foundation/Queue.d.ts +11 -0
  179. package/dist/src/foundation/Queue.d.ts.map +1 -0
  180. package/dist/src/foundation/Queue.js +38 -0
  181. package/dist/src/foundation/Queue.js.map +1 -0
  182. package/dist/src/foundation/Scheduler.d.ts +10 -0
  183. package/dist/src/foundation/Scheduler.d.ts.map +1 -0
  184. package/dist/src/foundation/Scheduler.js +48 -0
  185. package/dist/src/foundation/Scheduler.js.map +1 -0
  186. package/dist/src/foundation/ServiceProvider.d.ts +13 -0
  187. package/dist/src/foundation/ServiceProvider.d.ts.map +1 -0
  188. package/dist/src/foundation/ServiceProvider.js +14 -0
  189. package/dist/src/foundation/ServiceProvider.js.map +1 -0
  190. package/dist/src/foundation/View.d.ts +6 -0
  191. package/dist/src/foundation/View.d.ts.map +1 -0
  192. package/dist/src/foundation/View.js +37 -0
  193. package/dist/src/foundation/View.js.map +1 -0
  194. package/dist/src/http/Controller.d.ts +3 -0
  195. package/dist/src/http/Controller.d.ts.map +1 -0
  196. package/dist/src/http/Controller.js +7 -0
  197. package/dist/src/http/Controller.js.map +1 -0
  198. package/dist/src/http/ExceptionHandler.d.ts +6 -0
  199. package/dist/src/http/ExceptionHandler.d.ts.map +1 -0
  200. package/dist/src/http/ExceptionHandler.js +32 -0
  201. package/dist/src/http/ExceptionHandler.js.map +1 -0
  202. package/dist/src/http/Kernel.d.ts +8 -0
  203. package/dist/src/http/Kernel.d.ts.map +1 -0
  204. package/dist/src/http/Kernel.js +58 -0
  205. package/dist/src/http/Kernel.js.map +1 -0
  206. package/dist/src/http/Middleware/AuthMiddleware.d.ts +8 -0
  207. package/dist/src/http/Middleware/AuthMiddleware.d.ts.map +1 -0
  208. package/dist/src/http/Middleware/AuthMiddleware.js +17 -0
  209. package/dist/src/http/Middleware/AuthMiddleware.js.map +1 -0
  210. package/dist/src/http/Router.d.ts +27 -0
  211. package/dist/src/http/Router.d.ts.map +1 -0
  212. package/dist/src/http/Router.js +74 -0
  213. package/dist/src/http/Router.js.map +1 -0
  214. package/dist/src/index.d.ts +20 -0
  215. package/dist/src/index.d.ts.map +1 -0
  216. package/dist/src/index.js +37 -0
  217. package/dist/src/index.js.map +1 -0
  218. package/dist/src/services/Auth.d.ts +20 -0
  219. package/dist/src/services/Auth.d.ts.map +1 -0
  220. package/dist/src/services/Auth.js +28 -0
  221. package/dist/src/services/Auth.js.map +1 -0
  222. package/dist/src/services/Gate.d.ts +10 -0
  223. package/dist/src/services/Gate.d.ts.map +1 -0
  224. package/dist/src/services/Gate.js +36 -0
  225. package/dist/src/services/Gate.js.map +1 -0
  226. package/dist/src/services/Service.d.ts +4 -0
  227. package/dist/src/services/Service.d.ts.map +1 -0
  228. package/dist/src/services/Service.js +7 -0
  229. package/dist/src/services/Service.js.map +1 -0
  230. package/dist/src/services/Validator.d.ts +8 -0
  231. package/dist/src/services/Validator.d.ts.map +1 -0
  232. package/dist/src/services/Validator.js +39 -0
  233. package/dist/src/services/Validator.js.map +1 -0
  234. package/dist/testing/Factory.d.ts +31 -0
  235. package/dist/testing/Factory.d.ts.map +1 -0
  236. package/dist/testing/Factory.js +68 -0
  237. package/dist/testing/Factory.js.map +1 -0
  238. package/dist/testing/TestHelpers.d.ts +65 -0
  239. package/dist/testing/TestHelpers.d.ts.map +1 -0
  240. package/dist/testing/TestHelpers.js +141 -0
  241. package/dist/testing/TestHelpers.js.map +1 -0
  242. package/dist/tests/Application.test.d.ts +2 -0
  243. package/dist/tests/Application.test.d.ts.map +1 -0
  244. package/dist/tests/Application.test.js +22 -0
  245. package/dist/tests/Application.test.js.map +1 -0
  246. package/dist/tsconfig.tsbuildinfo +1 -0
  247. package/package.json +39 -0
package/README.md ADDED
@@ -0,0 +1,39 @@
1
+ # @ereactthohir/core
2
+
3
+ The core framework for **EreactThohir**, providing the foundation for enterprise-grade fullstack development.
4
+
5
+ ## 🚀 Overview
6
+
7
+ `@ereactthohir/core` includes the base classes and services for:
8
+ - MVC Architecture
9
+ - Service Container & Injection
10
+ - Eloquent-like ORM (using Sawit DB)
11
+ - Route Handlers
12
+ - Validation & Security
13
+
14
+ ## 📦 Installation
15
+
16
+ ```bash
17
+ npm install @ereactthohir/core
18
+ ```
19
+
20
+ ## 🛠 Basic Usage
21
+
22
+ ```typescript
23
+ import { Model } from '@ereactthohir/core';
24
+
25
+ export default class User extends Model {
26
+ static table = 'users';
27
+ }
28
+
29
+ // Fetch all users
30
+ const users = await User.all();
31
+ ```
32
+
33
+ ## 👤 Author
34
+
35
+ **KangPCode (Dhafa Nazula Permadi)**
36
+
37
+ ## 📄 License
38
+
39
+ MIT
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Advanced Database Migrations System
3
+ */
4
+ export interface Migration {
5
+ up(): Promise<void>;
6
+ down(): Promise<void>;
7
+ }
8
+ export declare class MigrationRunner {
9
+ private migrations;
10
+ private executed;
11
+ register(name: string, migration: Migration): this;
12
+ run(name: string): Promise<void>;
13
+ runAll(): Promise<void>;
14
+ rollback(name: string): Promise<void>;
15
+ rollbackAll(): Promise<void>;
16
+ status(): {
17
+ executed: string[];
18
+ pending: string[];
19
+ };
20
+ }
21
+ //# sourceMappingURL=MigrationRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrationRunner.d.ts","sourceRoot":"","sources":["../../src/database/MigrationRunner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,SAAS;IACxB,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,QAAQ,CAA0B;IAE1C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAK5C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBhC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAQvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAOlC,MAAM,IAAI;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE;CAKpD"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ /**
3
+ * Advanced Database Migrations System
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MigrationRunner = void 0;
7
+ class MigrationRunner {
8
+ constructor() {
9
+ this.migrations = new Map();
10
+ this.executed = new Set();
11
+ }
12
+ register(name, migration) {
13
+ this.migrations.set(name, migration);
14
+ return this;
15
+ }
16
+ async run(name) {
17
+ if (this.executed.has(name)) {
18
+ console.log(`Migration "${name}" already executed`);
19
+ return;
20
+ }
21
+ const migration = this.migrations.get(name);
22
+ if (!migration) {
23
+ throw new Error(`Migration "${name}" not found`);
24
+ }
25
+ console.log(`Running migration: ${name}`);
26
+ await migration.up();
27
+ this.executed.add(name);
28
+ console.log(`Migration "${name}" completed`);
29
+ }
30
+ async runAll() {
31
+ for (const [name] of this.migrations) {
32
+ if (!this.executed.has(name)) {
33
+ await this.run(name);
34
+ }
35
+ }
36
+ }
37
+ async rollback(name) {
38
+ const migration = this.migrations.get(name);
39
+ if (!migration) {
40
+ throw new Error(`Migration "${name}" not found`);
41
+ }
42
+ console.log(`Rolling back migration: ${name}`);
43
+ await migration.down();
44
+ this.executed.delete(name);
45
+ console.log(`Rollback of "${name}" completed`);
46
+ }
47
+ async rollbackAll() {
48
+ const executedArray = Array.from(this.executed).reverse();
49
+ for (const name of executedArray) {
50
+ await this.rollback(name);
51
+ }
52
+ }
53
+ status() {
54
+ const executed = Array.from(this.executed);
55
+ const pending = Array.from(this.migrations.keys()).filter(name => !this.executed.has(name));
56
+ return { executed, pending };
57
+ }
58
+ }
59
+ exports.MigrationRunner = MigrationRunner;
60
+ //# sourceMappingURL=MigrationRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrationRunner.js","sourceRoot":"","sources":["../../src/database/MigrationRunner.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAOH,MAAa,eAAe;IAA5B;QACU,eAAU,GAA2B,IAAI,GAAG,EAAE,CAAC;QAC/C,aAAQ,GAAgB,IAAI,GAAG,EAAE,CAAC;IAwD5C,CAAC;IAtDC,QAAQ,CAAC,IAAY,EAAE,SAAoB;QACzC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY;QACpB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,oBAAoB,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,aAAa,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;QAC1C,MAAM,SAAS,CAAC,EAAE,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,aAAa,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,MAAM;QACV,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,aAAa,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,aAAa,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1D,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,MAAM;QACJ,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5F,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;CACF;AA1DD,0CA0DC"}
@@ -0,0 +1,81 @@
1
+ import { QueryBuilder } from './QueryBuilder';
2
+ export declare abstract class Model {
3
+ static table: string;
4
+ protected attributes: Record<string, any>;
5
+ protected relations: Record<string, any>;
6
+ protected hidden: string[];
7
+ protected visible: string[];
8
+ protected fillable: string[];
9
+ protected guarded: string[];
10
+ constructor(attributes?: any);
11
+ /**
12
+ * Fill the model with attributes
13
+ */
14
+ fill(attributes: Record<string, any>): this;
15
+ /**
16
+ * Check if attribute is fillable
17
+ */
18
+ protected isFillable(key: string): boolean;
19
+ /**
20
+ * Get attribute value
21
+ */
22
+ getAttribute(key: string): any;
23
+ /**
24
+ * Set attribute value
25
+ */
26
+ setAttribute(key: string, value: any): this;
27
+ /**
28
+ * Get all attributes
29
+ */
30
+ getAttributes(): Record<string, any>;
31
+ static query(): QueryBuilder;
32
+ static find(id: any): Promise<any>;
33
+ static findOrFail(id: any): Promise<any>;
34
+ static all(): Promise<any[]>;
35
+ static count(): Promise<number>;
36
+ /**
37
+ * Save the model
38
+ */
39
+ save(): Promise<this>;
40
+ /**
41
+ * Delete the model
42
+ */
43
+ delete(): Promise<boolean>;
44
+ /**
45
+ * Update the model
46
+ */
47
+ update(attributes: Record<string, any>): Promise<this>;
48
+ /**
49
+ * Has One Relationship
50
+ */
51
+ hasOne(related: any, localKey: string | undefined, foreignKey: string): Promise<any>;
52
+ /**
53
+ * Has Many Relationship
54
+ */
55
+ hasMany(related: any, localKey: string | undefined, foreignKey: string): Promise<any[]>;
56
+ /**
57
+ * Belongs To Relationship
58
+ */
59
+ belongsTo(related: any, foreignKey: string, ownerKey?: string): Promise<any>;
60
+ /**
61
+ * Belongs To Many Relationship
62
+ */
63
+ belongsToMany(related: any, pivotTable: string, localForeignKey: string, relatedForeignKey: string): Promise<any[]>;
64
+ /**
65
+ * Eager load relations
66
+ */
67
+ load(...relations: string[]): Promise<this>;
68
+ /**
69
+ * Convert to JSON
70
+ */
71
+ toJSON(): Record<string, any>;
72
+ /**
73
+ * Serialize to JSON string
74
+ */
75
+ toJSONString(): string;
76
+ /**
77
+ * Get array representation
78
+ */
79
+ toArray(): Record<string, any>;
80
+ }
81
+ //# sourceMappingURL=Model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../src/database/Model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,8BAAsB,KAAK;IACvB,MAAM,CAAC,KAAK,EAAE,MAAM,CAAM;IAC1B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAC/C,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAC9C,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,CAAM;IAChC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAM;IACjC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAM;IAClC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAM;gBAErB,UAAU,GAAE,GAAQ;IAIhC;;OAEG;IACI,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IASlD;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAO1C;;OAEG;IACI,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAOrC;;OAEG;IACI,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAKlD;;OAEG;IACI,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI3C,MAAM,CAAC,KAAK,IAAI,YAAY;WAIf,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;WAI3B,UAAU,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;WAQjC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;WAIrB,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAKrC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAShC;;OAEG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5D;;OAEG;IACI,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,YAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAMtF;;OAEG;IACI,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,YAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAMzF;;OAEG;IACI,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAa,GAAG,OAAO,CAAC,GAAG,CAAC;IAMzF;;OAEG;IACI,aAAa,CAChB,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,MAAM,GAC1B,OAAO,CAAC,GAAG,EAAE,CAAC;IAKjB;;OAEG;IACU,IAAI,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IASxD;;OAEG;IACI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAoBpC;;OAEG;IACI,YAAY,IAAI,MAAM;IAI7B;;OAEG;IACI,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAGxC"}
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Model = void 0;
4
+ const QueryBuilder_1 = require("./QueryBuilder");
5
+ class Model {
6
+ constructor(attributes = {}) {
7
+ this.attributes = {};
8
+ this.relations = {};
9
+ this.hidden = [];
10
+ this.visible = [];
11
+ this.fillable = [];
12
+ this.guarded = [];
13
+ this.fill(attributes);
14
+ }
15
+ /**
16
+ * Fill the model with attributes
17
+ */
18
+ fill(attributes) {
19
+ Object.entries(attributes).forEach(([key, value]) => {
20
+ if (this.isFillable(key)) {
21
+ this.attributes[key] = value;
22
+ }
23
+ });
24
+ return this;
25
+ }
26
+ /**
27
+ * Check if attribute is fillable
28
+ */
29
+ isFillable(key) {
30
+ if (this.fillable.length > 0) {
31
+ return this.fillable.includes(key);
32
+ }
33
+ return !this.guarded.includes(key);
34
+ }
35
+ /**
36
+ * Get attribute value
37
+ */
38
+ getAttribute(key) {
39
+ if (this.relations.hasOwnProperty(key)) {
40
+ return this.relations[key];
41
+ }
42
+ return this.attributes[key];
43
+ }
44
+ /**
45
+ * Set attribute value
46
+ */
47
+ setAttribute(key, value) {
48
+ this.attributes[key] = value;
49
+ return this;
50
+ }
51
+ /**
52
+ * Get all attributes
53
+ */
54
+ getAttributes() {
55
+ return { ...this.attributes };
56
+ }
57
+ static query() {
58
+ return new QueryBuilder_1.QueryBuilder(this.table);
59
+ }
60
+ static async find(id) {
61
+ return this.query().where('id', id).first();
62
+ }
63
+ static async findOrFail(id) {
64
+ const result = await this.find(id);
65
+ if (!result) {
66
+ throw new Error(`No record found with id: ${id}`);
67
+ }
68
+ return result;
69
+ }
70
+ static async all() {
71
+ return this.query().get();
72
+ }
73
+ static async count() {
74
+ const result = await this.query().count();
75
+ return result;
76
+ }
77
+ /**
78
+ * Save the model
79
+ */
80
+ async save() {
81
+ const table = this.constructor.table;
82
+ if (!table) {
83
+ throw new Error('Table not defined for model');
84
+ }
85
+ if (!this.attributes.id) {
86
+ this.attributes.id = Math.floor(Math.random() * 100000);
87
+ }
88
+ console.log(`Saving record to ${table}...`);
89
+ return this;
90
+ }
91
+ /**
92
+ * Delete the model
93
+ */
94
+ async delete() {
95
+ const table = this.constructor.table;
96
+ if (!this.attributes.id) {
97
+ throw new Error('Cannot delete model without id');
98
+ }
99
+ console.log(`Deleting record from ${table} with id: ${this.attributes.id}`);
100
+ return true;
101
+ }
102
+ /**
103
+ * Update the model
104
+ */
105
+ async update(attributes) {
106
+ this.fill(attributes);
107
+ await this.save();
108
+ return this;
109
+ }
110
+ /**
111
+ * Has One Relationship
112
+ */
113
+ hasOne(related, localKey = 'id', foreignKey) {
114
+ return related.query()
115
+ .where(foreignKey, this.getAttribute(localKey))
116
+ .first();
117
+ }
118
+ /**
119
+ * Has Many Relationship
120
+ */
121
+ hasMany(related, localKey = 'id', foreignKey) {
122
+ return related.query()
123
+ .where(foreignKey, this.getAttribute(localKey))
124
+ .get();
125
+ }
126
+ /**
127
+ * Belongs To Relationship
128
+ */
129
+ belongsTo(related, foreignKey, ownerKey = 'id') {
130
+ return related.query()
131
+ .where(ownerKey, this.getAttribute(foreignKey))
132
+ .first();
133
+ }
134
+ /**
135
+ * Belongs To Many Relationship
136
+ */
137
+ belongsToMany(related, pivotTable, localForeignKey, relatedForeignKey) {
138
+ // Simplified implementation
139
+ return related.query().get();
140
+ }
141
+ /**
142
+ * Eager load relations
143
+ */
144
+ async load(...relations) {
145
+ for (const relation of relations) {
146
+ if (typeof this[relation] === 'function') {
147
+ this.relations[relation] = await this[relation]();
148
+ }
149
+ }
150
+ return this;
151
+ }
152
+ /**
153
+ * Convert to JSON
154
+ */
155
+ toJSON() {
156
+ const data = { ...this.attributes };
157
+ // Hide specified fields
158
+ this.hidden.forEach(field => {
159
+ delete data[field];
160
+ });
161
+ // Only include visible fields if specified
162
+ if (this.visible.length > 0) {
163
+ const visible = {};
164
+ this.visible.forEach(field => {
165
+ visible[field] = data[field];
166
+ });
167
+ return visible;
168
+ }
169
+ return data;
170
+ }
171
+ /**
172
+ * Serialize to JSON string
173
+ */
174
+ toJSONString() {
175
+ return JSON.stringify(this.toJSON());
176
+ }
177
+ /**
178
+ * Get array representation
179
+ */
180
+ toArray() {
181
+ return this.toJSON();
182
+ }
183
+ }
184
+ exports.Model = Model;
185
+ Model.table = '';
186
+ //# sourceMappingURL=Model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Model.js","sourceRoot":"","sources":["../../src/database/Model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ export declare class QueryBuilder {
2
+ private table;
3
+ private wheres;
4
+ private orWheres;
5
+ private limitValue;
6
+ private offsetValue;
7
+ private order;
8
+ private selectColumns;
9
+ private joins;
10
+ private groupByColumns;
11
+ private havings;
12
+ private isDistinct;
13
+ constructor(table: string);
14
+ /**
15
+ * Specify columns to select
16
+ */
17
+ select(...columns: string[]): this;
18
+ /**
19
+ * Add a where clause
20
+ */
21
+ where(column: string, value: any): this;
22
+ where(column: string, operator: string, value: any): this;
23
+ /**
24
+ * Add an or where clause
25
+ */
26
+ orWhere(column: string, value: any): this;
27
+ orWhere(column: string, operator: string, value: any): this;
28
+ /**
29
+ * Add where in clause
30
+ */
31
+ whereIn(column: string, values: any[]): this;
32
+ /**
33
+ * Add where not in clause
34
+ */
35
+ whereNotIn(column: string, values: any[]): this;
36
+ /**
37
+ * Add where null clause
38
+ */
39
+ whereNull(column: string): this;
40
+ /**
41
+ * Add where not null clause
42
+ */
43
+ whereNotNull(column: string): this;
44
+ /**
45
+ * Add where between clause
46
+ */
47
+ whereBetween(column: string, values: [any, any]): this;
48
+ /**
49
+ * Set limit
50
+ */
51
+ limit(n: number): this;
52
+ /**
53
+ * Set offset
54
+ */
55
+ offset(n: number): this;
56
+ /**
57
+ * Add order by
58
+ */
59
+ orderBy(column: string, direction?: 'ASC' | 'DESC'): this;
60
+ /**
61
+ * Add latest order
62
+ */
63
+ latest(column?: string): this;
64
+ /**
65
+ * Add oldest order
66
+ */
67
+ oldest(column?: string): this;
68
+ /**
69
+ * Group by clause
70
+ */
71
+ groupBy(...columns: string[]): this;
72
+ /**
73
+ * Set distinct
74
+ */
75
+ distinct(): this;
76
+ /**
77
+ * Join table
78
+ */
79
+ join(table: string, on: string): this;
80
+ /**
81
+ * Execute query and get all results
82
+ */
83
+ get(): Promise<any[]>;
84
+ /**
85
+ * Get first result
86
+ */
87
+ first(): Promise<any | null>;
88
+ /**
89
+ * Get count
90
+ */
91
+ count(column?: string): Promise<number>;
92
+ /**
93
+ * Get sum
94
+ */
95
+ sum(column: string): Promise<number>;
96
+ /**
97
+ * Get average
98
+ */
99
+ avg(column: string): Promise<number>;
100
+ /**
101
+ * Get maximum value
102
+ */
103
+ max(column: string): Promise<any>;
104
+ /**
105
+ * Get minimum value
106
+ */
107
+ min(column: string): Promise<any>;
108
+ /**
109
+ * Insert records
110
+ */
111
+ insert(records: Record<string, any>[]): Promise<boolean>;
112
+ /**
113
+ * Update records
114
+ */
115
+ update(values: Record<string, any>): Promise<number>;
116
+ /**
117
+ * Delete records
118
+ */
119
+ delete(): Promise<number>;
120
+ /**
121
+ * Paginate results
122
+ */
123
+ paginate(perPage?: number, page?: number): Promise<{
124
+ data: any[];
125
+ total: number;
126
+ perPage: number;
127
+ currentPage: number;
128
+ }>;
129
+ private buildSelect;
130
+ private buildWheres;
131
+ }
132
+ //# sourceMappingURL=QueryBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryBuilder.d.ts","sourceRoot":"","sources":["../../src/database/QueryBuilder.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAY;IACrB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAiF;IAC/F,OAAO,CAAC,QAAQ,CAA0D;IAC1E,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,KAAK,CAAuD;IACpE,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,OAAO,CAA0D;IACzE,OAAO,CAAC,UAAU,CAAkB;gBAExB,KAAK,EAAE,MAAM;IAIzB;;OAEG;IACI,MAAM,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAKzC;;OAEG;IACI,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IACvC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAUhE;;OAEG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IACzC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAUlE;;OAEG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI;IAKnD;;OAEG;IACI,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI;IAKtD;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKtC;;OAEG;IACI,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKzC;;OAEG;IACI,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI;IAK7D;;OAEG;IACI,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAK7B;;OAEG;IACI,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAK9B;;OAEG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,KAAK,GAAG,MAAc,GAAG,IAAI;IAKvE;;OAEG;IACI,MAAM,CAAC,MAAM,GAAE,MAAqB,GAAG,IAAI;IAIlD;;OAEG;IACI,MAAM,CAAC,MAAM,GAAE,MAAqB,GAAG,IAAI;IAIlD;;OAEG;IACI,OAAO,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAK1C;;OAEG;IACI,QAAQ,IAAI,IAAI;IAKvB;;OAEG;IACI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAK5C;;OAEG;IACU,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAMlC;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAKzC;;OAEG;IACU,KAAK,CAAC,MAAM,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAMzD;;OAEG;IACU,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMjD;;OAEG;IACU,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMjD;;OAEG;IACU,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAM9C;;OAEG;IACU,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAM9C;;OAEG;IACU,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAKrE;;OAEG;IACU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAMjE;;OAEG;IACU,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAMtC;;OAEG;IACU,QAAQ,CAAC,OAAO,GAAE,MAAW,EAAE,IAAI,GAAE,MAAU,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAM5I,OAAO,CAAC,WAAW;IA+BnB,OAAO,CAAC,WAAW;CAwBtB"}