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