@dqcai/sqlite 1.0.0 → 2.0.2

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 (51) hide show
  1. package/README.md +1491 -2328
  2. package/lib/adapters/base-adapter.d.ts.map +1 -1
  3. package/lib/adapters/index.d.ts +2 -0
  4. package/lib/adapters/index.d.ts.map +1 -0
  5. package/lib/core/base-service.d.ts +119 -0
  6. package/lib/core/base-service.d.ts.map +1 -0
  7. package/lib/core/database-factory.d.ts +98 -0
  8. package/lib/core/database-factory.d.ts.map +1 -0
  9. package/lib/core/database-manager.d.ts +208 -0
  10. package/lib/core/database-manager.d.ts.map +1 -0
  11. package/lib/core/index.d.ts +5 -0
  12. package/lib/core/index.d.ts.map +1 -0
  13. package/lib/core/universal-dao.d.ts +64 -0
  14. package/lib/core/universal-dao.d.ts.map +1 -0
  15. package/lib/index.d.ts +324 -14
  16. package/lib/index.d.ts.map +1 -1
  17. package/lib/index.js +1 -1
  18. package/lib/index.js.map +1 -1
  19. package/lib/index.mjs +45 -1
  20. package/lib/index.mjs.map +1 -1
  21. package/lib/index.umd.js +1 -1
  22. package/lib/index.umd.js.map +1 -1
  23. package/lib/query/query-builder.d.ts +120 -0
  24. package/lib/query/query-builder.d.ts.map +1 -0
  25. package/lib/types.d.ts +142 -4
  26. package/lib/types.d.ts.map +1 -1
  27. package/lib/utils/csv-import.d.ts +102 -0
  28. package/lib/utils/csv-import.d.ts.map +1 -0
  29. package/lib/utils/index.d.ts +3 -0
  30. package/lib/utils/index.d.ts.map +1 -0
  31. package/lib/utils/migration-manager.d.ts +184 -0
  32. package/lib/utils/migration-manager.d.ts.map +1 -0
  33. package/package.json +82 -63
  34. package/README-all-source.md +0 -1248
  35. package/README-ps-gemini.md +0 -1180
  36. package/lib/adapters/browser-adapter.d.ts +0 -17
  37. package/lib/adapters/browser-adapter.d.ts.map +0 -1
  38. package/lib/adapters/bun-adapter.d.ts +0 -7
  39. package/lib/adapters/bun-adapter.d.ts.map +0 -1
  40. package/lib/adapters/deno-adapter.d.ts +0 -7
  41. package/lib/adapters/deno-adapter.d.ts.map +0 -1
  42. package/lib/adapters/node-adapter.d.ts +0 -7
  43. package/lib/adapters/node-adapter.d.ts.map +0 -1
  44. package/lib/adapters/react-native-adapter.d.ts +0 -20
  45. package/lib/adapters/react-native-adapter.d.ts.map +0 -1
  46. package/lib/query-builder.d.ts +0 -19
  47. package/lib/query-builder.d.ts.map +0 -1
  48. package/lib/sqlite-manager.d.ts +0 -11
  49. package/lib/sqlite-manager.d.ts.map +0 -1
  50. package/scripts/obfuscate.mjs +0 -155
  51. package/scripts/version-manager.js +0 -317
