@forgebase/database 0.0.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 (219) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +470 -0
  3. package/dist/cjs/adapters/base.d.ts +20 -0
  4. package/dist/cjs/adapters/base.d.ts.map +1 -0
  5. package/dist/cjs/adapters/base.js +13 -0
  6. package/dist/cjs/adapters/base.js.map +1 -0
  7. package/dist/cjs/adapters/index.d.ts +6 -0
  8. package/dist/cjs/adapters/index.d.ts.map +1 -0
  9. package/dist/cjs/adapters/index.js +24 -0
  10. package/dist/cjs/adapters/index.js.map +1 -0
  11. package/dist/cjs/adapters/postgres.d.ts +13 -0
  12. package/dist/cjs/adapters/postgres.d.ts.map +1 -0
  13. package/dist/cjs/adapters/postgres.js +51 -0
  14. package/dist/cjs/adapters/postgres.js.map +1 -0
  15. package/dist/cjs/adapters/sqlite.d.ts +13 -0
  16. package/dist/cjs/adapters/sqlite.d.ts.map +1 -0
  17. package/dist/cjs/adapters/sqlite.js +47 -0
  18. package/dist/cjs/adapters/sqlite.js.map +1 -0
  19. package/dist/cjs/adapters/types.d.ts +8 -0
  20. package/dist/cjs/adapters/types.d.ts.map +1 -0
  21. package/dist/cjs/adapters/types.js +3 -0
  22. package/dist/cjs/adapters/types.js.map +1 -0
  23. package/dist/cjs/database.d.ts +73 -0
  24. package/dist/cjs/database.d.ts.map +1 -0
  25. package/dist/cjs/database.js +673 -0
  26. package/dist/cjs/database.js.map +1 -0
  27. package/dist/cjs/errors.d.ts +37 -0
  28. package/dist/cjs/errors.d.ts.map +1 -0
  29. package/dist/cjs/errors.js +64 -0
  30. package/dist/cjs/errors.js.map +1 -0
  31. package/dist/cjs/index.d.ts +16 -0
  32. package/dist/cjs/index.d.ts.map +1 -0
  33. package/dist/cjs/index.js +31 -0
  34. package/dist/cjs/index.js.map +1 -0
  35. package/dist/cjs/kysely-hooks.d.ts +45 -0
  36. package/dist/cjs/kysely-hooks.d.ts.map +1 -0
  37. package/dist/cjs/kysely-hooks.js +93 -0
  38. package/dist/cjs/kysely-hooks.js.map +1 -0
  39. package/dist/cjs/libsql/example.d.ts +2 -0
  40. package/dist/cjs/libsql/example.d.ts.map +1 -0
  41. package/dist/cjs/libsql/example.js +44 -0
  42. package/dist/cjs/libsql/example.js.map +1 -0
  43. package/dist/cjs/libsql/index.d.ts +36 -0
  44. package/dist/cjs/libsql/index.d.ts.map +1 -0
  45. package/dist/cjs/libsql/index.js +155 -0
  46. package/dist/cjs/libsql/index.js.map +1 -0
  47. package/dist/cjs/permissionService.d.ts +20 -0
  48. package/dist/cjs/permissionService.d.ts.map +1 -0
  49. package/dist/cjs/permissionService.js +107 -0
  50. package/dist/cjs/permissionService.js.map +1 -0
  51. package/dist/cjs/rlsFunctionRegistry.d.ts +43 -0
  52. package/dist/cjs/rlsFunctionRegistry.d.ts.map +1 -0
  53. package/dist/cjs/rlsFunctionRegistry.js +63 -0
  54. package/dist/cjs/rlsFunctionRegistry.js.map +1 -0
  55. package/dist/cjs/rlsManager.d.ts +23 -0
  56. package/dist/cjs/rlsManager.d.ts.map +1 -0
  57. package/dist/cjs/rlsManager.js +371 -0
  58. package/dist/cjs/rlsManager.js.map +1 -0
  59. package/dist/cjs/schema.d.ts +15 -0
  60. package/dist/cjs/schema.d.ts.map +1 -0
  61. package/dist/cjs/schema.js +119 -0
  62. package/dist/cjs/schema.js.map +1 -0
  63. package/dist/cjs/sdk/client.d.ts +324 -0
  64. package/dist/cjs/sdk/client.d.ts.map +1 -0
  65. package/dist/cjs/sdk/client.js +554 -0
  66. package/dist/cjs/sdk/client.js.map +1 -0
  67. package/dist/cjs/sdk/examples.d.ts +68 -0
  68. package/dist/cjs/sdk/examples.d.ts.map +1 -0
  69. package/dist/cjs/sdk/examples.js +232 -0
  70. package/dist/cjs/sdk/examples.js.map +1 -0
  71. package/dist/cjs/sdk/server.d.ts +115 -0
  72. package/dist/cjs/sdk/server.d.ts.map +1 -0
  73. package/dist/cjs/sdk/server.js +140 -0
  74. package/dist/cjs/sdk/server.js.map +1 -0
  75. package/dist/cjs/types.d.ts +217 -0
  76. package/dist/cjs/types.d.ts.map +1 -0
  77. package/dist/cjs/types.js +5 -0
  78. package/dist/cjs/types.js.map +1 -0
  79. package/dist/cjs/utils/column-utils.d.ts +8 -0
  80. package/dist/cjs/utils/column-utils.d.ts.map +1 -0
  81. package/dist/cjs/utils/column-utils.js +131 -0
  82. package/dist/cjs/utils/column-utils.js.map +1 -0
  83. package/dist/cjs/utils/db.d.ts +2 -0
  84. package/dist/cjs/utils/db.d.ts.map +1 -0
  85. package/dist/cjs/utils/db.js +6 -0
  86. package/dist/cjs/utils/db.js.map +1 -0
  87. package/dist/cjs/utils/inspector.d.ts +39 -0
  88. package/dist/cjs/utils/inspector.d.ts.map +1 -0
  89. package/dist/cjs/utils/inspector.js +164 -0
  90. package/dist/cjs/utils/inspector.js.map +1 -0
  91. package/dist/cjs/utils/permission-initializer.d.ts +15 -0
  92. package/dist/cjs/utils/permission-initializer.d.ts.map +1 -0
  93. package/dist/cjs/utils/permission-initializer.js +173 -0
  94. package/dist/cjs/utils/permission-initializer.js.map +1 -0
  95. package/dist/cjs/websocket/RealtimeAdapter.d.ts +22 -0
  96. package/dist/cjs/websocket/RealtimeAdapter.d.ts.map +1 -0
  97. package/dist/cjs/websocket/RealtimeAdapter.js +3 -0
  98. package/dist/cjs/websocket/RealtimeAdapter.js.map +1 -0
  99. package/dist/cjs/websocket/SSEManager.d.ts +40 -0
  100. package/dist/cjs/websocket/SSEManager.d.ts.map +1 -0
  101. package/dist/cjs/websocket/SSEManager.js +268 -0
  102. package/dist/cjs/websocket/SSEManager.js.map +1 -0
  103. package/dist/cjs/websocket/WebSocketManager.d.ts +28 -0
  104. package/dist/cjs/websocket/WebSocketManager.d.ts.map +1 -0
  105. package/dist/cjs/websocket/WebSocketManager.js +156 -0
  106. package/dist/cjs/websocket/WebSocketManager.js.map +1 -0
  107. package/dist/cjs/websocket/index.d.ts +4 -0
  108. package/dist/cjs/websocket/index.d.ts.map +1 -0
  109. package/dist/cjs/websocket/index.js +20 -0
  110. package/dist/cjs/websocket/index.js.map +1 -0
  111. package/dist/esm/adapters/base.d.ts +20 -0
  112. package/dist/esm/adapters/base.d.ts.map +1 -0
  113. package/dist/esm/adapters/base.js +10 -0
  114. package/dist/esm/adapters/base.js.map +1 -0
  115. package/dist/esm/adapters/index.d.ts +6 -0
  116. package/dist/esm/adapters/index.d.ts.map +1 -0
  117. package/dist/esm/adapters/index.js +19 -0
  118. package/dist/esm/adapters/index.js.map +1 -0
  119. package/dist/esm/adapters/postgres.d.ts +13 -0
  120. package/dist/esm/adapters/postgres.d.ts.map +1 -0
  121. package/dist/esm/adapters/postgres.js +47 -0
  122. package/dist/esm/adapters/postgres.js.map +1 -0
  123. package/dist/esm/adapters/sqlite.d.ts +13 -0
  124. package/dist/esm/adapters/sqlite.d.ts.map +1 -0
  125. package/dist/esm/adapters/sqlite.js +43 -0
  126. package/dist/esm/adapters/sqlite.js.map +1 -0
  127. package/dist/esm/adapters/types.d.ts +8 -0
  128. package/dist/esm/adapters/types.d.ts.map +1 -0
  129. package/dist/esm/adapters/types.js +2 -0
  130. package/dist/esm/adapters/types.js.map +1 -0
  131. package/dist/esm/database.d.ts +73 -0
  132. package/dist/esm/database.d.ts.map +1 -0
  133. package/dist/esm/database.js +668 -0
  134. package/dist/esm/database.js.map +1 -0
  135. package/dist/esm/errors.d.ts +37 -0
  136. package/dist/esm/errors.d.ts.map +1 -0
  137. package/dist/esm/errors.js +55 -0
  138. package/dist/esm/errors.js.map +1 -0
  139. package/dist/esm/index.d.ts +16 -0
  140. package/dist/esm/index.d.ts.map +1 -0
  141. package/dist/esm/index.js +15 -0
  142. package/dist/esm/index.js.map +1 -0
  143. package/dist/esm/kysely-hooks.d.ts +45 -0
  144. package/dist/esm/kysely-hooks.d.ts.map +1 -0
  145. package/dist/esm/kysely-hooks.js +86 -0
  146. package/dist/esm/kysely-hooks.js.map +1 -0
  147. package/dist/esm/libsql/example.d.ts +2 -0
  148. package/dist/esm/libsql/example.d.ts.map +1 -0
  149. package/dist/esm/libsql/example.js +42 -0
  150. package/dist/esm/libsql/example.js.map +1 -0
  151. package/dist/esm/libsql/index.d.ts +36 -0
  152. package/dist/esm/libsql/index.d.ts.map +1 -0
  153. package/dist/esm/libsql/index.js +116 -0
  154. package/dist/esm/libsql/index.js.map +1 -0
  155. package/dist/esm/permissionService.d.ts +20 -0
  156. package/dist/esm/permissionService.d.ts.map +1 -0
  157. package/dist/esm/permissionService.js +103 -0
  158. package/dist/esm/permissionService.js.map +1 -0
  159. package/dist/esm/rlsFunctionRegistry.d.ts +43 -0
  160. package/dist/esm/rlsFunctionRegistry.d.ts.map +1 -0
  161. package/dist/esm/rlsFunctionRegistry.js +60 -0
  162. package/dist/esm/rlsFunctionRegistry.js.map +1 -0
  163. package/dist/esm/rlsManager.d.ts +23 -0
  164. package/dist/esm/rlsManager.d.ts.map +1 -0
  165. package/dist/esm/rlsManager.js +366 -0
  166. package/dist/esm/rlsManager.js.map +1 -0
  167. package/dist/esm/schema.d.ts +15 -0
  168. package/dist/esm/schema.d.ts.map +1 -0
  169. package/dist/esm/schema.js +113 -0
  170. package/dist/esm/schema.js.map +1 -0
  171. package/dist/esm/sdk/client.d.ts +324 -0
  172. package/dist/esm/sdk/client.d.ts.map +1 -0
  173. package/dist/esm/sdk/client.js +550 -0
  174. package/dist/esm/sdk/client.js.map +1 -0
  175. package/dist/esm/sdk/examples.d.ts +68 -0
  176. package/dist/esm/sdk/examples.d.ts.map +1 -0
  177. package/dist/esm/sdk/examples.js +229 -0
  178. package/dist/esm/sdk/examples.js.map +1 -0
  179. package/dist/esm/sdk/server.d.ts +115 -0
  180. package/dist/esm/sdk/server.d.ts.map +1 -0
  181. package/dist/esm/sdk/server.js +136 -0
  182. package/dist/esm/sdk/server.js.map +1 -0
  183. package/dist/esm/types.d.ts +217 -0
  184. package/dist/esm/types.d.ts.map +1 -0
  185. package/dist/esm/types.js +2 -0
  186. package/dist/esm/types.js.map +1 -0
  187. package/dist/esm/utils/column-utils.d.ts +8 -0
  188. package/dist/esm/utils/column-utils.d.ts.map +1 -0
  189. package/dist/esm/utils/column-utils.js +127 -0
  190. package/dist/esm/utils/column-utils.js.map +1 -0
  191. package/dist/esm/utils/db.d.ts +2 -0
  192. package/dist/esm/utils/db.d.ts.map +1 -0
  193. package/dist/esm/utils/db.js +3 -0
  194. package/dist/esm/utils/db.js.map +1 -0
  195. package/dist/esm/utils/inspector.d.ts +39 -0
  196. package/dist/esm/utils/inspector.d.ts.map +1 -0
  197. package/dist/esm/utils/inspector.js +160 -0
  198. package/dist/esm/utils/inspector.js.map +1 -0
  199. package/dist/esm/utils/permission-initializer.d.ts +15 -0
  200. package/dist/esm/utils/permission-initializer.d.ts.map +1 -0
  201. package/dist/esm/utils/permission-initializer.js +137 -0
  202. package/dist/esm/utils/permission-initializer.js.map +1 -0
  203. package/dist/esm/websocket/RealtimeAdapter.d.ts +22 -0
  204. package/dist/esm/websocket/RealtimeAdapter.d.ts.map +1 -0
  205. package/dist/esm/websocket/RealtimeAdapter.js +2 -0
  206. package/dist/esm/websocket/RealtimeAdapter.js.map +1 -0
  207. package/dist/esm/websocket/SSEManager.d.ts +40 -0
  208. package/dist/esm/websocket/SSEManager.d.ts.map +1 -0
  209. package/dist/esm/websocket/SSEManager.js +231 -0
  210. package/dist/esm/websocket/SSEManager.js.map +1 -0
  211. package/dist/esm/websocket/WebSocketManager.d.ts +28 -0
  212. package/dist/esm/websocket/WebSocketManager.d.ts.map +1 -0
  213. package/dist/esm/websocket/WebSocketManager.js +152 -0
  214. package/dist/esm/websocket/WebSocketManager.js.map +1 -0
  215. package/dist/esm/websocket/index.d.ts +4 -0
  216. package/dist/esm/websocket/index.d.ts.map +1 -0
  217. package/dist/esm/websocket/index.js +4 -0
  218. package/dist/esm/websocket/index.js.map +1 -0
  219. package/package.json +67 -0
