@optima-chat/commerce-cli 1.12.15 → 1.12.17
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/api/rest/base.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAA0C,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/api/rest/base.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAA0C,MAAM,OAAO,CAAC;AAqBrF;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CA+FxE"}
|
package/dist/api/rest/base.js
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
-
import { ensureValidToken } from '../../utils/config.js';
|
|
2
|
+
import { ensureValidToken, getTokenFromFile } from '../../utils/config.js';
|
|
3
3
|
// ============== 容器环境 401 标记 ==============
|
|
4
4
|
const TOKEN_REFRESH_MARKER = '__TOKEN_REFRESH_NEEDED__';
|
|
5
|
+
/** token 指纹(安全日志用):最后 8 位 + 长度 */
|
|
6
|
+
function tokenFingerprint(token) {
|
|
7
|
+
if (!token)
|
|
8
|
+
return 'null';
|
|
9
|
+
return `...${token.slice(-8)} (len=${token.length})`;
|
|
10
|
+
}
|
|
5
11
|
/**
|
|
6
12
|
* 检测是否运行在 AI 容器环境中
|
|
7
13
|
* ws-bridge.js 在容器启动时设置 WORKSPACE_DIR=/home/aiuser
|
|
@@ -23,6 +29,10 @@ export function createAuthenticatedClient(baseURL) {
|
|
|
23
29
|
});
|
|
24
30
|
// 请求拦截器:自动添加 token
|
|
25
31
|
client.interceptors.request.use(async (config) => {
|
|
32
|
+
// 401 重试时 token 已由拦截器设置,跳过
|
|
33
|
+
if (config._skipAuth) {
|
|
34
|
+
return config;
|
|
35
|
+
}
|
|
26
36
|
// 跳过不需要认证的请求
|
|
27
37
|
const skipAuth = [
|
|
28
38
|
'/api/v1/oauth/device/authorize',
|
|
@@ -53,15 +63,30 @@ export function createAuthenticatedClient(baseURL) {
|
|
|
53
63
|
}, (error) => {
|
|
54
64
|
return Promise.reject(error);
|
|
55
65
|
});
|
|
56
|
-
// 响应拦截器:401
|
|
57
|
-
// AI 通过系统提示词中的重试策略(等 5 秒后重试)来恢复
|
|
66
|
+
// 响应拦截器:401 时在容器内等待新 token 并自动重试
|
|
58
67
|
client.interceptors.response.use((response) => response, async (error) => {
|
|
59
68
|
const originalRequest = error.config;
|
|
60
|
-
if (error.response?.status === 401 && originalRequest && !originalRequest.
|
|
61
|
-
originalRequest.
|
|
69
|
+
if (error.response?.status === 401 && originalRequest && !originalRequest._retried) {
|
|
70
|
+
originalRequest._retried = true;
|
|
62
71
|
if (isContainerEnv()) {
|
|
63
|
-
|
|
72
|
+
const oldToken = originalRequest.headers?.Authorization?.toString().replace('Bearer ', '') || '';
|
|
73
|
+
const fileToken = getTokenFromFile();
|
|
74
|
+
process.stderr.write(`[401-diag] Got 401. ` +
|
|
75
|
+
`sent=${tokenFingerprint(oldToken)} ` +
|
|
76
|
+
`file=${tokenFingerprint(fileToken)} ` +
|
|
77
|
+
`same=${oldToken === fileToken} ` +
|
|
78
|
+
`OPTIMA_TOKEN=${process.env.OPTIMA_TOKEN ? tokenFingerprint(process.env.OPTIMA_TOKEN) : 'unset'}\n`);
|
|
79
|
+
// 1. 先检查 token.json 是否已有不同的 token
|
|
80
|
+
if (fileToken && fileToken !== oldToken) {
|
|
81
|
+
process.stderr.write(`[401-diag] Using different token from file, retrying\n`);
|
|
82
|
+
originalRequest._skipAuth = true;
|
|
83
|
+
originalRequest.headers.Authorization = `Bearer ${fileToken}`;
|
|
84
|
+
return client.request(originalRequest);
|
|
85
|
+
}
|
|
86
|
+
// 2. token.json 没有新 token,输出标记让 shell tool / ws-bridge 触发前端刷新
|
|
87
|
+
// 命令需要快速退出,ws-bridge 在 tool_result 中检测到标记后会通知前端
|
|
64
88
|
process.stderr.write(TOKEN_REFRESH_MARKER + '\n');
|
|
89
|
+
process.stderr.write(`[401-diag] Marker emitted, failing fast for ws-bridge detection\n`);
|
|
65
90
|
}
|
|
66
91
|
}
|
|
67
92
|
return Promise.reject(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/api/rest/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAgE,MAAM,OAAO,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/api/rest/base.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/config.d.ts
CHANGED
|
@@ -11,6 +11,11 @@ interface EnvironmentConfig {
|
|
|
11
11
|
clientId: string;
|
|
12
12
|
}
|
|
13
13
|
export declare const ENV_CONFIG: Record<Environment, EnvironmentConfig>;
|
|
14
|
+
/**
|
|
15
|
+
* 直接从 token.json 读取 access_token,绕过 OPTIMA_TOKEN 环境变量
|
|
16
|
+
* 用于 401 重试时获取由 ws-bridge 本地写入的最新 token
|
|
17
|
+
*/
|
|
18
|
+
export declare function getTokenFromFile(): string | null;
|
|
14
19
|
/**
|
|
15
20
|
* 获取当前环境
|
|
16
21
|
* 优先级:OPTIMA_ENV 环境变量 > token.json 的 env 字段 > 默认 production
|
|
@@ -26,7 +31,8 @@ export declare function getCurrentEnvConfig(): EnvironmentConfig;
|
|
|
26
31
|
export declare function saveTokens(access_token: string, refresh_token: string, expires_in: number, env: Environment, user?: UserData): void;
|
|
27
32
|
/**
|
|
28
33
|
* 获取访问令牌
|
|
29
|
-
*
|
|
34
|
+
* 容器环境:优先 token.json(ws-bridge 实时更新)> OPTIMA_TOKEN 环境变量(spawn 时快照,可能过期)
|
|
35
|
+
* 本地环境:优先 OPTIMA_TOKEN 环境变量 > token.json
|
|
30
36
|
*/
|
|
31
37
|
export declare function getAccessToken(): string | null;
|
|
32
38
|
/**
|
|
@@ -43,6 +49,8 @@ export declare function isTokenExpired(): boolean;
|
|
|
43
49
|
export declare function isAuthenticated(): boolean;
|
|
44
50
|
/**
|
|
45
51
|
* 确保有效的访问令牌
|
|
52
|
+
* 容器环境:优先 token.json(ws-bridge 实时更新),env var 作为 fallback
|
|
53
|
+
* 本地环境:优先 OPTIMA_TOKEN 环境变量(跳过过期检查),否则读 token.json
|
|
46
54
|
* @returns 有效的访问令牌,如果无法获取则返回 null
|
|
47
55
|
* @throws AuthenticationError 当 token 过期时
|
|
48
56
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,OAAO,GAAG,aAAa,CAAC;AAKjE,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAcD,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAmB7D,CAAC;AAoFF;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,WAAW,CAenD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,iBAAiB,CAGvD;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,WAAW,EAChB,IAAI,CAAC,EAAE,QAAQ,GACd,IAAI,CAWN;AAED
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,OAAO,GAAG,aAAa,CAAC;AAKjE,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAcD,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAmB7D,CAAC;AAoFF;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAGhD;AAID;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,WAAW,CAenD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,iBAAiB,CAGvD;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,WAAW,EAChB,IAAI,CAAC,EAAE,QAAQ,GACd,IAAI,CAWN;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAkB9C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAGjD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAkBxC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAGzC;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmD/D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAM7C;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,QAAQ,GAAG,IAAI,CAGzC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAMlC;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAMnC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAGvC"}
|
package/dist/utils/config.js
CHANGED
|
@@ -94,6 +94,15 @@ function deleteOptimaToken() {
|
|
|
94
94
|
// 忽略删除失败
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
|
+
// ============== Token 文件直读(绕过 OPTIMA_TOKEN 环境变量) ==============
|
|
98
|
+
/**
|
|
99
|
+
* 直接从 token.json 读取 access_token,绕过 OPTIMA_TOKEN 环境变量
|
|
100
|
+
* 用于 401 重试时获取由 ws-bridge 本地写入的最新 token
|
|
101
|
+
*/
|
|
102
|
+
export function getTokenFromFile() {
|
|
103
|
+
const token = getOptimaToken();
|
|
104
|
+
return token?.access_token ?? null;
|
|
105
|
+
}
|
|
97
106
|
// ============== 公开 API ==============
|
|
98
107
|
/**
|
|
99
108
|
* 获取当前环境
|
|
@@ -137,14 +146,25 @@ export function saveTokens(access_token, refresh_token, expires_in, env, user) {
|
|
|
137
146
|
}
|
|
138
147
|
/**
|
|
139
148
|
* 获取访问令牌
|
|
140
|
-
*
|
|
149
|
+
* 容器环境:优先 token.json(ws-bridge 实时更新)> OPTIMA_TOKEN 环境变量(spawn 时快照,可能过期)
|
|
150
|
+
* 本地环境:优先 OPTIMA_TOKEN 环境变量 > token.json
|
|
141
151
|
*/
|
|
142
152
|
export function getAccessToken() {
|
|
143
|
-
|
|
153
|
+
const isContainer = !!process.env.WORKSPACE_DIR;
|
|
154
|
+
// 容器环境:优先 token.json(可被 ws-bridge 实时更新)
|
|
155
|
+
if (isContainer) {
|
|
156
|
+
const token = getOptimaToken();
|
|
157
|
+
if (token?.access_token)
|
|
158
|
+
return token.access_token;
|
|
159
|
+
// fallback 到环境变量
|
|
160
|
+
if (process.env.OPTIMA_TOKEN)
|
|
161
|
+
return process.env.OPTIMA_TOKEN;
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
// 本地环境:保持原逻辑
|
|
144
165
|
if (process.env.OPTIMA_TOKEN) {
|
|
145
166
|
return process.env.OPTIMA_TOKEN;
|
|
146
167
|
}
|
|
147
|
-
// 2. 从 token.json 读取
|
|
148
168
|
const token = getOptimaToken();
|
|
149
169
|
return token?.access_token ?? null;
|
|
150
170
|
}
|
|
@@ -159,7 +179,15 @@ export function getTokenExpiresAt() {
|
|
|
159
179
|
* 检查 token 是否过期
|
|
160
180
|
*/
|
|
161
181
|
export function isTokenExpired() {
|
|
162
|
-
|
|
182
|
+
const isContainer = !!process.env.WORKSPACE_DIR;
|
|
183
|
+
// 容器环境:始终检查 token.json 的过期时间
|
|
184
|
+
if (isContainer) {
|
|
185
|
+
const expiresAt = getTokenExpiresAt();
|
|
186
|
+
if (!expiresAt)
|
|
187
|
+
return true;
|
|
188
|
+
return Date.now() >= expiresAt;
|
|
189
|
+
}
|
|
190
|
+
// 本地环境:环境变量 token 不检查过期
|
|
163
191
|
if (process.env.OPTIMA_TOKEN) {
|
|
164
192
|
return false;
|
|
165
193
|
}
|
|
@@ -177,24 +205,44 @@ export function isAuthenticated() {
|
|
|
177
205
|
}
|
|
178
206
|
/**
|
|
179
207
|
* 确保有效的访问令牌
|
|
208
|
+
* 容器环境:优先 token.json(ws-bridge 实时更新),env var 作为 fallback
|
|
209
|
+
* 本地环境:优先 OPTIMA_TOKEN 环境变量(跳过过期检查),否则读 token.json
|
|
180
210
|
* @returns 有效的访问令牌,如果无法获取则返回 null
|
|
181
211
|
* @throws AuthenticationError 当 token 过期时
|
|
182
212
|
*/
|
|
183
213
|
export async function ensureValidToken() {
|
|
184
|
-
|
|
214
|
+
const isContainer = !!process.env.WORKSPACE_DIR;
|
|
215
|
+
// 容器环境:优先 token.json(可被 ws-bridge 实时更新,env var 是 spawn 时快照可能过期)
|
|
216
|
+
if (isContainer) {
|
|
217
|
+
const token = getOptimaToken();
|
|
218
|
+
if (token?.access_token) {
|
|
219
|
+
// 检查过期
|
|
220
|
+
if (Date.now() >= token.expires_at) {
|
|
221
|
+
if (process.env.DEBUG === 'true') {
|
|
222
|
+
console.log('[Token] Token from file expired');
|
|
223
|
+
}
|
|
224
|
+
const { AuthenticationError } = await import('./error.js');
|
|
225
|
+
throw new AuthenticationError('登录已过期,请重新登录: commerce auth login 或 optima');
|
|
226
|
+
}
|
|
227
|
+
return token.access_token;
|
|
228
|
+
}
|
|
229
|
+
// fallback: 环境变量(不检查过期,因为没有 expires_at 信息)
|
|
230
|
+
if (process.env.OPTIMA_TOKEN) {
|
|
231
|
+
return process.env.OPTIMA_TOKEN;
|
|
232
|
+
}
|
|
233
|
+
return null;
|
|
234
|
+
}
|
|
235
|
+
// 本地环境:保持原逻辑
|
|
185
236
|
if (process.env.OPTIMA_TOKEN) {
|
|
186
237
|
if (process.env.DEBUG === 'true') {
|
|
187
238
|
console.log('[Token] Using OPTIMA_TOKEN environment variable');
|
|
188
239
|
}
|
|
189
240
|
return process.env.OPTIMA_TOKEN;
|
|
190
241
|
}
|
|
191
|
-
// 2. 从 token.json 读取
|
|
192
242
|
const token = getOptimaToken();
|
|
193
243
|
if (!token) {
|
|
194
|
-
// 没有 token,需要登录
|
|
195
244
|
return null;
|
|
196
245
|
}
|
|
197
|
-
// 3. 检查是否过期
|
|
198
246
|
if (Date.now() >= token.expires_at) {
|
|
199
247
|
if (process.env.DEBUG === 'true') {
|
|
200
248
|
console.log('[Token] Token expired');
|
package/dist/utils/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAkC7B,uCAAuC;AAEvC,MAAM,CAAC,MAAM,UAAU,GAA2C;IAChE,UAAU,EAAE;QACV,OAAO,EAAE,yBAAyB;QAClC,MAAM,EAAE,wBAAwB;QAChC,WAAW,EAAE,aAAa;QAC1B,QAAQ,EAAE,+BAA+B;KAC1C;IACD,KAAK,EAAE;QACL,OAAO,EAAE,+BAA+B;QACxC,MAAM,EAAE,8BAA8B;QACtC,WAAW,EAAE,wBAAwB;QACrC,QAAQ,EAAE,6BAA6B;KACxC;IACD,WAAW,EAAE;QACX,OAAO,EAAE,0BAA0B;QACnC,MAAM,EAAE,yBAAyB;QACjC,WAAW,EAAE,WAAW;QACxB,QAAQ,EAAE,qBAAqB;KAChC;CACF,CAAC;AAEF,2CAA2C;AAE3C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAElD,qCAAqC;AAErC;;GAEG;AACH,SAAS,qBAAqB,CAAC,QAAkB;IAC/C,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,YAAY,CAAC;QACtB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,aAAa,CAAC;QACvB;YACE,OAAO,YAAY,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,GAAgB;IAC7C,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,YAAY;YACf,OAAO,MAAM,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,aAAa;YAChB,OAAO,IAAI,CAAC;QACd;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED,2CAA2C;AAE3C;;GAEG;AACH,SAAS,cAAc;IACrB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,YAAY;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,KAAkB;IACzC,SAAS;IACT,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,UAAU,CAAC,UAAU,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,SAAS;IACX,CAAC;AACH,CAAC;AAED,uCAAuC;AAEvC;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,eAAe;IACf,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAyB,CAAC;IACzD,IAAI,UAAU,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9E,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,qBAAqB;IACrB,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC;QACf,OAAO,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,cAAc;IACd,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,GAAG,GAAG,qBAAqB,EAAE,CAAC;IACpC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,YAAoB,EACpB,aAAqB,EACrB,UAAkB,EAClB,GAAgB,EAChB,IAAe;IAEf,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC;IAClD,MAAM,KAAK,GAAgB;QACzB,GAAG,EAAE,qBAAqB,CAAC,GAAG,CAAC;QAC/B,YAAY;QACZ,aAAa;QACb,UAAU,EAAE,QAAQ;QACpB,UAAU;QACV,IAAI;KACL,CAAC;IACF,eAAe,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|