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.
Files changed (75) hide show
  1. package/LLM-GUIDE.md +537 -0
  2. package/README.md +585 -0
  3. package/dist/index.d.ts +191 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +224 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/lib/cache.d.ts +112 -0
  8. package/dist/lib/cache.d.ts.map +1 -0
  9. package/dist/lib/cache.js +237 -0
  10. package/dist/lib/cache.js.map +1 -0
  11. package/dist/lib/client.d.ts +38 -0
  12. package/dist/lib/client.d.ts.map +1 -0
  13. package/dist/lib/client.js +425 -0
  14. package/dist/lib/client.js.map +1 -0
  15. package/dist/lib/config.d.ts +20 -0
  16. package/dist/lib/config.d.ts.map +1 -0
  17. package/dist/lib/config.js +32 -0
  18. package/dist/lib/config.js.map +1 -0
  19. package/dist/lib/crypto.d.ts +70 -0
  20. package/dist/lib/crypto.d.ts.map +1 -0
  21. package/dist/lib/crypto.js +95 -0
  22. package/dist/lib/crypto.js.map +1 -0
  23. package/dist/lib/errors.d.ts +77 -0
  24. package/dist/lib/errors.d.ts.map +1 -0
  25. package/dist/lib/errors.js +134 -0
  26. package/dist/lib/errors.js.map +1 -0
  27. package/dist/namespaces/auth.d.ts +237 -0
  28. package/dist/namespaces/auth.d.ts.map +1 -0
  29. package/dist/namespaces/auth.js +785 -0
  30. package/dist/namespaces/auth.js.map +1 -0
  31. package/dist/namespaces/courier.d.ts +67 -0
  32. package/dist/namespaces/courier.d.ts.map +1 -0
  33. package/dist/namespaces/courier.js +90 -0
  34. package/dist/namespaces/courier.js.map +1 -0
  35. package/dist/namespaces/db.d.ts +117 -0
  36. package/dist/namespaces/db.d.ts.map +1 -0
  37. package/dist/namespaces/db.js +149 -0
  38. package/dist/namespaces/db.js.map +1 -0
  39. package/dist/namespaces/ddl.d.ts +84 -0
  40. package/dist/namespaces/ddl.d.ts.map +1 -0
  41. package/dist/namespaces/ddl.js +211 -0
  42. package/dist/namespaces/ddl.js.map +1 -0
  43. package/dist/namespaces/files.d.ts +107 -0
  44. package/dist/namespaces/files.d.ts.map +1 -0
  45. package/dist/namespaces/files.js +161 -0
  46. package/dist/namespaces/files.js.map +1 -0
  47. package/dist/namespaces/health.d.ts +30 -0
  48. package/dist/namespaces/health.d.ts.map +1 -0
  49. package/dist/namespaces/health.js +66 -0
  50. package/dist/namespaces/health.js.map +1 -0
  51. package/dist/namespaces/logs.d.ts +97 -0
  52. package/dist/namespaces/logs.d.ts.map +1 -0
  53. package/dist/namespaces/logs.js +194 -0
  54. package/dist/namespaces/logs.js.map +1 -0
  55. package/dist/namespaces/open.d.ts +27 -0
  56. package/dist/namespaces/open.d.ts.map +1 -0
  57. package/dist/namespaces/open.js +46 -0
  58. package/dist/namespaces/open.js.map +1 -0
  59. package/dist/namespaces/portal.d.ts +172 -0
  60. package/dist/namespaces/portal.d.ts.map +1 -0
  61. package/dist/namespaces/portal.js +332 -0
  62. package/dist/namespaces/portal.js.map +1 -0
  63. package/dist/namespaces/redis.d.ts +144 -0
  64. package/dist/namespaces/redis.d.ts.map +1 -0
  65. package/dist/namespaces/redis.js +218 -0
  66. package/dist/namespaces/redis.js.map +1 -0
  67. package/dist/namespaces/secrets.d.ts +50 -0
  68. package/dist/namespaces/secrets.d.ts.map +1 -0
  69. package/dist/namespaces/secrets.js +93 -0
  70. package/dist/namespaces/secrets.js.map +1 -0
  71. package/dist/namespaces/secure.d.ts +102 -0
  72. package/dist/namespaces/secure.d.ts.map +1 -0
  73. package/dist/namespaces/secure.js +151 -0
  74. package/dist/namespaces/secure.js.map +1 -0
  75. package/package.json +45 -0
