aquaman-proxy 0.6.0 → 0.7.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 (72) hide show
  1. package/README.md +10 -9
  2. package/dist/cli/index.js +104 -87
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/core/audit/index.d.ts +5 -0
  5. package/dist/core/audit/index.d.ts.map +1 -0
  6. package/dist/core/audit/index.js +5 -0
  7. package/dist/core/audit/index.js.map +1 -0
  8. package/dist/core/audit/logger.d.ts +53 -0
  9. package/dist/core/audit/logger.d.ts.map +1 -0
  10. package/dist/core/audit/logger.js +262 -0
  11. package/dist/core/audit/logger.js.map +1 -0
  12. package/dist/core/credentials/backends/keepassxc.d.ts +45 -0
  13. package/dist/core/credentials/backends/keepassxc.d.ts.map +1 -0
  14. package/dist/core/credentials/backends/keepassxc.js +229 -0
  15. package/dist/core/credentials/backends/keepassxc.js.map +1 -0
  16. package/dist/core/credentials/backends/onepassword.d.ts +38 -0
  17. package/dist/core/credentials/backends/onepassword.d.ts.map +1 -0
  18. package/dist/core/credentials/backends/onepassword.js +218 -0
  19. package/dist/core/credentials/backends/onepassword.js.map +1 -0
  20. package/dist/core/credentials/backends/vault.d.ts +56 -0
  21. package/dist/core/credentials/backends/vault.d.ts.map +1 -0
  22. package/dist/core/credentials/backends/vault.js +206 -0
  23. package/dist/core/credentials/backends/vault.js.map +1 -0
  24. package/dist/core/credentials/index.d.ts +8 -0
  25. package/dist/core/credentials/index.d.ts.map +1 -0
  26. package/dist/core/credentials/index.js +8 -0
  27. package/dist/core/credentials/index.js.map +1 -0
  28. package/dist/core/credentials/store.d.ts +102 -0
  29. package/dist/core/credentials/store.d.ts.map +1 -0
  30. package/dist/core/credentials/store.js +289 -0
  31. package/dist/core/credentials/store.js.map +1 -0
  32. package/dist/core/index.d.ts +14 -0
  33. package/dist/core/index.d.ts.map +1 -0
  34. package/dist/core/index.js +18 -0
  35. package/dist/core/index.js.map +1 -0
  36. package/dist/core/types.d.ts +81 -0
  37. package/dist/core/types.d.ts.map +1 -0
  38. package/dist/core/types.js +11 -0
  39. package/dist/core/types.js.map +1 -0
  40. package/dist/core/utils/config.d.ts +19 -0
  41. package/dist/core/utils/config.d.ts.map +1 -0
  42. package/dist/core/utils/config.js +136 -0
  43. package/dist/core/utils/config.js.map +1 -0
  44. package/dist/core/utils/hash.d.ts +27 -0
  45. package/dist/core/utils/hash.d.ts.map +1 -0
  46. package/dist/core/utils/hash.js +348 -0
  47. package/dist/core/utils/hash.js.map +1 -0
  48. package/dist/core/utils/index.d.ts +6 -0
  49. package/dist/core/utils/index.d.ts.map +1 -0
  50. package/dist/core/utils/index.js +6 -0
  51. package/dist/core/utils/index.js.map +1 -0
  52. package/dist/daemon.d.ts +4 -19
  53. package/dist/daemon.d.ts.map +1 -1
  54. package/dist/daemon.js +24 -101
  55. package/dist/daemon.js.map +1 -1
  56. package/dist/index.d.ts +2 -1
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +2 -0
  59. package/dist/index.js.map +1 -1
  60. package/dist/migration/openclaw-migrator.d.ts +1 -1
  61. package/dist/migration/openclaw-migrator.d.ts.map +1 -1
  62. package/dist/oauth-token-cache.d.ts +1 -1
  63. package/dist/oauth-token-cache.d.ts.map +1 -1
  64. package/dist/openclaw/env-writer.d.ts +7 -7
  65. package/dist/openclaw/env-writer.d.ts.map +1 -1
  66. package/dist/openclaw/env-writer.js +8 -13
  67. package/dist/openclaw/env-writer.js.map +1 -1
  68. package/dist/openclaw/integration.d.ts +5 -3
  69. package/dist/openclaw/integration.d.ts.map +1 -1
  70. package/dist/openclaw/integration.js +7 -14
  71. package/dist/openclaw/integration.js.map +1 -1
  72. package/package.json +7 -3