@@ -0,0 +1,120 @@
1
+ import { UniversalDAO } from '../core/universal-dao';
2
+ import { SQLiteRow } from '../types';
3
+ export interface QueryCondition {
4
+ field: string;
5
+ operator: string;
6
+ value: any;
7
+ }
8
+ export interface JoinClause {
9
+ type: 'INNER' | 'LEFT' | 'RIGHT' | 'FULL OUTER';
10
+ table: string;
11
+ condition: string;
12
+ }
13
+ export interface SubQuery {
14
+ query: QueryBuilder;
15
+ alias: string;
16
+ }
17
+ /**
18
+ * Enhanced QueryBuilder with advanced SQL query construction capabilities
19
+ */
20
+ export declare class QueryBuilder {
21
+ private tableName;
22
+ private selectFields;
23
+ private joinClauses;
24
+ private whereConditions;
25
+ private groupByFields;
26
+ private havingConditions;
27
+ private orderByFields;
28
+ private limitValue;
29
+ private offsetValue;
30
+ private params;
31
+ private unionQueries;
32
+ private subQueries;
33
+ private cteQueries;
34
+ private dao;
35
+ constructor(dao?: UniversalDAO);
36
+ static table(name: string, dao?: UniversalDAO): QueryBuilder;
37
+ static from(name: string, dao?: UniversalDAO): QueryBuilder;
38
+ select(fields: string | string[]): QueryBuilder;
39
+ selectRaw(raw: string): QueryBuilder;
40
+ selectDistinct(fields: string | string[]): QueryBuilder;
41
+ join(table: string, condition: string, type?: JoinClause['type']): QueryBuilder;
42
+ innerJoin(table: string, condition: string): QueryBuilder;
43
+ leftJoin(table: string, condition: string): QueryBuilder;
44
+ rightJoin(table: string, condition: string): QueryBuilder;
45
+ fullOuterJoin(table: string, condition: string): QueryBuilder;
46
+ where(field: string, operator: string, value?: any): QueryBuilder;
47
+ where(field: string, value: any): QueryBuilder;
48
+ where(conditions: Record<string, any>): QueryBuilder;
49
+ whereEquals(field: string, value: any): QueryBuilder;
50
+ whereNot(field: string, value: any): QueryBuilder;
51
+ whereLike(field: string, value: string): QueryBuilder;
52
+ whereNotLike(field: string, value: string): QueryBuilder;
53
+ whereIn(field: string, values: any[]): QueryBuilder;
54
+ whereNotIn(field: string, values: any[]): QueryBuilder;
55
+ whereBetween(field: string, min: any, max: any): QueryBuilder;
56
+ whereNotBetween(field: string, min: any, max: any): QueryBuilder;
57
+ whereNull(field: string): QueryBuilder;
58
+ whereNotNull(field: string): QueryBuilder;
59
+ whereExists(subquery: QueryBuilder): QueryBuilder;
60
+ whereNotExists(subquery: QueryBuilder): QueryBuilder;
61
+ orWhere(field: string, operator: string, value?: any): QueryBuilder;
62
+ orWhere(field: string, value: any): QueryBuilder;
63
+ groupBy(fields: string | string[]): QueryBuilder;
64
+ having(field: string, operator: string, value?: any): QueryBuilder;
65
+ havingCount(field: string, operator: string, value: number): QueryBuilder;
66
+ orderBy(field: string, direction?: 'ASC' | 'DESC'): QueryBuilder;
67
+ orderByDesc(field: string): QueryBuilder;
68
+ orderByRaw(raw: string): QueryBuilder;
69
+ latest(field?: string): QueryBuilder;
70
+ oldest(field?: string): QueryBuilder;
71
+ limit(count: number): QueryBuilder;
72
+ offset(count: number): QueryBuilder;
73
+ skip(count: number): QueryBuilder;
74
+ take(count: number): QueryBuilder;
75
+ firstRow(): QueryBuilder;
76
+ paginate(page: number, perPage: number): QueryBuilder;
77
+ union(query: QueryBuilder): QueryBuilder;
78
+ unionAll(query: QueryBuilder): QueryBuilder;
79
+ with(alias: string, query: QueryBuilder): QueryBuilder;
80
+ whereSubQuery(field: string, operator: string, subquery: QueryBuilder): QueryBuilder;
81
+ count(field?: string): QueryBuilder;
82
+ sum(field: string): QueryBuilder;
83
+ avg(field: string): QueryBuilder;
84
+ max(field: string): QueryBuilder;
85
+ min(field: string): QueryBuilder;
86
+ toSQL(): {
87
+ sql: string;
88
+ params: any[];
89
+ };
90
+ private buildCondition;
91
+ get(): Promise<SQLiteRow[]>;
92
+ first(): Promise<SQLiteRow | null>;
93
+ pluck(column: string): Promise<any[]>;
94
+ exists(): Promise<boolean>;
95
+ countResult(): Promise<number>;
96
+ static insert(tableName: string, data: Record<string, any>): {
97
+ sql: string;
98
+ params: any[];
99
+ };
100
+ static insertMany(tableName: string, dataArray: Record<string, any>[]): {
101
+ sql: string;
102
+ params: any[];
103
+ };
104
+ static update(tableName: string, data: Record<string, any>, where: string, whereParams?: any[]): {
105
+ sql: string;
106
+ params: any[];
107
+ };
108
+ static delete(tableName: string, where: string, whereParams?: any[]): {
109
+ sql: string;
110
+ params: any[];
111
+ };
112
+ static upsert(tableName: string, data: Record<string, any>, conflictColumns: string[]): {
113
+ sql: string;
114
+ params: any[];
115
+ };
116
+ clone(): QueryBuilder;
117
+ toRawSQL(): string;
118
+ explain(): QueryBuilder;
119
+ }
120
+ //# sourceMappingURL=query-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/query/query-builder.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -14,10 +14,145 @@ export interface SQLiteAdapter {
14
14
  connect(path: string): Promise<SQLiteConnection>;
