duckdb-tinyorm 1.0.44 → 2.0.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 (45) hide show
  1. package/README.md +387 -47
  2. package/dist/constants/data-type.decorator.d.ts +20 -1
  3. package/dist/constants/data-type.decorator.js +62 -14
  4. package/dist/constants/data-type.decorator.js.map +1 -1
  5. package/dist/errors/orm-errors.d.ts +27 -0
  6. package/dist/errors/orm-errors.js +80 -0
  7. package/dist/errors/orm-errors.js.map +1 -0
  8. package/dist/helpers/bulk-insert.helper.d.ts +1 -0
  9. package/dist/helpers/bulk-insert.helper.js +19 -0
  10. package/dist/helpers/bulk-insert.helper.js.map +1 -0
  11. package/dist/helpers/db.helper.d.ts +10 -0
  12. package/dist/helpers/db.helper.js +62 -0
  13. package/dist/helpers/db.helper.js.map +1 -1
  14. package/dist/helpers/mapping.helper.d.ts +1 -1
  15. package/dist/helpers/mapping.helper.js +35 -35
  16. package/dist/helpers/mapping.helper.js.map +1 -1
  17. package/dist/helpers/table-util.helper.js +46 -19
  18. package/dist/helpers/table-util.helper.js.map +1 -1
  19. package/dist/index.d.ts +9 -3
  20. package/dist/index.js +24 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/migration/migration.d.ts +22 -0
  23. package/dist/migration/migration.js +143 -0
  24. package/dist/migration/migration.js.map +1 -0
  25. package/dist/pagination/pagination.d.ts +10 -0
  26. package/dist/pagination/pagination.js +3 -0
  27. package/dist/pagination/pagination.js.map +1 -0
  28. package/dist/query/query-builder.d.ts +27 -0
  29. package/dist/query/query-builder.js +113 -0
  30. package/dist/query/query-builder.js.map +1 -0
  31. package/dist/repositories/base.interface.d.ts +19 -2
  32. package/dist/repositories/base.repository.d.ts +18 -2
  33. package/dist/repositories/base.repository.js +159 -14
  34. package/dist/repositories/base.repository.js.map +1 -1
  35. package/dist/repositories/duckdb.repository.d.ts +18 -0
  36. package/dist/repositories/duckdb.repository.js +91 -16
  37. package/dist/repositories/duckdb.repository.js.map +1 -1
  38. package/dist/repositories/transaction.d.ts +9 -0
  39. package/dist/repositories/transaction.js +48 -0
  40. package/dist/repositories/transaction.js.map +1 -0
  41. package/dist/test.d.ts +4 -3
  42. package/dist/test.js +126 -28
  43. package/dist/test.js.map +1 -1
  44. package/package.json +3 -2
  45. package/tsconfig.json +9 -1
@@ -6,6 +6,8 @@ const duckdb_1 = require("duckdb");
6
6
  const mapping_helper_1 = require("../helpers/mapping.helper");
7
7
  const table_util_helper_1 = require("../helpers/table-util.helper");
8
8
  const db_helper_1 = require("../helpers/db.helper");
9
+ const transaction_1 = require("./transaction"); // Add this import
10
+ const orm_errors_1 = require("../errors/orm-errors");
9
11
  var DuckDbLocation;
