@zudojs/database 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/database/database.core.js +133 -0
  2. package/dist/database/database.core.js.map +1 -0
  3. package/dist/databaseType/databaseType.type.d.ts.map +1 -0
  4. package/dist/databaseType/databaseType.type.js +45 -0
  5. package/dist/databaseType/databaseType.type.js.map +1 -0
  6. package/dist/migration/migration.helpers.js +99 -0
  7. package/dist/migration/migration.helpers.js.map +1 -0
  8. package/dist/migration/migration.types.js +2 -0
  9. package/dist/migration/migration.types.js.map +1 -0
  10. package/dist/pagination/pagination.core.d.ts.map +1 -0
  11. package/dist/pagination/pagination.core.js +210 -0
  12. package/dist/pagination/pagination.core.js.map +1 -0
  13. package/dist/queryBuilder/queryBuilder.core.d.ts.map +1 -0
  14. package/dist/queryBuilder/queryBuilder.core.js +342 -0
  15. package/dist/queryBuilder/queryBuilder.core.js.map +1 -0
  16. package/dist/queryBuilder/queryBuilder.factory.d.ts.map +1 -0
  17. package/dist/queryBuilder/queryBuilder.factory.js +33 -0
  18. package/dist/queryBuilder/queryBuilder.factory.js.map +1 -0
  19. package/dist/queryBuilder/queryBuilder.filter.d.ts.map +1 -0
  20. package/dist/queryBuilder/queryBuilder.filter.js +336 -0
  21. package/dist/queryBuilder/queryBuilder.filter.js.map +1 -0
  22. package/dist/queryBuilder/queryBuilder.type.d.ts.map +1 -0
  23. package/dist/queryBuilder/queryBuilder.type.js +2 -0
  24. package/dist/queryBuilder/queryBuilder.type.js.map +1 -0
  25. package/dist/relations/relations.definition.d.ts.map +1 -0
  26. package/dist/relations/relations.definition.js +195 -0
  27. package/dist/relations/relations.definition.js.map +1 -0
  28. package/package.json +9 -9
  29. package/LICENSE +0 -21
