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 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Auth Namespace - Guardian authentication/authorization management.
3
+ *
4
+ * Provides RESTful access to users, roles, scopes, clients, tenants, etc.
5
+ */
6
+ import type { DominusClient } from '../lib/client.js';
7
+ export declare class AuthNamespace {
8
+ private client;
9
+ constructor(client: DominusClient);
10
+ getUser(userId: string): Promise<Record<string, unknown>>;
11
+ listUsers(): Promise<Array<Record<string, unknown>>>;
12
+ addUser(params: {
13
+ username: string;
14
+ password: string;
15
+ email?: string;
16
+ roleId?: string;
17
+ }): Promise<Record<string, unknown>>;
18
+ updateUser(userId: string, data: Record<string, unknown>): Promise<Record<string, unknown>>;
19
+ deleteUser(userId: string): Promise<Record<string, unknown>>;
20
+ getRole(roleId: string): Promise<Record<string, unknown>>;
21
+ listRoles(): Promise<Array<Record<string, unknown>>>;
22
+ addRole(params: {
23
+ name: string;
24
+ scopeSlugs?: string[];
25
+ description?: string;
26
+ }): Promise<Record<string, unknown>>;
27
+ updateRole(roleId: string, data: Record<string, unknown>): Promise<Record<string, unknown>>;
28
+ deleteRole(roleId: string): Promise<Record<string, unknown>>;
29
+ getScope(scopeId: string): Promise<Record<string, unknown>>;
30
+ listScopes(): Promise<Array<Record<string, unknown>>>;
31
+ addScope(params: {
32
+ slug: string;
33
+ displayName: string;
34
+ description?: string;
35
+ }): Promise<Record<string, unknown>>;
36
+ updateScope(scopeId: string, data: Record<string, unknown>): Promise<Record<string, unknown>>;
37
+ deleteScope(scopeId: string): Promise<Record<string, unknown>>;
38
+ getClient(clientId: string): Promise<Record<string, unknown>>;
39
+ listClients(): Promise<Array<Record<string, unknown>>>;
40
+ addClient(params: {
41
+ label: string;
42
+ roleId?: string;
43
+ }): Promise<Record<string, unknown>>;
44
+ deleteClient(clientId: string): Promise<Record<string, unknown>>;
45
+ getTenant(tenantId: string): Promise<Record<string, unknown>>;
46
+ listTenants(): Promise<Array<Record<string, unknown>>>;
47
+ addTenant(params: {
48
+ name: string;
49
+ slug: string;
50
+ categoryId?: string;
51
+ }): Promise<Record<string, unknown>>;
52
+ updateTenant(tenantId: string, data: Record<string, unknown>): Promise<Record<string, unknown>>;
53
+ deleteTenant(tenantId: string): Promise<Record<string, unknown>>;
54
+ getTenantCategory(categoryId: string): Promise<Record<string, unknown>>;
55
+ listTenantCategories(): Promise<Array<Record<string, unknown>>>;
56
+ listPages(): Promise<Array<Record<string, unknown>>>;
57
+ listNavigation(): Promise<Array<Record<string, unknown>>>;
58
+ listSecureTables(): Promise<Array<Record<string, unknown>>>;
59
+ addSecureTable(params: {
60
+ schema: string;
61
+ tableName: string;
62
+ }): Promise<Record<string, unknown>>;
63
+ deleteSecureTable(tableId: string): Promise<Record<string, unknown>>;
64
+ }
65
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/namespaces/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,266 @@
1
+ /**
2
+ * Auth Namespace - Guardian authentication/authorization management.
3
+ *
4
+ * Provides RESTful access to users, roles, scopes, clients, tenants, etc.
5
+ */
6
+ import bcrypt from 'bcryptjs';
7
+ // Helper to hash password client-side
8
+ function hashPassword(password) {
9
+ const salt = bcrypt.genSaltSync(12);
10
+ return bcrypt.hashSync(password, salt);
11
+ }
12
+ export class AuthNamespace {
13
+ client;
14
+ constructor(client) {
15
+ this.client = client;
16
+ }
17
+ // ========================================
18
+ // USERS
19
+ // ========================================
20
+ async getUser(userId) {
21
+ return this.client.request({
22
+ endpoint: `/api/guardian/users/${userId}`,
23
+ method: 'GET',
24
+ });
25
+ }
26
+ async listUsers() {
27
+ const result = await this.client.request({
28
+ endpoint: '/api/guardian/users',
29
+ method: 'GET',
30
+ });
31
+ return Array.isArray(result) ? result : result.users || [];
32
+ }
33
+ async addUser(params) {
34
+ const { username, password, email, roleId } = params;
35
+ const passwordHash = hashPassword(password);
36
+ return this.client.request({
37
+ endpoint: '/api/guardian/users',
38
+ body: {
39
+ username,
40
+ password_hash: passwordHash,
41
+ email,
42
+ role_id: roleId,
43
+ },
44
+ });
45
+ }
46
+ async updateUser(userId, data) {
47
+ return this.client.request({
48
+ endpoint: `/api/guardian/users/${userId}`,
49
+ method: 'PUT',
50
+ body: data,
51
+ });
52
+ }
53
+ async deleteUser(userId) {
54
+ return this.client.request({
55
+ endpoint: `/api/guardian/users/${userId}`,
56
+ method: 'DELETE',
57
+ });
58
+ }
59
+ // ========================================
60
+ // ROLES
61
+ // ========================================
62
+ async getRole(roleId) {
63
+ return this.client.request({
64
+ endpoint: `/api/guardian/roles/${roleId}`,
65
+ method: 'GET',
66
+ });
67
+ }
68
+ async listRoles() {
69
+ const result = await this.client.request({
70
+ endpoint: '/api/guardian/roles',
71
+ method: 'GET',
72
+ });
73
+ return Array.isArray(result) ? result : result.roles || [];
74
+ }
75
+ async addRole(params) {
76
+ return this.client.request({
77
+ endpoint: '/api/guardian/roles',
78
+ body: {
79
+ name: params.name,
80
+ scope_slugs: params.scopeSlugs || [],
81
+ description: params.description,
82
+ },
83
+ });
84
+ }
85
+ async updateRole(roleId, data) {
86
+ return this.client.request({
87
+ endpoint: `/api/guardian/roles/${roleId}`,
88
+ method: 'PUT',
89
+ body: data,
90
+ });
91
+ }
92
+ async deleteRole(roleId) {
93
+ return this.client.request({
94
+ endpoint: `/api/guardian/roles/${roleId}`,
95
+ method: 'DELETE',
96
+ });
97
+ }
98
+ // ========================================
99
+ // SCOPES
100
+ // ========================================
101
+ async getScope(scopeId) {
102
+ return this.client.request({
103
+ endpoint: `/api/guardian/scopes/${scopeId}`,
104
+ method: 'GET',
105
+ });
106
+ }
107
+ async listScopes() {
108
+ const result = await this.client.request({
109
+ endpoint: '/api/guardian/scopes',
110
+ method: 'GET',
111
+ });
112
+ return Array.isArray(result) ? result : result.scopes || [];
113
+ }
114
+ async addScope(params) {
115
+ return this.client.request({
116
+ endpoint: '/api/guardian/scopes',
117
+ body: {
118
+ slug: params.slug,
119
+ display_name: params.displayName,
120
+ description: params.description,
121
+ },
122
+ });
123
+ }
124
+ async updateScope(scopeId, data) {
125
+ return this.client.request({
126
+ endpoint: `/api/guardian/scopes/${scopeId}`,
127
+ method: 'PUT',
128
+ body: data,
129
+ });
130
+ }
131
+ async deleteScope(scopeId) {
132
+ return this.client.request({
133
+ endpoint: `/api/guardian/scopes/${scopeId}`,
134
+ method: 'DELETE',
135
+ });
136
+ }
137
+ // ========================================
138
+ // CLIENTS
139
+ // ========================================
140
+ async getClient(clientId) {
141
+ return this.client.request({
142
+ endpoint: `/api/guardian/clients/${clientId}`,
143
+ method: 'GET',
144
+ });
145
+ }
146
+ async listClients() {
147
+ const result = await this.client.request({
148
+ endpoint: '/api/guardian/clients',
149
+ method: 'GET',
150
+ });
151
+ return Array.isArray(result) ? result : result.clients || [];
152
+ }
153
+ async addClient(params) {
154
+ return this.client.request({
155
+ endpoint: '/api/guardian/clients',
156
+ body: {
157
+ label: params.label,
158
+ role_id: params.roleId,
159
+ },
160
+ });
161
+ }
162
+ async deleteClient(clientId) {
163
+ return this.client.request({
164
+ endpoint: `/api/guardian/clients/${clientId}`,
165
+ method: 'DELETE',
166
+ });
167
+ }
168
+ // ========================================
169
+ // TENANTS
170
+ // ========================================
171
+ async getTenant(tenantId) {
172
+ return this.client.request({
173
+ endpoint: `/api/guardian/tenants/${tenantId}`,
174
+ method: 'GET',
175
+ });
176
+ }
177
+ async listTenants() {
178
+ const result = await this.client.request({
179
+ endpoint: '/api/guardian/tenants',
180
+ method: 'GET',
181
+ });
182
+ return Array.isArray(result) ? result : result.tenants || [];
183
+ }
184
+ async addTenant(params) {
185
+ return this.client.request({
186
+ endpoint: '/api/guardian/tenants',
187
+ body: {
188
+ name: params.name,
189
+ slug: params.slug,
190
+ category_id: params.categoryId,
191
+ },
192
+ });
193
+ }
194
+ async updateTenant(tenantId, data) {
195
+ return this.client.request({
196
+ endpoint: `/api/guardian/tenants/${tenantId}`,
197
+ method: 'PUT',
198
+ body: data,
199
+ });
200
+ }
201
+ async deleteTenant(tenantId) {
202
+ return this.client.request({
203
+ endpoint: `/api/guardian/tenants/${tenantId}`,
204
+ method: 'DELETE',
205
+ });
206
+ }
207
+ // ========================================
208
+ // TENANT CATEGORIES
209
+ // ========================================
210
+ async getTenantCategory(categoryId) {
211
+ return this.client.request({
212
+ endpoint: `/api/guardian/tenant-categories/${categoryId}`,
213
+ method: 'GET',
214
+ });
215
+ }
216
+ async listTenantCategories() {
217
+ const result = await this.client.request({
218
+ endpoint: '/api/guardian/tenant-categories',
219
+ method: 'GET',
220
+ });
221
+ return Array.isArray(result) ? result : result.categories || [];
222
+ }
223
+ // ========================================
224
+ // PAGES & NAVIGATION
225
+ // ========================================
226
+ async listPages() {
227
+ const result = await this.client.request({
228
+ endpoint: '/api/guardian/pages',
229
+ method: 'GET',
230
+ });
231
+ return Array.isArray(result) ? result : result.pages || [];
232
+ }
233
+ async listNavigation() {
234
+ const result = await this.client.request({
235
+ endpoint: '/api/guardian/navigation',
236
+ method: 'GET',
237
+ });
238
+ return Array.isArray(result) ? result : result.navigation || [];
239
+ }
240
+ // ========================================
241
+ // SECURE TABLES
242
+ // ========================================
243
+ async listSecureTables() {
244
+ const result = await this.client.request({
245
+ endpoint: '/api/guardian/secure-tables',
246
+ method: 'GET',
247
+ });
248
+ return Array.isArray(result) ? result : result.tables || [];
249
+ }
250
+ async addSecureTable(params) {
251
+ return this.client.request({
252
+ endpoint: '/api/guardian/secure-tables',
253
+ body: {
254
+ schema_name: params.schema,
255
+ table_name: params.tableName,
256
+ },
257
+ });
258
+ }
259
+ async deleteSecureTable(tableId) {
260
+ return this.client.request({
261
+ endpoint: `/api/guardian/secure-tables/${tableId}`,
262
+ method: 'DELETE',
263
+ });
264
+ }
265
+ }
266
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/namespaces/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Courier Namespace - Email delivery via Postmark.
3
+ *
4
+ * Provides email sending using Postmark templates.
5
+ */
6
+ import type { DominusClient } from '../lib/client.js';
7
+ export interface SendResult {
8
+ to: string;
9
+ message_id: string;
10
+ submitted_at: string;
11
+ [key: string]: unknown;
12
+ }
13
+ export declare class CourierNamespace {
14
+ private client;
15
+ constructor(client: DominusClient);
16
+ /**
17
+ * Send email using Postmark template.
18
+ *
19
+ * @param templateAlias - Template alias in Postmark (e.g., "welcome", "password-reset")
20
+ * @param to - Recipient email address
21
+ * @param fromEmail - Sender email address (must be verified in Postmark)
22
+ * @param model - Template model variables (dict of key-value pairs)
23
+ * @param options - Optional tag and reply-to
24
+ */
25
+ send(templateAlias: string, to: string, fromEmail: string, model: Record<string, unknown>, options?: {
26
+ tag?: string;
27
+ replyTo?: string;
28
+ }): Promise<SendResult>;
29
+ /**
30
+ * Send welcome email.
31
+ */
32
+ sendWelcome(to: string, fromEmail: string, params: {
33
+ name: string;
34
+ productName: string;
35
+ actionUrl?: string;
36
+ [key: string]: unknown;
37
+ }): Promise<SendResult>;
38
+ /**
39
+ * Send password reset email.
40
+ */
41
+ sendPasswordReset(to: string, fromEmail: string, params: {
42
+ name: string;
43
+ resetUrl: string;
44
+ productName: string;
45
+ [key: string]: unknown;
46
+ }): Promise<SendResult>;
47
+ /**
48
+ * Send email verification email.
49
+ */
50
+ sendEmailVerification(to: string, fromEmail: string, params: {
51
+ name: string;
52
+ verifyUrl: string;
53
+ productName: string;
54
+ [key: string]: unknown;
55
+ }): Promise<SendResult>;
56
+ /**
57
+ * Send user invitation email.
58
+ */
59
+ sendInvitation(to: string, fromEmail: string, params: {
60
+ name: string;
61
+ inviteUrl: string;
62
+ inviterName: string;
63
+ productName: string;
64
+ [key: string]: unknown;
65
+ }): Promise<SendResult>;
66
+ }
67
+ //# sourceMappingURL=courier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"courier.d.ts","sourceRoot":"","sources":["../../src/namespaces/courier.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,qBAAa,gBAAgB;IACf,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAEzC;;;;;;;;OAQG;IACG,IAAI,CACR,aAAa,EAAE,MAAM,EACrB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO,GAC/C,OAAO,CAAC,UAAU,CAAC;IAqBtB;;OAEG;IACG,WAAW,CACf,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,GACA,OAAO,CAAC,UAAU,CAAC;IAatB;;OAEG;IACG,iBAAiB,CACrB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,GACA,OAAO,CAAC,UAAU,CAAC;IAiBtB;;OAEG;IACG,qBAAqB,CACzB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,GACA,OAAO,CAAC,UAAU,CAAC;IAiBtB;;OAEG;IACG,cAAc,CAClB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,GACA,OAAO,CAAC,UAAU,CAAC;CAiBvB"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Courier Namespace - Email delivery via Postmark.
3
+ *
4
+ * Provides email sending using Postmark templates.
5
+ */
6
+ export class CourierNamespace {
7
+ client;
8
+ constructor(client) {
9
+ this.client = client;
10
+ }
11
+ /**
12
+ * Send email using Postmark template.
13
+ *
14
+ * @param templateAlias - Template alias in Postmark (e.g., "welcome", "password-reset")
15
+ * @param to - Recipient email address
16
+ * @param fromEmail - Sender email address (must be verified in Postmark)
17
+ * @param model - Template model variables (dict of key-value pairs)
18
+ * @param options - Optional tag and reply-to
19
+ */
20
+ async send(templateAlias, to, fromEmail, model, options = {}) {
21
+ const { tag, replyTo } = options;
22
+ const body = {
23
+ template_alias: templateAlias,
24
+ to,
25
+ from: fromEmail,
26
+ model,
27
+ };
28
+ if (tag)
29
+ body.tag = tag;
30
+ if (replyTo)
31
+ body.reply_to = replyTo;
32
+ return this.client.request({
33
+ endpoint: '/api/courier/send',
34
+ body,
35
+ });
36
+ }
37
+ // Convenience methods for common templates
38
+ /**
39
+ * Send welcome email.
40
+ */
41
+ async sendWelcome(to, fromEmail, params) {
42
+ const { name, productName, actionUrl, ...extra } = params;
43
+ const model = {
44
+ name,
45
+ product_name: productName,
46
+ ...extra,
47
+ };
48
+ if (actionUrl)
49
+ model.action_url = actionUrl;
50
+ return this.send('welcome', to, fromEmail, model, { tag: 'welcome' });
51
+ }
52
+ /**
53
+ * Send password reset email.
54
+ */
55
+ async sendPasswordReset(to, fromEmail, params) {
56
+ const { name, resetUrl, productName, ...extra } = params;
57
+ return this.send('password-reset', to, fromEmail, {
58
+ name,
59
+ action_url: resetUrl,
60
+ product_name: productName,
61
+ ...extra,
62
+ }, { tag: 'password-reset' });
63
+ }
64
+ /**
65
+ * Send email verification email.
66
+ */
67
+ async sendEmailVerification(to, fromEmail, params) {
68
+ const { name, verifyUrl, productName, ...extra } = params;
69
+ return this.send('email-verification', to, fromEmail, {
70
+ name,
71
+ action_url: verifyUrl,
72
+ product_name: productName,
73
+ ...extra,
74
+ }, { tag: 'email-verification' });
75
+ }
76
+ /**
77
+ * Send user invitation email.
78
+ */
79
+ async sendInvitation(to, fromEmail, params) {
80
+ const { name, inviteUrl, inviterName, productName, ...extra } = params;
81
+ return this.send('invitation', to, fromEmail, {
82
+ name,
83
+ action_url: inviteUrl,
84
+ inviter_name: inviterName,
85
+ product_name: productName,
86
+ ...extra,
87
+ }, { tag: 'invitation' });
88
+ }
89
+ }
90
+ //# sourceMappingURL=courier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"courier.js","sourceRoot":"","sources":["../../src/namespaces/courier.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,MAAM,OAAO,gBAAgB;IACP;IAApB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,CACR,aAAqB,EACrB,EAAU,EACV,SAAiB,EACjB,KAA8B,EAC9B,UAA8C,EAAE;QAEhD,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAEjC,MAAM,IAAI,GAA4B;YACpC,cAAc,EAAE,aAAa;YAC7B,EAAE;YACF,IAAI,EAAE,SAAS;YACf,KAAK;SACN,CAAC;QAEF,IAAI,GAAG;YAAE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACxB,IAAI,OAAO;YAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAErC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,EAAE,mBAAmB;YAC7B,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,2CAA2C;IAE3C;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,EAAU,EACV,SAAiB,EACjB,MAKC;QAED,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;QAE1D,MAAM,KAAK,GAA4B;YACrC,IAAI;YACJ,YAAY,EAAE,WAAW;YACzB,GAAG,KAAK;SACT,CAAC;QACF,IAAI,SAAS;YAAE,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5C,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CACrB,EAAU,EACV,SAAiB,EACjB,MAKC;QAED,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;QAEzD,OAAO,IAAI,CAAC,IAAI,CACd,gBAAgB,EAChB,EAAE,EACF,SAAS,EACT;YACE,IAAI;YACJ,UAAU,EAAE,QAAQ;YACpB,YAAY,EAAE,WAAW;YACzB,GAAG,KAAK;SACT,EACD,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAC1B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB,CACzB,EAAU,EACV,SAAiB,EACjB,MAKC;QAED,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;QAE1D,OAAO,IAAI,CAAC,IAAI,CACd,oBAAoB,EACpB,EAAE,EACF,SAAS,EACT;YACE,IAAI;YACJ,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,WAAW;YACzB,GAAG,KAAK;SACT,EACD,EAAE,GAAG,EAAE,oBAAoB,EAAE,CAC9B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,EAAU,EACV,SAAiB,EACjB,MAMC;QAED,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;QAEvE,OAAO,IAAI,CAAC,IAAI,CACd,YAAY,EACZ,EAAE,EACF,SAAS,EACT;YACE,IAAI;YACJ,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,WAAW;YACzB,YAAY,EAAE,WAAW;YACzB,GAAG,KAAK;SACT,EACD,EAAE,GAAG,EAAE,YAAY,EAAE,CACtB,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Database Namespace - Scribe data CRUD operations.
3
+ *
4
+ * Provides data operations for all schemas with support for secure table access.
5
+ */
6
+ import type { DominusClient } from '../lib/client.js';
7
+ export interface QueryOptions {
8
+ schema?: string;
9
+ filters?: Record<string, unknown>;
10
+ sortBy?: string;
11
+ sortOrder?: 'ASC' | 'DESC';
12
+ limit?: number;
13
+ offset?: number;
14
+ reason?: string;
15
+ actor?: string;
16
+ }
17
+ export interface QueryResult {
18
+ rows: Array<Record<string, unknown>>;
19
+ total: number;
20
+ }
21
+ export interface TableInfo {
22
+ name: string;
23
+ [key: string]: unknown;
24
+ }
25
+ export interface ColumnInfo {
26
+ name: string;
27
+ type: string;
28
+ [key: string]: unknown;
29
+ }
30
+ export declare class DbNamespace {
31
+ private client;
32
+ constructor(client: DominusClient);
33
+ /**
34
+ * List tables in a schema.
35
+ *
36
+ * @param schema - Schema name (default: "public")
37
+ * @returns List of table metadata
38
+ */
39
+ tables(schema?: string): Promise<TableInfo[]>;
40
+ /**
41
+ * List columns in a table.
42
+ *
43
+ * @param table - Table name
44
+ * @param schema - Schema name (default: "public")
45
+ * @returns List of column metadata
46
+ */
47
+ columns(table: string, schema?: string): Promise<ColumnInfo[]>;
48
+ /**
49
+ * Query table data with filtering, sorting, and pagination.
50
+ *
51
+ * @param table - Table name
52
+ * @param options - Query options
53
+ * @returns Query result with rows and total count
54
+ */
55
+ query(table: string, options?: QueryOptions): Promise<QueryResult>;
56
+ /**
57
+ * Insert a row into a table.
58
+ *
59
+ * @param table - Table name
60
+ * @param data - Column:value dictionary
61
+ * @param options - Insert options (schema, reason, actor)
62
+ * @returns Inserted row data
63
+ */
64
+ insert(table: string, data: Record<string, unknown>, options?: {
65
+ schema?: string;
66
+ reason?: string;
67
+ actor?: string;
68
+ }): Promise<Record<string, unknown>>;
69
+ /**
70
+ * Update rows matching filters.
71
+ *
72
+ * @param table - Table name
73
+ * @param data - Column:value dictionary of updates
74
+ * @param filters - Column:value dictionary for WHERE clause
75
+ * @param options - Update options (schema, reason, actor)
76
+ * @returns Affected rows count
77
+ */
78
+ update(table: string, data: Record<string, unknown>, filters: Record<string, unknown>, options?: {
79
+ schema?: string;
80
+ reason?: string;
81
+ actor?: string;
82
+ }): Promise<{
83
+ affected_rows: number;
84
+ }>;
85
+ /**
86
+ * Delete rows matching filters.
87
+ *
88
+ * @param table - Table name
89
+ * @param filters - Column:value dictionary for WHERE clause
90
+ * @param options - Delete options (schema, reason, actor)
91
+ * @returns Affected rows count
92
+ */
93
+ delete(table: string, filters: Record<string, unknown>, options?: {
94
+ schema?: string;
95
+ reason?: string;
96
+ actor?: string;
97
+ }): Promise<{
98
+ affected_rows: number;
99
+ }>;
100
+ /**
101
+ * Insert multiple rows at once.
102
+ *
103
+ * @param table - Table name
104
+ * @param rows - List of column:value dictionaries
105
+ * @param options - Bulk insert options (schema, reason, actor)
106
+ * @returns Insert count and optionally rows
107
+ */
108
+ bulkInsert(table: string, rows: Array<Record<string, unknown>>, options?: {
109
+ schema?: string;
110
+ reason?: string;
111
+ actor?: string;
112
+ }): Promise<{
113
+ inserted_count: number;
114
+ rows?: Array<Record<string, unknown>>;
115
+ }>;
116
+ }
117
+ //# sourceMappingURL=db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/namespaces/db.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,qBAAa,WAAW;IACV,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAEzC;;;;;OAKG;IACG,MAAM,CAAC,MAAM,SAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IASrD;;;;;;OAMG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAW,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAStE;;;;;;OAMG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IA6B5E;;;;;;;OAOG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GACjE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAanC;;;;;;;;OAQG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GACjE,OAAO,CAAC;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IAarC;;;;;;;OAOG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GACjE,OAAO,CAAC;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IAarC;;;;;;;OAOG;IACG,UAAU,CACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACpC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GACjE,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,CAAC;CAY9E"}