dominus-sdk-nodejs 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.
Files changed (63) hide show
  1. package/LLM-GUIDE.md +537 -0
  2. package/README.md +408 -0
  3. package/dist/index.d.ts +114 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +129 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/lib/client.d.ts +32 -0
  8. package/dist/lib/client.d.ts.map +1 -0
  9. package/dist/lib/client.js +374 -0
  10. package/dist/lib/client.js.map +1 -0
  11. package/dist/lib/config.d.ts +20 -0
  12. package/dist/lib/config.d.ts.map +1 -0
  13. package/dist/lib/config.js +35 -0
  14. package/dist/lib/config.js.map +1 -0
  15. package/dist/lib/errors.d.ts +77 -0
  16. package/dist/lib/errors.d.ts.map +1 -0
  17. package/dist/lib/errors.js +134 -0
  18. package/dist/lib/errors.js.map +1 -0
  19. package/dist/namespaces/auth.d.ts +65 -0
  20. package/dist/namespaces/auth.d.ts.map +1 -0
  21. package/dist/namespaces/auth.js +266 -0
  22. package/dist/namespaces/auth.js.map +1 -0
  23. package/dist/namespaces/courier.d.ts +67 -0
  24. package/dist/namespaces/courier.d.ts.map +1 -0
  25. package/dist/namespaces/courier.js +90 -0
  26. package/dist/namespaces/courier.js.map +1 -0
  27. package/dist/namespaces/db.d.ts +117 -0
  28. package/dist/namespaces/db.d.ts.map +1 -0
  29. package/dist/namespaces/db.js +149 -0
  30. package/dist/namespaces/db.js.map +1 -0
  31. package/dist/namespaces/ddl.d.ts +84 -0
  32. package/dist/namespaces/ddl.d.ts.map +1 -0
  33. package/dist/namespaces/ddl.js +211 -0
  34. package/dist/namespaces/ddl.js.map +1 -0
  35. package/dist/namespaces/files.d.ts +107 -0
  36. package/dist/namespaces/files.d.ts.map +1 -0
  37. package/dist/namespaces/files.js +161 -0
  38. package/dist/namespaces/files.js.map +1 -0
  39. package/dist/namespaces/health.d.ts +30 -0
  40. package/dist/namespaces/health.d.ts.map +1 -0
  41. package/dist/namespaces/health.js +66 -0
  42. package/dist/namespaces/health.js.map +1 -0
  43. package/dist/namespaces/logs.d.ts +97 -0
  44. package/dist/namespaces/logs.d.ts.map +1 -0
  45. package/dist/namespaces/logs.js +194 -0
  46. package/dist/namespaces/logs.js.map +1 -0
  47. package/dist/namespaces/open.d.ts +27 -0
  48. package/dist/namespaces/open.d.ts.map +1 -0
  49. package/dist/namespaces/open.js +46 -0
  50. package/dist/namespaces/open.js.map +1 -0
  51. package/dist/namespaces/portal.d.ts +124 -0
  52. package/dist/namespaces/portal.d.ts.map +1 -0
  53. package/dist/namespaces/portal.js +270 -0
  54. package/dist/namespaces/portal.js.map +1 -0
  55. package/dist/namespaces/redis.d.ts +144 -0
  56. package/dist/namespaces/redis.d.ts.map +1 -0
  57. package/dist/namespaces/redis.js +218 -0
  58. package/dist/namespaces/redis.js.map +1 -0
  59. package/dist/namespaces/secrets.d.ts +50 -0
  60. package/dist/namespaces/secrets.d.ts.map +1 -0
  61. package/dist/namespaces/secrets.js +93 -0
  62. package/dist/namespaces/secrets.js.map +1 -0
  63. package/package.json +45 -0
