@quantiya/codevibe-core 1.0.3 → 1.0.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 (51) hide show
  1. package/README.md +15 -6
  2. package/bin/codevibe.js +1 -1
  3. package/dist/index.js +216 -67
  4. package/package.json +10 -10
  5. package/dist/appsync/appsync-client.d.ts +0 -132
  6. package/dist/appsync/appsync-client.js +0 -576
  7. package/dist/appsync/index.d.ts +0 -2
  8. package/dist/appsync/index.js +0 -10
  9. package/dist/appsync/queries.d.ts +0 -16
  10. package/dist/appsync/queries.js +0 -189
  11. package/dist/auth/auth-cli.d.ts +0 -5
  12. package/dist/auth/auth-cli.js +0 -217
  13. package/dist/auth/auth-service.d.ts +0 -87
  14. package/dist/auth/auth-service.js +0 -464
  15. package/dist/auth/fetch-helpers.d.ts +0 -11
  16. package/dist/auth/fetch-helpers.js +0 -165
  17. package/dist/auth/index.d.ts +0 -2
  18. package/dist/auth/index.js +0 -9
  19. package/dist/config/config.d.ts +0 -53
  20. package/dist/config/config.js +0 -123
  21. package/dist/config/index.d.ts +0 -2
  22. package/dist/config/index.js +0 -8
  23. package/dist/crypto/crypto-service.d.ts +0 -118
  24. package/dist/crypto/crypto-service.js +0 -284
  25. package/dist/crypto/index.d.ts +0 -1
  26. package/dist/crypto/index.js +0 -9
  27. package/dist/index.d.ts +0 -14
  28. package/dist/keychain/index.d.ts +0 -1
  29. package/dist/keychain/index.js +0 -8
  30. package/dist/keychain/keychain-manager.d.ts +0 -125
  31. package/dist/keychain/keychain-manager.js +0 -375
  32. package/dist/logger/index.d.ts +0 -1
  33. package/dist/logger/index.js +0 -8
  34. package/dist/logger/logger.d.ts +0 -35
  35. package/dist/logger/logger.js +0 -142
  36. package/dist/prompt-parser.d.ts +0 -39
  37. package/dist/prompt-parser.js +0 -236
  38. package/dist/session/index.d.ts +0 -2
  39. package/dist/session/index.js +0 -7
  40. package/dist/session/session-resume.d.ts +0 -55
  41. package/dist/session/session-resume.js +0 -151
  42. package/dist/types/auth.d.ts +0 -15
  43. package/dist/types/auth.js +0 -3
  44. package/dist/types/encryption.d.ts +0 -54
  45. package/dist/types/encryption.js +0 -3
  46. package/dist/types/events.d.ts +0 -74
  47. package/dist/types/events.js +0 -28
  48. package/dist/types/index.d.ts +0 -4
  49. package/dist/types/index.js +0 -22
  50. package/dist/types/session.d.ts +0 -59
  51. package/dist/types/session.js +0 -22
