@scalix-world/sdk 0.0.1 → 1.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 +215 -1
- package/dist/client.d.ts +41 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +54 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +8 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +22 -0
- package/dist/config.js.map +1 -0
- package/dist/errors.d.ts +15 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +23 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/services/account.d.ts +15 -0
- package/dist/services/account.d.ts.map +1 -0
- package/dist/services/account.js +30 -0
- package/dist/services/account.js.map +1 -0
- package/dist/services/audio.d.ts +27 -0
- package/dist/services/audio.d.ts.map +1 -0
- package/dist/services/audio.js +22 -0
- package/dist/services/audio.js.map +1 -0
- package/dist/services/base.d.ts +15 -0
- package/dist/services/base.d.ts.map +1 -0
- package/dist/services/base.js +67 -0
- package/dist/services/base.js.map +1 -0
- package/dist/services/chat.d.ts +38 -0
- package/dist/services/chat.d.ts.map +1 -0
- package/dist/services/chat.js +53 -0
- package/dist/services/chat.js.map +1 -0
- package/dist/services/database.d.ts +245 -0
- package/dist/services/database.d.ts.map +1 -0
- package/dist/services/database.js +195 -0
- package/dist/services/database.js.map +1 -0
- package/dist/services/docgen.d.ts +57 -0
- package/dist/services/docgen.d.ts.map +1 -0
- package/dist/services/docgen.js +38 -0
- package/dist/services/docgen.js.map +1 -0
- package/dist/services/images.d.ts +34 -0
- package/dist/services/images.d.ts.map +1 -0
- package/dist/services/images.js +23 -0
- package/dist/services/images.js.map +1 -0
- package/dist/services/index.d.ts +21 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +12 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/rag.d.ts +43 -0
- package/dist/services/rag.d.ts.map +1 -0
- package/dist/services/rag.js +20 -0
- package/dist/services/rag.js.map +1 -0
- package/dist/services/research.d.ts +23 -0
- package/dist/services/research.d.ts.map +1 -0
- package/dist/services/research.js +15 -0
- package/dist/services/research.js.map +1 -0
- package/dist/services/storage.d.ts +9 -0
- package/dist/services/storage.d.ts.map +1 -0
- package/dist/services/storage.js +9 -0
- package/dist/services/storage.js.map +1 -0
- package/dist/services/text.d.ts +30 -0
- package/dist/services/text.d.ts.map +1 -0
- package/dist/services/text.js +23 -0
- package/dist/services/text.js.map +1 -0
- package/package.json +51 -5
- package/index.js +0 -1
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { getConfig } from '../config.js';
|
|
2
|
+
import { AuthenticationError, ScalixError } from '../errors.js';
|
|
3
|
+
export class BaseService {
|
|
4
|
+
config;
|
|
5
|
+
constructor(config) {
|
|
6
|
+
this.config = config ?? getConfig();
|
|
7
|
+
}
|
|
8
|
+
async request(method, path, options) {
|
|
9
|
+
if (!this.config.apiKey) {
|
|
10
|
+
throw new AuthenticationError('API key required. Call configure({ apiKey: "..." }) first.');
|
|
11
|
+
}
|
|
12
|
+
const url = `${this.config.baseUrl}${path}`;
|
|
13
|
+
const headers = {
|
|
14
|
+
Authorization: `Bearer ${this.config.apiKey}`,
|
|
15
|
+
'Content-Type': 'application/json',
|
|
16
|
+
...options?.headers,
|
|
17
|
+
};
|
|
18
|
+
const resp = await fetch(url, {
|
|
19
|
+
method,
|
|
20
|
+
headers,
|
|
21
|
+
...(options?.body ? { body: JSON.stringify(options.body) } : {}),
|
|
22
|
+
});
|
|
23
|
+
if (!resp.ok) {
|
|
24
|
+
const body = await resp.json().catch(() => ({}));
|
|
25
|
+
throw new ScalixError(body?.error?.message ?? `Request failed: ${resp.status}`, { code: body?.error?.code });
|
|
26
|
+
}
|
|
27
|
+
return resp.json();
|
|
28
|
+
}
|
|
29
|
+
async requestRaw(method, path, options) {
|
|
30
|
+
if (!this.config.apiKey) {
|
|
31
|
+
throw new AuthenticationError('API key required.');
|
|
32
|
+
}
|
|
33
|
+
const url = `${this.config.baseUrl}${path}`;
|
|
34
|
+
const headers = {
|
|
35
|
+
Authorization: `Bearer ${this.config.apiKey}`,
|
|
36
|
+
'Content-Type': 'application/json',
|
|
37
|
+
...options?.headers,
|
|
38
|
+
};
|
|
39
|
+
const resp = await fetch(url, {
|
|
40
|
+
method,
|
|
41
|
+
headers,
|
|
42
|
+
...(options?.body ? { body: JSON.stringify(options.body) } : {}),
|
|
43
|
+
});
|
|
44
|
+
if (!resp.ok) {
|
|
45
|
+
const body = await resp.json().catch(() => ({}));
|
|
46
|
+
throw new ScalixError(body?.error?.message ?? `Request failed: ${resp.status}`, { code: body?.error?.code });
|
|
47
|
+
}
|
|
48
|
+
return resp;
|
|
49
|
+
}
|
|
50
|
+
async requestMultipart(path, formData) {
|
|
51
|
+
if (!this.config.apiKey) {
|
|
52
|
+
throw new AuthenticationError('API key required.');
|
|
53
|
+
}
|
|
54
|
+
const url = `${this.config.baseUrl}${path}`;
|
|
55
|
+
const resp = await fetch(url, {
|
|
56
|
+
method: 'POST',
|
|
57
|
+
headers: { Authorization: `Bearer ${this.config.apiKey}` },
|
|
58
|
+
body: formData,
|
|
59
|
+
});
|
|
60
|
+
if (!resp.ok) {
|
|
61
|
+
const body = await resp.json().catch(() => ({}));
|
|
62
|
+
throw new ScalixError(body?.error?.message ?? `Upload failed: ${resp.status}`, { code: body?.error?.code });
|
|
63
|
+
}
|
|
64
|
+
return resp.json();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/services/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { BaseService } from './base.js';
|
|
2
|
+
export interface ChatMessage {
|
|
3
|
+
role: 'user' | 'assistant' | 'system';
|
|
4
|
+
content: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ChatCompletionOptions {
|
|
7
|
+
model: string;
|
|
8
|
+
messages: ChatMessage[];
|
|
9
|
+
stream?: boolean;
|
|
10
|
+
temperature?: number;
|
|
11
|
+
max_tokens?: number;
|
|
12
|
+
top_p?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface ChatCompletionResult {
|
|
15
|
+
id: string;
|
|
16
|
+
object: string;
|
|
17
|
+
created: number;
|
|
18
|
+
model: string;
|
|
19
|
+
choices: Array<{
|
|
20
|
+
index: number;
|
|
21
|
+
message: ChatMessage;
|
|
22
|
+
finish_reason: string;
|
|
23
|
+
}>;
|
|
24
|
+
usage: {
|
|
25
|
+
prompt_tokens: number;
|
|
26
|
+
completion_tokens: number;
|
|
27
|
+
total_tokens: number;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export declare class ChatService extends BaseService {
|
|
31
|
+
complete(options: ChatCompletionOptions): Promise<ChatCompletionResult>;
|
|
32
|
+
stream(options: Omit<ChatCompletionOptions, 'stream'>): AsyncGenerator<string>;
|
|
33
|
+
models(): Promise<Array<{
|
|
34
|
+
id: string;
|
|
35
|
+
name: string;
|
|
36
|
+
}>>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=chat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/services/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,WAAW,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;IACH,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,qBAAa,WAAY,SAAQ,WAAW;IACpC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAMtE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;IAyC/E,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAI7D"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { BaseService } from './base.js';
|
|
2
|
+
export class ChatService extends BaseService {
|
|
3
|
+
async complete(options) {
|
|
4
|
+
return this.request('POST', '/v1/chat/completions', {
|
|
5
|
+
body: { ...options, stream: false },
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
async *stream(options) {
|
|
9
|
+
const resp = await this.requestRaw('POST', '/v1/chat/completions', {
|
|
10
|
+
body: { ...options, stream: true },
|
|
11
|
+
});
|
|
12
|
+
const reader = resp.body?.getReader();
|
|
13
|
+
if (!reader)
|
|
14
|
+
return;
|
|
15
|
+
const decoder = new TextDecoder();
|
|
16
|
+
let buffer = '';
|
|
17
|
+
try {
|
|
18
|
+
while (true) {
|
|
19
|
+
const { done, value } = await reader.read();
|
|
20
|
+
if (done)
|
|
21
|
+
break;
|
|
22
|
+
buffer += decoder.decode(value, { stream: true });
|
|
23
|
+
const lines = buffer.split('\n');
|
|
24
|
+
buffer = lines.pop() ?? '';
|
|
25
|
+
for (const line of lines) {
|
|
26
|
+
const trimmed = line.trim();
|
|
27
|
+
if (!trimmed || !trimmed.startsWith('data: '))
|
|
28
|
+
continue;
|
|
29
|
+
const payload = trimmed.slice(6);
|
|
30
|
+
if (payload === '[DONE]')
|
|
31
|
+
return;
|
|
32
|
+
try {
|
|
33
|
+
const parsed = JSON.parse(payload);
|
|
34
|
+
const content = parsed.choices?.[0]?.delta?.content;
|
|
35
|
+
if (content)
|
|
36
|
+
yield content;
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// skip malformed chunks
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
finally {
|
|
45
|
+
reader.releaseLock();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async models() {
|
|
49
|
+
const resp = await this.request('GET', '/v1/models');
|
|
50
|
+
return resp.data;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/services/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAiCxC,MAAM,OAAO,WAAY,SAAQ,WAAW;IAC1C,KAAK,CAAC,QAAQ,CAAC,OAA8B;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAuB,MAAM,EAAE,sBAAsB,EAAE;YACxE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,OAA8C;QAC1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,sBAAsB,EAAE;YACjE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;SACnC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,IAAI;oBAAE,MAAM;gBAEhB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gBAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC5B,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;wBAAE,SAAS;oBACxD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACjC,IAAI,OAAO,KAAK,QAAQ;wBAAE,OAAO;oBACjC,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAEhC,CAAC;wBACF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC;wBACpD,IAAI,OAAO;4BAAE,MAAM,OAAO,CAAC;oBAC7B,CAAC;oBAAC,MAAM,CAAC;wBACP,wBAAwB;oBAC1B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAgD,KAAK,EAAE,YAAY,CAAC,CAAC;QACpG,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import { BaseService } from './base.js';
|
|
2
|
+
export interface Database {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
type: string;
|
|
6
|
+
status: string;
|
|
7
|
+
region?: string;
|
|
8
|
+
plan?: string;
|
|
9
|
+
storageSize?: number;
|
|
10
|
+
createdAt?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface CreateDatabaseOptions {
|
|
13
|
+
name: string;
|
|
14
|
+
plan?: string;
|
|
15
|
+
region?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface Branch {
|
|
18
|
+
id: string;
|
|
19
|
+
name: string;
|
|
20
|
+
parentId?: string;
|
|
21
|
+
createdAt?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface Backup {
|
|
24
|
+
id: string;
|
|
25
|
+
databaseId: string;
|
|
26
|
+
type: string;
|
|
27
|
+
status: string;
|
|
28
|
+
size: number;
|
|
29
|
+
createdAt: string;
|
|
30
|
+
}
|
|
31
|
+
export interface DatabaseMetrics {
|
|
32
|
+
connections: number;
|
|
33
|
+
queryRate: number;
|
|
34
|
+
errorRate: number;
|
|
35
|
+
storageUsed: number;
|
|
36
|
+
storageTotal: number;
|
|
37
|
+
cpuUsage?: number;
|
|
38
|
+
memoryUsage?: number;
|
|
39
|
+
responseTime?: number;
|
|
40
|
+
timestamp: string;
|
|
41
|
+
}
|
|
42
|
+
export interface PoolingStatus {
|
|
43
|
+
enabled: boolean;
|
|
44
|
+
managed: boolean;
|
|
45
|
+
provider: string;
|
|
46
|
+
mode: string;
|
|
47
|
+
totalConnections?: number;
|
|
48
|
+
activeConnections?: number;
|
|
49
|
+
idleConnections?: number;
|
|
50
|
+
}
|
|
51
|
+
export interface EncryptionStatus {
|
|
52
|
+
encryptionAtRest: boolean;
|
|
53
|
+
encryptionInTransit: boolean;
|
|
54
|
+
tlsVersion: string;
|
|
55
|
+
compliant: boolean;
|
|
56
|
+
managed: boolean;
|
|
57
|
+
provider: string;
|
|
58
|
+
}
|
|
59
|
+
export interface HAStatus {
|
|
60
|
+
enabled: boolean;
|
|
61
|
+
availabilityZones: string[];
|
|
62
|
+
readReplicas: number;
|
|
63
|
+
failoverEnabled: boolean;
|
|
64
|
+
managed: boolean;
|
|
65
|
+
}
|
|
66
|
+
export interface QueryResult {
|
|
67
|
+
rows: Record<string, unknown>[];
|
|
68
|
+
rowCount: number;
|
|
69
|
+
fields?: Array<{
|
|
70
|
+
name: string;
|
|
71
|
+
dataType: string;
|
|
72
|
+
}>;
|
|
73
|
+
}
|
|
74
|
+
export interface TableInfo {
|
|
75
|
+
name: string;
|
|
76
|
+
schema: string;
|
|
77
|
+
rowCount?: number;
|
|
78
|
+
}
|
|
79
|
+
export interface ColumnInfo {
|
|
80
|
+
name: string;
|
|
81
|
+
dataType: string;
|
|
82
|
+
nullable: boolean;
|
|
83
|
+
defaultValue?: string;
|
|
84
|
+
}
|
|
85
|
+
export declare class DatabaseService extends BaseService {
|
|
86
|
+
list(): Promise<{
|
|
87
|
+
databases: Database[];
|
|
88
|
+
}>;
|
|
89
|
+
create(options: CreateDatabaseOptions): Promise<{
|
|
90
|
+
database: Database;
|
|
91
|
+
}>;
|
|
92
|
+
get(databaseId: string): Promise<{
|
|
93
|
+
database: Database;
|
|
94
|
+
}>;
|
|
95
|
+
update(databaseId: string, updates: Partial<Database>): Promise<{
|
|
96
|
+
database: Database;
|
|
97
|
+
}>;
|
|
98
|
+
delete(databaseId: string): Promise<{
|
|
99
|
+
success: boolean;
|
|
100
|
+
}>;
|
|
101
|
+
listBranches(databaseId: string): Promise<{
|
|
102
|
+
branches: Branch[];
|
|
103
|
+
}>;
|
|
104
|
+
createBranch(databaseId: string, options: {
|
|
105
|
+
name: string;
|
|
106
|
+
parentId?: string;
|
|
107
|
+
}): Promise<{
|
|
108
|
+
branch: Branch;
|
|
109
|
+
}>;
|
|
110
|
+
deleteBranch(databaseId: string, branchId: string): Promise<{
|
|
111
|
+
success: boolean;
|
|
112
|
+
}>;
|
|
113
|
+
maskBranch(databaseId: string, branchId: string): Promise<{
|
|
114
|
+
success: boolean;
|
|
115
|
+
}>;
|
|
116
|
+
listBackups(databaseId: string): Promise<{
|
|
117
|
+
backups: Backup[];
|
|
118
|
+
}>;
|
|
119
|
+
createBackup(databaseId: string, name?: string): Promise<{
|
|
120
|
+
backup: Backup;
|
|
121
|
+
}>;
|
|
122
|
+
restoreBackup(databaseId: string, backupId: string): Promise<{
|
|
123
|
+
success: boolean;
|
|
124
|
+
}>;
|
|
125
|
+
deleteBackup(databaseId: string, backupId: string): Promise<{
|
|
126
|
+
success: boolean;
|
|
127
|
+
}>;
|
|
128
|
+
setBackupSchedule(databaseId: string, schedule: Record<string, unknown>): Promise<{
|
|
129
|
+
success: boolean;
|
|
130
|
+
}>;
|
|
131
|
+
enablePitr(databaseId: string): Promise<{
|
|
132
|
+
success: boolean;
|
|
133
|
+
message: string;
|
|
134
|
+
}>;
|
|
135
|
+
getRestorePoints(databaseId: string): Promise<{
|
|
136
|
+
restorePoints: Array<{
|
|
137
|
+
timestamp: string;
|
|
138
|
+
description: string;
|
|
139
|
+
}>;
|
|
140
|
+
}>;
|
|
141
|
+
restorePitr(databaseId: string, targetTime: string): Promise<{
|
|
142
|
+
success: boolean;
|
|
143
|
+
}>;
|
|
144
|
+
getEncryption(databaseId: string): Promise<{
|
|
145
|
+
encryption: EncryptionStatus;
|
|
146
|
+
}>;
|
|
147
|
+
updateEncryption(databaseId: string, settings: Record<string, unknown>): Promise<{
|
|
148
|
+
encryption: EncryptionStatus;
|
|
149
|
+
}>;
|
|
150
|
+
rotateEncryptionKeys(databaseId: string): Promise<{
|
|
151
|
+
success: boolean;
|
|
152
|
+
}>;
|
|
153
|
+
getHAStatus(databaseId: string): Promise<{
|
|
154
|
+
status: HAStatus;
|
|
155
|
+
}>;
|
|
156
|
+
enableHA(databaseId: string): Promise<{
|
|
157
|
+
status: HAStatus;
|
|
158
|
+
}>;
|
|
159
|
+
disableHA(databaseId: string): Promise<{
|
|
160
|
+
status: HAStatus;
|
|
161
|
+
}>;
|
|
162
|
+
getPoolingStatus(databaseId: string): Promise<{
|
|
163
|
+
pooling: PoolingStatus;
|
|
164
|
+
}>;
|
|
165
|
+
enablePooling(databaseId: string): Promise<{
|
|
166
|
+
pooling: PoolingStatus;
|
|
167
|
+
}>;
|
|
168
|
+
disablePooling(databaseId: string): Promise<{
|
|
169
|
+
success: boolean;
|
|
170
|
+
}>;
|
|
171
|
+
getPoolingStats(databaseId: string): Promise<{
|
|
172
|
+
stats: Record<string, number>;
|
|
173
|
+
}>;
|
|
174
|
+
updatePoolingConfig(databaseId: string, config: Record<string, unknown>): Promise<{
|
|
175
|
+
success: boolean;
|
|
176
|
+
}>;
|
|
177
|
+
query(databaseId: string, sql: string): Promise<QueryResult>;
|
|
178
|
+
explain(databaseId: string, sql: string): Promise<{
|
|
179
|
+
plan: string;
|
|
180
|
+
}>;
|
|
181
|
+
listTables(databaseId: string, schema?: string): Promise<{
|
|
182
|
+
tables: TableInfo[];
|
|
183
|
+
}>;
|
|
184
|
+
listColumns(databaseId: string, tableName: string, schema?: string): Promise<{
|
|
185
|
+
columns: ColumnInfo[];
|
|
186
|
+
}>;
|
|
187
|
+
listRows(databaseId: string, tableName: string, options?: {
|
|
188
|
+
schema?: string;
|
|
189
|
+
limit?: number;
|
|
190
|
+
offset?: number;
|
|
191
|
+
orderBy?: string;
|
|
192
|
+
orderDir?: 'asc' | 'desc';
|
|
193
|
+
}): Promise<{
|
|
194
|
+
rows: Record<string, unknown>[];
|
|
195
|
+
total: number;
|
|
196
|
+
}>;
|
|
197
|
+
insertRow(databaseId: string, tableName: string, data: Record<string, unknown>): Promise<{
|
|
198
|
+
success: boolean;
|
|
199
|
+
}>;
|
|
200
|
+
updateRow(databaseId: string, tableName: string, data: Record<string, unknown>): Promise<{
|
|
201
|
+
success: boolean;
|
|
202
|
+
}>;
|
|
203
|
+
deleteRow(databaseId: string, tableName: string, conditions: Record<string, unknown>): Promise<{
|
|
204
|
+
success: boolean;
|
|
205
|
+
}>;
|
|
206
|
+
listExtensions(databaseId: string): Promise<{
|
|
207
|
+
extensions: Array<{
|
|
208
|
+
name: string;
|
|
209
|
+
installed: boolean;
|
|
210
|
+
}>;
|
|
211
|
+
}>;
|
|
212
|
+
enableExtension(databaseId: string, name: string): Promise<{
|
|
213
|
+
success: boolean;
|
|
214
|
+
}>;
|
|
215
|
+
disableExtension(databaseId: string, name: string): Promise<{
|
|
216
|
+
success: boolean;
|
|
217
|
+
}>;
|
|
218
|
+
importSql(databaseId: string, sql: string): Promise<{
|
|
219
|
+
success: boolean;
|
|
220
|
+
}>;
|
|
221
|
+
importCsv(databaseId: string, data: {
|
|
222
|
+
tableName: string;
|
|
223
|
+
csv: string;
|
|
224
|
+
}): Promise<{
|
|
225
|
+
success: boolean;
|
|
226
|
+
}>;
|
|
227
|
+
rotateCredentials(databaseId: string): Promise<{
|
|
228
|
+
connection: Record<string, string>;
|
|
229
|
+
}>;
|
|
230
|
+
getMetrics(databaseId: string): Promise<{
|
|
231
|
+
metrics: DatabaseMetrics;
|
|
232
|
+
}>;
|
|
233
|
+
getLogs(databaseId: string, options?: {
|
|
234
|
+
limit?: number;
|
|
235
|
+
}): Promise<{
|
|
236
|
+
logs: Array<Record<string, unknown>>;
|
|
237
|
+
}>;
|
|
238
|
+
getConnection(databaseId: string): Promise<{
|
|
239
|
+
connectionString: string;
|
|
240
|
+
}>;
|
|
241
|
+
resetConnection(databaseId: string): Promise<{
|
|
242
|
+
success: boolean;
|
|
243
|
+
}>;
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/services/database.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { BaseService } from './base.js';
|
|
2
|
+
export class DatabaseService extends BaseService {
|
|
3
|
+
// ─── Core CRUD ─────────────────────
|
|
4
|
+
async list() {
|
|
5
|
+
return this.request('GET', '/api/scalixdb/databases');
|
|
6
|
+
}
|
|
7
|
+
async create(options) {
|
|
8
|
+
return this.request('POST', '/api/scalixdb/databases', {
|
|
9
|
+
body: options,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
async get(databaseId) {
|
|
13
|
+
return this.request('GET', `/api/scalixdb/databases/${databaseId}`);
|
|
14
|
+
}
|
|
15
|
+
async update(databaseId, updates) {
|
|
16
|
+
return this.request('PATCH', `/api/scalixdb/databases/${databaseId}`, {
|
|
17
|
+
body: updates,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
async delete(databaseId) {
|
|
21
|
+
return this.request('DELETE', `/api/scalixdb/databases/${databaseId}`);
|
|
22
|
+
}
|
|
23
|
+
// ─── Branches ─────────────────────
|
|
24
|
+
async listBranches(databaseId) {
|
|
25
|
+
return this.request('GET', `/api/scalixdb/databases/${databaseId}/branches`);
|
|
26
|
+
}
|
|
27
|
+
async createBranch(databaseId, options) {
|
|
28
|
+
return this.request('POST', `/api/scalixdb/databases/${databaseId}/branches`, {
|
|
29
|
+
body: options,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
async deleteBranch(databaseId, branchId) {
|
|
33
|
+
return this.request('DELETE', `/api/scalixdb/databases/${databaseId}/branches/${branchId}`);
|
|
34
|
+
}
|
|
35
|
+
async maskBranch(databaseId, branchId) {
|
|
36
|
+
return this.request('POST', `/api/scalixdb/databases/${databaseId}/branches/${branchId}/mask`);
|
|
37
|
+
}
|
|
38
|
+
// ─── Backups ─────────────────────
|
|
39
|
+
async listBackups(databaseId) {
|
|
40
|
+
return this.request('GET', `/api/scalixdb/databases/${databaseId}/backups`);
|
|
41
|
+
}
|
|
42
|
+
async createBackup(databaseId, name) {
|
|
43
|
+
return this.request('POST', `/api/scalixdb/databases/${databaseId}/backups`, {
|
|
44
|
+
body: { name },
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
async restoreBackup(databaseId, backupId) {
|
|
48
|
+
return this.request('POST', `/api/scalixdb/databases/${databaseId}/backups/${backupId}/restore`);
|
|
49
|
+
}
|
|
50
|
+
async deleteBackup(databaseId, backupId) {
|
|
51
|
+
return this.request('DELETE', `/api/scalixdb/databases/${databaseId}/backups/${backupId}`);
|
|
52
|
+
}
|
|
53
|
+
async setBackupSchedule(databaseId, schedule) {
|
|
54
|
+
return this.request('PUT', `/api/scalixdb/databases/${databaseId}/backups/schedule`, {
|
|
55
|
+
body: schedule,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
// ─── PITR (Point-in-Time Recovery) ─────────────────────
|
|
59
|
+
async enablePitr(databaseId) {
|
|
60
|
+
return this.request('POST', `/api/scalixdb/databases/${databaseId}/pitr/enable`);
|
|
61
|
+
}
|
|
62
|
+
async getRestorePoints(databaseId) {
|
|
63
|
+
return this.request('GET', `/api/scalixdb/databases/${databaseId}/pitr/restore-points`);
|
|
64
|
+
}
|
|
65
|
+
async restorePitr(databaseId, targetTime) {
|
|
66
|
+
return this.request('POST', `/api/scalixdb/databases/${databaseId}/pitr/restore`, {
|
|
67
|
+
body: { targetTime },
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
// ─── Encryption ─────────────────────
|
|
71
|
+
async getEncryption(databaseId) {
|
|
72
|
+
return this.request('GET', `/api/scalixdb/databases/${databaseId}/encryption/verify`);
|
|
73
|
+
}
|
|
74
|
+
async updateEncryption(databaseId, settings) {
|
|
75
|
+
return this.request('PUT', `/api/scalixdb/databases/${databaseId}/encryption`, {
|
|
76
|
+
body: settings,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
async rotateEncryptionKeys(databaseId) {
|
|
80
|
+
return this.request('POST', `/api/scalixdb/databases/${databaseId}/encryption/rotate`);
|
|
81
|
+
}
|
|
82
|
+
// ─── High Availability ─────────────────────
|
|
83
|
+
async getHAStatus(databaseId) {
|
|
84
|
+
return this.request('GET', `/api/scalixdb/databases/${databaseId}/ha/status`);
|
|
85
|
+
}
|
|
86
|
+
async enableHA(databaseId) {
|
|
87
|
+
return this.request('POST', `/api/scalixdb/databases/${databaseId}/ha/enable`);
|
|
88
|
+
}
|
|
89
|
+
async disableHA(databaseId) {
|
|
90
|
+
return this.request('POST', `/api/scalixdb/databases/${databaseId}/ha/disable`);
|
|
91
|
+
}
|
|
92
|
+
// ─── Connection Pooling ─────────────────────
|
|
93
|
+
async getPoolingStatus(databaseId) {
|
|
94
|
+
return this.request('GET', `/api/scalixdb/databases/${databaseId}/pooling/status`);
|
|
95
|
+
}
|
|
96
|
+
async enablePooling(databaseId) {
|
|
97
|
+
return this.request('POST', `/api/scalixdb/databases/${databaseId}/pooling/enable`);
|
|
98
|
+
}
|
|
99
|
+
async disablePooling(databaseId) {
|
|
100
|
+
return this.request('POST', `/api/scalixdb/databases/${databaseId}/pooling/disable`);
|
|
101
|
+
}
|
|
102
|
+
async getPoolingStats(databaseId) {
|
|
103
|
+
return this.request('GET', `/api/scalixdb/databases/${databaseId}/pooling/stats`);
|
|
104
|
+
}
|
|
105
|
+
async updatePoolingConfig(databaseId, config) {
|
|
106
|
+
return this.request('PUT', `/api/scalixdb/databases/${databaseId}/pooling/config`, {
|
|
107
|
+
body: config,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
// ─── Query Execution ─────────────────────
|
|
111
|
+
async query(databaseId, sql) {
|
|
112
|
+
return this.request('POST', `/api/scalixdb/databases/${databaseId}/query`, {
|
|
113
|
+
body: { sql },
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
async explain(databaseId, sql) {
|
|
117
|
+
return this.request('POST', `/api/scalixdb/databases/${databaseId}/explain`, {
|
|
118
|
+
body: { sql },
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
// ─── Table Browsing ─────────────────────
|
|
122
|
+
async listTables(databaseId, schema) {
|
|
123
|
+
const qs = schema ? `?schema=${encodeURIComponent(schema)}` : '';
|
|
124
|
+
return this.request('GET', `/api/scalixdb/databases/${databaseId}/tables${qs}`);
|
|
125
|
+
}
|
|
126
|
+
async listColumns(databaseId, tableName, schema) {
|
|
127
|
+
const qs = schema ? `?schema=${encodeURIComponent(schema)}` : '';
|
|
128
|
+
return this.request('GET', `/api/scalixdb/databases/${databaseId}/tables/${tableName}/columns${qs}`);
|
|
129
|
+
}
|
|
130
|
+
async listRows(databaseId, tableName, options) {
|
|
131
|
+
const params = new URLSearchParams();
|
|
132
|
+
if (options?.schema)
|
|
133
|
+
params.set('schema', options.schema);
|
|
134
|
+
if (options?.limit !== undefined)
|
|
135
|
+
params.set('limit', String(options.limit));
|
|
136
|
+
if (options?.offset !== undefined)
|
|
137
|
+
params.set('offset', String(options.offset));
|
|
138
|
+
if (options?.orderBy)
|
|
139
|
+
params.set('orderBy', options.orderBy);
|
|
140
|
+
if (options?.orderDir)
|
|
141
|
+
params.set('orderDir', options.orderDir);
|
|
142
|
+
const qs = params.toString() ? `?${params.toString()}` : '';
|
|
143
|
+
return this.request('GET', `/api/scalixdb/databases/${databaseId}/tables/${tableName}/rows${qs}`);
|
|
144
|
+
}
|
|
145
|
+
async insertRow(databaseId, tableName, data) {
|
|
146
|
+
return this.request('POST', `/api/scalixdb/databases/${databaseId}/tables/${tableName}/rows`, { body: data });
|
|
147
|
+
}
|
|
148
|
+
async updateRow(databaseId, tableName, data) {
|
|
149
|
+
return this.request('PUT', `/api/scalixdb/databases/${databaseId}/tables/${tableName}/rows`, { body: data });
|
|
150
|
+
}
|
|
151
|
+
async deleteRow(databaseId, tableName, conditions) {
|
|
152
|
+
return this.request('DELETE', `/api/scalixdb/databases/${databaseId}/tables/${tableName}/rows`, { body: conditions });
|
|
153
|
+
}
|
|
154
|
+
// ─── Extensions ─────────────────────
|
|
155
|
+
async listExtensions(databaseId) {
|
|
156
|
+
return this.request('GET', `/api/scalixdb/databases/${databaseId}/extensions`);
|
|
157
|
+
}
|
|
158
|
+
async enableExtension(databaseId, name) {
|
|
159
|
+
return this.request('POST', `/api/scalixdb/databases/${databaseId}/extensions/${name}/enable`);
|
|
160
|
+
}
|
|
161
|
+
async disableExtension(databaseId, name) {
|
|
162
|
+
return this.request('POST', `/api/scalixdb/databases/${databaseId}/extensions/${name}/disable`);
|
|
163
|
+
}
|
|
164
|
+
// ─── Import ─────────────────────
|
|
165
|
+
async importSql(databaseId, sql) {
|
|
166
|
+
return this.request('POST', `/api/scalixdb/databases/${databaseId}/import/sql`, {
|
|
167
|
+
body: { sql },
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
async importCsv(databaseId, data) {
|
|
171
|
+
return this.request('POST', `/api/scalixdb/databases/${databaseId}/import/csv`, {
|
|
172
|
+
body: data,
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
// ─── Credentials ─────────────────────
|
|
176
|
+
async rotateCredentials(databaseId) {
|
|
177
|
+
return this.request('POST', `/api/scalixdb/databases/${databaseId}/credentials/rotate`);
|
|
178
|
+
}
|
|
179
|
+
// ─── Monitoring ─────────────────────
|
|
180
|
+
async getMetrics(databaseId) {
|
|
181
|
+
return this.request('GET', `/api/scalixdb/databases/${databaseId}/metrics`);
|
|
182
|
+
}
|
|
183
|
+
async getLogs(databaseId, options) {
|
|
184
|
+
const qs = options?.limit ? `?limit=${options.limit}` : '';
|
|
185
|
+
return this.request('GET', `/api/scalixdb/databases/${databaseId}/logs${qs}`);
|
|
186
|
+
}
|
|
187
|
+
// ─── Connection ─────────────────────
|
|
188
|
+
async getConnection(databaseId) {
|
|
189
|
+
return this.request('GET', `/api/scalixdb/databases/${databaseId}/connection`);
|
|
190
|
+
}
|
|
191
|
+
async resetConnection(databaseId) {
|
|
192
|
+
return this.request('POST', `/api/scalixdb/databases/${databaseId}/connection/reset`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/services/database.ts"],"names":[],"mappings":"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"}
|