dominus-sdk-nodejs-staging 1.2.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/LLM-GUIDE.md +537 -0
- package/README.md +585 -0
- package/dist/index.d.ts +191 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +224 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/cache.d.ts +112 -0
- package/dist/lib/cache.d.ts.map +1 -0
- package/dist/lib/cache.js +237 -0
- package/dist/lib/cache.js.map +1 -0
- package/dist/lib/client.d.ts +38 -0
- package/dist/lib/client.d.ts.map +1 -0
- package/dist/lib/client.js +425 -0
- package/dist/lib/client.js.map +1 -0
- package/dist/lib/config.d.ts +20 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +32 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/crypto.d.ts +70 -0
- package/dist/lib/crypto.d.ts.map +1 -0
- package/dist/lib/crypto.js +95 -0
- package/dist/lib/crypto.js.map +1 -0
- package/dist/lib/errors.d.ts +77 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +134 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/namespaces/auth.d.ts +237 -0
- package/dist/namespaces/auth.d.ts.map +1 -0
- package/dist/namespaces/auth.js +785 -0
- package/dist/namespaces/auth.js.map +1 -0
- package/dist/namespaces/courier.d.ts +67 -0
- package/dist/namespaces/courier.d.ts.map +1 -0
- package/dist/namespaces/courier.js +90 -0
- package/dist/namespaces/courier.js.map +1 -0
- package/dist/namespaces/db.d.ts +117 -0
- package/dist/namespaces/db.d.ts.map +1 -0
- package/dist/namespaces/db.js +149 -0
- package/dist/namespaces/db.js.map +1 -0
- package/dist/namespaces/ddl.d.ts +84 -0
- package/dist/namespaces/ddl.d.ts.map +1 -0
- package/dist/namespaces/ddl.js +211 -0
- package/dist/namespaces/ddl.js.map +1 -0
- package/dist/namespaces/files.d.ts +107 -0
- package/dist/namespaces/files.d.ts.map +1 -0
- package/dist/namespaces/files.js +161 -0
- package/dist/namespaces/files.js.map +1 -0
- package/dist/namespaces/health.d.ts +30 -0
- package/dist/namespaces/health.d.ts.map +1 -0
- package/dist/namespaces/health.js +66 -0
- package/dist/namespaces/health.js.map +1 -0
- package/dist/namespaces/logs.d.ts +97 -0
- package/dist/namespaces/logs.d.ts.map +1 -0
- package/dist/namespaces/logs.js +194 -0
- package/dist/namespaces/logs.js.map +1 -0
- package/dist/namespaces/open.d.ts +27 -0
- package/dist/namespaces/open.d.ts.map +1 -0
- package/dist/namespaces/open.js +46 -0
- package/dist/namespaces/open.js.map +1 -0
- package/dist/namespaces/portal.d.ts +172 -0
- package/dist/namespaces/portal.d.ts.map +1 -0
- package/dist/namespaces/portal.js +332 -0
- package/dist/namespaces/portal.js.map +1 -0
- package/dist/namespaces/redis.d.ts +144 -0
- package/dist/namespaces/redis.d.ts.map +1 -0
- package/dist/namespaces/redis.js +218 -0
- package/dist/namespaces/redis.js.map +1 -0
- package/dist/namespaces/secrets.d.ts +50 -0
- package/dist/namespaces/secrets.d.ts.map +1 -0
- package/dist/namespaces/secrets.js +93 -0
- package/dist/namespaces/secrets.js.map +1 -0
- package/dist/namespaces/secure.d.ts +102 -0
- package/dist/namespaces/secure.d.ts.map +1 -0
- package/dist/namespaces/secure.js +151 -0
- package/dist/namespaces/secure.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logs Namespace - Herald structured logging operations.
|
|
3
|
+
*
|
|
4
|
+
* Provides zero-friction logging to BetterStack via Herald service.
|
|
5
|
+
* SDK automatically captures callsite (file, function) - users just call:
|
|
6
|
+
* await dominus.logs.info("message", { key: "value" })
|
|
7
|
+
*/
|
|
8
|
+
import type { DominusClient } from '../lib/client.js';
|
|
9
|
+
export interface LogContext {
|
|
10
|
+
[key: string]: unknown;
|
|
11
|
+
}
|
|
12
|
+
export interface LogEntry {
|
|
13
|
+
level: string;
|
|
14
|
+
message: string;
|
|
15
|
+
context?: LogContext;
|
|
16
|
+
category?: string;
|
|
17
|
+
file?: string;
|
|
18
|
+
function?: string;
|
|
19
|
+
dt?: string;
|
|
20
|
+
[key: string]: unknown;
|
|
21
|
+
}
|
|
22
|
+
export interface BatchResult {
|
|
23
|
+
total: number;
|
|
24
|
+
stored: number;
|
|
25
|
+
failed: number;
|
|
26
|
+
}
|
|
27
|
+
export declare class LogsNamespace {
|
|
28
|
+
private client;
|
|
29
|
+
constructor(client: DominusClient);
|
|
30
|
+
/**
|
|
31
|
+
* Capture callsite information from the call stack.
|
|
32
|
+
*/
|
|
33
|
+
private captureCallsite;
|
|
34
|
+
/**
|
|
35
|
+
* Fallback log to stderr when backend unavailable.
|
|
36
|
+
*/
|
|
37
|
+
private fallbackLog;
|
|
38
|
+
/**
|
|
39
|
+
* Internal log method with callsite capture.
|
|
40
|
+
*/
|
|
41
|
+
private _log;
|
|
42
|
+
/**
|
|
43
|
+
* Log debug message.
|
|
44
|
+
*/
|
|
45
|
+
debug(message: string, context?: LogContext, category?: string): Promise<boolean>;
|
|
46
|
+
/**
|
|
47
|
+
* Log info message.
|
|
48
|
+
*/
|
|
49
|
+
info(message: string, context?: LogContext, category?: string): Promise<boolean>;
|
|
50
|
+
/**
|
|
51
|
+
* Log notice message.
|
|
52
|
+
*/
|
|
53
|
+
notice(message: string, context?: LogContext, category?: string): Promise<boolean>;
|
|
54
|
+
/**
|
|
55
|
+
* Log warning message.
|
|
56
|
+
*/
|
|
57
|
+
warn(message: string, context?: LogContext, category?: string): Promise<boolean>;
|
|
58
|
+
/**
|
|
59
|
+
* Log error message.
|
|
60
|
+
*/
|
|
61
|
+
error(message: string, context?: LogContext, options?: {
|
|
62
|
+
category?: string;
|
|
63
|
+
exception?: Error;
|
|
64
|
+
}): Promise<boolean>;
|
|
65
|
+
/**
|
|
66
|
+
* Log critical message.
|
|
67
|
+
*/
|
|
68
|
+
critical(message: string, context?: LogContext, options?: {
|
|
69
|
+
category?: string;
|
|
70
|
+
exception?: Error;
|
|
71
|
+
}): Promise<boolean>;
|
|
72
|
+
/**
|
|
73
|
+
* Query logs from Herald.
|
|
74
|
+
*/
|
|
75
|
+
query(options?: {
|
|
76
|
+
level?: string;
|
|
77
|
+
category?: string;
|
|
78
|
+
startTime?: string;
|
|
79
|
+
endTime?: string;
|
|
80
|
+
file?: string;
|
|
81
|
+
function?: string;
|
|
82
|
+
search?: string;
|
|
83
|
+
limit?: number;
|
|
84
|
+
project?: string;
|
|
85
|
+
environment?: string;
|
|
86
|
+
}): Promise<LogEntry[]>;
|
|
87
|
+
/**
|
|
88
|
+
* Send multiple log events in one request.
|
|
89
|
+
*/
|
|
90
|
+
batch(events: Array<{
|
|
91
|
+
level: string;
|
|
92
|
+
message: string;
|
|
93
|
+
context?: LogContext;
|
|
94
|
+
category?: string;
|
|
95
|
+
}>): Promise<BatchResult>;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=logs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/namespaces/logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logs Namespace - Herald structured logging operations.
|
|
3
|
+
*
|
|
4
|
+
* Provides zero-friction logging to BetterStack via Herald service.
|
|
5
|
+
* SDK automatically captures callsite (file, function) - users just call:
|
|
6
|
+
* await dominus.logs.info("message", { key: "value" })
|
|
7
|
+
*/
|
|
8
|
+
export class LogsNamespace {
|
|
9
|
+
client;
|
|
10
|
+
constructor(client) {
|
|
11
|
+
this.client = client;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Capture callsite information from the call stack.
|
|
15
|
+
*/
|
|
16
|
+
captureCallsite() {
|
|
17
|
+
try {
|
|
18
|
+
const err = new Error();
|
|
19
|
+
const stack = err.stack?.split('\n') || [];
|
|
20
|
+
// Skip: Error, captureCallsite, _log, public method, caller
|
|
21
|
+
const callerLine = stack[4] || stack[3] || '';
|
|
22
|
+
// Parse stack line like "at functionName (file:line:col)" or "at file:line:col"
|
|
23
|
+
const match = callerLine.match(/at\s+(?:(.+?)\s+\()?(.+?)(?::\d+:\d+)?\)?$/);
|
|
24
|
+
if (match) {
|
|
25
|
+
let filepath = match[2] || '';
|
|
26
|
+
const func = match[1];
|
|
27
|
+
// Normalize filepath - keep last 3 path components
|
|
28
|
+
const parts = filepath.split(/[/\\]/);
|
|
29
|
+
if (parts.length > 3) {
|
|
30
|
+
filepath = parts.slice(-3).join('/');
|
|
31
|
+
}
|
|
32
|
+
return { file: filepath || undefined, func: func || undefined };
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
// Ignore callsite capture errors
|
|
37
|
+
}
|
|
38
|
+
return {};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Fallback log to stderr when backend unavailable.
|
|
42
|
+
*/
|
|
43
|
+
fallbackLog(level, message, context) {
|
|
44
|
+
try {
|
|
45
|
+
const entry = {
|
|
46
|
+
dt: new Date().toISOString(),
|
|
47
|
+
level: level.toUpperCase(),
|
|
48
|
+
message,
|
|
49
|
+
_fallback: true,
|
|
50
|
+
};
|
|
51
|
+
if (context) {
|
|
52
|
+
entry.context = context;
|
|
53
|
+
}
|
|
54
|
+
console.error(JSON.stringify(entry));
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// Ignore
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Internal log method with callsite capture.
|
|
62
|
+
*/
|
|
63
|
+
async _log(level, message, context, category, exception) {
|
|
64
|
+
const { file, func } = this.captureCallsite();
|
|
65
|
+
const body = {
|
|
66
|
+
level,
|
|
67
|
+
message,
|
|
68
|
+
};
|
|
69
|
+
if (context)
|
|
70
|
+
body.context = context;
|
|
71
|
+
if (category)
|
|
72
|
+
body.category = category;
|
|
73
|
+
if (file)
|
|
74
|
+
body.file = file;
|
|
75
|
+
if (func)
|
|
76
|
+
body.function = func;
|
|
77
|
+
if (exception) {
|
|
78
|
+
body.context = {
|
|
79
|
+
...(body.context || {}),
|
|
80
|
+
exception: {
|
|
81
|
+
type: exception.name,
|
|
82
|
+
message: exception.message,
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
const result = await this.client.request({
|
|
88
|
+
endpoint: '/api/herald/log',
|
|
89
|
+
body,
|
|
90
|
+
});
|
|
91
|
+
return result.stored ?? false;
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
// Never raise - fallback to local
|
|
95
|
+
this.fallbackLog(level, message, context);
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Log debug message.
|
|
101
|
+
*/
|
|
102
|
+
async debug(message, context, category) {
|
|
103
|
+
return this._log('debug', message, context, category);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Log info message.
|
|
107
|
+
*/
|
|
108
|
+
async info(message, context, category) {
|
|
109
|
+
return this._log('info', message, context, category);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Log notice message.
|
|
113
|
+
*/
|
|
114
|
+
async notice(message, context, category) {
|
|
115
|
+
return this._log('notice', message, context, category);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Log warning message.
|
|
119
|
+
*/
|
|
120
|
+
async warn(message, context, category) {
|
|
121
|
+
return this._log('warn', message, context, category);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Log error message.
|
|
125
|
+
*/
|
|
126
|
+
async error(message, context, options) {
|
|
127
|
+
return this._log('error', message, context, options?.category, options?.exception);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Log critical message.
|
|
131
|
+
*/
|
|
132
|
+
async critical(message, context, options) {
|
|
133
|
+
return this._log('critical', message, context, options?.category, options?.exception);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Query logs from Herald.
|
|
137
|
+
*/
|
|
138
|
+
async query(options = {}) {
|
|
139
|
+
const { level, category, startTime, endTime, file, function: func, search, limit = 100, project, environment, } = options;
|
|
140
|
+
const body = { limit };
|
|
141
|
+
if (level)
|
|
142
|
+
body.level = level;
|
|
143
|
+
if (category)
|
|
144
|
+
body.category = category;
|
|
145
|
+
if (startTime)
|
|
146
|
+
body.start_time = startTime;
|
|
147
|
+
if (endTime)
|
|
148
|
+
body.end_time = endTime;
|
|
149
|
+
if (file)
|
|
150
|
+
body.file = file;
|
|
151
|
+
if (func)
|
|
152
|
+
body.function = func;
|
|
153
|
+
if (search)
|
|
154
|
+
body.search = search;
|
|
155
|
+
if (project)
|
|
156
|
+
body.project = project;
|
|
157
|
+
if (environment)
|
|
158
|
+
body.environment = environment;
|
|
159
|
+
try {
|
|
160
|
+
const result = await this.client.request({
|
|
161
|
+
endpoint: '/api/herald/query',
|
|
162
|
+
body,
|
|
163
|
+
});
|
|
164
|
+
return result.logs ?? [];
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
return [];
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Send multiple log events in one request.
|
|
172
|
+
*/
|
|
173
|
+
async batch(events) {
|
|
174
|
+
try {
|
|
175
|
+
const result = await this.client.request({
|
|
176
|
+
endpoint: '/api/herald/batch',
|
|
177
|
+
body: { events: events.slice(0, 100) },
|
|
178
|
+
});
|
|
179
|
+
return result;
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
// Fallback - log each locally
|
|
183
|
+
for (const event of events) {
|
|
184
|
+
this.fallbackLog(event.level || 'info', event.message || '', event.context);
|
|
185
|
+
}
|
|
186
|
+
return {
|
|
187
|
+
total: events.length,
|
|
188
|
+
stored: 0,
|
|
189
|
+
failed: events.length,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/namespaces/logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Open Namespace - Direct database access operations.
|
|
3
|
+
*
|
|
4
|
+
* Provides DSN retrieval and raw SQL execution for advanced use cases.
|
|
5
|
+
*/
|
|
6
|
+
import type { DominusClient } from '../lib/client.js';
|
|
7
|
+
export declare class OpenNamespace {
|
|
8
|
+
private client;
|
|
9
|
+
constructor(client: DominusClient);
|
|
10
|
+
/**
|
|
11
|
+
* Get the PostgreSQL connection DSN.
|
|
12
|
+
*
|
|
13
|
+
* Returns the complete PostgreSQL connection URI that can be
|
|
14
|
+
* used directly by clients to connect to the database.
|
|
15
|
+
*/
|
|
16
|
+
dsn(): Promise<string>;
|
|
17
|
+
/**
|
|
18
|
+
* Execute raw SQL query.
|
|
19
|
+
*
|
|
20
|
+
* Use with caution - this bypasses most safety checks.
|
|
21
|
+
*
|
|
22
|
+
* @param sql - SQL query string
|
|
23
|
+
* @param params - Optional parameter dictionary
|
|
24
|
+
*/
|
|
25
|
+
execute(sql: string, params?: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=open.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../src/namespaces/open.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,qBAAa,aAAa;IACZ,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAEzC;;;;;OAKG;IACG,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IAY5B;;;;;;;OAOG;IACG,OAAO,CACX,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAWpC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Open Namespace - Direct database access operations.
|
|
3
|
+
*
|
|
4
|
+
* Provides DSN retrieval and raw SQL execution for advanced use cases.
|
|
5
|
+
*/
|
|
6
|
+
export class OpenNamespace {
|
|
7
|
+
client;
|
|
8
|
+
constructor(client) {
|
|
9
|
+
this.client = client;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Get the PostgreSQL connection DSN.
|
|
13
|
+
*
|
|
14
|
+
* Returns the complete PostgreSQL connection URI that can be
|
|
15
|
+
* used directly by clients to connect to the database.
|
|
16
|
+
*/
|
|
17
|
+
async dsn() {
|
|
18
|
+
const result = await this.client.request({
|
|
19
|
+
endpoint: '/api/scribe/open/dsn',
|
|
20
|
+
method: 'GET',
|
|
21
|
+
});
|
|
22
|
+
if (typeof result === 'string') {
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
25
|
+
return result.dsn || result.connection_string || '';
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Execute raw SQL query.
|
|
29
|
+
*
|
|
30
|
+
* Use with caution - this bypasses most safety checks.
|
|
31
|
+
*
|
|
32
|
+
* @param sql - SQL query string
|
|
33
|
+
* @param params - Optional parameter dictionary
|
|
34
|
+
*/
|
|
35
|
+
async execute(sql, params) {
|
|
36
|
+
const body = { sql };
|
|
37
|
+
if (params) {
|
|
38
|
+
body.params = params;
|
|
39
|
+
}
|
|
40
|
+
return this.client.request({
|
|
41
|
+
endpoint: '/api/scribe/open/execute',
|
|
42
|
+
body,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=open.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open.js","sourceRoot":"","sources":["../../src/namespaces/open.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,OAAO,aAAa;IACJ;IAApB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C;;;;;OAKG;IACH,KAAK,CAAC,GAAG;QACP,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAwD;YAC9F,QAAQ,EAAE,sBAAsB;YAChC,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,iBAAiB,IAAI,EAAE,CAAC;IACtD,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CACX,GAAW,EACX,MAAgC;QAEhC,MAAM,IAAI,GAA4B,EAAE,GAAG,EAAE,CAAC;QAC9C,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,0BAA0B;YACpC,IAAI;SACL,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Portal Namespace - User authentication and session orchestration.
|
|
3
|
+
*
|
|
4
|
+
* Provides login, logout, session management, profile, and navigation access.
|
|
5
|
+
*/
|
|
6
|
+
import type { DominusClient } from '../lib/client.js';
|
|
7
|
+
export interface Session {
|
|
8
|
+
id: string;
|
|
9
|
+
userId: string;
|
|
10
|
+
tenantId: string;
|
|
11
|
+
createdAt: string;
|
|
12
|
+
expiresAt: string;
|
|
13
|
+
[key: string]: unknown;
|
|
14
|
+
}
|
|
15
|
+
export declare class PortalNamespace {
|
|
16
|
+
private client;
|
|
17
|
+
constructor(client: DominusClient);
|
|
18
|
+
/**
|
|
19
|
+
* Login user with password.
|
|
20
|
+
*
|
|
21
|
+
* @param username - Username or email
|
|
22
|
+
* @param password - User password
|
|
23
|
+
* @param tenantId - Optional tenant UUID/slug. If not provided, uses user's first available tenant.
|
|
24
|
+
* @returns User info, active tenant, available tenants list, and session_id
|
|
25
|
+
*/
|
|
26
|
+
login(username: string, password: string, tenantId?: string): Promise<Record<string, unknown>>;
|
|
27
|
+
/**
|
|
28
|
+
* Login service client with PSK.
|
|
29
|
+
*
|
|
30
|
+
* Client is looked up by PSK directly - no client_id needed.
|
|
31
|
+
*
|
|
32
|
+
* @param psk - Pre-shared key
|
|
33
|
+
* @param tenantId - Optional tenant UUID. If not provided, uses client's first assigned tenant.
|
|
34
|
+
*/
|
|
35
|
+
loginClient(psk: string, tenantId?: string): Promise<Record<string, unknown>>;
|
|
36
|
+
/**
|
|
37
|
+
* End session and clear cookie.
|
|
38
|
+
*
|
|
39
|
+
* @param userToken - User's JWT token (required for user-authenticated requests)
|
|
40
|
+
*/
|
|
41
|
+
logout(userToken?: string): Promise<Record<string, unknown>>;
|
|
42
|
+
/**
|
|
43
|
+
* Refresh JWT token using existing session.
|
|
44
|
+
*
|
|
45
|
+
* @param userToken - User's current JWT token (can be expired)
|
|
46
|
+
* @returns New access token and session info
|
|
47
|
+
*/
|
|
48
|
+
refresh(userToken?: string): Promise<Record<string, unknown>>;
|
|
49
|
+
/**
|
|
50
|
+
* Get current user/client info.
|
|
51
|
+
*
|
|
52
|
+
* @param userToken - User's JWT token (required for user-authenticated requests)
|
|
53
|
+
*/
|
|
54
|
+
me(userToken?: string): Promise<Record<string, unknown>>;
|
|
55
|
+
/**
|
|
56
|
+
* Switch active tenant context.
|
|
57
|
+
*
|
|
58
|
+
* @param tenantId - Tenant UUID to switch to
|
|
59
|
+
* @param userToken - User's JWT token (required for user-authenticated requests)
|
|
60
|
+
*/
|
|
61
|
+
switchTenant(tenantId: string, userToken?: string): Promise<Record<string, unknown>>;
|
|
62
|
+
/**
|
|
63
|
+
* Change current user's password.
|
|
64
|
+
*
|
|
65
|
+
* @param currentPassword - Current password
|
|
66
|
+
* @param newPassword - New password
|
|
67
|
+
* @param userToken - User's JWT token
|
|
68
|
+
*/
|
|
69
|
+
changePassword(currentPassword: string, newPassword: string, userToken?: string): Promise<Record<string, unknown>>;
|
|
70
|
+
/**
|
|
71
|
+
* Request password reset email.
|
|
72
|
+
* Note: This does not require user authentication.
|
|
73
|
+
*/
|
|
74
|
+
requestPasswordReset(email: string): Promise<Record<string, unknown>>;
|
|
75
|
+
/**
|
|
76
|
+
* Confirm password reset with token.
|
|
77
|
+
* Note: This does not require user authentication.
|
|
78
|
+
*/
|
|
79
|
+
confirmPasswordReset(token: string, newPassword: string): Promise<Record<string, unknown>>;
|
|
80
|
+
/**
|
|
81
|
+
* List all active sessions for current user.
|
|
82
|
+
*
|
|
83
|
+
* @param userToken - User's JWT token
|
|
84
|
+
*/
|
|
85
|
+
listSessions(userToken?: string): Promise<Session[]>;
|
|
86
|
+
/**
|
|
87
|
+
* Revoke a specific session.
|
|
88
|
+
*
|
|
89
|
+
* @param sessionId - Session UUID to revoke
|
|
90
|
+
* @param userToken - User's JWT token
|
|
91
|
+
*/
|
|
92
|
+
revokeSession(sessionId: string, userToken?: string): Promise<Record<string, unknown>>;
|
|
93
|
+
/**
|
|
94
|
+
* Revoke all sessions except current.
|
|
95
|
+
*
|
|
96
|
+
* @param userToken - User's JWT token
|
|
97
|
+
*/
|
|
98
|
+
revokeAllSessions(userToken?: string): Promise<Record<string, unknown>>;
|
|
99
|
+
/**
|
|
100
|
+
* Get current user's profile.
|
|
101
|
+
*
|
|
102
|
+
* @param userToken - User's JWT token
|
|
103
|
+
*/
|
|
104
|
+
getProfile(userToken?: string): Promise<Record<string, unknown>>;
|
|
105
|
+
/**
|
|
106
|
+
* Update user profile.
|
|
107
|
+
*
|
|
108
|
+
* @param params - Profile fields to update
|
|
109
|
+
* @param userToken - User's JWT token
|
|
110
|
+
*/
|
|
111
|
+
updateProfile(params: {
|
|
112
|
+
displayName?: string;
|
|
113
|
+
avatarUrl?: string;
|
|
114
|
+
bio?: string;
|
|
115
|
+
phone?: string;
|
|
116
|
+
extra?: Record<string, unknown>;
|
|
117
|
+
}, userToken?: string): Promise<Record<string, unknown>>;
|
|
118
|
+
/**
|
|
119
|
+
* Get current user's preferences.
|
|
120
|
+
*
|
|
121
|
+
* @param userToken - User's JWT token
|
|
122
|
+
*/
|
|
123
|
+
getPreferences(userToken?: string): Promise<Record<string, unknown>>;
|
|
124
|
+
/**
|
|
125
|
+
* Update user preferences.
|
|
126
|
+
*
|
|
127
|
+
* @param params - Preference fields to update
|
|
128
|
+
* @param userToken - User's JWT token
|
|
129
|
+
*/
|
|
130
|
+
updatePreferences(params: {
|
|
131
|
+
theme?: string;
|
|
132
|
+
language?: string;
|
|
133
|
+
timezone?: string;
|
|
134
|
+
sidebarCollapsed?: boolean;
|
|
135
|
+
notificationsEnabled?: boolean;
|
|
136
|
+
emailNotifications?: boolean;
|
|
137
|
+
extra?: Record<string, unknown>;
|
|
138
|
+
}, userToken?: string): Promise<Record<string, unknown>>;
|
|
139
|
+
/**
|
|
140
|
+
* Get navigation tree for current user's tenant.
|
|
141
|
+
*
|
|
142
|
+
* @param userToken - User's JWT token
|
|
143
|
+
*/
|
|
144
|
+
getNavigation(userToken?: string): Promise<Record<string, unknown>>;
|
|
145
|
+
/**
|
|
146
|
+
* Check if current user can access a page.
|
|
147
|
+
*
|
|
148
|
+
* @param pagePath - Page path to check (e.g., "/dashboard/admin")
|
|
149
|
+
* @param userToken - User's JWT token
|
|
150
|
+
*/
|
|
151
|
+
checkPageAccess(pagePath: string, userToken?: string): Promise<{
|
|
152
|
+
allowed: boolean;
|
|
153
|
+
reason?: string;
|
|
154
|
+
}>;
|
|
155
|
+
/**
|
|
156
|
+
* Self-register new user.
|
|
157
|
+
*/
|
|
158
|
+
register(username: string, email: string, password: string, tenantId: string): Promise<Record<string, unknown>>;
|
|
159
|
+
/**
|
|
160
|
+
* Verify email with token.
|
|
161
|
+
*/
|
|
162
|
+
verifyEmail(token: string): Promise<Record<string, unknown>>;
|
|
163
|
+
/**
|
|
164
|
+
* Resend verification email.
|
|
165
|
+
*/
|
|
166
|
+
resendVerification(email: string): Promise<Record<string, unknown>>;
|
|
167
|
+
/**
|
|
168
|
+
* Accept admin invitation and set password.
|
|
169
|
+
*/
|
|
170
|
+
acceptInvitation(token: string, password: string): Promise<Record<string, unknown>>;
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=portal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../../src/namespaces/portal.ts"],"names":[],"mappings":"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"}
|