@@ -1,165 +0,0 @@
1
- "use strict";
2
- //
3
- // fetch-helpers.ts
4
- // CodeVibe Core
5
- //
6
- // Wrapper around Node's built-in fetch() that surfaces the underlying cause
7
- // of "fetch failed" errors with platform-specific diagnostic tips.
8
- //
9
- // Background: Node 18+'s built-in fetch (via undici) throws a generic
10
- // TypeError with message "fetch failed" for all network-level errors (DNS
11
- // failures, timeouts, TLS issues, etc.). The real cause is buried in the
12
- // error's .cause property. This wrapper unpacks that cause and returns a
13
- // detailed, actionable error message — critical for WSL users where fetch
14
- // failures are common and usually fixable with known workarounds.
15
- //
16
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
17
- if (k2 === undefined) k2 = k;
18
- var desc = Object.getOwnPropertyDescriptor(m, k);
19
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
20
- desc = { enumerable: true, get: function() { return m[k]; } };
21
- }
22
- Object.defineProperty(o, k2, desc);
23
- }) : (function(o, m, k, k2) {
24
- if (k2 === undefined) k2 = k;
25
- o[k2] = m[k];
26
- }));
27
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
28
- Object.defineProperty(o, "default", { enumerable: true, value: v });
29
- }) : function(o, v) {
30
- o["default"] = v;
31
- });
32
- var __importStar = (this && this.__importStar) || (function () {
33
- var ownKeys = function(o) {
34
- ownKeys = Object.getOwnPropertyNames || function (o) {
35
- var ar = [];
36
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
37
- return ar;
38
- };
39
- return ownKeys(o);
40
- };
41
- return function (mod) {
42
- if (mod && mod.__esModule) return mod;
43
- var result = {};
44
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
45
- __setModuleDefault(result, mod);
46
- return result;
47
- };
48
- })();
49
- Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.fetchWithDiagnostics = fetchWithDiagnostics;
51
- const dns = __importStar(require("dns"));
52
- const fs = __importStar(require("fs"));
53
- // Node 17+ changed the default DNS result order from 'ipv4first' to
54
- // 'verbatim' (RFC-compliant but problematic for hosts with broken IPv6).
55
- // On WSL Ubuntu specifically, the kernel often advertises IPv6 addresses
56
- // via getaddrinfo even though the WSL network namespace has no route to
57
- // the IPv6 internet — causing every IPv6 connection attempt to fail with
58
- // EHOSTUNREACH. curl handles this via Happy Eyeballs fallback, but undici
59
- // (Node's built-in fetch) does not, and throws "fetch failed" without
60
- // ever trying IPv4.
61
- //
62
- // We apply 'ipv4first' ONLY when running inside WSL. On macOS, native
63
- // Linux, and Windows we leave Node's default ('verbatim') alone — those
64
- // platforms have healthy dual-stack networking and the current behavior
65
- // is correct. Narrowly scoping the override to WSL means zero behavioral
66
- // change for non-WSL users (including IPv6-only networks where ipv4first
67
- // would add first-connection latency).
68
- //
69
- // This runs as a side effect of importing codevibe-core's fetch-helpers,
70
- // which happens early in every plugin's startup path. Documented here
71
- // so future maintainers understand why there's a side effect on import.
72
- if (isRunningInWSL()) {
73
- try {
74
- dns.setDefaultResultOrder('ipv4first');
75
- }
76
- catch {
77
- // Older Node versions (< 18.6) don't expose setDefaultResultOrder;
78
- // skip silently. Users on those versions can still set the
79
- // NODE_OPTIONS="--dns-result-order=ipv4first" environment variable
80
- // manually if they hit IPv6 issues.
81
- }
82
- }
83
- /**
84
- * Detect whether we're running inside WSL (1 or 2). Returns false on any
85
- * non-Linux platform or if /proc/sys/kernel/osrelease is not readable.
86
- * Duplicated from auth-service.ts as a module-level helper so it can run
87
- * at import time, before any class is instantiated.
88
- */
89
- function isRunningInWSL() {
90
- if (process.platform !== 'linux')
91
- return false;
92
- try {
93
- const osRelease = fs.readFileSync('/proc/sys/kernel/osrelease', 'utf8');
94
- return /microsoft|wsl/i.test(osRelease);
95
- }
96
- catch {
97
- return false;
98
- }
99
- }
100
- /**
101
- * Wraps fetch() and rewrites "fetch failed" errors to include the underlying
102
- * cause and a user-actionable diagnostic tip when possible. Non-network errors
103
- * and HTTP error responses (non-2xx) are not affected — the caller still
104
- * handles response.ok checks themselves.
105
- *
106
- * @param url The URL to fetch
107
- * @param init Standard fetch init options
108
- * @param context Optional short label (e.g. "token exchange") for the error message
109
- */
110
- async function fetchWithDiagnostics(url, init, context) {
111
- try {
112
- return await fetch(url, init);
113
- }
114
- catch (err) {
115
- // Node's undici wraps real errors in err.cause
116
- const causeCode = err?.cause?.code;
117
- const causeMessage = err?.cause?.message;
118
- const causeSummary = causeCode || causeMessage || err?.message || 'unknown';
119
- const tip = getDiagnosticTip(causeCode);
120
- const contextLabel = context ? `${context}: ` : '';
121
- const platformInfo = `Node ${process.version} on ${process.platform}`;
122
- const detailLines = [
123
- `${contextLabel}Cannot reach ${url}`,
124
- ` Underlying error: ${causeSummary}`,
125
- ];
126
- if (tip) {
127
- detailLines.push(` Suggested fix: ${tip}`);
128
- }
129
- detailLines.push(` Platform: ${platformInfo}`);
130
- const detailedError = new Error(detailLines.join('\n'));
131
- // Preserve the original error as cause so callers can still inspect it
132
- detailedError.cause = err;
133
- throw detailedError;
134
- }
135
- }
136
- /**
137
- * Map common Node network error codes to user-actionable diagnostic hints.
138
- * Returns null if the code isn't one we recognize.
139
- */
140
- function getDiagnosticTip(errorCode) {
141
- if (!errorCode)
142
- return null;
143
- switch (errorCode) {
144
- case 'ENOTFOUND':
145
- case 'EAI_AGAIN':
146
- return 'DNS resolution failed. On WSL Ubuntu, check /etc/resolv.conf, or try running with NODE_OPTIONS="--dns-result-order=ipv4first".';
147
- case 'ETIMEDOUT':
148
- case 'ECONNREFUSED':
149
- case 'ECONNRESET':
150
- case 'EHOSTUNREACH':
151
- case 'ENETUNREACH':
152
- return 'Network unreachable. On WSL Ubuntu, try NODE_OPTIONS="--dns-result-order=ipv4first" (WSL\'s IPv6 is often broken). If behind a corporate proxy, set HTTPS_PROXY.';
153
- case 'CERT_HAS_EXPIRED':
154
- case 'CERT_NOT_YET_VALID':
155
- return 'TLS certificate time error — likely system clock drift. On WSL, run `sudo hwclock -s`, or shut down WSL from PowerShell with `wsl --shutdown` and restart.';
156
- case 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY':
157
- case 'SELF_SIGNED_CERT_IN_CHAIN':
158
- case 'UNABLE_TO_VERIFY_LEAF_SIGNATURE':
159
- case 'DEPTH_ZERO_SELF_SIGNED_CERT':
160
- return 'Corporate HTTPS proxy detected — the TLS cert is not trusted by Node. Set NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem, or configure HTTPS_PROXY if a proxy is required.';
161
- default:
162
- return null;
163
- }
164
- }
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoL2ZldGNoLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLEVBQUU7QUFDRixtQkFBbUI7QUFDbkIsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRiw0RUFBNEU7QUFDNUUsbUVBQW1FO0FBQ25FLEVBQUU7QUFDRixzRUFBc0U7QUFDdEUsMEVBQTBFO0FBQzFFLHlFQUF5RTtBQUN6RSx5RUFBeUU7QUFDekUsMEVBQTBFO0FBQzFFLGtFQUFrRTtBQUNsRSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTZERixvREErQkM7QUExRkQseUNBQTJCO0FBQzNCLHVDQUF5QjtBQUV6QixvRUFBb0U7QUFDcEUseUVBQXlFO0FBQ3pFLHlFQUF5RTtBQUN6RSx3RUFBd0U7QUFDeEUseUVBQXlFO0FBQ3pFLDBFQUEwRTtBQUMxRSxzRUFBc0U7QUFDdEUsb0JBQW9CO0FBQ3BCLEVBQUU7QUFDRixzRUFBc0U7QUFDdEUsd0VBQXdFO0FBQ3hFLHdFQUF3RTtBQUN4RSx5RUFBeUU7QUFDekUseUVBQXlFO0FBQ3pFLHVDQUF1QztBQUN2QyxFQUFFO0FBQ0YseUVBQXlFO0FBQ3pFLHNFQUFzRTtBQUN0RSx3RUFBd0U7QUFDeEUsSUFBSSxjQUFjLEVBQUUsRUFBRSxDQUFDO0lBQ3JCLElBQUksQ0FBQztRQUNILEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsbUVBQW1FO1FBQ25FLDJEQUEyRDtRQUMzRCxtRUFBbUU7UUFDbkUsb0NBQW9DO0lBQ3RDLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFTLGNBQWM7SUFDckIsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLE9BQU87UUFBRSxPQUFPLEtBQUssQ0FBQztJQUMvQyxJQUFJLENBQUM7UUFDSCxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLDRCQUE0QixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0ksS0FBSyxVQUFVLG9CQUFvQixDQUN4QyxHQUFXLEVBQ1gsSUFBVSxFQUNWLE9BQWdCO0lBRWhCLElBQUksQ0FBQztRQUNILE9BQU8sTUFBTSxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFBQyxPQUFPLEdBQVEsRUFBRSxDQUFDO1FBQ2xCLCtDQUErQztRQUMvQyxNQUFNLFNBQVMsR0FBdUIsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUM7UUFDdkQsTUFBTSxZQUFZLEdBQXVCLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDO1FBQzdELE1BQU0sWUFBWSxHQUFHLFNBQVMsSUFBSSxZQUFZLElBQUksR0FBRyxFQUFFLE9BQU8sSUFBSSxTQUFTLENBQUM7UUFFNUUsTUFBTSxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbkQsTUFBTSxZQUFZLEdBQUcsUUFBUSxPQUFPLENBQUMsT0FBTyxPQUFPLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUV0RSxNQUFNLFdBQVcsR0FBYTtZQUM1QixHQUFHLFlBQVksZ0JBQWdCLEdBQUcsRUFBRTtZQUNwQyx1QkFBdUIsWUFBWSxFQUFFO1NBQ3RDLENBQUM7UUFDRixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsV0FBVyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsV0FBVyxDQUFDLElBQUksQ0FBQyxlQUFlLFlBQVksRUFBRSxDQUFDLENBQUM7UUFFaEQsTUFBTSxhQUFhLEdBQUcsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3hELHVFQUF1RTtRQUN0RSxhQUFxQixDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDbkMsTUFBTSxhQUFhLENBQUM7SUFDdEIsQ0FBQztBQUNILENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLGdCQUFnQixDQUFDLFNBQWtCO0lBQzFDLElBQUksQ0FBQyxTQUFTO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFNUIsUUFBUSxTQUFTLEVBQUUsQ0FBQztRQUNsQixLQUFLLFdBQVcsQ0FBQztRQUNqQixLQUFLLFdBQVc7WUFDZCxPQUFPLGdJQUFnSSxDQUFDO1FBRTFJLEtBQUssV0FBVyxDQUFDO1FBQ2pCLEtBQUssY0FBYyxDQUFDO1FBQ3BCLEtBQUssWUFBWSxDQUFDO1FBQ2xCLEtBQUssY0FBYyxDQUFDO1FBQ3BCLEtBQUssYUFBYTtZQUNoQixPQUFPLGtLQUFrSyxDQUFDO1FBRTVLLEtBQUssa0JBQWtCLENBQUM7UUFDeEIsS0FBSyxvQkFBb0I7WUFDdkIsT0FBTyw0SkFBNEosQ0FBQztRQUV0SyxLQUFLLG1DQUFtQyxDQUFDO1FBQ3pDLEtBQUssMkJBQTJCLENBQUM7UUFDakMsS0FBSyxpQ0FBaUMsQ0FBQztRQUN2QyxLQUFLLDZCQUE2QjtZQUNoQyxPQUFPLDJLQUEySyxDQUFDO1FBRXJMO1lBQ0UsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvL1xuLy8gZmV0Y2gtaGVscGVycy50c1xuLy8gQ29kZVZpYmUgQ29yZVxuLy9cbi8vIFdyYXBwZXIgYXJvdW5kIE5vZGUncyBidWlsdC1pbiBmZXRjaCgpIHRoYXQgc3VyZmFjZXMgdGhlIHVuZGVybHlpbmcgY2F1c2Vcbi8vIG9mIFwiZmV0Y2ggZmFpbGVkXCIgZXJyb3JzIHdpdGggcGxhdGZvcm0tc3BlY2lmaWMgZGlhZ25vc3RpYyB0aXBzLlxuLy9cbi8vIEJhY2tncm91bmQ6IE5vZGUgMTgrJ3MgYnVpbHQtaW4gZmV0Y2ggKHZpYSB1bmRpY2kpIHRocm93cyBhIGdlbmVyaWNcbi8vIFR5cGVFcnJvciB3aXRoIG1lc3NhZ2UgXCJmZXRjaCBmYWlsZWRcIiBmb3IgYWxsIG5ldHdvcmstbGV2ZWwgZXJyb3JzIChETlNcbi8vIGZhaWx1cmVzLCB0aW1lb3V0cywgVExTIGlzc3VlcywgZXRjLikuIFRoZSByZWFsIGNhdXNlIGlzIGJ1cmllZCBpbiB0aGVcbi8vIGVycm9yJ3MgLmNhdXNlIHByb3BlcnR5LiBUaGlzIHdyYXBwZXIgdW5wYWNrcyB0aGF0IGNhdXNlIGFuZCByZXR1cm5zIGFcbi8vIGRldGFpbGVkLCBhY3Rpb25hYmxlIGVycm9yIG1lc3NhZ2Ug4oCUIGNyaXRpY2FsIGZvciBXU0wgdXNlcnMgd2hlcmUgZmV0Y2hcbi8vIGZhaWx1cmVzIGFyZSBjb21tb24gYW5kIHVzdWFsbHkgZml4YWJsZSB3aXRoIGtub3duIHdvcmthcm91bmRzLlxuLy9cblxuaW1wb3J0ICogYXMgZG5zIGZyb20gJ2Rucyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5cbi8vIE5vZGUgMTcrIGNoYW5nZWQgdGhlIGRlZmF1bHQgRE5TIHJlc3VsdCBvcmRlciBmcm9tICdpcHY0Zmlyc3QnIHRvXG4vLyAndmVyYmF0aW0nIChSRkMtY29tcGxpYW50IGJ1dCBwcm9ibGVtYXRpYyBmb3IgaG9zdHMgd2l0aCBicm9rZW4gSVB2NikuXG4vLyBPbiBXU0wgVWJ1bnR1IHNwZWNpZmljYWxseSwgdGhlIGtlcm5lbCBvZnRlbiBhZHZlcnRpc2VzIElQdjYgYWRkcmVzc2VzXG4vLyB2aWEgZ2V0YWRkcmluZm8gZXZlbiB0aG91Z2ggdGhlIFdTTCBuZXR3b3JrIG5hbWVzcGFjZSBoYXMgbm8gcm91dGUgdG9cbi8vIHRoZSBJUHY2IGludGVybmV0IOKAlCBjYXVzaW5nIGV2ZXJ5IElQdjYgY29ubmVjdGlvbiBhdHRlbXB0IHRvIGZhaWwgd2l0aFxuLy8gRUhPU1RVTlJFQUNILiBjdXJsIGhhbmRsZXMgdGhpcyB2aWEgSGFwcHkgRXllYmFsbHMgZmFsbGJhY2ssIGJ1dCB1bmRpY2lcbi8vIChOb2RlJ3MgYnVpbHQtaW4gZmV0Y2gpIGRvZXMgbm90LCBhbmQgdGhyb3dzIFwiZmV0Y2ggZmFpbGVkXCIgd2l0aG91dFxuLy8gZXZlciB0cnlpbmcgSVB2NC5cbi8vXG4vLyBXZSBhcHBseSAnaXB2NGZpcnN0JyBPTkxZIHdoZW4gcnVubmluZyBpbnNpZGUgV1NMLiBPbiBtYWNPUywgbmF0aXZlXG4vLyBMaW51eCwgYW5kIFdpbmRvd3Mgd2UgbGVhdmUgTm9kZSdzIGRlZmF1bHQgKCd2ZXJiYXRpbScpIGFsb25lIOKAlCB0aG9zZVxuLy8gcGxhdGZvcm1zIGhhdmUgaGVhbHRoeSBkdWFsLXN0YWNrIG5ldHdvcmtpbmcgYW5kIHRoZSBjdXJyZW50IGJlaGF2aW9yXG4vLyBpcyBjb3JyZWN0LiBOYXJyb3dseSBzY29waW5nIHRoZSBvdmVycmlkZSB0byBXU0wgbWVhbnMgemVybyBiZWhhdmlvcmFsXG4vLyBjaGFuZ2UgZm9yIG5vbi1XU0wgdXNlcnMgKGluY2x1ZGluZyBJUHY2LW9ubHkgbmV0d29ya3Mgd2hlcmUgaXB2NGZpcnN0XG4vLyB3b3VsZCBhZGQgZmlyc3QtY29ubmVjdGlvbiBsYXRlbmN5KS5cbi8vXG4vLyBUaGlzIHJ1bnMgYXMgYSBzaWRlIGVmZmVjdCBvZiBpbXBvcnRpbmcgY29kZXZpYmUtY29yZSdzIGZldGNoLWhlbHBlcnMsXG4vLyB3aGljaCBoYXBwZW5zIGVhcmx5IGluIGV2ZXJ5IHBsdWdpbidzIHN0YXJ0dXAgcGF0aC4gRG9jdW1lbnRlZCBoZXJlXG4vLyBzbyBmdXR1cmUgbWFpbnRhaW5lcnMgdW5kZXJzdGFuZCB3aHkgdGhlcmUncyBhIHNpZGUgZWZmZWN0IG9uIGltcG9ydC5cbmlmIChpc1J1bm5pbmdJbldTTCgpKSB7XG4gIHRyeSB7XG4gICAgZG5zLnNldERlZmF1bHRSZXN1bHRPcmRlcignaXB2NGZpcnN0Jyk7XG4gIH0gY2F0Y2gge1xuICAgIC8vIE9sZGVyIE5vZGUgdmVyc2lvbnMgKDwgMTguNikgZG9uJ3QgZXhwb3NlIHNldERlZmF1bHRSZXN1bHRPcmRlcjtcbiAgICAvLyBza2lwIHNpbGVudGx5LiBVc2VycyBvbiB0aG9zZSB2ZXJzaW9ucyBjYW4gc3RpbGwgc2V0IHRoZVxuICAgIC8vIE5PREVfT1BUSU9OUz1cIi0tZG5zLXJlc3VsdC1vcmRlcj1pcHY0Zmlyc3RcIiBlbnZpcm9ubWVudCB2YXJpYWJsZVxuICAgIC8vIG1hbnVhbGx5IGlmIHRoZXkgaGl0IElQdjYgaXNzdWVzLlxuICB9XG59XG5cbi8qKlxuICogRGV0ZWN0IHdoZXRoZXIgd2UncmUgcnVubmluZyBpbnNpZGUgV1NMICgxIG9yIDIpLiBSZXR1cm5zIGZhbHNlIG9uIGFueVxuICogbm9uLUxpbnV4IHBsYXRmb3JtIG9yIGlmIC9wcm9jL3N5cy9rZXJuZWwvb3NyZWxlYXNlIGlzIG5vdCByZWFkYWJsZS5cbiAqIER1cGxpY2F0ZWQgZnJvbSBhdXRoLXNlcnZpY2UudHMgYXMgYSBtb2R1bGUtbGV2ZWwgaGVscGVyIHNvIGl0IGNhbiBydW5cbiAqIGF0IGltcG9ydCB0aW1lLCBiZWZvcmUgYW55IGNsYXNzIGlzIGluc3RhbnRpYXRlZC5cbiAqL1xuZnVuY3Rpb24gaXNSdW5uaW5nSW5XU0woKTogYm9vbGVhbiB7XG4gIGlmIChwcm9jZXNzLnBsYXRmb3JtICE9PSAnbGludXgnKSByZXR1cm4gZmFsc2U7XG4gIHRyeSB7XG4gICAgY29uc3Qgb3NSZWxlYXNlID0gZnMucmVhZEZpbGVTeW5jKCcvcHJvYy9zeXMva2VybmVsL29zcmVsZWFzZScsICd1dGY4Jyk7XG4gICAgcmV0dXJuIC9taWNyb3NvZnR8d3NsL2kudGVzdChvc1JlbGVhc2UpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBXcmFwcyBmZXRjaCgpIGFuZCByZXdyaXRlcyBcImZldGNoIGZhaWxlZFwiIGVycm9ycyB0byBpbmNsdWRlIHRoZSB1bmRlcmx5aW5nXG4gKiBjYXVzZSBhbmQgYSB1c2VyLWFjdGlvbmFibGUgZGlhZ25vc3RpYyB0aXAgd2hlbiBwb3NzaWJsZS4gTm9uLW5ldHdvcmsgZXJyb3JzXG4gKiBhbmQgSFRUUCBlcnJvciByZXNwb25zZXMgKG5vbi0yeHgpIGFyZSBub3QgYWZmZWN0ZWQg4oCUIHRoZSBjYWxsZXIgc3RpbGxcbiAqIGhhbmRsZXMgcmVzcG9uc2Uub2sgY2hlY2tzIHRoZW1zZWx2ZXMuXG4gKlxuICogQHBhcmFtIHVybCBUaGUgVVJMIHRvIGZldGNoXG4gKiBAcGFyYW0gaW5pdCBTdGFuZGFyZCBmZXRjaCBpbml0IG9wdGlvbnNcbiAqIEBwYXJhbSBjb250ZXh0IE9wdGlvbmFsIHNob3J0IGxhYmVsIChlLmcuIFwidG9rZW4gZXhjaGFuZ2VcIikgZm9yIHRoZSBlcnJvciBtZXNzYWdlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaFdpdGhEaWFnbm9zdGljcyhcbiAgdXJsOiBzdHJpbmcsXG4gIGluaXQ/OiBhbnksXG4gIGNvbnRleHQ/OiBzdHJpbmdcbik6IFByb21pc2U8UmVzcG9uc2U+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgZmV0Y2godXJsLCBpbml0KTtcbiAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAvLyBOb2RlJ3MgdW5kaWNpIHdyYXBzIHJlYWwgZXJyb3JzIGluIGVyci5jYXVzZVxuICAgIGNvbnN0IGNhdXNlQ29kZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gZXJyPy5jYXVzZT8uY29kZTtcbiAgICBjb25zdCBjYXVzZU1lc3NhZ2U6IHN0cmluZyB8IHVuZGVmaW5lZCA9IGVycj8uY2F1c2U/Lm1lc3NhZ2U7XG4gICAgY29uc3QgY2F1c2VTdW1tYXJ5ID0gY2F1c2VDb2RlIHx8IGNhdXNlTWVzc2FnZSB8fCBlcnI/Lm1lc3NhZ2UgfHwgJ3Vua25vd24nO1xuXG4gICAgY29uc3QgdGlwID0gZ2V0RGlhZ25vc3RpY1RpcChjYXVzZUNvZGUpO1xuICAgIGNvbnN0IGNvbnRleHRMYWJlbCA9IGNvbnRleHQgPyBgJHtjb250ZXh0fTogYCA6ICcnO1xuICAgIGNvbnN0IHBsYXRmb3JtSW5mbyA9IGBOb2RlICR7cHJvY2Vzcy52ZXJzaW9ufSBvbiAke3Byb2Nlc3MucGxhdGZvcm19YDtcblxuICAgIGNvbnN0IGRldGFpbExpbmVzOiBzdHJpbmdbXSA9IFtcbiAgICAgIGAke2NvbnRleHRMYWJlbH1DYW5ub3QgcmVhY2ggJHt1cmx9YCxcbiAgICAgIGAgIFVuZGVybHlpbmcgZXJyb3I6ICR7Y2F1c2VTdW1tYXJ5fWAsXG4gICAgXTtcbiAgICBpZiAodGlwKSB7XG4gICAgICBkZXRhaWxMaW5lcy5wdXNoKGAgIFN1Z2dlc3RlZCBmaXg6ICR7dGlwfWApO1xuICAgIH1cbiAgICBkZXRhaWxMaW5lcy5wdXNoKGAgIFBsYXRmb3JtOiAke3BsYXRmb3JtSW5mb31gKTtcblxuICAgIGNvbnN0IGRldGFpbGVkRXJyb3IgPSBuZXcgRXJyb3IoZGV0YWlsTGluZXMuam9pbignXFxuJykpO1xuICAgIC8vIFByZXNlcnZlIHRoZSBvcmlnaW5hbCBlcnJvciBhcyBjYXVzZSBzbyBjYWxsZXJzIGNhbiBzdGlsbCBpbnNwZWN0IGl0XG4gICAgKGRldGFpbGVkRXJyb3IgYXMgYW55KS5jYXVzZSA9IGVycjtcbiAgICB0aHJvdyBkZXRhaWxlZEVycm9yO1xuICB9XG59XG5cbi8qKlxuICogTWFwIGNvbW1vbiBOb2RlIG5ldHdvcmsgZXJyb3IgY29kZXMgdG8gdXNlci1hY3Rpb25hYmxlIGRpYWdub3N0aWMgaGludHMuXG4gKiBSZXR1cm5zIG51bGwgaWYgdGhlIGNvZGUgaXNuJ3Qgb25lIHdlIHJlY29nbml6ZS5cbiAqL1xuZnVuY3Rpb24gZ2V0RGlhZ25vc3RpY1RpcChlcnJvckNvZGU/OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKCFlcnJvckNvZGUpIHJldHVybiBudWxsO1xuXG4gIHN3aXRjaCAoZXJyb3JDb2RlKSB7XG4gICAgY2FzZSAnRU5PVEZPVU5EJzpcbiAgICBjYXNlICdFQUlfQUdBSU4nOlxuICAgICAgcmV0dXJuICdETlMgcmVzb2x1dGlvbiBmYWlsZWQuIE9uIFdTTCBVYnVudHUsIGNoZWNrIC9ldGMvcmVzb2x2LmNvbmYsIG9yIHRyeSBydW5uaW5nIHdpdGggTk9ERV9PUFRJT05TPVwiLS1kbnMtcmVzdWx0LW9yZGVyPWlwdjRmaXJzdFwiLic7XG5cbiAgICBjYXNlICdFVElNRURPVVQnOlxuICAgIGNhc2UgJ0VDT05OUkVGVVNFRCc6XG4gICAgY2FzZSAnRUNPTk5SRVNFVCc6XG4gICAgY2FzZSAnRUhPU1RVTlJFQUNIJzpcbiAgICBjYXNlICdFTkVUVU5SRUFDSCc6XG4gICAgICByZXR1cm4gJ05ldHdvcmsgdW5yZWFjaGFibGUuIE9uIFdTTCBVYnVudHUsIHRyeSBOT0RFX09QVElPTlM9XCItLWRucy1yZXN1bHQtb3JkZXI9aXB2NGZpcnN0XCIgKFdTTFxcJ3MgSVB2NiBpcyBvZnRlbiBicm9rZW4pLiBJZiBiZWhpbmQgYSBjb3Jwb3JhdGUgcHJveHksIHNldCBIVFRQU19QUk9YWS4nO1xuXG4gICAgY2FzZSAnQ0VSVF9IQVNfRVhQSVJFRCc6XG4gICAgY2FzZSAnQ0VSVF9OT1RfWUVUX1ZBTElEJzpcbiAgICAgIHJldHVybiAnVExTIGNlcnRpZmljYXRlIHRpbWUgZXJyb3Ig4oCUIGxpa2VseSBzeXN0ZW0gY2xvY2sgZHJpZnQuIE9uIFdTTCwgcnVuIGBzdWRvIGh3Y2xvY2sgLXNgLCBvciBzaHV0IGRvd24gV1NMIGZyb20gUG93ZXJTaGVsbCB3aXRoIGB3c2wgLS1zaHV0ZG93bmAgYW5kIHJlc3RhcnQuJztcblxuICAgIGNhc2UgJ1VOQUJMRV9UT19HRVRfSVNTVUVSX0NFUlRfTE9DQUxMWSc6XG4gICAgY2FzZSAnU0VMRl9TSUdORURfQ0VSVF9JTl9DSEFJTic6XG4gICAgY2FzZSAnVU5BQkxFX1RPX1ZFUklGWV9MRUFGX1NJR05BVFVSRSc6XG4gICAgY2FzZSAnREVQVEhfWkVST19TRUxGX1NJR05FRF9DRVJUJzpcbiAgICAgIHJldHVybiAnQ29ycG9yYXRlIEhUVFBTIHByb3h5IGRldGVjdGVkIOKAlCB0aGUgVExTIGNlcnQgaXMgbm90IHRydXN0ZWQgYnkgTm9kZS4gU2V0IE5PREVfRVhUUkFfQ0FfQ0VSVFM9L3BhdGgvdG8vY29ycG9yYXRlLWNhLnBlbSwgb3IgY29uZmlndXJlIEhUVFBTX1BST1hZIGlmIGEgcHJveHkgaXMgcmVxdWlyZWQuJztcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export { AuthService, authService } from './auth-service';
2
- export { runAuthCli } from './auth-cli';
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.runAuthCli = exports.authService = exports.AuthService = void 0;
4
- var auth_service_1 = require("./auth-service");
5
- Object.defineProperty(exports, "AuthService", { enumerable: true, get: function () { return auth_service_1.AuthService; } });
6
- Object.defineProperty(exports, "authService", { enumerable: true, get: function () { return auth_service_1.authService; } });
7
- var auth_cli_1 = require("./auth-cli");
8
- Object.defineProperty(exports, "runAuthCli", { enumerable: true, get: function () { return auth_cli_1.runAuthCli; } });
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXV0aC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBMEQ7QUFBakQsMkdBQUEsV0FBVyxPQUFBO0FBQUUsMkdBQUEsV0FBVyxPQUFBO0FBQ2pDLHVDQUF3QztBQUEvQixzR0FBQSxVQUFVLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBBdXRoU2VydmljZSwgYXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGgtc2VydmljZSc7XG5leHBvcnQgeyBydW5BdXRoQ2xpIH0gZnJvbSAnLi9hdXRoLWNsaSc7XG4iXX0=
@@ -1,53 +0,0 @@
1
- /**
2
- * Environment type
3
- */
4
- export type Environment = 'development' | 'production';
5
- /**
6
- * Configuration interface
7
- */
8
- export interface Config {
9
- environment: Environment;
10
- aws: {
11
- region: string;
12
- appsyncUrl: string;
13
- cognitoUserPoolId: string;
14
- cognitoClientId: string;
15
- cognitoDomain: string;
16
- };
17
- keychain: {
18
- serviceName: string;
19
- };
20
- server: {
21
- port: number;
22
- host: string;
23
- dynamicPort: boolean;
24
- };
25
- claude: {
26
- command: string;
27
- defaultTimeout: number;
28
- };
29
- codex: {
30
- command: string;
31
- defaultTimeout: number;
32
- sessionsDir: string;
33
- approvalTimeoutMs: number;
34
- };
35
- gemini: {
36
- command: string;
37
- defaultTimeout: number;
38
- transcriptDir: string;
39
- };
40
- }
41
- /**
42
- * Get environment from process.env.ENVIRONMENT, defaults to 'production'
43
- */
44
- export declare function getEnvironment(): Environment;
45
- /**
46
- * Load configuration for specific environment
47
- * If no environment specified, uses process.env.ENVIRONMENT or defaults to 'production'
48
- */
49
- export declare function loadConfig(environment?: Environment): Config;
50
- /**
51
- * Get current configuration (auto-initializes if not already loaded)
52
- */
53
- export declare function getConfig(): Config;
@@ -1,123 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getEnvironment = getEnvironment;
7
- exports.loadConfig = loadConfig;
8
- exports.getConfig = getConfig;
9
- const os_1 = __importDefault(require("os"));
10
- const path_1 = __importDefault(require("path"));
11
- // Default configuration values
12
- const DEFAULT_CONFIG = {
13
- development: {
14
- environment: 'development',
15
- aws: {
16
- region: 'us-east-1',
17
- appsyncUrl: 'https://te6rjr37sbfpjc4fiunmb2tgy4.appsync-api.us-east-1.amazonaws.com/graphql',
18
- cognitoUserPoolId: 'us-east-1_yVwWDPvvJ',
19
- cognitoClientId: 'e9r5apv6v5uui3l928r2ris0r',
20
- cognitoDomain: 'codevibe-development.auth.us-east-1.amazoncognito.com',
21
- },
22
- keychain: {
23
- serviceName: 'ai.quantiya.app.codevibe',
24
- },
25
- server: {
26
- port: 3456,
27
- host: '127.0.0.1',
28
- dynamicPort: true,
29
- },
30
- claude: {
31
- command: 'claude',
32
- defaultTimeout: 60000,
33
- },
34
- codex: {
35
- command: 'codex',
36
- defaultTimeout: 60000,
37
- sessionsDir: path_1.default.join(os_1.default.homedir(), '.codex', 'sessions'),
38
- approvalTimeoutMs: 5000,
39
- },
40
- gemini: {
41
- command: 'gemini',
42
- defaultTimeout: 60000,
43
- transcriptDir: path_1.default.join(os_1.default.homedir(), '.gemini', 'tmp'),
44
- },
45
- },
46
- production: {
47
- environment: 'production',
48
- aws: {
49
- region: 'us-east-1',
50
- appsyncUrl: 'https://jwhyxq4sgrgcdosewp5k4ns5ca.appsync-api.us-east-1.amazonaws.com/graphql',
51
- cognitoUserPoolId: 'us-east-1_mNRO0j5og',
52
- cognitoClientId: '5p04dbc9ojptc5r8n7605fg78f',
53
- cognitoDomain: 'codevibe-production.auth.us-east-1.amazoncognito.com',
54
- },
55
- keychain: {
56
- serviceName: 'ai.quantiya.app.codevibe',
57
- },
58
- server: {
59
- port: 3456,
60
- host: '127.0.0.1',
61
- dynamicPort: true,
62
- },
63
- claude: {
64
- command: 'claude',
65
- defaultTimeout: 60000,
66
- },
67
- codex: {
68
- command: 'codex',
69
- defaultTimeout: 60000,
70
- sessionsDir: path_1.default.join(os_1.default.homedir(), '.codex', 'sessions'),
71
- approvalTimeoutMs: 5000,
72
- },
73
- gemini: {
74
- command: 'gemini',
75
- defaultTimeout: 60000,
76
- transcriptDir: path_1.default.join(os_1.default.homedir(), '.gemini', 'tmp'),
77
- },
78
- },
79
- };
80
- // Current configuration (mutable, lazy-initialized)
81
- let currentConfig = null;
82
- let configInitialized = false;
83
- /**
84
- * Get environment from process.env.ENVIRONMENT, defaults to 'production'
85
- */
86
- function getEnvironment() {
87
- const env = process.env.ENVIRONMENT;
88
- if (env === 'development' || env === 'production') {
89
- return env;
90
- }
91
- return 'production';
92
- }
93
- /**
94
- * Load configuration for specific environment
95
- * If no environment specified, uses process.env.ENVIRONMENT or defaults to 'production'
96
- */
97
- function loadConfig(environment) {
98
- const env = environment || getEnvironment();
99
- currentConfig = {
100
- ...DEFAULT_CONFIG[env],
101
- // Allow environment variable overrides
102
- aws: {
103
- ...DEFAULT_CONFIG[env].aws,
104
- region: process.env.AWS_REGION || DEFAULT_CONFIG[env].aws.region,
105
- appsyncUrl: process.env.APPSYNC_URL || DEFAULT_CONFIG[env].aws.appsyncUrl,
106
- cognitoUserPoolId: process.env.COGNITO_USER_POOL_ID || DEFAULT_CONFIG[env].aws.cognitoUserPoolId,
107
- cognitoClientId: process.env.COGNITO_CLIENT_ID || DEFAULT_CONFIG[env].aws.cognitoClientId,
108
- cognitoDomain: process.env.COGNITO_DOMAIN || DEFAULT_CONFIG[env].aws.cognitoDomain,
109
- },
110
- };
111
- configInitialized = true;
112
- return currentConfig;
113
- }
114
- /**
115
- * Get current configuration (auto-initializes if not already loaded)
116
- */
117
- function getConfig() {
118
- if (!configInitialized || !currentConfig) {
119
- loadConfig();
120
- }
121
- return currentConfig;
122
- }
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUE4SEEsd0NBTUM7QUFNRCxnQ0FnQkM7QUFLRCw4QkFLQztBQXBLRCw0Q0FBb0I7QUFDcEIsZ0RBQXdCO0FBZ0R4QiwrQkFBK0I7QUFDL0IsTUFBTSxjQUFjLEdBQWdDO0lBQ2xELFdBQVcsRUFBRTtRQUNYLFdBQVcsRUFBRSxhQUFhO1FBQzFCLEdBQUcsRUFBRTtZQUNILE1BQU0sRUFBRSxXQUFXO1lBQ25CLFVBQVUsRUFBRSxnRkFBZ0Y7WUFDNUYsaUJBQWlCLEVBQUUscUJBQXFCO1lBQ3hDLGVBQWUsRUFBRSwyQkFBMkI7WUFDNUMsYUFBYSxFQUFFLHVEQUF1RDtTQUN2RTtRQUNELFFBQVEsRUFBRTtZQUNSLFdBQVcsRUFBRSwwQkFBMEI7U0FDeEM7UUFDRCxNQUFNLEVBQUU7WUFDTixJQUFJLEVBQUUsSUFBSTtZQUNWLElBQUksRUFBRSxXQUFXO1lBQ2pCLFdBQVcsRUFBRSxJQUFJO1NBQ2xCO1FBQ0QsTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLFFBQVE7WUFDakIsY0FBYyxFQUFFLEtBQUs7U0FDdEI7UUFDRCxLQUFLLEVBQUU7WUFDTCxPQUFPLEVBQUUsT0FBTztZQUNoQixjQUFjLEVBQUUsS0FBSztZQUNyQixXQUFXLEVBQUUsY0FBSSxDQUFDLElBQUksQ0FBQyxZQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxJQUFJO1NBQ3hCO1FBQ0QsTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLFFBQVE7WUFDakIsY0FBYyxFQUFFLEtBQUs7WUFDckIsYUFBYSxFQUFFLGNBQUksQ0FBQyxJQUFJLENBQUMsWUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUM7U0FDekQ7S0FDRjtJQUNELFVBQVUsRUFBRTtRQUNWLFdBQVcsRUFBRSxZQUFZO1FBQ3pCLEdBQUcsRUFBRTtZQUNILE1BQU0sRUFBRSxXQUFXO1lBQ25CLFVBQVUsRUFBRSxnRkFBZ0Y7WUFDNUYsaUJBQWlCLEVBQUUscUJBQXFCO1lBQ3hDLGVBQWUsRUFBRSw0QkFBNEI7WUFDN0MsYUFBYSxFQUFFLHNEQUFzRDtTQUN0RTtRQUNELFFBQVEsRUFBRTtZQUNSLFdBQVcsRUFBRSwwQkFBMEI7U0FDeEM7UUFDRCxNQUFNLEVBQUU7WUFDTixJQUFJLEVBQUUsSUFBSTtZQUNWLElBQUksRUFBRSxXQUFXO1lBQ2pCLFdBQVcsRUFBRSxJQUFJO1NBQ2xCO1FBQ0QsTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLFFBQVE7WUFDakIsY0FBYyxFQUFFLEtBQUs7U0FDdEI7UUFDRCxLQUFLLEVBQUU7WUFDTCxPQUFPLEVBQUUsT0FBTztZQUNoQixjQUFjLEVBQUUsS0FBSztZQUNyQixXQUFXLEVBQUUsY0FBSSxDQUFDLElBQUksQ0FBQyxZQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxJQUFJO1NBQ3hCO1FBQ0QsTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLFFBQVE7WUFDakIsY0FBYyxFQUFFLEtBQUs7WUFDckIsYUFBYSxFQUFFLGNBQUksQ0FBQyxJQUFJLENBQUMsWUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUM7U0FDekQ7S0FDRjtDQUNGLENBQUM7QUFFRixvREFBb0Q7QUFDcEQsSUFBSSxhQUFhLEdBQWtCLElBQUksQ0FBQztBQUN4QyxJQUFJLGlCQUFpQixHQUFHLEtBQUssQ0FBQztBQUU5Qjs7R0FFRztBQUNILFNBQWdCLGNBQWM7SUFDNUIsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUEwQixDQUFDO0lBQ25ELElBQUksR0FBRyxLQUFLLGFBQWEsSUFBSSxHQUFHLEtBQUssWUFBWSxFQUFFLENBQUM7UUFDbEQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBQ0QsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxXQUF5QjtJQUNsRCxNQUFNLEdBQUcsR0FBRyxXQUFXLElBQUksY0FBYyxFQUFFLENBQUM7SUFDNUMsYUFBYSxHQUFHO1FBQ2QsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDO1FBQ3RCLHVDQUF1QztRQUN2QyxHQUFHLEVBQUU7WUFDSCxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHO1lBQzFCLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU07WUFDaEUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVTtZQUN6RSxpQkFBaUIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCO1lBQ2hHLGVBQWUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZTtZQUN6RixhQUFhLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhO1NBQ25GO0tBQ0YsQ0FBQztJQUNGLGlCQUFpQixHQUFHLElBQUksQ0FBQztJQUN6QixPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixTQUFTO0lBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pDLFVBQVUsRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sYUFBYyxDQUFDO0FBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbi8qKlxuICogRW52aXJvbm1lbnQgdHlwZVxuICovXG5leHBvcnQgdHlwZSBFbnZpcm9ubWVudCA9ICdkZXZlbG9wbWVudCcgfCAncHJvZHVjdGlvbic7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBpbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25maWcge1xuICBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQ7XG4gIGF3czoge1xuICAgIHJlZ2lvbjogc3RyaW5nO1xuICAgIGFwcHN5bmNVcmw6IHN0cmluZztcbiAgICBjb2duaXRvVXNlclBvb2xJZDogc3RyaW5nO1xuICAgIGNvZ25pdG9DbGllbnRJZDogc3RyaW5nO1xuICAgIGNvZ25pdG9Eb21haW46IHN0cmluZztcbiAgfTtcbiAga2V5Y2hhaW46IHtcbiAgICBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuICB9O1xuICAvLyBQbHVnaW4tc3BlY2lmaWMgc2VydmVyIGNvbmZpZ3VyYXRpb25cbiAgc2VydmVyOiB7XG4gICAgcG9ydDogbnVtYmVyO1xuICAgIGhvc3Q6IHN0cmluZztcbiAgICBkeW5hbWljUG9ydDogYm9vbGVhbjtcbiAgfTtcbiAgLy8gQ2xhdWRlLXNwZWNpZmljIGNvbmZpZ3VyYXRpb25cbiAgY2xhdWRlOiB7XG4gICAgY29tbWFuZDogc3RyaW5nO1xuICAgIGRlZmF1bHRUaW1lb3V0OiBudW1iZXI7XG4gIH07XG4gIC8vIENvZGV4LXNwZWNpZmljIGNvbmZpZ3VyYXRpb25cbiAgY29kZXg6IHtcbiAgICBjb21tYW5kOiBzdHJpbmc7XG4gICAgZGVmYXVsdFRpbWVvdXQ6IG51bWJlcjtcbiAgICBzZXNzaW9uc0Rpcjogc3RyaW5nO1xuICAgIGFwcHJvdmFsVGltZW91dE1zOiBudW1iZXI7XG4gIH07XG4gIC8vIEdlbWluaS1zcGVjaWZpYyBjb25maWd1cmF0aW9uXG4gIGdlbWluaToge1xuICAgIGNvbW1hbmQ6IHN0cmluZztcbiAgICBkZWZhdWx0VGltZW91dDogbnVtYmVyO1xuICAgIHRyYW5zY3JpcHREaXI6IHN0cmluZztcbiAgfTtcbn1cblxuLy8gRGVmYXVsdCBjb25maWd1cmF0aW9uIHZhbHVlc1xuY29uc3QgREVGQVVMVF9DT05GSUc6IFJlY29yZDxFbnZpcm9ubWVudCwgQ29uZmlnPiA9IHtcbiAgZGV2ZWxvcG1lbnQ6IHtcbiAgICBlbnZpcm9ubWVudDogJ2RldmVsb3BtZW50JyxcbiAgICBhd3M6IHtcbiAgICAgIHJlZ2lvbjogJ3VzLWVhc3QtMScsXG4gICAgICBhcHBzeW5jVXJsOiAnaHR0cHM6Ly90ZTZyanIzN3NiZnBqYzRmaXVubWIydGd5NC5hcHBzeW5jLWFwaS51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9ncmFwaHFsJyxcbiAgICAgIGNvZ25pdG9Vc2VyUG9vbElkOiAndXMtZWFzdC0xX3lWd1dEUHZ2SicsXG4gICAgICBjb2duaXRvQ2xpZW50SWQ6ICdlOXI1YXB2NnY1dXVpM2w5MjhyMnJpczByJyxcbiAgICAgIGNvZ25pdG9Eb21haW46ICdjb2RldmliZS1kZXZlbG9wbWVudC5hdXRoLnVzLWVhc3QtMS5hbWF6b25jb2duaXRvLmNvbScsXG4gICAgfSxcbiAgICBrZXljaGFpbjoge1xuICAgICAgc2VydmljZU5hbWU6ICdhaS5xdWFudGl5YS5hcHAuY29kZXZpYmUnLFxuICAgIH0sXG4gICAgc2VydmVyOiB7XG4gICAgICBwb3J0OiAzNDU2LFxuICAgICAgaG9zdDogJzEyNy4wLjAuMScsXG4gICAgICBkeW5hbWljUG9ydDogdHJ1ZSxcbiAgICB9LFxuICAgIGNsYXVkZToge1xuICAgICAgY29tbWFuZDogJ2NsYXVkZScsXG4gICAgICBkZWZhdWx0VGltZW91dDogNjAwMDAsXG4gICAgfSxcbiAgICBjb2RleDoge1xuICAgICAgY29tbWFuZDogJ2NvZGV4JyxcbiAgICAgIGRlZmF1bHRUaW1lb3V0OiA2MDAwMCxcbiAgICAgIHNlc3Npb25zRGlyOiBwYXRoLmpvaW4ob3MuaG9tZWRpcigpLCAnLmNvZGV4JywgJ3Nlc3Npb25zJyksXG4gICAgICBhcHByb3ZhbFRpbWVvdXRNczogNTAwMCxcbiAgICB9LFxuICAgIGdlbWluaToge1xuICAgICAgY29tbWFuZDogJ2dlbWluaScsXG4gICAgICBkZWZhdWx0VGltZW91dDogNjAwMDAsXG4gICAgICB0cmFuc2NyaXB0RGlyOiBwYXRoLmpvaW4ob3MuaG9tZWRpcigpLCAnLmdlbWluaScsICd0bXAnKSxcbiAgICB9LFxuICB9LFxuICBwcm9kdWN0aW9uOiB7XG4gICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICBhd3M6IHtcbiAgICAgIHJlZ2lvbjogJ3VzLWVhc3QtMScsXG4gICAgICBhcHBzeW5jVXJsOiAnaHR0cHM6Ly9qd2h5eHE0c2dyZ2Nkb3Nld3A1azRuczVjYS5hcHBzeW5jLWFwaS51cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9ncmFwaHFsJyxcbiAgICAgIGNvZ25pdG9Vc2VyUG9vbElkOiAndXMtZWFzdC0xX21OUk8wajVvZycsXG4gICAgICBjb2duaXRvQ2xpZW50SWQ6ICc1cDA0ZGJjOW9qcHRjNXI4bjc2MDVmZzc4ZicsXG4gICAgICBjb2duaXRvRG9tYWluOiAnY29kZXZpYmUtcHJvZHVjdGlvbi5hdXRoLnVzLWVhc3QtMS5hbWF6b25jb2duaXRvLmNvbScsXG4gICAgfSxcbiAgICBrZXljaGFpbjoge1xuICAgICAgc2VydmljZU5hbWU6ICdhaS5xdWFudGl5YS5hcHAuY29kZXZpYmUnLFxuICAgIH0sXG4gICAgc2VydmVyOiB7XG4gICAgICBwb3J0OiAzNDU2LFxuICAgICAgaG9zdDogJzEyNy4wLjAuMScsXG4gICAgICBkeW5hbWljUG9ydDogdHJ1ZSxcbiAgICB9LFxuICAgIGNsYXVkZToge1xuICAgICAgY29tbWFuZDogJ2NsYXVkZScsXG4gICAgICBkZWZhdWx0VGltZW91dDogNjAwMDAsXG4gICAgfSxcbiAgICBjb2RleDoge1xuICAgICAgY29tbWFuZDogJ2NvZGV4JyxcbiAgICAgIGRlZmF1bHRUaW1lb3V0OiA2MDAwMCxcbiAgICAgIHNlc3Npb25zRGlyOiBwYXRoLmpvaW4ob3MuaG9tZWRpcigpLCAnLmNvZGV4JywgJ3Nlc3Npb25zJyksXG4gICAgICBhcHByb3ZhbFRpbWVvdXRNczogNTAwMCxcbiAgICB9LFxuICAgIGdlbWluaToge1xuICAgICAgY29tbWFuZDogJ2dlbWluaScsXG4gICAgICBkZWZhdWx0VGltZW91dDogNjAwMDAsXG4gICAgICB0cmFuc2NyaXB0RGlyOiBwYXRoLmpvaW4ob3MuaG9tZWRpcigpLCAnLmdlbWluaScsICd0bXAnKSxcbiAgICB9LFxuICB9LFxufTtcblxuLy8gQ3VycmVudCBjb25maWd1cmF0aW9uIChtdXRhYmxlLCBsYXp5LWluaXRpYWxpemVkKVxubGV0IGN1cnJlbnRDb25maWc6IENvbmZpZyB8IG51bGwgPSBudWxsO1xubGV0IGNvbmZpZ0luaXRpYWxpemVkID0gZmFsc2U7XG5cbi8qKlxuICogR2V0IGVudmlyb25tZW50IGZyb20gcHJvY2Vzcy5lbnYuRU5WSVJPTk1FTlQsIGRlZmF1bHRzIHRvICdwcm9kdWN0aW9uJ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW52aXJvbm1lbnQoKTogRW52aXJvbm1lbnQge1xuICBjb25zdCBlbnYgPSBwcm9jZXNzLmVudi5FTlZJUk9OTUVOVCBhcyBFbnZpcm9ubWVudDtcbiAgaWYgKGVudiA9PT0gJ2RldmVsb3BtZW50JyB8fCBlbnYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgIHJldHVybiBlbnY7XG4gIH1cbiAgcmV0dXJuICdwcm9kdWN0aW9uJztcbn1cblxuLyoqXG4gKiBMb2FkIGNvbmZpZ3VyYXRpb24gZm9yIHNwZWNpZmljIGVudmlyb25tZW50XG4gKiBJZiBubyBlbnZpcm9ubWVudCBzcGVjaWZpZWQsIHVzZXMgcHJvY2Vzcy5lbnYuRU5WSVJPTk1FTlQgb3IgZGVmYXVsdHMgdG8gJ3Byb2R1Y3Rpb24nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQ29uZmlnKGVudmlyb25tZW50PzogRW52aXJvbm1lbnQpOiBDb25maWcge1xuICBjb25zdCBlbnYgPSBlbnZpcm9ubWVudCB8fCBnZXRFbnZpcm9ubWVudCgpO1xuICBjdXJyZW50Q29uZmlnID0ge1xuICAgIC4uLkRFRkFVTFRfQ09ORklHW2Vudl0sXG4gICAgLy8gQWxsb3cgZW52aXJvbm1lbnQgdmFyaWFibGUgb3ZlcnJpZGVzXG4gICAgYXdzOiB7XG4gICAgICAuLi5ERUZBVUxUX0NPTkZJR1tlbnZdLmF3cyxcbiAgICAgIHJlZ2lvbjogcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTiB8fCBERUZBVUxUX0NPTkZJR1tlbnZdLmF3cy5yZWdpb24sXG4gICAgICBhcHBzeW5jVXJsOiBwcm9jZXNzLmVudi5BUFBTWU5DX1VSTCB8fCBERUZBVUxUX0NPTkZJR1tlbnZdLmF3cy5hcHBzeW5jVXJsLFxuICAgICAgY29nbml0b1VzZXJQb29sSWQ6IHByb2Nlc3MuZW52LkNPR05JVE9fVVNFUl9QT09MX0lEIHx8IERFRkFVTFRfQ09ORklHW2Vudl0uYXdzLmNvZ25pdG9Vc2VyUG9vbElkLFxuICAgICAgY29nbml0b0NsaWVudElkOiBwcm9jZXNzLmVudi5DT0dOSVRPX0NMSUVOVF9JRCB8fCBERUZBVUxUX0NPTkZJR1tlbnZdLmF3cy5jb2duaXRvQ2xpZW50SWQsXG4gICAgICBjb2duaXRvRG9tYWluOiBwcm9jZXNzLmVudi5DT0dOSVRPX0RPTUFJTiB8fCBERUZBVUxUX0NPTkZJR1tlbnZdLmF3cy5jb2duaXRvRG9tYWluLFxuICAgIH0sXG4gIH07XG4gIGNvbmZpZ0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgcmV0dXJuIGN1cnJlbnRDb25maWc7XG59XG5cbi8qKlxuICogR2V0IGN1cnJlbnQgY29uZmlndXJhdGlvbiAoYXV0by1pbml0aWFsaXplcyBpZiBub3QgYWxyZWFkeSBsb2FkZWQpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25maWcoKTogQ29uZmlnIHtcbiAgaWYgKCFjb25maWdJbml0aWFsaXplZCB8fCAhY3VycmVudENvbmZpZykge1xuICAgIGxvYWRDb25maWcoKTtcbiAgfVxuICByZXR1cm4gY3VycmVudENvbmZpZyE7XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export { loadConfig, getConfig, getEnvironment } from './config';
2
- export type { Config, Environment } from './config';
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getEnvironment = exports.getConfig = exports.loadConfig = void 0;
4
- var config_1 = require("./config");
5
- Object.defineProperty(exports, "loadConfig", { enumerable: true, get: function () { return config_1.loadConfig; } });
6
- Object.defineProperty(exports, "getConfig", { enumerable: true, get: function () { return config_1.getConfig; } });
7
- Object.defineProperty(exports, "getEnvironment", { enumerable: true, get: function () { return config_1.getEnvironment; } });
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFpRTtBQUF4RCxvR0FBQSxVQUFVLE9BQUE7QUFBRSxtR0FBQSxTQUFTLE9BQUE7QUFBRSx3R0FBQSxjQUFjLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBsb2FkQ29uZmlnLCBnZXRDb25maWcsIGdldEVudmlyb25tZW50IH0gZnJvbSAnLi9jb25maWcnO1xuZXhwb3J0IHR5cGUgeyBDb25maWcsIEVudmlyb25tZW50IH0gZnJvbSAnLi9jb25maWcnO1xuIl19
@@ -1,118 +0,0 @@
1
- import { EncryptedSessionKey, KeyPair } from '../types';
2
- /**
3
- * Error class for cryptographic operations
4
- */
5
- export declare class CryptoError extends Error {
6
- constructor(message: string);
7
- }
8
- /**
9
- * Current encryption version for future algorithm upgrades
10
- */
11
- export declare const ENCRYPTION_VERSION = 1;
12
- /**
13
- * Service for end-to-end encryption operations
14
- */
15
- export declare class CryptoService {
16
- private static instance;
17
- private constructor();
18
- static getInstance(): CryptoService;
19
- /**
20
- * Generate a new ECDH P-256 key pair
21
- * @returns Object with privateKey (base64), publicKey (base64 raw)
22
- */
23
- generateKeyPair(): KeyPair;
24
- /**
25
- * Generate a random 256-bit session key
26
- * @returns Base64-encoded session key
27
- */
28
- generateSessionKey(): string;
29
- /**
30
- * Derive a shared secret using ECDH and HKDF
31
- * @param privateKeyBase64 Our private key (base64)
32
- * @param publicKeyBase64 Other party's public key (base64)
33
- * @returns 256-bit derived key as Buffer
34
- */
35
- deriveSharedKey(privateKeyBase64: string, publicKeyBase64: string): Buffer;
36
- /**
37
- * Encrypt a session key for a target device using ECDH
38
- * @param sessionKeyBase64 The session key to encrypt (base64)
39
- * @param targetPublicKeyBase64 Target device's public key (base64)
40
- * @returns EncryptedSessionKey containing encrypted key and ephemeral public key
41
- */
42
- encryptSessionKey(sessionKeyBase64: string, targetPublicKeyBase64: string): Omit<EncryptedSessionKey, 'deviceId'>;
43
- /**
44
- * Decrypt a session key using our private key
45
- * @param encryptedSessionKey The encrypted session key data
46
- * @param privateKeyBase64 Our device's private key (base64)
47
- * @returns Decrypted session key (base64)
48
- */
49
- decryptSessionKey(encryptedSessionKey: EncryptedSessionKey, privateKeyBase64: string): string;
50
- /**
51
- * Encrypt content using AES-256-GCM
52
- * @param content String content to encrypt
53
- * @param sessionKeyBase64 Session key (base64)
54
- * @returns Base64-encoded ciphertext (nonce + ciphertext + tag)
55
- */
56
- encryptContent(content: string, sessionKeyBase64: string): string;
57
- /**
58
- * Decrypt content using AES-256-GCM
59
- * @param encryptedContent Base64-encoded ciphertext
60
- * @param sessionKeyBase64 Session key (base64)
61
- * @returns Decrypted string content
62
- */
63
- decryptContent(encryptedContent: string, sessionKeyBase64: string): string;
64
- /**
65
- * Encrypt JSON-serializable metadata
66
- * @param metadata Object to encrypt
67
- * @param sessionKeyBase64 Session key (base64)
68
- * @returns Base64-encoded encrypted JSON
69
- */
70
- encryptMetadata(metadata: Record<string, any>, sessionKeyBase64: string): string;
71
- /**
72
- * Decrypt encrypted metadata
73
- * @param encryptedMetadata Base64-encoded encrypted JSON
74
- * @param sessionKeyBase64 Session key (base64)
75
- * @returns Decrypted object
76
- */
77
- decryptMetadata(encryptedMetadata: string, sessionKeyBase64: string): Record<string, any>;
78
- /**
79
- * Encrypt binary data using AES-256-GCM
80
- * @param data Binary data to encrypt (Buffer)
81
- * @param sessionKeyBase64 Session key (base64)
82
- * @returns Encrypted data (Buffer containing nonce + ciphertext + tag)
83
- */
84
- encryptData(data: Buffer, sessionKeyBase64: string): Buffer;
85
- /**
86
- * Decrypt binary data using AES-256-GCM
87
- * @param encryptedData Encrypted data (Buffer containing nonce + ciphertext + tag)
88
- * @param sessionKeyBase64 Session key (base64)
89
- * @returns Decrypted binary data (Buffer)
90
- */
91
- decryptData(encryptedData: Buffer, sessionKeyBase64: string): Buffer;
92
- /**
93
- * Encrypt data using AES-256-GCM
94
- * @param data Data to encrypt
95
- * @param key Symmetric key (32 bytes)
96
- * @returns Combined nonce + ciphertext + tag
97
- */
98
- private encrypt;
99
- /**
100
- * Decrypt data using AES-256-GCM
101
- * @param data Combined nonce + ciphertext + tag
102
- * @param key Symmetric key (32 bytes)
103
- * @returns Decrypted data
104
- */
105
- private decrypt;
106
- /**
107
- * Serialize a private key for storage
108
- */
109
- serializePrivateKey(privateKeyBase64: string): string;
110
- /**
111
- * Deserialize a private key from storage
112
- */
113
- deserializePrivateKey(base64: string): string;
114
- }
115
- /**
116
- * Export singleton instance
117
- */
118
- export declare const cryptoService: CryptoService;