@@ -0,0 +1,336 @@
1
+ /**
2
+ * Creates an equality filter.
3
+ */
4
+ export function equals(field, value) {
5
+ return condition(field, "equals", value);
6
+ }
7
+ /**
8
+ * Creates a not-equal filter.
9
+ */
10
+ export function notEquals(field, value) {
11
+ return condition(field, "not", value);
12
+ }
13
+ /**
14
+ * Creates an IN filter.
15
+ */
16
+ export function inList(field, values) {
17
+ return condition(field, "in", [...values]);
18
+ }
19
+ /**
20
+ * Creates a NOT IN filter.
21
+ */
22
+ export function notInList(field, values) {
23
+ return condition(field, "notIn", [...values]);
24
+ }
25
+ /**
26
+ * Creates a less-than filter.
27
+ */
28
+ export function lessThan(field, value) {
29
+ return condition(field, "lt", value);
30
+ }
31
+ /**
32
+ * Creates a less-than-or-equal filter.
33
+ */
34
+ export function lessThanOrEqual(field, value) {
35
+ return condition(field, "lte", value);
36
+ }
37
+ /**
38
+ * Creates a greater-than filter.
39
+ */
40
+ export function greaterThan(field, value) {
41
+ return condition(field, "gt", value);
42
+ }
43
+ /**
44
+ * Creates a greater-than-or-equal filter.
45
+ */
46
+ export function greaterThanOrEqual(field, value) {
47
+ return condition(field, "gte", value);
48
+ }
49
+ /**
50
+ * Creates a contains filter.
51
+ */
52
+ export function contains(field, value) {
53
+ return condition(field, "contains", value);
54
+ }
55
+ /**
56
+ * Creates a starts-with filter.
57
+ */
58
+ export function startsWith(field, value) {
59
+ return condition(field, "startsWith", value);
60
+ }
61
+ /**
62
+ * Creates an ends-with filter.
63
+ */
64
+ export function endsWith(field, value) {
65
+ return condition(field, "endsWith", value);
66
+ }
67
+ /**
68
+ * Creates an IS NULL filter.
69
+ */
70
+ export function isNull(field) {
71
+ return condition(field, "isNull");
72
+ }
73
+ /**
74
+ * Creates an IS NOT NULL filter.
75
+ */
76
+ export function isNotNull(field) {
77
+ return condition(field, "isNotNull");
78
+ }
79
+ /**
80
+ * Combines filters using AND.
81
+ */
82
+ export function and(...filters) {
83
+ return {
84
+ and: filters.map(cloneFilter),
85
+ };
86
+ }
87
+ /**
88
+ * Combines filters using OR.
89
+ */
90
+ export function or(...filters) {
91
+ return {
92
+ or: filters.map(cloneFilter),
93
+ };
94
+ }
95
+ /**
96
+ * Negates a filter.
97
+ */
98
+ export function not(filter) {
99
+ return {
100
+ not: cloneFilter(filter),
101
+ };
102
+ }
103
+ /**
104
+ * Creates a generic filter condition.
105
+ */
106
+ export function condition(field, operator, value) {
107
+ validateField(field);
108
+ const result = {
109
+ field,
110
+ operator,
111
+ };
112
+ if (value !== undefined) {
113
+ result.value = cloneValue(value);
114
+ }
115
+ return {
116
+ conditions: [result],
117
+ };
118
+ }
119
+ /**
120
+ * Combines multiple filters with AND only when necessary.
121
+ */
122
+ export function allOf(filters) {
123
+ const normalized = filters.filter(Boolean).map(cloneFilter);
124
+ if (normalized.length === 0) {
125
+ return {
126
+ conditions: [],
127
+ };
128
+ }
129
+ if (normalized.length === 1) {
130
+ return normalized[0];
131
+ }
132
+ return {
133
+ and: normalized,
134
+ };
135
+ }
136
+ /**
137
+ * Combines multiple filters with OR only when necessary.
138
+ */
139
+ export function anyOf(filters) {
140
+ const normalized = filters.filter(Boolean).map(cloneFilter);
141
+ if (normalized.length === 0) {
142
+ return {
143
+ conditions: [],
144
+ };
145
+ }
146
+ if (normalized.length === 1) {
147
+ return normalized[0];
148
+ }
149
+ return {
150
+ or: normalized,
151
+ };
152
+ }
153
+ /**
154
+ * Creates a filter from a plain object.
155
+ *
156
+ * Every property becomes an equality condition.
157
+ */
158
+ export function fromObject(values) {
159
+ const conditions = Object.entries(values).map(([field, value]) => ({
160
+ field,
161
+ operator: "equals",
162
+ value: cloneValue(value),
163
+ }));
164
+ return {
165
+ conditions,
166
+ };
167
+ }
168
+ /**
169
+ * Creates filters for a date range.
170
+ */
171
+ export function dateRange(field, options) {
172
+ validateField(field);
173
+ const conditions = [];
174
+ if (options.from) {
175
+ validateDate(options.from, "from");
176
+ conditions.push({
177
+ field,
178
+ operator: "gte",
179
+ value: new Date(options.from.getTime()),
180
+ });
181
+ }
182
+ if (options.to) {
183
+ validateDate(options.to, "to");
184
+ conditions.push({
185
+ field,
186
+ operator: "lte",
187
+ value: new Date(options.to.getTime()),
188
+ });
189
+ }
190
+ if (conditions.length === 0) {
191
+ return {
192
+ conditions: [],
193
+ };
194
+ }
195
+ if (conditions.length === 1) {
196
+ return {
197
+ conditions,
198
+ };
199
+ }
200
+ return {
201
+ and: [
202
+ {
203
+ conditions,
204
+ },
205
+ ],
206
+ };
207
+ }
208
+ /**
209
+ * Creates a filter for a value being one of several options.
210
+ */
211
+ export function oneOf(field, values) {
212
+ return inList(field, values);
213
+ }
214
+ /**
215
+ * Creates a filter for a value not being one of several options.
216
+ */
217
+ export function noneOf(field, values) {
218
+ return notInList(field, values);
219
+ }
220
+ /**
221
+ * Creates an optional equality filter.
222
+ *
223
+ * Returns an empty filter when the value is undefined.
224
+ */
225
+ export function optionalEquals(field, value) {
226
+ if (value === undefined) {
227
+ return {
228
+ conditions: [],
229
+ };
230
+ }
231
+ return equals(field, value);
232
+ }
233
+ /**
234
+ * Creates an optional text search filter.
235
+ */
236
+ export function optionalContains(field, value) {
237
+ if (value === undefined || value === null || value.trim().length === 0) {
238
+ return {
239
+ conditions: [],
240
+ };
241
+ }
242
+ return contains(field, value.trim());
243
+ }
244
+ /**
245
+ * Checks whether a filter contains any actual constraints.
246
+ */
247
+ export function hasConditions(filter) {
248
+ if (!filter) {
249
+ return false;
250
+ }
251
+ if (filter.conditions && filter.conditions.length > 0) {
252
+ return true;
253
+ }
254
+ if (filter.and?.some(hasConditions)) {
255
+ return true;
256
+ }
257
+ if (filter.or?.some(hasConditions)) {
258
+ return true;
259
+ }
260
+ return filter.not ? hasConditions(filter.not) : false;
261
+ }
262
+ /**
263
+ * Flattens an AND-only filter into individual conditions.
264
+ */
265
+ export function flattenAnd(filter) {
266
+ const result = [];
267
+ if (filter.conditions) {
268
+ result.push(...filter.conditions.map(cloneCondition));
269
+ }
270
+ for (const child of filter.and ?? []) {
271
+ result.push(...flattenAnd(child));
272
+ }
273
+ return result;
274
+ }
275
+ /**
276
+ * Creates a new filter without mutating the source.
277
+ */
278
+ export function cloneFilter(filter) {
279
+ return {
280
+ conditions: filter.conditions
281
+ ? filter.conditions.map(cloneCondition)
282
+ : undefined,
283
+ and: filter.and ? filter.and.map(cloneFilter) : undefined,
284
+ or: filter.or ? filter.or.map(cloneFilter) : undefined,
285
+ not: filter.not ? cloneFilter(filter.not) : undefined,
286
+ };
287
+ }
288
+ /**
289
+ * Clones a single condition.
290
+ */
291
+ function cloneCondition(condition) {
292
+ return {
293
+ ...condition,
294
+ ...(condition.value !== undefined
295
+ ? {
296
+ value: cloneValue(condition.value),
297
+ }
298
+ : {}),
299
+ };
300
+ }
301
+ /**
302
+ * Clones supported filter values.
303
+ */
304
+ function cloneValue(value) {
305
+ if (value instanceof Date) {
306
+ return new Date(value.getTime());
307
+ }
308
+ if (Array.isArray(value)) {
309
+ return value.map(cloneValue);
310
+ }
311
+ if (value && typeof value === "object") {
312
+ const result = {};
313
+ for (const [key, entry] of Object.entries(value)) {
314
+ result[key] = cloneValue(entry);
315
+ }
316
+ return result;
317
+ }
318
+ return value;
319
+ }
320
+ /**
321
+ * Validates a filter field.
322
+ */
323
+ function validateField(field) {
324
+ if (typeof field !== "string" || field.trim().length === 0) {
325
+ throw new TypeError("A filter field is required.");
326
+ }
327
+ }
328
+ /**
329
+ * Validates a date value.
330
+ */
331
+ function validateDate(value, name) {
332
+ if (!(value instanceof Date) || Number.isNaN(value.getTime())) {
333
+ throw new TypeError(`Invalid ${name} date.`);
334
+ }
335
+ }
336
+ //# sourceMappingURL=queryBuilder.filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryBuilder.filter.js","sourceRoot":"","sources":["../../src/queryBuilder/queryBuilder.filter.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,KAAa,EAAE,KAAc;IAClD,OAAO,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,KAAc;IACrD,OAAO,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,KAAa,EAAE,MAA0B;IAC9D,OAAO,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,KAAa,EACb,MAA0B;IAE1B,OAAO,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,KAAc;IACpD,OAAO,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,KAAc;IAC3D,OAAO,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,KAAc;IACvD,OAAO,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa,EAAE,KAAc;IAC9D,OAAO,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,KAAa;IACnD,OAAO,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,KAAa;IACrD,OAAO,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,KAAa;IACnD,OAAO,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,OAAO,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,GAAG,OAA+B;IACpD,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;KAC9B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,EAAE,CAAC,GAAG,OAA+B;IACnD,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;KAC7B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,MAAmB;IACrC,OAAO;QACL,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC;KACzB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,KAAa,EACb,QAAuB,EACvB,KAAe;IAEf,aAAa,CAAC,KAAK,CAAC,CAAC;IAErB,MAAM,MAAM,GAAmB;QAC7B,KAAK;QACL,QAAQ;KACT,CAAC;IAEF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAEtB,MAGD,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO;QACL,UAAU,EAAE,CAAC,MAAM,CAAC;KACrB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,OAA+B;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE5D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,UAAU,EAAE,EAAE;SACf,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,UAAU,CAAC,CAAC,CAAE,CAAC;IACxB,CAAC;IAED,OAAO;QACL,GAAG,EAAE,UAAU;KAChB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,OAA+B;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE5D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,UAAU,EAAE,EAAE;SACf,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,UAAU,CAAC,CAAC,CAAE,CAAC;IACxB,CAAC;IAED,OAAO;QACL,EAAE,EAAE,UAAU;KACf,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,MAAS;IAET,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAC3C,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CACjB,CAAC;QACC,KAAK;QACL,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC;KACzB,CAA0B,CAC9B,CAAC;IAEF,OAAO;QACL,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,KAAa,EACb,OAGC;IAED,aAAa,CAAC,KAAK,CAAC,CAAC;IAErB,MAAM,UAAU,GAAqB,EAAE,CAAC;IAExC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAEnC,UAAU,CAAC,IAAI,CAAC;YACd,KAAK;YACL,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QACf,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAE/B,UAAU,CAAC,IAAI,CAAC;YACd,KAAK;YACL,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;SACtC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,UAAU,EAAE,EAAE;SACf,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,UAAU;SACX,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,EAAE;YACH;gBACE,UAAU;aACX;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAI,KAAa,EAAE,MAAoB;IAC1D,OAAO,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAI,KAAa,EAAE,MAAoB;IAC3D,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,KAAc;IAC1D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO;YACL,UAAU,EAAE,EAAE;SACf,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAa,EACb,KAAqB;IAErB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvE,OAAO;YACL,UAAU,EAAE,EAAE;SACf,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAoB;IAChD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,MAAM,MAAM,GAAqB,EAAE,CAAC;IAEpC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAmB;IAC7C,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,UAAU;YAC3B,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC;YACvC,CAAC,CAAC,SAAS;QAEb,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;QAEzD,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;QAEtD,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;KACtD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,SAAyB;IAC/C,OAAO;QACL,GAAG,SAAS;QACZ,GAAG,CAAC,SAAS,CAAC,KAAK,KAAK,SAAS;YAC/B,CAAC,CAAC;gBACE,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC;aACnC;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAC1B,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,MAAM,GAA4B,EAAE,CAAC;QAE3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CACvC,KAAgC,CACjC,EAAE,CAAC;YACF,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,KAAa;IAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,KAAW,EAAE,IAAY;IAC7C,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,SAAS,CAAC,WAAW,IAAI,QAAQ,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryBuilder.type.d.ts","sourceRoot":"","sources":["../../src/queryBuilder/queryBuilder.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAGf,SAAS,EACV,MAAM,sCAAsC,CAAC;AAE9C,YAAY,EACV,eAAe,EACf,YAAY,EACZ,aAAa,EACb,SAAS,GACV,MAAM,sCAAsC,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,KAAK,GACL,IAAI,GACJ,OAAO,GACP,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,UAAU,GACV,YAAY,GACZ,UAAU,GACV,QAAQ,GACR,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAChD,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IACtC,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IACrC,QAAQ,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=queryBuilder.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryBuilder.type.js","sourceRoot":"","sources":["../../src/queryBuilder/queryBuilder.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relations.definition.d.ts","sourceRoot":"","sources":["../../src/relations/relations.definition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Creates a one-to-one relation definition.
3
+ */
4
+ export function oneToOne(definition) {
5
+ return Object.freeze({
6
+ ...definition,
7
+ type: "one-to-one",
8
+ });
9
+ }
10
+ /**
11
+ * Creates a one-to-many relation definition.
12
+ */
13
+ export function oneToMany(definition) {
14
+ return Object.freeze({
15
+ ...definition,
16
+ type: "one-to-many",
17
+ });
18
+ }
19
+ /**
20
+ * Creates a many-to-one relation definition.
21
+ */
22
+ export function manyToOne(definition) {
23
+ return Object.freeze({
24
+ ...definition,
25
+ type: "many-to-one",
26
+ });
27
+ }
28
+ /**
29
+ * Creates a many-to-many relation definition.
30
+ */
31
+ export function manyToMany(definition) {
32
+ return Object.freeze({
33
+ ...definition,
34
+ type: "many-to-many",
35
+ });
36
+ }
37
+ /**
38
+ * Creates a relation include definition.
39
+ */
40
+ export function includeRelation(relation, options = {}) {
41
+ validateRelationName(relation);
42
+ return Object.freeze({
43
+ relation,
44
+ select: options.select
45
+ ? Object.freeze([...new Set(options.select)])
46
+ : undefined,
47
+ include: options.include ? Object.freeze([...options.include]) : undefined,
48
+ });
49
+ }
50
+ /**
51
+ * Creates a nested relation include.
52
+ */
53
+ export function includeRelations(...includes) {
54
+ return Object.freeze([...includes]);
55
+ }
56
+ /**
57
+ * Relation registry used by database infrastructure.
58
+ */
59
+ export class RelationRegistry {
60
+ relations = new Map();
61
+ /**
62
+ * Registers a relation.
63
+ */
64
+ register(relation) {
65
+ validateRelation(relation);
66
+ if (this.relations.has(relation.name)) {
67
+ throw new Error(`Relation "${relation.name}" is already registered.`);
68
+ }
69
+ this.relations.set(relation.name, Object.freeze({
70
+ ...relation,
71
+ }));
72
+ return this;
73
+ }
74
+ /**
75
+ * Registers multiple relations.
76
+ */
77
+ registerMany(relations) {
78
+ for (const relation of relations) {
79
+ this.register(relation);
80
+ }
81
+ return this;
82
+ }
83
+ /**
84
+ * Gets a relation by name.
85
+ */
86
+ get(name) {
87
+ return this.relations.get(name);
88
+ }
89
+ /**
90
+ * Checks whether a relation exists.
91
+ */
92
+ has(name) {
93
+ return this.relations.has(name);
94
+ }
95
+ /**
96
+ * Removes a relation.
97
+ */
98
+ remove(name) {
99
+ return this.relations.delete(name);
100
+ }
101
+ /**
102
+ * Returns all registered relations.
103
+ */
104
+ all() {
105
+ return Object.freeze([...this.relations.values()]);
106
+ }
107
+ /**
108
+ * Returns relations for a specific parent entity.
109
+ */
110
+ forParent(parent) {
111
+ return Object.freeze([...this.relations.values()].filter((relation) => relation.parent === parent));
112
+ }
113
+ /**
114
+ * Returns relations for a specific child entity.
115
+ */
116
+ forChild(child) {
117
+ return Object.freeze([...this.relations.values()].filter((relation) => relation.child === child));
118
+ }
119
+ /**
120
+ * Clears all registered relations.
121
+ */
122
+ clear() {
123
+ this.relations.clear();
124
+ }
125
+ /**
126
+ * Returns the number of registered relations.
127
+ */
128
+ get size() {
129
+ return this.relations.size;
130
+ }
131
+ }
132
+ /**
133
+ * Creates a relation registry.
134
+ */
135
+ export function createRelationRegistry(relations = []) {
136
+ const registry = new RelationRegistry();
137
+ registry.registerMany(relations);
138
+ return registry;
139
+ }
140
+ /**
141
+ * Validates a relation definition.
142
+ */
143
+ export function validateRelation(relation) {
144
+ if (!relation || typeof relation !== "object") {
145
+ throw new TypeError("A relation definition is required.");
146
+ }
147
+ validateRelationName(relation.name);
148
+ if (relation.parent === undefined || relation.parent === null) {
149
+ throw new TypeError(`Relation "${relation.name}" requires a parent entity.`);
150
+ }
151
+ if (relation.child === undefined || relation.child === null) {
152
+ throw new TypeError(`Relation "${relation.name}" requires a child entity.`);
153
+ }
154
+ if (!isRelationType(relation.type)) {
155
+ throw new TypeError(`Relation "${relation.name}" has an invalid relation type.`);
156
+ }
157
+ if (typeof relation.foreignKey !== "string" ||
158
+ relation.foreignKey.trim().length === 0) {
159
+ throw new TypeError(`Relation "${relation.name}" requires a foreign key.`);
160
+ }
161
+ if (typeof relation.referencedKey !== "string" ||
162
+ relation.referencedKey.trim().length === 0) {
163
+ throw new TypeError(`Relation "${relation.name}" requires a referenced key.`);
164
+ }
165
+ }
166
+ /**
167
+ * Checks whether a value is a supported relation type.
168
+ */
169
+ export function isRelationType(value) {
170
+ return (value === "one-to-one" ||
171
+ value === "one-to-many" ||
172
+ value === "many-to-one" ||
173
+ value === "many-to-many");
174
+ }
175
+ /**
176
+ * Returns whether the relation represents a collection.
177
+ */
178
+ export function isCollectionRelation(relation) {
179
+ return relation.type === "one-to-many" || relation.type === "many-to-many";
180
+ }
181
+ /**
182
+ * Returns whether the relation represents a single entity.
183
+ */
184
+ export function isSingleRelation(relation) {
185
+ return relation.type === "one-to-one" || relation.type === "many-to-one";
186
+ }
187
+ /**
188
+ * Validates a relation name.
189
+ */
190
+ function validateRelationName(name) {
191
+ if (typeof name !== "string" || name.trim().length === 0) {
192
+ throw new TypeError("A relation name is required.");
193
+ }
194
+ }
195
+ //# sourceMappingURL=relations.definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relations.definition.js","sourceRoot":"","sources":["../../src/relations/relations.definition.ts"],"names":[],"mappings":"AAsCA;;GAEG;AACH,MAAM,UAAU,QAAQ,CACtB,UAA6D;IAE7D,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,UAAU;QACb,IAAI,EAAE,YAAY;KACnB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,UAA6D;IAE7D,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,UAAU;QACb,IAAI,EAAE,aAAa;KACpB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,UAA6D;IAE7D,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,UAAU;QACb,IAAI,EAAE,aAAa;KACpB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,UAA6D;IAE7D,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,UAAU;QACb,IAAI,EAAE,cAAc;KACrB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,OAAO,GAGH,EAAE;IAEN,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAE/B,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,QAAQ;QACR,MAAM,EAAE,OAAO,CAAC,MAAM;YACpB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7C,CAAC,CAAC,SAAS;QACb,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;KAC3E,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAG,QAAoC;IAEvC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACV,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEnE;;OAEG;IACI,QAAQ,CAAC,QAA4B;QAC1C,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAE3B,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,CAAC,IAAI,0BAA0B,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAChB,QAAQ,CAAC,IAAI,EACb,MAAM,CAAC,MAAM,CAAC;YACZ,GAAG,QAAQ;SACZ,CAAC,CACH,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,SAAwC;QAC1D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,GAAG;QACR,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,MAAe;QAC9B,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACjC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,CACzC,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,KAAc;QAC5B,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACjC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,KAAK,CACvC,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,KAAK;QACV,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,SAAS,GAAkC,EAAE;IAE7C,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAExC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAEjC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAA4B;IAC3D,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;IAC5D,CAAC;IAED,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEpC,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC9D,MAAM,IAAI,SAAS,CACjB,aAAa,QAAQ,CAAC,IAAI,6BAA6B,CACxD,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAC5D,MAAM,IAAI,SAAS,CAAC,aAAa,QAAQ,CAAC,IAAI,4BAA4B,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,SAAS,CACjB,aAAa,QAAQ,CAAC,IAAI,iCAAiC,CAC5D,CAAC;IACJ,CAAC;IAED,IACE,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ;QACvC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EACvC,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,aAAa,QAAQ,CAAC,IAAI,2BAA2B,CAAC,CAAC;IAC7E,CAAC;IAED,IACE,OAAO,QAAQ,CAAC,aAAa,KAAK,QAAQ;QAC1C,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAC1C,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,aAAa,QAAQ,CAAC,IAAI,8BAA8B,CACzD,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,CACL,KAAK,KAAK,YAAY;QACtB,KAAK,KAAK,aAAa;QACvB,KAAK,KAAK,aAAa;QACvB,KAAK,KAAK,cAAc,CACzB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAA4B;IAC/D,OAAO,QAAQ,CAAC,IAAI,KAAK,aAAa,IAAI,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAA4B;IAC3D,OAAO,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,IAAY;IACxC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC;IACtD,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zudojs/database",
3
- "version": "0.0.1",
3
+ "version": "0.1.0",
4
4
  "description": "Database abstraction layer with clients, repositories, transactions, and query building for Zudojs applications.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -32,8 +32,14 @@
32
32
  "files": [
33
33
  "dist"
34
34
  ],
35
+ "scripts": {
36
+ "prebuild": "prisma generate",
37
+ "build": "tsc -p tsconfig.json",
38
+ "typecheck": "tsc -p tsconfig.json --noEmit",
39
+ "clean": "rm -rf dist"
40
+ },
35
41
  "dependencies": {
36
- "@zudojs/errors": "0.0.1",
42
+ "@zudojs/errors": "0.1.0",
37
43
  "@prisma/client": "^7.10.0"
38
44
  },
39
45
  "devDependencies": {
@@ -56,11 +62,5 @@
56
62
  "repository": {
57
63
  "type": "git",
58
64
  "url": "https://github.com/oyinlola-tech/zudo"
59
- },
60
- "scripts": {
61
- "prebuild": "prisma generate",
62
- "build": "tsc -p tsconfig.json",
63
- "typecheck": "tsc -p tsconfig.json --noEmit",
64
- "clean": "rm -rf dist"
65
65
  }
66
- }
66
+ }
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Zudojs Contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.