@@ -0,0 +1,348 @@
1
+ /**
2
+ * Cryptographic utilities for hash chains and integrity verification
3
+ */
4
+ import * as crypto from 'node:crypto';
5
+ import { execFileSync } from 'node:child_process';
6
+ import * as fs from 'node:fs';
7
+ import * as path from 'node:path';
8
+ import * as os from 'node:os';
9
+ const HASH_ALGORITHM = 'sha256';
10
+ export function computeHash(data) {
11
+ return crypto.createHash(HASH_ALGORITHM).update(data).digest('hex');
12
+ }
13
+ export function computeChainedHash(data, previousHash) {
14
+ return computeHash(previousHash + data);
15
+ }
16
+ export function generateId() {
17
+ return crypto.randomUUID();
18
+ }
19
+ export function generateNonce() {
20
+ return crypto.randomBytes(16).toString('hex');
21
+ }
22
+ export function generateSigningKeyPair() {
23
+ const { publicKey, privateKey } = crypto.generateKeyPairSync('ed25519', {
24
+ publicKeyEncoding: { type: 'spki', format: 'pem' },
25
+ privateKeyEncoding: { type: 'pkcs8', format: 'pem' }
26
+ });
27
+ return { publicKey, privateKey };
28
+ }
29
+ export function sign(data, privateKey) {
30
+ const signature = crypto.sign(null, Buffer.from(data), privateKey);
31
+ return signature.toString('base64');
32
+ }
33
+ export function verify(data, signature, publicKey) {
34
+ try {
35
+ return crypto.verify(null, Buffer.from(data), publicKey, Buffer.from(signature, 'base64'));
36
+ }
37
+ catch {
38
+ return false;
39
+ }
40
+ }
41
+ export function encryptWithPassword(data, password) {
42
+ const salt = crypto.randomBytes(16);
43
+ const key = crypto.pbkdf2Sync(password, salt, 600000, 32, 'sha256');
44
+ const iv = crypto.randomBytes(12);
45
+ const cipher = crypto.createCipheriv('aes-256-gcm', key, iv);
46
+ let encrypted = cipher.update(data, 'utf-8', 'base64');
47
+ encrypted += cipher.final('base64');
48
+ const authTag = cipher.getAuthTag();
49
+ return [
50
+ salt.toString('base64'),
51
+ iv.toString('base64'),
52
+ authTag.toString('base64'),
53
+ encrypted
54
+ ].join(':');
55
+ }
56
+ export function decryptWithPassword(encryptedData, password) {
57
+ const [saltB64, ivB64, authTagB64, encrypted] = encryptedData.split(':');
58
+ if (!saltB64 || !ivB64 || !authTagB64 || !encrypted) {
59
+ throw new Error('Invalid encrypted data format');
60
+ }
61
+ const salt = Buffer.from(saltB64, 'base64');
62
+ const iv = Buffer.from(ivB64, 'base64');
63
+ const authTag = Buffer.from(authTagB64, 'base64');
64
+ const key = crypto.pbkdf2Sync(password, salt, 600000, 32, 'sha256');
65
+ const decipher = crypto.createDecipheriv('aes-256-gcm', key, iv);
66
+ decipher.setAuthTag(authTag);
67
+ let decrypted = decipher.update(encrypted, 'base64', 'utf-8');
68
+ decrypted += decipher.final('utf-8');
69
+ return decrypted;
70
+ }
71
+ /**
72
+ * Generate a self-signed TLS certificate.
73
+ * Prefers openssl CLI (correct DER encoding on all platforms),
74
+ * falls back to manual ASN.1 DER encoding if openssl is unavailable.
75
+ */
76
+ export function generateSelfSignedCert(commonName, days = 365) {
77
+ // Generate RSA key pair using Node.js crypto (always reliable)
78
+ const { publicKey, privateKey } = crypto.generateKeyPairSync('rsa', {
79
+ modulusLength: 2048,
80
+ publicKeyEncoding: { type: 'spki', format: 'pem' },
81
+ privateKeyEncoding: { type: 'pkcs8', format: 'pem' }
82
+ });
83
+ // Try openssl CLI first — produces correct DER across all OpenSSL/LibreSSL versions
84
+ try {
85
+ const cert = generateCertWithOpenSSL(commonName, days, privateKey);
86
+ return { cert, key: privateKey };
87
+ }
88
+ catch {
89
+ // Fall back to manual ASN.1 DER encoding
90
+ }
91
+ const now = new Date();
92
+ const notBefore = now;
93
+ const notAfter = new Date(now.getTime() + days * 24 * 60 * 60 * 1000);
94
+ const serialNumber = crypto.randomBytes(16).toString('hex');
95
+ const cert = buildSelfSignedCert({
96
+ commonName,
97
+ publicKey,
98
+ privateKey,
99
+ notBefore,
100
+ notAfter,
101
+ serialNumber
102
+ });
103
+ return { cert, key: privateKey };
104
+ }
105
+ function generateCertWithOpenSSL(commonName, days, privateKey) {
106
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'aquaman-cert-'));
107
+ const keyFile = path.join(tmpDir, 'key.pem');
108
+ const certFile = path.join(tmpDir, 'cert.pem');
109
+ const configFile = path.join(tmpDir, 'openssl.cnf');
110
+ try {
111
+ fs.writeFileSync(keyFile, privateKey, { mode: 0o600 });
112
+ // Minimal openssl config with SAN extension
113
+ fs.writeFileSync(configFile, [
114
+ '[req]',
115
+ 'distinguished_name = dn',
116
+ 'x509_extensions = ext',
117
+ 'prompt = no',
118
+ '[dn]',
119
+ `CN = ${commonName}`,
120
+ '[ext]',
121
+ `subjectAltName = DNS:${commonName}`,
122
+ 'basicConstraints = critical, CA:FALSE',
123
+ 'keyUsage = critical, digitalSignature, keyEncipherment',
124
+ ].join('\n'));
125
+ execFileSync('openssl', [
126
+ 'req', '-x509',
127
+ '-key', keyFile,
128
+ '-out', certFile,
129
+ '-days', String(days),
130
+ '-config', configFile,
131
+ ], { stdio: 'pipe' });
132
+ return fs.readFileSync(certFile, 'utf-8');
133
+ }
134
+ finally {
135
+ fs.rmSync(tmpDir, { recursive: true, force: true });
136
+ }
137
+ }
138
+ function buildSelfSignedCert(params) {
139
+ // Extract the public key bytes from PEM
140
+ const pubKeyDer = pemToDer(params.publicKey, 'PUBLIC KEY');
141
+ // Build TBSCertificate (To Be Signed Certificate)
142
+ const tbsCert = buildTBSCertificate(params, pubKeyDer);
143
+ // Sign the TBSCertificate
144
+ const signature = crypto.sign('sha256', tbsCert, params.privateKey);
145
+ // Build the complete certificate
146
+ const cert = buildCertificate(tbsCert, signature);
147
+ // Convert to PEM
148
+ return derToPem(cert, 'CERTIFICATE');
149
+ }
150
+ function pemToDer(pem, label) {
151
+ const base64 = pem
152
+ .replace(`-----BEGIN ${label}-----`, '')
153
+ .replace(`-----END ${label}-----`, '')
154
+ .replace(/\s/g, '');
155
+ return Buffer.from(base64, 'base64');
156
+ }
157
+ function derToPem(der, label) {
158
+ const base64 = der.toString('base64');
159
+ const lines = [];
160
+ for (let i = 0; i < base64.length; i += 64) {
161
+ lines.push(base64.slice(i, i + 64));
162
+ }
163
+ return `-----BEGIN ${label}-----\n${lines.join('\n')}\n-----END ${label}-----\n`;
164
+ }
165
+ // ASN.1 DER encoding helpers
166
+ function encodeLength(length) {
167
+ if (length < 128) {
168
+ return Buffer.from([length]);
169
+ }
170
+ const bytes = [];
171
+ let temp = length;
172
+ while (temp > 0) {
173
+ bytes.unshift(temp & 0xff);
174
+ temp >>= 8;
175
+ }
176
+ return Buffer.from([0x80 | bytes.length, ...bytes]);
177
+ }
178
+ function encodeSequence(items) {
179
+ const content = Buffer.concat(items);
180
+ const lengthBytes = encodeLength(content.length);
181
+ return Buffer.concat([Buffer.from([0x30]), lengthBytes, content]);
182
+ }
183
+ function encodeSet(items) {
184
+ const content = Buffer.concat(items);
185
+ const lengthBytes = encodeLength(content.length);
186
+ return Buffer.concat([Buffer.from([0x31]), lengthBytes, content]);
187
+ }
188
+ function encodeInteger(value) {
189
+ let bytes;
190
+ if (typeof value === 'number') {
191
+ if (value === 0) {
192
+ bytes = Buffer.from([0]);
193
+ }
194
+ else {
195
+ const hex = value.toString(16);
196
+ bytes = Buffer.from(hex.length % 2 ? '0' + hex : hex, 'hex');
197
+ }
198
+ }
199
+ else {
200
+ bytes = value;
201
+ }
202
+ // Add leading zero if high bit is set (to ensure positive number)
203
+ if (bytes[0] & 0x80) {
204
+ bytes = Buffer.concat([Buffer.from([0]), bytes]);
205
+ }
206
+ const lengthBytes = encodeLength(bytes.length);
207
+ return Buffer.concat([Buffer.from([0x02]), lengthBytes, bytes]);
208
+ }
209
+ function encodeOID(oid) {
210
+ const parts = oid.split('.').map(Number);
211
+ const bytes = [];
212
+ // First two components are encoded specially
213
+ bytes.push(parts[0] * 40 + parts[1]);
214
+ // Remaining components use variable-length encoding
215
+ for (let i = 2; i < parts.length; i++) {
216
+ let n = parts[i];
217
+ if (n === 0) {
218
+ bytes.push(0);
219
+ }
220
+ else {
221
+ const octets = [];
222
+ while (n > 0) {
223
+ octets.unshift(n & 0x7f);
224
+ n >>= 7;
225
+ }
226
+ for (let j = 0; j < octets.length - 1; j++) {
227
+ octets[j] |= 0x80;
228
+ }
229
+ bytes.push(...octets);
230
+ }
231
+ }
232
+ const content = Buffer.from(bytes);
233
+ const lengthBytes = encodeLength(content.length);
234
+ return Buffer.concat([Buffer.from([0x06]), lengthBytes, content]);
235
+ }
236
+ function encodePrintableString(str) {
237
+ const content = Buffer.from(str, 'ascii');
238
+ const lengthBytes = encodeLength(content.length);
239
+ return Buffer.concat([Buffer.from([0x13]), lengthBytes, content]);
240
+ }
241
+ function encodeUTCTime(date) {
242
+ const year = date.getUTCFullYear() % 100;
243
+ const month = (date.getUTCMonth() + 1).toString().padStart(2, '0');
244
+ const day = date.getUTCDate().toString().padStart(2, '0');
245
+ const hours = date.getUTCHours().toString().padStart(2, '0');
246
+ const minutes = date.getUTCMinutes().toString().padStart(2, '0');
247
+ const seconds = date.getUTCSeconds().toString().padStart(2, '0');
248
+ const str = `${year.toString().padStart(2, '0')}${month}${day}${hours}${minutes}${seconds}Z`;
249
+ const content = Buffer.from(str, 'ascii');
250
+ const lengthBytes = encodeLength(content.length);
251
+ return Buffer.concat([Buffer.from([0x17]), lengthBytes, content]);
252
+ }
253
+ function encodeBitString(data) {
254
+ // Add leading byte for unused bits (0)
255
+ const content = Buffer.concat([Buffer.from([0]), data]);
256
+ const lengthBytes = encodeLength(content.length);
257
+ return Buffer.concat([Buffer.from([0x03]), lengthBytes, content]);
258
+ }
259
+ function encodeContextTag(tag, content) {
260
+ const lengthBytes = encodeLength(content.length);
261
+ return Buffer.concat([Buffer.from([0xa0 | tag]), lengthBytes, content]);
262
+ }
263
+ function buildTBSCertificate(params, pubKeyDer) {
264
+ // Version (v3 = 2)
265
+ const version = encodeContextTag(0, encodeInteger(2));
266
+ // Serial number
267
+ const serial = encodeInteger(Buffer.from(params.serialNumber, 'hex'));
268
+ // Signature algorithm (SHA256 with RSA)
269
+ const signatureAlgorithm = encodeSequence([
270
+ encodeOID('1.2.840.113549.1.1.11'), // sha256WithRSAEncryption
271
+ Buffer.from([0x05, 0x00]) // NULL
272
+ ]);
273
+ // Issuer (same as subject for self-signed)
274
+ const issuer = buildName(params.commonName);
275
+ // Validity
276
+ const validity = encodeSequence([
277
+ encodeUTCTime(params.notBefore),
278
+ encodeUTCTime(params.notAfter)
279
+ ]);
280
+ // Subject
281
+ const subject = buildName(params.commonName);
282
+ // Subject Public Key Info (already in DER format)
283
+ const subjectPublicKeyInfo = pubKeyDer;
284
+ // Extensions (v3)
285
+ const extensions = buildExtensions(params.commonName);
286
+ const extensionsTagged = encodeContextTag(3, extensions);
287
+ return encodeSequence([
288
+ version,
289
+ serial,
290
+ signatureAlgorithm,
291
+ issuer,
292
+ validity,
293
+ subject,
294
+ subjectPublicKeyInfo,
295
+ extensionsTagged
296
+ ]);
297
+ }
298
+ function buildName(commonName) {
299
+ // Build RDN for CN (Common Name)
300
+ const cnOid = encodeOID('2.5.4.3'); // id-at-commonName
301
+ const cnValue = encodePrintableString(commonName);
302
+ const cnAttr = encodeSequence([cnOid, cnValue]);
303
+ const cnRdn = encodeSet([cnAttr]);
304
+ return encodeSequence([cnRdn]);
305
+ }
306
+ function buildExtensions(commonName) {
307
+ // Basic Constraints (CA: false)
308
+ const basicConstraints = encodeSequence([
309
+ encodeOID('2.5.29.19'), // id-ce-basicConstraints
310
+ Buffer.from([0x01, 0x01, 0xff]), // critical = true
311
+ Buffer.from([0x04, 0x02, 0x30, 0x00]) // OCTET STRING containing empty SEQUENCE
312
+ ]);
313
+ // Key Usage (digitalSignature, keyEncipherment)
314
+ const keyUsage = encodeSequence([
315
+ encodeOID('2.5.29.15'), // id-ce-keyUsage
316
+ Buffer.from([0x01, 0x01, 0xff]), // critical = true
317
+ Buffer.from([0x04, 0x04, 0x03, 0x02, 0x05, 0xa0]) // OCTET STRING containing BIT STRING
318
+ ]);
319
+ // Subject Alternative Name (DNS name)
320
+ const sanValue = encodeSequence([
321
+ Buffer.concat([
322
+ Buffer.from([0x82]), // context tag 2 (dNSName)
323
+ encodeLength(commonName.length),
324
+ Buffer.from(commonName, 'ascii')
325
+ ])
326
+ ]);
327
+ const sanOctet = Buffer.concat([
328
+ Buffer.from([0x04]),
329
+ encodeLength(sanValue.length),
330
+ sanValue
331
+ ]);
332
+ const san = encodeSequence([
333
+ encodeOID('2.5.29.17'), // id-ce-subjectAltName
334
+ sanOctet
335
+ ]);
336
+ return encodeSequence([basicConstraints, keyUsage, san]);
337
+ }
338
+ function buildCertificate(tbsCert, signature) {
339
+ // Signature algorithm
340
+ const signatureAlgorithm = encodeSequence([
341
+ encodeOID('1.2.840.113549.1.1.11'), // sha256WithRSAEncryption
342
+ Buffer.from([0x05, 0x00]) // NULL
343
+ ]);
344
+ // Signature value
345
+ const signatureValue = encodeBitString(signature);
346
+ return encodeSequence([tbsCert, signatureAlgorithm, signatureValue]);
347
+ }
348
+ //# sourceMappingURL=hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../../src/core/utils/hash.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Utility functions for aquaman
3
+ */
4
+ export { computeHash, computeChainedHash, generateId, generateNonce, generateSigningKeyPair, sign, verify, encryptWithPassword, decryptWithPassword, generateSelfSignedCert, type SigningKeyPair, type SelfSignedCert } from './hash.js';
5
+ export { getConfigDir, getConfigPath, expandPath, getDefaultConfig, loadConfig, ensureConfigDir, saveConfig, applyEnvOverrides } from './config.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,sBAAsB,EACtB,IAAI,EACJ,MAAM,EACN,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,UAAU,EACV,iBAAiB,EAClB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Utility functions for aquaman
3
+ */
4
+ export { computeHash, computeChainedHash, generateId, generateNonce, generateSigningKeyPair, sign, verify, encryptWithPassword, decryptWithPassword, generateSelfSignedCert } from './hash.js';
5
+ export { getConfigDir, getConfigPath, expandPath, getDefaultConfig, loadConfig, ensureConfigDir, saveConfig, applyEnvOverrides } from './config.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,sBAAsB,EACtB,IAAI,EACJ,MAAM,EACN,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EAGvB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,UAAU,EACV,iBAAiB,EAClB,MAAM,aAAa,CAAC"}
package/dist/daemon.d.ts CHANGED
@@ -1,23 +1,15 @@
1
1
  /**
2
2
  * Credential proxy daemon - holds secrets and proxies authenticated API calls
3
- * OpenClaw connects to this proxy instead of directly to external APIs
3
+ * OpenClaw connects to this proxy via Unix domain socket instead of directly to external APIs
4
4
  */
