@kaitranntt/ccs 7.26.0 → 7.26.1-dev.1
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.
- package/dist/cliproxy/auth/oauth-process.js +1 -1
- package/dist/cliproxy/auth/oauth-process.js.map +1 -1
- package/dist/cliproxy/binary/extractor.d.ts +2 -2
- package/dist/cliproxy/binary/extractor.d.ts.map +1 -1
- package/dist/cliproxy/binary/extractor.js +4 -3
- package/dist/cliproxy/binary/extractor.js.map +1 -1
- package/dist/cliproxy/binary/index.d.ts +1 -1
- package/dist/cliproxy/binary/index.d.ts.map +1 -1
- package/dist/cliproxy/binary/index.js +2 -1
- package/dist/cliproxy/binary/index.js.map +1 -1
- package/dist/cliproxy/binary/installer.d.ts +5 -4
- package/dist/cliproxy/binary/installer.d.ts.map +1 -1
- package/dist/cliproxy/binary/installer.js +29 -17
- package/dist/cliproxy/binary/installer.js.map +1 -1
- package/dist/cliproxy/binary/lifecycle.d.ts.map +1 -1
- package/dist/cliproxy/binary/lifecycle.js +11 -8
- package/dist/cliproxy/binary/lifecycle.js.map +1 -1
- package/dist/cliproxy/binary/tar-extractor.d.ts +2 -1
- package/dist/cliproxy/binary/tar-extractor.d.ts.map +1 -1
- package/dist/cliproxy/binary/tar-extractor.js +3 -3
- package/dist/cliproxy/binary/tar-extractor.js.map +1 -1
- package/dist/cliproxy/binary/types.d.ts +14 -2
- package/dist/cliproxy/binary/types.d.ts.map +1 -1
- package/dist/cliproxy/binary/types.js +19 -3
- package/dist/cliproxy/binary/types.js.map +1 -1
- package/dist/cliproxy/binary/version-cache.d.ts +28 -22
- package/dist/cliproxy/binary/version-cache.d.ts.map +1 -1
- package/dist/cliproxy/binary/version-cache.js +57 -34
- package/dist/cliproxy/binary/version-cache.js.map +1 -1
- package/dist/cliproxy/binary/version-checker.d.ts +9 -3
- package/dist/cliproxy/binary/version-checker.d.ts.map +1 -1
- package/dist/cliproxy/binary/version-checker.js +21 -14
- package/dist/cliproxy/binary/version-checker.js.map +1 -1
- package/dist/cliproxy/binary/zip-extractor.d.ts +2 -1
- package/dist/cliproxy/binary/zip-extractor.d.ts.map +1 -1
- package/dist/cliproxy/binary/zip-extractor.js +3 -3
- package/dist/cliproxy/binary/zip-extractor.js.map +1 -1
- package/dist/cliproxy/binary-manager.d.ts +9 -7
- package/dist/cliproxy/binary-manager.d.ts.map +1 -1
- package/dist/cliproxy/binary-manager.js +28 -20
- package/dist/cliproxy/binary-manager.js.map +1 -1
- package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -1
- package/dist/cliproxy/cliproxy-executor.js +5 -4
- package/dist/cliproxy/cliproxy-executor.js.map +1 -1
- package/dist/cliproxy/service-manager.d.ts.map +1 -1
- package/dist/cliproxy/service-manager.js +6 -1
- package/dist/cliproxy/service-manager.js.map +1 -1
- package/dist/cliproxy/services/binary-service.d.ts +6 -6
- package/dist/cliproxy/services/binary-service.d.ts.map +1 -1
- package/dist/cliproxy/services/binary-service.js +54 -22
- package/dist/cliproxy/services/binary-service.js.map +1 -1
- package/dist/cliproxy/session-tracker.d.ts +4 -1
- package/dist/cliproxy/session-tracker.d.ts.map +1 -1
- package/dist/cliproxy/session-tracker.js +3 -1
- package/dist/cliproxy/session-tracker.js.map +1 -1
- package/dist/cliproxy/types.d.ts +2 -0
- package/dist/cliproxy/types.d.ts.map +1 -1
- package/dist/cliproxy/types.js.map +1 -1
- package/dist/commands/cliproxy-command.d.ts.map +1 -1
- package/dist/commands/cliproxy-command.js +25 -15
- package/dist/commands/cliproxy-command.js.map +1 -1
- package/dist/config/unified-config-loader.d.ts.map +1 -1
- package/dist/config/unified-config-loader.js +4 -0
- package/dist/config/unified-config-loader.js.map +1 -1
- package/dist/ui/assets/{accounts-DmDtOjgI.js → accounts-ClRO9xRe.js} +1 -1
- package/dist/ui/assets/{alert-dialog-BRQuLTE0.js → alert-dialog-DFi20Kyu.js} +1 -1
- package/dist/ui/assets/{api-D8s9_3Vf.js → api-BpnXG9Bg.js} +1 -1
- package/dist/ui/assets/auth-section-Dvxm2fKF.js +1 -0
- package/dist/ui/assets/{backups-section-CD8WE3jo.js → backups-section-DRZ3sdMb.js} +1 -1
- package/dist/ui/assets/cliproxy-DfCPAvnX.js +3 -0
- package/dist/ui/assets/{cliproxy-control-panel-CL1taFji.js → cliproxy-control-panel-TVrFXe7F.js} +1 -1
- package/dist/ui/assets/{confirm-dialog-BrDkVCMB.js → confirm-dialog-DRaXid8b.js} +1 -1
- package/dist/ui/assets/{copilot-CeZzCZ47.js → copilot-CxS7F-wF.js} +3 -3
- package/dist/ui/assets/{globalenv-section-CU9L9qj2.js → globalenv-section-BAdk876f.js} +1 -1
- package/dist/ui/assets/{health-CxRN4wo5.js → health-DtEewGXR.js} +1 -1
- package/dist/ui/assets/{icons-TP-W6wBb.js → icons-MT_USDDP.js} +1 -1
- package/dist/ui/assets/index-9iuiv2P7.js +1 -0
- package/dist/ui/assets/{index-5ld5FlA0.js → index-Bqpm7XFW.js} +14 -14
- package/dist/ui/assets/{index-B8SMrsmS.js → index-BxW8t4Z6.js} +1 -1
- package/dist/ui/assets/{index-BjlrUl8j.css → index-CRayOc33.css} +1 -1
- package/dist/ui/assets/index-CWHCl8iV.js +1 -0
- package/dist/ui/assets/{index-DoymmWw8.js → index-CtbouR3A.js} +1 -1
- package/dist/ui/assets/proxy-status-widget-DNGPVCQ7.js +1 -0
- package/dist/ui/assets/{shared-XYu0X19W.js → shared-Axa1XCh5.js} +1 -1
- package/dist/ui/assets/{switch-BUYlYaJx.js → switch-D7uSKm8B.js} +1 -1
- package/dist/ui/assets/{tanstack-C1q4365B.js → tanstack-ChZysrI1.js} +2 -2
- package/dist/ui/index.html +4 -4
- package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
- package/dist/web-server/routes/cliproxy-stats-routes.js +14 -2
- package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
- package/dist/web-server/routes/proxy-routes.d.ts.map +1 -1
- package/dist/web-server/routes/proxy-routes.js +3 -2
- package/dist/web-server/routes/proxy-routes.js.map +1 -1
- package/package.json +1 -1
- package/dist/ui/assets/auth-section-6c47NtRw.js +0 -1
- package/dist/ui/assets/cliproxy-B8mhLLOW.js +0 -3
- package/dist/ui/assets/index-5SlpA5l0.js +0 -1
- package/dist/ui/assets/index-74OuxlYT.js +0 -1
|
@@ -3,22 +3,23 @@
|
|
|
3
3
|
* Handles reading/writing version cache to avoid excessive GitHub API calls.
|
|
4
4
|
*/
|
|
5
5
|
import { VersionCache, VersionListCache } from './types';
|
|
6
|
+
import type { CLIProxyBackend } from '../types';
|
|
6
7
|
/**
|
|
7
|
-
* Get path to version cache file
|
|
8
|
+
* Get path to version cache file (backend-specific)
|
|
8
9
|
*/
|
|
9
|
-
export declare function getVersionCachePath(): string;
|
|
10
|
+
export declare function getVersionCachePath(backend?: CLIProxyBackend): string;
|
|
10
11
|
/**
|
|
11
|
-
* Get path to version pin file
|
|
12
|
+
* Get path to version pin file (backend-specific)
|
|
12
13
|
*/
|
|
13
|
-
export declare function getVersionPinPath(): string;
|
|
14
|
+
export declare function getVersionPinPath(backend?: CLIProxyBackend): string;
|
|
14
15
|
/**
|
|
15
|
-
* Read version cache if still valid
|
|
16
|
+
* Read version cache if still valid (backend-specific)
|
|
16
17
|
*/
|
|
17
|
-
export declare function readVersionCache(): VersionCache | null;
|
|
18
|
+
export declare function readVersionCache(backend?: CLIProxyBackend): VersionCache | null;
|
|
18
19
|
/**
|
|
19
|
-
* Write version to cache
|
|
20
|
+
* Write version to cache (backend-specific)
|
|
20
21
|
*/
|
|
21
|
-
export declare function writeVersionCache(version: string): void;
|
|
22
|
+
export declare function writeVersionCache(version: string, backend?: CLIProxyBackend): void;
|
|
22
23
|
/**
|
|
23
24
|
* Read installed version from .version file
|
|
24
25
|
*/
|
|
@@ -28,31 +29,36 @@ export declare function readInstalledVersion(binPath: string, fallbackVersion: s
|
|
|
28
29
|
*/
|
|
29
30
|
export declare function writeInstalledVersion(binPath: string, version: string): void;
|
|
30
31
|
/**
|
|
31
|
-
* Get pinned version if one exists
|
|
32
|
+
* Get pinned version if one exists (backend-specific)
|
|
32
33
|
*/
|
|
33
|
-
export declare function getPinnedVersion(): string | null;
|
|
34
|
+
export declare function getPinnedVersion(backend?: CLIProxyBackend): string | null;
|
|
34
35
|
/**
|
|
35
|
-
* Save pinned version to persist user's explicit choice
|
|
36
|
+
* Save pinned version to persist user's explicit choice (backend-specific)
|
|
36
37
|
*/
|
|
37
|
-
export declare function savePinnedVersion(version: string): void;
|
|
38
|
+
export declare function savePinnedVersion(version: string, backend?: CLIProxyBackend): void;
|
|
38
39
|
/**
|
|
39
|
-
* Clear pinned version (unpin)
|
|
40
|
+
* Clear pinned version (unpin) - backend-specific
|
|
40
41
|
*/
|
|
41
|
-
export declare function clearPinnedVersion(): void;
|
|
42
|
+
export declare function clearPinnedVersion(backend?: CLIProxyBackend): void;
|
|
42
43
|
/**
|
|
43
|
-
* Check if a version is currently pinned
|
|
44
|
+
* Check if a version is currently pinned (backend-specific)
|
|
44
45
|
*/
|
|
45
|
-
export declare function isVersionPinned(): boolean;
|
|
46
|
+
export declare function isVersionPinned(backend?: CLIProxyBackend): boolean;
|
|
46
47
|
/**
|
|
47
|
-
*
|
|
48
|
+
* Migrate old shared version pin to backend-specific location.
|
|
49
|
+
* Called once on first run after update.
|
|
48
50
|
*/
|
|
49
|
-
export declare function
|
|
51
|
+
export declare function migrateVersionPin(backend: CLIProxyBackend): void;
|
|
50
52
|
/**
|
|
51
|
-
*
|
|
53
|
+
* Get path to version list cache file (backend-specific)
|
|
52
54
|
*/
|
|
53
|
-
export declare function
|
|
55
|
+
export declare function getVersionListCachePath(backend?: CLIProxyBackend): string;
|
|
54
56
|
/**
|
|
55
|
-
*
|
|
57
|
+
* Read version list cache if still valid (backend-specific)
|
|
56
58
|
*/
|
|
57
|
-
export declare function
|
|
59
|
+
export declare function readVersionListCache(backend?: CLIProxyBackend): VersionListCache | null;
|
|
60
|
+
/**
|
|
61
|
+
* Write version list to cache (backend-specific)
|
|
62
|
+
*/
|
|
63
|
+
export declare function writeVersionListCache(cache: VersionListCache, backend?: CLIProxyBackend): void;
|
|
58
64
|
//# sourceMappingURL=version-cache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-cache.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/binary/version-cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EACL,YAAY,EAGZ,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,wBAAgB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"version-cache.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/binary/version-cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EACL,YAAY,EAGZ,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,eAAiC,GAAG,MAAM,CAEtF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,eAAiC,GAAG,MAAM,CAEpF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,eAAiC,GAAG,YAAY,GAAG,IAAI,CAoBhG;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,eAAiC,GACzC,IAAI,CAaN;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAUrF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAO5E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,eAAiC,GAAG,MAAM,GAAG,IAAI,CAU1F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,eAAiC,GACzC,IAAI,CAQN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,eAAiC,GAAG,IAAI,CASnF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,eAAiC,GAAG,OAAO,CAEnF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAgBhE;AAMD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,eAAiC,GAAG,MAAM,CAE1F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,GAAE,eAAiC,GACzC,gBAAgB,GAAG,IAAI,CAmBzB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE,eAAiC,GACzC,IAAI,CASN"}
|
|
@@ -27,30 +27,31 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
27
27
|
return result;
|
|
28
28
|
};
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
exports.writeVersionListCache = exports.readVersionListCache = exports.getVersionListCachePath = exports.isVersionPinned = exports.clearPinnedVersion = exports.savePinnedVersion = exports.getPinnedVersion = exports.writeInstalledVersion = exports.readInstalledVersion = exports.writeVersionCache = exports.readVersionCache = exports.getVersionPinPath = exports.getVersionCachePath = void 0;
|
|
30
|
+
exports.writeVersionListCache = exports.readVersionListCache = exports.getVersionListCachePath = exports.migrateVersionPin = exports.isVersionPinned = exports.clearPinnedVersion = exports.savePinnedVersion = exports.getPinnedVersion = exports.writeInstalledVersion = exports.readInstalledVersion = exports.writeVersionCache = exports.readVersionCache = exports.getVersionPinPath = exports.getVersionCachePath = void 0;
|
|
31
31
|
const fs = __importStar(require("fs"));
|
|
32
32
|
const path = __importStar(require("path"));
|
|
33
33
|
const config_generator_1 = require("../config-generator");
|
|
34
34
|
const types_1 = require("./types");
|
|
35
|
+
const platform_detector_1 = require("../platform-detector");
|
|
35
36
|
/**
|
|
36
|
-
* Get path to version cache file
|
|
37
|
+
* Get path to version cache file (backend-specific)
|
|
37
38
|
*/
|
|
38
|
-
function getVersionCachePath() {
|
|
39
|
-
return path.join((0, config_generator_1.
|
|
39
|
+
function getVersionCachePath(backend = platform_detector_1.DEFAULT_BACKEND) {
|
|
40
|
+
return path.join((0, config_generator_1.getBinDir)(), backend, '.version-cache.json');
|
|
40
41
|
}
|
|
41
42
|
exports.getVersionCachePath = getVersionCachePath;
|
|
42
43
|
/**
|
|
43
|
-
* Get path to version pin file
|
|
44
|
+
* Get path to version pin file (backend-specific)
|
|
44
45
|
*/
|
|
45
|
-
function getVersionPinPath() {
|
|
46
|
-
return path.join((0, config_generator_1.getBinDir)(), types_1.VERSION_PIN_FILE);
|
|
46
|
+
function getVersionPinPath(backend = platform_detector_1.DEFAULT_BACKEND) {
|
|
47
|
+
return path.join((0, config_generator_1.getBinDir)(), backend, types_1.VERSION_PIN_FILE);
|
|
47
48
|
}
|
|
48
49
|
exports.getVersionPinPath = getVersionPinPath;
|
|
49
50
|
/**
|
|
50
|
-
* Read version cache if still valid
|
|
51
|
+
* Read version cache if still valid (backend-specific)
|
|
51
52
|
*/
|
|
52
|
-
function readVersionCache() {
|
|
53
|
-
const cachePath = getVersionCachePath();
|
|
53
|
+
function readVersionCache(backend = platform_detector_1.DEFAULT_BACKEND) {
|
|
54
|
+
const cachePath = getVersionCachePath(backend);
|
|
54
55
|
if (!fs.existsSync(cachePath)) {
|
|
55
56
|
return null;
|
|
56
57
|
}
|
|
@@ -70,10 +71,10 @@ function readVersionCache() {
|
|
|
70
71
|
}
|
|
71
72
|
exports.readVersionCache = readVersionCache;
|
|
72
73
|
/**
|
|
73
|
-
* Write version to cache
|
|
74
|
+
* Write version to cache (backend-specific)
|
|
74
75
|
*/
|
|
75
|
-
function writeVersionCache(version) {
|
|
76
|
-
const cachePath = getVersionCachePath();
|
|
76
|
+
function writeVersionCache(version, backend = platform_detector_1.DEFAULT_BACKEND) {
|
|
77
|
+
const cachePath = getVersionCachePath(backend);
|
|
77
78
|
const cache = {
|
|
78
79
|
latestVersion: version,
|
|
79
80
|
checkedAt: Date.now(),
|
|
@@ -117,10 +118,10 @@ function writeInstalledVersion(binPath, version) {
|
|
|
117
118
|
}
|
|
118
119
|
exports.writeInstalledVersion = writeInstalledVersion;
|
|
119
120
|
/**
|
|
120
|
-
* Get pinned version if one exists
|
|
121
|
+
* Get pinned version if one exists (backend-specific)
|
|
121
122
|
*/
|
|
122
|
-
function getPinnedVersion() {
|
|
123
|
-
const pinPath = getVersionPinPath();
|
|
123
|
+
function getPinnedVersion(backend = platform_detector_1.DEFAULT_BACKEND) {
|
|
124
|
+
const pinPath = getVersionPinPath(backend);
|
|
124
125
|
if (!fs.existsSync(pinPath)) {
|
|
125
126
|
return null;
|
|
126
127
|
}
|
|
@@ -133,10 +134,10 @@ function getPinnedVersion() {
|
|
|
133
134
|
}
|
|
134
135
|
exports.getPinnedVersion = getPinnedVersion;
|
|
135
136
|
/**
|
|
136
|
-
* Save pinned version to persist user's explicit choice
|
|
137
|
+
* Save pinned version to persist user's explicit choice (backend-specific)
|
|
137
138
|
*/
|
|
138
|
-
function savePinnedVersion(version) {
|
|
139
|
-
const pinPath = getVersionPinPath();
|
|
139
|
+
function savePinnedVersion(version, backend = platform_detector_1.DEFAULT_BACKEND) {
|
|
140
|
+
const pinPath = getVersionPinPath(backend);
|
|
140
141
|
try {
|
|
141
142
|
fs.mkdirSync(path.dirname(pinPath), { recursive: true });
|
|
142
143
|
fs.writeFileSync(pinPath, version, 'utf8');
|
|
@@ -147,10 +148,10 @@ function savePinnedVersion(version) {
|
|
|
147
148
|
}
|
|
148
149
|
exports.savePinnedVersion = savePinnedVersion;
|
|
149
150
|
/**
|
|
150
|
-
* Clear pinned version (unpin)
|
|
151
|
+
* Clear pinned version (unpin) - backend-specific
|
|
151
152
|
*/
|
|
152
|
-
function clearPinnedVersion() {
|
|
153
|
-
const pinPath = getVersionPinPath();
|
|
153
|
+
function clearPinnedVersion(backend = platform_detector_1.DEFAULT_BACKEND) {
|
|
154
|
+
const pinPath = getVersionPinPath(backend);
|
|
154
155
|
if (fs.existsSync(pinPath)) {
|
|
155
156
|
try {
|
|
156
157
|
fs.unlinkSync(pinPath);
|
|
@@ -162,26 +163,48 @@ function clearPinnedVersion() {
|
|
|
162
163
|
}
|
|
163
164
|
exports.clearPinnedVersion = clearPinnedVersion;
|
|
164
165
|
/**
|
|
165
|
-
* Check if a version is currently pinned
|
|
166
|
+
* Check if a version is currently pinned (backend-specific)
|
|
166
167
|
*/
|
|
167
|
-
function isVersionPinned() {
|
|
168
|
-
return getPinnedVersion() !== null;
|
|
168
|
+
function isVersionPinned(backend = platform_detector_1.DEFAULT_BACKEND) {
|
|
169
|
+
return getPinnedVersion(backend) !== null;
|
|
169
170
|
}
|
|
170
171
|
exports.isVersionPinned = isVersionPinned;
|
|
172
|
+
/**
|
|
173
|
+
* Migrate old shared version pin to backend-specific location.
|
|
174
|
+
* Called once on first run after update.
|
|
175
|
+
*/
|
|
176
|
+
function migrateVersionPin(backend) {
|
|
177
|
+
const oldPinPath = path.join((0, config_generator_1.getBinDir)(), types_1.VERSION_PIN_FILE);
|
|
178
|
+
if (!fs.existsSync(oldPinPath))
|
|
179
|
+
return;
|
|
180
|
+
try {
|
|
181
|
+
const oldVersion = fs.readFileSync(oldPinPath, 'utf8').trim();
|
|
182
|
+
if (!oldVersion)
|
|
183
|
+
return;
|
|
184
|
+
// Save to new backend-specific location
|
|
185
|
+
savePinnedVersion(oldVersion, backend);
|
|
186
|
+
// Delete old shared file
|
|
187
|
+
fs.unlinkSync(oldPinPath);
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
// Silent fail - not critical
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
exports.migrateVersionPin = migrateVersionPin;
|
|
171
194
|
// ==================== Version List Cache ====================
|
|
172
195
|
const VERSION_LIST_CACHE_FILE = '.version-list-cache.json';
|
|
173
196
|
/**
|
|
174
|
-
* Get path to version list cache file
|
|
197
|
+
* Get path to version list cache file (backend-specific)
|
|
175
198
|
*/
|
|
176
|
-
function getVersionListCachePath() {
|
|
177
|
-
return path.join((0, config_generator_1.
|
|
199
|
+
function getVersionListCachePath(backend = platform_detector_1.DEFAULT_BACKEND) {
|
|
200
|
+
return path.join((0, config_generator_1.getBinDir)(), backend, VERSION_LIST_CACHE_FILE);
|
|
178
201
|
}
|
|
179
202
|
exports.getVersionListCachePath = getVersionListCachePath;
|
|
180
203
|
/**
|
|
181
|
-
* Read version list cache if still valid
|
|
204
|
+
* Read version list cache if still valid (backend-specific)
|
|
182
205
|
*/
|
|
183
|
-
function readVersionListCache() {
|
|
184
|
-
const cachePath = getVersionListCachePath();
|
|
206
|
+
function readVersionListCache(backend = platform_detector_1.DEFAULT_BACKEND) {
|
|
207
|
+
const cachePath = getVersionListCachePath(backend);
|
|
185
208
|
if (!fs.existsSync(cachePath)) {
|
|
186
209
|
return null;
|
|
187
210
|
}
|
|
@@ -200,10 +223,10 @@ function readVersionListCache() {
|
|
|
200
223
|
}
|
|
201
224
|
exports.readVersionListCache = readVersionListCache;
|
|
202
225
|
/**
|
|
203
|
-
* Write version list to cache
|
|
226
|
+
* Write version list to cache (backend-specific)
|
|
204
227
|
*/
|
|
205
|
-
function writeVersionListCache(cache) {
|
|
206
|
-
const cachePath = getVersionListCachePath();
|
|
228
|
+
function writeVersionListCache(cache, backend = platform_detector_1.DEFAULT_BACKEND) {
|
|
229
|
+
const cachePath = getVersionListCachePath(backend);
|
|
207
230
|
try {
|
|
208
231
|
fs.mkdirSync(path.dirname(cachePath), { recursive: true });
|
|
209
232
|
fs.writeFileSync(cachePath, JSON.stringify(cache), 'utf8');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-cache.js","sourceRoot":"","sources":["../../../src/cliproxy/binary/version-cache.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"version-cache.js","sourceRoot":"","sources":["../../../src/cliproxy/binary/version-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Handles checking GitHub API for latest version and comparing semver.
|
|
4
4
|
*/
|
|
5
5
|
import { UpdateCheckResult, VersionListResult } from './types';
|
|
6
|
+
import type { CLIProxyBackend } from '../types';
|
|
6
7
|
/**
|
|
7
8
|
* Compare semver versions (true if latest > current)
|
|
8
9
|
* Handles CLIProxyAPIPlus versioning: strips -0 suffix before comparison
|
|
@@ -15,16 +16,21 @@ export declare function isNewerVersion(latest: string, current: string): boolean
|
|
|
15
16
|
export declare function isVersionFaulty(version: string): boolean;
|
|
16
17
|
/**
|
|
17
18
|
* Fetch latest version from GitHub API
|
|
19
|
+
* @param verbose Enable verbose logging
|
|
20
|
+
* @param backend Backend to fetch version for (uses correct GitHub repo)
|
|
18
21
|
*/
|
|
19
|
-
export declare function fetchLatestVersion(verbose?: boolean): Promise<string>;
|
|
22
|
+
export declare function fetchLatestVersion(verbose?: boolean, backend?: CLIProxyBackend): Promise<string>;
|
|
20
23
|
/**
|
|
21
24
|
* Check for updates by comparing installed version with latest release
|
|
22
25
|
* Uses cache to avoid hitting GitHub API on every run
|
|
26
|
+
* Cache is backend-specific to handle different repos for original vs plus
|
|
23
27
|
*/
|
|
24
|
-
export declare function checkForUpdates(binPath: string, configVersion: string, verbose?: boolean): Promise<UpdateCheckResult>;
|
|
28
|
+
export declare function checkForUpdates(binPath: string, configVersion: string, verbose?: boolean, backend?: CLIProxyBackend): Promise<UpdateCheckResult>;
|
|
25
29
|
/**
|
|
26
30
|
* Fetch all available versions from GitHub releases
|
|
27
31
|
* Caches result for 1 hour to avoid rate limiting
|
|
32
|
+
* @param verbose Enable verbose logging
|
|
33
|
+
* @param backend Backend to fetch versions for (uses correct GitHub repo)
|
|
28
34
|
*/
|
|
29
|
-
export declare function fetchAllVersions(verbose?: boolean): Promise<VersionListResult>;
|
|
35
|
+
export declare function fetchAllVersions(verbose?: boolean, backend?: CLIProxyBackend): Promise<VersionListResult>;
|
|
30
36
|
//# sourceMappingURL=version-checker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-checker.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/binary/version-checker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,
|
|
1
|
+
{"version":3,"file":"version-checker.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/binary/version-checker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAoB,MAAM,SAAS,CAAC;AAMjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAkBvE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAKxD;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,UAAQ,EACf,OAAO,GAAE,eAAiC,GACzC,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,OAAO,UAAQ,EACf,OAAO,GAAE,eAAiC,GACzC,OAAO,CAAC,iBAAiB,CAAC,CA8B5B;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,UAAQ,EACf,OAAO,GAAE,eAAiC,GACzC,OAAO,CAAC,iBAAiB,CAAC,CAqC5B"}
|
|
@@ -46,9 +46,12 @@ function isVersionFaulty(version) {
|
|
|
46
46
|
exports.isVersionFaulty = isVersionFaulty;
|
|
47
47
|
/**
|
|
48
48
|
* Fetch latest version from GitHub API
|
|
49
|
+
* @param verbose Enable verbose logging
|
|
50
|
+
* @param backend Backend to fetch version for (uses correct GitHub repo)
|
|
49
51
|
*/
|
|
50
|
-
async function fetchLatestVersion(verbose = false) {
|
|
51
|
-
const
|
|
52
|
+
async function fetchLatestVersion(verbose = false, backend = platform_detector_1.DEFAULT_BACKEND) {
|
|
53
|
+
const urls = (0, types_1.getGitHubApiUrls)(backend);
|
|
54
|
+
const response = await (0, downloader_1.fetchJson)(urls.latestRelease, verbose);
|
|
52
55
|
// Extract version from tag_name (format: "v6.5.27" or "6.5.27")
|
|
53
56
|
const tagName = response.tag_name;
|
|
54
57
|
if (!tagName) {
|
|
@@ -60,11 +63,12 @@ exports.fetchLatestVersion = fetchLatestVersion;
|
|
|
60
63
|
/**
|
|
61
64
|
* Check for updates by comparing installed version with latest release
|
|
62
65
|
* Uses cache to avoid hitting GitHub API on every run
|
|
66
|
+
* Cache is backend-specific to handle different repos for original vs plus
|
|
63
67
|
*/
|
|
64
|
-
async function checkForUpdates(binPath, configVersion, verbose = false) {
|
|
68
|
+
async function checkForUpdates(binPath, configVersion, verbose = false, backend = platform_detector_1.DEFAULT_BACKEND) {
|
|
65
69
|
const currentVersion = (0, version_cache_1.readInstalledVersion)(binPath, configVersion);
|
|
66
|
-
// Try cache first
|
|
67
|
-
const cache = (0, version_cache_1.readVersionCache)();
|
|
70
|
+
// Try cache first (backend-specific)
|
|
71
|
+
const cache = (0, version_cache_1.readVersionCache)(backend);
|
|
68
72
|
if (cache) {
|
|
69
73
|
if (verbose) {
|
|
70
74
|
console.error(`[cliproxy] Using cached version: ${cache.latestVersion}`);
|
|
@@ -77,10 +81,10 @@ async function checkForUpdates(binPath, configVersion, verbose = false) {
|
|
|
77
81
|
checkedAt: cache.checkedAt,
|
|
78
82
|
};
|
|
79
83
|
}
|
|
80
|
-
// Fetch from GitHub API
|
|
81
|
-
const latestVersion = await fetchLatestVersion(verbose);
|
|
84
|
+
// Fetch from GitHub API (backend-specific repo)
|
|
85
|
+
const latestVersion = await fetchLatestVersion(verbose, backend);
|
|
82
86
|
const now = Date.now();
|
|
83
|
-
(0, version_cache_1.writeVersionCache)(latestVersion);
|
|
87
|
+
(0, version_cache_1.writeVersionCache)(latestVersion, backend);
|
|
84
88
|
return {
|
|
85
89
|
hasUpdate: isNewerVersion(latestVersion, currentVersion),
|
|
86
90
|
currentVersion,
|
|
@@ -93,18 +97,21 @@ exports.checkForUpdates = checkForUpdates;
|
|
|
93
97
|
/**
|
|
94
98
|
* Fetch all available versions from GitHub releases
|
|
95
99
|
* Caches result for 1 hour to avoid rate limiting
|
|
100
|
+
* @param verbose Enable verbose logging
|
|
101
|
+
* @param backend Backend to fetch versions for (uses correct GitHub repo)
|
|
96
102
|
*/
|
|
97
|
-
async function fetchAllVersions(verbose = false) {
|
|
98
|
-
// Try cache first
|
|
99
|
-
const cache = (0, version_cache_1.readVersionListCache)();
|
|
103
|
+
async function fetchAllVersions(verbose = false, backend = platform_detector_1.DEFAULT_BACKEND) {
|
|
104
|
+
// Try cache first (backend-specific)
|
|
105
|
+
const cache = (0, version_cache_1.readVersionListCache)(backend);
|
|
100
106
|
if (cache) {
|
|
101
107
|
if (verbose) {
|
|
102
108
|
console.error(`[cliproxy] Using cached version list (${cache.versions.length} versions)`);
|
|
103
109
|
}
|
|
104
110
|
return { ...cache, fromCache: true };
|
|
105
111
|
}
|
|
106
|
-
// Fetch from GitHub API
|
|
107
|
-
const
|
|
112
|
+
// Fetch from GitHub API (backend-specific repo)
|
|
113
|
+
const urls = (0, types_1.getGitHubApiUrls)(backend);
|
|
114
|
+
const response = await (0, downloader_1.fetchJson)(urls.allReleases, verbose);
|
|
108
115
|
// Extract and normalize versions
|
|
109
116
|
const releases = response;
|
|
110
117
|
const versions = releases
|
|
@@ -121,7 +128,7 @@ async function fetchAllVersions(verbose = false) {
|
|
|
121
128
|
fromCache: false,
|
|
122
129
|
checkedAt: Date.now(),
|
|
123
130
|
};
|
|
124
|
-
(0, version_cache_1.writeVersionListCache)(result);
|
|
131
|
+
(0, version_cache_1.writeVersionListCache)(result, backend);
|
|
125
132
|
return result;
|
|
126
133
|
}
|
|
127
134
|
exports.fetchAllVersions = fetchAllVersions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-checker.js","sourceRoot":"","sources":["../../../src/cliproxy/binary/version-checker.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,6CAAyC;AACzC,mDAMyB;AACzB,
|
|
1
|
+
{"version":3,"file":"version-checker.js","sourceRoot":"","sources":["../../../src/cliproxy/binary/version-checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
* Zip Archive Extractor
|
|
3
3
|
* Handles extraction of zip archives using Node.js built-in modules.
|
|
4
4
|
*/
|
|
5
|
+
import type { CLIProxyBackend } from '../types';
|
|
5
6
|
/**
|
|
6
7
|
* Extract zip archive using Node.js (simple implementation)
|
|
7
8
|
*/
|
|
8
|
-
export declare function extractZip(archivePath: string, destDir: string, verbose?: boolean): Promise<void>;
|
|
9
|
+
export declare function extractZip(archivePath: string, destDir: string, verbose?: boolean, backend?: CLIProxyBackend): Promise<void>;
|
|
9
10
|
//# sourceMappingURL=zip-extractor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip-extractor.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/binary/zip-extractor.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"zip-extractor.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/binary/zip-extractor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD;;GAEG;AACH,wBAAgB,UAAU,CACxB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,UAAQ,EACf,OAAO,GAAE,eAAiC,GACzC,OAAO,CAAC,IAAI,CAAC,CAiFf"}
|
|
@@ -35,10 +35,10 @@ const platform_detector_1 = require("../platform-detector");
|
|
|
35
35
|
/**
|
|
36
36
|
* Extract zip archive using Node.js (simple implementation)
|
|
37
37
|
*/
|
|
38
|
-
function extractZip(archivePath, destDir, verbose = false) {
|
|
38
|
+
function extractZip(archivePath, destDir, verbose = false, backend = platform_detector_1.DEFAULT_BACKEND) {
|
|
39
39
|
return new Promise((resolve, reject) => {
|
|
40
|
-
const execName = (0, platform_detector_1.getExecutableName)();
|
|
41
|
-
const archiveBinaryName = (0, platform_detector_1.getArchiveBinaryName)();
|
|
40
|
+
const execName = (0, platform_detector_1.getExecutableName)(backend);
|
|
41
|
+
const archiveBinaryName = (0, platform_detector_1.getArchiveBinaryName)(backend);
|
|
42
42
|
const buffer = fs.readFileSync(archivePath);
|
|
43
43
|
// Find End of Central Directory record (EOCD)
|
|
44
44
|
let eocdOffset = buffer.length - 22;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip-extractor.js","sourceRoot":"","sources":["../../../src/cliproxy/binary/zip-extractor.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,2CAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"zip-extractor.js","sourceRoot":"","sources":["../../../src/cliproxy/binary/zip-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* Pattern: Mirrors npm install behavior (fast check, download only when needed)
|
|
6
6
|
*/
|
|
7
7
|
import { BinaryInfo, BinaryManagerConfig } from './types';
|
|
8
|
-
import { UpdateCheckResult, getPinnedVersion, savePinnedVersion, clearPinnedVersion, isVersionPinned, getVersionPinPath } from './binary';
|
|
9
|
-
type CLIProxyBackend
|
|
8
|
+
import { UpdateCheckResult, getPinnedVersion, savePinnedVersion, clearPinnedVersion, isVersionPinned, getVersionPinPath, migrateVersionPin } from './binary';
|
|
9
|
+
import type { CLIProxyBackend } from './types';
|
|
10
10
|
/**
|
|
11
11
|
* Binary Manager class for CLIProxyAPI binary lifecycle
|
|
12
12
|
*/
|
|
@@ -30,13 +30,13 @@ export declare class BinaryManager {
|
|
|
30
30
|
/** Convenience function respecting version pin */
|
|
31
31
|
export declare function ensureCLIProxyBinary(verbose?: boolean): Promise<string>;
|
|
32
32
|
/** Check if CLIProxyAPI binary is installed */
|
|
33
|
-
export declare function isCLIProxyInstalled(): boolean;
|
|
33
|
+
export declare function isCLIProxyInstalled(backend?: CLIProxyBackend): boolean;
|
|
34
34
|
/** Get CLIProxyAPI binary path (may not exist) */
|
|
35
|
-
export declare function getCLIProxyPath(): string;
|
|
35
|
+
export declare function getCLIProxyPath(backend?: CLIProxyBackend): string;
|
|
36
36
|
/** Get installed CLIProxyAPI version from .version file */
|
|
37
|
-
export declare function getInstalledCliproxyVersion(): string;
|
|
37
|
+
export declare function getInstalledCliproxyVersion(backend?: CLIProxyBackend): string;
|
|
38
38
|
/** Install a specific version of CLIProxyAPI */
|
|
39
|
-
export declare function installCliproxyVersion(version: string, verbose?: boolean): Promise<void>;
|
|
39
|
+
export declare function installCliproxyVersion(version: string, verbose?: boolean, backend?: CLIProxyBackend): Promise<void>;
|
|
40
40
|
/** Fetch the latest CLIProxyAPI version from GitHub API */
|
|
41
41
|
export declare function fetchLatestCliproxyVersion(): Promise<string>;
|
|
42
42
|
/** Update check result for API response */
|
|
@@ -46,12 +46,14 @@ export interface CliproxyUpdateCheckResult {
|
|
|
46
46
|
latestVersion: string;
|
|
47
47
|
fromCache: boolean;
|
|
48
48
|
checkedAt: number;
|
|
49
|
+
backend: CLIProxyBackend;
|
|
50
|
+
backendLabel: string;
|
|
49
51
|
isStable: boolean;
|
|
50
52
|
maxStableVersion: string;
|
|
51
53
|
stabilityMessage?: string;
|
|
52
54
|
}
|
|
53
55
|
/** Check for CLIProxyAPI binary updates */
|
|
54
56
|
export declare function checkCliproxyUpdate(): Promise<CliproxyUpdateCheckResult>;
|
|
55
|
-
export { getVersionPinPath, getPinnedVersion, savePinnedVersion, clearPinnedVersion, isVersionPinned, };
|
|
57
|
+
export { getVersionPinPath, getPinnedVersion, savePinnedVersion, clearPinnedVersion, isVersionPinned, migrateVersionPin, };
|
|
56
58
|
export default BinaryManager;
|
|
57
59
|
//# sourceMappingURL=binary-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary-manager.d.ts","sourceRoot":"","sources":["../../src/cliproxy/binary-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAK1D,OAAO,EACL,iBAAiB,EAMjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,
|
|
1
|
+
{"version":3,"file":"binary-manager.d.ts","sourceRoot":"","sources":["../../src/cliproxy/binary-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAK1D,OAAO,EACL,iBAAiB,EAMjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EAGjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAqC/C;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,OAAO,CAAkB;gBAErB,MAAM,GAAE,OAAO,CAAC,mBAAmB,CAAM,EAAE,OAAO,CAAC,EAAE,eAAe;IAMhF,2EAA2E;IACrE,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAIrC,2EAA2E;IACrE,eAAe,IAAI,OAAO,CAAC,iBAAiB,CAAC;IASnD,yCAAyC;IACzC,aAAa,IAAI,MAAM;IAIvB,6BAA6B;IAC7B,iBAAiB,IAAI,OAAO;IAI5B,mCAAmC;IAC7B,aAAa,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIjD,+CAA+C;IAC/C,YAAY,IAAI,IAAI;CAGrB;AAED,kDAAkD;AAClD,wBAAsB,oBAAoB,CAAC,OAAO,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB3E;AAED,+CAA+C;AAC/C,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAGtE;AAED,kDAAkD;AAClD,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CAGjE;AAED,2DAA2D;AAC3D,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CAM7E;AAED,gDAAgD;AAChD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,OAAO,UAAQ,EACf,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED,2DAA2D;AAC3D,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,MAAM,CAAC,CAIlE;AAED,2CAA2C;AAC3C,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAElB,OAAO,EAAE,eAAe,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IAErB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,2CAA2C;AAC3C,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAqB9E;AAGD,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,GAClB,CAAC;AAEF,eAAe,aAAa,CAAC"}
|