15
15
  isSupported(): boolean;
16
16
  }
17
- export interface SQLiteConfig {
18
- path: string;
19
- timeout?: number;
20
- busyTimeout?: number;
17
+ export interface TypeMappingConfig {
18
+ type_mapping: {
19
+ [targetType: string]: {
20
+ [sourceType: string]: string;
21
+ };
22
+ };
23
+ }
24
+ export interface ColumnDefinition {
25
+ name: string;
26
+ type: string;
27
+ precision?: number;
28
+ scale?: number;
29
+ option_key?: string;
30
+ description?: string;
31
+ nullable?: boolean;
32
+ default?: any;
33
+ primary_key?: boolean;
34
+ auto_increment?: boolean;
35
+ enum?: string[] | number[];
36
+ unique?: boolean;
37
+ constraints?: string;
38
+ length?: number;
39
+ }
40
+ export interface Column {
41
+ name: string;
42
+ value?: any;
43
+ }
44
+ export interface WhereClause {
45
+ name: string;
46
+ value: any;
47
+ operator?: string;
48
+ }
49
+ export interface OrderByClause {
50
+ name: string;
51
+ direction?: "ASC" | "DESC";
52
+ }
53
+ export interface LimitOffset {
54
+ limit?: number;
55
+ offset?: number;
56
+ }
57
+ export interface QueryTable {
58
+ name: string;
59
+ cols: Column[];
60
+ wheres?: WhereClause[];
61
+ orderbys?: OrderByClause[];
62
+ limitOffset?: LimitOffset;
63
+ }
64
+ export interface JoinClause {
65
+ type: "INNER" | "LEFT" | "RIGHT" | "FULL";
66
+ table: string;
67
+ on: string;
68
+ }
69
+ export interface IndexDefinition {
70
+ name: string;
71
+ columns: string[];
72
+ unique?: boolean;
73
+ description?: string;
74
+ }
75
+ export type ForeignKeyAction = "CASCADE" | "RESTRICT" | "SET NULL" | "NO ACTION" | undefined;
76
+ export interface ForeignKeyDefinition {
77
+ name: string;
78
+ column: string;
79
+ references: {
80
+ table: string;
81
+ column: string;
82
+ };
83
+ on_delete?: string | ForeignKeyAction;
84
+ on_update?: string | ForeignKeyAction;
85
+ description?: string;
86
+ }
87
+ export interface TableDefinition {
88
+ name: string;
89
+ cols: ColumnDefinition[];
90
+ description?: string;
91
+ indexes?: IndexDefinition[];
92
+ foreign_keys?: ForeignKeyDefinition[];
93
+ }
94
+ export interface DatabaseSchema {
95
+ version: string;
96
+ database_name: string;
97
+ description?: string;
98
+ type_mapping?: TypeMappingConfig["type_mapping"];
99
+ schemas: Record<string, {
100
+ description?: string;
101
+ cols: ColumnDefinition[];
102
+ indexes?: IndexDefinition[];
103
+ foreign_keys?: ForeignKeyDefinition[];
104
+ }>;
105
+ }
106
+ export interface TransactionOperation {
107
+ type: "insert" | "update" | "delete" | "select";
108
+ table: QueryTable;
109
+ }
110
+ export interface ImportOptions {
111
+ tableName: string;
112
+ data: Record<string, any>[];
113
+ batchSize?: number;
114
+ onProgress?: (processed: number, total: number) => void;
115
+ onError?: (error: Error, rowIndex: number, rowData: Record<string, any>) => void;
116
+ skipErrors?: boolean;
117
+ validateData?: boolean;
118
+ updateOnConflict?: boolean;
119
+ conflictColumns?: string[];
120
+ includeAutoIncrementPK?: boolean;
121
+ }
122
+ export interface ImportResult {
123
+ totalRows: number;
124
+ successRows: number;
125
+ errorRows: number;
126
+ errors: Array<{
127
+ rowIndex: number;
128
+ error: string;
129
+ rowData: Record<string, any>;
130
+ }>;
131
+ executionTime: number;
132
+ }
133
+ export interface ColumnMapping {
134
+ sourceColumn: string;
135
+ targetColumn: string;
136
+ transform?: (value: any) => any;
137
+ }
138
+ export interface DbFactoryOptions {
139
+ config?: DatabaseSchema;
140
+ configAsset?: any;
141
+ dbDirectory?: string;
142
+ adapter?: SQLiteAdapter;
143
+ }
144
+ export interface ServiceStatus {
145
+ schemaName: string;
146
+ isOpened: boolean;
147
+ isInitialized: boolean;
148
+ hasDao: boolean;
149
+ }
150
+ export interface HealthCheckResult {
151
+ healthy: boolean;
152
+ schemaName: string;
153
+ recordCount?: number;
154
+ error?: string;
155
+ timestamp: string;
21
156
  }
22
157
  declare global {
23
158
  interface Window {
@@ -27,6 +162,8 @@ declare global {
27
162
  }
28
163
  var Deno: {
29
164
  env: any;
165
+ readTextFile?: (path: string) => Promise<string>;
166
+ writeTextFile?: (path: string, data: string) => Promise<void>;
30
167
  version?: {
31
168
  deno: string;
32
169
  };
@@ -37,6 +174,7 @@ declare global {
37
174
  [key: string]: any;
38
175
  } | undefined;
39
176
  var Windows: any;
177
+ var process: any;
40
178
  var Platform: {
41
179
  OS: string;
42
180
  Version?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,SAAS;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACjD,WAAW,IAAI,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,MAAM;QACd,GAAG,CAAC,EAAE,GAAG,CAAC;QACV,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,GAAG,CAAC;KACnG;IAGD,IAAI,IAAI,EAAE;QACR,GAAG,EAAE,GAAG,CAAC;QACT,OAAO,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,GAAG,SAAS,CAAC;IAGd,IAAI,GAAG,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,GAAG,SAAS,CAAC;IAGd,IAAI,OAAO,EAAE,GAAG,CAAC;IAGjB,IAAI,QAAQ,EAAE;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,SAAS,CAAC;CAMf"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ import { UniversalDAO } from '../core/universal-dao';
2
+ import { ImportOptions, ImportResult, ColumnMapping } from '../types';
3
+ export interface CSVParseOptions {
4
+ delimiter?: string;
5
+ quote?: string;
6
+ escape?: string;
7
+ hasHeader?: boolean;
8
+ skipEmptyLines?: boolean;
9
+ trimWhitespace?: boolean;
10
+ encoding?: string;
11
+ }
12
+ export interface CSVImportOptions extends CSVParseOptions {
13
+ columnMappings?: Record<string, string> | ColumnMapping[];
14
+ transform?: Record<string, (value: any, row: Record<string, any>, index: number) => any>;
15
+ validate?: Record<string, (value: any, row: Record<string, any>, index: number) => boolean | string>;
16
+ onRowParsed?: (row: Record<string, any>, index: number) => Record<string, any> | null;
17
+ onRowError?: (error: Error, row: Record<string, any>, index: number) => boolean;
18
+ maxRows?: number;
19
+ startFromRow?: number;
20
+ dateFormats?: string[];
21
+ booleanValues?: {
22
+ true: string[];
23
+ false: string[];
24
+ };
25
+ }
26
+ export interface CSVParseResult {
27
+ data: Record<string, any>[];
28
+ headers: string[];
29
+ totalRows: number;
30
+ parsedRows: number;
31
+ skippedRows: number;
32
+ errors: Array<{
33
+ row: number;
34
+ column?: string;
35
+ error: string;
36
+ rawData?: string;
37
+ }>;
38
+ }
39
+ export declare class CSVImporter {
40
+ private dao;
41
+ constructor(dao: UniversalDAO);
42
+ /**
43
+ * Parse CSV string into structured data
44
+ */
45
+ parseCSV(csvData: string, options?: CSVParseOptions): CSVParseResult;
46
+ /**
47
+ * Advanced CSV import with comprehensive options
48
+ */
49
+ importFromCSV(tableName: string, csvData: string, options?: CSVImportOptions & Partial<ImportOptions>): Promise<ImportResult & {
50
+ parseResult: CSVParseResult;
51
+ }>;
52
+ /**
53
+ * Import CSV from file path (Node.js/Deno environments)
54
+ */
55
+ importFromFile(tableName: string, filePath: string, options?: CSVImportOptions & Partial<ImportOptions>): Promise<ImportResult & {
56
+ parseResult: CSVParseResult;
57
+ }>;
58
+ /**
59
+ * Export table data to CSV format
60
+ */
61
+ exportToCSV(tableName: string, options?: {
62
+ columns?: string[];
63
+ where?: string;
64
+ orderBy?: string;
65
+ limit?: number;
66
+ delimiter?: string;
67
+ quote?: string;
68
+ includeHeaders?: boolean;
69
+ dateFormat?: string;
70
+ nullValue?: string;
71
+ }): Promise<string>;
72
+ private splitCSVLines;
73
+ private parseCSVRow;
74
+ private formatCSVRow;
75
+ private applyColumnMappings;
76
+ private autoConvertTypes;
77
+ private convertValue;
78
+ private parseDate;
79
+ private formatDate;
80
+ /**
81
+ * Static utility methods for parsing CSV values
82
+ */
83
+ static parseCSVValue(value: string, options?: {
84
+ autoConvert?: boolean;
85
+ booleanValues?: {
86
+ true: string[];
87
+ false: string[];
88
+ };
89
+ dateFormats?: string[];
90
+ }): any;
91
+ /**
92
+ * Validate CSV structure
93
+ */
94
+ static validateCSVStructure(csvData: string, options?: CSVParseOptions): {
95
+ isValid: boolean;
96
+ errors: string[];
97
+ rowCount: number;
98
+ columnCount: number;
99
+ headers: string[];
100
+ };
101
+ }
102
+ //# sourceMappingURL=csv-import.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv-import.d.ts","sourceRoot":"","sources":["../../src/utils/csv-import.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './csv-import';
2
+ export * from './migration-manager';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,184 @@
1
+ import { UniversalDAO } from '../core/universal-dao';
2
+ import { DatabaseSchema, ColumnDefinition } from '../types';
3
+ export interface Migration {
4
+ version: string;
5
+ description: string;
6
+ up: (dao: UniversalDAO) => Promise<void>;
7
+ down: (dao: UniversalDAO) => Promise<void>;
8
+ dependencies?: string[];
9
+ category?: string;
10
+ }
11
+ export interface MigrationRecord {
12
+ version: string;
13
+ description: string;
14
+ category?: string;
15
+ applied_at: string;
16
+ execution_time_ms: number;
17
+ checksum?: string;
18
+ }
19
+ export interface MigrationStatus {
20
+ version: string;
21
+ description: string;
22
+ category?: string;
23
+ applied: boolean;
24
+ applied_at?: string;
25
+ execution_time_ms?: number;
26
+ dependencies_met: boolean;
27
+ missing_dependencies: string[];
28
+ }
29
+ export interface MigrationPlan {
30
+ toApply: Migration[];
31
+ toRollback: Migration[];
32
+ conflicts: string[];
33
+ estimatedTime: number;
34
+ }
35
+ export interface MigrationOptions {
36
+ dryRun?: boolean;
37
+ stopOnError?: boolean;
38
+ validateChecksums?: boolean;
39
+ timeout?: number;
40
+ onProgress?: (current: number, total: number, migration: Migration) => void;
41
+ onError?: (error: Error, migration: Migration) => void;
42
+ }
43
+ export declare class MigrationManager {
44
+ private dao;
45
+ private migrations;
46
+ private migrationTable;
47
+ private schemaVersion;
48
+ constructor(dao: UniversalDAO, options?: {
49
+ migrationTable?: string;
50
+ schemaVersion?: string;
51
+ });
52
+ /**
53
+ * Add a single migration
54
+ */
55
+ addMigration(migration: Migration): void;
56
+ /**
57
+ * Add multiple migrations
58
+ */
59
+ addMigrations(migrations: Migration[]): void;
60
+ /**
61
+ * Load migrations from a directory or configuration
62
+ */
63
+ loadMigrations(migrations: Record<string, Migration>): void;
64
+ /**
65
+ * Remove a migration
66
+ */
67
+ removeMigration(version: string): boolean;
68
+ /**
69
+ * Get all registered migrations
70
+ */
71
+ getMigrations(): Migration[];
72
+ /**
73
+ * Get migration by version
74
+ */
75
+ getMigration(version: string): Migration | undefined;
76
+ /**
77
+ * Initialize the migration tracking table
78
+ */
79
+ initMigrationTable(): Promise<void>;
80
+ /**
81
+ * Get all applied migrations
82
+ */
83
+ getAppliedMigrations(): Promise<MigrationRecord[]>;
84
+ /**
85
+ * Get pending migrations
86
+ */
87
+ getPendingMigrations(): Promise<Migration[]>;
88
+ /**
89
+ * Get detailed status of all migrations
90
+ */
91
+ getDetailedStatus(): Promise<MigrationStatus[]>;
92
+ /**
93
+ * Create a migration plan
94
+ */
95
+ createMigrationPlan(targetVersion?: string, direction?: 'up' | 'down'): Promise<MigrationPlan>;
96
+ /**
97
+ * Run migrations up to a target version
98
+ */
99
+ migrate(targetVersion?: string, options?: MigrationOptions): Promise<MigrationRecord[]>;
100
+ /**
101
+ * Rollback migrations to a target version
102
+ */
103
+ rollback(targetVersion?: string, options?: MigrationOptions): Promise<void>;
104
+ /**
105
+ * Apply a single migration
106
+ */
107
+ private applyMigration;
108
+ /**
109
+ * Rollback a single migration
110
+ */
111
+ private rollbackMigration;
112
+ /**
113
+ * Reset all migrations (DANGEROUS - use with caution)
114
+ */
115
+ reset(options?: {
116
+ force?: boolean;
117
+ }): Promise<void>;
118
+ /**
119
+ * Validate migration integrity
120
+ */
121
+ validateIntegrity(): Promise<{
122
+ valid: boolean;
123
+ issues: string[];
124
+ }>;
125
+ /**
126
+ * Get migration history with statistics
127
+ */
128
+ getHistory(): Promise<{
129
+ totalMigrations: number;
130
+ appliedMigrations: number;
131
+ pendingMigrations: number;
132
+ categories: Record<string, number>;
133
+ totalExecutionTime: number;
134
+ averageExecutionTime: number;
135
+ recentMigrations: MigrationRecord[];
136
+ }>;
137
+ /**
138
+ * Create a migration from schema differences
139
+ */
140
+ static createMigrationFromSchema(fromSchema: DatabaseSchema, toSchema: DatabaseSchema, version: string, description?: string): Migration;
141
+ private validateMigration;
142
+ private checkDependencies;
143
+ private compareVersions;
144
+ private generateChecksum;
145
+ }
146
+ export declare const MigrationHelpers: {
147
+ /**
148
+ * Create a migration to add a new table
149
+ */
150
+ createTable(version: string, tableName: string, columns: ColumnDefinition[], options?: {
151
+ description?: string;
152
+ category?: string;
153
+ indexes?: Array<{
154
+ name: string;
155
+ columns: string[];
156
+ unique?: boolean;
157
+ }>;
158
+ }): Migration;
159
+ /**
160
+ * Create a migration to add a column
161
+ */
162
+ addColumn(version: string, tableName: string, columnName: string, columnType: string, options?: {
163
+ description?: string;
164
+ category?: string;
165
+ defaultValue?: any;
166
+ nullable?: boolean;
167
+ }): Migration;
168
+ /**
169
+ * Create a migration to add an index
170
+ */
171
+ addIndex(version: string, tableName: string, indexName: string, columns: string[], options?: {
172
+ description?: string;
173
+ category?: string;
174
+ unique?: boolean;
175
+ }): Migration;
176
+ /**
177
+ * Create a migration to run custom SQL
178
+ */
179
+ rawSQL(version: string, upSQL: string, downSQL: string, options?: {
180
+ description?: string;
181
+ category?: string;
182
+ }): Migration;
183
+ };
184
+ //# sourceMappingURL=migration-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-manager.d.ts","sourceRoot":"","sources":["../../src/utils/migration-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAgB,cAAc,EAAmB,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE3F,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;CACxD;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAAe;IAC1B,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,aAAa,CAAmB;gBAE5B,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;QACvC,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB;IAMD;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAKxC;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IAM5C;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;IAM3D;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIzC;;OAEG;IACH,aAAa,IAAI,SAAS,EAAE;IAM5B;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIpD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BzC;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAcxD;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IASlD;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAsBrD;;OAEG;IACG,mBAAmB,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,GAAE,IAAI,GAAG,MAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAmD1G;;OAEG;IACG,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA0CjG;;OAEG;IACG,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCrF;;OAEG;YACW,cAAc;IAqD5B;;OAEG;YACW,iBAAiB;IAgC/B;;OAEG;IACG,KAAK,CAAC,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC7D;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC;QACjC,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IA0CF;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,kBAAkB,EAAE,MAAM,CAAC;QAC3B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,gBAAgB,EAAE,eAAe,EAAE,CAAC;KACrC,CAAC;IAyBF;;OAEG;IACH,MAAM,CAAC,yBAAyB,CAC9B,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,SAAS;IAmCZ,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,gBAAgB;CAczB;AAID,eAAO,MAAM,gBAAgB;IAC3B;;OAEG;yBAEQ,MAAM,aACJ,MAAM,WACR,gBAAgB,EAAE,YACjB;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YAAC,MAAM,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;KACxE,GACA,SAAS;IAiCZ;;OAEG;uBAEQ,MAAM,aACJ,MAAM,cACL,MAAM,cACN,MAAM,YACR;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,GAAG,CAAC;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,GACA,SAAS;IAyBZ;;OAEG;sBAEQ,MAAM,aACJ,MAAM,aACN,MAAM,WACR,MAAM,EAAE,YACP;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,GACA,SAAS;IAkBZ;;OAEG;oBAEQ,MAAM,SACR,MAAM,WACJ,MAAM,YACL;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GACA,SAAS;CAab,CAAC"}