@dqcai/sqlite 1.0.0 → 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.
- package/README.md +434 -2522
- package/lib/adapters/base-adapter.d.ts.map +1 -1
- package/lib/adapters/index.d.ts +2 -0
- package/lib/adapters/index.d.ts.map +1 -0
- package/lib/core/base-service.d.ts +132 -0
- package/lib/core/base-service.d.ts.map +1 -0
- package/lib/core/database-factory.d.ts +98 -0
- package/lib/core/database-factory.d.ts.map +1 -0
- package/lib/core/database-manager.d.ts +208 -0
- package/lib/core/database-manager.d.ts.map +1 -0
- package/lib/core/index.d.ts +5 -0
- package/lib/core/index.d.ts.map +1 -0
- package/lib/core/universal-dao.d.ts +64 -0
- package/lib/core/universal-dao.d.ts.map +1 -0
- package/lib/index.d.ts +324 -14
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +45 -1
- package/lib/index.mjs.map +1 -1
- package/lib/index.umd.js +1 -1
- package/lib/index.umd.js.map +1 -1
- package/lib/query/query-builder.d.ts +120 -0
- package/lib/query/query-builder.d.ts.map +1 -0
- package/lib/types.d.ts +126 -4
- package/lib/types.d.ts.map +1 -1
- package/lib/utils/csv-import.d.ts +102 -0
- package/lib/utils/csv-import.d.ts.map +1 -0
- package/lib/utils/index.d.ts +3 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/migration-manager.d.ts +184 -0
- package/lib/utils/migration-manager.d.ts.map +1 -0
- package/package.json +83 -63
- package/README-all-source.md +0 -1248
- package/README-ps-gemini.md +0 -1180
- package/lib/adapters/browser-adapter.d.ts +0 -17
- package/lib/adapters/browser-adapter.d.ts.map +0 -1
- package/lib/adapters/bun-adapter.d.ts +0 -7
- package/lib/adapters/bun-adapter.d.ts.map +0 -1
- package/lib/adapters/deno-adapter.d.ts +0 -7
- package/lib/adapters/deno-adapter.d.ts.map +0 -1
- package/lib/adapters/node-adapter.d.ts +0 -7
- package/lib/adapters/node-adapter.d.ts.map +0 -1
- package/lib/adapters/react-native-adapter.d.ts +0 -20
- package/lib/adapters/react-native-adapter.d.ts.map +0 -1
- package/lib/query-builder.d.ts +0 -19
- package/lib/query-builder.d.ts.map +0 -1
- package/lib/sqlite-manager.d.ts +0 -11
- package/lib/sqlite-manager.d.ts.map +0 -1
- package/scripts/obfuscate.mjs +0 -155
- package/scripts/version-manager.js +0 -317
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/base-adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/base-adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC3D,8BAAsB,WAAY,YAAW,aAAa;IACxD,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACzD,QAAQ,CAAC,WAAW,IAAI,OAAO;IAE/B,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAI1C,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM;CAoB9D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { QueryTable, WhereClause, OrderByClause, ImportResult, ColumnMapping, ImportOptions } from "../types";
|
|
2
|
+
import { UniversalDAO } from "./universal-dao";
|
|
3
|
+
export interface ServiceStatus {
|
|
4
|
+
schemaName: string;
|
|
5
|
+
isOpened: boolean;
|
|
6
|
+
isInitialized: boolean;
|
|
7
|
+
hasDao: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface HealthCheckResult {
|
|
10
|
+
healthy: boolean;
|
|
11
|
+
schemaName: string;
|
|
12
|
+
recordCount?: number;
|
|
13
|
+
error?: string;
|
|
14
|
+
timestamp: string;
|
|
15
|
+
}
|
|
16
|
+
export interface FindOptions {
|
|
17
|
+
where?: WhereClause[];
|
|
18
|
+
orderBy?: OrderByClause[];
|
|
19
|
+
limit?: number;
|
|
20
|
+
offset?: number;
|
|
21
|
+
columns?: string[];
|
|
22
|
+
}
|
|
23
|
+
export type ErrorHandler = (error: Error) => void;
|
|
24
|
+
export type EventHandler = (data: any) => void;
|
|
25
|
+
/**
|
|
26
|
+
* Universal BaseService - An enhanced abstract base class designed to provide
|
|
27
|
+
* comprehensive CRUD operations and database management features across all
|
|
28
|
+
* operating systems and frameworks using TypeScript and JavaScript.
|
|
29
|
+
*/
|
|
30
|
+
export declare abstract class BaseService<T = any> {
|
|
31
|
+
protected dao: UniversalDAO | null;
|
|
32
|
+
protected schemaName: string;
|
|
33
|
+
protected tableName: string;
|
|
34
|
+
protected isOpened: boolean;
|
|
35
|
+
protected isInitialized: boolean;
|
|
36
|
+
protected errorHandlers: Map<string, ErrorHandler>;
|
|
37
|
+
protected eventListeners: Map<string, EventHandler[]>;
|
|
38
|
+
protected primaryKeyFields: string[];
|
|
39
|
+
private cache;
|
|
40
|
+
private reconnectHandler;
|
|
41
|
+
constructor(schemaName: string, tableName?: string);
|
|
42
|
+
private bindMethods;
|
|
43
|
+
/**
|
|
44
|
+
* Set primary key fields for the service
|
|
45
|
+
*/
|
|
46
|
+
setPrimaryKeyFields(fields: string[]): this;
|
|
47
|
+
/**
|
|
48
|
+
* Initialize the service and establish database connection
|
|
49
|
+
*/
|
|
50
|
+
init(): Promise<this>;
|
|
51
|
+
/**
|
|
52
|
+
* Create a new record
|
|
53
|
+
*/
|
|
54
|
+
create(data: Partial<T>): Promise<T | null>;
|
|
55
|
+
/**
|
|
56
|
+
* Update an existing record
|
|
57
|
+
*/
|
|
58
|
+
update(id: any, data: Partial<T>): Promise<T | null>;
|
|
59
|
+
/**
|
|
60
|
+
* Delete a record by ID
|
|
61
|
+
*/
|
|
62
|
+
delete(id: any): Promise<boolean>;
|
|
63
|
+
/**
|
|
64
|
+
* Find a record by ID
|
|
65
|
+
*/
|
|
66
|
+
findById(id: any): Promise<T | null>;
|
|
67
|
+
/**
|
|
68
|
+
* Find the first record matching conditions
|
|
69
|
+
*/
|
|
70
|
+
findFirst(conditions?: Record<string, any>): Promise<T | null>;
|
|
71
|
+
/**
|
|
72
|
+
* Find all records matching conditions
|
|
73
|
+
*/
|
|
74
|
+
findAll(conditions?: Record<string, any>, options?: FindOptions): Promise<T[]>;
|
|
75
|
+
/**
|
|
76
|
+
* Count records matching conditions
|
|
77
|
+
*/
|
|
78
|
+
count(where?: WhereClause[] | Record<string, any>): Promise<number>;
|
|
79
|
+
/**
|
|
80
|
+
* Check if a record exists by ID
|
|
81
|
+
*/
|
|
82
|
+
exists(id: any): Promise<boolean>;
|
|
83
|
+
/**
|
|
84
|
+
* Truncate table (delete all records and reset auto-increment)
|
|
85
|
+
*/
|
|
86
|
+
truncate(): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Bulk insert records
|
|
89
|
+
*/
|
|
90
|
+
bulkInsert(items: Partial<T>[]): Promise<ImportResult>;
|
|
91
|
+
/**
|
|
92
|
+
* Bulk create records with transaction support
|
|
93
|
+
*/
|
|
94
|
+
bulkCreate(dataArray: Record<string, any>[]): Promise<T[]>;
|
|
95
|
+
/**
|
|
96
|
+
* Execute operations within a transaction
|
|
97
|
+
*/
|
|
98
|
+
executeTransaction(callback: () => Promise<any>): Promise<any>;
|
|
99
|
+
/**
|
|
100
|
+
* Import data from CSV
|
|
101
|
+
*/
|
|
102
|
+
importFromCSV(csvData: string, options?: {
|
|
103
|
+
delimiter?: string;
|
|
104
|
+
hasHeader?: boolean;
|
|
105
|
+
columnMappings?: ColumnMapping[];
|
|
106
|
+
} & Partial<ImportOptions>): Promise<ImportResult>;
|
|
107
|
+
/**
|
|
108
|
+
* Import data with column mapping
|
|
109
|
+
*/
|
|
110
|
+
importDataWithMapping(data: Record<string, any>[], columnMappings: ColumnMapping[], options?: Partial<ImportOptions>): Promise<ImportResult>;
|
|
111
|
+
protected buildSelectTable(conditions?: Record<string, any>, options?: FindOptions): QueryTable;
|
|
112
|
+
protected buildDataTable(data: Record<string, any>): QueryTable;
|
|
113
|
+
protected buildWhereFromObject(obj: Record<string, any>): WhereClause[];
|
|
114
|
+
on(event: string, handler: EventHandler): this;
|
|
115
|
+
off(event: string, handler: EventHandler): this;
|
|
116
|
+
protected _emit(event: string, data: any): void;
|
|
117
|
+
setErrorHandler(errorType: string, handler: ErrorHandler): this;
|
|
118
|
+
protected _handleError(errorType: string, error: Error): void;
|
|
119
|
+
protected _validateData(data: any): void;
|
|
120
|
+
protected _ensureInitialized(): Promise<void>;
|
|
121
|
+
private ensureValidConnection;
|
|
122
|
+
getDatabaseInfo(): Promise<any>;
|
|
123
|
+
getTableInfo(): Promise<any[]>;
|
|
124
|
+
getStatus(): ServiceStatus;
|
|
125
|
+
healthCheck(): Promise<HealthCheckResult>;
|
|
126
|
+
close(): Promise<boolean>;
|
|
127
|
+
destroy(): void;
|
|
128
|
+
getAll(conditions?: Record<string, any>, options?: FindOptions): Promise<T[]>;
|
|
129
|
+
getById(id: string | number): Promise<T | null>;
|
|
130
|
+
getFirst(conditions?: Record<string, any>): Promise<T | null>;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=base-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-service.d.ts","sourceRoot":"","sources":["../../src/core/base-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { SQLiteAdapter, DatabaseSchema, DbFactoryOptions } from "../types";
|
|
2
|
+
import { UniversalDAO } from "./universal-dao";
|
|
3
|
+
/**
|
|
4
|
+
* Universal DatabaseFactory - A powerful utility class designed to create and manage
|
|
5
|
+
* UniversalDAO instances from JSON schema across all operating systems and frameworks
|
|
6
|
+
* using TypeScript and JavaScript. It provides methods for creating new, opening existing
|
|
7
|
+
* databases, checking integrity, and managing database lifecycle.
|
|
8
|
+
*/
|
|
9
|
+
export declare class DatabaseFactory {
|
|
10
|
+
private static adapters;
|
|
11
|
+
/**
|
|
12
|
+
* Register a SQLite adapter for use by the factory
|
|
13
|
+
* @param adapter The SQLite adapter to register
|
|
14
|
+
*/
|
|
15
|
+
static registerAdapter(adapter: SQLiteAdapter): void;
|
|
16
|
+
/**
|
|
17
|
+
* Get information about the current runtime environment
|
|
18
|
+
* @returns A string describing the current environment
|
|
19
|
+
*/
|
|
20
|
+
static getEnvironmentInfo(): string;
|
|
21
|
+
/**
|
|
22
|
+
* Detect the best available SQLite adapter for the current environment
|
|
23
|
+
* @returns The best available SQLite adapter
|
|
24
|
+
* @throws Error if no supported adapter is found
|
|
25
|
+
*/
|
|
26
|
+
private static detectBestAdapter;
|
|
27
|
+
/**
|
|
28
|
+
* Validate schema version compatibility between database and config
|
|
29
|
+
* @param dao The UniversalDAO instance
|
|
30
|
+
* @param schema The database schema configuration
|
|
31
|
+
*/
|
|
32
|
+
private static validateSchemaVersion;
|
|
33
|
+
/**
|
|
34
|
+
* Validate the provided schema object to ensure it has minimum required properties
|
|
35
|
+
* @param schema The schema object to validate
|
|
36
|
+
* @returns True if the schema is valid, otherwise throws an error
|
|
37
|
+
*/
|
|
38
|
+
private static validateSchema;
|
|
39
|
+
/**
|
|
40
|
+
* Create a new UniversalDAO instance (equivalent to SQLiteDAO)
|
|
41
|
+
* @param dbPath Path to the database file
|
|
42
|
+
* @param options Configuration options
|
|
43
|
+
* @returns A new UniversalDAO instance
|
|
44
|
+
*/
|
|
45
|
+
static createDAO(dbPath: string, options?: {
|
|
46
|
+
adapter?: SQLiteAdapter;
|
|
47
|
+
createIfNotExists?: boolean;
|
|
48
|
+
forceRecreate?: boolean;
|
|
49
|
+
}): UniversalDAO;
|
|
50
|
+
/**
|
|
51
|
+
* Opens an existing database without initializing its schema.
|
|
52
|
+
* Includes integrity check to detect corrupted files.
|
|
53
|
+
* @param dbName The name of the database (e.g., 'core.db' or 'core').
|
|
54
|
+
* @param options Additional options for database connection.
|
|
55
|
+
* @returns A promise that resolves to a connected UniversalDAO instance.
|
|
56
|
+
*/
|
|
57
|
+
static openExisting(dbName: string, options?: Omit<DbFactoryOptions, "config" | "configAsset" | "configPath">): Promise<UniversalDAO>;
|
|
58
|
+
/**
|
|
59
|
+
* Internal method to create or open database with various options
|
|
60
|
+
* @param options Configuration options
|
|
61
|
+
* @param isForceInit Allow re-initialization of existing database
|
|
62
|
+
* @param isForceDelete Force delete and recreate database
|
|
63
|
+
* @returns Promise that resolves to initialized UniversalDAO
|
|
64
|
+
*/
|
|
65
|
+
private static createOrOpenInternal;
|
|
66
|
+
/**
|
|
67
|
+
* Create a new database (DANGEROUS - will delete existing database)
|
|
68
|
+
* Only use this for migrations or development, not in production
|
|
69
|
+
* @param options Configuration options
|
|
70
|
+
* @returns Promise that resolves to initialized UniversalDAO
|
|
71
|
+
*/
|
|
72
|
+
static create(options: DbFactoryOptions): Promise<UniversalDAO>;
|
|
73
|
+
/**
|
|
74
|
+
* Smart method to create or open database
|
|
75
|
+
* Only creates new tables if they don't exist and initializes file initially
|
|
76
|
+
* Will check if file exists and is valid before deciding to create new or open existing
|
|
77
|
+
* @param options Database configuration options
|
|
78
|
+
* @param isForceInit Force re-initialization of tables even if they exist (default: false)
|
|
79
|
+
* @returns Promise that resolves to initialized UniversalDAO
|
|
80
|
+
*/
|
|
81
|
+
static createOrOpen(options: DbFactoryOptions, isForceInit?: boolean): Promise<UniversalDAO>;
|
|
82
|
+
/**
|
|
83
|
+
* Convenience method to create a database from a JSON asset
|
|
84
|
+
* @param configAsset The imported/required JSON configuration
|
|
85
|
+
* @param options Additional options for database creation
|
|
86
|
+
* @returns Promise that resolves to initialized UniversalDAO
|
|
87
|
+
*/
|
|
88
|
+
static createFromAsset(configAsset: DatabaseSchema, options?: Omit<DbFactoryOptions, "config" | "configAsset" | "configPath">): Promise<UniversalDAO>;
|
|
89
|
+
/**
|
|
90
|
+
* Convenience method to create a database from a configuration object
|
|
91
|
+
* @param config The database schema configuration object
|
|
92
|
+
* @param options Additional options for database creation
|
|
93
|
+
* @returns Promise that resolves to initialized UniversalDAO
|
|
94
|
+
*/
|
|
95
|
+
static createFromConfig(config: DatabaseSchema, options?: Omit<DbFactoryOptions, "config" | "configAsset" | "configPath">): Promise<UniversalDAO>;
|
|
96
|
+
}
|
|
97
|
+
export default DatabaseFactory;
|
|
98
|
+
//# sourceMappingURL=database-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-factory.d.ts","sourceRoot":"","sources":["../../src/core/database-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAuB;IAE9C;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAIpD;;;OAGG;IACH,MAAM,CAAC,kBAAkB,IAAI,MAAM;IAcnC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAShC;;;;OAIG;mBACkB,qBAAqB;IAoB1C;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAwB7B;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CACd,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,aAAa,CAAC;QACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,GACA,YAAY;IAef;;;;;;OAMG;WACiB,YAAY,CAC9B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,IAAI,CACX,gBAAgB,EAChB,QAAQ,GAAG,aAAa,GAAG,YAAY,CACnC,GACL,OAAO,CAAC,YAAY,CAAC;IAoBxB;;;;;;OAMG;mBACkB,oBAAoB;IA2DzC;;;;;OAKG;WACiB,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAI5E;;;;;;;OAOG;WACiB,YAAY,CAC9B,OAAO,EAAE,gBAAgB,EACzB,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,YAAY,CAAC;IAIxB;;;;;OAKG;WACiB,eAAe,CACjC,WAAW,EAAE,cAAc,EAC3B,OAAO,GAAE,IAAI,CACX,gBAAgB,EAChB,QAAQ,GAAG,aAAa,GAAG,YAAY,CACnC,GACL,OAAO,CAAC,YAAY,CAAC;IAaxB;;;;;OAKG;WACiB,gBAAgB,CAClC,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,IAAI,CACX,gBAAgB,EAChB,QAAQ,GAAG,aAAa,GAAG,YAAY,CACnC,GACL,OAAO,CAAC,YAAY,CAAC;CAYzB;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { DatabaseSchema, ImportOptions, ImportResult, ColumnMapping } from "../types";
|
|
2
|
+
import { UniversalDAO } from "./universal-dao";
|
|
3
|
+
export type DatabaseConnections = {
|
|
4
|
+
[key: string]: UniversalDAO;
|
|
5
|
+
};
|
|
6
|
+
export interface RoleConfig {
|
|
7
|
+
roleName: string;
|
|
8
|
+
requiredDatabases: string[];
|
|
9
|
+
optionalDatabases?: string[];
|
|
10
|
+
priority?: number;
|
|
11
|
+
}
|
|
12
|
+
export type RoleRegistry = {
|
|
13
|
+
[roleName: string]: RoleConfig;
|
|
14
|
+
};
|
|
15
|
+
export interface DatabaseImportConfig {
|
|
16
|
+
databaseKey: string;
|
|
17
|
+
tableName: string;
|
|
18
|
+
data: Record<string, any>[];
|
|
19
|
+
options?: Partial<ImportOptions>;
|
|
20
|
+
columnMappings?: ColumnMapping[];
|
|
21
|
+
}
|
|
22
|
+
export interface BulkImportResult {
|
|
23
|
+
totalDatabases: number;
|
|
24
|
+
successDatabases: number;
|
|
25
|
+
results: Record<string, ImportResult>;
|
|
26
|
+
errors: Record<string, Error>;
|
|
27
|
+
executionTime: number;
|
|
28
|
+
}
|
|
29
|
+
export interface SchemaManager {
|
|
30
|
+
getSchema(key: string): DatabaseSchema | undefined;
|
|
31
|
+
registerSchema(key: string, schema: DatabaseSchema): void;
|
|
32
|
+
getAllSchemaKeys(): string[];
|
|
33
|
+
hasSchema(key: string): boolean;
|
|
34
|
+
}
|
|
35
|
+
export declare class DatabaseManager {
|
|
36
|
+
private static maxConnections;
|
|
37
|
+
private static connections;
|
|
38
|
+
private static isInitialized;
|
|
39
|
+
private static roleRegistry;
|
|
40
|
+
private static currentRole;
|
|
41
|
+
private static currentUserRoles;
|
|
42
|
+
private static activeDatabases;
|
|
43
|
+
private static isClosingConnections;
|
|
44
|
+
private static schemaConfigurations;
|
|
45
|
+
private static schemaManager;
|
|
46
|
+
private static eventListeners;
|
|
47
|
+
/**
|
|
48
|
+
* Set a schema manager for dynamic schema handling
|
|
49
|
+
*/
|
|
50
|
+
static setSchemaManager(manager: SchemaManager): void;
|
|
51
|
+
/**
|
|
52
|
+
* Register a schema configuration dynamically
|
|
53
|
+
*/
|
|
54
|
+
static registerSchema(key: string, schema: DatabaseSchema): void;
|
|
55
|
+
/**
|
|
56
|
+
* Register multiple schemas at once
|
|
57
|
+
*/
|
|
58
|
+
static registerSchemas(schemas: Record<string, DatabaseSchema>): void;
|
|
59
|
+
/**
|
|
60
|
+
* Get schema from internal store or external manager
|
|
61
|
+
*/
|
|
62
|
+
private static getSchema;
|
|
63
|
+
/**
|
|
64
|
+
* Get all available schema keys
|
|
65
|
+
*/
|
|
66
|
+
static getAvailableSchemas(): string[];
|
|
67
|
+
/**
|
|
68
|
+
* Register a role configuration
|
|
69
|
+
*/
|
|
70
|
+
static registerRole(roleConfig: RoleConfig): void;
|
|
71
|
+
/**
|
|
72
|
+
* Register multiple roles
|
|
73
|
+
*/
|
|
74
|
+
static registerRoles(roleConfigs: RoleConfig[]): void;
|
|
75
|
+
/**
|
|
76
|
+
* Get all registered roles
|
|
77
|
+
*/
|
|
78
|
+
static getRegisteredRoles(): RoleRegistry;
|
|
79
|
+
/**
|
|
80
|
+
* Get databases for a specific role
|
|
81
|
+
*/
|
|
82
|
+
static getRoleDatabases(roleName: string): string[];
|
|
83
|
+
/**
|
|
84
|
+
* Get databases for current user roles
|
|
85
|
+
*/
|
|
86
|
+
static getCurrentUserDatabases(): string[];
|
|
87
|
+
/**
|
|
88
|
+
* Initialize core database connection
|
|
89
|
+
*/
|
|
90
|
+
static initializeCoreConnection(): Promise<void>;
|
|
91
|
+
/**
|
|
92
|
+
* Set current user roles and initialize connections
|
|
93
|
+
*/
|
|
94
|
+
static setCurrentUserRoles(userRoles: string[], primaryRole?: string): Promise<void>;
|
|
95
|
+
/**
|
|
96
|
+
* Get current user roles
|
|
97
|
+
*/
|
|
98
|
+
static getCurrentUserRoles(): string[];
|
|
99
|
+
/**
|
|
100
|
+
* Get current primary role
|
|
101
|
+
*/
|
|
102
|
+
static getCurrentRole(): string | null;
|
|
103
|
+
/**
|
|
104
|
+
* Initialize connections for current user roles
|
|
105
|
+
*/
|
|
106
|
+
private static initializeUserRoleConnections;
|
|
107
|
+
/**
|
|
108
|
+
* Cleanup unused connections
|
|
109
|
+
*/
|
|
110
|
+
private static cleanupUnusedConnections;
|
|
111
|
+
/**
|
|
112
|
+
* Check if current user has access to database
|
|
113
|
+
*/
|
|
114
|
+
static hasAccessToDatabase(dbKey: string): boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Get database connection
|
|
117
|
+
*/
|
|
118
|
+
static get(key: string): UniversalDAO;
|
|
119
|
+
/**
|
|
120
|
+
* Register event listener for database reconnection
|
|
121
|
+
*/
|
|
122
|
+
static onDatabaseReconnect(schemaName: string, callback: (dao: UniversalDAO) => void): void;
|
|
123
|
+
/**
|
|
124
|
+
* Remove event listener for database reconnection
|
|
125
|
+
*/
|
|
126
|
+
static offDatabaseReconnect(schemaName: string, callback: (dao: UniversalDAO) => void): void;
|
|
127
|
+
/**
|
|
128
|
+
* Notify listeners of database reconnection
|
|
129
|
+
*/
|
|
130
|
+
private static notifyDatabaseReconnect;
|
|
131
|
+
/**
|
|
132
|
+
* Close all connections
|
|
133
|
+
*/
|
|
134
|
+
private static closeAllConnections;
|
|
135
|
+
/**
|
|
136
|
+
* Reopen connections
|
|
137
|
+
*/
|
|
138
|
+
static reopenConnections(): Promise<void>;
|
|
139
|
+
/**
|
|
140
|
+
* Ensure database connection exists and is active
|
|
141
|
+
*/
|
|
142
|
+
static ensureDatabaseConnection(key: string): Promise<UniversalDAO>;
|
|
143
|
+
/**
|
|
144
|
+
* Get all connections
|
|
145
|
+
*/
|
|
146
|
+
static getConnections(): DatabaseConnections;
|
|
147
|
+
/**
|
|
148
|
+
* Open all existing databases
|
|
149
|
+
*/
|
|
150
|
+
static openAllExisting(databaseKeys: string[]): Promise<boolean>;
|
|
151
|
+
/**
|
|
152
|
+
* Initialize databases lazily
|
|
153
|
+
*/
|
|
154
|
+
static initLazySchema(databaseKeys: string[]): Promise<boolean>;
|
|
155
|
+
/**
|
|
156
|
+
* Initialize all available databases
|
|
157
|
+
*/
|
|
158
|
+
static initializeAll(): Promise<void>;
|
|
159
|
+
/**
|
|
160
|
+
* Get database with lazy loading
|
|
161
|
+
*/
|
|
162
|
+
static getLazyLoading(key: string): Promise<UniversalDAO>;
|
|
163
|
+
/**
|
|
164
|
+
* Execute cross-schema transaction
|
|
165
|
+
*/
|
|
166
|
+
static executeCrossSchemaTransaction(schemas: string[], callback: (daos: Record<string, UniversalDAO>) => Promise<void>): Promise<void>;
|
|
167
|
+
/**
|
|
168
|
+
* Import data to table
|
|
169
|
+
*/
|
|
170
|
+
static importDataToTable(databaseKey: string, tableName: string, data: Record<string, any>[], options?: Partial<ImportOptions>): Promise<ImportResult>;
|
|
171
|
+
/**
|
|
172
|
+
* Import data with column mapping
|
|
173
|
+
*/
|
|
174
|
+
static importDataWithMapping(databaseKey: string, tableName: string, data: Record<string, any>[], columnMappings: ColumnMapping[], options?: Partial<ImportOptions>): Promise<ImportResult>;
|
|
175
|
+
/**
|
|
176
|
+
* Bulk import data
|
|
177
|
+
*/
|
|
178
|
+
static bulkImport(importConfigs: DatabaseImportConfig[]): Promise<BulkImportResult>;
|
|
179
|
+
/**
|
|
180
|
+
* Import from CSV
|
|
181
|
+
*/
|
|
182
|
+
static importFromCSV(databaseKey: string, tableName: string, csvData: string, options?: {
|
|
183
|
+
delimiter?: string;
|
|
184
|
+
hasHeader?: boolean;
|
|
185
|
+
columnMappings?: ColumnMapping[];
|
|
186
|
+
} & Partial<ImportOptions>): Promise<ImportResult>;
|
|
187
|
+
/**
|
|
188
|
+
* Get connection count
|
|
189
|
+
*/
|
|
190
|
+
static getConnectionCount(): number;
|
|
191
|
+
/**
|
|
192
|
+
* List all active connections
|
|
193
|
+
*/
|
|
194
|
+
static listConnections(): string[];
|
|
195
|
+
/**
|
|
196
|
+
* Close specific connection
|
|
197
|
+
*/
|
|
198
|
+
static closeConnection(dbKey: string): Promise<void>;
|
|
199
|
+
/**
|
|
200
|
+
* Close all connections and reset state
|
|
201
|
+
*/
|
|
202
|
+
static closeAll(): Promise<void>;
|
|
203
|
+
/**
|
|
204
|
+
* Logout user - close role-specific connections
|
|
205
|
+
*/
|
|
206
|
+
static logout(): Promise<void>;
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=database-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-manager.d.ts","sourceRoot":"","sources":["../../src/core/database-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { DatabaseSchema, ImportOptions, ImportResult, QueryTable, SQLiteAdapter, SQLiteResult, SQLiteRow, TypeMappingConfig, ColumnMapping } from "../types";
|
|
2
|
+
export declare class UniversalDAO {
|
|
3
|
+
private adapter;
|
|
4
|
+
private dbPath;
|
|
5
|
+
private options?;
|
|
6
|
+
private connection;
|
|
7
|
+
private isConnected;
|
|
8
|
+
private inTransaction;
|
|
9
|
+
private typeMappingConfig;
|
|
10
|
+
private createIfNotExists;
|
|
11
|
+
private forceRecreate;
|
|
12
|
+
constructor(adapter: SQLiteAdapter, dbPath: string, options?: {
|
|
13
|
+
createIfNotExists?: boolean;
|
|
14
|
+
forceRecreate?: boolean;
|
|
15
|
+
} | undefined);
|
|
16
|
+
connect(): Promise<void>;
|
|
17
|
+
disconnect(): Promise<void>;
|
|
18
|
+
close(): Promise<void>;
|
|
19
|
+
setTypeMappingConfig(config: TypeMappingConfig["type_mapping"]): void;
|
|
20
|
+
private convertToSQLiteType;
|
|
21
|
+
private getDefaultSQLiteType;
|
|
22
|
+
private processColumnDefinition;
|
|
23
|
+
initializeFromSchema(schema: DatabaseSchema): Promise<void>;
|
|
24
|
+
private dropAllTables;
|
|
25
|
+
private createTableWithForeignKeys;
|
|
26
|
+
private createIndexesForTable;
|
|
27
|
+
beginTransaction(): Promise<void>;
|
|
28
|
+
commitTransaction(): Promise<void>;
|
|
29
|
+
rollbackTransaction(): Promise<void>;
|
|
30
|
+
getSchemaVersion(): Promise<string>;
|
|
31
|
+
setSchemaVersion(version: string): Promise<void>;
|
|
32
|
+
insert(insertTable: QueryTable): Promise<SQLiteResult>;
|
|
33
|
+
update(updateTable: QueryTable): Promise<SQLiteResult>;
|
|
34
|
+
delete(deleteTable: QueryTable): Promise<SQLiteResult>;
|
|
35
|
+
select(selectTable: QueryTable): Promise<SQLiteRow>;
|
|
36
|
+
selectAll(selectTable: QueryTable): Promise<SQLiteRow[]>;
|
|
37
|
+
private buildSelectQuery;
|
|
38
|
+
private buildWhereClause;
|
|
39
|
+
convertJsonToQueryTable(tableName: string, json: Record<string, any>, idFields?: string[]): QueryTable;
|
|
40
|
+
importData(options: ImportOptions): Promise<ImportResult>;
|
|
41
|
+
importDataWithMapping(tableName: string, data: Record<string, any>[], columnMappings: ColumnMapping[], options?: Partial<ImportOptions>): Promise<ImportResult>;
|
|
42
|
+
importFromCSV(tableName: string, csvData: string, options?: {
|
|
43
|
+
delimiter?: string;
|
|
44
|
+
hasHeader?: boolean;
|
|
45
|
+
columnMappings?: ColumnMapping[];
|
|
46
|
+
} & Partial<ImportOptions>): Promise<ImportResult>;
|
|
47
|
+
private validateAndTransformRow;
|
|
48
|
+
private transformRowData;
|
|
49
|
+
private findValueForColumn;
|
|
50
|
+
private convertValueToColumnType;
|
|
51
|
+
private insertRow;
|
|
52
|
+
private insertOrUpdate;
|
|
53
|
+
private updateRowByColumns;
|
|
54
|
+
private isConflictError;
|
|
55
|
+
getDatabaseInfo(): Promise<any>;
|
|
56
|
+
getTableInfo(tableName: string): Promise<any[]>;
|
|
57
|
+
dropTable(tableName: string): Promise<void>;
|
|
58
|
+
isConnectionOpen(): boolean;
|
|
59
|
+
ensureConnected(): Promise<void>;
|
|
60
|
+
execute(sql: string, params?: any[]): Promise<SQLiteResult>;
|
|
61
|
+
getRst(sql: string, params?: any[]): Promise<SQLiteRow>;
|
|
62
|
+
getRsts(sql: string, params?: any[]): Promise<SQLiteRow[]>;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=universal-dao.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"universal-dao.d.ts","sourceRoot":"","sources":["../../src/core/universal-dao.ts"],"names":[],"mappings":"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"}
|