@sqlml/ui 0.3.4
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/LICENSE +21 -0
- package/README.md +36 -0
- package/client/dist/assets/index-CpRgSqWF.js +672 -0
- package/client/dist/assets/index-DMcl7wPy.css +1 -0
- package/client/dist/favicon.svg +17 -0
- package/client/dist/index.html +14 -0
- package/package.json +66 -0
- package/server/dist/app.module.d.ts +2 -0
- package/server/dist/app.module.js +55 -0
- package/server/dist/app.module.js.map +1 -0
- package/server/dist/common/entities/workspace.entity.d.ts +42 -0
- package/server/dist/common/entities/workspace.entity.js +48 -0
- package/server/dist/common/entities/workspace.entity.js.map +1 -0
- package/server/dist/core/core.module.d.ts +2 -0
- package/server/dist/core/core.module.js +31 -0
- package/server/dist/core/core.module.js.map +1 -0
- package/server/dist/core/health.controller.d.ts +7 -0
- package/server/dist/core/health.controller.js +37 -0
- package/server/dist/core/health.controller.js.map +1 -0
- package/server/dist/core/root.controller.d.ts +4 -0
- package/server/dist/core/root.controller.js +95 -0
- package/server/dist/core/root.controller.js.map +1 -0
- package/server/dist/core/sqlml.service.d.ts +80 -0
- package/server/dist/core/sqlml.service.js +237 -0
- package/server/dist/core/sqlml.service.js.map +1 -0
- package/server/dist/main.d.ts +1 -0
- package/server/dist/main.js +45 -0
- package/server/dist/main.js.map +1 -0
- package/server/dist/modules/config/config.controller.d.ts +18 -0
- package/server/dist/modules/config/config.controller.js +76 -0
- package/server/dist/modules/config/config.controller.js.map +1 -0
- package/server/dist/modules/config/config.module.d.ts +2 -0
- package/server/dist/modules/config/config.module.js +27 -0
- package/server/dist/modules/config/config.module.js.map +1 -0
- package/server/dist/modules/config/config.service.d.ts +31 -0
- package/server/dist/modules/config/config.service.js +376 -0
- package/server/dist/modules/config/config.service.js.map +1 -0
- package/server/dist/modules/database/database-connection.entity.d.ts +17 -0
- package/server/dist/modules/database/database-connection.entity.js +78 -0
- package/server/dist/modules/database/database-connection.entity.js.map +1 -0
- package/server/dist/modules/database/database.controller.d.ts +103 -0
- package/server/dist/modules/database/database.controller.js +236 -0
- package/server/dist/modules/database/database.controller.js.map +1 -0
- package/server/dist/modules/database/database.module.d.ts +2 -0
- package/server/dist/modules/database/database.module.js +26 -0
- package/server/dist/modules/database/database.module.js.map +1 -0
- package/server/dist/modules/database/database.service.d.ts +102 -0
- package/server/dist/modules/database/database.service.js +415 -0
- package/server/dist/modules/database/database.service.js.map +1 -0
- package/server/dist/modules/migration/migration-history.entity.d.ts +14 -0
- package/server/dist/modules/migration/migration-history.entity.js +66 -0
- package/server/dist/modules/migration/migration-history.entity.js.map +1 -0
- package/server/dist/modules/migration/migration-template.entity.d.ts +10 -0
- package/server/dist/modules/migration/migration-template.entity.js +52 -0
- package/server/dist/modules/migration/migration-template.entity.js.map +1 -0
- package/server/dist/modules/migration/migration.controller.d.ts +60 -0
- package/server/dist/modules/migration/migration.controller.js +159 -0
- package/server/dist/modules/migration/migration.controller.js.map +1 -0
- package/server/dist/modules/migration/migration.module.d.ts +2 -0
- package/server/dist/modules/migration/migration.module.js +27 -0
- package/server/dist/modules/migration/migration.module.js.map +1 -0
- package/server/dist/modules/migration/migration.service.d.ts +65 -0
- package/server/dist/modules/migration/migration.service.js +195 -0
- package/server/dist/modules/migration/migration.service.js.map +1 -0
- package/server/dist/modules/schema/dbml-diff.util.d.ts +42 -0
- package/server/dist/modules/schema/dbml-diff.util.js +193 -0
- package/server/dist/modules/schema/dbml-diff.util.js.map +1 -0
- package/server/dist/modules/schema/schema-snapshot.entity.d.ts +13 -0
- package/server/dist/modules/schema/schema-snapshot.entity.js +62 -0
- package/server/dist/modules/schema/schema-snapshot.entity.js.map +1 -0
- package/server/dist/modules/schema/schema.controller.d.ts +62 -0
- package/server/dist/modules/schema/schema.controller.js +188 -0
- package/server/dist/modules/schema/schema.controller.js.map +1 -0
- package/server/dist/modules/schema/schema.module.d.ts +2 -0
- package/server/dist/modules/schema/schema.module.js +30 -0
- package/server/dist/modules/schema/schema.module.js.map +1 -0
- package/server/dist/modules/schema/schema.service.d.ts +53 -0
- package/server/dist/modules/schema/schema.service.js +276 -0
- package/server/dist/modules/schema/schema.service.js.map +1 -0
- package/server/dist/modules/system/process-info.entity.d.ts +8 -0
- package/server/dist/modules/system/process-info.entity.js +44 -0
- package/server/dist/modules/system/process-info.entity.js.map +1 -0
- package/server/dist/modules/system/system.controller.d.ts +25 -0
- package/server/dist/modules/system/system.controller.js +64 -0
- package/server/dist/modules/system/system.controller.js.map +1 -0
- package/server/dist/modules/system/system.module.d.ts +2 -0
- package/server/dist/modules/system/system.module.js +26 -0
- package/server/dist/modules/system/system.module.js.map +1 -0
- package/server/dist/modules/system/system.service.d.ts +25 -0
- package/server/dist/modules/system/system.service.js +100 -0
- package/server/dist/modules/system/system.service.js.map +1 -0
- package/server/dist/modules/workspace/workspace.controller.d.ts +35 -0
- package/server/dist/modules/workspace/workspace.controller.js +132 -0
- package/server/dist/modules/workspace/workspace.controller.js.map +1 -0
- package/server/dist/modules/workspace/workspace.dto.d.ts +9 -0
- package/server/dist/modules/workspace/workspace.dto.js +39 -0
- package/server/dist/modules/workspace/workspace.dto.js.map +1 -0
- package/server/dist/modules/workspace/workspace.module.d.ts +2 -0
- package/server/dist/modules/workspace/workspace.module.js +26 -0
- package/server/dist/modules/workspace/workspace.module.js.map +1 -0
- package/server/dist/modules/workspace/workspace.service.d.ts +44 -0
- package/server/dist/modules/workspace/workspace.service.js +93 -0
- package/server/dist/modules/workspace/workspace.service.js.map +1 -0
- package/server/dist/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { ConfigService } from '../modules/config/config.service';
|
|
2
|
+
import { WorkspaceConfig } from '../common/entities/workspace.entity';
|
|
3
|
+
export declare class SqlmlService {
|
|
4
|
+
private configService;
|
|
5
|
+
private workspacePath;
|
|
6
|
+
constructor(configService: ConfigService);
|
|
7
|
+
getWorkspacePath(): string;
|
|
8
|
+
setWorkspacePath(workspacePath: string): void;
|
|
9
|
+
getConfig(): Promise<WorkspaceConfig>;
|
|
10
|
+
listMigrations(): Promise<string[]>;
|
|
11
|
+
readMigration(filename: string): Promise<string | null>;
|
|
12
|
+
listSchemaFiles(): Promise<string[]>;
|
|
13
|
+
readSchemaFile(filename: string): Promise<string | null>;
|
|
14
|
+
writeSchemaFile(filename: string, content: string): Promise<void>;
|
|
15
|
+
execCli(command: string): Promise<{
|
|
16
|
+
stdout: string;
|
|
17
|
+
stderr: string;
|
|
18
|
+
}>;
|
|
19
|
+
execCliSync(command: string): string;
|
|
20
|
+
listCliSnapshots(): Array<{
|
|
21
|
+
version: string;
|
|
22
|
+
dbmlContent: string;
|
|
23
|
+
meta: {
|
|
24
|
+
version: string;
|
|
25
|
+
createdAt: string;
|
|
26
|
+
description?: string;
|
|
27
|
+
sourceFile?: string;
|
|
28
|
+
checksum?: string;
|
|
29
|
+
migrationGenerated?: string;
|
|
30
|
+
};
|
|
31
|
+
}>;
|
|
32
|
+
readCurrentSchema(): Promise<string>;
|
|
33
|
+
writeSnapshotToDisk(snapshot: {
|
|
34
|
+
version: string;
|
|
35
|
+
dbmlContent: string;
|
|
36
|
+
name?: string;
|
|
37
|
+
description?: string;
|
|
38
|
+
checksum: string;
|
|
39
|
+
sourceFile?: string;
|
|
40
|
+
}): void;
|
|
41
|
+
deleteSnapshotFromDisk(version: string): void;
|
|
42
|
+
readHistory(): {
|
|
43
|
+
entries: Array<{
|
|
44
|
+
timestamp: string;
|
|
45
|
+
action: string;
|
|
46
|
+
version: string;
|
|
47
|
+
description?: string;
|
|
48
|
+
migration?: string;
|
|
49
|
+
changes?: {
|
|
50
|
+
tablesAdded?: string[];
|
|
51
|
+
tablesModified?: string[];
|
|
52
|
+
tablesRemoved?: string[];
|
|
53
|
+
};
|
|
54
|
+
}>;
|
|
55
|
+
};
|
|
56
|
+
addHistoryEntry(entry: {
|
|
57
|
+
action: 'snapshot:create' | 'snapshot:delete' | 'migration:generate' | 'diff';
|
|
58
|
+
version: string;
|
|
59
|
+
description?: string;
|
|
60
|
+
migration?: string;
|
|
61
|
+
changes?: {
|
|
62
|
+
tablesAdded?: string[];
|
|
63
|
+
tablesModified?: string[];
|
|
64
|
+
tablesRemoved?: string[];
|
|
65
|
+
};
|
|
66
|
+
}): void;
|
|
67
|
+
getWorkspaceInfo(): Promise<{
|
|
68
|
+
path: string;
|
|
69
|
+
hasConfig: boolean;
|
|
70
|
+
config: WorkspaceConfig;
|
|
71
|
+
migrations: {
|
|
72
|
+
count: number;
|
|
73
|
+
files: string[];
|
|
74
|
+
};
|
|
75
|
+
schemas: {
|
|
76
|
+
count: number;
|
|
77
|
+
files: string[];
|
|
78
|
+
};
|
|
79
|
+
}>;
|
|
80
|
+
}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.SqlmlService = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const path = require("path");
|
|
18
|
+
const fs = require("fs");
|
|
19
|
+
const child_process_1 = require("child_process");
|
|
20
|
+
const util_1 = require("util");
|
|
21
|
+
const config_service_1 = require("../modules/config/config.service");
|
|
22
|
+
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
23
|
+
let SqlmlService = class SqlmlService {
|
|
24
|
+
constructor(configService) {
|
|
25
|
+
this.configService = configService;
|
|
26
|
+
this.workspacePath = process.env.SQLML_WORKSPACE || process.cwd();
|
|
27
|
+
}
|
|
28
|
+
getWorkspacePath() {
|
|
29
|
+
return this.workspacePath;
|
|
30
|
+
}
|
|
31
|
+
setWorkspacePath(workspacePath) {
|
|
32
|
+
this.workspacePath = workspacePath;
|
|
33
|
+
}
|
|
34
|
+
async getConfig() {
|
|
35
|
+
return this.configService.getConfig();
|
|
36
|
+
}
|
|
37
|
+
async listMigrations() {
|
|
38
|
+
const config = await this.getConfig();
|
|
39
|
+
const migrationsDir = config?.paths?.migrations || './migrations';
|
|
40
|
+
const fullPath = path.join(this.workspacePath, migrationsDir);
|
|
41
|
+
if (!fs.existsSync(fullPath)) {
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
return fs.readdirSync(fullPath)
|
|
45
|
+
.filter(f => f.endsWith('.sql'))
|
|
46
|
+
.sort();
|
|
47
|
+
}
|
|
48
|
+
async readMigration(filename) {
|
|
49
|
+
const config = await this.getConfig();
|
|
50
|
+
const migrationsDir = config?.paths?.migrations || './migrations';
|
|
51
|
+
const filePath = path.join(this.workspacePath, migrationsDir, filename);
|
|
52
|
+
if (!fs.existsSync(filePath)) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
return fs.readFileSync(filePath, 'utf-8');
|
|
56
|
+
}
|
|
57
|
+
async listSchemaFiles() {
|
|
58
|
+
const config = await this.getConfig();
|
|
59
|
+
const schemaDir = config?.paths?.schema || './schema';
|
|
60
|
+
const fullPath = path.join(this.workspacePath, schemaDir);
|
|
61
|
+
if (!fs.existsSync(fullPath)) {
|
|
62
|
+
return [];
|
|
63
|
+
}
|
|
64
|
+
return fs.readdirSync(fullPath)
|
|
65
|
+
.filter(f => f.endsWith('.dbml'))
|
|
66
|
+
.sort();
|
|
67
|
+
}
|
|
68
|
+
async readSchemaFile(filename) {
|
|
69
|
+
const config = await this.getConfig();
|
|
70
|
+
const schemaDir = config?.paths?.schema || './schema';
|
|
71
|
+
const filePath = path.join(this.workspacePath, schemaDir, filename);
|
|
72
|
+
if (!fs.existsSync(filePath)) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
return fs.readFileSync(filePath, 'utf-8');
|
|
76
|
+
}
|
|
77
|
+
async writeSchemaFile(filename, content) {
|
|
78
|
+
const config = await this.getConfig();
|
|
79
|
+
const schemaDir = config?.paths?.schema || './schema';
|
|
80
|
+
const dirPath = path.join(this.workspacePath, schemaDir);
|
|
81
|
+
const filePath = path.join(dirPath, filename);
|
|
82
|
+
if (!fs.existsSync(dirPath)) {
|
|
83
|
+
fs.mkdirSync(dirPath, { recursive: true });
|
|
84
|
+
}
|
|
85
|
+
fs.writeFileSync(filePath, content, 'utf-8');
|
|
86
|
+
}
|
|
87
|
+
async execCli(command) {
|
|
88
|
+
try {
|
|
89
|
+
const { stdout, stderr } = await execAsync(`npx sqlml ${command}`, {
|
|
90
|
+
cwd: this.workspacePath,
|
|
91
|
+
env: { ...process.env, FORCE_COLOR: '0' },
|
|
92
|
+
timeout: 60000,
|
|
93
|
+
});
|
|
94
|
+
return { stdout: stdout.trim(), stderr: stderr.trim() };
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
return {
|
|
98
|
+
stdout: (error.stdout || '').trim(),
|
|
99
|
+
stderr: (error.stderr || error.message || 'Unknown CLI error').trim(),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
execCliSync(command) {
|
|
104
|
+
try {
|
|
105
|
+
const result = (0, child_process_1.execSync)(`npx sqlml ${command}`, {
|
|
106
|
+
cwd: this.workspacePath,
|
|
107
|
+
env: { ...process.env, FORCE_COLOR: '0' },
|
|
108
|
+
timeout: 60000,
|
|
109
|
+
encoding: 'utf-8',
|
|
110
|
+
});
|
|
111
|
+
return result.trim();
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
throw new Error(`CLI command failed: ${error.stderr || error.message || 'Unknown error'}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
listCliSnapshots() {
|
|
118
|
+
const snapshotsDir = path.join(this.workspacePath, '.sqlml', 'snapshots');
|
|
119
|
+
if (!fs.existsSync(snapshotsDir)) {
|
|
120
|
+
return [];
|
|
121
|
+
}
|
|
122
|
+
const metaFiles = fs.readdirSync(snapshotsDir)
|
|
123
|
+
.filter(f => f.endsWith('.meta.json'))
|
|
124
|
+
.sort();
|
|
125
|
+
return metaFiles.map(metaFile => {
|
|
126
|
+
const version = metaFile.replace('.meta.json', '');
|
|
127
|
+
const metaPath = path.join(snapshotsDir, metaFile);
|
|
128
|
+
const dbmlPath = path.join(snapshotsDir, `${version}.dbml`);
|
|
129
|
+
const meta = JSON.parse(fs.readFileSync(metaPath, 'utf-8'));
|
|
130
|
+
const dbmlContent = fs.existsSync(dbmlPath)
|
|
131
|
+
? fs.readFileSync(dbmlPath, 'utf-8')
|
|
132
|
+
: '';
|
|
133
|
+
return { version, dbmlContent, meta };
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
async readCurrentSchema() {
|
|
137
|
+
const files = await this.listSchemaFiles();
|
|
138
|
+
if (files.length === 0)
|
|
139
|
+
return '';
|
|
140
|
+
const contents = await Promise.all(files.map(f => this.readSchemaFile(f)));
|
|
141
|
+
return contents.filter(Boolean).join('\n\n');
|
|
142
|
+
}
|
|
143
|
+
writeSnapshotToDisk(snapshot) {
|
|
144
|
+
const snapshotsDir = path.join(this.workspacePath, '.sqlml', 'snapshots');
|
|
145
|
+
if (!fs.existsSync(snapshotsDir)) {
|
|
146
|
+
fs.mkdirSync(snapshotsDir, { recursive: true });
|
|
147
|
+
}
|
|
148
|
+
const dbmlPath = path.join(snapshotsDir, `${snapshot.version}.dbml`);
|
|
149
|
+
const metaPath = path.join(snapshotsDir, `${snapshot.version}.meta.json`);
|
|
150
|
+
fs.writeFileSync(dbmlPath, snapshot.dbmlContent, 'utf-8');
|
|
151
|
+
const meta = {
|
|
152
|
+
version: snapshot.version,
|
|
153
|
+
createdAt: new Date().toISOString(),
|
|
154
|
+
description: snapshot.name || snapshot.description || undefined,
|
|
155
|
+
sourceFile: snapshot.sourceFile || undefined,
|
|
156
|
+
checksum: snapshot.checksum,
|
|
157
|
+
};
|
|
158
|
+
fs.writeFileSync(metaPath, JSON.stringify(meta, null, 2), 'utf-8');
|
|
159
|
+
const latestLink = path.join(snapshotsDir, 'latest');
|
|
160
|
+
try {
|
|
161
|
+
if (fs.existsSync(latestLink) || fs.lstatSync(latestLink).isSymbolicLink()) {
|
|
162
|
+
fs.unlinkSync(latestLink);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
}
|
|
167
|
+
fs.symlinkSync(`${snapshot.version}.dbml`, latestLink);
|
|
168
|
+
}
|
|
169
|
+
deleteSnapshotFromDisk(version) {
|
|
170
|
+
const snapshotsDir = path.join(this.workspacePath, '.sqlml', 'snapshots');
|
|
171
|
+
const dbmlPath = path.join(snapshotsDir, `${version}.dbml`);
|
|
172
|
+
const metaPath = path.join(snapshotsDir, `${version}.meta.json`);
|
|
173
|
+
if (fs.existsSync(dbmlPath))
|
|
174
|
+
fs.unlinkSync(dbmlPath);
|
|
175
|
+
if (fs.existsSync(metaPath))
|
|
176
|
+
fs.unlinkSync(metaPath);
|
|
177
|
+
const latestLink = path.join(snapshotsDir, 'latest');
|
|
178
|
+
try {
|
|
179
|
+
const target = fs.readlinkSync(latestLink);
|
|
180
|
+
if (target === `${version}.dbml`) {
|
|
181
|
+
fs.unlinkSync(latestLink);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
catch {
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
readHistory() {
|
|
188
|
+
const historyPath = path.join(this.workspacePath, '.sqlml', 'history.json');
|
|
189
|
+
if (!fs.existsSync(historyPath)) {
|
|
190
|
+
return { entries: [] };
|
|
191
|
+
}
|
|
192
|
+
try {
|
|
193
|
+
return JSON.parse(fs.readFileSync(historyPath, 'utf-8'));
|
|
194
|
+
}
|
|
195
|
+
catch {
|
|
196
|
+
return { entries: [] };
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
addHistoryEntry(entry) {
|
|
200
|
+
const sqlmlDir = path.join(this.workspacePath, '.sqlml');
|
|
201
|
+
const historyPath = path.join(sqlmlDir, 'history.json');
|
|
202
|
+
if (!fs.existsSync(sqlmlDir)) {
|
|
203
|
+
fs.mkdirSync(sqlmlDir, { recursive: true });
|
|
204
|
+
}
|
|
205
|
+
const history = this.readHistory();
|
|
206
|
+
history.entries.push({
|
|
207
|
+
timestamp: new Date().toISOString(),
|
|
208
|
+
...entry,
|
|
209
|
+
});
|
|
210
|
+
fs.writeFileSync(historyPath, JSON.stringify(history, null, 2), 'utf-8');
|
|
211
|
+
}
|
|
212
|
+
async getWorkspaceInfo() {
|
|
213
|
+
const config = await this.getConfig();
|
|
214
|
+
const migrations = await this.listMigrations();
|
|
215
|
+
const schemas = await this.listSchemaFiles();
|
|
216
|
+
return {
|
|
217
|
+
path: this.workspacePath,
|
|
218
|
+
hasConfig: !!config,
|
|
219
|
+
config,
|
|
220
|
+
migrations: {
|
|
221
|
+
count: migrations.length,
|
|
222
|
+
files: migrations.slice(-5),
|
|
223
|
+
},
|
|
224
|
+
schemas: {
|
|
225
|
+
count: schemas.length,
|
|
226
|
+
files: schemas,
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
exports.SqlmlService = SqlmlService;
|
|
232
|
+
exports.SqlmlService = SqlmlService = __decorate([
|
|
233
|
+
(0, common_1.Injectable)(),
|
|
234
|
+
__param(0, (0, common_1.Inject)((0, common_1.forwardRef)(() => config_service_1.ConfigService))),
|
|
235
|
+
__metadata("design:paramtypes", [config_service_1.ConfigService])
|
|
236
|
+
], SqlmlService);
|
|
237
|
+
//# sourceMappingURL=sqlml.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlml.service.js","sourceRoot":"","sources":["../../src/core/sqlml.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@nestjs/core");
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
6
|
+
const app_module_1 = require("./app.module");
|
|
7
|
+
async function bootstrap() {
|
|
8
|
+
const app = await core_1.NestFactory.create(app_module_1.AppModule);
|
|
9
|
+
app.useGlobalPipes(new common_1.ValidationPipe({
|
|
10
|
+
whitelist: true,
|
|
11
|
+
transform: true,
|
|
12
|
+
forbidNonWhitelisted: true,
|
|
13
|
+
}));
|
|
14
|
+
const corsOrigin = process.env.CORS_ORIGIN;
|
|
15
|
+
app.enableCors({
|
|
16
|
+
origin: corsOrigin
|
|
17
|
+
? corsOrigin.split(',').map(o => o.trim())
|
|
18
|
+
: [
|
|
19
|
+
`http://localhost:${process.env.PORT || 4200}`,
|
|
20
|
+
`http://localhost:${process.env.CLIENT_PORT || 5173}`,
|
|
21
|
+
],
|
|
22
|
+
credentials: true,
|
|
23
|
+
});
|
|
24
|
+
app.setGlobalPrefix('api', {
|
|
25
|
+
exclude: ['/'],
|
|
26
|
+
});
|
|
27
|
+
const config = new swagger_1.DocumentBuilder()
|
|
28
|
+
.setTitle('SQLML UI API')
|
|
29
|
+
.setDescription('SQLML UI Backend API Documentation')
|
|
30
|
+
.setVersion('1.0')
|
|
31
|
+
.addTag('workspace', 'Workspace management')
|
|
32
|
+
.addTag('migration', 'Migration operations')
|
|
33
|
+
.addTag('schema', 'Schema operations')
|
|
34
|
+
.addTag('database', 'Database operations')
|
|
35
|
+
.addTag('config', 'Configuration management')
|
|
36
|
+
.build();
|
|
37
|
+
const document = swagger_1.SwaggerModule.createDocument(app, config);
|
|
38
|
+
swagger_1.SwaggerModule.setup('api/docs', app, document);
|
|
39
|
+
const port = process.env.PORT || 4200;
|
|
40
|
+
await app.listen(port);
|
|
41
|
+
console.log(`SQLML UI Server running on http://localhost:${port}`);
|
|
42
|
+
console.log(`API Documentation: http://localhost:${port}/api/docs`);
|
|
43
|
+
}
|
|
44
|
+
bootstrap();
|
|
45
|
+
//# sourceMappingURL=main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;AAAA,uCAA2C;AAC3C,2CAAgD;AAChD,6CAAiE;AACjE,6CAAyC;AAEzC,KAAK,UAAU,SAAS;IACtB,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,sBAAS,CAAC,CAAC;IAGhD,GAAG,CAAC,cAAc,CAChB,IAAI,uBAAc,CAAC;QACjB,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI;QACf,oBAAoB,EAAE,IAAI;KAC3B,CAAC,CACH,CAAC;IAGF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IAC3C,GAAG,CAAC,UAAU,CAAC;QACb,MAAM,EAAE,UAAU;YAChB,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1C,CAAC,CAAC;gBACE,oBAAoB,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE;gBAC9C,oBAAoB,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,EAAE;aACtD;QACL,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IAGH,GAAG,CAAC,eAAe,CAAC,KAAK,EAAE;QACzB,OAAO,EAAE,CAAC,GAAG,CAAC;KACf,CAAC,CAAC;IAGH,MAAM,MAAM,GAAG,IAAI,yBAAe,EAAE;SACjC,QAAQ,CAAC,cAAc,CAAC;SACxB,cAAc,CAAC,oCAAoC,CAAC;SACpD,UAAU,CAAC,KAAK,CAAC;SACjB,MAAM,CAAC,WAAW,EAAE,sBAAsB,CAAC;SAC3C,MAAM,CAAC,WAAW,EAAE,sBAAsB,CAAC;SAC3C,MAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC;SACrC,MAAM,CAAC,UAAU,EAAE,qBAAqB,CAAC;SACzC,MAAM,CAAC,QAAQ,EAAE,0BAA0B,CAAC;SAC5C,KAAK,EAAE,CAAC;IAEX,MAAM,QAAQ,GAAG,uBAAa,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3D,uBAAa,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAE/C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;IACtC,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEvB,OAAO,CAAC,GAAG,CAAC,+CAA+C,IAAI,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,uCAAuC,IAAI,WAAW,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ConfigService } from './config.service';
|
|
2
|
+
import { WorkspaceConfig, WorkspaceDatabase } from '../../common/entities/workspace.entity';
|
|
3
|
+
export declare class ConfigController {
|
|
4
|
+
private readonly configService;
|
|
5
|
+
constructor(configService: ConfigService);
|
|
6
|
+
getConfig(): Promise<WorkspaceConfig>;
|
|
7
|
+
updateConfig(data: Partial<WorkspaceConfig>): Promise<WorkspaceConfig>;
|
|
8
|
+
validateConfig(): Promise<{
|
|
9
|
+
valid: boolean;
|
|
10
|
+
errors: string[];
|
|
11
|
+
warnings: string[];
|
|
12
|
+
}>;
|
|
13
|
+
testConnection(dbConfig?: WorkspaceDatabase): Promise<{
|
|
14
|
+
success: boolean;
|
|
15
|
+
message: string;
|
|
16
|
+
error?: string;
|
|
17
|
+
}>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ConfigController = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
18
|
+
const config_service_1 = require("./config.service");
|
|
19
|
+
let ConfigController = class ConfigController {
|
|
20
|
+
constructor(configService) {
|
|
21
|
+
this.configService = configService;
|
|
22
|
+
}
|
|
23
|
+
getConfig() {
|
|
24
|
+
return this.configService.getConfig();
|
|
25
|
+
}
|
|
26
|
+
updateConfig(data) {
|
|
27
|
+
return this.configService.updateConfig(data);
|
|
28
|
+
}
|
|
29
|
+
validateConfig() {
|
|
30
|
+
return this.configService.validateConfig();
|
|
31
|
+
}
|
|
32
|
+
testConnection(dbConfig) {
|
|
33
|
+
return this.configService.testConnection(dbConfig);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
exports.ConfigController = ConfigController;
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, common_1.Get)(),
|
|
39
|
+
(0, swagger_1.ApiOperation)({ summary: 'Get current configuration' }),
|
|
40
|
+
(0, swagger_1.ApiResponse)({ status: 200, description: 'Current configuration' }),
|
|
41
|
+
__metadata("design:type", Function),
|
|
42
|
+
__metadata("design:paramtypes", []),
|
|
43
|
+
__metadata("design:returntype", Promise)
|
|
44
|
+
], ConfigController.prototype, "getConfig", null);
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, common_1.Put)(),
|
|
47
|
+
(0, swagger_1.ApiOperation)({ summary: 'Update configuration' }),
|
|
48
|
+
(0, swagger_1.ApiResponse)({ status: 200, description: 'Configuration updated' }),
|
|
49
|
+
__param(0, (0, common_1.Body)()),
|
|
50
|
+
__metadata("design:type", Function),
|
|
51
|
+
__metadata("design:paramtypes", [Object]),
|
|
52
|
+
__metadata("design:returntype", Promise)
|
|
53
|
+
], ConfigController.prototype, "updateConfig", null);
|
|
54
|
+
__decorate([
|
|
55
|
+
(0, common_1.Get)('validate'),
|
|
56
|
+
(0, swagger_1.ApiOperation)({ summary: 'Validate current configuration' }),
|
|
57
|
+
(0, swagger_1.ApiResponse)({ status: 200, description: 'Validation result' }),
|
|
58
|
+
__metadata("design:type", Function),
|
|
59
|
+
__metadata("design:paramtypes", []),
|
|
60
|
+
__metadata("design:returntype", Promise)
|
|
61
|
+
], ConfigController.prototype, "validateConfig", null);
|
|
62
|
+
__decorate([
|
|
63
|
+
(0, common_1.Post)('test-connection'),
|
|
64
|
+
(0, swagger_1.ApiOperation)({ summary: 'Test database connection with current or provided config' }),
|
|
65
|
+
(0, swagger_1.ApiResponse)({ status: 200, description: 'Connection test result' }),
|
|
66
|
+
__param(0, (0, common_1.Body)()),
|
|
67
|
+
__metadata("design:type", Function),
|
|
68
|
+
__metadata("design:paramtypes", [Object]),
|
|
69
|
+
__metadata("design:returntype", Promise)
|
|
70
|
+
], ConfigController.prototype, "testConnection", null);
|
|
71
|
+
exports.ConfigController = ConfigController = __decorate([
|
|
72
|
+
(0, swagger_1.ApiTags)('config'),
|
|
73
|
+
(0, common_1.Controller)('config'),
|
|
74
|
+
__metadata("design:paramtypes", [config_service_1.ConfigService])
|
|
75
|
+
], ConfigController);
|
|
76
|
+
//# sourceMappingURL=config.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.controller.js","sourceRoot":"","sources":["../../../src/modules/config/config.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAMwB;AACxB,6CAAqE;AACrE,qDAAiD;AAK1C,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAK7D,SAAS;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;IACxC,CAAC;IAKD,YAAY,CAEV,IAA8B;QAE9B,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAKD,cAAc;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;IAC7C,CAAC;IAKD,cAAc,CACJ,QAA4B;QAEpC,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;CACF,CAAA;AAnCY,4CAAgB;AAM3B;IAHC,IAAA,YAAG,GAAE;IACL,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;IACtD,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;;;;iDAGlE;AAKD;IAHC,IAAA,YAAG,GAAE;IACL,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;IACjD,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;IAEhE,WAAA,IAAA,aAAI,GAAE,CAAA;;;;oDAIR;AAKD;IAHC,IAAA,YAAG,EAAC,UAAU,CAAC;IACf,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;IAC3D,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;;;;sDAG9D;AAKD;IAHC,IAAA,aAAI,EAAC,iBAAiB,CAAC;IACvB,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,0DAA0D,EAAE,CAAC;IACrF,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;IAEjE,WAAA,IAAA,aAAI,GAAE,CAAA;;;;sDAGR;2BAlCU,gBAAgB;IAF5B,IAAA,iBAAO,EAAC,QAAQ,CAAC;IACjB,IAAA,mBAAU,EAAC,QAAQ,CAAC;qCAEyB,8BAAa;GAD9C,gBAAgB,CAmC5B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.SqlmlConfigModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
12
|
+
const config_controller_1 = require("./config.controller");
|
|
13
|
+
const config_service_1 = require("./config.service");
|
|
14
|
+
const workspace_entity_1 = require("../../common/entities/workspace.entity");
|
|
15
|
+
let SqlmlConfigModule = class SqlmlConfigModule {
|
|
16
|
+
};
|
|
17
|
+
exports.SqlmlConfigModule = SqlmlConfigModule;
|
|
18
|
+
exports.SqlmlConfigModule = SqlmlConfigModule = __decorate([
|
|
19
|
+
(0, common_1.Global)(),
|
|
20
|
+
(0, common_1.Module)({
|
|
21
|
+
imports: [typeorm_1.TypeOrmModule.forFeature([workspace_entity_1.Workspace])],
|
|
22
|
+
controllers: [config_controller_1.ConfigController],
|
|
23
|
+
providers: [config_service_1.ConfigService],
|
|
24
|
+
exports: [config_service_1.ConfigService],
|
|
25
|
+
})
|
|
26
|
+
], SqlmlConfigModule);
|
|
27
|
+
//# sourceMappingURL=config.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.module.js","sourceRoot":"","sources":["../../../src/modules/config/config.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,6CAAgD;AAChD,2DAAuD;AACvD,qDAAiD;AACjD,6EAAmE;AAS5D,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAAG,CAAA;AAApB,8CAAiB;4BAAjB,iBAAiB;IAP7B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,CAAC,4BAAS,CAAC,CAAC,CAAC;QAChD,WAAW,EAAE,CAAC,oCAAgB,CAAC;QAC/B,SAAS,EAAE,CAAC,8BAAa,CAAC;QAC1B,OAAO,EAAE,CAAC,8BAAa,CAAC;KACzB,CAAC;GACW,iBAAiB,CAAG"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Repository } from 'typeorm';
|
|
2
|
+
import { Workspace, WorkspaceConfig, WorkspaceDatabase } from '../../common/entities/workspace.entity';
|
|
3
|
+
export declare class ConfigService {
|
|
4
|
+
private workspaceRepository;
|
|
5
|
+
private workspacePath;
|
|
6
|
+
private configFilePath;
|
|
7
|
+
constructor(workspaceRepository: Repository<Workspace>);
|
|
8
|
+
private ensureConfigDir;
|
|
9
|
+
private parseDotenv;
|
|
10
|
+
private dotenvToConfig;
|
|
11
|
+
private configToDotenv;
|
|
12
|
+
private readConfigFile;
|
|
13
|
+
private writeConfigFile;
|
|
14
|
+
private generateUUID;
|
|
15
|
+
getCurrentWorkspace(): Promise<Workspace>;
|
|
16
|
+
getConfig(): Promise<WorkspaceConfig>;
|
|
17
|
+
updateConfig(data: Partial<WorkspaceConfig>): Promise<WorkspaceConfig>;
|
|
18
|
+
validateConfig(): Promise<{
|
|
19
|
+
valid: boolean;
|
|
20
|
+
errors: string[];
|
|
21
|
+
warnings: string[];
|
|
22
|
+
}>;
|
|
23
|
+
getDefaultConfig(): WorkspaceConfig;
|
|
24
|
+
private deepMerge;
|
|
25
|
+
testConnection(dbConfig?: WorkspaceDatabase): Promise<{
|
|
26
|
+
success: boolean;
|
|
27
|
+
message: string;
|
|
28
|
+
error?: string;
|
|
29
|
+
}>;
|
|
30
|
+
private getDefaultPort;
|
|
31
|
+
}
|