10
12
  (function (DuckDbLocation) {
11
13
  DuckDbLocation["File"] = "";
@@ -51,22 +53,51 @@ class DuckDbRepository {
51
53
  this.isClosed = false;
52
54
  }
53
55
  }
56
+ // Fix the sequence creation logic
54
57
  async createTableIfNotExists(tableName, classType) {
55
- if (this.tables.get(tableName))
56
- return;
57
- return new Promise((resolve, reject) => {
58
- this.connection?.run((0, table_util_helper_1.generateCreateTableStatement)(tableName, classType), err => {
59
- if (err) {
60
- console.log('ERROR CREATING: ', err);
61
- reject(err);
62
- }
63
- else {
64
- // console.info('DuckDB table main.' + tableName + ' was created or already exists!');
65
- this.tables.set(tableName, true);
66
- resolve();
58
+ try {
59
+ // Get the actual table name from metadata if available
60
+ const actualTableName = Reflect.getMetadata('TableName', classType) || tableName;
61
+ // Extract auto-increment columns
62
+ const instance = new classType();
63
+ const propertyNames = Object.getOwnPropertyNames(instance);
64
+ const sequences = {};
65
+ for (const propertyName of propertyNames) {
66
+ const autoIncrement = Reflect.getMetadata('AutoIncrement', classType.prototype, propertyName);
67
+ const isPrimaryKey = Reflect.getMetadata('PrimaryKey', classType.prototype, propertyName);
68
+ if (autoIncrement && isPrimaryKey) {
69
+ // Create sequence name using the table name, not the class name
70
+ const sequenceName = `seq_${actualTableName}_${propertyName}`;
71
+ sequences[propertyName] = sequenceName;
72
+ // Create sequence first
73
+ const createSequenceStatement = `CREATE SEQUENCE IF NOT EXISTS ${sequenceName} START 1;`;
74
+ try {
75
+ await this.executeQuery(createSequenceStatement);
76
+ console.log(`Sequence ${sequenceName} is created successfully!`);
77
+ }
78
+ catch (err) {
79
+ console.error(`ERROR CREATING SEQUENCE: `, err);
80
+ throw err;
81
+ }
67
82
  }
68
- });
69
- });
83
+ }
84
+ // Store sequences in metadata
85
+ Reflect.defineMetadata('Sequences', sequences, classType);
86
+ // Now create the table
87
+ const createTableStatement = (0, table_util_helper_1.generateCreateTableStatement)(actualTableName, classType);
88
+ try {
89
+ await this.executeQuery(createTableStatement);
90
+ console.log(`Table ${actualTableName} is created successfully!`);
91
+ }
92
+ catch (err) {
93
+ console.error(`ERROR CREATING: `, err);
94
+ throw err;
95
+ }
96
+ }
97
+ catch (err) {
98
+ console.error(err);
99
+ throw err;
100
+ }
70
101
  }
71
102
  async getDuckDbExtension(extension_name) {
72
103
  return this.executeQuery(`select extension_name, loaded, installed from duckdb_extensions() where extension_name='${extension_name}';`);
@@ -80,9 +111,15 @@ class DuckDbRepository {
80
111
  async saveToDuckDB(tableName, classType, data) {
81
112
  if (!(data?.length))
82
113
  return;
83
- await this.createTableIfNotExists(tableName, classType);
114
+ // Get the actual table name from metadata if available
115
+ const actualTableName = Reflect.getMetadata('TableName', classType) || tableName;
116
+ await this.createTableIfNotExists(actualTableName, classType);
84
117
  const query = data.map(item => (0, mapping_helper_1.mapToSQLFieldsValues)(item, classType)).join(', ');
85
- await (0, db_helper_1.bulkInsert)(this.connection, (0, table_util_helper_1.generateInsertIntoStatement)(tableName, classType) + query);
118
+ // Log the SQL query for debugging
119
+ const fullQuery = (0, table_util_helper_1.generateInsertIntoStatement)(actualTableName, classType) + query;
120
+ console.log("SQL Insert Query:", fullQuery);
121
+ // Use actualTableName instead of tableName
122
+ await (0, db_helper_1.bulkInsert)(this.connection, fullQuery);
86
123
  }
87
124
  async saveToParquet(name, mainFolder) {
88
125
  const fileName = `${name}.parquet`;
@@ -116,6 +153,44 @@ class DuckDbRepository {
116
153
  const fileName = `${name}.parquet`;
117
154
  await (0, db_helper_1.saveQueryToParquet)(this.connection, fileName, query, folder);
118
155
  }
156
+ // Add this method to the DuckDbRepository class
157
+ createTransaction() {
158
+ if (!this.connection) {
159
+ this.connect();
160
+ }
161
+ return new transaction_1.Transaction(this.connection);
162
+ }
163
+ async exportTable(tableName, options) {
164
+ if (this.connection == undefined) {
165
+ throw new orm_errors_1.ConnectionError("Connection is not established.");
166
+ }
167
+ const actualTableName = `main.${tableName}`;
168
+ switch (options.format) {
169
+ case 'csv':
170
+ return await (0, db_helper_1.exportToCSV)(this.connection, actualTableName, options.fileName, options.csvOptions);
171
+ case 'json':
172
+ return await (0, db_helper_1.exportToJSON)(this.connection, actualTableName, options.fileName, options.jsonOptions);
173
+ case 'parquet':
174
+ return await (0, db_helper_1.exportToParquet)(this.connection, actualTableName, options.fileName, options.parquetOptions);
175
+ default:
176
+ throw new Error(`Unsupported format: ${options.format}`);
177
+ }
178
+ }
179
+ async exportQuery(query, options) {
180
+ if (this.connection == undefined) {
181
+ throw new orm_errors_1.ConnectionError("Connection is not established.");
182
+ }
183
+ switch (options.format) {
184
+ case 'csv':
185
+ return await (0, db_helper_1.exportToCSV)(this.connection, query, options.fileName, options.csvOptions);
186
+ case 'json':
187
+ return await (0, db_helper_1.exportToJSON)(this.connection, query, options.fileName, options.jsonOptions);
188
+ case 'parquet':
189
+ return await (0, db_helper_1.exportToParquet)(this.connection, query, options.fileName, options.parquetOptions);
190
+ default:
191
+ throw new Error(`Unsupported format: ${options.format}`);
192
+ }
193
+ }
119
194
  }
120
195
  exports.DuckDbRepository = DuckDbRepository;
121
196
  //# sourceMappingURL=duckdb.repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"duckdb.repository.js","sourceRoot":"","sources":["../../src/repositories/duckdb.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"duckdb.repository.js","sourceRoot":"","sources":["../../src/repositories/duckdb.repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Connection } from 'duckdb';
2
+ export declare class Transaction {
3
+ private connection;
4
+ constructor(connection: Connection);
5
+ begin(): Promise<void>;
6
+ commit(): Promise<void>;
7
+ rollback(): Promise<void>;
8
+ private execute;
9
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Transaction = void 0;
4
+ const orm_errors_1 = require("../errors/orm-errors");
5
+ class Transaction {
6
+ connection;
7
+ constructor(connection) {
8
+ this.connection = connection;
9
+ }
10
+ async begin() {
11
+ try {
12
+ await this.execute('BEGIN TRANSACTION');
13
+ }
14
+ catch (error) {
15
+ throw new orm_errors_1.TransactionError('begin', error);
16
+ }
17
+ }
18
+ async commit() {
19
+ try {
20
+ await this.execute('COMMIT');
21
+ }
22
+ catch (error) {
23
+ throw new orm_errors_1.TransactionError('commit', error);
24
+ }
25
+ }
26
+ async rollback() {
27
+ try {
28
+ await this.execute('ROLLBACK');
29
+ }
30
+ catch (error) {
31
+ throw new orm_errors_1.TransactionError('rollback', error);
32
+ }
33
+ }
34
+ execute(query) {
35
+ return new Promise((resolve, reject) => {
36
+ this.connection.run(query, (err) => {
37
+ if (err) {
38
+ reject(err);
39
+ }
40
+ else {
41
+ resolve();
42
+ }
43
+ });
44
+ });
45
+ }
46
+ }
47
+ exports.Transaction = Transaction;
48
+ //# sourceMappingURL=transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/repositories/transaction.ts"],"names":[],"mappings":";;;AACA,qDAAwD;AAExD,MAAa,WAAW;IACA;IAApB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE9C,KAAK,CAAC,KAAK;QACP,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,6BAAgB,CAAC,OAAO,EAAE,KAAc,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM;QACR,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,6BAAgB,CAAC,QAAQ,EAAE,KAAc,CAAC,CAAC;QACzD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ;QACV,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,6BAAgB,CAAC,UAAU,EAAE,KAAc,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAEO,OAAO,CAAC,KAAa;QACzB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC/B,IAAI,GAAG,EAAE,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACJ,OAAO,EAAE,CAAC;gBACd,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAtCD,kCAsCC"}
package/dist/test.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import 'reflect-metadata';
2
2
  export declare class Subject {
3
- constructor(id?: string, name?: string, description?: string, year?: number);
4
- Id: string;
5
- Name?: string;
3
+ Id: number;
4
+ Code: string;
5
+ Name: string;
6
6
  Description?: string;
7
7
  Year: number;
8
+ constructor(code?: string, name?: string, description?: string, year?: number);
8
9
  }
package/dist/test.js CHANGED
@@ -11,72 +11,170 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.Subject = void 0;
13
13
  require("reflect-metadata");
14
+ const duckdb_repository_1 = require("./repositories/duckdb.repository");
14
15
  const data_type_decorator_1 = require("./constants/data-type.decorator");
15
16
  const base_repository_1 = require("./repositories/base.repository");
16
- const duckdb_repository_1 = require("./repositories/duckdb.repository");
17
- //create instance in memory or use File, if File is specfied need to specify the filename
18
- const duckDbRepository = duckdb_repository_1.DuckDbRepository.getInstances({ name: 'default', location: duckdb_repository_1.DuckDbLocation.Memory, filename: undefined });
17
+ // Create instance in memory or use File
18
+ const duckDbRepository = duckdb_repository_1.DuckDbRepository.getInstances({
19
+ name: 'default',
20
+ location: duckdb_repository_1.DuckDbLocation.Memory,
21
+ filename: undefined
22
+ });
19
23
  let Subject = class Subject {
20
- constructor(id = "", name, description, year = (new Date()).getFullYear()) {
21
- this.Id = id;
22
- this.Name = name;
23
- this.Description = description;
24
- this.Year = year;
25
- }
26
24
  Id;
25
+ Code;
27
26
  Name;
28
27
  Description;
29
28
  Year;
29
+ constructor(code = "", name = "", description, year = new Date().getFullYear()) {
30
+ this.Code = code;
31
+ this.Name = name;
32
+ this.Description = description;
33
+ this.Year = year;
34
+ }
30
35
  };
31
36
  exports.Subject = Subject;
32
37
  __decorate([
33
- (0, data_type_decorator_1.Id)(),
34
- (0, data_type_decorator_1.DataTypeDecorator)('VARCHAR'),
35
- __metadata("design:type", String)
38
+ (0, data_type_decorator_1.Column)({
39
+ type: 'INTEGER',
40
+ primaryKey: true,
41
+ autoIncrement: true
42
+ }),
43
+ __metadata("design:type", Number)
36
44
  ], Subject.prototype, "Id", void 0);
37
45
  __decorate([
38
- (0, data_type_decorator_1.DataTypeDecorator)('VARCHAR'),
46
+ (0, data_type_decorator_1.Column)({
47
+ type: 'VARCHAR',
48
+ notNull: true,
49
+ unique: true
50
+ }),
51
+ __metadata("design:type", String)
52
+ ], Subject.prototype, "Code", void 0);
53
+ __decorate([
54
+ (0, data_type_decorator_1.Column)({
55
+ type: 'VARCHAR',
56
+ notNull: true
57
+ }),
39
58
  __metadata("design:type", String)
40
59
  ], Subject.prototype, "Name", void 0);
41
60
  __decorate([
42
- (0, data_type_decorator_1.DataTypeDecorator)('VARCHAR'),
61
+ (0, data_type_decorator_1.Column)({
62
+ type: 'TEXT'
63
+ }),
43
64
  __metadata("design:type", String)
44
65
  ], Subject.prototype, "Description", void 0);
45
66
  __decorate([
46
- (0, data_type_decorator_1.DataTypeDecorator)('INT'),
67
+ (0, data_type_decorator_1.Column)({
68
+ type: 'INT',
69
+ defaultValue: new Date().getFullYear(),
70
+ check: 'Year >= 2000'
71
+ }),
47
72
  __metadata("design:type", Number)
48
73
  ], Subject.prototype, "Year", void 0);
49
74
  exports.Subject = Subject = __decorate([
50
- data_type_decorator_1.Entity,
75
+ (0, data_type_decorator_1.Entity)({ name: 'subjects' }),
51
76
  __metadata("design:paramtypes", [String, String, String, Number])
52
77
  ], Subject);
53
78
  let SubjectRepository = class SubjectRepository extends base_repository_1.BaseRepository {
54
79
  constructor() {
55
80
  super(duckDbRepository);
56
81
  }
82
+ // Add a custom method to find by code
83
+ async findByCode(code) {
84
+ // Use tableName instead of classType.name
85
+ const query = `SELECT * FROM main.${this.tableName} WHERE Code='${code}'`;
86
+ const result = await this.repository.executeQuery(query);
87
+ return result.length > 0 ? result[0] : null;
88
+ }
89
+ // Add a custom method to remove by code
90
+ async removeByCode(code) {
91
+ const entityToDelete = await this.findByCode(code);
92
+ if (!entityToDelete)
93
+ return null;
94
+ // Use tableName instead of classType.name
95
+ const query = `DELETE FROM main.${this.tableName} WHERE Code='${code}'`;
96
+ await this.repository.executeQuery(query);
97
+ return entityToDelete;
98
+ }
57
99
  };
58
100
  SubjectRepository = __decorate([
59
101
  (0, data_type_decorator_1.Repository)(Subject),
60
102
  __metadata("design:paramtypes", [])
61
103
  ], SubjectRepository);
104
+ // Modify the test function to log IDs
62
105
  async function test() {
63
106
  const subjectRepository = new SubjectRepository();
64
107
  await subjectRepository.init();
65
- let result = await subjectRepository.findAll();
66
- console.log("RESULT => ", result);
108
+ // Save entities
67
109
  const subject1 = new Subject('JB', "Java Basic", "Java Basic", 2024);
68
110
  const subject2 = new Subject('OOP', "Java OOP", "Java Object Oriented Programming", 2024);
69
- await subjectRepository.save(subject1);
70
- await subjectRepository.save(subject2);
71
- result = await subjectRepository.findAll();
111
+ // Save and log the returned entities with their IDs
112
+ const savedSubject1 = await subjectRepository.save(subject1);
113
+ console.log("Saved subject 1 with ID:", savedSubject1.Id);
114
+ const savedSubject2 = await subjectRepository.save(subject2);
115
+ console.log("Saved subject 2 with ID:", savedSubject2.Id);
116
+ // Rest of your test...
117
+ // Find all records
118
+ const result = await subjectRepository.findAll();
72
119
  console.table(result);
73
- const subjectFound1 = await subjectRepository.findById("JB");
74
- console.info(subjectFound1);
75
- const subjectFound2 = await subjectRepository.findById("OOP");
76
- console.info(subjectFound2);
77
- await subjectRepository.removeById("JB");
78
- const amenities = await subjectRepository.findBy({ Year: 2024 }, ["Year"]);
79
- console.table(amenities);
120
+ // Find by Code using custom method
121
+ const subjectFound = await subjectRepository.findByCode("JB");
122
+ console.info(subjectFound);
123
+ // Delete by Code using custom method
124
+ await subjectRepository.removeByCode("JB");
125
+ // Find with criteria
126
+ const subjects = await subjectRepository.findBy({ Year: 2024 }, ["Year"]);
127
+ console.table(subjects);
128
+ // Use pagination
129
+ const page = await subjectRepository.findWithPagination({ page: 0, size: 10 });
130
+ console.log(`Found ${page.totalElements} subjects across ${page.totalPages} pages`);
131
+ // Use query builder
132
+ const queryBuilder = await subjectRepository.createQueryBuilder();
133
+ const customQuery = queryBuilder
134
+ .select(['Id', 'Name'])
135
+ .where('Year = 2024')
136
+ .orderBy('Name', 'ASC')
137
+ .limit(5)
138
+ .getQuery();
139
+ const customResults = await duckDbRepository.executeQuery(customQuery);
140
+ console.table(customResults);
141
+ // Use transactions
142
+ await subjectRepository.withTransaction(async (transaction) => {
143
+ const newSubject = new Subject('DB', 'Database', 'Database course', 2024);
144
+ await subjectRepository.save(newSubject);
145
+ // If any operation throws an error, the transaction will be rolled back
146
+ if (newSubject.Code !== 'DB') {
147
+ throw new Error('Something went wrong');
148
+ }
149
+ // If we get here, the transaction will be committed
150
+ });
151
+ // Example usage in test.ts or another file
152
+ // Export a table to CSV
153
+ await subjectRepository.exportData({
154
+ format: 'csv',
155
+ fileName: 'subjects.csv',
156
+ csvOptions: {
157
+ header: true,
158
+ delimiter: ','
159
+ }
160
+ });
161
+ // Export query results to JSON
162
+ const query = `SELECT * FROM main.subjects WHERE Year = 2024`;
163
+ await subjectRepository.exportQuery(query, {
164
+ format: 'json',
165
+ fileName: 'subjects-2024.json',
166
+ jsonOptions: {
167
+ pretty: true
168
+ }
169
+ });
170
+ // Export all data to Parquet using DuckDbRepository directly
171
+ await duckDbRepository.exportTable('subjects', {
172
+ format: 'parquet',
173
+ fileName: 'subjects.parquet',
174
+ parquetOptions: {
175
+ compression: 'ZSTD'
176
+ }
177
+ });
80
178
  }
81
179
  test();
82
180
  //# sourceMappingURL=test.js.map
package/dist/test.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4BAA0B;AAC1B,yEAA4F;AAC5F,oEAAgE;AAChE,wEAAoF;AAGpF,yFAAyF;AACzF,MAAM,gBAAgB,GAAqB,oCAAgB,CAAC,YAAY,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,kCAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAC,CAAC,CAAA;AAG1I,IAAM,OAAO,GAAb,MAAM,OAAO;IAEhB,YAAY,KAAa,EAAE,EAAE,IAAa,EAAE,WAAoB,EAAE,OAAe,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;QACvG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAID,EAAE,CAAU;IAGZ,IAAI,CAAU;IAId,WAAW,CAAU;IAIrB,IAAI,CAAS;CAEhB,CAAA;AAxBY,0BAAO;AAWhB;IAFC,IAAA,wBAAE,GAAE;IACJ,IAAA,uCAAiB,EAAC,SAAS,CAAC;;mCACjB;AAGZ;IADC,IAAA,uCAAiB,EAAC,SAAS,CAAC;;qCACf;AAId;IADC,IAAA,uCAAiB,EAAC,SAAS,CAAC;;4CACR;AAIrB;IADC,IAAA,uCAAiB,EAAC,KAAK,CAAC;;qCACZ;kBAtBJ,OAAO;IADnB,4BAAM;;GACM,OAAO,CAwBnB;AAED,IACM,iBAAiB,GADvB,MACM,iBAAkB,SAAQ,gCAA+B;IAC3D;QACI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC5B,CAAC;CACJ,CAAA;AAJK,iBAAiB;IADtB,IAAA,gCAAU,EAAC,OAAO,CAAC;;GACd,iBAAiB,CAItB;AAGD,KAAK,UAAU,IAAI;IACf,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAClD,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,MAAM,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IACjC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,kCAAkC,EAAE,IAAI,CAAC,CAAC;IAG1F,MAAM,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,CAAC;IAC3C,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,MAAM,aAAa,GAAY,MAAM,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5B,MAAM,aAAa,GAAY,MAAM,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE5B,MAAM,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAEzC,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC7B,CAAC;AAED,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "duckdb-tinyorm",
3
- "version": "1.0.44",
3
+ "version": "2.0.0",
4
4
  "description": "TinyORM for Duckdb, easy setup",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -9,7 +9,8 @@
9
9
  "prepublishOnly": "npm run build",
10
10
  "test": "echo 'Test not implemented'",
11
11
  "dev": "nodemon --exec ts-node src/test.ts",
12
- "start": "node dist/index.js"
12
+ "start": "node dist/index.js",
13
+ "release": "node scripts/release.js"
13
14
  },
14
15
  "publishConfig": {
15
16
  "registry": "https://registry.npmjs.org"
package/tsconfig.json CHANGED
@@ -20,5 +20,13 @@
20
20
  "skipDefaultLibCheck": true,
21
21
  "sourceMap": true,
22
22
  "emitDecoratorMetadata": true
23
- }
23
+ },
24
+ "include": [
25
+ "src/**/*"
26
+ ],
27
+ "exclude": [
28
+ "node_modules",
29
+ "dist",
30
+ "scripts"
31
+ ]
24
32
  }