@arikajs/database 0.0.3 → 0.0.5

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 (92) hide show
  1. package/README.md +392 -25
  2. package/dist/Connections/MongoDBConnection.d.ts +81 -0
  3. package/dist/Connections/MongoDBConnection.d.ts.map +1 -0
  4. package/dist/Connections/MongoDBConnection.js +203 -0
  5. package/dist/Connections/MongoDBConnection.js.map +1 -0
  6. package/dist/Connections/MySQLConnection.d.ts +1 -0
  7. package/dist/Connections/MySQLConnection.d.ts.map +1 -1
  8. package/dist/Connections/MySQLConnection.js +47 -10
  9. package/dist/Connections/MySQLConnection.js.map +1 -1
  10. package/dist/Connections/PostgreSQLConnection.d.ts +1 -0
  11. package/dist/Connections/PostgreSQLConnection.d.ts.map +1 -1
  12. package/dist/Connections/PostgreSQLConnection.js +43 -9
  13. package/dist/Connections/PostgreSQLConnection.js.map +1 -1
  14. package/dist/Connections/SQLiteConnection.d.ts +1 -0
  15. package/dist/Connections/SQLiteConnection.d.ts.map +1 -1
  16. package/dist/Connections/SQLiteConnection.js +38 -7
  17. package/dist/Connections/SQLiteConnection.js.map +1 -1
  18. package/dist/Contracts/Database.d.ts +71 -4
  19. package/dist/Contracts/Database.d.ts.map +1 -1
  20. package/dist/Contracts/Schema.d.ts +4 -0
  21. package/dist/Contracts/Schema.d.ts.map +1 -1
  22. package/dist/Database.d.ts +30 -3
  23. package/dist/Database.d.ts.map +1 -1
  24. package/dist/Database.js +39 -1
  25. package/dist/Database.js.map +1 -1
  26. package/dist/DatabaseManager.d.ts +17 -3
  27. package/dist/DatabaseManager.d.ts.map +1 -1
  28. package/dist/DatabaseManager.js +27 -11
  29. package/dist/DatabaseManager.js.map +1 -1
  30. package/dist/Migrations/Migrator.d.ts.map +1 -1
  31. package/dist/Migrations/Migrator.js +35 -3
  32. package/dist/Migrations/Migrator.js.map +1 -1
  33. package/dist/Model/GlobalScope.d.ts +44 -0
  34. package/dist/Model/GlobalScope.d.ts.map +1 -0
  35. package/dist/Model/GlobalScope.js +64 -0
  36. package/dist/Model/GlobalScope.js.map +1 -0
  37. package/dist/Model/Model.d.ts +168 -4
  38. package/dist/Model/Model.d.ts.map +1 -1
  39. package/dist/Model/Model.js +476 -16
  40. package/dist/Model/Model.js.map +1 -1
  41. package/dist/Model/Observer.d.ts +39 -0
  42. package/dist/Model/Observer.d.ts.map +1 -0
  43. package/dist/Model/Observer.js +48 -0
  44. package/dist/Model/Observer.js.map +1 -0
  45. package/dist/Model/Relations.d.ts +201 -10
  46. package/dist/Model/Relations.d.ts.map +1 -1
  47. package/dist/Model/Relations.js +472 -27
  48. package/dist/Model/Relations.js.map +1 -1
  49. package/dist/Query/Expression.d.ts +16 -0
  50. package/dist/Query/Expression.d.ts.map +1 -0
  51. package/dist/Query/Expression.js +25 -0
  52. package/dist/Query/Expression.js.map +1 -0
  53. package/dist/Query/QueryBuilder.d.ts +64 -6
  54. package/dist/Query/QueryBuilder.d.ts.map +1 -1
  55. package/dist/Query/QueryBuilder.js +234 -15
  56. package/dist/Query/QueryBuilder.js.map +1 -1
  57. package/dist/Query/QueryLogger.d.ts +55 -0
  58. package/dist/Query/QueryLogger.d.ts.map +1 -0
  59. package/dist/Query/QueryLogger.js +82 -0
  60. package/dist/Query/QueryLogger.js.map +1 -0
  61. package/dist/Schema/Grammars/Grammar.d.ts +5 -0
  62. package/dist/Schema/Grammars/Grammar.d.ts.map +1 -1
  63. package/dist/Schema/Grammars/Grammar.js.map +1 -1
  64. package/dist/Schema/Grammars/MySQLGrammar.d.ts +1 -0
  65. package/dist/Schema/Grammars/MySQLGrammar.d.ts.map +1 -1
  66. package/dist/Schema/Grammars/MySQLGrammar.js +42 -0
  67. package/dist/Schema/Grammars/MySQLGrammar.js.map +1 -1
  68. package/dist/Schema/Grammars/PostgreSQLGrammar.d.ts +1 -0
  69. package/dist/Schema/Grammars/PostgreSQLGrammar.d.ts.map +1 -1
  70. package/dist/Schema/Grammars/PostgreSQLGrammar.js +46 -0
  71. package/dist/Schema/Grammars/PostgreSQLGrammar.js.map +1 -1
  72. package/dist/Schema/Grammars/SQLiteGrammar.d.ts +1 -0
  73. package/dist/Schema/Grammars/SQLiteGrammar.d.ts.map +1 -1
  74. package/dist/Schema/Grammars/SQLiteGrammar.js +31 -0
  75. package/dist/Schema/Grammars/SQLiteGrammar.js.map +1 -1
  76. package/dist/Schema/Schema.d.ts +6 -0
  77. package/dist/Schema/Schema.d.ts.map +1 -1
  78. package/dist/Schema/Schema.js +10 -0
  79. package/dist/Schema/Schema.js.map +1 -1
  80. package/dist/Schema/SchemaBuilder.d.ts +4 -0
  81. package/dist/Schema/SchemaBuilder.d.ts.map +1 -1
  82. package/dist/Schema/SchemaBuilder.js +15 -0
  83. package/dist/Schema/SchemaBuilder.js.map +1 -1
  84. package/dist/Transactions/TransactionManager.d.ts +28 -0
  85. package/dist/Transactions/TransactionManager.d.ts.map +1 -0
  86. package/dist/Transactions/TransactionManager.js +68 -0
  87. package/dist/Transactions/TransactionManager.js.map +1 -0
  88. package/dist/index.d.ts +11 -1
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +21 -1
  91. package/dist/index.js.map +1 -1
  92. package/package.json +10 -6