@@ -0,0 +1,237 @@
1
+ /**
2
+ * Internal cache with automatic encryption and circuit breaker.
3
+ *
4
+ * NOT exposed to SDK users - internal use only.
5
+ */
6
+ import crypto from 'crypto';
7
+ /**
8
+ * Circuit breaker states.
9
+ */
10
+ var CircuitState;
11
+ (function (CircuitState) {
12
+ CircuitState["CLOSED"] = "closed";
13
+ CircuitState["OPEN"] = "open";
14
+ CircuitState["HALF_OPEN"] = "half_open";
15
+ })(CircuitState || (CircuitState = {}));
16
+ /**
17
+ * Simple circuit breaker to prevent runaway retries.
18
+ *
19
+ * States:
20
+ * - CLOSED: Normal operation, requests pass through
21
+ * - OPEN: Too many failures, requests blocked
22
+ * - HALF_OPEN: Testing if service recovered
23
+ *
24
+ * Prevents CPU/quota exhaustion from retry storms.
25
+ */
26
+ export class CircuitBreaker {
27
+ failureThreshold;
28
+ recoveryTimeout;
29
+ halfOpenMaxCalls;
30
+ failureCount = 0;
31
+ state = CircuitState.CLOSED;
32
+ lastFailureTime = 0;
33
+ halfOpenCalls = 0;
34
+ constructor(failureThreshold = 5, recoveryTimeout = 30000, // 30 seconds in ms
35
+ halfOpenMaxCalls = 1) {
36
+ this.failureThreshold = failureThreshold;
37
+ this.recoveryTimeout = recoveryTimeout;
38
+ this.halfOpenMaxCalls = halfOpenMaxCalls;
39
+ }
40
+ /**
41
+ * Get current state, transitioning OPEN→HALF_OPEN if timeout elapsed.
42
+ */
43
+ getState() {
44
+ if (this.state === CircuitState.OPEN) {
45
+ if (Date.now() - this.lastFailureTime >= this.recoveryTimeout) {
46
+ this.state = CircuitState.HALF_OPEN;
47
+ this.halfOpenCalls = 0;
48
+ }
49
+ }
50
+ return this.state;
51
+ }
52
+ /**
53
+ * Check if a request can be executed.
54
+ */
55
+ canExecute() {
56
+ const state = this.getState();
57
+ if (state === CircuitState.CLOSED) {
58
+ return true;
59
+ }
60
+ if (state === CircuitState.HALF_OPEN) {
61
+ return this.halfOpenCalls < this.halfOpenMaxCalls;
62
+ }
63
+ return false; // OPEN
64
+ }
65
+ /**
66
+ * Record a successful call.
67
+ */
68
+ recordSuccess() {
69
+ if (this.state === CircuitState.HALF_OPEN) {
70
+ this.state = CircuitState.CLOSED;
71
+ }
72
+ this.failureCount = 0;
73
+ this.halfOpenCalls = 0;
74
+ }
75
+ /**
76
+ * Record a failed call.
77
+ */
78
+ recordFailure() {
79
+ this.failureCount++;
80
+ this.lastFailureTime = Date.now();
81
+ if (this.state === CircuitState.HALF_OPEN) {
82
+ // Failed during recovery test, go back to OPEN
83
+ this.state = CircuitState.OPEN;
84
+ }
85
+ else if (this.failureCount >= this.failureThreshold) {
86
+ this.state = CircuitState.OPEN;
87
+ }
88
+ }
89
+ /**
90
+ * Record a call attempt in HALF_OPEN state.
91
+ */
92
+ recordHalfOpenCall() {
93
+ this.halfOpenCalls++;
94
+ }
95
+ /**
96
+ * Reset the circuit breaker.
97
+ */
98
+ reset() {
99
+ this.failureCount = 0;
100
+ this.state = CircuitState.CLOSED;
101
+ this.lastFailureTime = 0;
102
+ this.halfOpenCalls = 0;
103
+ }
104
+ }
105
+ /**
106
+ * Calculate backoff delay with jitter to prevent thundering herd.
107
+ *
108
+ * @param attempt - Zero-based attempt number
109
+ * @param baseDelay - Base delay in milliseconds
110
+ * @param maxDelay - Maximum delay cap
111
+ * @param jitter - Jitter factor (0-1), adds randomness
112
+ * @returns Delay in milliseconds
113
+ */
114
+ export function exponentialBackoffWithJitter(attempt, baseDelay = 1000, maxDelay = 30000, jitter = 0.5) {
115
+ const delay = Math.min(baseDelay * Math.pow(2, attempt), maxDelay);
116
+ const jitterRange = delay * jitter;
117
+ return delay + (Math.random() * 2 - 1) * jitterRange;
118
+ }
119
+ /**
120
+ * Internal process-local cache with auto-encryption.
121
+ *
122
+ * Used by dominus services only:
123
+ * - Validation state
124
+ * - Service URLs
125
+ * - API responses
126
+ *
127
+ * NOT accessible by SDK users.
128
+ */
129
+ export class DominusCache {
130
+ defaultTtl;
131
+ store = new Map();
132
+ cipher = null;
133
+ constructor(defaultTtl = 300000) {
134
+ this.defaultTtl = defaultTtl;
135
+ } // 5 minutes in ms
136
+ /**
137
+ * Initialize encryption using auth token.
138
+ */
139
+ setEncryptionKey(token) {
140
+ if (!token)
141
+ return;
142
+ const key = crypto.createHash('sha256').update(token).digest();
143
+ this.cipher = { key, algorithm: 'aes-256-gcm' };
144
+ }
145
+ /**
146
+ * Get and decrypt, refresh TTL.
147
+ */
148
+ get(key) {
149
+ const entry = this.store.get(key);
150
+ if (!entry)
151
+ return null;
152
+ // Check expiry
153
+ if (Date.now() >= entry.expiresAt) {
154
+ this.store.delete(key);
155
+ return null;
156
+ }
157
+ try {
158
+ let value;
159
+ if (this.cipher) {
160
+ // Decrypt
161
+ const iv = entry.encryptedValue.subarray(0, 16);
162
+ const authTag = entry.encryptedValue.subarray(16, 32);
163
+ const encrypted = entry.encryptedValue.subarray(32);
164
+ const decipher = crypto.createDecipheriv(this.cipher.algorithm, this.cipher.key, iv);
165
+ decipher.setAuthTag(authTag);
166
+ const decrypted = Buffer.concat([
167
+ decipher.update(encrypted),
168
+ decipher.final(),
169
+ ]);
170
+ value = JSON.parse(decrypted.toString('utf8'));
171
+ }
172
+ else {
173
+ value = JSON.parse(entry.encryptedValue.toString('utf8'));
174
+ }
175
+ // Touch TTL
176
+ entry.expiresAt = Date.now() + this.defaultTtl;
177
+ return value;
178
+ }
179
+ catch {
180
+ this.store.delete(key);
181
+ return null;
182
+ }
183
+ }
184
+ /**
185
+ * Encrypt and store.
186
+ */
187
+ set(key, value, ttl) {
188
+ const duration = ttl ?? this.defaultTtl;
189
+ const plaintext = JSON.stringify(value);
190
+ let encryptedValue;
191
+ if (this.cipher) {
192
+ const iv = crypto.randomBytes(16);
193
+ const cipher = crypto.createCipheriv(this.cipher.algorithm, this.cipher.key, iv);
194
+ const encrypted = Buffer.concat([
195
+ cipher.update(plaintext, 'utf8'),
196
+ cipher.final(),
197
+ ]);
198
+ const authTag = cipher.getAuthTag();
199
+ encryptedValue = Buffer.concat([iv, authTag, encrypted]);
200
+ }
201
+ else {
202
+ encryptedValue = Buffer.from(plaintext, 'utf8');
203
+ }
204
+ this.store.set(key, {
205
+ encryptedValue,
206
+ expiresAt: Date.now() + duration,
207
+ });
208
+ }
209
+ /**
210
+ * Delete key.
211
+ */
212
+ delete(key) {
213
+ return this.store.delete(key);
214
+ }
215
+ /**
216
+ * Clear all.
217
+ */
218
+ clear() {
219
+ const count = this.store.size;
220
+ this.store.clear();
221
+ return count;
222
+ }
223
+ /**
224
+ * Get cache size.
225
+ */
226
+ size() {
227
+ return this.store.size;
228
+ }
229
+ }
230
+ // Internal singletons - NOT exported to users
231
+ export const dominusCache = new DominusCache(300000); // 5 minutes
232
+ // Circuit breakers for different services (prevents retry storms)
233
+ export const orchestratorCircuitBreaker = new CircuitBreaker(5, // Open after 5 consecutive failures
234
+ 30000, // Try again after 30 seconds
235
+ 1 // Allow 1 test call in half-open state
236
+ );
237
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/lib/cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Core HTTP Client for Dominus SDK
3
+ *
4
+ * Handles JWT management, base64 encoding/decoding, retries, and circuit breaker.
5
+ */
6
+ export interface RequestOptions {
7
+ endpoint: string;
8
+ method?: 'GET' | 'POST' | 'PUT' | 'DELETE';
9
+ body?: Record<string, unknown>;
10
+ /** User JWT token for user-authenticated requests (bypasses service token) */
11
+ userToken?: string;
12
+ }
13
+ /**
14
+ * Main Dominus client class
15
+ */
16
+ export declare class DominusClient {
17
+ private token;
18
+ private baseUrl;
19
+ constructor(hardcodedToken?: string);
20
+ /**
21
+ * Validate token on first use
22
+ */
23
+ private validate;
24
+ /**
25
+ * Make an authenticated request to the orchestrator
26
+ *
27
+ * @param options - Request options including endpoint, method, body, and optional userToken
28
+ * @param options.userToken - If provided, uses this JWT instead of the service token.
29
+ * Use this for user-authenticated requests (e.g., /api/portal/auth/me)
30
+ */
31
+ request<T = unknown>(options: RequestOptions): Promise<T>;
32
+ /**
33
+ * Health check endpoint
34
+ */
35
+ healthCheck(): Promise<Record<string, unknown>>;
36
+ }
37
+ export declare function getClient(hardcodedToken?: string): DominusClient;
38
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuUD;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,OAAO,CAAS;gBAEZ,cAAc,CAAC,EAAE,MAAM;IAKnC;;OAEG;YACW,QAAQ;IAyBtB;;;;;;OAMG;IACG,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAwJ/D;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAGtD;AAKD,wBAAgB,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,aAAa,CAKhE"}