@lumenkey/cli 0.1.7 → 0.1.9

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,4 +1,5 @@
1
- import { billingSentence, blankPromptSentence, errorSentence, hasErrorSentence, internalUpstreamError, langFlag, textCatalogMissDetail, transportFailureDetail, ui } from './locale.js';
1
+ import { EnvHttpProxyAgent, fetch as undiciFetch } from 'undici';
2
+ import { billingSentence, blankPromptSentence, errorSentence, hasErrorSentence, internalUpstreamError, isBlankPrompt, langFlag, proxyTransportDetail, textCatalogMissDetail, transportFailureDetail, ui } from './locale.js';
2
3
  import { normalizeGatewayOrigin } from './origin.js';
3
4
  export function parseChatBilling(value) {
4
5
  if (value === undefined)
@@ -52,6 +53,112 @@ function assertIdempotencyKey(key) {
52
53
  throw new LumenKeyError('IDEMPOTENCY_KEY_INVALID');
53
54
  if (Buffer.byteLength(key) > 128)
54
55
  throw new LumenKeyError('IDEMPOTENCY_KEY_TOO_LONG');
56
+ if (!/^[\x21-\x7E]+$/.test(key))
57
+ throw new LumenKeyError('IDEMPOTENCY_INPUT_INVALID');
58
+ }
59
+ function envPresent(name) {
60
+ const value = process.env[name];
61
+ return typeof value === 'string' && value.trim() ? value.trim() : undefined;
62
+ }
63
+ function configuredProxy() {
64
+ for (const name of ['https_proxy', 'HTTPS_PROXY', 'http_proxy', 'HTTP_PROXY', 'all_proxy', 'ALL_PROXY']) {
65
+ const value = envPresent(name);
66
+ if (value)
67
+ return value;
68
+ }
69
+ return undefined;
70
+ }
71
+ // EnvHttpProxyAgent reads http_proxy/https_proxy before the uppercase names and does not read ALL_PROXY.
72
+ function proxyApplies(target) {
73
+ let url;
74
+ try {
75
+ url = new URL(target);
76
+ }
77
+ catch {
78
+ return false;
79
+ }
80
+ const httpProxy = envPresent('http_proxy') ?? envPresent('HTTP_PROXY');
81
+ const httpsProxy = envPresent('https_proxy') ?? envPresent('HTTPS_PROXY') ?? httpProxy;
82
+ const selected = url.protocol === 'https:' ? httpsProxy : url.protocol === 'http:' ? httpProxy : undefined;
83
+ if (!selected)
84
+ return false;
85
+ const noProxy = process.env.no_proxy ?? process.env.NO_PROXY ?? '';
86
+ if (noProxy === '*')
87
+ return false;
88
+ const hostname = url.host.replace(/:\d*$/, '').toLowerCase();
89
+ const port = Number.parseInt(url.port, 10) || (url.protocol === 'https:' ? 443 : url.protocol === 'http:' ? 80 : 0);
90
+ for (const entry of noProxy.split(/[,\s]/)) {
91
+ if (!entry)
92
+ continue;
93
+ const parsed = entry.match(/^(.+):(\d+)$/);
94
+ const host = (parsed ? parsed[1] : entry).replace(/^\*?\./, '').toLowerCase();
95
+ const entryPort = parsed ? Number.parseInt(parsed[2], 10) : 0;
96
+ if (entryPort && entryPort !== port)
97
+ continue;
98
+ if (hostname === host || hostname.slice(-(host.length + 1)) === `.${host}`)
99
+ return false;
100
+ }
101
+ return true;
102
+ }
103
+ export function redactPublicDetail(message, secret) {
104
+ if (typeof message !== 'string')
105
+ return '';
106
+ let short = secret ? message.split(secret).join('[redacted]') : message;
107
+ short = short
108
+ .replace(/\u001b\[[0-?]*[ -/]*[@-~]/g, '')
109
+ .replace(/[\u0000-\u001f\u007f-\u009f]/g, ' ')
110
+ .replace(/\b(?:https?|postgres(?:ql)?|redis):\/\/\S+/gi, '[redacted]')
111
+ .replace(/\bBearer\s+\S+/gi, 'Bearer [redacted]')
112
+ .replace(/\b(?:api[_-]?key|token|secret|password|authorization|dsn)\s*[:=]\s*\S+/gi, '[redacted]')
113
+ .replace(/\b(?:sk-|lk_live_|lk_test_)[A-Za-z0-9_-]+/g, '[redacted]')
114
+ .replace(/\s+/g, ' ')
115
+ .trim()
116
+ .slice(0, 200);
117
+ return short;
118
+ }
119
+ function unexpectedRedirect(err) {
120
+ const seen = new Set();
121
+ let current = err;
122
+ while (current && typeof current === 'object' && !seen.has(current)) {
123
+ seen.add(current);
124
+ if (current instanceof Error && current.message === 'unexpected redirect')
125
+ return true;
126
+ current = current.cause;
127
+ }
128
+ return false;
129
+ }
130
+ function proxyHeaders(headers) {
131
+ if (headers == null)
132
+ return undefined;
133
+ if (typeof Headers !== 'undefined' && headers instanceof Headers)
134
+ return Object.fromEntries(headers.entries());
135
+ if (Array.isArray(headers)) {
136
+ const record = {};
137
+ for (const [name, value] of headers)
138
+ record[name] = value;
139
+ return record;
140
+ }
141
+ const record = {};
142
+ for (const [name, value] of Object.entries(headers)) {
143
+ if (typeof value === 'string')
144
+ record[name] = value;
145
+ }
146
+ return record;
147
+ }
148
+ async function gatewayFetch(url, init) {
149
+ if (!configuredProxy())
150
+ return fetch(url, init);
151
+ if (init.body != null && typeof init.body !== 'string')
152
+ throw new LumenKeyError('TRANSPORT_FAILED');
153
+ const proxied = {
154
+ method: init.method,
155
+ headers: proxyHeaders(init.headers),
156
+ body: init.body ?? undefined,
157
+ signal: init.signal ?? undefined,
158
+ redirect: init.redirect,
159
+ dispatcher: new EnvHttpProxyAgent(),
160
+ };
161
+ return undiciFetch(url, proxied);
55
162
  }
56
163
  export function validateModelType(type) {
57
164
  if (type !== undefined && !['video', 'image', 'text', 'audio'].includes(type)) {
@@ -77,7 +184,8 @@ export class LumenKeyClient {
77
184
  implicitProjectId;
78
185
  timeoutMs;
79
186
  constructor(config) {
80
- this.apiKey = config.apiKey;
187
+ const key = typeof config.apiKey === 'string' ? config.apiKey.trim() : '';
188
+ this.apiKey = key || undefined;
81
189
  this.baseUrl = normalizeGatewayOrigin(config.baseUrl);
82
190
  let origin;
83
191
  try {
@@ -118,7 +226,7 @@ export class LumenKeyClient {
118
226
  const controller = new AbortController();
119
227
  const timeoutId = setTimeout(() => controller.abort(), this.timeoutMs);
120
228
  try {
121
- const response = await fetch(url, {
229
+ const response = await gatewayFetch(url, {
122
230
  ...options,
123
231
  headers: {
124
232
  ...this.getHeaders(idempotencyKey),
@@ -165,7 +273,8 @@ export class LumenKeyClient {
165
273
  const retry = response.headers.get('retry-after');
166
274
  const wait = retry && /^\d+$/.test(retry) ? Number(retry) * 1000 : undefined;
167
275
  const billing = cleanEndpoint === '/v1/chat/completions' ? parseChatBilling(data?.error?.billing) : undefined;
168
- throw new LumenKeyError(code, response.status, wait, undefined, billing);
276
+ const serverDetail = hasErrorSentence(code) ? undefined : redactPublicDetail(data?.error?.message, this.apiKey) || undefined;
277
+ throw new LumenKeyError(code, response.status, wait, serverDetail, billing);
169
278
  }
170
279
  return data;
171
280
  }
@@ -174,7 +283,10 @@ export class LumenKeyClient {
174
283
  throw err;
175
284
  if (controller.signal.aborted)
176
285
  throw new LumenKeyError('REQUEST_TIMEOUT');
177
- throw new LumenKeyError('TRANSPORT_FAILED', undefined, undefined, transportFailureDetail(this.baseUrl));
286
+ if (unexpectedRedirect(err))
287
+ throw new LumenKeyError('GATEWAY_REDIRECTED');
288
+ const detail = proxyApplies(url) ? proxyTransportDetail(this.baseUrl) : transportFailureDetail(this.baseUrl);
289
+ throw new LumenKeyError('TRANSPORT_FAILED', undefined, undefined, detail);
178
290
  }
179
291
  finally {
180
292
  clearTimeout(timeoutId);
@@ -279,7 +391,7 @@ export class LumenKeyClient {
279
391
  throw new LumenKeyError('CHAT_CREDIT_LIMIT_INVALID');
280
392
  if (req.stream)
281
393
  throw new LumenKeyError('SDK_STREAM_NOT_IMPLEMENTED');
282
- if (!req.messages.some(message => message.role === 'user' && message.content.trim()))
394
+ if (!req.messages.some(message => message.role === 'user' && !isBlankPrompt(message.content)))
283
395
  throw new Error(blankPromptSentence('user'));
284
396
  assertIdempotencyKey(idempotencyKey);
285
397
  this.requireKey();
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACxL,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAQrD,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAAC;IACjH,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAgC,CAAC;IAC7D,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAAC;IACrF,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACzE,IAAI,MAAM,KAAK,UAAU,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACzE,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACzK,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAqB;IACrD,IAAI,CAAC,OAAO;QAAE,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;IACpE,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO,eAAe,CAAC,UAAU,CAAC,CAAC;IACtE,OAAO,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAA0B,OAAO,CAAC,IAAI;IACxE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IACjE,MAAM,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,OAAO,aAAc,SAAQ,KAAK;IACV;IAA8B;IAAiC;IAAwD;IAAnJ,YAA4B,IAAY,EAAkB,MAAe,EAAkB,YAAqB,EAAE,MAAe,EAAkB,OAAqB;QACtK,KAAK,CAAC,GAAG,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAD7J,SAAI,GAAJ,IAAI,CAAQ;QAAkB,WAAM,GAAN,MAAM,CAAS;QAAkB,iBAAY,GAAZ,YAAY,CAAS;QAAmC,YAAO,GAAP,OAAO,CAAc;QAEtK,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,SAAS,oBAAoB,CAAC,GAA8B;IAC1D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QAAE,MAAM,IAAI,aAAa,CAAC,0BAA0B,CAAC,CAAC;IAChG,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,aAAa,CAAC,yBAAyB,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG;QAAE,MAAM,IAAI,aAAa,CAAC,0BAA0B,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC7C,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,KAAK,CAAC,EAAE,CAChB,sBAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,EACnF,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,CAChE,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAC;AACnE,CAAC;AACD,MAAM,IAAI,GAAG,iEAAiE,CAAC;AAC/E,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAC,iBAAiB,EAAC,QAAQ,EAAC,YAAY,EAAC,kBAAkB,EAAC,iBAAiB,EAAC,WAAW,EAAC,UAAU,EAAC,QAAQ,EAAC,WAAW,EAAC,SAAS,CAAC,CAAC,CAAC;AACxK,SAAS,WAAW,CAAC,GAAQ;IAC3B,MAAM,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,KAAK,CAAC;IACjC,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;QAAE,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC1H,OAAO,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,OAAO,cAAc;IACjB,MAAM,CAAU;IAChB,OAAO,CAAS;IAChB,SAAS,CAAU;IACnB,iBAAiB,CAAU;IAC3B,SAAS,CAAS;IAE1B,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YAAC,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,MAAM,IAAI,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAAC,CAAC;QAC9F,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,kBAAkB,CAAC,CAAC;QACjM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC/G,CAAC;IAED,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;YAAE,MAAM,IAAI,aAAa,CAAC,wBAAwB,CAAC,CAAC;IAC9E,CAAC;IAEO,UAAU,CAAC,cAAuB;QACxC,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;QACrD,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,CAAC,iBAAiB,CAAC,GAAG,cAAc,CAAC;QAC9C,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,QAAgB,EAChB,UAAuB,EAAE,EACzB,cAAuB;QAEvB,MAAM,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC3E,IAAI,aAAa,KAAK,mBAAmB;YAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7D,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,aAAa,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,GAAG,OAAO;gBACV,OAAO,EAAE;oBACP,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;oBAClC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;iBAC3B;gBACD,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC9D,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;gBAAE,MAAM,IAAI,aAAa,CAAC,oBAAoB,CAAC,CAAC;YACvG,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAiB,EAAE,CAAC;YAAC,IAAI,IAAI,GAAG,CAAC,CAAC;YAC9C,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC;oBAAC,OAAO,IAAI,EAAE,CAAC;wBAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;wBAAC,IAAI,IAAI;4BAAE,MAAM;wBAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;wBAAC,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;4BAAC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;4BAAC,MAAM,IAAI,aAAa,CAAC,oBAAoB,CAAC,CAAC;wBAAC,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAAC,CAAC;gBAAC,CAAC;wBAC9N,CAAC;oBAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAAC,CAAC;YACnC,CAAC;YACD,IAAI,IAAS,CAAC;YACd,IAAI,CAAC;gBAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,IAAI,QAAQ,CAAC,EAAE;oBAAE,MAAM,IAAI,aAAa,CAAC,uBAAuB,CAAC,CAAC;YAAC,CAAC;YAC/I,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,+EAA+E;gBAC/E,MAAM,IAAI,GAAG,OAAO,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,QAAQ,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC;gBAC9I,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAClD,MAAM,IAAI,GAAG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC7E,MAAM,OAAO,GAAG,aAAa,KAAK,sBAAsB,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC9G,MAAM,IAAI,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC3E,CAAC;YACD,OAAO,IAAS,CAAC;QACnB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,GAAG,YAAY,aAAa;gBAAE,MAAM,GAAG,CAAC;YAC5C,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAAC;YAC1E,MAAM,IAAI,aAAa,CAAC,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1G,CAAC;gBAAS,CAAC;YAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,GAA2B;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAA0B,uBAAuB,EAAE;YACjF,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,wBAAwB,CAAC,CAAC;QACtT,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;YAAE,MAAM,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC;QACxF,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAChH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CACb,GAA+B,EAC/B,cAAuB;QAEvB,MAAM,GAAG,GAAG,cAAc,CAAC;QAC3B,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACpG,MAAM,IAAI,GAA+B;YACvC,GAAG,GAAG;YACN,SAAS;SACV,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAC5B,qBAAqB,EACrB;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,EACD,GAAG,CACJ,CAAC;QAEF,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAM,uBAAuB,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE;YACtF,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,MAAM,CAAC,EAAE,KAAK,KAAK;YAAE,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACpE,6EAA6E;QAC7E,IAAI,MAAM,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjH,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,MAA6B,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,kBAAkB,CAAC,KAAK,CAAC,SAAS,EACzD;YACE,MAAM,EAAE,MAAM;SACf,CACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,IAAa;QAC5B,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC5D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAyB,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,0BAA0B,CAAC,CAAC;QAC3I,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACrL,CAAC;IAED,+FAA+F;IAC/F,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,MAA+B;QACpE,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QAC1E,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC;QACjD,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,4BAA4B,CAAC,CAAC;QACtI,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CACzE,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAiB,qBAAqB,EAAE;YACvE,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,0BAA0B,CAAC,CAAC;QAC/P,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CAAC,GAO1B,EAAE,iBAAyB,MAAM,CAAC,UAAU,EAAE;QAC7C,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,2BAA2B,CAAC,CAAC;QAC3J,IAAI,GAAG,CAAC,MAAM;YAAE,MAAM,IAAI,aAAa,CAAC,4BAA4B,CAAC,CAAC;QACtE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;QACnI,oBAAoB,CAAC,cAAc,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,sBAAsB,EAAE,SAAS,EAAE,SAAS,EAAE,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3J,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAM,sBAAsB,EAAE;YAC7D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,MAAM,EAAE,KAAK;gBACb,GAAG,GAAG;aACP,CAAC;SACH,EAAE,cAAc,CAAC,CAAC;QACnB,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QAC9C,IAAI,OAAO,OAAO,EAAE,OAAO,KAAK,QAAQ,IAAI,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnF,MAAM,IAAI,aAAa,CAAC,qBAAqB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,MAAM,IAAI,aAAa,CAAC,qBAAqB,CAAC,CAAC;QAC1N,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,KAAK,IAAI,WAAW,EAAyC,MAAM,QAAQ,CAAC;AACxG,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,aAAa,EAAE,QAAQ,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAC7N,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAQrD,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAAC;IACjH,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAgC,CAAC;IAC7D,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAAC;IACrF,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACzE,IAAI,MAAM,KAAK,UAAU,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACzE,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACzK,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAqB;IACrD,IAAI,CAAC,OAAO;QAAE,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;IACpE,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO,eAAe,CAAC,UAAU,CAAC,CAAC;IACtE,OAAO,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAA0B,OAAO,CAAC,IAAI;IACxE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IACjE,MAAM,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,OAAO,aAAc,SAAQ,KAAK;IACV;IAA8B;IAAiC;IAAwD;IAAnJ,YAA4B,IAAY,EAAkB,MAAe,EAAkB,YAAqB,EAAE,MAAe,EAAkB,OAAqB;QACtK,KAAK,CAAC,GAAG,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAD7J,SAAI,GAAJ,IAAI,CAAQ;QAAkB,WAAM,GAAN,MAAM,CAAS;QAAkB,iBAAY,GAAZ,YAAY,CAAS;QAAmC,YAAO,GAAP,OAAO,CAAc;QAEtK,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,SAAS,oBAAoB,CAAC,GAA8B;IAC1D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QAAE,MAAM,IAAI,aAAa,CAAC,0BAA0B,CAAC,CAAC;IAChG,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,aAAa,CAAC,yBAAyB,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG;QAAE,MAAM,IAAI,aAAa,CAAC,0BAA0B,CAAC,CAAC;IACtF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,aAAa,CAAC,2BAA2B,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AAED,SAAS,eAAe;IACtB,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;QACxG,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,yGAAyG;AACzG,SAAS,YAAY,CAAC,MAAc;IAClC,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QAAC,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;IACtD,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC;IACvF,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3G,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;IACnE,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAClC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpH,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9E,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,IAAI,SAAS,IAAI,SAAS,KAAK,IAAI;YAAE,SAAS;QAC9C,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE;YAAE,OAAO,KAAK,CAAC;IAC3F,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB,EAAE,MAAe;IAClE,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAC3C,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACxE,KAAK,GAAG,KAAK;SACV,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC;SACzC,OAAO,CAAC,+BAA+B,EAAE,GAAG,CAAC;SAC7C,OAAO,CAAC,8CAA8C,EAAE,YAAY,CAAC;SACrE,OAAO,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;SAChD,OAAO,CAAC,0EAA0E,EAAE,YAAY,CAAC;SACjG,OAAO,CAAC,4CAA4C,EAAE,YAAY,CAAC;SACnE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE;SACN,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAY;IACtC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAW,CAAC;IAChC,IAAI,OAAO,GAAY,GAAG,CAAC;IAC3B,OAAO,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACpE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,IAAI,OAAO,YAAY,KAAK,IAAI,OAAO,CAAC,OAAO,KAAK,qBAAqB;YAAE,OAAO,IAAI,CAAC;QACvF,OAAO,GAAI,OAA+B,CAAC,KAAK,CAAC;IACnD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,OAA+B;IACnD,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IACtC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,YAAY,OAAO;QAAE,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/G,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC1D,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACtD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,IAAiB;IACxD,IAAI,CAAC,eAAe,EAAE;QAAE,OAAO,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAChD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,MAAM,IAAI,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACpG,MAAM,OAAO,GAAsB;QACjC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;QACnC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,SAAS;QAC5B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS;QAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU,EAAE,IAAI,iBAAiB,EAAE;KACpC,CAAC;IACF,OAAO,WAAW,CAAC,GAAG,EAAE,OAAO,CAAiC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC7C,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,KAAK,CAAC,EAAE,CAChB,sBAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,EACnF,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mCAAmC,CAChE,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAC;AACnE,CAAC;AACD,MAAM,IAAI,GAAG,iEAAiE,CAAC;AAC/E,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAC,iBAAiB,EAAC,QAAQ,EAAC,YAAY,EAAC,kBAAkB,EAAC,iBAAiB,EAAC,WAAW,EAAC,UAAU,EAAC,QAAQ,EAAC,WAAW,EAAC,SAAS,CAAC,CAAC,CAAC;AACxK,SAAS,WAAW,CAAC,GAAQ;IAC3B,MAAM,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,KAAK,CAAC;IACjC,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;QAAE,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC1H,OAAO,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,OAAO,cAAc;IACjB,MAAM,CAAU;IAChB,OAAO,CAAS;IAChB,SAAS,CAAU;IACnB,iBAAiB,CAAU;IAC3B,SAAS,CAAS;IAE1B,YAAY,MAAsB;QAChC,MAAM,GAAG,GAAG,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YAAC,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,MAAM,IAAI,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAAC,CAAC;QAC9F,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,kBAAkB,CAAC,CAAC;QACjM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC/G,CAAC;IAED,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;YAAE,MAAM,IAAI,aAAa,CAAC,wBAAwB,CAAC,CAAC;IAC9E,CAAC;IAEO,UAAU,CAAC,cAAuB;QACxC,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;QACrD,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,CAAC,iBAAiB,CAAC,GAAG,cAAc,CAAC;QAC9C,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,QAAgB,EAChB,UAAuB,EAAE,EACzB,cAAuB;QAEvB,MAAM,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC3E,IAAI,aAAa,KAAK,mBAAmB;YAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7D,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,aAAa,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE;gBACvC,GAAG,OAAO;gBACV,OAAO,EAAE;oBACP,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;oBAClC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;iBAC3B;gBACD,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC9D,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;gBAAE,MAAM,IAAI,aAAa,CAAC,oBAAoB,CAAC,CAAC;YACvG,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAiB,EAAE,CAAC;YAAC,IAAI,IAAI,GAAG,CAAC,CAAC;YAC9C,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC;oBAAC,OAAO,IAAI,EAAE,CAAC;wBAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;wBAAC,IAAI,IAAI;4BAAE,MAAM;wBAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;wBAAC,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;4BAAC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;4BAAC,MAAM,IAAI,aAAa,CAAC,oBAAoB,CAAC,CAAC;wBAAC,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAAC,CAAC;gBAAC,CAAC;wBAC9N,CAAC;oBAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAAC,CAAC;YACnC,CAAC;YACD,IAAI,IAAS,CAAC;YACd,IAAI,CAAC;gBAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,IAAI,QAAQ,CAAC,EAAE;oBAAE,MAAM,IAAI,aAAa,CAAC,uBAAuB,CAAC,CAAC;YAAC,CAAC;YAC/I,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,+EAA+E;gBAC/E,MAAM,IAAI,GAAG,OAAO,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,QAAQ,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC;gBAC9I,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAClD,MAAM,IAAI,GAAG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC7E,MAAM,OAAO,GAAG,aAAa,KAAK,sBAAsB,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC9G,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;gBAC7H,MAAM,IAAI,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YAC9E,CAAC;YACD,OAAO,IAAS,CAAC;QACnB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,GAAG,YAAY,aAAa;gBAAE,MAAM,GAAG,CAAC;YAC5C,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAAC;YAC1E,IAAI,kBAAkB,CAAC,GAAG,CAAC;gBAAE,MAAM,IAAI,aAAa,CAAC,oBAAoB,CAAC,CAAC;YAC3E,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7G,MAAM,IAAI,aAAa,CAAC,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC5E,CAAC;gBAAS,CAAC;YAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,GAA2B;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAA0B,uBAAuB,EAAE;YACjF,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,wBAAwB,CAAC,CAAC;QACtT,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;YAAE,MAAM,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC;QACxF,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAChH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CACb,GAA+B,EAC/B,cAAuB;QAEvB,MAAM,GAAG,GAAG,cAAc,CAAC;QAC3B,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACpG,MAAM,IAAI,GAA+B;YACvC,GAAG,GAAG;YACN,SAAS;SACV,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAC5B,qBAAqB,EACrB;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,EACD,GAAG,CACJ,CAAC;QAEF,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAM,uBAAuB,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE;YACtF,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,MAAM,CAAC,EAAE,KAAK,KAAK;YAAE,MAAM,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACpE,6EAA6E;QAC7E,IAAI,MAAM,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjH,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,MAA6B,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC,OAAO,CACjB,uBAAuB,kBAAkB,CAAC,KAAK,CAAC,SAAS,EACzD;YACE,MAAM,EAAE,MAAM;SACf,CACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,IAAa;QAC5B,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC5D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAyB,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,0BAA0B,CAAC,CAAC;QAC3I,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACrL,CAAC;IAED,+FAA+F;IAC/F,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,MAA+B;QACpE,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QAC1E,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC;QACjD,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,4BAA4B,CAAC,CAAC;QACtI,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CACzE,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAiB,qBAAqB,EAAE;YACvE,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,0BAA0B,CAAC,CAAC;QAC/P,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CAAC,GAO1B,EAAE,iBAAyB,MAAM,CAAC,UAAU,EAAE;QAC7C,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,2BAA2B,CAAC,CAAC;QAC3J,IAAI,GAAG,CAAC,MAAM;YAAE,MAAM,IAAI,aAAa,CAAC,4BAA4B,CAAC,CAAC;QACtE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5I,oBAAoB,CAAC,cAAc,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,sBAAsB,EAAE,SAAS,EAAE,SAAS,EAAE,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3J,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAM,sBAAsB,EAAE;YAC7D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,MAAM,EAAE,KAAK;gBACb,GAAG,GAAG;aACP,CAAC;SACH,EAAE,cAAc,CAAC,CAAC;QACnB,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QAC9C,IAAI,OAAO,OAAO,EAAE,OAAO,KAAK,QAAQ,IAAI,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnF,MAAM,IAAI,aAAa,CAAC,qBAAqB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,MAAM,IAAI,aAAa,CAAC,qBAAqB,CAAC,CAAC;QAC1N,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ /** chmod 000 on the config directory makes existsSync return false. That must not look like "no key". */
2
+ export declare function assertConfigDirReadable(targetPath: string): void;
3
+ //# sourceMappingURL=config-dir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-dir.d.ts","sourceRoot":"","sources":["../../src/core/config-dir.ts"],"names":[],"mappings":"AAIA,yGAAyG;AACzG,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAchE"}
@@ -0,0 +1,22 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { errorSentence, ui } from './locale.js';
4
+ /** chmod 000 on the config directory makes existsSync return false. That must not look like "no key". */
5
+ export function assertConfigDirReadable(targetPath) {
6
+ const dir = path.dirname(targetPath);
7
+ try {
8
+ fs.accessSync(dir, fs.constants.R_OK | fs.constants.X_OK);
9
+ }
10
+ catch (error) {
11
+ const code = error?.code;
12
+ if (code === 'ENOENT' || code === 'ENOTDIR')
13
+ return;
14
+ if (code === 'EACCES' || code === 'EPERM') {
15
+ const failure = new Error(`${errorSentence('CONFIG_UNREADABLE')} (CONFIG_UNREADABLE) ${targetPath}: ${ui('The config directory could not be read.', '配置目录无法读取。')}`);
16
+ failure.name = 'LumenKeyError';
17
+ throw failure;
18
+ }
19
+ throw error;
20
+ }
21
+ }
22
+ //# sourceMappingURL=config-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-dir.js","sourceRoot":"","sources":["../../src/core/config-dir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEhD,yGAAyG;AACzG,MAAM,UAAU,uBAAuB,CAAC,UAAkB;IACxD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,GAAI,KAA+B,EAAE,IAAI,CAAC;QACpD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO;QACpD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,GAAG,aAAa,CAAC,mBAAmB,CAAC,wBAAwB,UAAU,KAAK,EAAE,CAAC,yCAAyC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;YACpK,OAAO,CAAC,IAAI,GAAG,eAAe,CAAC;YAC/B,MAAM,OAAO,CAAC;QAChB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1,4 +1,9 @@
1
1
  import type { LumenKeyConfig } from './types.js';
2
+ export declare class ConfigError extends Error {
3
+ readonly code: 'CONFIG_INVALID' | 'CONFIG_UNREADABLE';
4
+ readonly configPath: string;
5
+ constructor(code: 'CONFIG_INVALID' | 'CONFIG_UNREADABLE', configPath: string, reason: string);
6
+ }
2
7
  export declare function loadConfig(): LumenKeyConfig;
3
8
  export declare function saveConfig(updates: Partial<LumenKeyConfig>): void;
4
9
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAkBjD,wBAAgB,UAAU,IAAI,cAAc,CA6C3C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAejE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI;IAAE,aAAa,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAA;CAAE,CAW1G;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAQ9D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAoBjD,qBAAa,WAAY,SAAQ,KAAK;IACxB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,mBAAmB;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM;gBAAzE,IAAI,EAAE,gBAAgB,GAAG,mBAAmB,EAAW,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI/G;AA0ED,wBAAgB,UAAU,IAAI,cAAc,CAgC3C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAuBjE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI;IAAE,aAAa,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAA;CAAE,CAS1G;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAQ9D"}
@@ -4,6 +4,8 @@ import os from 'node:os';
4
4
  import crypto from 'node:crypto';
5
5
  import { currentProfile } from './profiles.js';
6
6
  import { normalizeGatewayOrigin } from './origin.js';
7
+ import { errorSentence, ui } from './locale.js';
8
+ import { assertConfigDirReadable } from './config-dir.js';
7
9
  // Official live gateway default: 华语站默认 https://123outlets.com
8
10
  const DEFAULT_BASE_URL = 'https://123outlets.com';
9
11
  // Must cover the gateway's 180s FunCloud first-token open. A shorter client
@@ -15,23 +17,87 @@ function getConfigDir() {
15
17
  function getConfigPath() {
16
18
  return path.join(getConfigDir(), 'config.json');
17
19
  }
18
- export function loadConfig() {
19
- let fileConfig = {};
20
- const configPath = getConfigPath();
21
- if (fs.existsSync(configPath)) {
22
- try {
23
- const content = fs.readFileSync(configPath, 'utf-8');
24
- fileConfig = JSON.parse(content);
25
- }
26
- catch {
27
- // Ignore parse errors from file
20
+ export class ConfigError extends Error {
21
+ code;
22
+ configPath;
23
+ constructor(code, configPath, reason) {
24
+ super(`${errorSentence(code)} (${code}) ${configPath}: ${reason}`);
25
+ this.code = code;
26
+ this.configPath = configPath;
27
+ this.name = 'LumenKeyError';
28
+ }
29
+ }
30
+ function configFailure(error, configPath) {
31
+ const sys = error;
32
+ if (sys?.code === 'EACCES' || sys?.code === 'EPERM' || sys?.code === 'ENOTDIR' || sys?.code === 'EISDIR') {
33
+ return new ConfigError('CONFIG_UNREADABLE', configPath, ui('The directory is not writable or the path is not a file.', '目录不可写,或该路径不是文件。'));
34
+ }
35
+ return new ConfigError('CONFIG_INVALID', configPath, ui('The config file could not be read.', '配置文件无法读取。'));
36
+ }
37
+ function nonemptyTrim(value) {
38
+ if (typeof value !== 'string')
39
+ return undefined;
40
+ const trimmed = value.trim();
41
+ return trimmed || undefined;
42
+ }
43
+ function readStoredConfig(configPath) {
44
+ assertConfigDirReadable(configPath);
45
+ if (!fs.existsSync(configPath))
46
+ return {};
47
+ let stat;
48
+ try {
49
+ stat = fs.statSync(configPath);
50
+ }
51
+ catch (error) {
52
+ throw configFailure(error, configPath);
53
+ }
54
+ if (!stat.isFile()) {
55
+ throw new ConfigError('CONFIG_INVALID', configPath, ui('config.json must be a file.', 'config.json 必须是文件。'));
56
+ }
57
+ let text;
58
+ try {
59
+ text = fs.readFileSync(configPath, 'utf8');
60
+ }
61
+ catch (error) {
62
+ throw configFailure(error, configPath);
63
+ }
64
+ if (text.trim() === '') {
65
+ throw new ConfigError('CONFIG_INVALID', configPath, ui('config.json is empty.', 'config.json 是空文件。'));
66
+ }
67
+ let parsed;
68
+ try {
69
+ parsed = JSON.parse(text);
70
+ }
71
+ catch {
72
+ throw new ConfigError('CONFIG_INVALID', configPath, ui('config.json is not valid JSON.', 'config.json 不是有效的 JSON。'));
73
+ }
74
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
75
+ throw new ConfigError('CONFIG_INVALID', configPath, ui('config.json must be an object.', 'config.json 必须是对象。'));
76
+ }
77
+ const record = parsed;
78
+ const reasons = [];
79
+ for (const key of ['apiKey', 'baseUrl', 'projectId']) {
80
+ if (record[key] !== undefined && typeof record[key] !== 'string') {
81
+ reasons.push(ui(`${key} must be a string.`, `${key} 必须是字符串。`));
28
82
  }
29
83
  }
84
+ if (reasons.length > 0)
85
+ throw new ConfigError('CONFIG_INVALID', configPath, reasons.join(' '));
86
+ if (record.timeoutMs !== undefined && (typeof record.timeoutMs !== 'number' || !Number.isSafeInteger(record.timeoutMs) || record.timeoutMs <= 0)) {
87
+ throw new ConfigError('CONFIG_INVALID', configPath, ui('timeoutMs must be a positive integer.', 'timeoutMs 必须是正整数。'));
88
+ }
89
+ return {
90
+ apiKey: record.apiKey,
91
+ baseUrl: record.baseUrl,
92
+ projectId: record.projectId,
93
+ timeoutMs: record.timeoutMs,
94
+ };
95
+ }
96
+ export function loadConfig() {
97
+ const configPath = getConfigPath();
98
+ const fileConfig = readStoredConfig(configPath);
30
99
  const profile = currentProfile().record;
31
- const apiKey = process.env.LUMENKEY_API_KEY ||
32
- fileConfig.apiKey ||
33
- profile?.key ||
34
- undefined;
100
+ const apiKey = nonemptyTrim(process.env.LUMENKEY_API_KEY) || nonemptyTrim(fileConfig.apiKey) || nonemptyTrim(profile?.key);
35
101
  const rawBaseUrl = process.env.LUMENKEY_BASE_URL ||
36
102
  fileConfig.baseUrl ||
37
103
  profile?.host ||
@@ -54,8 +120,13 @@ export function loadConfig() {
54
120
  }
55
121
  export function saveConfig(updates) {
56
122
  const configDir = getConfigDir();
57
- if (!fs.existsSync(configDir)) {
58
- fs.mkdirSync(configDir, { recursive: true });
123
+ try {
124
+ if (!fs.existsSync(configDir)) {
125
+ fs.mkdirSync(configDir, { recursive: true });
126
+ }
127
+ }
128
+ catch (error) {
129
+ throw configFailure(error, configDir);
59
130
  }
60
131
  const current = loadConfig();
61
132
  const nextConfig = {
@@ -64,24 +135,25 @@ export function saveConfig(updates) {
64
135
  projectId: updates.projectId !== undefined ? updates.projectId : current.projectId,
65
136
  timeoutMs: updates.timeoutMs !== undefined ? updates.timeoutMs : current.timeoutMs,
66
137
  };
67
- fs.writeFileSync(getConfigPath(), JSON.stringify(nextConfig, null, 2), { encoding: 'utf-8', mode: 0o600 });
138
+ try {
139
+ fs.writeFileSync(getConfigPath(), JSON.stringify(nextConfig, null, 2), { encoding: 'utf-8', mode: 0o600 });
140
+ }
141
+ catch (error) {
142
+ throw configFailure(error, getConfigPath());
143
+ }
68
144
  }
69
145
  /**
70
146
  * Ensure a valid projectId UUID exists; if absent, generate and persist one.
71
147
  */
72
148
  export function describeKey() {
73
- if (process.env.LUMENKEY_API_KEY)
149
+ if (nonemptyTrim(process.env.LUMENKEY_API_KEY))
74
150
  return { keyConfigured: true, keySource: 'env' };
75
151
  const filePath = getConfigPath();
76
- if (fs.existsSync(filePath)) {
77
- try {
78
- const parsed = JSON.parse(fs.readFileSync(filePath, 'utf8'));
79
- if (parsed.apiKey)
80
- return { keyConfigured: true, keySource: 'config' };
81
- }
82
- catch { /* ignore unreadable config */ }
152
+ assertConfigDirReadable(filePath);
153
+ if (fs.existsSync(filePath) && nonemptyTrim(readStoredConfig(filePath).apiKey)) {
154
+ return { keyConfigured: true, keySource: 'config' };
83
155
  }
84
- if (currentProfile().record?.key)
156
+ if (nonemptyTrim(currentProfile().record?.key))
85
157
  return { keyConfigured: true, keySource: 'profile' };
86
158
  return { keyConfigured: false, keySource: 'none' };
87
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,9 @@ export declare function resolveLang(argv?: readonly string[], env?: NodeJS.Proce
5
5
  export declare function hasErrorSentence(code: string): boolean;
6
6
  export declare function errorSentence(code: string, lang?: Lang): string;
7
7
  export declare function transportFailureDetail(baseUrl: string, lang?: Lang): string;
8
+ export declare function proxyTransportDetail(baseUrl: string, lang?: Lang): string;
9
+ /** Blank means no visible character remains. Fillers are listed; real letters, including Hangul, stay. */
10
+ export declare function isBlankPrompt(value: unknown): boolean;
8
11
  export declare function textCatalogMissDetail(model: string, lang?: Lang): string;
9
12
  export declare function missingModelSentence(name: string, lang?: Lang): string;
10
13
  export declare function billingSentence(status: 'MISSING' | 'PENDING' | 'RELEASED' | 'SETTLED', credits?: string, lang?: Lang): string;
@@ -1 +1 @@
1
- {"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../src/core/locale.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAgH/B,wBAAgB,QAAQ,CAAC,IAAI,GAAE,SAAS,MAAM,EAAiB,GAAG,MAAM,GAAG,SAAS,CASnF;AAOD,sGAAsG;AACtG,wBAAgB,WAAW,CAAC,IAAI,GAAE,SAAS,MAAM,EAAiB,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,IAAI,CAM9G;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAG9E;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAI1F;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAKvF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAIrF;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAW5I;AAED,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,IAAoB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAQpH;AAED,wBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAE7E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CASvG;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAIrF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAIlF;AAID,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3D"}
1
+ {"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../src/core/locale.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AA8I/B,wBAAgB,QAAQ,CAAC,IAAI,GAAE,SAAS,MAAM,EAAiB,GAAG,MAAM,GAAG,SAAS,CASnF;AAUD,sGAAsG;AACtG,wBAAgB,WAAW,CAAC,IAAI,GAAE,SAAS,MAAM,EAAiB,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,IAAI,CAQ9G;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAG9E;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAI1F;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAIxF;AAID,0GAA0G;AAC1G,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAErD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAKvF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAIrF;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAW5I;AAED,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,IAAoB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAQpH;AAED,wBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAE7E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CASvG;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAIrF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,IAAoB,GAAG,MAAM,CAIlF;AAID,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3D"}
@@ -46,11 +46,26 @@ const EN = {
46
46
  MODEL_NOT_AVAILABLE: 'This model is not available.',
47
47
  CONTENT_REJECTED: 'The content was rejected.',
48
48
  REQUEST_IN_PROGRESS: 'The same idempotency key is still in progress.',
49
- IDEMPOTENCY_INPUT_INVALID: 'The idempotency key is not valid.',
49
+ IDEMPOTENCY_INPUT_INVALID: 'The idempotency key must be visible ASCII without spaces.',
50
+ CONFIG_INVALID: 'The local config file is not usable.',
51
+ CONFIG_UNREADABLE: 'The local config file could not be read or written.',
50
52
  CHAT_REQUEST_INVALID: 'The chat request is not valid.',
51
53
  CANCELLED: 'The request was cancelled.',
52
54
  ACCOUNT_NOT_ELIGIBLE: 'This account cannot use the requested model.',
53
55
  CHAT_UPSTREAM_ERROR: 'The model returned an internal error instead of an answer.',
56
+ UNAUTHORIZED: 'The key was rejected. Check LUMENKEY_API_KEY or run lumenkey login.',
57
+ FORBIDDEN: 'This key cannot perform that action.',
58
+ INSUFFICIENT_CREDITS: 'Not enough credits for this request.',
59
+ NOT_FOUND: 'The gateway has no such resource.',
60
+ RATE_LIMITED: 'Too many requests. Wait and try again.',
61
+ GATEWAY_REDIRECTED: 'The gateway returned a redirect, and this client did not follow it.',
62
+ JOB_CANCELLED: 'The task was cancelled.',
63
+ JOB_EXPIRED: 'The task expired before it finished.',
64
+ JOB_OUTPUT_MISSING: 'The task finished without a result address.',
65
+ JOB_TERMINAL_FAILURE: 'The task ended without a result.',
66
+ DOWNLOAD_URL_INVALID: 'The result address cannot be downloaded.',
67
+ DOWNLOAD_TOO_LARGE: 'The result is larger than 128 MiB and was not saved.',
68
+ CLI_COMMAND_FAILED: 'The command failed before it could finish.',
54
69
  };
55
70
  const ZH = {
56
71
  API_KEY_NOT_CONFIGURED: '尚未配置密钥。请设置 LUMENKEY_API_KEY,或运行 lumenkey login。',
@@ -100,11 +115,26 @@ const ZH = {
100
115
  MODEL_NOT_AVAILABLE: '该模型当前不可用。',
101
116
  CONTENT_REJECTED: '内容未通过审核。',
102
117
  REQUEST_IN_PROGRESS: '同一幂等键的请求仍在进行中。',
103
- IDEMPOTENCY_INPUT_INVALID: '幂等键无效。',
118
+ IDEMPOTENCY_INPUT_INVALID: '幂等键只能是不含空格的可见 ASCII 字符。',
119
+ CONFIG_INVALID: '本地配置文件不可用。',
120
+ CONFIG_UNREADABLE: '本地配置文件无法读取或写入。',
104
121
  CHAT_REQUEST_INVALID: '对话请求无效。',
105
122
  CANCELLED: '请求已取消。',
106
123
  ACCOUNT_NOT_ELIGIBLE: '此账号不能使用所请求的模型。',
107
124
  CHAT_UPSTREAM_ERROR: '模型返回了内部错误,而不是回答。',
125
+ UNAUTHORIZED: '密钥未被接受。请检查 LUMENKEY_API_KEY,或运行 lumenkey login。',
126
+ FORBIDDEN: '这把密钥不能执行该操作。',
127
+ INSUFFICIENT_CREDITS: '算力点不足,无法完成本次请求。',
128
+ NOT_FOUND: '网关没有这个资源。',
129
+ RATE_LIMITED: '请求过于频繁,请稍后再试。',
130
+ GATEWAY_REDIRECTED: '网关返回了重定向,客户端没有跟随。',
131
+ JOB_CANCELLED: '任务已取消。',
132
+ JOB_EXPIRED: '任务在完成前已过期。',
133
+ JOB_OUTPUT_MISSING: '任务已结束,但没有结果地址。',
134
+ JOB_TERMINAL_FAILURE: '任务已结束,没有可用结果。',
135
+ DOWNLOAD_URL_INVALID: '结果地址无法下载。',
136
+ DOWNLOAD_TOO_LARGE: '结果超过 128 MiB,没有保存。',
137
+ CLI_COMMAND_FAILED: '命令未能完成。',
108
138
  };
109
139
  export function langFlag(argv = process.argv) {
110
140
  const args = argv.slice(2);
@@ -119,18 +149,22 @@ export function langFlag(argv = process.argv) {
119
149
  }
120
150
  return undefined;
121
151
  }
152
+ function primarySubtag(raw) {
153
+ return (raw.trim().replace(/-/g, '_').split(/[._@]/)[0] ?? '').toLowerCase();
154
+ }
122
155
  function localeLang(env) {
123
- const primary = (env.LC_ALL || env.LANG || '').split(/[._@]/)[0]?.toLowerCase();
124
- return primary === 'en' ? 'en' : 'zh';
156
+ return primarySubtag(env.LC_ALL || env.LANG || '') === 'en' ? 'en' : 'zh';
125
157
  }
126
158
  /** --lang zh|en, then LUMENKEY_LANG, then LC_ALL / LANG, then zh. Invalid values are ignored here. */
127
159
  export function resolveLang(argv = process.argv, env = process.env) {
128
160
  const flag = langFlag(argv);
129
161
  if (flag === 'zh' || flag === 'en')
130
162
  return flag;
131
- const configured = env.LUMENKEY_LANG?.trim();
132
- if (configured === 'zh' || configured === 'en')
133
- return configured;
163
+ if (typeof env.LUMENKEY_LANG === 'string' && env.LUMENKEY_LANG.trim()) {
164
+ const primary = primarySubtag(env.LUMENKEY_LANG);
165
+ if (primary === 'zh' || primary === 'en')
166
+ return primary;
167
+ }
134
168
  return localeLang(env);
135
169
  }
136
170
  export function hasErrorSentence(code) {
@@ -145,6 +179,16 @@ export function transportFailureDetail(baseUrl, lang = resolveLang()) {
145
179
  ? `无法连接网关 ${baseUrl},请检查网络与网关地址。`
146
180
  : `Network connection to ${baseUrl} failed. Check the gateway address and connection.`;
147
181
  }
182
+ export function proxyTransportDetail(baseUrl, lang = resolveLang()) {
183
+ return lang === 'zh'
184
+ ? `通过 HTTP(S)_PROXY 或 ALL_PROXY 连接网关 ${baseUrl} 失败。请检查代理,不要把代理地址当成网关故障。`
185
+ : `The request to ${baseUrl} failed through HTTP(S)_PROXY or ALL_PROXY. Check that proxy; this is not a gateway-address failure.`;
186
+ }
187
+ const INVISIBLE_PROMPT = /[\p{Cf}\p{Mn}\p{Me}\p{Zs}\p{Zl}\p{Zp}\u115F\u1160\u2800\u3164\uFFA0]/gu;
188
+ /** Blank means no visible character remains. Fillers are listed; real letters, including Hangul, stay. */
189
+ export function isBlankPrompt(value) {
190
+ return typeof value !== 'string' || value.replace(INVISIBLE_PROMPT, '').trim().length === 0;
191
+ }
148
192
  export function textCatalogMissDetail(model, lang = resolveLang()) {
149
193
  const shown = JSON.stringify(model);
150
194
  return lang === 'zh'