@objectql/driver-knex 1.0.0 → 1.2.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @objectql/driver-knex
2
2
 
3
+ ## 1.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 7df2977: 拆分 objectos
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [7df2977]
12
+ - @objectql/types@1.2.0
13
+
14
+ ## 1.1.0
15
+
16
+ ### Minor Changes
17
+
18
+ - add metadata loader
19
+
20
+ ### Patch Changes
21
+
22
+ - Updated dependencies
23
+ - @objectql/core@1.1.0
24
+
3
25
  ## 1.0.0
4
26
 
5
27
  ### Major Changes
package/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # @objectql/driver-knex
2
+
3
+ Knex.js based SQL driver for ObjectQL. Supports PostgreSQL, MySQL, SQLite, and simpler databases.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @objectql/driver-knex
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```typescript
14
+ import { KnexDriver } from '@objectql/driver-knex';
15
+
16
+ const driver = new KnexDriver({
17
+ client: 'sqlite3',
18
+ connection: {
19
+ filename: './data.db'
20
+ },
21
+ useNullAsDefault: true
22
+ });
23
+
24
+ const objectql = new ObjectQL({
25
+ datasources: {
26
+ default: driver
27
+ }
28
+ });
29
+ ```
package/dist/index.d.ts CHANGED
@@ -1,10 +1,13 @@
1
- import { Driver } from '@objectql/core';
1
+ import { Driver } from '@objectql/types';
2
2
  import { Knex } from 'knex';