@@ -2,7 +2,7 @@
2
2
  * Database connection configuration
3
3
  */
4
4
  export interface ConnectionConfig {
5
- driver: 'mysql' | 'pgsql' | 'sqlite';
5
+ driver: 'mysql' | 'pgsql' | 'sqlite' | 'mongodb';
6
6
  host?: string;
7
7
  port?: number;
8
8
  database: string;
@@ -14,6 +14,8 @@ export interface ConnectionConfig {
14
14
  min?: number;
15
15
  max?: number;
16
16
  };
17
+ read?: Partial<ConnectionConfig> | Partial<ConnectionConfig>[];
18
+ write?: Partial<ConnectionConfig>;
17
19
  }
18
20
  /**
19
21
  * Database configuration with multiple connections
@@ -87,10 +89,30 @@ export interface QueryBuilder {
87
89
  * Add a where not null clause
88
90
  */
89
91
  whereNotNull(column: string): this;
92
+ /**
93
+ * Add a raw where clause
94
+ */
95
+ whereRaw(sql: string, bindings?: any[]): this;
96
+ /**
97
+ * Add a raw OR where clause
98
+ */
99
+ orWhereRaw(sql: string, bindings?: any[]): this;
100
+ /**
101
+ * Add an exists clause
102
+ */
103
+ whereExists(callback: (query: any) => void, boolean?: 'and' | 'or', not?: boolean): this;
104
+ /**
105
+ * Add a not exists clause
106
+ */
107
+ whereNotExists(callback: (query: any) => void, boolean?: 'and' | 'or'): this;
90
108
  /**
91
109
  * Add a select clause
92
110
  */