5
- import { type CredentialStore } from 'aquaman-core';
5
+ import { type CredentialStore } from './core/index.js';
6
6
  import { ServiceRegistry, type ServiceDefinition } from './service-registry.js';
7
- export interface TlsOptions {
8
- enabled: boolean;
9
- certPath?: string;
10
- keyPath?: string;
11
- }
12
7
  export interface CredentialProxyOptions {
13
- port: number;
14
- bindAddress?: string;
8
+ socketPath: string;
15
9
  store: CredentialStore;
16
10
  allowedServices: string[];
17
11
  onRequest?: (info: RequestInfo) => void;
18
- tls?: TlsOptions;
19
12
  serviceRegistry?: ServiceRegistry;
20
- clientToken?: string;
21
13
  requestTimeout?: number;
22
14
  }
23
15
  export interface RequestInfo {
@@ -40,25 +32,18 @@ export declare class CredentialProxy {
40
32
  private server;
41
33
  private options;
42
34
  private running;
43
- private tlsEnabled;
44
35
  private serviceRegistry;
45
36
  private oauthCache;
46
- private actualPort;
47
37
  constructor(options: CredentialProxyOptions);
48
38
  start(): Promise<void>;
49
39
  private handleRequest;
50
40
  private proxyRequest;
51
- private extractClientToken;
52
- private verifyToken;
53
41
  private emitRequest;
54
42
  stop(): Promise<void>;
55
43
  isRunning(): boolean;
56
- isTlsEnabled(): boolean;
57
- getPort(): number;
44
+ getSocketPath(): string;
58
45
  getServiceRegistry(): ServiceRegistry;
59
46
  getServiceConfigs(): Record<string, ServiceConfig>;
60
- getBaseUrl(service: string): string;
61
- static getBaseUrl(service: string, proxyPort: number, useTls?: boolean): string;
62
47
  }
63
48
  export declare function createCredentialProxy(options: CredentialProxyOptions): CredentialProxy;
64
49
  export type { ServiceDefinition };
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,EAAE,KAAK,eAAe,EAAc,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,eAAe,EAAyB,KAAK,iBAAiB,EAAiB,MAAM,uBAAuB,CAAC;AAStH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,eAAe,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,aAAa;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,UAAU,CAAa;gBAEnB,OAAO,EAAE,sBAAsB;IAMrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAgEd,aAAa;YAyHb,YAAY;IAoI1B,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,WAAW;IAMb,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3B,SAAS,IAAI,OAAO;IAIpB,YAAY,IAAI,OAAO;IAIvB,OAAO,IAAI,MAAM;IAIjB,kBAAkB,IAAI,eAAe;IAIrC,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAIlD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAKnC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,MAAM;CAI9E;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe,CAEtF;AAED,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAAE,KAAK,eAAe,EAAc,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAyB,KAAK,iBAAiB,EAAiB,MAAM,uBAAuB,CAAC;AAStH,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,eAAe,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,aAAa;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,UAAU,CAAkB;gBAExB,OAAO,EAAE,sBAAsB;IAMrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAwCd,aAAa;YA+Gb,YAAY;IAkI1B,OAAO,CAAC,WAAW;IAMb,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB3B,SAAS,IAAI,OAAO;IAIpB,aAAa,IAAI,MAAM;IAIvB,kBAAkB,IAAI,eAAe;IAIrC,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;CAGnD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe,CAEtF;AAED,YAAY,EAAE,iBAAiB,EAAE,CAAC"}