@@ -0,0 +1,124 @@
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
+ login(username: string, password: string, tenantId: string): Promise<Record<string, unknown>>;
22
+ /**
23
+ * Login service client with PSK.
24
+ */
25
+ loginClient(clientId: string, psk: string, tenantId: string): Promise<Record<string, unknown>>;
26
+ /**
27
+ * End session and clear cookie.
28
+ */
29
+ logout(): Promise<Record<string, unknown>>;
30
+ /**
31
+ * Refresh JWT token using existing session.
32
+ */
33
+ refresh(): Promise<Record<string, unknown>>;
34
+ /**
35
+ * Get current user/client info.
36
+ */
37
+ me(): Promise<Record<string, unknown>>;
38
+ /**
39
+ * Switch active tenant context.
40
+ */
41
+ switchTenant(tenantId: string): Promise<Record<string, unknown>>;
42
+ /**
43
+ * Change current user's password.
44
+ */
45
+ changePassword(currentPassword: string, newPassword: string): Promise<Record<string, unknown>>;
46
+ /**
47
+ * Request password reset email.
48
+ */
49
+ requestPasswordReset(email: string): Promise<Record<string, unknown>>;
50
+ /**
51
+ * Confirm password reset with token.
52
+ */
53
+ confirmPasswordReset(token: string, newPassword: string): Promise<Record<string, unknown>>;
54
+ /**
55
+ * List all active sessions for current user.
56
+ */
57
+ listSessions(): Promise<Session[]>;
58
+ /**
59
+ * Revoke a specific session.
60
+ */
61
+ revokeSession(sessionId: string): Promise<Record<string, unknown>>;
62
+ /**
63
+ * Revoke all sessions except current.
64
+ */
65
+ revokeAllSessions(): Promise<Record<string, unknown>>;
66
+ /**
67
+ * Get current user's profile.
68
+ */
69
+ getProfile(): Promise<Record<string, unknown>>;
70
+ /**
71
+ * Update user profile.
72
+ */
73
+ updateProfile(params: {
74
+ displayName?: string;
75
+ avatarUrl?: string;
76
+ bio?: string;
77
+ phone?: string;
78
+ extra?: Record<string, unknown>;
79
+ }): Promise<Record<string, unknown>>;
80
+ /**
81
+ * Get current user's preferences.
82
+ */
83
+ getPreferences(): Promise<Record<string, unknown>>;
84
+ /**
85
+ * Update user preferences.
86
+ */
87
+ updatePreferences(params: {
88
+ theme?: string;
89
+ language?: string;
90
+ timezone?: string;
91
+ sidebarCollapsed?: boolean;
92
+ notificationsEnabled?: boolean;
93
+ emailNotifications?: boolean;
94
+ extra?: Record<string, unknown>;
95
+ }): Promise<Record<string, unknown>>;
96
+ /**
97
+ * Get navigation tree for current user's tenant.
98
+ */
99
+ getNavigation(): Promise<Record<string, unknown>>;
100
+ /**
101
+ * Check if current user can access a page.
102
+ */
103
+ checkPageAccess(path: string): Promise<{
104
+ allowed: boolean;
105
+ reason?: string;
106
+ }>;
107
+ /**
108
+ * Self-register new user.
109
+ */
110
+ register(username: string, email: string, password: string, tenantId: string): Promise<Record<string, unknown>>;
111
+ /**
112
+ * Verify email with token.
113
+ */
114
+ verifyEmail(token: string): Promise<Record<string, unknown>>;
115
+ /**
116
+ * Resend verification email.
117
+ */
118
+ resendVerification(email: string): Promise<Record<string, unknown>>;
119
+ /**
120
+ * Accept admin invitation and set password.
121
+ */
122
+ acceptInvitation(token: string, password: string): Promise<Record<string, unknown>>;
123
+ }
124
+ //# 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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"}
@@ -0,0 +1,270 @@
1
+ /**
2
+ * Portal Namespace - User authentication and session orchestration.
3
+ *
4
+ * Provides login, logout, session management, profile, and navigation access.
5
+ */
6
+ export class PortalNamespace {
7
+ client;
8
+ constructor(client) {
9
+ this.client = client;
10
+ }
11
+ // ========================================
12
+ // AUTHENTICATION
13
+ // ========================================
14
+ /**
15
+ * Login user with password.
16
+ */
17
+ async login(username, password, tenantId) {
18
+ return this.client.request({
19
+ endpoint: '/api/portal/auth/login',
20
+ body: {
21
+ username,
22
+ password,
23
+ tenant_id: tenantId,
24
+ },
25
+ });
26
+ }
27
+ /**
28
+ * Login service client with PSK.
29
+ */
30
+ async loginClient(clientId, psk, tenantId) {
31
+ return this.client.request({
32
+ endpoint: '/api/portal/auth/login-client',
33
+ body: {
34
+ client_id: clientId,
35
+ psk,
36
+ tenant_id: tenantId,
37
+ },
38
+ });
39
+ }
40
+ /**
41
+ * End session and clear cookie.
42
+ */
43
+ async logout() {
44
+ return this.client.request({
45
+ endpoint: '/api/portal/auth/logout',
46
+ body: {},
47
+ });
48
+ }
49
+ /**
50
+ * Refresh JWT token using existing session.
51
+ */
52
+ async refresh() {
53
+ return this.client.request({
54
+ endpoint: '/api/portal/auth/refresh',
55
+ body: {},
56
+ });
57
+ }
58
+ /**
59
+ * Get current user/client info.
60
+ */
61
+ async me() {
62
+ return this.client.request({
63
+ endpoint: '/api/portal/auth/me',
64
+ method: 'GET',
65
+ });
66
+ }
67
+ /**
68
+ * Switch active tenant context.
69
+ */
70
+ async switchTenant(tenantId) {
71
+ return this.client.request({
72
+ endpoint: '/api/portal/auth/switch-tenant',
73
+ body: { tenant_id: tenantId },
74
+ });
75
+ }
76
+ // ========================================
77
+ // SECURITY
78
+ // ========================================
79
+ /**
80
+ * Change current user's password.
81
+ */
82
+ async changePassword(currentPassword, newPassword) {
83
+ return this.client.request({
84
+ endpoint: '/api/portal/security/change-password',
85
+ body: {
86
+ current_password: currentPassword,
87
+ new_password: newPassword,
88
+ },
89
+ });
90
+ }
91
+ /**
92
+ * Request password reset email.
93
+ */
94
+ async requestPasswordReset(email) {
95
+ return this.client.request({
96
+ endpoint: '/api/portal/security/request-reset',
97
+ body: { email },
98
+ });
99
+ }
100
+ /**
101
+ * Confirm password reset with token.
102
+ */
103
+ async confirmPasswordReset(token, newPassword) {
104
+ return this.client.request({
105
+ endpoint: '/api/portal/security/confirm-reset',
106
+ body: { token, new_password: newPassword },
107
+ });
108
+ }
109
+ /**
110
+ * List all active sessions for current user.
111
+ */
112
+ async listSessions() {
113
+ const result = await this.client.request({
114
+ endpoint: '/api/portal/security/sessions',
115
+ method: 'GET',
116
+ });
117
+ return Array.isArray(result) ? result : result.sessions || [];
118
+ }
119
+ /**
120
+ * Revoke a specific session.
121
+ */
122
+ async revokeSession(sessionId) {
123
+ return this.client.request({
124
+ endpoint: `/api/portal/security/sessions/${sessionId}`,
125
+ method: 'DELETE',
126
+ });
127
+ }
128
+ /**
129
+ * Revoke all sessions except current.
130
+ */
131
+ async revokeAllSessions() {
132
+ return this.client.request({
133
+ endpoint: '/api/portal/security/sessions/revoke-all',
134
+ body: {},
135
+ });
136
+ }
137
+ // ========================================
138
+ // PROFILE
139
+ // ========================================
140
+ /**
141
+ * Get current user's profile.
142
+ */
143
+ async getProfile() {
144
+ return this.client.request({
145
+ endpoint: '/api/portal/profile',
146
+ method: 'GET',
147
+ });
148
+ }
149
+ /**
150
+ * Update user profile.
151
+ */
152
+ async updateProfile(params) {
153
+ const body = {};
154
+ if (params.displayName !== undefined)
155
+ body.display_name = params.displayName;
156
+ if (params.avatarUrl !== undefined)
157
+ body.avatar_url = params.avatarUrl;
158
+ if (params.bio !== undefined)
159
+ body.bio = params.bio;
160
+ if (params.phone !== undefined)
161
+ body.phone = params.phone;
162
+ if (params.extra !== undefined)
163
+ body.extra = params.extra;
164
+ return this.client.request({
165
+ endpoint: '/api/portal/profile',
166
+ method: 'PUT',
167
+ body,
168
+ });
169
+ }
170
+ /**
171
+ * Get current user's preferences.
172
+ */
173
+ async getPreferences() {
174
+ return this.client.request({
175
+ endpoint: '/api/portal/profile/preferences',
176
+ method: 'GET',
177
+ });
178
+ }
179
+ /**
180
+ * Update user preferences.
181
+ */
182
+ async updatePreferences(params) {
183
+ const body = {};
184
+ if (params.theme !== undefined)
185
+ body.theme = params.theme;
186
+ if (params.language !== undefined)
187
+ body.language = params.language;
188
+ if (params.timezone !== undefined)
189
+ body.timezone = params.timezone;
190
+ if (params.sidebarCollapsed !== undefined)
191
+ body.sidebar_collapsed = params.sidebarCollapsed;
192
+ if (params.notificationsEnabled !== undefined)
193
+ body.notifications_enabled = params.notificationsEnabled;
194
+ if (params.emailNotifications !== undefined)
195
+ body.email_notifications = params.emailNotifications;
196
+ if (params.extra !== undefined)
197
+ body.extra = params.extra;
198
+ return this.client.request({
199
+ endpoint: '/api/portal/profile/preferences',
200
+ method: 'PUT',
201
+ body,
202
+ });
203
+ }
204
+ // ========================================
205
+ // NAVIGATION
206
+ // ========================================
207
+ /**
208
+ * Get navigation tree for current user's tenant.
209
+ */
210
+ async getNavigation() {
211
+ return this.client.request({
212
+ endpoint: '/api/portal/nav/tree',
213
+ method: 'GET',
214
+ });
215
+ }
216
+ /**
217
+ * Check if current user can access a page.
218
+ */
219
+ async checkPageAccess(path) {
220
+ return this.client.request({
221
+ endpoint: '/api/portal/nav/check-access',
222
+ body: { path },
223
+ });
224
+ }
225
+ // ========================================
226
+ // REGISTRATION
227
+ // ========================================
228
+ /**
229
+ * Self-register new user.
230
+ */
231
+ async register(username, email, password, tenantId) {
232
+ return this.client.request({
233
+ endpoint: '/api/portal/register',
234
+ body: {
235
+ username,
236
+ email,
237
+ password,
238
+ tenant_id: tenantId,
239
+ },
240
+ });
241
+ }
242
+ /**
243
+ * Verify email with token.
244
+ */
245
+ async verifyEmail(token) {
246
+ return this.client.request({
247
+ endpoint: '/api/portal/register/verify',
248
+ body: { token },
249
+ });
250
+ }
251
+ /**
252
+ * Resend verification email.
253
+ */
254
+ async resendVerification(email) {
255
+ return this.client.request({
256
+ endpoint: '/api/portal/register/resend-verification',
257
+ body: { email },
258
+ });
259
+ }
260
+ /**
261
+ * Accept admin invitation and set password.
262
+ */
263
+ async acceptInvitation(token, password) {
264
+ return this.client.request({
265
+ endpoint: '/api/portal/register/accept-invitation',
266
+ body: { token, password },
267
+ });
268
+ }
269
+ }
270
+ //# sourceMappingURL=portal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal.js","sourceRoot":"","sources":["../../src/namespaces/portal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Redis Namespace - Whisperer caching operations.
3
+ *
4
+ * Provides Redis caching operations via Upstash REST API.
5
+ * TTL enforced: min 60 seconds, max 86400 seconds (24 hours).
6
+ */
7
+ import type { DominusClient } from '../lib/client.js';
8
+ export interface SetResult {
9
+ key: string;
10
+ stored: boolean;
11
+ ttl_seconds: number;
12
+ }
13
+ export interface GetResult {
14
+ found: boolean;
15
+ value?: unknown;
16
+ }
17
+ export interface ListResult {
18
+ keys: string[];
19
+ cursor?: string;
20
+ count: number;
21
+ }
22
+ export interface SetnxResult {
23
+ acquired: boolean;
24
+ existing?: unknown;
25
+ }
26
+ export interface IncrResult {
27
+ value: number;
28
+ }
29
+ export interface HsetResult {
30
+ set: boolean;
31
+ }
32
+ export interface HgetallResult {
33
+ found: boolean;
34
+ fields?: Record<string, unknown>;
35
+ }
36
+ export declare class RedisNamespace {
37
+ private client;
38
+ constructor(client: DominusClient);
39
+ /**
40
+ * Set a value with TTL.
41
+ *
42
+ * @param key - Key name
43
+ * @param value - Any JSON-serializable value
44
+ * @param ttl - Time-to-live in seconds (60-86400, default: 3600)
45
+ * @param category - Optional namespace category
46
+ */
47
+ set(key: string, value: unknown, ttl?: number, category?: string): Promise<SetResult>;
48
+ /**
49
+ * Get a value, optionally refreshing TTL.
50
+ *
51
+ * @param key - Key name
52
+ * @param options - Get options (category, nudge, ttl)
53
+ */
54
+ get(key: string, options?: {
55
+ category?: string;
56
+ nudge?: boolean;
57
+ ttl?: number;
58
+ }): Promise<GetResult>;
59
+ /**
60
+ * Delete a key.
61
+ *
62
+ * @param key - Key name
63
+ * @param category - Optional namespace category
64
+ */
65
+ delete(key: string, category?: string): Promise<{
66
+ deleted: boolean;
67
+ }>;
68
+ /**
69
+ * List keys by prefix with pagination.
70
+ *
71
+ * @param options - List options (prefix, category, limit, cursor)
72
+ */
73
+ list(options?: {
74
+ prefix?: string;
75
+ category?: string;
76
+ limit?: number;
77
+ cursor?: string;
78
+ }): Promise<ListResult>;
79
+ /**
80
+ * Get multiple keys at once.
81
+ *
82
+ * @param keys - List of key specs (max 100)
83
+ */
84
+ mget(keys: Array<{
85
+ logical_path: string;
86
+ category?: string;
87
+ }>): Promise<{
88
+ results: Array<GetResult>;
89
+ }>;
90
+ /**
91
+ * Set if not exists (for distributed locks).
92
+ *
93
+ * @param key - Key name
94
+ * @param value - Any JSON-serializable value
95
+ * @param ttl - Time-to-live in seconds (60-86400, default: 60)
96
+ * @param category - Optional namespace category
97
+ */
98
+ setnx(key: string, value: unknown, ttl?: number, category?: string): Promise<SetnxResult>;
99
+ /**
100
+ * Increment counter (creates if not exists).
101
+ *
102
+ * @param key - Key name
103
+ * @param delta - Increment amount (default: 1)
104
+ * @param ttl - Time-to-live in seconds (60-86400, default: 3600)
105
+ * @param category - Optional namespace category
106
+ */
107
+ incr(key: string, delta?: number, ttl?: number, category?: string): Promise<IncrResult>;
108
+ /**
109
+ * Set a hash field.
110
+ *
111
+ * @param key - Hash key name
112
+ * @param field - Field name
113
+ * @param value - Any JSON-serializable value
114
+ * @param ttl - Time-to-live in seconds (60-86400, default: 3600)
115
+ * @param category - Optional namespace category
116
+ */
117
+ hset(key: string, field: string, value: unknown, ttl?: number, category?: string): Promise<HsetResult>;
118
+ /**
119
+ * Get a hash field.
120
+ *
121
+ * @param key - Hash key name
122
+ * @param field - Field name
123
+ * @param category - Optional namespace category
124
+ */
125
+ hget(key: string, field: string, category?: string): Promise<GetResult>;
126
+ /**
127
+ * Get all fields from a hash.
128
+ *
129
+ * @param key - Hash key name
130
+ * @param category - Optional namespace category
131
+ */
132
+ hgetall(key: string, category?: string): Promise<HgetallResult>;
133
+ /**
134
+ * Delete a hash field.
135
+ *
136
+ * @param key - Hash key name
137
+ * @param field - Field name to delete
138
+ * @param category - Optional namespace category
139
+ */
140
+ hdel(key: string, field: string, category?: string): Promise<{
141
+ deleted: boolean;
142
+ }>;
143
+ }
144
+ //# sourceMappingURL=redis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/namespaces/redis.ts"],"names":[],"mappings":"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"}