93
- select(...columns: string[]): this;
111
+ select(...columns: (string | any)[]): this;
112
+ /**
113
+ * Add a raw select clause
114
+ */
115
+ selectRaw(sql: string): this;
94
116
  /**
95
117
  * Add an order by clause
96
118
  */
@@ -112,9 +134,37 @@ export interface QueryBuilder {
112
134
  */
113
135
  first(): Promise<any | null>;
114
136
  /**
115
- * Insert a record
137
+ * Paginate the query results
138
+ */
139
+ paginate(page?: number, perPage?: number, path?: string): Promise<{
140
+ data: any[];
141
+ meta: any;
142
+ links: any;
143
+ }>;
144
+ /**
145
+ * Paginate without counting total pages
146
+ */
147
+ simplePaginate(page?: number, perPage?: number, path?: string): Promise<{
148
+ data: any[];
149
+ meta: any;
150
+ links: any;
151
+ }>;
152
+ /**
153
+ * Cursor paginate for high performance
116
154
  */
117
- insert(data: Record<string, any>): Promise<any>;
155
+ cursorPaginate(cursor?: string | null, perPage?: number, cursorColumn?: string, path?: string): Promise<{
156
+ data: any[];
157
+ meta: any;
158
+ links: any;
159
+ }>;
160
+ /**
161
+ * Chunk the query results
162
+ */
163
+ chunk(count: number, callback: (results: any[], page: number) => Promise<boolean | void>): Promise<boolean>;
164
+ /**
165
+ * Insert a record or multiple records
166
+ */
167
+ insert(data: Record<string, any> | Record<string, any>[]): Promise<any>;
118
168
  /**
119
169
  * Update records
120
170
  */
@@ -127,5 +177,22 @@ export interface QueryBuilder {
127
177
  * Get the count of records
128
178
  */
129
179
  count(column?: string): Promise<number>;
180
+ /**
181
+ * Cache the query results
182
+ */
183
+ cache(ttl: number, key?: string): this;
184
+ }
185
+ /**
186
+ * Cache store implementation used by the query builder
187
+ */
188
+ export interface QueryCache {
189
+ /**
190
+ * Get an item from the cache, or execute the given closure and store the result
191
+ */
192
+ remember<T>(key: string, ttl: number, callback: () => Promise<T>): Promise<T>;
193
+ /**
194
+ * Remove an item from the cache
195
+ */
196
+ forget(key: string): Promise<boolean>;
130
197
  }
131
198
  //# sourceMappingURL=Database.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../src/Contracts/Database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../src/Contracts/Database.ts"],"names":[],"mappings":"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"}
@@ -95,6 +95,10 @@ export interface Blueprint {
95
95
  * Drop an index
96
96
  */
97
97
  dropIndex(name: string): void;
98
+ /**
99
+ * Drop a foreign key constraint
100
+ */
101
+ dropForeignKey(name: string): void;
98
102
  }
99
103
  /**
100
104
  * Foreign key definition
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Contracts/Schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAE1B;;OAEG;IACH,MAAM,IAAI,IAAI,CAAC;IAEf;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB;;OAEG;IACH,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAEpC;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAExD;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAExC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAE3C;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAExC;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAErC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAE1C;;OAEG;IACH,UAAU,IAAI,IAAI,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAE5E;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAErC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAEzC;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAErC;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAAC;IAE9C;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvD;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAExD;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC;IAE1E;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC;CAC7E;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC"}
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Contracts/Schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAE1B;;OAEG;IACH,MAAM,IAAI,IAAI,CAAC;IAEf;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB;;OAEG;IACH,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAEpC;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAExD;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAExC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAE3C;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAExC;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAErC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAE1C;;OAEG;IACH,UAAU,IAAI,IAAI,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAE5E;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAErC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAEzC;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAErC;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAAC;IAE9C;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvD;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAExD;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC;IAE1E;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC;CAC7E;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC"}
@@ -1,6 +1,9 @@
1
1
  import { DatabaseManager } from './DatabaseManager';
2
2
  import { QueryBuilder } from './Query/QueryBuilder';
3
+ import { Expression } from './Query/Expression';
3
4
  import { SchemaBuilder } from './Schema/SchemaBuilder';
5
+ import { Connection } from './Contracts/Database';
6
+ import { TransactionManager } from './Transactions/TransactionManager';
4
7
  /**
5
8
  * Database facade - static interface to the database manager
6
9
  */
@@ -23,13 +26,37 @@ export declare class Database {
23
26
  */
24
27
  static schema(connectionName?: string): SchemaBuilder;
25
28
  /**
26
- * Execute a transaction
29
+ * Execute a callback within a transaction (nested savepoints supported)
27
30
  */
28
- static transaction<T>(callback: (trx: DatabaseManager) => Promise<T>, connectionName?: string): Promise<T>;
31
+ static transaction<T>(callback: (trx: Connection) => Promise<T>, connectionName?: string): Promise<T>;
32
+ /**
33
+ * Get a TransactionManager for manual begin/commit/rollback control
34
+ */
35
+ static getTransactionManager(connectionName?: string): Promise<TransactionManager>;
36
+ /**
37
+ * Enable query logging
38
+ */
39
+ static enableQueryLog(): void;
40
+ /**
41
+ * Disable query logging
42
+ */
43
+ static disableQueryLog(): void;
44
+ /**
45
+ * Get all logged queries
46
+ */
47
+ static getQueryLog(): import("./Query/QueryLogger").QueryLog[];
48
+ /**
49
+ * Flush (clear) the query log
50
+ */
51
+ static flushQueryLog(): void;
29
52
  /**
30
53
  * Get a connection by name
31
54
  */
32
- static connection(name?: string): import(".").Connection | Promise<import(".").Connection>;
55
+ static connection(name?: string): Connection | Promise<Connection>;
56
+ /**
57
+ * Create a raw SQL expression
58
+ */
59
+ static raw(value: string | number): Expression;
33
60
  /**
34
61
  * Close all connections
35
62
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../src/Database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;GAEG;AACH,qBAAa,QAAQ;IACjB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAkB;IAExC;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAIjD;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,eAAe;IAOpC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,YAAY;IAItE;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,aAAa;IAIrD;;OAEG;WACU,WAAW,CAAC,CAAC,EACtB,QAAQ,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,EAC9C,cAAc,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,CAAC,CAAC;IAIb;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM;IAI/B;;OAEG;WACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGzC"}
1
+ {"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../src/Database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE;;GAEG;AACH,qBAAa,QAAQ;IACjB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAkB;IAExC;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAIjD;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,eAAe;IAOpC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,YAAY;IAItE;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,aAAa;IAIrD;;OAEG;WACU,WAAW,CAAC,CAAC,EACtB,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,EACzC,cAAc,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,CAAC,CAAC;IAIb;;OAEG;WACU,qBAAqB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIxF;;OAEG;IACH,MAAM,CAAC,cAAc,IAAI,IAAI;IAI7B;;OAEG;IACH,MAAM,CAAC,eAAe,IAAI,IAAI;IAI9B;;OAEG;IACH,MAAM,CAAC,WAAW;IAIlB;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAI5B;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM;IAI/B;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU;IAI9C;;OAEG;WACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGzC"}
package/dist/Database.js CHANGED
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Database = void 0;
4
+ const Expression_1 = require("./Query/Expression");
5
+ const QueryLogger_1 = require("./Query/QueryLogger");
4
6
  /**
5
7
  * Database facade - static interface to the database manager
6
8
  */
@@ -33,17 +35,53 @@ class Database {
33
35
  return Database.getManager().schema(connectionName);
34
36
  }
35
37
  /**
36
- * Execute a transaction
38
+ * Execute a callback within a transaction (nested savepoints supported)
37
39
  */
38
40
  static async transaction(callback, connectionName) {
39
41
  return await Database.getManager().transaction(callback, connectionName);
40
42
  }
43
+ /**
44
+ * Get a TransactionManager for manual begin/commit/rollback control
45
+ */
46
+ static async getTransactionManager(connectionName) {
47
+ return Database.getManager().getTransactionManager(connectionName);
48
+ }
49
+ /**
50
+ * Enable query logging
51
+ */
52
+ static enableQueryLog() {
53
+ QueryLogger_1.QueryLogger.enable();
54
+ }
55
+ /**
56
+ * Disable query logging
57
+ */
58
+ static disableQueryLog() {
59
+ QueryLogger_1.QueryLogger.disable();
60
+ }
61
+ /**
62
+ * Get all logged queries
63
+ */
64
+ static getQueryLog() {
65
+ return QueryLogger_1.QueryLogger.getLog();
66
+ }
67
+ /**
68
+ * Flush (clear) the query log
69
+ */
70
+ static flushQueryLog() {
71
+ QueryLogger_1.QueryLogger.flush();
72
+ }
41
73
  /**
42
74
  * Get a connection by name
43
75
  */
44
76
  static connection(name) {
45
77
  return Database.getManager().connection(name);
46
78
  }
79
+ /**
80
+ * Create a raw SQL expression
81
+ */
82
+ static raw(value) {
83
+ return new Expression_1.Expression(value);
84
+ }
47
85
  /**
48
86
  * Close all connections
49
87
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Database.js","sourceRoot":"","sources":["../src/Database.ts"],"names":[],"mappings":";;;AAIA;;GAEG;AACH,MAAa,QAAQ;IAGjB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAwB;QACtC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU;QACb,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,SAAiB,EAAE,cAAuB;QACnD,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,cAAuB;QACjC,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CACpB,QAA8C,EAC9C,cAAuB;QAEvB,OAAO,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAa;QAC3B,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,QAAQ;QACjB,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC5C,CAAC;CACJ;AAzDD,4BAyDC"}
1
+ {"version":3,"file":"Database.js","sourceRoot":"","sources":["../src/Database.ts"],"names":[],"mappings":";;;AAEA,mDAAgD;AAEhD,qDAAkD;AAIlD;;GAEG;AACH,MAAa,QAAQ;IAGjB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAwB;QACtC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU;QACb,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,SAAiB,EAAE,cAAuB;QACnD,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,cAAuB;QACjC,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CACpB,QAAyC,EACzC,cAAuB;QAEvB,OAAO,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,cAAuB;QACtD,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc;QACjB,yBAAW,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe;QAClB,yBAAW,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW;QACd,OAAO,yBAAW,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa;QAChB,yBAAW,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAa;QAC3B,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,KAAsB;QAC7B,OAAO,IAAI,uBAAU,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,QAAQ;QACjB,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC5C,CAAC;CACJ;AAnGD,4BAmGC"}
@@ -1,12 +1,14 @@
1
- import { Connection, DatabaseConfig } from './Contracts/Database';
1
+ import { Connection, DatabaseConfig, QueryCache } from './Contracts/Database';
2
2
  import { QueryBuilder } from './Query/QueryBuilder';
3
3
  import { SchemaBuilder } from './Schema/SchemaBuilder';
4
+ import { TransactionManager } from './Transactions/TransactionManager';
4
5
  /**
5
6
  * Database manager - handles connections and query builders
6
7
  */
7
8
  export declare class DatabaseManager {
8
9
  private connections;
9
10
  private config;
11
+ private cacheStore?;
10
12
  constructor(config: DatabaseConfig);
11
13
  /**
12
14
  * Get a connection by name
@@ -21,9 +23,21 @@ export declare class DatabaseManager {
21
23
  */
22
24
  schema(connectionName?: string): SchemaBuilder;
23
25
  /**
24
- * Execute a transaction
26
+ * Execute a callback within a transaction (nested savepoints supported)
25
27
  */
26
- transaction<T>(callback: (trx: DatabaseManager) => Promise<T>, connectionName?: string): Promise<T>;
28
+ transaction<T>(callback: (trx: Connection) => Promise<T>, connectionName?: string): Promise<T>;
29
+ /**
30
+ * Get a TransactionManager for manual begin/commit/rollback control
31
+ */
32
+ getTransactionManager(connectionName?: string): Promise<TransactionManager>;
33
+ /**
34
+ * Set a query cache implementation
35
+ */
36
+ setCache(cache: QueryCache): void;
37
+ /**
38
+ * Get the configured query cache store
39
+ */
40
+ getCache(): QueryCache | undefined;
27
41
  /**
28
42
  * Close all connections
29
43
  */
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseManager.d.ts","sourceRoot":"","sources":["../src/DatabaseManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;GAEG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAIlC;;OAEG;IACH,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAoB3D;;OAEG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,YAAY;IAK/D;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,aAAa;IAK9C;;OAEG;IACG,WAAW,CAAC,CAAC,EACf,QAAQ,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,EAC9C,cAAc,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,CAAC,CAAC;IAeb;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/B;;OAEG;YACW,gBAAgB;CAkBjC"}
1
+ {"version":3,"file":"DatabaseManager.d.ts","sourceRoot":"","sources":["../src/DatabaseManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE;;GAEG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAa;gBAEpB,MAAM,EAAE,cAAc;IAIlC;;OAEG;IACH,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAoB3D;;OAEG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,YAAY;IAK/D;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,aAAa;IAK9C;;OAEG;IACG,WAAW,CAAC,CAAC,EACf,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,EACzC,cAAc,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,CAAC,CAAC;IAMb;;OAEG;IACG,qBAAqB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAKjF;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAIjC;;OAEG;IACH,QAAQ,IAAI,UAAU,GAAG,SAAS;IAIlC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/B;;OAEG;YACW,gBAAgB;CAsBjC"}
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.DatabaseManager = void 0;
37
37
  const QueryBuilder_1 = require("./Query/QueryBuilder");
38
38
  const SchemaBuilder_1 = require("./Schema/SchemaBuilder");
39
+ const TransactionManager_1 = require("./Transactions/TransactionManager");
39
40
  /**
40
41
  * Database manager - handles connections and query builders
41
42
  */
@@ -77,20 +78,31 @@ class DatabaseManager {
77
78
  return new SchemaBuilder_1.SchemaBuilder(connection);
78
79
  }
79
80
  /**
80
- * Execute a transaction
81
+ * Execute a callback within a transaction (nested savepoints supported)
81
82
  */
82
83
  async transaction(callback, connectionName) {
83
84
  const connection = await this.connection(connectionName);
84
- await connection.beginTransaction();
85
- try {
86
- const result = await callback(this);
87
- await connection.commit();
88
- return result;
89
- }
90
- catch (error) {
91
- await connection.rollback();
92
- throw error;
93
- }
85
+ const txManager = new TransactionManager_1.TransactionManager(connection);
86
+ return txManager.transaction(callback);
87
+ }
88
+ /**
89
+ * Get a TransactionManager for manual begin/commit/rollback control
90
+ */
91
+ async getTransactionManager(connectionName) {
92
+ const connection = await this.connection(connectionName);
93
+ return new TransactionManager_1.TransactionManager(connection);
94
+ }
95
+ /**
96
+ * Set a query cache implementation
97
+ */
98
+ setCache(cache) {
99
+ this.cacheStore = cache;
100
+ }
101
+ /**
102
+ * Get the configured query cache store
103
+ */
104
+ getCache() {
105
+ return this.cacheStore;
94
106
  }
95
107
  /**
96
108
  * Close all connections
@@ -117,6 +129,10 @@ class DatabaseManager {
117
129
  const { SQLiteConnection } = await Promise.resolve().then(() => __importStar(require('./Connections/SQLiteConnection')));
118
130
  return new SQLiteConnection(config);
119
131
  }
132
+ case 'mongodb': {
133
+ const { MongoDBConnection } = await Promise.resolve().then(() => __importStar(require('./Connections/MongoDBConnection')));
134
+ return new MongoDBConnection(config);
135
+ }
120
136
  default:
121
137
  throw new Error(`Unsupported database driver: ${config.driver}`);
122
138
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseManager.js","sourceRoot":"","sources":["../src/DatabaseManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DatabaseManager.js","sourceRoot":"","sources":["../src/DatabaseManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Migrator.d.ts","sourceRoot":"","sources":["../../src/Migrations/Migrator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,qBAAa,QAAQ;IAIb,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,cAAc;IAJ1B,OAAO,CAAC,SAAS,CAAgB;gBAGrB,EAAE,EAAE,eAAe,EACnB,cAAc,EAAE,MAAM;IAGlC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BrC;;OAEG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBtC;;OAEG;YACW,qBAAqB;IAgBnC;;OAEG;YACW,MAAM;IAKpB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;YACW,OAAO;IA6BrB;;OAEG;YACW,YAAY;IAO1B;;OAEG;YACW,eAAe;IAI7B;;OAEG;YACW,kBAAkB;IAKhC;;OAEG;YACW,YAAY;CAM7B"}
1
+ {"version":3,"file":"Migrator.d.ts","sourceRoot":"","sources":["../../src/Migrations/Migrator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,qBAAa,QAAQ;IAIb,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,cAAc;IAJ1B,OAAO,CAAC,SAAS,CAAgB;gBAGrB,EAAE,EAAE,eAAe,EACnB,cAAc,EAAE,MAAM;IAGlC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BrC;;OAEG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBtC;;OAEG;YACW,qBAAqB;IAgBnC;;OAEG;YACW,MAAM;IAKpB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;YACW,OAAO;IA4BrB;;OAEG;YACW,YAAY;IAO1B;;OAEG;YACW,eAAe;IAI7B;;OAEG;YACW,kBAAkB;IAKhC;;OAEG;YACW,YAAY;CAM7B"}
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
@@ -108,9 +141,8 @@ class Migrator {
108
141
  */
109
142
  async resolve(file) {
110
143
  const fullPath = path_1.default.resolve(this.migrationsPath, file);
111
- // In Node.js, we can use dynamic import
112
- // If we are running in TS-Node environment, it will work for .ts files
113
- const module = require(fullPath);
144
+ // Use dynamic import so tsx can handle .ts migration files
145
+ const module = await Promise.resolve(`${fullPath}`).then(s => __importStar(require(s)));
114
146
  // Check for default export or named export
115
147
  let MigrationClass = module.default || module;
116
148
  // If it's still an object and has multiple exports, look for one that looks like a migration
@@ -1 +1 @@
1
- {"version":3,"file":"Migrator.js","sourceRoot":"","sources":["../../src/Migrations/Migrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Migrator.js","sourceRoot":"","sources":["../../src/Migrations/Migrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Interface for a Global Scope applied to every query on a model
3
+ */
4
+ export interface GlobalScope {
5
+ /**
6
+ * Apply the scope to the given query builder
7
+ */
8
+ apply(builder: any, model: any): void;
9
+ }
10
+ /**
11
+ * Registry for global scopes on model classes
12
+ */
13
+ export declare class GlobalScopeRegistry {
14
+ private static scopes;
15
+ /**
16
+ * Register a named global scope for a model class
17
+ */
18
+ static register(modelName: string, scopeName: string, scope: GlobalScope): void;
19
+ /**
20
+ * Retrieve all global scopes for a model class
21
+ */
22
+ static getScopes(modelName: string): Map<string, GlobalScope>;
23
+ /**
24
+ * Remove a specific named scope from a model
25
+ */
26
+ static remove(modelName: string, scopeName: string): void;
27
+ /**
28
+ * Apply all registered global scopes to a query builder
29
+ */
30
+ static applyAll(modelName: string, builder: any, model: any): void;
31
+ /**
32
+ * Clear all scopes (useful in tests)
33
+ */
34
+ static flush(modelName?: string): void;
35
+ }
36
+ /**
37
+ * A functional scope — can be registered inline without a class
38
+ */
39
+ export declare class CallbackGlobalScope implements GlobalScope {
40
+ private callback;
41
+ constructor(callback: (builder: any, model: any) => void);
42
+ apply(builder: any, model: any): void;
43
+ }
44
+ //# sourceMappingURL=GlobalScope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlobalScope.d.ts","sourceRoot":"","sources":["../../src/Model/GlobalScope.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;CACzC;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAoD;IAEzE;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI;IAO/E;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAI7D;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAIzD;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAOlE;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;CAOzC;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IACnD,OAAO,CAAC,QAAQ,CAAqC;gBAEzC,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI;IAIxD,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;CAGxC"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CallbackGlobalScope = exports.GlobalScopeRegistry = void 0;
4
+ /**
5
+ * Registry for global scopes on model classes
6
+ */
7
+ class GlobalScopeRegistry {
8
+ /**
9
+ * Register a named global scope for a model class
10
+ */
11
+ static register(modelName, scopeName, scope) {
12
+ if (!this.scopes.has(modelName)) {
13
+ this.scopes.set(modelName, new Map());
14
+ }
15
+ this.scopes.get(modelName).set(scopeName, scope);
16
+ }
17
+ /**
18
+ * Retrieve all global scopes for a model class
19
+ */
20
+ static getScopes(modelName) {
21
+ return this.scopes.get(modelName) ?? new Map();
22
+ }
23
+ /**
24
+ * Remove a specific named scope from a model
25
+ */
26
+ static remove(modelName, scopeName) {
27
+ this.scopes.get(modelName)?.delete(scopeName);
28
+ }
29
+ /**
30
+ * Apply all registered global scopes to a query builder
31
+ */
32
+ static applyAll(modelName, builder, model) {
33
+ const scopes = this.getScopes(modelName);
34
+ for (const scope of scopes.values()) {
35
+ scope.apply(builder, model);
36
+ }
37
+ }
38
+ /**
39
+ * Clear all scopes (useful in tests)
40
+ */
41
+ static flush(modelName) {
42
+ if (modelName) {
43
+ this.scopes.delete(modelName);
44
+ }
45
+ else {
46
+ this.scopes.clear();
47
+ }
48
+ }
49
+ }
50
+ exports.GlobalScopeRegistry = GlobalScopeRegistry;
51
+ GlobalScopeRegistry.scopes = new Map();
52
+ /**
53
+ * A functional scope — can be registered inline without a class
54
+ */
55
+ class CallbackGlobalScope {
56
+ constructor(callback) {
57
+ this.callback = callback;
58
+ }
59
+ apply(builder, model) {
60
+ this.callback(builder, model);
61
+ }
62
+ }
63
+ exports.CallbackGlobalScope = CallbackGlobalScope;
64
+ //# sourceMappingURL=GlobalScope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlobalScope.js","sourceRoot":"","sources":["../../src/Model/GlobalScope.ts"],"names":[],"mappings":";;;AAUA;;GAEG;AACH,MAAa,mBAAmB;IAG5B;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,SAAiB,EAAE,SAAiB,EAAE,KAAkB;QACpE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAiB;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,SAAiB,EAAE,SAAiB;QAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,SAAiB,EAAE,OAAY,EAAE,KAAU;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACzC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YAClC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,SAAkB;QAC3B,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;;AA9CL,kDA+CC;AA9CkB,0BAAM,GAA0C,IAAI,GAAG,EAAE,CAAC;AAgD7E;;GAEG;AACH,MAAa,mBAAmB;IAG5B,YAAY,QAA4C;QACpD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAY,EAAE,KAAU;QAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;CACJ;AAVD,kDAUC"}