@@ -0,0 +1,554 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DatabaseSDK = void 0;
4
+ class DatabaseSDK {
5
+ constructor(baseUrl) {
6
+ this.baseUrl = baseUrl.replace(/\/$/, ''); // Remove trailing slash if present
7
+ }
8
+ /**
9
+ * Fetches records from a specified table with filtering and pagination
10
+ * @param tableName The name of the table to query
11
+ * @param params Query parameters including filters and pagination
12
+ * @returns Promise containing the fetched records
13
+ */
14
+ async getRecords(tableName, params = {}, options = { execute: true }) {
15
+ // Build query parameters
16
+ const queryParams = new URLSearchParams();
17
+ // Convert complex query parameters to JSON string
18
+ const serializedParams = this.serializeQueryParams(params);
19
+ Object.entries(serializedParams).forEach(([key, value]) => {
20
+ queryParams.set(key, value);
21
+ });
22
+ // If execute is false, return only the parameters
23
+ if (!options.execute) {
24
+ return { params: params };
25
+ }
26
+ const url = `${this.baseUrl}/${tableName}${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
27
+ return this.fetchApi(url);
28
+ }
29
+ serializeQueryParams(params) {
30
+ const serialized = {};
31
+ // any param that is type of object should be serialized to JSON
32
+ Object.entries(params).forEach(([key, value]) => {
33
+ if (typeof value === 'object') {
34
+ serialized[key] = JSON.stringify(value);
35
+ }
36
+ else {
37
+ serialized[key] = value.toString();
38
+ }
39
+ });
40
+ return serialized;
41
+ }
42
+ /**
43
+ * Creates a new record in the specified table
44
+ */
45
+ async createRecord(tableName, data) {
46
+ this.validateData(data);
47
+ const url = `${this.baseUrl}/${tableName}`;
48
+ return this.fetchApi(url, {
49
+ method: 'POST',
50
+ headers: {
51
+ 'Content-Type': 'application/json',
52
+ },
53
+ body: JSON.stringify({ data }),
54
+ });
55
+ }
56
+ /**
57
+ * Updates a record by ID in the specified table
58
+ */
59
+ async updateRecord(tableName, id, data) {
60
+ this.validateData(data);
61
+ const url = `${this.baseUrl}/${tableName}/${id}`;
62
+ return this.fetchApi(url, {
63
+ method: 'PUT',
64
+ headers: {
65
+ 'Content-Type': 'application/json',
66
+ },
67
+ body: JSON.stringify({ data }),
68
+ });
69
+ }
70
+ /**
71
+ * Deletes a record by ID from the specified table
72
+ */
73
+ async deleteRecord(tableName, id) {
74
+ const url = `${this.baseUrl}/${tableName}/${id}`;
75
+ return this.fetchApi(url, {
76
+ method: 'DELETE',
77
+ });
78
+ }
79
+ /**
80
+ * Helper method to create a query builder for fluent API usage
81
+ * @param tableName The name of the table to query
82
+ */
83
+ table(tableName) {
84
+ return new QueryBuilder(this, tableName);
85
+ }
86
+ /**
87
+ * Validates data object
88
+ */
89
+ validateData(data) {
90
+ if (typeof data !== 'object' || Object.keys(data).length === 0) {
91
+ throw new Error('Invalid data: must be a non-empty object');
92
+ }
93
+ }
94
+ /**
95
+ * Generic API fetch method with error handling
96
+ */
97
+ async fetchApi(url, options = {}) {
98
+ try {
99
+ // console.log(url, options);
100
+ // const cookies = authClient.getCookie();
101
+ // const response = await fetch(url, {
102
+ // ...options,
103
+ // Cookie: cookies,
104
+ // });
105
+ const response = await fetch(url, options);
106
+ if (!response.ok) {
107
+ const errorData = await response.json();
108
+ throw new Error(errorData.error || `HTTP error! status: ${response.status}`);
109
+ }
110
+ return (await response.json());
111
+ }
112
+ catch (error) {
113
+ throw error instanceof Error
114
+ ? error
115
+ : new Error('An unknown error occurred');
116
+ }
117
+ }
118
+ }
119
+ exports.DatabaseSDK = DatabaseSDK;
120
+ /**
121
+ * Query builder class for more fluent API usage
122
+ */
123
+ class QueryBuilder {
124
+ constructor(sdk, tableName) {
125
+ this.sdk = sdk;
126
+ this.tableName = tableName;
127
+ this.params = {};
128
+ this.ctes = new Map();
129
+ }
130
+ /**
131
+ * Add a recursive CTE
132
+ */
133
+ withRecursive(name, initialQuery, recursiveQuery, options = {}) {
134
+ if (!this.params.recursiveCtes) {
135
+ this.params.recursiveCtes = [];
136
+ }
137
+ this.params.recursiveCtes.push({
138
+ name,
139
+ isRecursive: true,
140
+ initialQuery,
141
+ recursiveQuery,
142
+ unionAll: options.unionAll,
143
+ columns: options.columns,
144
+ query: initialQuery, // for compatibility with non-recursive CTEs
145
+ });
146
+ return this;
147
+ }
148
+ /**
149
+ * Advanced window function
150
+ */
151
+ windowAdvanced(type, alias, config) {
152
+ if (!this.params.advancedWindows) {
153
+ this.params.advancedWindows = [];
154
+ }
155
+ this.params.advancedWindows.push({
156
+ type,
157
+ alias,
158
+ ...config,
159
+ });
160
+ return this;
161
+ }
162
+ /**
163
+ * Add a window function
164
+ */
165
+ window(type, alias, config = {}) {
166
+ if (!this.params.windowFunctions) {
167
+ this.params.windowFunctions = [];
168
+ }
169
+ this.params.windowFunctions.push({
170
+ type,
171
+ alias,
172
+ field: config.field,
173
+ partitionBy: config.partitionBy,
174
+ orderBy: config.orderBy,
175
+ frameClause: config.frameClause,
176
+ });
177
+ return this;
178
+ }
179
+ /**
180
+ * Add common window functions
181
+ */
182
+ rowNumber(alias, partitionBy, orderBy) {
183
+ return this.window('row_number', alias, { partitionBy, orderBy });
184
+ }
185
+ rank(alias, partitionBy, orderBy) {
186
+ return this.window('rank', alias, { partitionBy, orderBy });
187
+ }
188
+ lag(field, alias, partitionBy, orderBy) {
189
+ return this.window('lag', alias, { field, partitionBy, orderBy });
190
+ }
191
+ lead(field, alias, partitionBy, orderBy) {
192
+ return this.window('lead', alias, { field, partitionBy, orderBy });
193
+ }
194
+ /**
195
+ * Add a CTE (WITH clause)
196
+ */
197
+ with(name, queryOrCallback, columns) {
198
+ let query;
199
+ if (typeof queryOrCallback === 'function') {
200
+ query = new QueryBuilder(this.sdk, this.tableName);
201
+ queryOrCallback(query);
202
+ }
203
+ else {
204
+ query = queryOrCallback;
205
+ }
206
+ this.ctes.set(name, {
207
+ name,
208
+ query,
209
+ columns: columns || [],
210
+ });
211
+ if (!this.params.ctes) {
212
+ this.params.ctes = [];
213
+ }
214
+ this.params.ctes.push({ name, query, columns: columns || [] });
215
+ return this;
216
+ }
217
+ /**
218
+ * Transform the result set
219
+ */
220
+ transform(config) {
221
+ this.params.transforms = {
222
+ ...this.params.transforms,
223
+ ...config,
224
+ };
225
+ return this;
226
+ }
227
+ /**
228
+ * Pivot the result set
229
+ */
230
+ pivot(column, values, aggregate) {
231
+ return this.transform({
232
+ pivot: {
233
+ column,
234
+ values,
235
+ aggregate,
236
+ },
237
+ });
238
+ }
239
+ /**
240
+ * Compute new fields from existing ones
241
+ */
242
+ compute(computations) {
243
+ return this.transform({
244
+ compute: computations,
245
+ });
246
+ }
247
+ where(fieldOrConditions, operatorOrValue, value) {
248
+ if (typeof fieldOrConditions === 'object') {
249
+ this.params.filter = {
250
+ ...this.params.filter,
251
+ ...fieldOrConditions,
252
+ };
253
+ }
254
+ else {
255
+ if (arguments.length === 2) {
256
+ this.params.filter = {
257
+ ...this.params.filter,
258
+ [fieldOrConditions]: operatorOrValue,
259
+ };
260
+ }
261
+ else {
262
+ if (!this.params.whereRaw) {
263
+ this.params.whereRaw = [];
264
+ }
265
+ this.params.whereRaw.push({
266
+ field: fieldOrConditions,
267
+ operator: operatorOrValue,
268
+ value,
269
+ });
270
+ }
271
+ }
272
+ return this;
273
+ }
274
+ // Where between
275
+ whereBetween(field, range) {
276
+ if (!this.params.whereBetween) {
277
+ this.params.whereBetween = [];
278
+ }
279
+ this.params.whereBetween.push({
280
+ field,
281
+ operator: 'between',
282
+ value: range,
283
+ });
284
+ return this;
285
+ }
286
+ // Where in
287
+ whereIn(field, values) {
288
+ if (!this.params.whereIn) {
289
+ this.params.whereIn = {};
290
+ }
291
+ this.params.whereIn[field] = values;
292
+ return this;
293
+ }
294
+ // Where not in
295
+ whereNotIn(field, values) {
296
+ if (!this.params.whereNotIn) {
297
+ this.params.whereNotIn = {};
298
+ }
299
+ this.params.whereNotIn[field] = values;
300
+ return this;
301
+ }
302
+ // Where null
303
+ whereNull(field) {
304
+ if (!this.params.whereNull) {
305
+ this.params.whereNull = [];
306
+ }
307
+ this.params.whereNull.push(field);
308
+ return this;
309
+ }
310
+ // Where not null
311
+ whereNotNull(field) {
312
+ if (!this.params.whereNotNull) {
313
+ this.params.whereNotNull = [];
314
+ }
315
+ this.params.whereNotNull.push(field);
316
+ return this;
317
+ }
318
+ orderBy(fieldOrOptions, direction, nulls) {
319
+ if (!this.params.orderBy) {
320
+ this.params.orderBy = [];
321
+ }
322
+ if (typeof fieldOrOptions === 'string') {
323
+ direction = direction || 'asc';
324
+ this.params.orderBy.push({
325
+ field: fieldOrOptions,
326
+ direction,
327
+ nulls,
328
+ });
329
+ }
330
+ else {
331
+ this.params.orderBy.push(fieldOrOptions);
332
+ }
333
+ return this;
334
+ }
335
+ limit(limit) {
336
+ this.params.limit = limit;
337
+ return this;
338
+ }
339
+ offset(offset) {
340
+ this.params.offset = offset;
341
+ return this;
342
+ }
343
+ /**
344
+ * Start an OR where group
345
+ */
346
+ orWhere(callback) {
347
+ return this.whereGroup('OR', callback);
348
+ }
349
+ /**
350
+ * Start an AND where group
351
+ */
352
+ andWhere(callback) {
353
+ return this.whereGroup('AND', callback);
354
+ }
355
+ /**
356
+ * Create a where group with the specified operator
357
+ */
358
+ whereGroup(operator, callback) {
359
+ const group = {
360
+ type: operator,
361
+ clauses: [],
362
+ };
363
+ const previousGroup = this.currentGroup;
364
+ this.currentGroup = group;
365
+ callback(this);
366
+ this.currentGroup = previousGroup;
367
+ if (!this.params.whereGroups) {
368
+ this.params.whereGroups = [];
369
+ }
370
+ this.params.whereGroups.push(group);
371
+ return this;
372
+ }
373
+ /**
374
+ * Add a where exists clause
375
+ */
376
+ //TODO: Add support for bindings to avoid SQL injection
377
+ //TODO: Add support for subqueries
378
+ // whereExists(rawSql: string, bindings?: any[]): this {
379
+ // if (!this.params.whereExists) {
380
+ // this.params.whereExists = [];
381
+ // }
382
+ // this.params.whereExists.push({
383
+ // sql: rawSql,
384
+ // bindings,
385
+ // });
386
+ // return this;
387
+ // }
388
+ // rawExpression method removed for security reasons
389
+ /**
390
+ * Group by clause
391
+ */
392
+ groupBy(...fields) {
393
+ if (!this.params.groupBy) {
394
+ this.params.groupBy = [];
395
+ }
396
+ this.params.groupBy.push(...fields);
397
+ return this;
398
+ }
399
+ /**
400
+ * Having clause for grouped queries
401
+ */
402
+ having(field, operator, value) {
403
+ if (!this.params.having) {
404
+ this.params.having = [];
405
+ }
406
+ this.params.having.push({ field, operator, value });
407
+ return this;
408
+ }
409
+ /**
410
+ * Add an aggregate function
411
+ */
412
+ aggregate(type, field, alias) {
413
+ if (!this.params.aggregates) {
414
+ this.params.aggregates = [];
415
+ }
416
+ this.params.aggregates.push({ type, field, alias });
417
+ return this;
418
+ }
419
+ /**
420
+ * Shorthand for count aggregate
421
+ */
422
+ count(field = '*', alias) {
423
+ return this.aggregate('count', field, alias);
424
+ }
425
+ /**
426
+ * Shorthand for sum aggregate
427
+ */
428
+ sum(field, alias) {
429
+ return this.aggregate('sum', field, alias);
430
+ }
431
+ /**
432
+ * Shorthand for average aggregate
433
+ */
434
+ avg(field, alias) {
435
+ return this.aggregate('avg', field, alias);
436
+ }
437
+ /**
438
+ * Shorthand for minimum aggregate
439
+ */
440
+ min(field, alias) {
441
+ return this.aggregate('min', field, alias);
442
+ }
443
+ /**
444
+ * Shorthand for maximum aggregate
445
+ */
446
+ max(field, alias) {
447
+ return this.aggregate('max', field, alias);
448
+ }
449
+ // Get query parameters without executing
450
+ async toParams() {
451
+ const response = await this.sdk.getRecords(this.tableName, this.params, {
452
+ execute: false,
453
+ });
454
+ return response.params;
455
+ }
456
+ /**
457
+ * Execute with transformations
458
+ */
459
+ async execute() {
460
+ const response = await this.sdk.getRecords(this.tableName, this.params);
461
+ if (this.params.transforms && response.records) {
462
+ return this.applyTransformations(response);
463
+ }
464
+ return response;
465
+ }
466
+ async create(data) {
467
+ return this.sdk.createRecord(this.tableName, data);
468
+ }
469
+ async update(id, data) {
470
+ return this.sdk.updateRecord(this.tableName, id, data);
471
+ }
472
+ async delete(id) {
473
+ return this.sdk.deleteRecord(this.tableName, id);
474
+ }
475
+ applyTransformations(response) {
476
+ let transformed = [...(response.records || [])];
477
+ const transforms = this.params.transforms;
478
+ // Apply computations
479
+ if (transforms.compute) {
480
+ transformed = transformed.map((row) => ({
481
+ ...row,
482
+ ...Object.entries(transforms.compute).reduce((acc, [key, fn]) => ({
483
+ ...acc,
484
+ [key]: fn(row),
485
+ }), {}),
486
+ }));
487
+ }
488
+ // Apply grouping
489
+ if (transforms.groupBy) {
490
+ transformed = this.groupResults(transformed, transforms.groupBy);
491
+ }
492
+ // Apply pivoting
493
+ if (transforms.pivot) {
494
+ transformed = this.pivotResults(transformed, transforms.pivot);
495
+ }
496
+ return {
497
+ ...response,
498
+ records: transformed,
499
+ };
500
+ }
501
+ groupResults(records, groupBy) {
502
+ // Implementation of grouping logic
503
+ return records;
504
+ }
505
+ pivotResults(records, pivot) {
506
+ // Implementation of pivot logic
507
+ return records;
508
+ }
509
+ /**
510
+ * Select specific fields from the table
511
+ * @param fields Fields to select
512
+ * @example
513
+ * db.table("users")
514
+ * .select("id", "name", "email")
515
+ * .execute();
516
+ */
517
+ select(...fields) {
518
+ if (!this.params.select) {
519
+ this.params.select = [];
520
+ }
521
+ this.params.select.push(...fields);
522
+ return this;
523
+ }
524
+ }
525
+ // Example usage functions
526
+ // function demonstrateComplexQueries() {
527
+ // const db = new DatabaseSDK("https://api.example.com");
528
+ // // Complex grouped conditions
529
+ // db.table<User>("users")
530
+ // .where("status", "active")
531
+ // .andWhere((query) => {
532
+ // query.where("role", "admin").orWhere((subQuery) => {
533
+ // subQuery.where("role", "manager").where("department", "IT");
534
+ // });
535
+ // })
536
+ // .execute();
537
+ // // Using exists with raw SQL
538
+ // db.table<Order>("orders")
539
+ // .whereExists(
540
+ // "SELECT 1 FROM order_items WHERE order_items.order_id = orders.id AND quantity > ?",
541
+ // [10]
542
+ // )
543
+ // .execute();
544
+ // // Aggregations with grouping
545
+ // db.table<Order>("orders")
546
+ // .groupBy("customer_id", "status")
547
+ // .having("total_amount", ">", 1000)
548
+ // .sum("amount", "total_amount")
549
+ // .count("id", "order_count")
550
+ // .avg("amount", "average_amount")
551
+ // .execute();
552
+ // // Raw expressions removed for security reasons
553
+ // }
554
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/sdk/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ interface User {
2
+ id: number;
3
+ name: string;
4
+ email: string;
5
+ role: string;
6
+ department: string;
7
+ salary: number;
8
+ hireDate: Date;
9
+ status: string;
10
+ experience: number;
11
+ lastName: string;
12
+ }
13
+ interface Order {
14
+ id: number;
15
+ userId: number;
16
+ total: number;
17
+ status: string;
18
+ createdAt: Date;
19
+ revenue: number;
20
+ }
21
+ interface Product {
22
+ id: number;
23
+ name: string;
24
+ price: number;
25
+ category: string;
26
+ stock: number;
27
+ }
28
+ declare function basicQueries(): Promise<{
29
+ activeUsers: import("./client").ApiResponse<User>;
30
+ seniorManagers: import("./client").ApiResponse<User>;
31
+ sortedUsers: import("./client").ApiResponse<User>;
32
+ pagedResults: import("./client").ApiResponse<User>;
33
+ userEmails: import("./client").ApiResponse<User>;
34
+ rankedSalaries: import("./client").ApiResponse<User>;
35
+ departmentStats: import("./client").ApiResponse<User>;
36
+ }>;
37
+ declare function aggregationsAndGrouping(): Promise<{
38
+ orderStats: import("./client").ApiResponse<Order>;
39
+ highValueOrderGroups: import("./client").ApiResponse<Order>;
40
+ detailedStats: import("./client").ApiResponse<Order>;
41
+ }>;
42
+ declare function windowFunctions(): Promise<{
43
+ advancedAnalysis: import("./client").ApiResponse<User>;
44
+ rankedUsers: import("./client").ApiResponse<User>;
45
+ analyzedSalaries: import("./client").ApiResponse<User>;
46
+ }>;
47
+ declare function advancedFiltering(): Promise<{
48
+ filteredUsers: import("./client").ApiResponse<User>;
49
+ salaryRange: import("./client").ApiResponse<User>;
50
+ specificDepts: import("./client").ApiResponse<User>;
51
+ }>;
52
+ declare function cteExamples(): Promise<{
53
+ result: import("./client").ApiResponse<User>;
54
+ recursiveResult: import("./client").ApiResponse<Product>;
55
+ }>;
56
+ declare function transformations(): Promise<any[]>;
57
+ declare function realWorldExamples(): Promise<any[]>;
58
+ export declare const examples: {
59
+ basicQueries: typeof basicQueries;
60
+ advancedFiltering: typeof advancedFiltering;
61
+ aggregationsAndGrouping: typeof aggregationsAndGrouping;
62
+ windowFunctions: typeof windowFunctions;
63
+ cteExamples: typeof cteExamples;
64
+ transformations: typeof transformations;
65
+ realWorldExamples: typeof realWorldExamples;
66
+ };
67
+ export {};
68
+ //# sourceMappingURL=examples.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"examples.d.ts","sourceRoot":"","sources":["../../../src/sdk/examples.ts"],"names":[],"mappings":"AAEA,UAAU,IAAI;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,KAAK;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAmCD,iBAAe,YAAY;;;;;;;;GA8C1B;AAGD,iBAAe,uBAAuB;;;;GAgCrC;AAGD,iBAAe,eAAe;;;;GA4C7B;AAGD,iBAAe,iBAAiB;;;;GAmC/B;AAID,iBAAe,WAAW;;;GA0BzB;AAED,iBAAe,eAAe,mBAG7B;AAED,iBAAe,iBAAiB,mBAG/B;AAaD,eAAO,MAAM,QAAQ;;;;;;;;CAQpB,CAAC"}