3
3
  export declare class KnexDriver implements Driver {
4
4
  private knex;
5
+ private config;
6
+ private jsonFields;
5
7
  constructor(config: any);
6
8
  private getBuilder;
7
9
  private applyFilters;
10
+ private mapSortField;
8
11
  find(objectName: string, query: any, options?: any): Promise<any[]>;
9
12
  findOne(objectName: string, id: string | number, query?: any, options?: any): Promise<any>;
10
13
  create(objectName: string, data: any, options?: any): Promise<any>;
@@ -17,4 +20,11 @@ export declare class KnexDriver implements Driver {
17
20
  createMany(objectName: string, data: any[], options?: any): Promise<any>;
18
21
  updateMany(objectName: string, filters: any, data: any, options?: any): Promise<any>;
19
22
  deleteMany(objectName: string, filters: any, options?: any): Promise<any>;
23
+ init(objects: any[]): Promise<void>;
24
+ private createColumn;
25
+ private ensureDatabaseExists;
26
+ private createDatabase;
27
+ private isJsonField;
28
+ private formatInput;
29
+ private formatOutput;
20
30
  }
package/dist/index.js CHANGED
@@ -7,6 +7,8 @@ exports.KnexDriver = void 0;
7
7
  const knex_1 = __importDefault(require("knex"));
8
8
  class KnexDriver {
9
9
  constructor(config) {
10
+ this.jsonFields = {};
11
+ this.config = config;
10
12
  this.knex = (0, knex_1.default)(config);
11
13
  }
12
14
  getBuilder(objectName, options) {
@@ -19,8 +21,6 @@ class KnexDriver {
19
21
  applyFilters(builder, filters) {
20
22
  if (!filters || filters.length === 0)
21
23
  return;
22
- // Simple linear parser handling [cond, 'or', cond, 'and', cond]
23
- // Default join is AND.
24
24
  let nextJoin = 'and';
25
25
  for (const item of filters) {
26
26
  if (typeof item === 'string') {
@@ -31,49 +31,61 @@ class KnexDriver {
31
31
  continue;
32
32
  }
33
33
  if (Array.isArray(item)) {
34
- const [field, op, value] = item;
35
- // Handle specific operators that map to different knex methods
36
- const apply = (b) => {
37
- // b is the builder to apply on (could be root or a where clause)
38
- // But here we call directly on builder using 'where' or 'orWhere'
39
- // Method selection
40
- let method = nextJoin === 'or' ? 'orWhere' : 'where';
41
- let methodIn = nextJoin === 'or' ? 'orWhereIn' : 'whereIn';
42
- let methodNotIn = nextJoin === 'or' ? 'orWhereNotIn' : 'whereNotIn';
43
- switch (op) {
44
- case '=':
45
- b[method](field, value);
46
- break;
47
- case '!=':
48
- b[method](field, '<>', value);
49
- break;
50
- case 'in':
51
- b[methodIn](field, value);
52
- break;
53
- case 'nin':
54
- b[methodNotIn](field, value);
55
- break;
56
- case 'contains':
34
+ // Heuristic to detect if it is a criterion [field, op, value] or a nested group
35
+ const [fieldRaw, op, value] = item;
36
+ const isCriterion = typeof fieldRaw === 'string' && typeof op === 'string';
37
+ if (isCriterion) {
38
+ const field = this.mapSortField(fieldRaw);
39
+ // Handle specific operators that map to different knex methods
40
+ const apply = (b) => {
41
+ let method = nextJoin === 'or' ? 'orWhere' : 'where';
42
+ let methodIn = nextJoin === 'or' ? 'orWhereIn' : 'whereIn';
43
+ let methodNotIn = nextJoin === 'or' ? 'orWhereNotIn' : 'whereNotIn';
44
+ // Fix for 'contains' mapping
45
+ if (op === 'contains') {
57
46
  b[method](field, 'like', `%${value}%`);
58
- break; // Simple LIKE
59
- default: b[method](field, op, value);
60
- }
61
- };
62
- apply(builder);
63
- // Reset join to 'and' for subsequent terms unless strictly specified?
64
- // In SQL `A or B and C` means `A or (B and C)`.
65
- // If we chain `.where(A).orWhere(B).where(C)` in Knex:
66
- // It produces `... WHERE A OR B AND C`.
67
- // So linear application matches SQL precedence usually if implicit validation is ok.
68
- // But explicit AND after OR is necessary in our array format.
47
+ return;
48
+ }
49
+ switch (op) {
50
+ case '=':
51
+ b[method](field, value);
52
+ break;
53
+ case '!=':
54
+ b[method](field, '<>', value);
55
+ break;
56
+ case 'in':
57
+ b[methodIn](field, value);
58
+ break;
59
+ case 'nin':
60
+ b[methodNotIn](field, value);
61
+ break;
62
+ default: b[method](field, op, value);
63
+ }
64
+ };
65
+ apply(builder);
66
+ }
67
+ else {
68
+ // Recursive Group
69
+ const method = nextJoin === 'or' ? 'orWhere' : 'where';
70
+ builder[method]((qb) => {
71
+ this.applyFilters(qb, item);
72
+ });
73
+ }
69
74
  nextJoin = 'and';
70
75
  }
71
76
  }
72
77
  }
78
+ mapSortField(field) {
79
+ if (field === 'createdAt')
80
+ return 'created_at';
81
+ if (field === 'updatedAt')
82
+ return 'updated_at';
83
+ return field;
84
+ }
73
85
  async find(objectName, query, options) {
74
86
  const builder = this.getBuilder(objectName, options);
75
87
  if (query.fields) {
76
- builder.select(query.fields);
88
+ builder.select(query.fields.map((f) => this.mapSortField(f)));
77
89
  }
78
90
  else {
79
91
  builder.select('*');
@@ -83,18 +95,25 @@ class KnexDriver {
83
95
  }
84
96
  if (query.sort) {
85
97
  for (const [field, dir] of query.sort) {
86
- builder.orderBy(field, dir);
98
+ builder.orderBy(this.mapSortField(field), dir);
87
99
  }
88
100
  }
89
101
  if (query.skip)
90
102
  builder.offset(query.skip);
91
103
  if (query.limit)
92
104
  builder.limit(query.limit);
93
- return await builder;
105
+ const results = await builder;
106
+ if (this.config.client === 'sqlite3') {
107
+ for (const row of results) {
108
+ this.formatOutput(objectName, row);
109
+ }
110
+ }
111
+ return results;
94
112
  }
95
113
  async findOne(objectName, id, query, options) {
96
114
  if (id) {
97
- return await this.getBuilder(objectName, options).where('id', id).first();
115
+ const res = await this.getBuilder(objectName, options).where('id', id).first();
116
+ return this.formatOutput(objectName, res);
98
117
  }
99
118
  if (query) {
100
119
  const results = await this.find(objectName, { ...query, limit: 1 }, options);
@@ -103,18 +122,29 @@ class KnexDriver {
103
122
  return null;
104
123
  }
105
124
  async create(objectName, data, options) {
125
+ // Handle _id -> id mapping for compatibility
126
+ const { _id, ...rest } = data;
127
+ const toInsert = { ...rest };
128
+ // If _id exists and id doesn't, map _id to id
129
+ if (_id !== undefined && toInsert.id === undefined) {
130
+ toInsert.id = _id;
131
+ }
132
+ else if (toInsert.id !== undefined) {
133
+ // normal case
134
+ }
106
135
  // Knex insert returns Result array (e.g. ids)
107
136
  // We want the created document.
108
- // Some DBs support .returning('*'), others don't easily.
109
- // Assuming Postgres/SQLite/Modern MySQL for now support returning.
110
137
  const builder = this.getBuilder(objectName, options);
111
- const result = await builder.insert(data).returning('*'); // This might fail on old MySQL
112
- return result[0];
138
+ const formatted = this.formatInput(objectName, toInsert);
139
+ // We should insert 'toInsert' instead of 'data'
140
+ const result = await builder.insert(formatted).returning('*');
141
+ return this.formatOutput(objectName, result[0]);
113
142
  }
114
143
  async update(objectName, id, data, options) {
115
144
  const builder = this.getBuilder(objectName, options);
116
- await builder.where('id', id).update(data);
117
- return { id, ...data }; // Return patched data? Or fetch fresh?
145
+ const formatted = this.formatInput(objectName, data);
146
+ await builder.where('id', id).update(formatted);
147
+ return { id, ...data };
118
148
  }
119
149
  async delete(objectName, id, options) {
120
150
  const builder = this.getBuilder(objectName, options);
@@ -160,6 +190,217 @@ class KnexDriver {
160
190
  this.applyFilters(builder, filters);
161
191
  return await builder.delete();
162
192
  }
193
+ async init(objects) {
194
+ await this.ensureDatabaseExists();
195
+ for (const obj of objects) {
196
+ const tableName = obj.name;
197
+ // Cache JSON fields
198
+ const jsonCols = [];
199
+ if (obj.fields) {
200
+ for (const [name, field] of Object.entries(obj.fields)) {
201
+ const type = field.type || 'string';
202
+ if (this.isJsonField(type, field)) {
203
+ jsonCols.push(name);
204
+ }
205
+ }
206
+ }
207
+ this.jsonFields[tableName] = jsonCols;
208
+ let exists = await this.knex.schema.hasTable(tableName);
209
+ if (exists) {
210
+ const columnInfo = await this.knex(tableName).columnInfo();
211
+ const existingColumns = Object.keys(columnInfo);
212
+ // Check for _id vs id conflict (Legacy _id from mongo-style init)
213
+ if (existingColumns.includes('_id') && !existingColumns.includes('id')) {
214
+ console.log(`[KnexDriver] Detected legacy '_id' in '${tableName}'. Recreating table for 'id' compatibility...`);
215
+ await this.knex.schema.dropTable(tableName);
216
+ exists = false;
217
+ }
218
+ }
219
+ if (!exists) {
220
+ await this.knex.schema.createTable(tableName, (table) => {
221
+ // Use standard 'id' for SQL databases
222
+ table.string('id').primary();
223
+ table.timestamp('created_at').defaultTo(this.knex.fn.now());
224
+ table.timestamp('updated_at').defaultTo(this.knex.fn.now());
225
+ if (obj.fields) {
226
+ for (const [name, field] of Object.entries(obj.fields)) {
227
+ this.createColumn(table, name, field);
228
+ }
229
+ }
230
+ });
231
+ console.log(`[KnexDriver] Created table '${tableName}'`);
232
+ }
233
+ else {
234
+ const columnInfo = await this.knex(tableName).columnInfo();
235
+ const existingColumns = Object.keys(columnInfo);
236
+ await this.knex.schema.alterTable(tableName, (table) => {
237
+ if (obj.fields) {
238
+ for (const [name, field] of Object.entries(obj.fields)) {
239
+ if (!existingColumns.includes(name)) {
240
+ this.createColumn(table, name, field);
241
+ console.log(`[KnexDriver] Added column '${name}' to '${tableName}'`);
242
+ }
243
+ }
244
+ }
245
+ });
246
+ }
247
+ }
248
+ }
249
+ createColumn(table, name, field) {
250
+ if (field.multiple) {
251
+ table.json(name);
252
+ return;
253
+ }
254
+ const type = field.type || 'string';
255
+ let col;
256
+ switch (type) {
257
+ case 'string':
258
+ case 'email':
259
+ case 'url':
260
+ case 'phone':
261
+ case 'password':
262
+ col = table.string(name);
263
+ break;
264
+ case 'text':
265
+ case 'textarea':
266
+ case 'html':
267
+ case 'markdown':
268
+ col = table.text(name);
269
+ break;
270
+ case 'integer':
271
+ case 'int':
272
+ col = table.integer(name);
273
+ break;
274
+ case 'float':
275
+ case 'number':
276
+ case 'currency':
277
+ case 'percent':
278
+ col = table.float(name);
279
+ break;
280
+ case 'boolean':
281
+ col = table.boolean(name);
282
+ break;
283
+ case 'date':
284
+ col = table.date(name);
285
+ break;
286
+ case 'datetime':
287
+ col = table.timestamp(name);
288
+ break;
289
+ case 'time':
290
+ col = table.time(name);
291
+ break;
292
+ case 'json':
293
+ case 'object':
294
+ case 'array':
295
+ case 'image':
296
+ case 'file':
297
+ case 'avatar':
298
+ case 'location':
299
+ col = table.json(name);
300
+ break;
301
+ case 'summary':
302
+ col = table.float(name);
303
+ break; // Stored calculation result
304
+ case 'auto_number':
305
+ col = table.string(name);
306
+ break; // Generated string
307
+ case 'formula': return; // Virtual field, do not create column
308
+ default: col = table.string(name);
309
+ }
310
+ if (field.unique) {
311
+ col.unique();
312
+ }
313
+ if (field.required) {
314
+ col.notNullable();
315
+ }
316
+ }
317
+ async ensureDatabaseExists() {
318
+ if (this.config.client !== 'pg' && this.config.client !== 'postgresql')
319
+ return;
320
+ try {
321
+ await this.knex.raw('SELECT 1');
322
+ }
323
+ catch (e) {
324
+ if (e.code === '3D000') { // Database does not exist
325
+ await this.createDatabase();
326
+ }
327
+ else {
328
+ throw e;
329
+ }
330
+ }
331
+ }
332
+ async createDatabase() {
333
+ const config = this.config;
334
+ const connection = config.connection;
335
+ let dbName = '';
336
+ let adminConfig = { ...config };
337
+ if (typeof connection === 'string') {
338
+ const url = new URL(connection);
339
+ dbName = url.pathname.slice(1);
340
+ url.pathname = '/postgres';
341
+ adminConfig.connection = url.toString();
342
+ }
343
+ else {
344
+ dbName = connection.database;
345
+ adminConfig.connection = { ...connection, database: 'postgres' };
346
+ }
347
+ console.log(`[KnexDriver] Database '${dbName}' does not exist. Creating...`);
348
+ const adminKnex = (0, knex_1.default)(adminConfig);
349
+ try {
350
+ await adminKnex.raw(`CREATE DATABASE "${dbName}"`);
351
+ console.log(`[KnexDriver] Database '${dbName}' created successfully.`);
352
+ }
353
+ catch (e) {
354
+ console.error(`[KnexDriver] Failed to create database '${dbName}':`, e.message);
355
+ if (e.code === '42501') {
356
+ console.error(`[KnexDriver] Hint: The user '${adminConfig.connection.user || 'current user'}' does not have CREATEDB privileges.`);
357
+ console.error(`[KnexDriver] Please run: createdb ${dbName}`);
358
+ }
359
+ throw e;
360
+ }
361
+ finally {
362
+ await adminKnex.destroy();
363
+ }
364
+ }
365
+ isJsonField(type, field) {
366
+ return ['json', 'object', 'array', 'image', 'file', 'avatar', 'location'].includes(type) || field.multiple;
367
+ }
368
+ formatInput(objectName, data) {
369
+ // Only needed for SQLite usually, PG handles JSON
370
+ const isSqlite = this.config.client === 'sqlite3';
371
+ if (!isSqlite)
372
+ return data;
373
+ const fields = this.jsonFields[objectName];
374
+ if (!fields || fields.length === 0)
375
+ return data;
376
+ const copy = { ...data };
377
+ for (const field of fields) {
378
+ if (copy[field] !== undefined && typeof copy[field] === 'object' && copy[field] !== null) {
379
+ copy[field] = JSON.stringify(copy[field]);
380
+ }
381
+ }
382
+ return copy;
383
+ }
384
+ formatOutput(objectName, data) {
385
+ const isSqlite = this.config.client === 'sqlite3';
386
+ if (!isSqlite)
387
+ return data;
388
+ const fields = this.jsonFields[objectName];
389
+ if (!fields || fields.length === 0)
390
+ return data;
391
+ // data is a single row object
392
+ for (const field of fields) {
393
+ if (data[field] !== undefined && typeof data[field] === 'string') {
394
+ try {
395
+ data[field] = JSON.parse(data[field]);
396
+ }
397
+ catch (e) {
398
+ // ignore parse error, keep as string
399
+ }
400
+ }
401
+ }
402
+ return data;
403
+ }
163
404
  }
164
405
  exports.KnexDriver = KnexDriver;
165
406
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AACA,gDAAkC;AAElC,MAAa,UAAU;IAGnB,YAAY,MAAW;QACnB,IAAI,CAAC,IAAI,GAAG,IAAA,cAAI,EAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAEO,UAAU,CAAC,UAAkB,EAAE,OAAa;QAChD,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,OAAO,EAAE,WAAW,EAAE,CAAC;YACvB,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,YAAY,CAAC,OAA0B,EAAE,OAAY;QACzD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE7C,gEAAgE;QAChE,uBAAuB;QACvB,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI;oBAAE,QAAQ,GAAG,IAAI,CAAC;qBAC5C,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK;oBAAE,QAAQ,GAAG,KAAK,CAAC;gBACxD,SAAS;YACb,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;gBAEhC,+DAA+D;gBAC/D,MAAM,KAAK,GAAG,CAAC,CAAM,EAAE,EAAE;oBACrB,iEAAiE;oBACjE,kEAAkE;oBAElE,mBAAmB;oBACnB,IAAI,MAAM,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;oBACrD,IAAI,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC3D,IAAI,WAAW,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC;oBAEpE,QAAQ,EAAE,EAAE,CAAC;wBACT,KAAK,GAAG;4BAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;4BAAC,MAAM;wBACzC,KAAK,IAAI;4BAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;4BAAC,MAAM;wBAChD,KAAK,IAAI;4BAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;4BAAC,MAAM;wBAC5C,KAAK,KAAK;4BAAE,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;4BAAC,MAAM;wBAChD,KAAK,UAAU;4BAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;4BAAC,MAAM,CAAC,cAAc;wBAC9E,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;oBACzC,CAAC;gBACL,CAAC,CAAC;gBAEF,KAAK,CAAC,OAAO,CAAC,CAAC;gBAEf,sEAAsE;gBACtE,gDAAgD;gBAChD,uDAAuD;gBACvD,wCAAwC;gBACxC,qFAAqF;gBACrF,8DAA8D;gBAC9D,QAAQ,GAAG,KAAK,CAAC;YACrB,CAAC;QACN,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,UAAkB,EAAE,KAAU,EAAE,OAAa;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAErD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACpC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChC,CAAC;QACL,CAAC;QAED,IAAI,KAAK,CAAC,IAAI;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK,CAAC,KAAK;YAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE5C,OAAO,MAAM,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,EAAmB,EAAE,KAAW,EAAE,OAAa;QAC7E,IAAI,EAAE,EAAE,CAAC;YACL,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9E,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACP,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAC7E,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,UAAkB,EAAE,IAAS,EAAE,OAAa;QACrD,8CAA8C;QAC9C,iCAAiC;QACjC,yDAAyD;QACzD,mEAAmE;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,+BAA+B;QACzF,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,UAAkB,EAAE,EAAmB,EAAE,IAAS,EAAE,OAAa;QAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,uCAAuC;IACnE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,UAAkB,EAAE,EAAmB,EAAE,OAAa;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,UAAkB,EAAE,OAAY,EAAE,OAAa;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAoB,YAAY,CAAC,CAAC;QACpE,kEAAkE;QAClE,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAQ,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAED,sBAAsB;IACtB,KAAK,CAAC,gBAAgB;QAClB,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,GAAqB;QACzC,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,GAAqB;QAC3C,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED,OAAO;IACP,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,IAAW,EAAE,OAAa;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,OAAY,EAAE,IAAS,EAAE,OAAa;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,IAAG,OAAO;YAAE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,OAAY,EAAE,OAAa;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,IAAG,OAAO;YAAE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;IAClC,CAAC;CACJ;AAtKD,gCAsKC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,14 +1,17 @@
1
1
  {
2
2
  "name": "@objectql/driver-knex",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
+ "dependencies": {
7
+ "knex": "^3.1.0",
8
+ "@objectql/types": "1.2.0"
9
+ },
10
+ "devDependencies": {
11
+ "sqlite3": "^5.1.7"
12
+ },
6
13
  "scripts": {
7
14
  "build": "tsc",
8
15
  "test": "jest"
9
- },
10
- "dependencies": {
11
- "@objectql/core": "^1.0.0",
12
- "knex": "^3.1.0"
13
16
  }
14
- }
17
+ }