fdb2 1.0.21 → 1.0.23

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,6 +1,6 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./layout.js","./rolldown-runtime.js","./vue.js","./layout.css","./explorer.js","./explorer.css","./vconsole.min.js"])))=>i.map(i=>d[i]);
2
2
  import { a as __toESM, i as __require, n as __esmMin, r as __exportAll, t as __commonJSMin } from "./rolldown-runtime.js";
3
- import { $ as toDisplayString, C as createTextVNode, D as hasInjectionContext, E as getCurrentInstance, F as renderSlot, G as markRaw, H as getCurrentScope, I as resolveComponent, J as ref, K as onScopeDispose, L as resolveDynamicComponent, M as onUnmounted, N as openBlock, O as inject, P as renderList, Q as normalizeStyle, R as watch, T as defineComponent, U as isReactive, V as effectScope, W as isRef, X as toRefs, Y as toRaw, Z as normalizeClass, _ as createBaseVNode, a as init_vue_router, b as createElementBlock, c as init_vue_runtime_esm_bundler, g as computed, h as Fragment, i as createWebHistory, j as onMounted, k as nextTick, l as createApp, m as withModifiers, n as useTitle, q as reactive, r as createRouter, t as init_core, v as createBlock, w as createVNode, y as createCommentVNode } from "./vue.js";
3
+ import { $ as reactive, A as getCurrentInstance, B as renderSlot, C as createCommentVNode, D as createTextVNode, H as resolveDynamicComponent, I as onMounted, K as effectScope, L as onUnmounted, N as inject, O as createVNode, P as nextTick, Q as onScopeDispose, R as openBlock, S as createBlock, U as watch, V as resolveComponent, X as isRef, Y as isReactive, Z as markRaw, a as useTitle, at as normalizeClass, b as computed, c as init_vue_router, d as init_vue_runtime_esm_bundler, et as ref, f as createApp, i as init_core, j as hasInjectionContext, k as defineComponent, n as init_vue_i18n, nt as toRefs, o as createRouter, ot as normalizeStyle, q as getCurrentScope, r as useI18n, rt as unref, s as createWebHistory, st as toDisplayString, t as createI18n, tt as toRaw, v as withModifiers, w as createElementBlock, x as createBaseVNode, y as Fragment, z as renderList } from "./vue.js";
4
4
  import { i as init_bootstrap, n as init_bootstrap_esm, r as init_bootstrap_icons, t as Modal } from "./bootstrap.js";
5
5
  //#region \0vite/modulepreload-polyfill.js
6
6
  (function polyfill() {
@@ -56,7 +56,7 @@ var init_App = __esmMin((() => {
56
56
  App_default = /* @__PURE__ */ _plugin_vue_export_helper_default(_sfc_main, [["render", _sfc_render]]);
57
57
  }));
58
58
  //#endregion
59
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/bind.js
59
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/bind.js
60
60
  /**
61
61
  * Create a bound version of a function with a specified `this` context
62
62
  *
@@ -71,7 +71,7 @@ function bind(fn, thisArg) {
71
71
  }
72
72
  var init_bind = __esmMin((() => {}));
73
73
  //#endregion
74
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/utils.js
74
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/utils.js
75
75
  /**
76
76
  * Determine if a value is a Buffer
77
77
  *
@@ -180,18 +180,19 @@ function findKey(obj, key) {
180
180
  *
181
181
  * @returns {Object} Result of all merge properties
182
182
  */
183
- function merge() {
183
+ function merge(...objs) {
184
184
  const { caseless, skipUndefined } = isContextDefined(this) && this || {};
185
185
  const result = {};
186
186
  const assignValue = (val, key) => {
187
187
  if (key === "__proto__" || key === "constructor" || key === "prototype") return;
188
188
  const targetKey = caseless && findKey(result, key) || key;
189
- if (isPlainObject$1(result[targetKey]) && isPlainObject$1(val)) result[targetKey] = merge(result[targetKey], val);
189
+ const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : void 0;
190
+ if (isPlainObject$1(existing) && isPlainObject$1(val)) result[targetKey] = merge(existing, val);
190
191
  else if (isPlainObject$1(val)) result[targetKey] = merge({}, val);
191
192
  else if (isArray(val)) result[targetKey] = val.slice();
192
193
  else if (!skipUndefined || !isUndefined(val)) result[targetKey] = val;
193
194
  };
194
- for (let i = 0, l = arguments.length; i < l; i++) arguments[i] && forEach(arguments[i], assignValue);
195
+ for (let i = 0, l = objs.length; i < l; i++) objs[i] && forEach(objs[i], assignValue);
195
196
  return result;
196
197
  }
197
198
  /**
@@ -278,12 +279,14 @@ var init_utils$1 = __esmMin((() => {
278
279
  extend = (a, b, thisArg, { allOwnKeys } = {}) => {
279
280
  forEach(b, (val, key) => {
280
281
  if (thisArg && isFunction$1(val)) Object.defineProperty(a, key, {
282
+ __proto__: null,
281
283
  value: bind(val, thisArg),
282
284
  writable: true,
283
285
  enumerable: true,
284
286
  configurable: true
285
287
  });
286
288
  else Object.defineProperty(a, key, {
289
+ __proto__: null,
287
290
  value: val,
288
291
  writable: true,
289
292
  enumerable: true,
@@ -299,12 +302,16 @@ var init_utils$1 = __esmMin((() => {
299
302
  inherits = (constructor, superConstructor, props, descriptors) => {
300
303
  constructor.prototype = Object.create(superConstructor.prototype, descriptors);
301
304
  Object.defineProperty(constructor.prototype, "constructor", {
305
+ __proto__: null,
302
306
  value: constructor,
303
307
  writable: true,
304
308
  enumerable: false,
305
309
  configurable: true
306
310
  });
307
- Object.defineProperty(constructor, "super", { value: superConstructor.prototype });
311
+ Object.defineProperty(constructor, "super", {
312
+ __proto__: null,
313
+ value: superConstructor.prototype
314
+ });
308
315
  props && Object.assign(constructor.prototype, props);
309
316
  };
310
317
  toFlatObject = (sourceObj, destObj, filter, propFilter) => {
@@ -386,7 +393,7 @@ var init_utils$1 = __esmMin((() => {
386
393
  "arguments",
387
394
  "caller",
388
395
  "callee"
389
- ].indexOf(name) !== -1) return false;
396
+ ].includes(name)) return false;
390
397
  const value = obj[name];
391
398
  if (!isFunction$1(value)) return;
392
399
  descriptor.enumerable = false;
@@ -414,25 +421,25 @@ var init_utils$1 = __esmMin((() => {
414
421
  return value != null && Number.isFinite(value = +value) ? value : defaultValue;
415
422
  };
416
423
  toJSONObject = (obj) => {
417
- const stack = new Array(10);
418
- const visit = (source, i) => {
424
+ const visited = /* @__PURE__ */ new WeakSet();
425
+ const visit = (source) => {
419
426
  if (isObject(source)) {
420
- if (stack.indexOf(source) >= 0) return;
427
+ if (visited.has(source)) return;
421
428
  if (isBuffer(source)) return source;
422
429
  if (!("toJSON" in source)) {
423
- stack[i] = source;
430
+ visited.add(source);
424
431
  const target = isArray(source) ? [] : {};
425
432
  forEach(source, (value, key) => {
426
- const reducedValue = visit(value, i + 1);
433
+ const reducedValue = visit(value);
427
434
  !isUndefined(reducedValue) && (target[key] = reducedValue);
428
435
  });
429
- stack[i] = void 0;
436
+ visited.delete(source);
430
437
  return target;
431
438
  }
432
439
  }
433
440
  return source;
434
441
  };
435
- return visit(obj, 0);
442
+ return visit(obj);
436
443
  };
437
444
  isAsyncFn = kindOfTest("AsyncFunction");
438
445
  isThenable = (thing) => thing && (isObject(thing) || isFunction$1(thing)) && isFunction$1(thing.then) && isFunction$1(thing.catch);
@@ -513,10 +520,338 @@ var init_utils$1 = __esmMin((() => {
513
520
  };
514
521
  }));
515
522
  //#endregion
516
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/core/AxiosError.js
517
- var AxiosError$1;
523
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/parseHeaders.js
524
+ var ignoreDuplicateOf, parseHeaders_default;
525
+ var init_parseHeaders = __esmMin((() => {
526
+ init_utils$1();
527
+ ignoreDuplicateOf = utils_default.toObjectSet([
528
+ "age",
529
+ "authorization",
530
+ "content-length",
531
+ "content-type",
532
+ "etag",
533
+ "expires",
534
+ "from",
535
+ "host",
536
+ "if-modified-since",
537
+ "if-unmodified-since",
538
+ "last-modified",
539
+ "location",
540
+ "max-forwards",
541
+ "proxy-authorization",
542
+ "referer",
543
+ "retry-after",
544
+ "user-agent"
545
+ ]);
546
+ parseHeaders_default = (rawHeaders) => {
547
+ const parsed = {};
548
+ let key;
549
+ let val;
550
+ let i;
551
+ rawHeaders && rawHeaders.split("\n").forEach(function parser(line) {
552
+ i = line.indexOf(":");
553
+ key = line.substring(0, i).trim().toLowerCase();
554
+ val = line.substring(i + 1).trim();
555
+ if (!key || parsed[key] && ignoreDuplicateOf[key]) return;
556
+ if (key === "set-cookie") if (parsed[key]) parsed[key].push(val);
557
+ else parsed[key] = [val];
558
+ else parsed[key] = parsed[key] ? parsed[key] + ", " + val : val;
559
+ });
560
+ return parsed;
561
+ };
562
+ }));
563
+ //#endregion
564
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/sanitizeHeaderValue.js
565
+ function trimSPorHTAB(str) {
566
+ let start = 0;
567
+ let end = str.length;
568
+ while (start < end) {
569
+ const code = str.charCodeAt(start);
570
+ if (code !== 9 && code !== 32) break;
571
+ start += 1;
572
+ }
573
+ while (end > start) {
574
+ const code = str.charCodeAt(end - 1);
575
+ if (code !== 9 && code !== 32) break;
576
+ end -= 1;
577
+ }
578
+ return start === 0 && end === str.length ? str : str.slice(start, end);
579
+ }
580
+ function sanitizeValue(value, invalidChars) {
581
+ if (utils_default.isArray(value)) return value.map((item) => sanitizeValue(item, invalidChars));
582
+ return trimSPorHTAB(String(value).replace(invalidChars, ""));
583
+ }
584
+ function toByteStringHeaderObject(headers) {
585
+ const byteStringHeaders = Object.create(null);
586
+ utils_default.forEach(headers.toJSON(), (value, header) => {
587
+ byteStringHeaders[header] = sanitizeByteStringHeaderValue(value);
588
+ });
589
+ return byteStringHeaders;
590
+ }
591
+ var INVALID_UNICODE_HEADER_VALUE_CHARS, INVALID_BYTE_STRING_HEADER_VALUE_CHARS, sanitizeHeaderValue, sanitizeByteStringHeaderValue;
592
+ var init_sanitizeHeaderValue = __esmMin((() => {
593
+ init_utils$1();
594
+ INVALID_UNICODE_HEADER_VALUE_CHARS = /* @__PURE__ */ new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+", "g");
595
+ INVALID_BYTE_STRING_HEADER_VALUE_CHARS = /* @__PURE__ */ new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+", "g");
596
+ sanitizeHeaderValue = (value) => sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS);
597
+ sanitizeByteStringHeaderValue = (value) => sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS);
598
+ }));
599
+ //#endregion
600
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/core/AxiosHeaders.js
601
+ function normalizeHeader(header) {
602
+ return header && String(header).trim().toLowerCase();
603
+ }
604
+ function normalizeValue(value) {
605
+ if (value === false || value == null) return value;
606
+ return utils_default.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));
607
+ }
608
+ function parseTokens(str) {
609
+ const tokens = Object.create(null);
610
+ const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;
611
+ let match;
612
+ while (match = tokensRE.exec(str)) tokens[match[1]] = match[2];
613
+ return tokens;
614
+ }
615
+ function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {
616
+ if (utils_default.isFunction(filter)) return filter.call(this, value, header);
617
+ if (isHeaderNameFilter) value = header;
618
+ if (!utils_default.isString(value)) return;
619
+ if (utils_default.isString(filter)) return value.indexOf(filter) !== -1;
620
+ if (utils_default.isRegExp(filter)) return filter.test(value);
621
+ }
622
+ function formatHeader(header) {
623
+ return header.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => {
624
+ return char.toUpperCase() + str;
625
+ });
626
+ }
627
+ function buildAccessors(obj, header) {
628
+ const accessorName = utils_default.toCamelCase(" " + header);
629
+ [
630
+ "get",
631
+ "set",
632
+ "has"
633
+ ].forEach((methodName) => {
634
+ Object.defineProperty(obj, methodName + accessorName, {
635
+ __proto__: null,
636
+ value: function(arg1, arg2, arg3) {
637
+ return this[methodName].call(this, header, arg1, arg2, arg3);
638
+ },
639
+ configurable: true
640
+ });
641
+ });
642
+ }
643
+ var $internals, isValidHeaderName, AxiosHeaders$1;
644
+ var init_AxiosHeaders = __esmMin((() => {
645
+ init_utils$1();
646
+ init_parseHeaders();
647
+ init_sanitizeHeaderValue();
648
+ $internals = Symbol("internals");
649
+ isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());
650
+ AxiosHeaders$1 = class {
651
+ constructor(headers) {
652
+ headers && this.set(headers);
653
+ }
654
+ set(header, valueOrRewrite, rewrite) {
655
+ const self = this;
656
+ function setHeader(_value, _header, _rewrite) {
657
+ const lHeader = normalizeHeader(_header);
658
+ if (!lHeader) throw new Error("header name must be a non-empty string");
659
+ const key = utils_default.findKey(self, lHeader);
660
+ if (!key || self[key] === void 0 || _rewrite === true || _rewrite === void 0 && self[key] !== false) self[key || _header] = normalizeValue(_value);
661
+ }
662
+ const setHeaders = (headers, _rewrite) => utils_default.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));
663
+ if (utils_default.isPlainObject(header) || header instanceof this.constructor) setHeaders(header, valueOrRewrite);
664
+ else if (utils_default.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) setHeaders(parseHeaders_default(header), valueOrRewrite);
665
+ else if (utils_default.isObject(header) && utils_default.isIterable(header)) {
666
+ let obj = {}, dest, key;
667
+ for (const entry of header) {
668
+ if (!utils_default.isArray(entry)) throw TypeError("Object iterator must return a key-value pair");
669
+ obj[key = entry[0]] = (dest = obj[key]) ? utils_default.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]] : entry[1];
670
+ }
671
+ setHeaders(obj, valueOrRewrite);
672
+ } else header != null && setHeader(valueOrRewrite, header, rewrite);
673
+ return this;
674
+ }
675
+ get(header, parser) {
676
+ header = normalizeHeader(header);
677
+ if (header) {
678
+ const key = utils_default.findKey(this, header);
679
+ if (key) {
680
+ const value = this[key];
681
+ if (!parser) return value;
682
+ if (parser === true) return parseTokens(value);
683
+ if (utils_default.isFunction(parser)) return parser.call(this, value, key);
684
+ if (utils_default.isRegExp(parser)) return parser.exec(value);
685
+ throw new TypeError("parser must be boolean|regexp|function");
686
+ }
687
+ }
688
+ }
689
+ has(header, matcher) {
690
+ header = normalizeHeader(header);
691
+ if (header) {
692
+ const key = utils_default.findKey(this, header);
693
+ return !!(key && this[key] !== void 0 && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
694
+ }
695
+ return false;
696
+ }
697
+ delete(header, matcher) {
698
+ const self = this;
699
+ let deleted = false;
700
+ function deleteHeader(_header) {
701
+ _header = normalizeHeader(_header);
702
+ if (_header) {
703
+ const key = utils_default.findKey(self, _header);
704
+ if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {
705
+ delete self[key];
706
+ deleted = true;
707
+ }
708
+ }
709
+ }
710
+ if (utils_default.isArray(header)) header.forEach(deleteHeader);
711
+ else deleteHeader(header);
712
+ return deleted;
713
+ }
714
+ clear(matcher) {
715
+ const keys = Object.keys(this);
716
+ let i = keys.length;
717
+ let deleted = false;
718
+ while (i--) {
719
+ const key = keys[i];
720
+ if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {
721
+ delete this[key];
722
+ deleted = true;
723
+ }
724
+ }
725
+ return deleted;
726
+ }
727
+ normalize(format) {
728
+ const self = this;
729
+ const headers = {};
730
+ utils_default.forEach(this, (value, header) => {
731
+ const key = utils_default.findKey(headers, header);
732
+ if (key) {
733
+ self[key] = normalizeValue(value);
734
+ delete self[header];
735
+ return;
736
+ }
737
+ const normalized = format ? formatHeader(header) : String(header).trim();
738
+ if (normalized !== header) delete self[header];
739
+ self[normalized] = normalizeValue(value);
740
+ headers[normalized] = true;
741
+ });
742
+ return this;
743
+ }
744
+ concat(...targets) {
745
+ return this.constructor.concat(this, ...targets);
746
+ }
747
+ toJSON(asStrings) {
748
+ const obj = Object.create(null);
749
+ utils_default.forEach(this, (value, header) => {
750
+ value != null && value !== false && (obj[header] = asStrings && utils_default.isArray(value) ? value.join(", ") : value);
751
+ });
752
+ return obj;
753
+ }
754
+ [Symbol.iterator]() {
755
+ return Object.entries(this.toJSON())[Symbol.iterator]();
756
+ }
757
+ toString() {
758
+ return Object.entries(this.toJSON()).map(([header, value]) => header + ": " + value).join("\n");
759
+ }
760
+ getSetCookie() {
761
+ return this.get("set-cookie") || [];
762
+ }
763
+ get [Symbol.toStringTag]() {
764
+ return "AxiosHeaders";
765
+ }
766
+ static from(thing) {
767
+ return thing instanceof this ? thing : new this(thing);
768
+ }
769
+ static concat(first, ...targets) {
770
+ const computed = new this(first);
771
+ targets.forEach((target) => computed.set(target));
772
+ return computed;
773
+ }
774
+ static accessor(header) {
775
+ const accessors = (this[$internals] = this[$internals] = { accessors: {} }).accessors;
776
+ const prototype = this.prototype;
777
+ function defineAccessor(_header) {
778
+ const lHeader = normalizeHeader(_header);
779
+ if (!accessors[lHeader]) {
780
+ buildAccessors(prototype, _header);
781
+ accessors[lHeader] = true;
782
+ }
783
+ }
784
+ utils_default.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);
785
+ return this;
786
+ }
787
+ };
788
+ AxiosHeaders$1.accessor([
789
+ "Content-Type",
790
+ "Content-Length",
791
+ "Accept",
792
+ "Accept-Encoding",
793
+ "User-Agent",
794
+ "Authorization"
795
+ ]);
796
+ utils_default.reduceDescriptors(AxiosHeaders$1.prototype, ({ value }, key) => {
797
+ let mapped = key[0].toUpperCase() + key.slice(1);
798
+ return {
799
+ get: () => value,
800
+ set(headerValue) {
801
+ this[mapped] = headerValue;
802
+ }
803
+ };
804
+ });
805
+ utils_default.freezeMethods(AxiosHeaders$1);
806
+ }));
807
+ //#endregion
808
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/core/AxiosError.js
809
+ function hasOwnOrPrototypeToJSON(source) {
810
+ if (utils_default.hasOwnProp(source, "toJSON")) return true;
811
+ let prototype = Object.getPrototypeOf(source);
812
+ while (prototype && prototype !== Object.prototype) {
813
+ if (utils_default.hasOwnProp(prototype, "toJSON")) return true;
814
+ prototype = Object.getPrototypeOf(prototype);
815
+ }
816
+ return false;
817
+ }
818
+ function redactConfig(config, redactKeys) {
819
+ const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase()));
820
+ const seen = [];
821
+ const visit = (source) => {
822
+ if (source === null || typeof source !== "object") return source;
823
+ if (utils_default.isBuffer(source)) return source;
824
+ if (seen.indexOf(source) !== -1) return void 0;
825
+ if (source instanceof AxiosHeaders$1) source = source.toJSON();
826
+ seen.push(source);
827
+ let result;
828
+ if (utils_default.isArray(source)) {
829
+ result = [];
830
+ source.forEach((v, i) => {
831
+ const reducedValue = visit(v);
832
+ if (!utils_default.isUndefined(reducedValue)) result[i] = reducedValue;
833
+ });
834
+ } else {
835
+ if (!utils_default.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) {
836
+ seen.pop();
837
+ return source;
838
+ }
839
+ result = Object.create(null);
840
+ for (const [key, value] of Object.entries(source)) {
841
+ const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value);
842
+ if (!utils_default.isUndefined(reducedValue)) result[key] = reducedValue;
843
+ }
844
+ }
845
+ seen.pop();
846
+ return result;
847
+ };
848
+ return visit(config);
849
+ }
850
+ var REDACTED, AxiosError$1;
518
851
  var init_AxiosError = __esmMin((() => {
519
852
  init_utils$1();
853
+ init_AxiosHeaders();
854
+ REDACTED = "[REDACTED ****]";
520
855
  AxiosError$1 = class AxiosError$1 extends Error {
521
856
  static from(error, code, config, request, response, customProps) {
522
857
  const axiosError = new AxiosError$1(error.message, code || error.code, config, request, response);
@@ -540,6 +875,7 @@ var init_AxiosError = __esmMin((() => {
540
875
  constructor(message, code, config, request, response) {
541
876
  super(message);
542
877
  Object.defineProperty(this, "message", {
878
+ __proto__: null,
543
879
  value: message,
544
880
  enumerable: true,
545
881
  writable: true,
@@ -556,6 +892,9 @@ var init_AxiosError = __esmMin((() => {
556
892
  }
557
893
  }
558
894
  toJSON() {
895
+ const config = this.config;
896
+ const redactKeys = config && utils_default.hasOwnProp(config, "redact") ? config.redact : void 0;
897
+ const serializedConfig = utils_default.isArray(redactKeys) && redactKeys.length > 0 ? redactConfig(config, redactKeys) : utils_default.toJSONObject(config);
559
898
  return {
560
899
  message: this.message,
561
900
  name: this.name,
@@ -565,7 +904,7 @@ var init_AxiosError = __esmMin((() => {
565
904
  lineNumber: this.lineNumber,
566
905
  columnNumber: this.columnNumber,
567
906
  stack: this.stack,
568
- config: utils_default.toJSONObject(this.config),
907
+ config: serializedConfig,
569
908
  code: this.code,
570
909
  status: this.status
571
910
  };
@@ -575,6 +914,7 @@ var init_AxiosError = __esmMin((() => {
575
914
  AxiosError$1.ERR_BAD_OPTION = "ERR_BAD_OPTION";
576
915
  AxiosError$1.ECONNABORTED = "ECONNABORTED";
577
916
  AxiosError$1.ETIMEDOUT = "ETIMEDOUT";
917
+ AxiosError$1.ECONNREFUSED = "ECONNREFUSED";
578
918
  AxiosError$1.ERR_NETWORK = "ERR_NETWORK";
579
919
  AxiosError$1.ERR_FR_TOO_MANY_REDIRECTS = "ERR_FR_TOO_MANY_REDIRECTS";
580
920
  AxiosError$1.ERR_DEPRECATED = "ERR_DEPRECATED";
@@ -586,10 +926,10 @@ var init_AxiosError = __esmMin((() => {
586
926
  AxiosError$1.ERR_FORM_DATA_DEPTH_EXCEEDED = "ERR_FORM_DATA_DEPTH_EXCEEDED";
587
927
  }));
588
928
  //#endregion
589
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/null.js
929
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/null.js
590
930
  var init_null = __esmMin((() => {}));
591
931
  //#endregion
592
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/toFormData.js
932
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/toFormData.js
593
933
  /**
594
934
  * Determines if the given thing is a array or js object.
595
935
  *
@@ -746,7 +1086,7 @@ var init_toFormData = __esmMin((() => {
746
1086
  });
747
1087
  }));
748
1088
  //#endregion
749
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/AxiosURLSearchParams.js
1089
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/AxiosURLSearchParams.js
750
1090
  /**
751
1091
  * It encodes a string by replacing all characters that are not in the unreserved set with
752
1092
  * their percent-encoded equivalents
@@ -797,7 +1137,7 @@ var init_AxiosURLSearchParams = __esmMin((() => {
797
1137
  };
798
1138
  }));
799
1139
  //#endregion
800
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/buildURL.js
1140
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/buildURL.js
801
1141
  /**
802
1142
  * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with
803
1143
  * their plain counterparts (`:`, `$`, `,`, `+`).
@@ -838,7 +1178,7 @@ var init_buildURL = __esmMin((() => {
838
1178
  init_AxiosURLSearchParams();
839
1179
  }));
840
1180
  //#endregion
841
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/core/InterceptorManager.js
1181
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/core/InterceptorManager.js
842
1182
  var InterceptorManager;
843
1183
  var init_InterceptorManager = __esmMin((() => {
844
1184
  init_utils$1();
@@ -900,7 +1240,7 @@ var init_InterceptorManager = __esmMin((() => {
900
1240
  };
901
1241
  }));
902
1242
  //#endregion
903
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/defaults/transitional.js
1243
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/defaults/transitional.js
904
1244
  var transitional_default;
905
1245
  var init_transitional = __esmMin((() => {
906
1246
  transitional_default = {
@@ -911,26 +1251,26 @@ var init_transitional = __esmMin((() => {
911
1251
  };
912
1252
  }));
913
1253
  //#endregion
914
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js
1254
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js
915
1255
  var URLSearchParams_default;
916
1256
  var init_URLSearchParams = __esmMin((() => {
917
1257
  init_AxiosURLSearchParams();
918
1258
  URLSearchParams_default = typeof URLSearchParams !== "undefined" ? URLSearchParams : AxiosURLSearchParams;
919
1259
  }));
920
1260
  //#endregion
921
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/platform/browser/classes/FormData.js
1261
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/platform/browser/classes/FormData.js
922
1262
  var FormData_default;
923
1263
  var init_FormData = __esmMin((() => {
924
1264
  FormData_default = typeof FormData !== "undefined" ? FormData : null;
925
1265
  }));
926
1266
  //#endregion
927
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/platform/browser/classes/Blob.js
1267
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/platform/browser/classes/Blob.js
928
1268
  var Blob_default;
929
1269
  var init_Blob = __esmMin((() => {
930
1270
  Blob_default = typeof Blob !== "undefined" ? Blob : null;
931
1271
  }));
932
1272
  //#endregion
933
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/platform/browser/index.js
1273
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/platform/browser/index.js
934
1274
  var browser_default;
935
1275
  var init_browser = __esmMin((() => {
936
1276
  init_URLSearchParams();
@@ -954,7 +1294,7 @@ var init_browser = __esmMin((() => {
954
1294
  };
955
1295
  }));
956
1296
  //#endregion
957
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/platform/common/utils.js
1297
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/platform/common/utils.js
958
1298
  var utils_exports = /* @__PURE__ */ __exportAll({
959
1299
  hasBrowserEnv: () => hasBrowserEnv,
960
1300
  hasStandardBrowserEnv: () => hasStandardBrowserEnv,
@@ -975,7 +1315,7 @@ var init_utils = __esmMin((() => {
975
1315
  origin = hasBrowserEnv && window.location.href || "http://localhost";
976
1316
  }));
977
1317
  //#endregion
978
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/platform/index.js
1318
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/platform/index.js
979
1319
  var platform_default;
980
1320
  var init_platform = __esmMin((() => {
981
1321
  init_browser();
@@ -986,7 +1326,7 @@ var init_platform = __esmMin((() => {
986
1326
  };
987
1327
  }));
988
1328
  //#endregion
989
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/toURLEncodedForm.js
1329
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/toURLEncodedForm.js
990
1330
  function toURLEncodedForm(data, options) {
991
1331
  return toFormData$1(data, new platform_default.classes.URLSearchParams(), {
992
1332
  visitor: function(value, key, path, helpers) {
@@ -1005,7 +1345,7 @@ var init_toURLEncodedForm = __esmMin((() => {
1005
1345
  init_platform();
1006
1346
  }));
1007
1347
  //#endregion
1008
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/formDataToJSON.js
1348
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/formDataToJSON.js
1009
1349
  /**
1010
1350
  * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']
1011
1351
  *
@@ -1056,7 +1396,7 @@ function formDataToJSON(formData) {
1056
1396
  else target[name] = value;
1057
1397
  return !isNumericKey;
1058
1398
  }
1059
- if (!target[name] || !utils_default.isObject(target[name])) target[name] = [];
1399
+ if (!utils_default.hasOwnProp(target, name) || !utils_default.isObject(target[name])) target[name] = [];
1060
1400
  if (buildPath(path, value, target[name], index) && utils_default.isArray(target[name])) target[name] = arrayToObject(target[name]);
1061
1401
  return !isNumericKey;
1062
1402
  }
@@ -1073,7 +1413,7 @@ var init_formDataToJSON = __esmMin((() => {
1073
1413
  init_utils$1();
1074
1414
  }));
1075
1415
  //#endregion
1076
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/defaults/index.js
1416
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/defaults/index.js
1077
1417
  /**
1078
1418
  * It takes a string, tries to parse it, and if it fails, it returns the stringified version
1079
1419
  * of the input
@@ -1123,340 +1463,75 @@ var init_defaults = __esmMin((() => {
1123
1463
  return data.toString();
1124
1464
  }
1125
1465
  let isFileList;
1126
- if (isObjectPayload) {
1127
- const formSerializer = own(this, "formSerializer");
1128
- if (contentType.indexOf("application/x-www-form-urlencoded") > -1) return toURLEncodedForm(data, formSerializer).toString();
1129
- if ((isFileList = utils_default.isFileList(data)) || contentType.indexOf("multipart/form-data") > -1) {
1130
- const env = own(this, "env");
1131
- const _FormData = env && env.FormData;
1132
- return toFormData$1(isFileList ? { "files[]": data } : data, _FormData && new _FormData(), formSerializer);
1133
- }
1134
- }
1135
- if (isObjectPayload || hasJSONContentType) {
1136
- headers.setContentType("application/json", false);
1137
- return stringifySafely(data);
1138
- }
1139
- return data;
1140
- }],
1141
- transformResponse: [function transformResponse(data) {
1142
- const transitional = own(this, "transitional") || defaults.transitional;
1143
- const forcedJSONParsing = transitional && transitional.forcedJSONParsing;
1144
- const responseType = own(this, "responseType");
1145
- const JSONRequested = responseType === "json";
1146
- if (utils_default.isResponse(data) || utils_default.isReadableStream(data)) return data;
1147
- if (data && utils_default.isString(data) && (forcedJSONParsing && !responseType || JSONRequested)) {
1148
- const strictJSONParsing = !(transitional && transitional.silentJSONParsing) && JSONRequested;
1149
- try {
1150
- return JSON.parse(data, own(this, "parseReviver"));
1151
- } catch (e) {
1152
- if (strictJSONParsing) {
1153
- if (e.name === "SyntaxError") throw AxiosError$1.from(e, AxiosError$1.ERR_BAD_RESPONSE, this, null, own(this, "response"));
1154
- throw e;
1155
- }
1156
- }
1157
- }
1158
- return data;
1159
- }],
1160
- /**
1161
- * A timeout in milliseconds to abort a request. If set to 0 (default) a
1162
- * timeout is not created.
1163
- */
1164
- timeout: 0,
1165
- xsrfCookieName: "XSRF-TOKEN",
1166
- xsrfHeaderName: "X-XSRF-TOKEN",
1167
- maxContentLength: -1,
1168
- maxBodyLength: -1,
1169
- env: {
1170
- FormData: platform_default.classes.FormData,
1171
- Blob: platform_default.classes.Blob
1172
- },
1173
- validateStatus: function validateStatus(status) {
1174
- return status >= 200 && status < 300;
1175
- },
1176
- headers: { common: {
1177
- Accept: "application/json, text/plain, */*",
1178
- "Content-Type": void 0
1179
- } }
1180
- };
1181
- utils_default.forEach([
1182
- "delete",
1183
- "get",
1184
- "head",
1185
- "post",
1186
- "put",
1187
- "patch"
1188
- ], (method) => {
1189
- defaults.headers[method] = {};
1190
- });
1191
- }));
1192
- //#endregion
1193
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/parseHeaders.js
1194
- var ignoreDuplicateOf, parseHeaders_default;
1195
- var init_parseHeaders = __esmMin((() => {
1196
- init_utils$1();
1197
- ignoreDuplicateOf = utils_default.toObjectSet([
1198
- "age",
1199
- "authorization",
1200
- "content-length",
1201
- "content-type",
1202
- "etag",
1203
- "expires",
1204
- "from",
1205
- "host",
1206
- "if-modified-since",
1207
- "if-unmodified-since",
1208
- "last-modified",
1209
- "location",
1210
- "max-forwards",
1211
- "proxy-authorization",
1212
- "referer",
1213
- "retry-after",
1214
- "user-agent"
1215
- ]);
1216
- parseHeaders_default = (rawHeaders) => {
1217
- const parsed = {};
1218
- let key;
1219
- let val;
1220
- let i;
1221
- rawHeaders && rawHeaders.split("\n").forEach(function parser(line) {
1222
- i = line.indexOf(":");
1223
- key = line.substring(0, i).trim().toLowerCase();
1224
- val = line.substring(i + 1).trim();
1225
- if (!key || parsed[key] && ignoreDuplicateOf[key]) return;
1226
- if (key === "set-cookie") if (parsed[key]) parsed[key].push(val);
1227
- else parsed[key] = [val];
1228
- else parsed[key] = parsed[key] ? parsed[key] + ", " + val : val;
1229
- });
1230
- return parsed;
1231
- };
1232
- }));
1233
- //#endregion
1234
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/core/AxiosHeaders.js
1235
- function trimSPorHTAB(str) {
1236
- let start = 0;
1237
- let end = str.length;
1238
- while (start < end) {
1239
- const code = str.charCodeAt(start);
1240
- if (code !== 9 && code !== 32) break;
1241
- start += 1;
1242
- }
1243
- while (end > start) {
1244
- const code = str.charCodeAt(end - 1);
1245
- if (code !== 9 && code !== 32) break;
1246
- end -= 1;
1247
- }
1248
- return start === 0 && end === str.length ? str : str.slice(start, end);
1249
- }
1250
- function normalizeHeader(header) {
1251
- return header && String(header).trim().toLowerCase();
1252
- }
1253
- function sanitizeHeaderValue(str) {
1254
- return trimSPorHTAB(str.replace(INVALID_HEADER_VALUE_CHARS_RE, ""));
1255
- }
1256
- function normalizeValue(value) {
1257
- if (value === false || value == null) return value;
1258
- return utils_default.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));
1259
- }
1260
- function parseTokens(str) {
1261
- const tokens = Object.create(null);
1262
- const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;
1263
- let match;
1264
- while (match = tokensRE.exec(str)) tokens[match[1]] = match[2];
1265
- return tokens;
1266
- }
1267
- function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {
1268
- if (utils_default.isFunction(filter)) return filter.call(this, value, header);
1269
- if (isHeaderNameFilter) value = header;
1270
- if (!utils_default.isString(value)) return;
1271
- if (utils_default.isString(filter)) return value.indexOf(filter) !== -1;
1272
- if (utils_default.isRegExp(filter)) return filter.test(value);
1273
- }
1274
- function formatHeader(header) {
1275
- return header.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => {
1276
- return char.toUpperCase() + str;
1277
- });
1278
- }
1279
- function buildAccessors(obj, header) {
1280
- const accessorName = utils_default.toCamelCase(" " + header);
1281
- [
1282
- "get",
1283
- "set",
1284
- "has"
1285
- ].forEach((methodName) => {
1286
- Object.defineProperty(obj, methodName + accessorName, {
1287
- value: function(arg1, arg2, arg3) {
1288
- return this[methodName].call(this, header, arg1, arg2, arg3);
1289
- },
1290
- configurable: true
1291
- });
1292
- });
1293
- }
1294
- var $internals, INVALID_HEADER_VALUE_CHARS_RE, isValidHeaderName, AxiosHeaders$1;
1295
- var init_AxiosHeaders = __esmMin((() => {
1296
- init_utils$1();
1297
- init_parseHeaders();
1298
- $internals = Symbol("internals");
1299
- INVALID_HEADER_VALUE_CHARS_RE = /[^\x09\x20-\x7E\x80-\xFF]/g;
1300
- isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());
1301
- AxiosHeaders$1 = class {
1302
- constructor(headers) {
1303
- headers && this.set(headers);
1304
- }
1305
- set(header, valueOrRewrite, rewrite) {
1306
- const self = this;
1307
- function setHeader(_value, _header, _rewrite) {
1308
- const lHeader = normalizeHeader(_header);
1309
- if (!lHeader) throw new Error("header name must be a non-empty string");
1310
- const key = utils_default.findKey(self, lHeader);
1311
- if (!key || self[key] === void 0 || _rewrite === true || _rewrite === void 0 && self[key] !== false) self[key || _header] = normalizeValue(_value);
1312
- }
1313
- const setHeaders = (headers, _rewrite) => utils_default.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));
1314
- if (utils_default.isPlainObject(header) || header instanceof this.constructor) setHeaders(header, valueOrRewrite);
1315
- else if (utils_default.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) setHeaders(parseHeaders_default(header), valueOrRewrite);
1316
- else if (utils_default.isObject(header) && utils_default.isIterable(header)) {
1317
- let obj = {}, dest, key;
1318
- for (const entry of header) {
1319
- if (!utils_default.isArray(entry)) throw TypeError("Object iterator must return a key-value pair");
1320
- obj[key = entry[0]] = (dest = obj[key]) ? utils_default.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]] : entry[1];
1321
- }
1322
- setHeaders(obj, valueOrRewrite);
1323
- } else header != null && setHeader(valueOrRewrite, header, rewrite);
1324
- return this;
1325
- }
1326
- get(header, parser) {
1327
- header = normalizeHeader(header);
1328
- if (header) {
1329
- const key = utils_default.findKey(this, header);
1330
- if (key) {
1331
- const value = this[key];
1332
- if (!parser) return value;
1333
- if (parser === true) return parseTokens(value);
1334
- if (utils_default.isFunction(parser)) return parser.call(this, value, key);
1335
- if (utils_default.isRegExp(parser)) return parser.exec(value);
1336
- throw new TypeError("parser must be boolean|regexp|function");
1337
- }
1338
- }
1339
- }
1340
- has(header, matcher) {
1341
- header = normalizeHeader(header);
1342
- if (header) {
1343
- const key = utils_default.findKey(this, header);
1344
- return !!(key && this[key] !== void 0 && (!matcher || matchHeaderValue(this, this[key], key, matcher)));
1345
- }
1346
- return false;
1347
- }
1348
- delete(header, matcher) {
1349
- const self = this;
1350
- let deleted = false;
1351
- function deleteHeader(_header) {
1352
- _header = normalizeHeader(_header);
1353
- if (_header) {
1354
- const key = utils_default.findKey(self, _header);
1355
- if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {
1356
- delete self[key];
1357
- deleted = true;
1358
- }
1359
- }
1360
- }
1361
- if (utils_default.isArray(header)) header.forEach(deleteHeader);
1362
- else deleteHeader(header);
1363
- return deleted;
1364
- }
1365
- clear(matcher) {
1366
- const keys = Object.keys(this);
1367
- let i = keys.length;
1368
- let deleted = false;
1369
- while (i--) {
1370
- const key = keys[i];
1371
- if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {
1372
- delete this[key];
1373
- deleted = true;
1466
+ if (isObjectPayload) {
1467
+ const formSerializer = own(this, "formSerializer");
1468
+ if (contentType.indexOf("application/x-www-form-urlencoded") > -1) return toURLEncodedForm(data, formSerializer).toString();
1469
+ if ((isFileList = utils_default.isFileList(data)) || contentType.indexOf("multipart/form-data") > -1) {
1470
+ const env = own(this, "env");
1471
+ const _FormData = env && env.FormData;
1472
+ return toFormData$1(isFileList ? { "files[]": data } : data, _FormData && new _FormData(), formSerializer);
1374
1473
  }
1375
1474
  }
1376
- return deleted;
1377
- }
1378
- normalize(format) {
1379
- const self = this;
1380
- const headers = {};
1381
- utils_default.forEach(this, (value, header) => {
1382
- const key = utils_default.findKey(headers, header);
1383
- if (key) {
1384
- self[key] = normalizeValue(value);
1385
- delete self[header];
1386
- return;
1387
- }
1388
- const normalized = format ? formatHeader(header) : String(header).trim();
1389
- if (normalized !== header) delete self[header];
1390
- self[normalized] = normalizeValue(value);
1391
- headers[normalized] = true;
1392
- });
1393
- return this;
1394
- }
1395
- concat(...targets) {
1396
- return this.constructor.concat(this, ...targets);
1397
- }
1398
- toJSON(asStrings) {
1399
- const obj = Object.create(null);
1400
- utils_default.forEach(this, (value, header) => {
1401
- value != null && value !== false && (obj[header] = asStrings && utils_default.isArray(value) ? value.join(", ") : value);
1402
- });
1403
- return obj;
1404
- }
1405
- [Symbol.iterator]() {
1406
- return Object.entries(this.toJSON())[Symbol.iterator]();
1407
- }
1408
- toString() {
1409
- return Object.entries(this.toJSON()).map(([header, value]) => header + ": " + value).join("\n");
1410
- }
1411
- getSetCookie() {
1412
- return this.get("set-cookie") || [];
1413
- }
1414
- get [Symbol.toStringTag]() {
1415
- return "AxiosHeaders";
1416
- }
1417
- static from(thing) {
1418
- return thing instanceof this ? thing : new this(thing);
1419
- }
1420
- static concat(first, ...targets) {
1421
- const computed = new this(first);
1422
- targets.forEach((target) => computed.set(target));
1423
- return computed;
1424
- }
1425
- static accessor(header) {
1426
- const accessors = (this[$internals] = this[$internals] = { accessors: {} }).accessors;
1427
- const prototype = this.prototype;
1428
- function defineAccessor(_header) {
1429
- const lHeader = normalizeHeader(_header);
1430
- if (!accessors[lHeader]) {
1431
- buildAccessors(prototype, _header);
1432
- accessors[lHeader] = true;
1475
+ if (isObjectPayload || hasJSONContentType) {
1476
+ headers.setContentType("application/json", false);
1477
+ return stringifySafely(data);
1478
+ }
1479
+ return data;
1480
+ }],
1481
+ transformResponse: [function transformResponse(data) {
1482
+ const transitional = own(this, "transitional") || defaults.transitional;
1483
+ const forcedJSONParsing = transitional && transitional.forcedJSONParsing;
1484
+ const responseType = own(this, "responseType");
1485
+ const JSONRequested = responseType === "json";
1486
+ if (utils_default.isResponse(data) || utils_default.isReadableStream(data)) return data;
1487
+ if (data && utils_default.isString(data) && (forcedJSONParsing && !responseType || JSONRequested)) {
1488
+ const strictJSONParsing = !(transitional && transitional.silentJSONParsing) && JSONRequested;
1489
+ try {
1490
+ return JSON.parse(data, own(this, "parseReviver"));
1491
+ } catch (e) {
1492
+ if (strictJSONParsing) {
1493
+ if (e.name === "SyntaxError") throw AxiosError$1.from(e, AxiosError$1.ERR_BAD_RESPONSE, this, null, own(this, "response"));
1494
+ throw e;
1495
+ }
1433
1496
  }
1434
1497
  }
1435
- utils_default.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);
1436
- return this;
1437
- }
1498
+ return data;
1499
+ }],
1500
+ /**
1501
+ * A timeout in milliseconds to abort a request. If set to 0 (default) a
1502
+ * timeout is not created.
1503
+ */
1504
+ timeout: 0,
1505
+ xsrfCookieName: "XSRF-TOKEN",
1506
+ xsrfHeaderName: "X-XSRF-TOKEN",
1507
+ maxContentLength: -1,
1508
+ maxBodyLength: -1,
1509
+ env: {
1510
+ FormData: platform_default.classes.FormData,
1511
+ Blob: platform_default.classes.Blob
1512
+ },
1513
+ validateStatus: function validateStatus(status) {
1514
+ return status >= 200 && status < 300;
1515
+ },
1516
+ headers: { common: {
1517
+ Accept: "application/json, text/plain, */*",
1518
+ "Content-Type": void 0
1519
+ } }
1438
1520
  };
1439
- AxiosHeaders$1.accessor([
1440
- "Content-Type",
1441
- "Content-Length",
1442
- "Accept",
1443
- "Accept-Encoding",
1444
- "User-Agent",
1445
- "Authorization"
1446
- ]);
1447
- utils_default.reduceDescriptors(AxiosHeaders$1.prototype, ({ value }, key) => {
1448
- let mapped = key[0].toUpperCase() + key.slice(1);
1449
- return {
1450
- get: () => value,
1451
- set(headerValue) {
1452
- this[mapped] = headerValue;
1453
- }
1454
- };
1521
+ utils_default.forEach([
1522
+ "delete",
1523
+ "get",
1524
+ "head",
1525
+ "post",
1526
+ "put",
1527
+ "patch",
1528
+ "query"
1529
+ ], (method) => {
1530
+ defaults.headers[method] = {};
1455
1531
  });
1456
- utils_default.freezeMethods(AxiosHeaders$1);
1457
1532
  }));
1458
1533
  //#endregion
1459
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/core/transformData.js
1534
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/core/transformData.js
1460
1535
  /**
1461
1536
  * Transform the data for a request or a response
1462
1537
  *
@@ -1482,13 +1557,13 @@ var init_transformData = __esmMin((() => {
1482
1557
  init_AxiosHeaders();
1483
1558
  }));
1484
1559
  //#endregion
1485
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/cancel/isCancel.js
1560
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/cancel/isCancel.js
1486
1561
  function isCancel$1(value) {
1487
1562
  return !!(value && value.__CANCEL__);
1488
1563
  }
1489
1564
  var init_isCancel = __esmMin((() => {}));
1490
1565
  //#endregion
1491
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/cancel/CanceledError.js
1566
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/cancel/CanceledError.js
1492
1567
  var CanceledError$1;
1493
1568
  var init_CanceledError = __esmMin((() => {
1494
1569
  init_AxiosError();
@@ -1510,7 +1585,7 @@ var init_CanceledError = __esmMin((() => {
1510
1585
  };
1511
1586
  }));
1512
1587
  //#endregion
1513
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/core/settle.js
1588
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/core/settle.js
1514
1589
  /**
1515
1590
  * Resolve or reject a Promise based on response status.
1516
1591
  *
@@ -1523,20 +1598,20 @@ var init_CanceledError = __esmMin((() => {
1523
1598
  function settle(resolve, reject, response) {
1524
1599
  const validateStatus = response.config.validateStatus;
1525
1600
  if (!response.status || !validateStatus || validateStatus(response.status)) resolve(response);
1526
- else reject(new AxiosError$1("Request failed with status code " + response.status, [AxiosError$1.ERR_BAD_REQUEST, AxiosError$1.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], response.config, response.request, response));
1601
+ else reject(new AxiosError$1("Request failed with status code " + response.status, response.status >= 400 && response.status < 500 ? AxiosError$1.ERR_BAD_REQUEST : AxiosError$1.ERR_BAD_RESPONSE, response.config, response.request, response));
1527
1602
  }
1528
1603
  var init_settle = __esmMin((() => {
1529
1604
  init_AxiosError();
1530
1605
  }));
1531
1606
  //#endregion
1532
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/parseProtocol.js
1607
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/parseProtocol.js
1533
1608
  function parseProtocol(url) {
1534
- const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url);
1609
+ const match = /^([-+\w]{1,25}):(?:\/\/)?/.exec(url);
1535
1610
  return match && match[1] || "";
1536
1611
  }
1537
1612
  var init_parseProtocol = __esmMin((() => {}));
1538
1613
  //#endregion
1539
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/speedometer.js
1614
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/speedometer.js
1540
1615
  /**
1541
1616
  * Calculate data maxRate
1542
1617
  * @param {Number} [samplesCount= 10]
@@ -1572,7 +1647,7 @@ function speedometer(samplesCount, min) {
1572
1647
  }
1573
1648
  var init_speedometer = __esmMin((() => {}));
1574
1649
  //#endregion
1575
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/throttle.js
1650
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/throttle.js
1576
1651
  /**
1577
1652
  * Throttle decorator
1578
1653
  * @param {Function} fn
@@ -1610,7 +1685,7 @@ function throttle(fn, freq) {
1610
1685
  }
1611
1686
  var init_throttle = __esmMin((() => {}));
1612
1687
  //#endregion
1613
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/progressEventReducer.js
1688
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/progressEventReducer.js
1614
1689
  var progressEventReducer, progressEventDecorator, asyncDecorator;
1615
1690
  var init_progressEventReducer = __esmMin((() => {
1616
1691
  init_speedometer();
@@ -1620,6 +1695,7 @@ var init_progressEventReducer = __esmMin((() => {
1620
1695
  let bytesNotified = 0;
1621
1696
  const _speedometer = speedometer(50, 250);
1622
1697
  return throttle((e) => {
1698
+ if (!e || typeof e.loaded !== "number") return;
1623
1699
  const rawLoaded = e.loaded;
1624
1700
  const total = e.lengthComputable ? e.total : void 0;
1625
1701
  const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;
@@ -1650,7 +1726,7 @@ var init_progressEventReducer = __esmMin((() => {
1650
1726
  asyncDecorator = (fn) => (...args) => utils_default.asap(() => fn(...args));
1651
1727
  }));
1652
1728
  //#endregion
1653
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/isURLSameOrigin.js
1729
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/isURLSameOrigin.js
1654
1730
  var isURLSameOrigin_default;
1655
1731
  var init_isURLSameOrigin = __esmMin((() => {
1656
1732
  init_platform();
@@ -1660,7 +1736,7 @@ var init_isURLSameOrigin = __esmMin((() => {
1660
1736
  })(new URL(platform_default.origin), platform_default.navigator && /(msie|trident)/i.test(platform_default.navigator.userAgent)) : () => true;
1661
1737
  }));
1662
1738
  //#endregion
1663
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/cookies.js
1739
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/cookies.js
1664
1740
  var cookies_default;
1665
1741
  var init_cookies = __esmMin((() => {
1666
1742
  init_utils$1();
@@ -1678,8 +1754,13 @@ var init_cookies = __esmMin((() => {
1678
1754
  },
1679
1755
  read(name) {
1680
1756
  if (typeof document === "undefined") return null;
1681
- const match = document.cookie.match(new RegExp("(?:^|; )" + name + "=([^;]*)"));
1682
- return match ? decodeURIComponent(match[1]) : null;
1757
+ const cookies = document.cookie.split(";");
1758
+ for (let i = 0; i < cookies.length; i++) {
1759
+ const cookie = cookies[i].replace(/^\s+/, "");
1760
+ const eq = cookie.indexOf("=");
1761
+ if (eq !== -1 && cookie.slice(0, eq) === name) return decodeURIComponent(cookie.slice(eq + 1));
1762
+ }
1763
+ return null;
1683
1764
  },
1684
1765
  remove(name) {
1685
1766
  this.write(name, "", Date.now() - 864e5, "/");
@@ -1693,7 +1774,7 @@ var init_cookies = __esmMin((() => {
1693
1774
  };
1694
1775
  }));
1695
1776
  //#endregion
1696
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/isAbsoluteURL.js
1777
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/isAbsoluteURL.js
1697
1778
  /**
1698
1779
  * Determines whether the specified URL is absolute
1699
1780
  *
@@ -1707,7 +1788,7 @@ function isAbsoluteURL(url) {
1707
1788
  }
1708
1789
  var init_isAbsoluteURL = __esmMin((() => {}));
1709
1790
  //#endregion
1710
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/combineURLs.js
1791
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/combineURLs.js
1711
1792
  /**
1712
1793
  * Creates a new URL by combining the specified URLs
1713
1794
  *
@@ -1721,7 +1802,7 @@ function combineURLs(baseURL, relativeURL) {
1721
1802
  }
1722
1803
  var init_combineURLs = __esmMin((() => {}));
1723
1804
  //#endregion
1724
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/core/buildFullPath.js
1805
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/core/buildFullPath.js
1725
1806
  /**
1726
1807
  * Creates a new URL by combining the baseURL with the requestedURL,
1727
1808
  * only when the requestedURL is not already an absolute URL.
@@ -1742,7 +1823,7 @@ var init_buildFullPath = __esmMin((() => {
1742
1823
  init_combineURLs();
1743
1824
  }));
1744
1825
  //#endregion
1745
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/core/mergeConfig.js
1826
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/core/mergeConfig.js
1746
1827
  /**
1747
1828
  * Config-specific merge-function which creates a new config-object
1748
1829
  * by merging two configuration objects together.
@@ -1756,6 +1837,7 @@ function mergeConfig$1(config1, config2) {
1756
1837
  config2 = config2 || {};
1757
1838
  const config = Object.create(null);
1758
1839
  Object.defineProperty(config, "hasOwnProperty", {
1840
+ __proto__: null,
1759
1841
  value: Object.prototype.hasOwnProperty,
1760
1842
  enumerable: false,
1761
1843
  writable: true,
@@ -1832,8 +1914,17 @@ var init_mergeConfig = __esmMin((() => {
1832
1914
  headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing;
1833
1915
  }));
1834
1916
  //#endregion
1835
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/resolveConfig.js
1836
- var resolveConfig_default;
1917
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/resolveConfig.js
1918
+ function setFormDataHeaders(headers, formHeaders, policy) {
1919
+ if (policy !== "content-only") {
1920
+ headers.set(formHeaders);
1921
+ return;
1922
+ }
1923
+ Object.entries(formHeaders).forEach(([key, val]) => {
1924
+ if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) headers.set(key, val);
1925
+ });
1926
+ }
1927
+ var FORM_DATA_CONTENT_HEADERS, encodeUTF8, resolveConfig_default;
1837
1928
  var init_resolveConfig = __esmMin((() => {
1838
1929
  init_platform();
1839
1930
  init_utils$1();
@@ -1843,6 +1934,8 @@ var init_resolveConfig = __esmMin((() => {
1843
1934
  init_mergeConfig();
1844
1935
  init_AxiosHeaders();
1845
1936
  init_buildURL();
1937
+ FORM_DATA_CONTENT_HEADERS = ["content-type", "content-length"];
1938
+ encodeUTF8 = (str) => encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) => String.fromCharCode(parseInt(hex, 16)));
1846
1939
  resolveConfig_default = (config) => {
1847
1940
  const newConfig = mergeConfig$1({}, config);
1848
1941
  const own = (key) => utils_default.hasOwnProp(newConfig, key) ? newConfig[key] : void 0;
@@ -1857,16 +1950,10 @@ var init_resolveConfig = __esmMin((() => {
1857
1950
  const url = own("url");
1858
1951
  newConfig.headers = headers = AxiosHeaders$1.from(headers);
1859
1952
  newConfig.url = buildURL(buildFullPath(baseURL, url, allowAbsoluteUrls), config.params, config.paramsSerializer);
1860
- if (auth) headers.set("Authorization", "Basic " + btoa((auth.username || "") + ":" + (auth.password ? unescape(encodeURIComponent(auth.password)) : "")));
1953
+ if (auth) headers.set("Authorization", "Basic " + btoa((auth.username || "") + ":" + (auth.password ? encodeUTF8(auth.password) : "")));
1861
1954
  if (utils_default.isFormData(data)) {
1862
1955
  if (platform_default.hasStandardBrowserEnv || platform_default.hasStandardBrowserWebWorkerEnv) headers.setContentType(void 0);
1863
- else if (utils_default.isFunction(data.getHeaders)) {
1864
- const formHeaders = data.getHeaders();
1865
- const allowedHeaders = ["content-type", "content-length"];
1866
- Object.entries(formHeaders).forEach(([key, val]) => {
1867
- if (allowedHeaders.includes(key.toLowerCase())) headers.set(key, val);
1868
- });
1869
- }
1956
+ else if (utils_default.isFunction(data.getHeaders)) setFormDataHeaders(headers, data.getHeaders(), own("formDataHeaderPolicy"));
1870
1957
  }
1871
1958
  if (platform_default.hasStandardBrowserEnv) {
1872
1959
  if (utils_default.isFunction(withXSRFToken)) withXSRFToken = withXSRFToken(newConfig);
@@ -1879,7 +1966,7 @@ var init_resolveConfig = __esmMin((() => {
1879
1966
  };
1880
1967
  }));
1881
1968
  //#endregion
1882
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/adapters/xhr.js
1969
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/adapters/xhr.js
1883
1970
  var isXHRAdapterSupported, xhr_default;
1884
1971
  var init_xhr = __esmMin((() => {
1885
1972
  init_utils$1();
@@ -1892,6 +1979,7 @@ var init_xhr = __esmMin((() => {
1892
1979
  init_AxiosHeaders();
1893
1980
  init_progressEventReducer();
1894
1981
  init_resolveConfig();
1982
+ init_sanitizeHeaderValue();
1895
1983
  isXHRAdapterSupported = typeof XMLHttpRequest !== "undefined";
1896
1984
  xhr_default = isXHRAdapterSupported && function(config) {
1897
1985
  return new Promise(function dispatchXhrRequest(resolve, reject) {
@@ -1933,18 +2021,20 @@ var init_xhr = __esmMin((() => {
1933
2021
  if ("onloadend" in request) request.onloadend = onloadend;
1934
2022
  else request.onreadystatechange = function handleLoad() {
1935
2023
  if (!request || request.readyState !== 4) return;
1936
- if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf("file:") === 0)) return;
2024
+ if (request.status === 0 && !(request.responseURL && request.responseURL.startsWith("file:"))) return;
1937
2025
  setTimeout(onloadend);
1938
2026
  };
1939
2027
  request.onabort = function handleAbort() {
1940
2028
  if (!request) return;
1941
2029
  reject(new AxiosError$1("Request aborted", AxiosError$1.ECONNABORTED, config, request));
2030
+ done();
1942
2031
  request = null;
1943
2032
  };
1944
2033
  request.onerror = function handleError(event) {
1945
2034
  const err = new AxiosError$1(event && event.message ? event.message : "Network Error", AxiosError$1.ERR_NETWORK, config, request);
1946
2035
  err.event = event || null;
1947
2036
  reject(err);
2037
+ done();
1948
2038
  request = null;
1949
2039
  };
1950
2040
  request.ontimeout = function handleTimeout() {
@@ -1952,10 +2042,11 @@ var init_xhr = __esmMin((() => {
1952
2042
  const transitional = _config.transitional || transitional_default;
1953
2043
  if (_config.timeoutErrorMessage) timeoutErrorMessage = _config.timeoutErrorMessage;
1954
2044
  reject(new AxiosError$1(timeoutErrorMessage, transitional.clarifyTimeoutError ? AxiosError$1.ETIMEDOUT : AxiosError$1.ECONNABORTED, config, request));
2045
+ done();
1955
2046
  request = null;
1956
2047
  };
1957
2048
  requestData === void 0 && requestHeaders.setContentType(null);
1958
- if ("setRequestHeader" in request) utils_default.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {
2049
+ if ("setRequestHeader" in request) utils_default.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) {
1959
2050
  request.setRequestHeader(key, val);
1960
2051
  });
1961
2052
  if (!utils_default.isUndefined(_config.withCredentials)) request.withCredentials = !!_config.withCredentials;
@@ -1974,13 +2065,14 @@ var init_xhr = __esmMin((() => {
1974
2065
  if (!request) return;
1975
2066
  reject(!cancel || cancel.type ? new CanceledError$1(null, config, request) : cancel);
1976
2067
  request.abort();
2068
+ done();
1977
2069
  request = null;
1978
2070
  };
1979
2071
  _config.cancelToken && _config.cancelToken.subscribe(onCanceled);
1980
2072
  if (_config.signal) _config.signal.aborted ? onCanceled() : _config.signal.addEventListener("abort", onCanceled);
1981
2073
  }
1982
2074
  const protocol = parseProtocol(_config.url);
1983
- if (protocol && platform_default.protocols.indexOf(protocol) === -1) {
2075
+ if (protocol && !platform_default.protocols.includes(protocol)) {
1984
2076
  reject(new AxiosError$1("Unsupported protocol " + protocol + ":", AxiosError$1.ERR_BAD_REQUEST, config));
1985
2077
  return;
1986
2078
  }
@@ -1989,48 +2081,46 @@ var init_xhr = __esmMin((() => {
1989
2081
  };
1990
2082
  }));
1991
2083
  //#endregion
1992
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/composeSignals.js
2084
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/composeSignals.js
1993
2085
  var composeSignals;
1994
2086
  var init_composeSignals = __esmMin((() => {
1995
2087
  init_CanceledError();
1996
2088
  init_AxiosError();
1997
2089
  init_utils$1();
1998
2090
  composeSignals = (signals, timeout) => {
1999
- const { length } = signals = signals ? signals.filter(Boolean) : [];
2000
- if (timeout || length) {
2001
- let controller = new AbortController();
2002
- let aborted;
2003
- const onabort = function(reason) {
2004
- if (!aborted) {
2005
- aborted = true;
2006
- unsubscribe();
2007
- const err = reason instanceof Error ? reason : this.reason;
2008
- controller.abort(err instanceof AxiosError$1 ? err : new CanceledError$1(err instanceof Error ? err.message : err));
2009
- }
2010
- };
2011
- let timer = timeout && setTimeout(() => {
2012
- timer = null;
2013
- onabort(new AxiosError$1(`timeout of ${timeout}ms exceeded`, AxiosError$1.ETIMEDOUT));
2014
- }, timeout);
2015
- const unsubscribe = () => {
2016
- if (signals) {
2017
- timer && clearTimeout(timer);
2018
- timer = null;
2019
- signals.forEach((signal) => {
2020
- signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener("abort", onabort);
2021
- });
2022
- signals = null;
2023
- }
2024
- };
2025
- signals.forEach((signal) => signal.addEventListener("abort", onabort));
2026
- const { signal } = controller;
2027
- signal.unsubscribe = () => utils_default.asap(unsubscribe);
2028
- return signal;
2029
- }
2091
+ signals = signals ? signals.filter(Boolean) : [];
2092
+ if (!timeout && !signals.length) return;
2093
+ const controller = new AbortController();
2094
+ let aborted = false;
2095
+ const onabort = function(reason) {
2096
+ if (!aborted) {
2097
+ aborted = true;
2098
+ unsubscribe();
2099
+ const err = reason instanceof Error ? reason : this.reason;
2100
+ controller.abort(err instanceof AxiosError$1 ? err : new CanceledError$1(err instanceof Error ? err.message : err));
2101
+ }
2102
+ };
2103
+ let timer = timeout && setTimeout(() => {
2104
+ timer = null;
2105
+ onabort(new AxiosError$1(`timeout of ${timeout}ms exceeded`, AxiosError$1.ETIMEDOUT));
2106
+ }, timeout);
2107
+ const unsubscribe = () => {
2108
+ if (!signals) return;
2109
+ timer && clearTimeout(timer);
2110
+ timer = null;
2111
+ signals.forEach((signal) => {
2112
+ signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener("abort", onabort);
2113
+ });
2114
+ signals = null;
2115
+ };
2116
+ signals.forEach((signal) => signal.addEventListener("abort", onabort));
2117
+ const { signal } = controller;
2118
+ signal.unsubscribe = () => utils_default.asap(unsubscribe);
2119
+ return signal;
2030
2120
  };
2031
2121
  }));
2032
2122
  //#endregion
2033
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/trackStream.js
2123
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/trackStream.js
2034
2124
  var streamChunk, readBytes, readStream, trackStream;
2035
2125
  var init_trackStream = __esmMin((() => {
2036
2126
  streamChunk = function* (chunk, chunkSize) {
@@ -2099,7 +2189,78 @@ var init_trackStream = __esmMin((() => {
2099
2189
  }
2100
2190
  }, { highWaterMark: 2 });
2101
2191
  };
2102
- })), DEFAULT_CHUNK_SIZE, isFunction, globalFetchAPI, ReadableStream$1, TextEncoder, test, factory, seedCache, getFetch;
2192
+ }));
2193
+ //#endregion
2194
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js
2195
+ /**
2196
+ * Estimate decoded byte length of a data:// URL *without* allocating large buffers.
2197
+ * - For base64: compute exact decoded size using length and padding;
2198
+ * handle %XX at the character-count level (no string allocation).
2199
+ * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound.
2200
+ *
2201
+ * @param {string} url
2202
+ * @returns {number}
2203
+ */
2204
+ function estimateDataURLDecodedBytes(url) {
2205
+ if (!url || typeof url !== "string") return 0;
2206
+ if (!url.startsWith("data:")) return 0;
2207
+ const comma = url.indexOf(",");
2208
+ if (comma < 0) return 0;
2209
+ const meta = url.slice(5, comma);
2210
+ const body = url.slice(comma + 1);
2211
+ if (/;base64/i.test(meta)) {
2212
+ let effectiveLen = body.length;
2213
+ const len = body.length;
2214
+ for (let i = 0; i < len; i++) if (body.charCodeAt(i) === 37 && i + 2 < len) {
2215
+ const a = body.charCodeAt(i + 1);
2216
+ const b = body.charCodeAt(i + 2);
2217
+ if ((a >= 48 && a <= 57 || a >= 65 && a <= 70 || a >= 97 && a <= 102) && (b >= 48 && b <= 57 || b >= 65 && b <= 70 || b >= 97 && b <= 102)) {
2218
+ effectiveLen -= 2;
2219
+ i += 2;
2220
+ }
2221
+ }
2222
+ let pad = 0;
2223
+ let idx = len - 1;
2224
+ const tailIsPct3D = (j) => j >= 2 && body.charCodeAt(j - 2) === 37 && body.charCodeAt(j - 1) === 51 && (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100);
2225
+ if (idx >= 0) {
2226
+ if (body.charCodeAt(idx) === 61) {
2227
+ pad++;
2228
+ idx--;
2229
+ } else if (tailIsPct3D(idx)) {
2230
+ pad++;
2231
+ idx -= 3;
2232
+ }
2233
+ }
2234
+ if (pad === 1 && idx >= 0) {
2235
+ if (body.charCodeAt(idx) === 61) pad++;
2236
+ else if (tailIsPct3D(idx)) pad++;
2237
+ }
2238
+ const bytes = Math.floor(effectiveLen / 4) * 3 - (pad || 0);
2239
+ return bytes > 0 ? bytes : 0;
2240
+ }
2241
+ if (typeof Buffer !== "undefined" && typeof Buffer.byteLength === "function") return Buffer.byteLength(body, "utf8");
2242
+ let bytes = 0;
2243
+ for (let i = 0, len = body.length; i < len; i++) {
2244
+ const c = body.charCodeAt(i);
2245
+ if (c < 128) bytes += 1;
2246
+ else if (c < 2048) bytes += 2;
2247
+ else if (c >= 55296 && c <= 56319 && i + 1 < len) {
2248
+ const next = body.charCodeAt(i + 1);
2249
+ if (next >= 56320 && next <= 57343) {
2250
+ bytes += 4;
2251
+ i++;
2252
+ } else bytes += 3;
2253
+ } else bytes += 3;
2254
+ }
2255
+ return bytes;
2256
+ }
2257
+ var init_estimateDataURLDecodedBytes = __esmMin((() => {}));
2258
+ //#endregion
2259
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/env/data.js
2260
+ var VERSION$1;
2261
+ var init_data = __esmMin((() => {
2262
+ VERSION$1 = "1.16.1";
2263
+ })), DEFAULT_CHUNK_SIZE, isFunction, test, factory, seedCache, getFetch;
2103
2264
  var init_fetch = __esmMin((() => {
2104
2265
  init_platform();
2105
2266
  init_utils$1();
@@ -2110,13 +2271,11 @@ var init_fetch = __esmMin((() => {
2110
2271
  init_progressEventReducer();
2111
2272
  init_resolveConfig();
2112
2273
  init_settle();
2274
+ init_estimateDataURLDecodedBytes();
2275
+ init_data();
2276
+ init_sanitizeHeaderValue();
2113
2277
  DEFAULT_CHUNK_SIZE = 64 * 1024;
2114
2278
  ({isFunction} = utils_default);
2115
- globalFetchAPI = (({ Request, Response }) => ({
2116
- Request,
2117
- Response
2118
- }))(utils_default.global);
2119
- ({ReadableStream: ReadableStream$1, TextEncoder} = utils_default.global);
2120
2279
  test = (fn, ...args) => {
2121
2280
  try {
2122
2281
  return !!fn(...args);
@@ -2125,18 +2284,23 @@ var init_fetch = __esmMin((() => {
2125
2284
  }
2126
2285
  };
2127
2286
  factory = (env) => {
2128
- env = utils_default.merge.call({ skipUndefined: true }, globalFetchAPI, env);
2287
+ const globalObject = utils_default.global !== void 0 && utils_default.global !== null ? utils_default.global : globalThis;
2288
+ const { ReadableStream, TextEncoder } = globalObject;
2289
+ env = utils_default.merge.call({ skipUndefined: true }, {
2290
+ Request: globalObject.Request,
2291
+ Response: globalObject.Response
2292
+ }, env);
2129
2293
  const { fetch: envFetch, Request, Response } = env;
2130
2294
  const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === "function";
2131
2295
  const isRequestSupported = isFunction(Request);
2132
2296
  const isResponseSupported = isFunction(Response);
2133
2297
  if (!isFetchSupported) return false;
2134
- const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream$1);
2298
+ const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);
2135
2299
  const encodeText = isFetchSupported && (typeof TextEncoder === "function" ? ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));
2136
2300
  const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {
2137
2301
  let duplexAccessed = false;
2138
2302
  const request = new Request(platform_default.origin, {
2139
- body: new ReadableStream$1(),
2303
+ body: new ReadableStream(),
2140
2304
  method: "POST",
2141
2305
  get duplex() {
2142
2306
  duplexAccessed = true;
@@ -2178,7 +2342,9 @@ var init_fetch = __esmMin((() => {
2178
2342
  return length == null ? getBodyLength(body) : length;
2179
2343
  };
2180
2344
  return async (config) => {
2181
- let { url, method, data, signal, cancelToken, timeout, onDownloadProgress, onUploadProgress, responseType, headers, withCredentials = "same-origin", fetchOptions } = resolveConfig_default(config);
2345
+ let { url, method, data, signal, cancelToken, timeout, onDownloadProgress, onUploadProgress, responseType, headers, withCredentials = "same-origin", fetchOptions, maxContentLength, maxBodyLength } = resolveConfig_default(config);
2346
+ const hasMaxContentLength = utils_default.isNumber(maxContentLength) && maxContentLength > -1;
2347
+ const hasMaxBodyLength = utils_default.isNumber(maxBodyLength) && maxBodyLength > -1;
2182
2348
  let _fetch = envFetch || fetch;
2183
2349
  responseType = responseType ? (responseType + "").toLowerCase() : "text";
2184
2350
  let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);
@@ -2188,6 +2354,13 @@ var init_fetch = __esmMin((() => {
2188
2354
  });
2189
2355
  let requestContentLength;
2190
2356
  try {
2357
+ if (hasMaxContentLength && typeof url === "string" && url.startsWith("data:")) {
2358
+ if (estimateDataURLDecodedBytes(url) > maxContentLength) throw new AxiosError$1("maxContentLength size of " + maxContentLength + " exceeded", AxiosError$1.ERR_BAD_RESPONSE, config, request);
2359
+ }
2360
+ if (hasMaxBodyLength && method !== "get" && method !== "head") {
2361
+ const outboundLength = await resolveBodyLength(headers, data);
2362
+ if (typeof outboundLength === "number" && isFinite(outboundLength) && outboundLength > maxBodyLength) throw new AxiosError$1("Request body larger than maxBodyLength limit", AxiosError$1.ERR_BAD_REQUEST, config, request);
2363
+ }
2191
2364
  if (onUploadProgress && supportsRequestStream && method !== "get" && method !== "head" && (requestContentLength = await resolveBodyLength(headers, data)) !== 0) {
2192
2365
  let _request = new Request(url, {
2193
2366
  method: "POST",
@@ -2207,19 +2380,24 @@ var init_fetch = __esmMin((() => {
2207
2380
  const contentType = headers.getContentType();
2208
2381
  if (contentType && /^multipart\/form-data/i.test(contentType) && !/boundary=/i.test(contentType)) headers.delete("content-type");
2209
2382
  }
2383
+ headers.set("User-Agent", "axios/" + VERSION$1, false);
2210
2384
  const resolvedOptions = {
2211
2385
  ...fetchOptions,
2212
2386
  signal: composedSignal,
2213
2387
  method: method.toUpperCase(),
2214
- headers: headers.normalize().toJSON(),
2388
+ headers: toByteStringHeaderObject(headers.normalize()),
2215
2389
  body: data,
2216
2390
  duplex: "half",
2217
2391
  credentials: isCredentialsSupported ? withCredentials : void 0
2218
2392
  };
2219
2393
  request = isRequestSupported && new Request(url, resolvedOptions);
2220
2394
  let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));
2395
+ if (hasMaxContentLength) {
2396
+ const declaredLength = utils_default.toFiniteNumber(response.headers.get("content-length"));
2397
+ if (declaredLength != null && declaredLength > maxContentLength) throw new AxiosError$1("maxContentLength size of " + maxContentLength + " exceeded", AxiosError$1.ERR_BAD_RESPONSE, config, request);
2398
+ }
2221
2399
  const isStreamResponse = supportsResponseStream && (responseType === "stream" || responseType === "response");
2222
- if (supportsResponseStream && (onDownloadProgress || isStreamResponse && unsubscribe)) {
2400
+ if (supportsResponseStream && response.body && (onDownloadProgress || hasMaxContentLength || isStreamResponse && unsubscribe)) {
2223
2401
  const options = {};
2224
2402
  [
2225
2403
  "status",
@@ -2230,13 +2408,30 @@ var init_fetch = __esmMin((() => {
2230
2408
  });
2231
2409
  const responseContentLength = utils_default.toFiniteNumber(response.headers.get("content-length"));
2232
2410
  const [onProgress, flush] = onDownloadProgress && progressEventDecorator(responseContentLength, progressEventReducer(asyncDecorator(onDownloadProgress), true)) || [];
2233
- response = new Response(trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {
2411
+ let bytesRead = 0;
2412
+ const onChunkProgress = (loadedBytes) => {
2413
+ if (hasMaxContentLength) {
2414
+ bytesRead = loadedBytes;
2415
+ if (bytesRead > maxContentLength) throw new AxiosError$1("maxContentLength size of " + maxContentLength + " exceeded", AxiosError$1.ERR_BAD_RESPONSE, config, request);
2416
+ }
2417
+ onProgress && onProgress(loadedBytes);
2418
+ };
2419
+ response = new Response(trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => {
2234
2420
  flush && flush();
2235
2421
  unsubscribe && unsubscribe();
2236
2422
  }), options);
2237
2423
  }
2238
2424
  responseType = responseType || "text";
2239
2425
  let responseData = await resolvers[utils_default.findKey(resolvers, responseType) || "text"](response, config);
2426
+ if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) {
2427
+ let materializedSize;
2428
+ if (responseData != null) {
2429
+ if (typeof responseData.byteLength === "number") materializedSize = responseData.byteLength;
2430
+ else if (typeof responseData.size === "number") materializedSize = responseData.size;
2431
+ else if (typeof responseData === "string") materializedSize = typeof TextEncoder === "function" ? new TextEncoder().encode(responseData).byteLength : responseData.length;
2432
+ }
2433
+ if (typeof materializedSize === "number" && materializedSize > maxContentLength) throw new AxiosError$1("maxContentLength size of " + maxContentLength + " exceeded", AxiosError$1.ERR_BAD_RESPONSE, config, request);
2434
+ }
2240
2435
  !isStreamResponse && unsubscribe && unsubscribe();
2241
2436
  return await new Promise((resolve, reject) => {
2242
2437
  settle(resolve, reject, {
@@ -2250,6 +2445,13 @@ var init_fetch = __esmMin((() => {
2250
2445
  });
2251
2446
  } catch (err) {
2252
2447
  unsubscribe && unsubscribe();
2448
+ if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError$1) {
2449
+ const canceledError = composedSignal.reason;
2450
+ canceledError.config = config;
2451
+ request && (canceledError.request = request);
2452
+ err !== canceledError && (canceledError.cause = err);
2453
+ throw canceledError;
2454
+ }
2253
2455
  if (err && err.name === "TypeError" && /Load failed|fetch/i.test(err.message)) throw Object.assign(new AxiosError$1("Network Error", AxiosError$1.ERR_NETWORK, config, request, err && err.response), { cause: err.cause || err });
2254
2456
  throw AxiosError$1.from(err, err && err.code, config, request, err && err.response);
2255
2457
  }
@@ -2276,7 +2478,7 @@ var init_fetch = __esmMin((() => {
2276
2478
  getFetch();
2277
2479
  }));
2278
2480
  //#endregion
2279
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/adapters/adapters.js
2481
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/adapters/adapters.js
2280
2482
  /**
2281
2483
  * Get the first suitable adapter from the provided list.
2282
2484
  * Tries each adapter in order until a supported one is found.
@@ -2325,9 +2527,15 @@ var init_adapters = __esmMin((() => {
2325
2527
  utils_default.forEach(knownAdapters, (fn, value) => {
2326
2528
  if (fn) {
2327
2529
  try {
2328
- Object.defineProperty(fn, "name", { value });
2530
+ Object.defineProperty(fn, "name", {
2531
+ __proto__: null,
2532
+ value
2533
+ });
2329
2534
  } catch (e) {}
2330
- Object.defineProperty(fn, "adapterName", { value });
2535
+ Object.defineProperty(fn, "adapterName", {
2536
+ __proto__: null,
2537
+ value
2538
+ });
2331
2539
  }
2332
2540
  });
2333
2541
  renderReason = (reason) => `- ${reason}`;
@@ -2346,7 +2554,7 @@ var init_adapters = __esmMin((() => {
2346
2554
  };
2347
2555
  }));
2348
2556
  //#endregion
2349
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/core/dispatchRequest.js
2557
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/core/dispatchRequest.js
2350
2558
  /**
2351
2559
  * Throws a `CanceledError` if cancellation has been requested.
2352
2560
  *
@@ -2376,14 +2584,24 @@ function dispatchRequest(config) {
2376
2584
  ].indexOf(config.method) !== -1) config.headers.setContentType("application/x-www-form-urlencoded", false);
2377
2585
  return adapters_default.getAdapter(config.adapter || defaults.adapter, config)(config).then(function onAdapterResolution(response) {
2378
2586
  throwIfCancellationRequested(config);
2379
- response.data = transformData.call(config, config.transformResponse, response);
2587
+ config.response = response;
2588
+ try {
2589
+ response.data = transformData.call(config, config.transformResponse, response);
2590
+ } finally {
2591
+ delete config.response;
2592
+ }
2380
2593
  response.headers = AxiosHeaders$1.from(response.headers);
2381
2594
  return response;
2382
2595
  }, function onAdapterRejection(reason) {
2383
2596
  if (!isCancel$1(reason)) {
2384
2597
  throwIfCancellationRequested(config);
2385
2598
  if (reason && reason.response) {
2386
- reason.response.data = transformData.call(config, config.transformResponse, reason.response);
2599
+ config.response = reason.response;
2600
+ try {
2601
+ reason.response.data = transformData.call(config, config.transformResponse, reason.response);
2602
+ } finally {
2603
+ delete config.response;
2604
+ }
2387
2605
  reason.response.headers = AxiosHeaders$1.from(reason.response.headers);
2388
2606
  }
2389
2607
  }
@@ -2399,13 +2617,7 @@ var init_dispatchRequest = __esmMin((() => {
2399
2617
  init_adapters();
2400
2618
  }));
2401
2619
  //#endregion
2402
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/env/data.js
2403
- var VERSION$1;
2404
- var init_data = __esmMin((() => {
2405
- VERSION$1 = "1.15.2";
2406
- }));
2407
- //#endregion
2408
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/validator.js
2620
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/validator.js
2409
2621
  /**
2410
2622
  * Assert object's properties type
2411
2623
  *
@@ -2483,7 +2695,7 @@ var init_validator = __esmMin((() => {
2483
2695
  };
2484
2696
  }));
2485
2697
  //#endregion
2486
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/core/Axios.js
2698
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/core/Axios.js
2487
2699
  var validators, Axios$1;
2488
2700
  var init_Axios = __esmMin((() => {
2489
2701
  init_utils$1();
@@ -2570,6 +2782,7 @@ var init_Axios = __esmMin((() => {
2570
2782
  "post",
2571
2783
  "put",
2572
2784
  "patch",
2785
+ "query",
2573
2786
  "common"
2574
2787
  ], (method) => {
2575
2788
  delete headers[method];
@@ -2644,7 +2857,8 @@ var init_Axios = __esmMin((() => {
2644
2857
  utils_default.forEach([
2645
2858
  "post",
2646
2859
  "put",
2647
- "patch"
2860
+ "patch",
2861
+ "query"
2648
2862
  ], function forEachMethodWithData(method) {
2649
2863
  function generateHTTPMethod(isForm) {
2650
2864
  return function httpMethod(url, data, config) {
@@ -2657,11 +2871,11 @@ var init_Axios = __esmMin((() => {
2657
2871
  };
2658
2872
  }
2659
2873
  Axios$1.prototype[method] = generateHTTPMethod();
2660
- Axios$1.prototype[method + "Form"] = generateHTTPMethod(true);
2874
+ if (method !== "query") Axios$1.prototype[method + "Form"] = generateHTTPMethod(true);
2661
2875
  });
2662
2876
  }));
2663
2877
  //#endregion
2664
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/cancel/CancelToken.js
2878
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/cancel/CancelToken.js
2665
2879
  var CancelToken$1;
2666
2880
  var init_CancelToken = __esmMin((() => {
2667
2881
  init_CanceledError();
@@ -2746,7 +2960,7 @@ var init_CancelToken = __esmMin((() => {
2746
2960
  };
2747
2961
  }));
2748
2962
  //#endregion
2749
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/spread.js
2963
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/spread.js
2750
2964
  /**
2751
2965
  * Syntactic sugar for invoking a function and expanding an array for arguments.
2752
2966
  *
@@ -2775,7 +2989,7 @@ function spread$1(callback) {
2775
2989
  }
2776
2990
  var init_spread = __esmMin((() => {}));
2777
2991
  //#endregion
2778
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/isAxiosError.js
2992
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/isAxiosError.js
2779
2993
  /**
2780
2994
  * Determines whether the payload is an error thrown by Axios
2781
2995
  *
@@ -2790,7 +3004,7 @@ var init_isAxiosError = __esmMin((() => {
2790
3004
  init_utils$1();
2791
3005
  }));
2792
3006
  //#endregion
2793
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/helpers/HttpStatusCode.js
3007
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/helpers/HttpStatusCode.js
2794
3008
  var HttpStatusCode$1;
2795
3009
  var init_HttpStatusCode = __esmMin((() => {
2796
3010
  HttpStatusCode$1 = {
@@ -2869,7 +3083,7 @@ var init_HttpStatusCode = __esmMin((() => {
2869
3083
  });
2870
3084
  }));
2871
3085
  //#endregion
2872
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/lib/axios.js
3086
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/lib/axios.js
2873
3087
  /**
2874
3088
  * Create an instance of Axios
2875
3089
  *
@@ -2928,11 +3142,11 @@ var init_axios$1 = __esmMin((() => {
2928
3142
  axios$1.default = axios$1;
2929
3143
  }));
2930
3144
  //#endregion
2931
- //#region node_modules/.pnpm/axios@1.15.2/node_modules/axios/index.js
2932
- var Axios, AxiosError, CanceledError, isCancel, CancelToken, VERSION, all, Cancel, isAxiosError, spread, toFormData, AxiosHeaders, HttpStatusCode, formToJSON, getAdapter, mergeConfig;
3145
+ //#region node_modules/.pnpm/axios@1.16.1/node_modules/axios/index.js
3146
+ var Axios, AxiosError, CanceledError, isCancel, CancelToken, VERSION, all, Cancel, isAxiosError, spread, toFormData, AxiosHeaders, HttpStatusCode, formToJSON, getAdapter, mergeConfig, create;
2933
3147
  var init_axios = __esmMin((() => {
2934
3148
  init_axios$1();
2935
- ({Axios, AxiosError, CanceledError, isCancel, CancelToken, VERSION, all, Cancel, isAxiosError, spread, toFormData, AxiosHeaders, HttpStatusCode, formToJSON, getAdapter, mergeConfig} = axios$1);
3149
+ ({Axios, AxiosError, CanceledError, isCancel, CancelToken, VERSION, all, Cancel, isAxiosError, spread, toFormData, AxiosHeaders, HttpStatusCode, formToJSON, getAdapter, mergeConfig, create} = axios$1);
2936
3150
  }));
2937
3151
  //#endregion
2938
3152
  //#region src/base/config.ts
@@ -3456,7 +3670,12 @@ var init_SysConfig = __esmMin((() => {
3456
3670
  sysConfig = new SysConfig(config_default.state);
3457
3671
  }));
3458
3672
  //#endregion
3459
- //#region node_modules/.pnpm/pinia@3.0.4_typescript@5.9.3_vue@3.5.33_typescript@5.9.3_/node_modules/pinia/dist/pinia.mjs
3673
+ //#region node_modules/.pnpm/pinia@3.0.4_typescript@5.9.3_vue@3.5.34_typescript@5.9.3_/node_modules/pinia/dist/pinia.mjs
3674
+ /*!
3675
+ * pinia v3.0.4
3676
+ * (c) 2025 Eduardo San Martin Morote
3677
+ * @license MIT
3678
+ */
3460
3679
  function isPlainObject(o) {
3461
3680
  return o && typeof o === "object" && Object.prototype.toString.call(o) === "[object Object]" && typeof o.toJSON !== "function";
3462
3681
  }
@@ -3865,9 +4084,9 @@ var init_pinia = __esmMin((() => {
3865
4084
  */
3866
4085
  MutationType["patchFunction"] = "patch function";
3867
4086
  })(MutationType || (MutationType = {}));
3868
- _global = typeof window === "object" && window.window === window ? window : typeof self === "object" && self.self === self ? self : typeof global === "object" && global.global === global ? global : typeof globalThis === "object" ? globalThis : { HTMLElement: null };
4087
+ _global = /* @__PURE__ */ (() => typeof window === "object" && window.window === window ? window : typeof self === "object" && self.self === self ? self : typeof global === "object" && global.global === global ? global : typeof globalThis === "object" ? globalThis : { HTMLElement: null })();
3869
4088
  _navigator = typeof navigator === "object" ? navigator : { userAgent: "" };
3870
- isMacOSWebView = /Macintosh/.test(_navigator.userAgent) && /AppleWebKit/.test(_navigator.userAgent) && !/Safari/.test(_navigator.userAgent);
4089
+ isMacOSWebView = /* @__PURE__ */ (() => /Macintosh/.test(_navigator.userAgent) && /AppleWebKit/.test(_navigator.userAgent) && !/Safari/.test(_navigator.userAgent))();
3871
4090
  saveAs = !IS_CLIENT ? () => {} : typeof HTMLAnchorElement !== "undefined" && "download" in HTMLAnchorElement.prototype && !isMacOSWebView ? downloadSaveAs : "msSaveOrOpenBlob" in _navigator ? msSaveAs : fileSaverSaveAs;
3872
4091
  ({assign: assign$1} = Object);
3873
4092
  noop = () => {};
@@ -3973,7 +4192,7 @@ var init_eventBus = __esmMin((() => {
3973
4192
  init_dist$1();
3974
4193
  AUTHTIMEOUT = "AUTHTIMEOUT";
3975
4194
  GlobalEventBus = new JEventEmitter();
3976
- })), isNWjs, isVSCode, isChromeExtension, isElectron, isBrowser, UA, PLATFORM, SYSTEM, VER_MQQ, IS_MQQ, VER_WEIXIN, IS_WEIXIN, IS_PCWEIXIN, VER_MINA, IS_MINA, os, android, ipad, ipod, iphone, chrome, x5;
4195
+ })), isNWjs, isVSCode, isChromeExtension, isElectron, isBrowser, UA, VER_MQQ, IS_MQQ, VER_WEIXIN, IS_WEIXIN, IS_PCWEIXIN, VER_MINA, IS_MINA, os, android, ipad, ipod, iphone, chrome, x5;
3977
4196
  var init_detect = __esmMin((() => {
3978
4197
  isNWjs = typeof process !== "undefined" && process.__nwjs !== void 0;
3979
4198
  isVSCode = typeof acquireVsCodeApi !== "undefined" || typeof process !== "undefined" && {}.VSCODE_PID;
@@ -3988,25 +4207,8 @@ var init_detect = __esmMin((() => {
3988
4207
  isBrowser = typeof window !== "undefined" && !isNWjs && !isVSCode && !isChromeExtension && !isElectron;
3989
4208
  isBrowser && window.top;
3990
4209
  UA = isBrowser ? navigator.userAgent : "";
3991
- PLATFORM = /* @__PURE__ */ function(PLATFORM) {
3992
- PLATFORM["UNKNOWN"] = "unknown";
3993
- PLATFORM["WEB"] = "web";
3994
- PLATFORM["PCWEIXIN"] = "pcweixin";
3995
- PLATFORM["WEIXIN"] = "weixin";
3996
- PLATFORM["WEWORK"] = "wework";
3997
- PLATFORM["MQQ"] = "mqq";
3998
- PLATFORM["MINA"] = "mina";
3999
- PLATFORM["IFRAME"] = "iframe";
4000
- return PLATFORM;
4001
- }({});
4002
4210
  /WindowsWechat/i.test(UA);
4003
4211
  /Mobile/i.test(UA);
4004
- SYSTEM = /* @__PURE__ */ function(SYSTEM) {
4005
- SYSTEM["UNKNOWN"] = "unknown";
4006
- SYSTEM["ANDROID"] = "android";
4007
- SYSTEM["IOS"] = "ios";
4008
- return SYSTEM;
4009
- }({});
4010
4212
  VER_MQQ = UA.match(/QQ\/([\d.]+)/i) && UA.match(/QQ\/([\d.]+)/i)?.[1];
4011
4213
  IS_MQQ = Boolean(VER_MQQ);
4012
4214
  VER_WEIXIN = UA.match(/MicroMessenger\/([\d.]+)/i) && UA.match(/MicroMessenger\/([\d.]+)/i)?.[1]?.split(".").slice(0, 3).join(".");
@@ -4017,11 +4219,7 @@ var init_detect = __esmMin((() => {
4017
4219
  /wxwork\//i.test(UA);
4018
4220
  VER_MINA = isBrowser && (window.__wxjs_environment === "miniprogram" || /miniProgram/i.test(UA));
4019
4221
  IS_MINA = Boolean(VER_MINA);
4020
- PLATFORM.WEB;
4021
- if (IS_MQQ) PLATFORM.MQQ;
4022
- else if (IS_MINA) PLATFORM.MINA;
4023
- else if (IS_PCWEIXIN) PLATFORM.PCWEIXIN;
4024
- else if (IS_WEIXIN) PLATFORM.WEIXIN;
4222
+ if (IS_MQQ) {} else if (IS_MINA) {} else if (IS_PCWEIXIN) {} else if (IS_WEIXIN) {}
4025
4223
  os = {
4026
4224
  version: "0.0.0",
4027
4225
  android: false,
@@ -4046,9 +4244,8 @@ var init_detect = __esmMin((() => {
4046
4244
  if (iphone && !ipod) os.ios = os.iphone = true, os.version = iphone[2]?.replace(/_/g, ".");
4047
4245
  if (ipad) os.ios = os.ipad = true, os.version = ipad[2]?.replace(/_/g, ".");
4048
4246
  if (x5) os.x5 = true, os.version = x5[1];
4049
- SYSTEM.UNKNOWN;
4050
- if (os.ios) SYSTEM.IOS;
4051
- else if (os.android) SYSTEM.ANDROID;
4247
+ if (os.ios);
4248
+ else if (os.android);
4052
4249
  if (os.ios) {
4053
4250
  if (screen.height == 812 && screen.width == 375);
4054
4251
  }
@@ -4141,12 +4338,15 @@ var init_base = __esmMin((() => {
4141
4338
  init_detect();
4142
4339
  }));
4143
4340
  //#endregion
4144
- //#region node_modules/.pnpm/js-cookie@3.0.5/node_modules/js-cookie/dist/js.cookie.mjs
4145
- /*! js-cookie v3.0.5 | MIT */
4341
+ //#region node_modules/.pnpm/js-cookie@3.0.7/node_modules/js-cookie/dist/js.cookie.mjs
4342
+ /*! js-cookie v3.0.7 | MIT */
4146
4343
  function assign(target) {
4147
4344
  for (var i = 1; i < arguments.length; i++) {
4148
4345
  var source = arguments[i];
4149
- for (var key in source) target[key] = source[key];
4346
+ for (var key in source) {
4347
+ if (key === "__proto__") continue;
4348
+ target[key] = source[key];
4349
+ }
4150
4350
  }
4151
4351
  return target;
4152
4352
  }
@@ -4175,9 +4375,9 @@ function init(converter, defaultAttributes) {
4175
4375
  var value = parts.slice(1).join("=");
4176
4376
  try {
4177
4377
  var found = decodeURIComponent(parts[0]);
4178
- jar[found] = converter.read(value, found);
4378
+ if (!(found in jar)) jar[found] = converter.read(value, found);
4179
4379
  if (name === found) break;
4180
- } catch (e) {}
4380
+ } catch {}
4181
4381
  }
4182
4382
  return name ? jar[name] : jar;
4183
4383
  }
@@ -4291,6 +4491,1522 @@ var init_login = __esmMin((() => {
4291
4491
  init_session();
4292
4492
  }));
4293
4493
  //#endregion
4494
+ //#region src/i18n/locales/zh-CN.ts
4495
+ var zh_CN_default;
4496
+ var init_zh_CN = __esmMin((() => {
4497
+ zh_CN_default = {
4498
+ common: {
4499
+ confirm: "确定",
4500
+ cancel: "取消",
4501
+ save: "保存",
4502
+ delete: "删除",
4503
+ edit: "编辑",
4504
+ add: "新增",
4505
+ refresh: "刷新",
4506
+ search: "搜索",
4507
+ loading: "加载中...",
4508
+ success: "成功",
4509
+ error: "错误",
4510
+ warning: "警告",
4511
+ close: "关闭",
4512
+ back: "返回",
4513
+ export: "导出",
4514
+ import: "导入",
4515
+ copy: "复制",
4516
+ paste: "粘贴",
4517
+ yes: "是",
4518
+ no: "否",
4519
+ enabled: "启用",
4520
+ disabled: "禁用",
4521
+ unknown: "未知",
4522
+ operation: "操作",
4523
+ status: "状态",
4524
+ name: "名称",
4525
+ type: "类型",
4526
+ description: "描述",
4527
+ createdAt: "创建时间",
4528
+ updatedAt: "更新时间",
4529
+ language: "语言",
4530
+ view: "查看",
4531
+ rows: "行",
4532
+ about: "关于工具",
4533
+ all: "所有",
4534
+ format: "格式化",
4535
+ never: "从未",
4536
+ default: "默认",
4537
+ create: "创建",
4538
+ totalRecords: "共 {count} 条记录",
4539
+ pageSizeLabel: "每页显示:",
4540
+ noData: "暂无数据",
4541
+ comment: "注释",
4542
+ autoIncrement: "自增",
4543
+ primaryKey: "主键",
4544
+ unique: "唯一",
4545
+ columns: "列",
4546
+ details: "详情",
4547
+ hide: "隐藏",
4548
+ processing: "处理中...",
4549
+ tip: "提示",
4550
+ confirmTitle: "确认"
4551
+ },
4552
+ nav: {
4553
+ databaseManagement: "数据库管理",
4554
+ databaseHome: "数据库管理首页",
4555
+ databaseExplorer: "数据库浏览器",
4556
+ sqlQuery: "SQL查询"
4557
+ },
4558
+ home: {
4559
+ welcomeBack: "欢迎回来",
4560
+ title: "数据库管理平台",
4561
+ description: "专业的数据库管理和监控工具,为开发者提供一站式数据库操作体验。支持多种主流数据库类型,提供直观的可视化界面和强大的查询功能。",
4562
+ addConnection: "添加连接",
4563
+ addDatabaseConnection: "添加数据库连接",
4564
+ sqlQuery: "SQL查询",
4565
+ connectionCount: "连接数",
4566
+ supportedTypes: "支持类型",
4567
+ onlineMonitor: "在线监控",
4568
+ databaseConnections: "数据库连接",
4569
+ activeConnectionConfig: "活跃连接配置",
4570
+ onlineStatus: "在线状态",
4571
+ normalRunning: "正常运行",
4572
+ databaseTypes: "数据库类型",
4573
+ supportedEngines: "支持的引擎",
4574
+ responseTime: "响应时间",
4575
+ avgQueryPerf: "平均查询性能",
4576
+ ultraFast: "极速",
4577
+ types: "种",
4578
+ coreFeatures: "核心功能",
4579
+ coreFeaturesSubtitle: "强大的数据库管理功能,满足您的所有需求",
4580
+ quickAccess: "快速访问",
4581
+ quickAccessSubtitle: "一键访问您的数据库连接",
4582
+ viewAllConnections: "查看所有连接",
4583
+ startJourney: "开始您的数据库管理之旅",
4584
+ startJourneyDesc: "还没有配置数据库连接?让我们添加第一个连接,开始强大的数据库管理体验。",
4585
+ featureConnectionMgmt: "连接管理",
4586
+ featureConnectionMgmtDesc: "支持MySQL、PostgreSQL、SQLite、SQL Server、Oracle等主流数据库的连接配置和管理",
4587
+ featureStructureBrowse: "结构浏览",
4588
+ featureStructureBrowseDesc: "直观展示数据库表结构、索引、外键关系、视图、存储过程等数据库对象",
4589
+ featureDataOps: "数据操作",
4590
+ featureDataOpsDesc: "查看、编辑、删除表数据,支持批量操作、分页浏览、条件筛选和数据导入导出",
4591
+ featureSqlQuery: "SQL查询",
4592
+ featureSqlQueryDesc: "强大的SQL编辑器,支持语法高亮、自动补全、查询历史和结果导出功能",
4593
+ tagMultiDbSupport: "多数据库支持",
4594
+ tagSecureConnection: "安全连接",
4595
+ tagConnectionPool: "连接池",
4596
+ tagVisual: "可视化",
4597
+ tagRelationDiagram: "关系图",
4598
+ tagDetailView: "详细视图",
4599
+ tagCrudOps: "CRUD操作",
4600
+ tagBatchProcessing: "批量处理",
4601
+ tagImportExport: "导入导出",
4602
+ tagSyntaxHighlight: "语法高亮",
4603
+ tagQueryHistory: "查询历史",
4604
+ tagResultExport: "结果导出"
4605
+ },
4606
+ connection: {
4607
+ editConnection: "编辑数据库连接",
4608
+ addConnection: "新增数据库连接",
4609
+ details: "详情",
4610
+ toggleDetails: "查看/隐藏详细信息",
4611
+ connectionStats: "连接统计",
4612
+ databaseCount: "数据库数量",
4613
+ tableCount: "表总数",
4614
+ totalSize: "总大小",
4615
+ lastConnected: "最后连接",
4616
+ quickActions: "快速操作",
4617
+ exportSchema: "导出架构",
4618
+ viewLogs: "查看日志",
4619
+ searchDatabase: "搜索数据库...",
4620
+ loadingDatabases: "加载数据库列表...",
4621
+ noDatabase: "暂无数据库",
4622
+ noMatchDatabase: "没有找到匹配的数据库",
4623
+ databaseList: "数据库列表",
4624
+ createDatabase: "创建数据库",
4625
+ createDatabaseTitle: "创建数据库",
4626
+ databaseNameLabel: "数据库名称",
4627
+ enterDatabaseName: "输入数据库名称",
4628
+ charset: "字符集",
4629
+ collation: "排序规则",
4630
+ owner: "所有者",
4631
+ template: "模板",
4632
+ encoding: "编码",
4633
+ tablespace: "表空间",
4634
+ databaseOwner: "数据库所有者",
4635
+ templateDatabase: "模板数据库",
4636
+ enterDbNameRequired: "请输入数据库名称",
4637
+ databaseCreateSuccess: "数据库创建成功",
4638
+ databaseCreateFailed: "创建数据库失败",
4639
+ connected: "已连接",
4640
+ disconnected: "未连接",
4641
+ testing: "测试中...",
4642
+ hoursAgo: "{n}小时前",
4643
+ connectionName: "连接名称",
4644
+ connectionNamePlaceholder: "为连接起一个易记的名称",
4645
+ databaseType: "数据库类型",
4646
+ selectDatabaseType: "请选择数据库类型",
4647
+ basicInfo: "基本信息",
4648
+ connectionConfig: "连接配置",
4649
+ sqliteConfig: "SQLite配置",
4650
+ authInfo: "认证信息",
4651
+ otherOptions: "其他选项",
4652
+ host: "主机地址",
4653
+ hostPlaceholder: "数据库服务器地址",
4654
+ port: "端口",
4655
+ portPlaceholder: "数据库端口号",
4656
+ databaseName: "数据库名",
4657
+ databaseNamePlaceholder: "要连接的数据库名",
4658
+ connectionTimeout: "连接超时",
4659
+ connectionTimeoutPlaceholder: "连接超时时间(秒)",
4660
+ databaseFile: "数据库文件",
4661
+ databaseFilePlaceholder: "SQLite数据库文件路径",
4662
+ username: "用户名",
4663
+ usernamePlaceholder: "数据库用户名",
4664
+ password: "密码",
4665
+ passwordPlaceholder: "数据库密码",
4666
+ connectionStatus: "连接状态",
4667
+ enableConnection: "启用此连接",
4668
+ enableConnectionDesc: "创建后将自动启用连接",
4669
+ testConnection: "测试连接",
4670
+ saveConfig: "保存配置",
4671
+ updateConfig: "更新配置",
4672
+ saveAndTest: "保存并测试",
4673
+ refreshConnection: "刷新连接",
4674
+ editConnectionTitle: "编辑连接",
4675
+ deleteConnection: "删除连接",
4676
+ connectionTestSuccess: "连接测试成功",
4677
+ connectionTestFailed: "连接测试失败",
4678
+ configSaveSuccess: "连接配置添加成功",
4679
+ configUpdateSuccess: "连接配置更新成功",
4680
+ configUpdateAndTestSuccess: "连接配置更新并测试成功",
4681
+ configAddAndTestSuccess: "连接配置添加并测试成功",
4682
+ configSaveFailed: "保存配置失败",
4683
+ configSaveFailedServer: "配置保存失败,请检查服务器状态",
4684
+ configSavedButTestFailed: "配置已保存,但连接测试失败",
4685
+ nameRequired: "连接名称不能为空",
4686
+ typeRequired: "数据库类型不能为空",
4687
+ hostRequired: "主机地址不能为空",
4688
+ portInvalid: "端口号必须在1-65535之间",
4689
+ databaseRequired: "{type} 数据库名不能为空",
4690
+ sqliteFileRequired: "SQLite数据库文件路径不能为空",
4691
+ errorTitle: "错误提示",
4692
+ unknownError: "未知错误",
4693
+ noConnectionYet: "还没有数据库连接",
4694
+ aboutTool: "关于工具"
4695
+ },
4696
+ explorer: {
4697
+ title: "数据库浏览器",
4698
+ refreshAll: "刷新",
4699
+ addConnection: "添加连接",
4700
+ refreshDatabase: "刷新数据库",
4701
+ deleteDatabase: "删除数据库",
4702
+ refreshTable: "刷新表",
4703
+ viewStructure: "查看结构",
4704
+ defaultTitle: "数据库浏览器",
4705
+ defaultDesc: "请从左侧选择一个连接、数据库或表来查看详细信息",
4706
+ rowsSuffix: "行"
4707
+ },
4708
+ databaseDetail: {
4709
+ tables: "数据表",
4710
+ views: "视图",
4711
+ procedures: "存储过程",
4712
+ functions: "函数",
4713
+ executeSQL: "执行SQL",
4714
+ tools: "工具",
4715
+ createTable: "创建表",
4716
+ createTableTitle: "创建数据表",
4717
+ tableNameLabel: "表名",
4718
+ enterTableName: "输入表名",
4719
+ commentLabel: "注释",
4720
+ enterTableComment: "输入表注释",
4721
+ noTable: "暂无数据表",
4722
+ loadingTables: "加载数据表中...",
4723
+ rowCountLabel: "行数",
4724
+ createView: "创建视图",
4725
+ editView: "编辑视图",
4726
+ createViewTitle: "创建视图",
4727
+ viewNameLabel: "视图名称",
4728
+ enterViewName: "输入视图名称",
4729
+ viewDefinition: "视图定义 (SQL查询)",
4730
+ viewDefinitionPlaceholder: "输入SELECT查询语句,例如: SELECT * FROM table_name WHERE condition",
4731
+ noView: "暂无视图",
4732
+ viewSaveSuccess: "视图保存成功",
4733
+ viewSaveFailed: "视图保存失败",
4734
+ viewDeleteSuccess: "视图删除成功",
4735
+ viewDeleteFailed: "视图删除失败",
4736
+ getViewDefFailed: "获取视图定义失败",
4737
+ fillViewNameAndDef: "请填写视图名称和定义",
4738
+ confirmDeleteView: "确定要删除视图 \"{name}\" 吗?此操作不可恢复。",
4739
+ createProcedure: "创建存储过程",
4740
+ editProcedure: "编辑存储过程",
4741
+ createProcedureTitle: "创建存储过程",
4742
+ procedureNameLabel: "存储过程名称",
4743
+ enterProcedureName: "输入存储过程名称",
4744
+ procedureDefinition: "存储过程定义",
4745
+ procedureDefPlaceholder: "输入存储过程的完整SQL定义",
4746
+ noProcedure: "暂无存储过程",
4747
+ procedureSaveSuccess: "存储过程保存成功",
4748
+ procedureSaveFailed: "存储过程保存失败",
4749
+ procedureDeleteSuccess: "存储过程删除成功",
4750
+ procedureDeleteFailed: "存储过程删除失败",
4751
+ getProcedureDefFailed: "获取存储过程定义失败",
4752
+ fillProcedureNameAndDef: "请填写存储过程名称和定义",
4753
+ confirmDeleteProcedure: "确定要删除存储过程 \"{name}\" 吗?此操作不可恢复。",
4754
+ functionInDev: "函数功能开发中...",
4755
+ tableCreateSuccess: "创建表成功",
4756
+ tableModifySuccess: "表结构修改成功",
4757
+ tableCreateFailed: "创建表失败",
4758
+ tableModifyFailed: "表结构修改失败",
4759
+ size: "大小"
4760
+ },
4761
+ tableDetail: {
4762
+ rowData: "行数据",
4763
+ refreshData: "刷新数据",
4764
+ modifyStructure: "修改表结构",
4765
+ insertData: "插入数据",
4766
+ exportMenu: "导出",
4767
+ exportCSV: "导出 CSV",
4768
+ exportJSON: "导出 JSON",
4769
+ exportExcel: "导出 Excel",
4770
+ exportStructure: "导出表结构",
4771
+ exportDataSQL: "导出表数据(SQL)",
4772
+ truncateTable: "清空表",
4773
+ dropTable: "删除表",
4774
+ dataTab: "数据",
4775
+ structureTab: "结构",
4776
+ indexesTab: "索引",
4777
+ relationsTab: "关系",
4778
+ addColumn: "新增字段",
4779
+ columnNameHeader: "列名",
4780
+ dataTypeHeader: "数据类型",
4781
+ nullableHeader: "可空",
4782
+ defaultHeader: "默认值",
4783
+ primaryKeyHeader: "主键",
4784
+ autoIncHeader: "自增",
4785
+ commentHeader: "注释",
4786
+ operationsHeader: "操作",
4787
+ indexNameHeader: "索引名",
4788
+ typeHeader: "类型",
4789
+ uniqueHeader: "唯一",
4790
+ columnsHeader: "列",
4791
+ constraintNameHeader: "约束名",
4792
+ localColumnHeader: "本表列",
4793
+ targetTableHeader: "目标表",
4794
+ targetColumnHeader: "目标列",
4795
+ onDeleteHeader: "删除规则",
4796
+ onUpdateHeader: "更新规则",
4797
+ confirmDeleteRow: "确定要删除这条记录吗?",
4798
+ noPrimaryKey: "该表没有主键,无法删除单行。",
4799
+ deleteSuccess: "删除成功",
4800
+ deleteFailed: "删除失败",
4801
+ confirmTruncate: "确定要清空表中的所有数据吗?此操作不可恢复!",
4802
+ confirmTruncateBtn: "确定清空",
4803
+ truncateSuccess: "表清空成功",
4804
+ truncateFailed: "清空表失败",
4805
+ confirmDrop: "确定要删除此表吗?此操作不可恢复!",
4806
+ dropSuccess: "表删除成功",
4807
+ dropFailed: "表删除失败",
4808
+ operationFailed: "操作失败",
4809
+ structureModifySuccess: "表结构修改成功",
4810
+ structureModifyFailed: "表结构修改失败",
4811
+ confirmDeleteColumn: "确定要删除列 {name} 吗?",
4812
+ confirmDeleteIndex: "确定要删除索引 {name} 吗?",
4813
+ confirmDeleteFK: "确定要删除外键 {name} 吗?",
4814
+ noInsertField: "没有可插入的字段",
4815
+ insertFailed: "插入数据失败",
4816
+ missingConnectionInfo: "缺少必要的连接信息",
4817
+ exportSuccess: "表数据导出成功,文件路径:{path}",
4818
+ exportFailed: "导出表数据失败",
4819
+ exportStructFailed: "导出表结构失败",
4820
+ unsupportedFormat: "不支持的导出格式",
4821
+ noDataInTable: "表中暂无数据"
4822
+ },
4823
+ sqlExecutor: {
4824
+ executeSQL: "执行SQL",
4825
+ clearBtn: "清空",
4826
+ executing: "执行中...",
4827
+ resultTitle: "执行结果",
4828
+ exportJSON: "导出JSON",
4829
+ executingSQL: "正在执行SQL...",
4830
+ executingHint: "请稍候,复杂查询可能需要较长时间",
4831
+ inputSQLPlaceholder: "输入SQL查询语句...",
4832
+ resultPlaceholder: "执行SQL以查看结果...",
4833
+ enterSQL: "请输入SQL语句",
4834
+ selectConnectionFirst: "请先选择数据库连接",
4835
+ unknownError: "执行SQL时发生未知错误",
4836
+ formatFailed: "无法格式化结果"
4837
+ },
4838
+ dataEditor: {
4839
+ editData: "编辑数据",
4840
+ addData: "新增数据",
4841
+ autoGenerate: "自动生成",
4842
+ inputPlaceholder: "请输入{name}",
4843
+ selectPlaceholder: "请选择...",
4844
+ trueLabel: "是/True",
4845
+ falseLabel: "否/False",
4846
+ jsonCorrect: "JSON格式正确",
4847
+ jsonPlaceholder: "请输入 {name} 的JSON数据",
4848
+ jsonFormatError: "JSON格式错误",
4849
+ updateBtn: "更新",
4850
+ insertBtn: "插入",
4851
+ fixJsonError: "请修复 JSON 格式错误后再提交",
4852
+ updateSuccess: "数据更新成功",
4853
+ insertSuccess: "数据插入成功"
4854
+ },
4855
+ tableEditor: {
4856
+ createNewTable: "创建新表",
4857
+ modifyStructure: "修改表结构",
4858
+ tableInfo: "表信息",
4859
+ tableNameLabel: "表名",
4860
+ tableNamePlaceholder: "请输入表名",
4861
+ tableCommentLabel: "表注释",
4862
+ tableCommentPlaceholder: "请输入表注释",
4863
+ columnManagement: "字段管理",
4864
+ addColumn: "添加字段",
4865
+ columnNameHeader: "字段名",
4866
+ dataTypeHeader: "数据类型",
4867
+ lengthPrecisionHeader: "长度/精度",
4868
+ nullableHeader: "可空",
4869
+ defaultHeader: "默认值",
4870
+ primaryKeyHeader: "主键",
4871
+ autoIncHeader: "自增",
4872
+ commentHeader: "注释",
4873
+ operationsHeader: "操作",
4874
+ columnNamePlaceholder: "字段名",
4875
+ selectType: "选择类型",
4876
+ lengthPlaceholder: "长度",
4877
+ precisionPlaceholder: "精度",
4878
+ scalePlaceholder: "小数",
4879
+ fieldComment: "字段注释",
4880
+ sqlPreview: "SQL预览",
4881
+ catNumeric: "数值类型",
4882
+ catString: "字符串类型",
4883
+ catText: "文本类型",
4884
+ catDateTime: "日期时间类型",
4885
+ catBoolean: "布尔类型",
4886
+ catBinary: "二进制类型",
4887
+ catJson: "JSON类型",
4888
+ catArray: "数组类型",
4889
+ catSpatial: "空间类型",
4890
+ catOther: "其他类型"
4891
+ },
4892
+ importExport: {
4893
+ title: "数据导入导出",
4894
+ dataImport: "数据导入",
4895
+ dataExport: "数据导出",
4896
+ stepSelectFile: "选择文件",
4897
+ stepConfigOptions: "配置选项",
4898
+ stepPreviewData: "预览数据",
4899
+ stepExecuteImport: "执行导入",
4900
+ dragFileHere: "拖拽文件到此处或点击选择",
4901
+ supportedFormats: "支持 CSV、Excel (xlsx)、JSON 格式",
4902
+ selectFile: "选择文件",
4903
+ selectedFiles: "已选择的文件:",
4904
+ nextStep: "下一步",
4905
+ prevStep: "上一步",
4906
+ targetTableConfig: "目标表配置",
4907
+ selectConnection: "选择连接",
4908
+ selectTable: "选择表",
4909
+ importOptions: "导入选项",
4910
+ importMode: "导入模式",
4911
+ modeInsert: "插入新数据",
4912
+ modeReplace: "替换表数据",
4913
+ modeUpdate: "更新现有数据",
4914
+ modeAppend: "追加数据",
4915
+ encodingFormat: "编码格式",
4916
+ csvExcelOptions: "CSV/Excel 选项",
4917
+ delimiter: "分隔符",
4918
+ comma: "逗号 (,)",
4919
+ semicolon: "分号 (;)",
4920
+ tab: "制表符 (Tab)",
4921
+ pipe: "竖线 (|)",
4922
+ firstRowHeader: "首行是否为标题",
4923
+ firstRowIsHeader: "首行是列标题",
4924
+ dataPreview: "数据预览",
4925
+ showFirstNRows: "显示前 {n} 行数据",
4926
+ loadMore: "加载更多",
4927
+ importingData: "正在导入数据",
4928
+ importComplete: "导入完成!",
4929
+ importResultStats: "成功导入 {success} 条记录,失败 {failed} 条",
4930
+ viewDetails: "查看详细信息",
4931
+ newImport: "新建导入",
4932
+ preparingImport: "正在准备导入...",
4933
+ importingRecord: "正在导入第 {n} 条记录...",
4934
+ importDone: "导入完成",
4935
+ importFailedMsg: "导入失败",
4936
+ importSuccessToast: "成功导入 {success} 条记录,失败 {failed} 条",
4937
+ importFailedToast: "导入失败: {msg}",
4938
+ selectFileAndConfig: "请选择文件并配置导入选项",
4939
+ pleaseSelectFile: "请选择文件",
4940
+ unsupportedFileFormat: "不支持的文件格式",
4941
+ parseFileFailed: "解析文件失败: {msg}",
4942
+ parseExcelFailed: "解析Excel文件失败: {msg}",
4943
+ loadPreviewFailed: "加载预览数据失败: {msg}",
4944
+ loadConnectionFailed: "加载连接失败: {msg}",
4945
+ columnPrefix: "列{n}",
4946
+ dataSourceConfig: "数据源配置",
4947
+ tableName: "表名",
4948
+ exportOptions: "导出选项",
4949
+ exportFormat: "导出格式",
4950
+ dataFilter: "数据筛选",
4951
+ whereCondition: "WHERE 条件 (可选)",
4952
+ wherePlaceholder: "例如: created_at > '2024-01-01' AND status = 'active'",
4953
+ limitRows: "限制行数",
4954
+ limitPlaceholder: "0表示无限制",
4955
+ orderByField: "排序字段",
4956
+ orderByPlaceholder: "例如: id DESC",
4957
+ columnSelection: "列选择",
4958
+ selectAll: "全选",
4959
+ columnsSelected: "{selected} / {total} 列已选择",
4960
+ previewDataBtn: "预览数据",
4961
+ startExport: "开始导出",
4962
+ exporting: "导出中...",
4963
+ exportPreview: "导出预览",
4964
+ totalRecordsCount: "共 {count} 条记录",
4965
+ databaseConnection: "数据库连接",
4966
+ targetTable: "目标表"
4967
+ },
4968
+ queryHistory: {
4969
+ title: "查询历史",
4970
+ searchPlaceholder: "搜索查询...",
4971
+ allTypes: "所有类型",
4972
+ clearHistory: "清空历史",
4973
+ totalQueries: "总查询数",
4974
+ todayQueries: "今日查询",
4975
+ favoriteQueries: "收藏查询",
4976
+ avgExecTime: "平均执行时间",
4977
+ filterAll: "全部",
4978
+ filterRecent: "最近",
4979
+ filterFavorites: "收藏",
4980
+ filterSlow: "慢查询",
4981
+ filterFailed: "失败",
4982
+ queryRecords: "查询记录 ({count})",
4983
+ exportBtn: "导出",
4984
+ unfavorite: "取消收藏",
4985
+ addFavorite: "收藏查询",
4986
+ reExecute: "重新执行",
4987
+ copySQL: "复制SQL",
4988
+ deleteRecord: "删除记录",
4989
+ sqlStatement: "SQL语句",
4990
+ execResult: "执行结果",
4991
+ errorInfo: "错误信息",
4992
+ execPlan: "执行计划",
4993
+ copyBtn: "复制",
4994
+ affectedRowsLabel: "影响行数:",
4995
+ returnedRowsLabel: "返回行数:",
4996
+ execTimeLabel: "执行时间:",
4997
+ execError: "执行错误",
4998
+ noPlanData: "暂无执行计划数据",
4999
+ confirmClearTitle: "确认清空",
5000
+ confirmClearMsg: "确定要清空所有查询历史记录吗?此操作无法撤销。",
5001
+ justNow: "刚刚",
5002
+ minutesAgo: "{n}分钟前",
5003
+ hoursAgo: "{n}小时前",
5004
+ daysAgo: "{n}天前",
5005
+ exportTime: "时间",
5006
+ exportType: "类型",
5007
+ exportConnection: "连接",
5008
+ exportExecTime: "执行时间",
5009
+ exportStatus: "状态"
5010
+ },
5011
+ monitor: {
5012
+ title: "数据库监控",
5013
+ selectConnection: "选择数据库连接",
5014
+ refresh: "刷新",
5015
+ autoRefresh: "自动刷新",
5016
+ interval5s: "5秒",
5017
+ interval10s: "10秒",
5018
+ interval30s: "30秒",
5019
+ interval1m: "1分钟",
5020
+ connectionStatus: "连接状态",
5021
+ responseTime: "响应时间",
5022
+ activeQueries: "活跃查询",
5023
+ totalQueries: "{n} 总查询",
5024
+ storageUsage: "存储使用",
5025
+ totalCapacity: "{size} 总容量",
5026
+ queryPerfTrend: "查询性能趋势",
5027
+ connectionChanges: "连接数变化",
5028
+ slowQueryAnalysis: "慢查询分析",
5029
+ clearRecords: "清除记录",
5030
+ thTime: "时间",
5031
+ thExecTime: "执行时间",
5032
+ thQueryType: "查询类型",
5033
+ thQuerySQL: "查询语句",
5034
+ thOperation: "操作",
5035
+ analyzeBtn: "分析",
5036
+ noSlowQueries: "暂无慢查询记录",
5037
+ noSlowQueriesHint: "所有查询都在正常执行时间内完成",
5038
+ resourceUsage: "资源使用详情",
5039
+ cpuUsage: "CPU使用率",
5040
+ memoryUsage: "内存使用率",
5041
+ diskIO: "磁盘I/O",
5042
+ networkBandwidth: "网络带宽",
5043
+ emptyTitle: "选择数据库连接开始监控",
5044
+ emptyDesc: "从上方选择一个数据库连接以查看实时监控数据",
5045
+ statusOnline: "在线",
5046
+ statusOffline: "离线",
5047
+ statusWarning: "警告",
5048
+ statusUnknown: "未知",
5049
+ perfExcellent: "优秀",
5050
+ perfGood: "良好",
5051
+ perfAverage: "一般",
5052
+ perfSlow: "较慢",
5053
+ timeRange1h: "1小时",
5054
+ timeRange6h: "6小时",
5055
+ timeRange24h: "24小时",
5056
+ timeRange7d: "7天",
5057
+ chartResponseTime: "响应时间: {n}ms",
5058
+ chartConnectionCount: "连接数: {n}",
5059
+ yAxisResponseTime: "响应时间(ms)",
5060
+ yAxisConnectionCount: "连接数",
5061
+ hourLabel: "{n}时",
5062
+ seriesResponseTime: "响应时间",
5063
+ seriesConnectionCount: "连接数"
5064
+ },
5065
+ dbTools: {
5066
+ title: "数据库管理工具",
5067
+ dataBackup: "数据备份",
5068
+ backupDatabase: "备份数据库",
5069
+ restoreDatabase: "恢复数据库",
5070
+ scheduledBackup: "定时备份",
5071
+ userManagement: "用户管理",
5072
+ userList: "用户列表",
5073
+ createUser: "创建用户",
5074
+ permissionMgmt: "权限管理",
5075
+ perfMonitor: "性能监控",
5076
+ processList: "进程列表",
5077
+ slowQueries: "慢查询",
5078
+ connectionCount: "连接数",
5079
+ dbOptimization: "数据库优化",
5080
+ optimizeDatabase: "优化数据库",
5081
+ analyzeTables: "分析表",
5082
+ repairTables: "修复表",
5083
+ clearLogs: "清理日志",
5084
+ dataMigration: "数据迁移",
5085
+ exportStructure: "导出结构",
5086
+ importStructure: "导入数据",
5087
+ dataSync: "数据同步",
5088
+ healthCheck: "健康检查",
5089
+ dataStatistics: "数据统计",
5090
+ auditLog: "审计日志",
5091
+ closeBtn: "关闭",
5092
+ sourceDatabase: "源数据库",
5093
+ targetDatabase: "目标数据库",
5094
+ databaseNameLabel: "数据库名称",
5095
+ selectTableLabel: "选择表",
5096
+ selectTablePlaceholder: "请选择表",
5097
+ useExistingConnection: "使用已配置的数据库连接",
5098
+ selectConnectionLabel: "选择数据库连接",
5099
+ selectConnectionPlaceholder: "请选择连接",
5100
+ selectDatabaseLabel: "选择数据库",
5101
+ selectDatabasePlaceholder: "请选择数据库",
5102
+ targetTableName: "目标表名",
5103
+ dbTypeLabel: "数据库类型",
5104
+ hostLabel: "主机",
5105
+ portLabel: "端口",
5106
+ dbNameLabel: "数据库名",
5107
+ usernameLabel: "用户名",
5108
+ passwordLabel: "密码",
5109
+ syncOptions: "同步选项",
5110
+ syncStructure: "同步表结构",
5111
+ syncData: "同步表数据",
5112
+ dropIfExists: "目标表存在时删除",
5113
+ bulkInsert: "批量插入数据",
5114
+ overrideExisting: "覆盖已存在的数据",
5115
+ startSync: "开始同步",
5116
+ stopSync: "停止同步",
5117
+ execResults: "执行结果",
5118
+ clearBtn: "清空",
5119
+ noResults: "暂无执行结果",
5120
+ restoreModalTitle: "恢复数据库",
5121
+ restoreSelectFile: "请选择要恢复的备份文件:",
5122
+ selectedFile: "已选择文件:",
5123
+ dropExistingTable: "删除现有表",
5124
+ restoreBtn: "恢复",
5125
+ backupFailed: "备份失败",
5126
+ optimizeFailed: "优化失败",
5127
+ analyzeFailed: "分析失败",
5128
+ repairFailed: "修复失败",
5129
+ restoreFailed: "恢复失败",
5130
+ syncFailed: "同步失败",
5131
+ syncConfigIncomplete: "请填写完整的同步配置",
5132
+ syncStarted: "开始同步数据",
5133
+ syncSuccess: "数据同步成功,{success}/{total} 个表同步完成,共同步 {rows} 行数据",
5134
+ syncSuccessToast: "数据同步成功,{success}/{total} 个表同步完成",
5135
+ loadTablesFailed: "加载表列表失败",
5136
+ sqlSent: "已发送 SQL 查询",
5137
+ featureInDev: "{feature}功能开发中...",
5138
+ healthNormal: "正常",
5139
+ healthCheckConnection: "连接状态",
5140
+ healthCheckTableIntegrity: "表完整性",
5141
+ healthCheckIndexStatus: "索引状态",
5142
+ healthCheckDiskSpace: "磁盘空间",
5143
+ unknownError: "未知错误",
5144
+ toolTitle: "工具",
5145
+ dataSyncTitle: "数据同步"
5146
+ },
5147
+ aboutPage: {
5148
+ subtitle: "开源数据库管理工具",
5149
+ aboutTitle: "关于 fdb2",
5150
+ aboutDesc: "fdb2 是一款轻量级、跨平台的数据库管理工具,支持多种数据库类型,提供类似 Navicat Premium 的使用体验。",
5151
+ getMoreInfo: "获取更多信息",
5152
+ officialWebsite: "官方网站",
5153
+ githubRepo: "GitHub 仓库",
5154
+ coreAdvantages: "核心优势",
5155
+ advZeroConfig: "零配置启动:全局安装后即可使用,无需复杂配置",
5156
+ advCrossPlatform: "跨平台支持:Windows、macOS、Linux 全平台兼容",
5157
+ advLightweight: "轻量高效:资源占用低",
5158
+ advLocal: "本地存储:数据保存在本地,安全可靠",
5159
+ advOffline: "离线使用:无需联网即可管理本地数据库",
5160
+ supportedDbTypes: "支持的数据库类型",
5161
+ license: "许可证",
5162
+ licenseDesc: "fdb2 是一个完全开源的项目,采用 MIT 开源协议,自由使用。"
5163
+ },
5164
+ table: {
5165
+ data: "数据",
5166
+ structure: "结构",
5167
+ columnName: "列名",
5168
+ columnType: "数据类型",
5169
+ nullable: "可空",
5170
+ defaultValue: "默认值",
5171
+ key: "键",
5172
+ extra: "额外信息",
5173
+ indexName: "索引名",
5174
+ indexType: "索引类型",
5175
+ indexColumns: "索引列",
5176
+ constraintName: "约束名",
5177
+ referenceTable: "引用表",
5178
+ referenceColumn: "引用列",
5179
+ whereCondition: "WHERE 条件",
5180
+ orderBy: "排序",
5181
+ pageSize: "每页显示",
5182
+ query: "查询",
5183
+ insert: "插入",
5184
+ update: "更新",
5185
+ deleteRow: "删除",
5186
+ viewDetail: "查看详情",
5187
+ exportData: "导出数据",
5188
+ importData: "导入数据"
5189
+ },
5190
+ sql: {
5191
+ executor: "SQL执行器",
5192
+ placeholder: "请输入SQL语句...",
5193
+ execute: "执行",
5194
+ format: "格式化",
5195
+ history: "历史记录",
5196
+ result: "执行结果",
5197
+ affectedRows: "影响行数",
5198
+ executionTime: "执行时间",
5199
+ clear: "清空",
5200
+ noResult: "暂无结果"
5201
+ },
5202
+ pagination: {
5203
+ prevPage: "上一页",
5204
+ nextPage: "下一页"
5205
+ },
5206
+ user: {
5207
+ loading: "加载中...",
5208
+ loadFailed: "加载失败",
5209
+ unknownUser: "未知用户",
5210
+ selectUser: "选择用户",
5211
+ searchUser: "搜索用户...",
5212
+ searchResults: "搜索结果",
5213
+ noMatchUser: "没有找到匹配的用户",
5214
+ clearSelection: "清除选择",
5215
+ fetchUserFailed: "获取用户信息失败",
5216
+ fetchUserListFailed: "获取用户列表失败",
5217
+ fetchFailed: "获取用户失败"
5218
+ },
5219
+ store: {
5220
+ connectionIdNotExist: "连接ID不存在",
5221
+ getDatabaseListFailed: "获取数据库列表失败",
5222
+ getDatabaseInfoFailed: "获取数据库详细信息失败",
5223
+ getTableListFailed: "获取表列表失败",
5224
+ createDatabaseFailed: "创建数据库失败",
5225
+ testConnectionSuccess: "连接测试成功",
5226
+ testConnectionFailed: "连接测试失败"
5227
+ },
5228
+ about: {
5229
+ title: "关于",
5230
+ version: "版本",
5231
+ author: "作者",
5232
+ license: "许可证",
5233
+ homepage: "主页"
5234
+ }
5235
+ };
5236
+ }));
5237
+ //#endregion
5238
+ //#region src/i18n/locales/en-US.ts
5239
+ var en_US_default;
5240
+ var init_en_US = __esmMin((() => {
5241
+ en_US_default = {
5242
+ common: {
5243
+ confirm: "OK",
5244
+ cancel: "Cancel",
5245
+ save: "Save",
5246
+ delete: "Delete",
5247
+ edit: "Edit",
5248
+ add: "Add",
5249
+ refresh: "Refresh",
5250
+ search: "Search",
5251
+ loading: "Loading...",
5252
+ success: "Success",
5253
+ error: "Error",
5254
+ warning: "Warning",
5255
+ close: "Close",
5256
+ back: "Back",
5257
+ export: "Export",
5258
+ import: "Import",
5259
+ copy: "Copy",
5260
+ paste: "Paste",
5261
+ yes: "Yes",
5262
+ no: "No",
5263
+ enabled: "Enabled",
5264
+ disabled: "Disabled",
5265
+ unknown: "Unknown",
5266
+ operation: "Action",
5267
+ status: "Status",
5268
+ name: "Name",
5269
+ type: "Type",
5270
+ description: "Description",
5271
+ createdAt: "Created At",
5272
+ updatedAt: "Updated At",
5273
+ language: "Language",
5274
+ view: "View",
5275
+ rows: "Rows",
5276
+ about: "About",
5277
+ all: "All",
5278
+ format: "Format",
5279
+ never: "Never",
5280
+ default: "Default",
5281
+ create: "Create",
5282
+ totalRecords: "{count} records total",
5283
+ pageSizeLabel: "Page size:",
5284
+ noData: "No data",
5285
+ comment: "Comment",
5286
+ autoIncrement: "Auto Increment",
5287
+ primaryKey: "Primary Key",
5288
+ unique: "Unique",
5289
+ columns: "Columns",
5290
+ details: "Details",
5291
+ hide: "Hide",
5292
+ processing: "Processing...",
5293
+ tip: "Tip",
5294
+ confirmTitle: "Confirm"
5295
+ },
5296
+ nav: {
5297
+ databaseManagement: "Database Management",
5298
+ databaseHome: "Database Home",
5299
+ databaseExplorer: "Database Explorer",
5300
+ sqlQuery: "SQL Query"
5301
+ },
5302
+ home: {
5303
+ welcomeBack: "Welcome Back",
5304
+ title: "Database Management Platform",
5305
+ description: "A professional database management and monitoring tool, providing a one-stop database operation experience for developers. Supports multiple mainstream database types with an intuitive visual interface and powerful query capabilities.",
5306
+ addConnection: "Add Connection",
5307
+ addDatabaseConnection: "Add Database Connection",
5308
+ sqlQuery: "SQL Query",
5309
+ connectionCount: "Connections",
5310
+ supportedTypes: "Supported Types",
5311
+ onlineMonitor: "Online Monitoring",
5312
+ databaseConnections: "Database Connections",
5313
+ activeConnectionConfig: "Active connection configs",
5314
+ onlineStatus: "Online Status",
5315
+ normalRunning: "Running normally",
5316
+ databaseTypes: "Database Types",
5317
+ supportedEngines: "Supported engines",
5318
+ responseTime: "Response Time",
5319
+ avgQueryPerf: "Avg query performance",
5320
+ ultraFast: "Ultra Fast",
5321
+ types: "",
5322
+ coreFeatures: "Core Features",
5323
+ coreFeaturesSubtitle: "Powerful database management features to meet all your needs",
5324
+ quickAccess: "Quick Access",
5325
+ quickAccessSubtitle: "One-click access to your database connections",
5326
+ viewAllConnections: "View All Connections",
5327
+ startJourney: "Start Your Database Management Journey",
5328
+ startJourneyDesc: "No database connections configured yet? Let's add the first one and start your powerful database management experience.",
5329
+ featureConnectionMgmt: "Connection Management",
5330
+ featureConnectionMgmtDesc: "Support connection configuration and management for MySQL, PostgreSQL, SQLite, SQL Server, Oracle and other mainstream databases",
5331
+ featureStructureBrowse: "Structure Browsing",
5332
+ featureStructureBrowseDesc: "Intuitive display of database table structures, indexes, foreign key relationships, views, stored procedures and other database objects",
5333
+ featureDataOps: "Data Operations",
5334
+ featureDataOpsDesc: "View, edit, and delete table data with batch operations, pagination, conditional filtering, and data import/export",
5335
+ featureSqlQuery: "SQL Query",
5336
+ featureSqlQueryDesc: "Powerful SQL editor with syntax highlighting, auto-completion, query history, and result export",
5337
+ tagMultiDbSupport: "Multi-DB Support",
5338
+ tagSecureConnection: "Secure Connection",
5339
+ tagConnectionPool: "Connection Pool",
5340
+ tagVisual: "Visual",
5341
+ tagRelationDiagram: "Relation Diagram",
5342
+ tagDetailView: "Detail View",
5343
+ tagCrudOps: "CRUD Operations",
5344
+ tagBatchProcessing: "Batch Processing",
5345
+ tagImportExport: "Import/Export",
5346
+ tagSyntaxHighlight: "Syntax Highlighting",
5347
+ tagQueryHistory: "Query History",
5348
+ tagResultExport: "Result Export"
5349
+ },
5350
+ connection: {
5351
+ editConnection: "Edit Database Connection",
5352
+ addConnection: "New Database Connection",
5353
+ details: "Details",
5354
+ toggleDetails: "Toggle details",
5355
+ connectionStats: "Connection Stats",
5356
+ databaseCount: "Databases",
5357
+ tableCount: "Total Tables",
5358
+ totalSize: "Total Size",
5359
+ lastConnected: "Last Connected",
5360
+ quickActions: "Quick Actions",
5361
+ exportSchema: "Export Schema",
5362
+ viewLogs: "View Logs",
5363
+ searchDatabase: "Search databases...",
5364
+ loadingDatabases: "Loading databases...",
5365
+ noDatabase: "No databases yet",
5366
+ noMatchDatabase: "No matching databases found",
5367
+ databaseList: "Database List",
5368
+ createDatabase: "Create Database",
5369
+ createDatabaseTitle: "Create Database",
5370
+ databaseNameLabel: "Database Name",
5371
+ enterDatabaseName: "Enter database name",
5372
+ charset: "Charset",
5373
+ collation: "Collation",
5374
+ owner: "Owner",
5375
+ template: "Template",
5376
+ encoding: "Encoding",
5377
+ tablespace: "Tablespace",
5378
+ databaseOwner: "Database owner",
5379
+ templateDatabase: "Template database",
5380
+ enterDbNameRequired: "Please enter a database name",
5381
+ databaseCreateSuccess: "Database created successfully",
5382
+ databaseCreateFailed: "Failed to create database",
5383
+ connected: "Connected",
5384
+ disconnected: "Disconnected",
5385
+ testing: "Testing...",
5386
+ hoursAgo: "{n} hours ago",
5387
+ connectionName: "Connection Name",
5388
+ connectionNamePlaceholder: "Give the connection a memorable name",
5389
+ databaseType: "Database Type",
5390
+ selectDatabaseType: "Please select a database type",
5391
+ basicInfo: "Basic Information",
5392
+ connectionConfig: "Connection Configuration",
5393
+ sqliteConfig: "SQLite Configuration",
5394
+ authInfo: "Authentication",
5395
+ otherOptions: "Other Options",
5396
+ host: "Host",
5397
+ hostPlaceholder: "Database server address",
5398
+ port: "Port",
5399
+ portPlaceholder: "Database port number",
5400
+ databaseName: "Database Name",
5401
+ databaseNamePlaceholder: "Database name to connect to",
5402
+ connectionTimeout: "Connection Timeout",
5403
+ connectionTimeoutPlaceholder: "Connection timeout (seconds)",
5404
+ databaseFile: "Database File",
5405
+ databaseFilePlaceholder: "SQLite database file path",
5406
+ username: "Username",
5407
+ usernamePlaceholder: "Database username",
5408
+ password: "Password",
5409
+ passwordPlaceholder: "Database password",
5410
+ connectionStatus: "Connection Status",
5411
+ enableConnection: "Enable this connection",
5412
+ enableConnectionDesc: "Connection will be automatically enabled after creation",
5413
+ testConnection: "Test Connection",
5414
+ saveConfig: "Save Config",
5415
+ updateConfig: "Update Config",
5416
+ saveAndTest: "Save & Test",
5417
+ refreshConnection: "Refresh Connection",
5418
+ editConnectionTitle: "Edit Connection",
5419
+ deleteConnection: "Delete Connection",
5420
+ connectionTestSuccess: "Connection test successful",
5421
+ connectionTestFailed: "Connection test failed",
5422
+ configSaveSuccess: "Connection config added successfully",
5423
+ configUpdateSuccess: "Connection config updated successfully",
5424
+ configUpdateAndTestSuccess: "Connection config updated and tested successfully",
5425
+ configAddAndTestSuccess: "Connection config added and tested successfully",
5426
+ configSaveFailed: "Failed to save config",
5427
+ configSaveFailedServer: "Failed to save config, please check server status",
5428
+ configSavedButTestFailed: "Config saved, but connection test failed",
5429
+ nameRequired: "Connection name is required",
5430
+ typeRequired: "Database type is required",
5431
+ hostRequired: "Host address is required",
5432
+ portInvalid: "Port must be between 1-65535",
5433
+ databaseRequired: "{type} database name is required",
5434
+ sqliteFileRequired: "SQLite database file path is required",
5435
+ errorTitle: "Error",
5436
+ unknownError: "Unknown error",
5437
+ noConnectionYet: "No database connections yet",
5438
+ aboutTool: "About"
5439
+ },
5440
+ explorer: {
5441
+ title: "Database Explorer",
5442
+ refreshAll: "Refresh",
5443
+ addConnection: "Add Connection",
5444
+ refreshDatabase: "Refresh Database",
5445
+ deleteDatabase: "Delete Database",
5446
+ refreshTable: "Refresh Table",
5447
+ viewStructure: "View Structure",
5448
+ defaultTitle: "Database Explorer",
5449
+ defaultDesc: "Select a connection, database, or table from the left panel to view details",
5450
+ rowsSuffix: "rows"
5451
+ },
5452
+ databaseDetail: {
5453
+ tables: "Tables",
5454
+ views: "Views",
5455
+ procedures: "Procedures",
5456
+ functions: "Functions",
5457
+ executeSQL: "Execute SQL",
5458
+ tools: "Tools",
5459
+ createTable: "Create Table",
5460
+ createTableTitle: "Create Table",
5461
+ tableNameLabel: "Table Name",
5462
+ enterTableName: "Enter table name",
5463
+ commentLabel: "Comment",
5464
+ enterTableComment: "Enter table comment",
5465
+ noTable: "No tables yet",
5466
+ loadingTables: "Loading tables...",
5467
+ rowCountLabel: "Rows",
5468
+ createView: "Create View",
5469
+ editView: "Edit View",
5470
+ createViewTitle: "Create View",
5471
+ viewNameLabel: "View Name",
5472
+ enterViewName: "Enter view name",
5473
+ viewDefinition: "View Definition (SQL Query)",
5474
+ viewDefinitionPlaceholder: "Enter SELECT query, e.g.: SELECT * FROM table_name WHERE condition",
5475
+ noView: "No views yet",
5476
+ viewSaveSuccess: "View saved successfully",
5477
+ viewSaveFailed: "Failed to save view",
5478
+ viewDeleteSuccess: "View deleted successfully",
5479
+ viewDeleteFailed: "Failed to delete view",
5480
+ getViewDefFailed: "Failed to get view definition",
5481
+ fillViewNameAndDef: "Please fill in view name and definition",
5482
+ confirmDeleteView: "Are you sure you want to delete view \"{name}\"? This action cannot be undone.",
5483
+ createProcedure: "Create Procedure",
5484
+ editProcedure: "Edit Procedure",
5485
+ createProcedureTitle: "Create Procedure",
5486
+ procedureNameLabel: "Procedure Name",
5487
+ enterProcedureName: "Enter procedure name",
5488
+ procedureDefinition: "Procedure Definition",
5489
+ procedureDefPlaceholder: "Enter complete SQL definition for the procedure",
5490
+ noProcedure: "No stored procedures yet",
5491
+ procedureSaveSuccess: "Procedure saved successfully",
5492
+ procedureSaveFailed: "Failed to save procedure",
5493
+ procedureDeleteSuccess: "Procedure deleted successfully",
5494
+ procedureDeleteFailed: "Failed to delete procedure",
5495
+ getProcedureDefFailed: "Failed to get procedure definition",
5496
+ fillProcedureNameAndDef: "Please fill in procedure name and definition",
5497
+ confirmDeleteProcedure: "Are you sure you want to delete procedure \"{name}\"? This action cannot be undone.",
5498
+ functionInDev: "Functions feature is under development...",
5499
+ tableCreateSuccess: "Table created successfully",
5500
+ tableModifySuccess: "Table structure modified successfully",
5501
+ tableCreateFailed: "Failed to create table",
5502
+ tableModifyFailed: "Failed to modify table structure",
5503
+ size: "Size"
5504
+ },
5505
+ tableDetail: {
5506
+ rowData: "Row Data",
5507
+ refreshData: "Refresh Data",
5508
+ modifyStructure: "Modify Structure",
5509
+ insertData: "Insert Data",
5510
+ exportMenu: "Export",
5511
+ exportCSV: "Export CSV",
5512
+ exportJSON: "Export JSON",
5513
+ exportExcel: "Export Excel",
5514
+ exportStructure: "Export Structure",
5515
+ exportDataSQL: "Export Data (SQL)",
5516
+ truncateTable: "Truncate Table",
5517
+ dropTable: "Drop Table",
5518
+ dataTab: "Data",
5519
+ structureTab: "Structure",
5520
+ indexesTab: "Indexes",
5521
+ relationsTab: "Relations",
5522
+ addColumn: "Add Column",
5523
+ columnNameHeader: "Column Name",
5524
+ dataTypeHeader: "Data Type",
5525
+ nullableHeader: "Nullable",
5526
+ defaultHeader: "Default",
5527
+ primaryKeyHeader: "Primary Key",
5528
+ autoIncHeader: "Auto Increment",
5529
+ commentHeader: "Comment",
5530
+ operationsHeader: "Actions",
5531
+ indexNameHeader: "Index Name",
5532
+ typeHeader: "Type",
5533
+ uniqueHeader: "Unique",
5534
+ columnsHeader: "Columns",
5535
+ constraintNameHeader: "Constraint Name",
5536
+ localColumnHeader: "Local Column",
5537
+ targetTableHeader: "Target Table",
5538
+ targetColumnHeader: "Target Column",
5539
+ onDeleteHeader: "On Delete",
5540
+ onUpdateHeader: "On Update",
5541
+ confirmDeleteRow: "Are you sure you want to delete this row?",
5542
+ noPrimaryKey: "This table has no primary key, cannot delete single row.",
5543
+ deleteSuccess: "Deleted successfully",
5544
+ deleteFailed: "Delete failed",
5545
+ confirmTruncate: "Are you sure you want to truncate all data? This action cannot be undone!",
5546
+ confirmTruncateBtn: "Confirm Truncate",
5547
+ truncateSuccess: "Table truncated successfully",
5548
+ truncateFailed: "Failed to truncate table",
5549
+ confirmDrop: "Are you sure you want to drop this table? This action cannot be undone!",
5550
+ dropSuccess: "Table dropped successfully",
5551
+ dropFailed: "Failed to drop table",
5552
+ operationFailed: "Operation failed",
5553
+ structureModifySuccess: "Table structure modified successfully",
5554
+ structureModifyFailed: "Failed to modify table structure",
5555
+ confirmDeleteColumn: "Are you sure you want to delete column {name}?",
5556
+ confirmDeleteIndex: "Are you sure you want to delete index {name}?",
5557
+ confirmDeleteFK: "Are you sure you want to delete foreign key {name}?",
5558
+ noInsertField: "No insertable fields",
5559
+ insertFailed: "Failed to insert data",
5560
+ missingConnectionInfo: "Missing required connection info",
5561
+ exportSuccess: "Table data exported successfully, file path: {path}",
5562
+ exportFailed: "Failed to export table data",
5563
+ exportStructFailed: "Failed to export table structure",
5564
+ unsupportedFormat: "Unsupported export format",
5565
+ noDataInTable: "No data in table"
5566
+ },
5567
+ sqlExecutor: {
5568
+ executeSQL: "Execute SQL",
5569
+ clearBtn: "Clear",
5570
+ executing: "Executing...",
5571
+ resultTitle: "Execution Result",
5572
+ exportJSON: "Export JSON",
5573
+ executingSQL: "Executing SQL...",
5574
+ executingHint: "Please wait, complex queries may take longer",
5575
+ inputSQLPlaceholder: "Enter SQL query...",
5576
+ resultPlaceholder: "Execute SQL to see results...",
5577
+ enterSQL: "Please enter SQL statement",
5578
+ selectConnectionFirst: "Please select a database connection first",
5579
+ unknownError: "Unknown error occurred while executing SQL",
5580
+ formatFailed: "Unable to format result"
5581
+ },
5582
+ dataEditor: {
5583
+ editData: "Edit Data",
5584
+ addData: "New Data",
5585
+ autoGenerate: "Auto-generated",
5586
+ inputPlaceholder: "Enter {name}",
5587
+ selectPlaceholder: "Select...",
5588
+ trueLabel: "Yes/True",
5589
+ falseLabel: "No/False",
5590
+ jsonCorrect: "JSON format is correct",
5591
+ jsonPlaceholder: "Enter JSON data for {name}",
5592
+ jsonFormatError: "JSON format error",
5593
+ updateBtn: "Update",
5594
+ insertBtn: "Insert",
5595
+ fixJsonError: "Please fix JSON format errors before submitting",
5596
+ updateSuccess: "Data updated successfully",
5597
+ insertSuccess: "Data inserted successfully"
5598
+ },
5599
+ tableEditor: {
5600
+ createNewTable: "Create New Table",
5601
+ modifyStructure: "Modify Table Structure",
5602
+ tableInfo: "Table Info",
5603
+ tableNameLabel: "Table Name",
5604
+ tableNamePlaceholder: "Enter table name",
5605
+ tableCommentLabel: "Table Comment",
5606
+ tableCommentPlaceholder: "Enter table comment",
5607
+ columnManagement: "Column Management",
5608
+ addColumn: "Add Column",
5609
+ columnNameHeader: "Column Name",
5610
+ dataTypeHeader: "Data Type",
5611
+ lengthPrecisionHeader: "Length/Precision",
5612
+ nullableHeader: "Nullable",
5613
+ defaultHeader: "Default",
5614
+ primaryKeyHeader: "Primary Key",
5615
+ autoIncHeader: "Auto Increment",
5616
+ commentHeader: "Comment",
5617
+ operationsHeader: "Actions",
5618
+ columnNamePlaceholder: "Column name",
5619
+ selectType: "Select type",
5620
+ lengthPlaceholder: "Length",
5621
+ precisionPlaceholder: "Precision",
5622
+ scalePlaceholder: "Scale",
5623
+ fieldComment: "Field Comment",
5624
+ sqlPreview: "SQL Preview",
5625
+ catNumeric: "Numeric",
5626
+ catString: "String",
5627
+ catText: "Text",
5628
+ catDateTime: "Date/Time",
5629
+ catBoolean: "Boolean",
5630
+ catBinary: "Binary",
5631
+ catJson: "JSON",
5632
+ catArray: "Array",
5633
+ catSpatial: "Spatial",
5634
+ catOther: "Other"
5635
+ },
5636
+ importExport: {
5637
+ title: "Data Import/Export",
5638
+ dataImport: "Data Import",
5639
+ dataExport: "Data Export",
5640
+ stepSelectFile: "Select File",
5641
+ stepConfigOptions: "Configure Options",
5642
+ stepPreviewData: "Preview Data",
5643
+ stepExecuteImport: "Execute Import",
5644
+ dragFileHere: "Drag files here or click to select",
5645
+ supportedFormats: "Supports CSV, Excel (xlsx), JSON formats",
5646
+ selectFile: "Select File",
5647
+ selectedFiles: "Selected files:",
5648
+ nextStep: "Next",
5649
+ prevStep: "Previous",
5650
+ targetTableConfig: "Target Table Configuration",
5651
+ selectConnection: "Select connection",
5652
+ selectTable: "Select table",
5653
+ importOptions: "Import Options",
5654
+ importMode: "Import Mode",
5655
+ modeInsert: "Insert new data",
5656
+ modeReplace: "Replace table data",
5657
+ modeUpdate: "Update existing data",
5658
+ modeAppend: "Append data",
5659
+ encodingFormat: "Encoding",
5660
+ csvExcelOptions: "CSV/Excel Options",
5661
+ delimiter: "Delimiter",
5662
+ comma: "Comma (,)",
5663
+ semicolon: "Semicolon (;)",
5664
+ tab: "Tab",
5665
+ pipe: "Pipe (|)",
5666
+ firstRowHeader: "First row as header",
5667
+ firstRowIsHeader: "First row is column header",
5668
+ dataPreview: "Data Preview",
5669
+ showFirstNRows: "Showing first {n} rows",
5670
+ loadMore: "Load more",
5671
+ importingData: "Importing data",
5672
+ importComplete: "Import complete!",
5673
+ importResultStats: "Successfully imported {success} records, {failed} failed",
5674
+ viewDetails: "View details",
5675
+ newImport: "New Import",
5676
+ preparingImport: "Preparing import...",
5677
+ importingRecord: "Importing record {n}...",
5678
+ importDone: "Import complete",
5679
+ importFailedMsg: "Import failed",
5680
+ importSuccessToast: "Successfully imported {success} records, {failed} failed",
5681
+ importFailedToast: "Import failed: {msg}",
5682
+ selectFileAndConfig: "Please select a file and configure import options",
5683
+ pleaseSelectFile: "Please select a file",
5684
+ unsupportedFileFormat: "Unsupported file format",
5685
+ parseFileFailed: "Failed to parse file: {msg}",
5686
+ parseExcelFailed: "Failed to parse Excel file: {msg}",
5687
+ loadPreviewFailed: "Failed to load preview data: {msg}",
5688
+ loadConnectionFailed: "Failed to load connections: {msg}",
5689
+ columnPrefix: "Column {n}",
5690
+ dataSourceConfig: "Data Source Configuration",
5691
+ tableName: "Table Name",
5692
+ exportOptions: "Export Options",
5693
+ exportFormat: "Export Format",
5694
+ dataFilter: "Data Filter",
5695
+ whereCondition: "WHERE Condition (optional)",
5696
+ wherePlaceholder: "e.g.: created_at > '2024-01-01' AND status = 'active'",
5697
+ limitRows: "Row Limit",
5698
+ limitPlaceholder: "0 for no limit",
5699
+ orderByField: "Order By",
5700
+ orderByPlaceholder: "e.g.: id DESC",
5701
+ columnSelection: "Column Selection",
5702
+ selectAll: "Select All",
5703
+ columnsSelected: "{selected} / {total} columns selected",
5704
+ previewDataBtn: "Preview Data",
5705
+ startExport: "Start Export",
5706
+ exporting: "Exporting...",
5707
+ exportPreview: "Export Preview",
5708
+ totalRecordsCount: "{count} records total",
5709
+ databaseConnection: "Database Connection",
5710
+ targetTable: "Target Table"
5711
+ },
5712
+ queryHistory: {
5713
+ title: "Query History",
5714
+ searchPlaceholder: "Search queries...",
5715
+ allTypes: "All Types",
5716
+ clearHistory: "Clear History",
5717
+ totalQueries: "Total Queries",
5718
+ todayQueries: "Today's Queries",
5719
+ favoriteQueries: "Favorite Queries",
5720
+ avgExecTime: "Avg Execution Time",
5721
+ filterAll: "All",
5722
+ filterRecent: "Recent",
5723
+ filterFavorites: "Favorites",
5724
+ filterSlow: "Slow Queries",
5725
+ filterFailed: "Failed",
5726
+ queryRecords: "Query Records ({count})",
5727
+ exportBtn: "Export",
5728
+ unfavorite: "Remove from favorites",
5729
+ addFavorite: "Add to favorites",
5730
+ reExecute: "Re-execute",
5731
+ copySQL: "Copy SQL",
5732
+ deleteRecord: "Delete record",
5733
+ sqlStatement: "SQL Statement",
5734
+ execResult: "Execution Result",
5735
+ errorInfo: "Error Info",
5736
+ execPlan: "Execution Plan",
5737
+ copyBtn: "Copy",
5738
+ affectedRowsLabel: "Affected rows:",
5739
+ returnedRowsLabel: "Returned rows:",
5740
+ execTimeLabel: "Execution time:",
5741
+ execError: "Execution Error",
5742
+ noPlanData: "No execution plan data available",
5743
+ confirmClearTitle: "Confirm Clear",
5744
+ confirmClearMsg: "Are you sure you want to clear all query history? This action cannot be undone.",
5745
+ justNow: "Just now",
5746
+ minutesAgo: "{n} min ago",
5747
+ hoursAgo: "{n} hours ago",
5748
+ daysAgo: "{n} days ago",
5749
+ exportTime: "Time",
5750
+ exportType: "Type",
5751
+ exportConnection: "Connection",
5752
+ exportExecTime: "Execution Time",
5753
+ exportStatus: "Status"
5754
+ },
5755
+ monitor: {
5756
+ title: "Database Monitor",
5757
+ selectConnection: "Select database connection",
5758
+ refresh: "Refresh",
5759
+ autoRefresh: "Auto Refresh",
5760
+ interval5s: "5s",
5761
+ interval10s: "10s",
5762
+ interval30s: "30s",
5763
+ interval1m: "1m",
5764
+ connectionStatus: "Connection Status",
5765
+ responseTime: "Response Time",
5766
+ activeQueries: "Active Queries",
5767
+ totalQueries: "{n} total queries",
5768
+ storageUsage: "Storage Usage",
5769
+ totalCapacity: "{size} total capacity",
5770
+ queryPerfTrend: "Query Performance Trend",
5771
+ connectionChanges: "Connection Changes",
5772
+ slowQueryAnalysis: "Slow Query Analysis",
5773
+ clearRecords: "Clear Records",
5774
+ thTime: "Time",
5775
+ thExecTime: "Execution Time",
5776
+ thQueryType: "Query Type",
5777
+ thQuerySQL: "Query SQL",
5778
+ thOperation: "Action",
5779
+ analyzeBtn: "Analyze",
5780
+ noSlowQueries: "No slow query records",
5781
+ noSlowQueriesHint: "All queries completed within normal execution time",
5782
+ resourceUsage: "Resource Usage Details",
5783
+ cpuUsage: "CPU Usage",
5784
+ memoryUsage: "Memory Usage",
5785
+ diskIO: "Disk I/O",
5786
+ networkBandwidth: "Network Bandwidth",
5787
+ emptyTitle: "Select a database connection to start monitoring",
5788
+ emptyDesc: "Select a database connection from above to view real-time monitoring data",
5789
+ statusOnline: "Online",
5790
+ statusOffline: "Offline",
5791
+ statusWarning: "Warning",
5792
+ statusUnknown: "Unknown",
5793
+ perfExcellent: "Excellent",
5794
+ perfGood: "Good",
5795
+ perfAverage: "Average",
5796
+ perfSlow: "Slow",
5797
+ timeRange1h: "1h",
5798
+ timeRange6h: "6h",
5799
+ timeRange24h: "24h",
5800
+ timeRange7d: "7d",
5801
+ chartResponseTime: "Response time: {n}ms",
5802
+ chartConnectionCount: "Connections: {n}",
5803
+ yAxisResponseTime: "Response time (ms)",
5804
+ yAxisConnectionCount: "Connections",
5805
+ hourLabel: "{n}:00",
5806
+ seriesResponseTime: "Response Time",
5807
+ seriesConnectionCount: "Connections"
5808
+ },
5809
+ dbTools: {
5810
+ title: "Database Management Tools",
5811
+ dataBackup: "Data Backup",
5812
+ backupDatabase: "Backup Database",
5813
+ restoreDatabase: "Restore Database",
5814
+ scheduledBackup: "Scheduled Backup",
5815
+ userManagement: "User Management",
5816
+ userList: "User List",
5817
+ createUser: "Create User",
5818
+ permissionMgmt: "Permission Management",
5819
+ perfMonitor: "Performance Monitor",
5820
+ processList: "Process List",
5821
+ slowQueries: "Slow Queries",
5822
+ connectionCount: "Connections",
5823
+ dbOptimization: "Database Optimization",
5824
+ optimizeDatabase: "Optimize Database",
5825
+ analyzeTables: "Analyze Tables",
5826
+ repairTables: "Repair Tables",
5827
+ clearLogs: "Clear Logs",
5828
+ dataMigration: "Data Migration",
5829
+ exportStructure: "Export Structure",
5830
+ importStructure: "Import Data",
5831
+ dataSync: "Data Sync",
5832
+ healthCheck: "Health Check",
5833
+ dataStatistics: "Data Statistics",
5834
+ auditLog: "Audit Log",
5835
+ closeBtn: "Close",
5836
+ sourceDatabase: "Source Database",
5837
+ targetDatabase: "Target Database",
5838
+ databaseNameLabel: "Database Name",
5839
+ selectTableLabel: "Select Table",
5840
+ selectTablePlaceholder: "Please select a table",
5841
+ useExistingConnection: "Use existing database connection",
5842
+ selectConnectionLabel: "Select Database Connection",
5843
+ selectConnectionPlaceholder: "Please select a connection",
5844
+ selectDatabaseLabel: "Select Database",
5845
+ selectDatabasePlaceholder: "Please select a database",
5846
+ targetTableName: "Target Table Name",
5847
+ dbTypeLabel: "Database Type",
5848
+ hostLabel: "Host",
5849
+ portLabel: "Port",
5850
+ dbNameLabel: "Database Name",
5851
+ usernameLabel: "Username",
5852
+ passwordLabel: "Password",
5853
+ syncOptions: "Sync Options",
5854
+ syncStructure: "Sync table structure",
5855
+ syncData: "Sync table data",
5856
+ dropIfExists: "Drop target table if exists",
5857
+ bulkInsert: "Bulk insert data",
5858
+ overrideExisting: "Override existing data",
5859
+ startSync: "Start Sync",
5860
+ stopSync: "Stop Sync",
5861
+ execResults: "Execution Results",
5862
+ clearBtn: "Clear",
5863
+ noResults: "No execution results",
5864
+ restoreModalTitle: "Restore Database",
5865
+ restoreSelectFile: "Please select a backup file to restore:",
5866
+ selectedFile: "Selected file:",
5867
+ dropExistingTable: "Drop existing tables",
5868
+ restoreBtn: "Restore",
5869
+ backupFailed: "Backup failed",
5870
+ optimizeFailed: "Optimization failed",
5871
+ analyzeFailed: "Analysis failed",
5872
+ repairFailed: "Repair failed",
5873
+ restoreFailed: "Restore failed",
5874
+ syncFailed: "Sync failed",
5875
+ syncConfigIncomplete: "Please fill in the complete sync configuration",
5876
+ syncStarted: "Starting data sync",
5877
+ syncSuccess: "Data sync successful, {success}/{total} tables synced, {rows} rows total",
5878
+ syncSuccessToast: "Data sync successful, {success}/{total} tables synced",
5879
+ loadTablesFailed: "Failed to load table list",
5880
+ sqlSent: "SQL query sent",
5881
+ featureInDev: "{feature} feature is under development...",
5882
+ healthNormal: "Normal",
5883
+ healthCheckConnection: "Connection Status",
5884
+ healthCheckTableIntegrity: "Table Integrity",
5885
+ healthCheckIndexStatus: "Index Status",
5886
+ healthCheckDiskSpace: "Disk Space",
5887
+ unknownError: "Unknown error",
5888
+ toolTitle: "Tool",
5889
+ dataSyncTitle: "Data Sync"
5890
+ },
5891
+ aboutPage: {
5892
+ subtitle: "Open Source Database Management Tool",
5893
+ aboutTitle: "About fdb2",
5894
+ aboutDesc: "fdb2 is a lightweight, cross-platform database management tool that supports multiple database types and provides a Navicat Premium-like experience.",
5895
+ getMoreInfo: "Get More Information",
5896
+ officialWebsite: "Official Website",
5897
+ githubRepo: "GitHub Repository",
5898
+ coreAdvantages: "Core Advantages",
5899
+ advZeroConfig: "Zero-config startup: Ready to use after global installation, no complex setup required",
5900
+ advCrossPlatform: "Cross-platform: Full compatibility with Windows, macOS, and Linux",
5901
+ advLightweight: "Lightweight & efficient: Low resource usage",
5902
+ advLocal: "Local storage: Data saved locally, safe and reliable",
5903
+ advOffline: "Offline usage: Manage local databases without internet connection",
5904
+ supportedDbTypes: "Supported Database Types",
5905
+ license: "License",
5906
+ licenseDesc: "fdb2 is a fully open-source project, using MIT license, free to use."
5907
+ },
5908
+ table: {
5909
+ data: "Data",
5910
+ structure: "Structure",
5911
+ columnName: "Column Name",
5912
+ columnType: "Data Type",
5913
+ nullable: "Nullable",
5914
+ defaultValue: "Default Value",
5915
+ key: "Key",
5916
+ extra: "Extra",
5917
+ indexName: "Index Name",
5918
+ indexType: "Index Type",
5919
+ indexColumns: "Index Columns",
5920
+ constraintName: "Constraint Name",
5921
+ referenceTable: "Reference Table",
5922
+ referenceColumn: "Reference Column",
5923
+ whereCondition: "WHERE Condition",
5924
+ orderBy: "Order By",
5925
+ pageSize: "Page Size",
5926
+ query: "Query",
5927
+ insert: "Insert",
5928
+ update: "Update",
5929
+ deleteRow: "Delete",
5930
+ viewDetail: "View Detail",
5931
+ exportData: "Export Data",
5932
+ importData: "Import Data"
5933
+ },
5934
+ sql: {
5935
+ executor: "SQL Executor",
5936
+ placeholder: "Enter SQL statement...",
5937
+ execute: "Execute",
5938
+ format: "Format",
5939
+ history: "History",
5940
+ result: "Result",
5941
+ affectedRows: "Affected Rows",
5942
+ executionTime: "Execution Time",
5943
+ clear: "Clear",
5944
+ noResult: "No results"
5945
+ },
5946
+ pagination: {
5947
+ prevPage: "Previous",
5948
+ nextPage: "Next"
5949
+ },
5950
+ user: {
5951
+ loading: "Loading...",
5952
+ loadFailed: "Load failed",
5953
+ unknownUser: "Unknown user",
5954
+ selectUser: "Select user",
5955
+ searchUser: "Search users...",
5956
+ searchResults: "Search results",
5957
+ noMatchUser: "No matching users found",
5958
+ clearSelection: "Clear selection",
5959
+ fetchUserFailed: "Failed to fetch user info",
5960
+ fetchUserListFailed: "Failed to fetch user list",
5961
+ fetchFailed: "Failed to fetch users"
5962
+ },
5963
+ store: {
5964
+ connectionIdNotExist: "Connection ID does not exist",
5965
+ getDatabaseListFailed: "Failed to get database list",
5966
+ getDatabaseInfoFailed: "Failed to get database info",
5967
+ getTableListFailed: "Failed to get table list",
5968
+ createDatabaseFailed: "Failed to create database",
5969
+ testConnectionSuccess: "Connection test successful",
5970
+ testConnectionFailed: "Connection test failed"
5971
+ },
5972
+ about: {
5973
+ title: "About",
5974
+ version: "Version",
5975
+ author: "Author",
5976
+ license: "License",
5977
+ homepage: "Homepage"
5978
+ }
5979
+ };
5980
+ }));
5981
+ //#endregion
5982
+ //#region src/i18n/index.ts
5983
+ function getSavedLocale() {
5984
+ try {
5985
+ const saved = localStorage.getItem(LOCALE_KEY);
5986
+ if (saved === "zh-CN" || saved === "en-US") return saved;
5987
+ } catch {}
5988
+ return "en-US";
5989
+ }
5990
+ function getT() {
5991
+ return i18n.global.t;
5992
+ }
5993
+ var LOCALE_KEY, i18n;
5994
+ var init_i18n = __esmMin((() => {
5995
+ init_vue_i18n();
5996
+ init_zh_CN();
5997
+ init_en_US();
5998
+ LOCALE_KEY = "app-locale";
5999
+ i18n = createI18n({
6000
+ legacy: false,
6001
+ locale: getSavedLocale(),
6002
+ fallbackLocale: "en-US",
6003
+ messages: {
6004
+ "zh-CN": zh_CN_default,
6005
+ "en-US": en_US_default
6006
+ }
6007
+ });
6008
+ }));
6009
+ //#endregion
4294
6010
  //#region \0vite/preload-helper.js
4295
6011
  var scriptRel, assetsURL, seen, __vitePreload;
4296
6012
  var init_preload_helper = __esmMin((() => {
@@ -4363,7 +6079,7 @@ var init_router$1 = __esmMin((() => {
4363
6079
  component: () => __vitePreload(() => import("./layout.js"), __vite__mapDeps([0,1,2,3]), import.meta.url),
4364
6080
  redirect: "/database/index",
4365
6081
  meta: {
4366
- title: "数据库管理",
6082
+ titleKey: "nav.databaseManagement",
4367
6083
  icon: "bi-database",
4368
6084
  needAuth: false
4369
6085
  },
@@ -4372,7 +6088,7 @@ var init_router$1 = __esmMin((() => {
4372
6088
  name: "database-index",
4373
6089
  component: () => __vitePreload(() => import("./explorer.js"), __vite__mapDeps([4,1,2,5]), import.meta.url),
4374
6090
  meta: {
4375
- title: "数据库管理首页",
6091
+ titleKey: "nav.databaseHome",
4376
6092
  icon: "bi-house",
4377
6093
  needAuth: false
4378
6094
  }
@@ -4381,7 +6097,7 @@ var init_router$1 = __esmMin((() => {
4381
6097
  name: "database-explorer",
4382
6098
  component: () => __vitePreload(() => import("./explorer.js"), __vite__mapDeps([4,1,2,5]), import.meta.url),
4383
6099
  meta: {
4384
- title: "数据库浏览器",
6100
+ titleKey: "nav.databaseExplorer",
4385
6101
  icon: "bi-diagram-3",
4386
6102
  needAuth: false
4387
6103
  }
@@ -4396,6 +6112,7 @@ var init_router = __esmMin((() => {
4396
6112
  init_core();
4397
6113
  init_ajax();
4398
6114
  init_login();
6115
+ init_i18n();
4399
6116
  init_router$1();
4400
6117
  router = createRouter({
4401
6118
  history: createWebHistory("./"),
@@ -4412,11 +6129,14 @@ var init_router = __esmMin((() => {
4412
6129
  next();
4413
6130
  });
4414
6131
  router.afterEach((to) => {
4415
- if (to.meta?.title) useTitle(to.meta.title);
6132
+ if (to.meta?.titleKey) {
6133
+ const t = i18n.global.t;
6134
+ useTitle(t(to.meta.titleKey));
6135
+ } else if (to.meta?.title) useTitle(to.meta.title);
4416
6136
  });
4417
6137
  }));
4418
6138
  //#endregion
4419
- //#region node_modules/.pnpm/pinia-plugin-persistedstate@4.7.1_pinia@3.0.4_typescript@5.9.3_vue@3.5.33_typescript@5.9.3__/node_modules/pinia-plugin-persistedstate/dist/index.js
6139
+ //#region node_modules/.pnpm/pinia-plugin-persistedstate@4.7.1_pinia@3.0.4_typescript@5.9.3_vue@3.5.34_typescript@5.9.3__/node_modules/pinia-plugin-persistedstate/dist/index.js
4420
6140
  function get(obj, path) {
4421
6141
  if (obj == null) return void 0;
4422
6142
  let value = obj;
@@ -4683,6 +6403,7 @@ var init_toast = __esmMin((() => {
4683
6403
  var _hoisted_1$3, _hoisted_2$3, index_vue_vue_type_script_setup_true_lang_default$2;
4684
6404
  var init_index_vue_vue_type_script_setup_true_lang$2 = __esmMin((() => {
4685
6405
  init_vue_runtime_esm_bundler();
6406
+ init_vue_i18n();
4686
6407
  _hoisted_1$3 = {
4687
6408
  key: 0,
4688
6409
  class: "loading-overlay"
@@ -4700,37 +6421,41 @@ var init_index_vue_vue_type_script_setup_true_lang$2 = __esmMin((() => {
4700
6421
  },
4701
6422
  message: {
4702
6423
  type: String,
4703
- default: "加载中..."
6424
+ default: ""
4704
6425
  }
4705
6426
  },
4706
6427
  setup(__props) {
6428
+ const { t } = useI18n();
6429
+ const props = __props;
6430
+ const displayMessage = computed(() => props.message || t("common.loading"));
4707
6431
  return (_ctx, _cache) => {
4708
6432
  return __props.isLoading ? (openBlock(), createElementBlock("div", _hoisted_1$3, [_cache[0] || (_cache[0] = createBaseVNode("div", { class: "loading-spinner" }, [createBaseVNode("div", {
4709
6433
  class: "spinner-border text-primary",
4710
6434
  role: "status"
4711
- }, [createBaseVNode("span", { class: "visually-hidden" }, "Loading...")])], -1)), __props.message ? (openBlock(), createElementBlock("p", _hoisted_2$3, toDisplayString(__props.message), 1)) : createCommentVNode("", true)])) : createCommentVNode("", true);
6435
+ }, [createBaseVNode("span", { class: "visually-hidden" }, "Loading...")])], -1)), displayMessage.value ? (openBlock(), createElementBlock("p", _hoisted_2$3, toDisplayString(displayMessage.value), 1)) : createCommentVNode("", true)])) : createCommentVNode("", true);
4712
6436
  };
4713
6437
  }
4714
6438
  });
4715
6439
  }));
4716
6440
  //#endregion
4717
- //#region src/components/loading/index.vue?vue&type=style&index=0&scoped=d5892680&lang.css
4718
- var init_index_vue_vue_type_style_index_0_scoped_d5892680_lang = __esmMin((() => {}));
6441
+ //#region src/components/loading/index.vue?vue&type=style&index=0&scoped=4c24ced2&lang.css
6442
+ var init_index_vue_vue_type_style_index_0_scoped_4c24ced2_lang = __esmMin((() => {}));
4719
6443
  //#endregion
4720
6444
  //#region src/components/loading/index.vue
4721
6445
  var loading_default;
4722
6446
  var init_loading = __esmMin((() => {
4723
6447
  init_index_vue_vue_type_script_setup_true_lang$2();
4724
6448
  init_index_vue_vue_type_script_setup_true_lang$2();
4725
- init_index_vue_vue_type_style_index_0_scoped_d5892680_lang();
6449
+ init_index_vue_vue_type_style_index_0_scoped_4c24ced2_lang();
4726
6450
  init__plugin_vue_export_helper();
4727
- loading_default = /* @__PURE__ */ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default$2, [["__scopeId", "data-v-d5892680"]]);
6451
+ loading_default = /* @__PURE__ */ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default$2, [["__scopeId", "data-v-4c24ced2"]]);
4728
6452
  }));
4729
6453
  //#endregion
4730
6454
  //#region src/components/modal/index.vue?vue&type=script&setup=true&lang.ts
4731
6455
  var _hoisted_1$2, _hoisted_2$2, _hoisted_3$2, _hoisted_4$1, _hoisted_5$1, _hoisted_6$1, _hoisted_7$1, _hoisted_8$1, _hoisted_9$1, index_vue_vue_type_script_setup_true_lang_default$1;
4732
6456
  var init_index_vue_vue_type_script_setup_true_lang$1 = __esmMin((() => {
4733
6457
  init_vue_runtime_esm_bundler();
6458
+ init_vue_i18n();
4734
6459
  init_bootstrap_esm();
4735
6460
  init_loading();
4736
6461
  _hoisted_1$2 = {
@@ -4764,14 +6489,14 @@ var init_index_vue_vue_type_script_setup_true_lang$1 = __esmMin((() => {
4764
6489
  closeButton: {
4765
6490
  type: Object,
4766
6491
  default: {
4767
- text: "关闭",
6492
+ text: "",
4768
6493
  show: false
4769
6494
  }
4770
6495
  },
4771
6496
  confirmButton: {
4772
6497
  type: Object,
4773
6498
  default: {
4774
- text: "确定",
6499
+ text: "",
4775
6500
  show: true
4776
6501
  }
4777
6502
  },
@@ -4781,7 +6506,7 @@ var init_index_vue_vue_type_script_setup_true_lang$1 = __esmMin((() => {
4781
6506
  },
4782
6507
  loadingMessage: {
4783
6508
  type: String,
4784
- default: "处理中..."
6509
+ default: ""
4785
6510
  },
4786
6511
  style: {
4787
6512
  type: Object,
@@ -4807,6 +6532,7 @@ var init_index_vue_vue_type_script_setup_true_lang$1 = __esmMin((() => {
4807
6532
  "onHidden"
4808
6533
  ],
4809
6534
  setup(__props, { expose: __expose, emit: __emit }) {
6535
+ const { t } = useI18n();
4810
6536
  const modalId = `modal-${Date.now()}-${Math.floor(Math.random() * 1e3)}`;
4811
6537
  const props = __props;
4812
6538
  const dynamicOptions = ref({});
@@ -5074,21 +6800,21 @@ var init_index_vue_vue_type_script_setup_true_lang$1 = __esmMin((() => {
5074
6800
  }, null, 2)) : createCommentVNode("", true), createBaseVNode("div", _hoisted_5$1, toDisplayString(dynamicContent.value), 1)]), shouldShowDetails() ? (openBlock(), createElementBlock("div", _hoisted_6$1, [createBaseVNode("button", {
5075
6801
  class: "btn btn-sm btn-outline-secondary",
5076
6802
  onClick: toggleDetails
5077
- }, [createTextVNode(toDisplayString(detailsExpanded.value ? "隐藏" : "详情") + " ", 1), _cache[0] || (_cache[0] = createBaseVNode("i", { class: "bi bi-chevron-{{detailsExpanded ? 'up' : 'down'}} ms-1" }, null, -1))]), detailsExpanded.value ? (openBlock(), createElementBlock("div", _hoisted_7$1, [createBaseVNode("pre", _hoisted_8$1, toDisplayString(formatErrorDetails()), 1)])) : createCommentVNode("", true)])) : createCommentVNode("", true)]))])) : createCommentVNode("", true),
6803
+ }, [createTextVNode(toDisplayString(detailsExpanded.value ? _ctx.$t("common.hide") : _ctx.$t("common.details")) + " ", 1), _cache[0] || (_cache[0] = createBaseVNode("i", { class: "bi bi-chevron-{{detailsExpanded ? 'up' : 'down'}} ms-1" }, null, -1))]), detailsExpanded.value ? (openBlock(), createElementBlock("div", _hoisted_7$1, [createBaseVNode("pre", _hoisted_8$1, toDisplayString(formatErrorDetails()), 1)])) : createCommentVNode("", true)])) : createCommentVNode("", true)]))])) : createCommentVNode("", true),
5078
6804
  createBaseVNode("div", _hoisted_9$1, [_ctx.$slots.footer ? renderSlot(_ctx.$slots, "footer", { key: 0 }, void 0, true) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [dynamicShowCancel.value || props.closeButton.show ? (openBlock(), createElementBlock("button", {
5079
6805
  key: 0,
5080
6806
  type: "button",
5081
6807
  class: "btn btn-secondary",
5082
6808
  onClick: cancel
5083
- }, toDisplayString(dynamicCancelText.value || props.closeButton.text), 1)) : createCommentVNode("", true), props.confirmButton.show ? (openBlock(), createElementBlock("button", {
6809
+ }, toDisplayString(dynamicCancelText.value || props.closeButton.text || _ctx.$t("common.close")), 1)) : createCommentVNode("", true), props.confirmButton.show ? (openBlock(), createElementBlock("button", {
5084
6810
  key: 1,
5085
6811
  type: "button",
5086
6812
  class: normalizeClass(["btn", confirmButtonClass.value]),
5087
6813
  onClick: confirm
5088
- }, toDisplayString(dynamicConfirmText.value || props.confirmButton.text), 3)) : createCommentVNode("", true)], 64))]),
6814
+ }, toDisplayString(dynamicConfirmText.value || props.confirmButton.text || _ctx.$t("common.confirm")), 3)) : createCommentVNode("", true)], 64))]),
5089
6815
  createVNode(loading_default, {
5090
6816
  isLoading: props.isLoading,
5091
- message: props.loadingMessage
6817
+ message: props.loadingMessage || unref(t)("common.processing")
5092
6818
  }, null, 8, ["isLoading", "message"])
5093
6819
  ], 2)], 6)], 512);
5094
6820
  };
@@ -5096,23 +6822,24 @@ var init_index_vue_vue_type_script_setup_true_lang$1 = __esmMin((() => {
5096
6822
  });
5097
6823
  }));
5098
6824
  //#endregion
5099
- //#region src/components/modal/index.vue?vue&type=style&index=0&scoped=6653cff9&lang.css
5100
- var init_index_vue_vue_type_style_index_0_scoped_6653cff9_lang = __esmMin((() => {}));
6825
+ //#region src/components/modal/index.vue?vue&type=style&index=0&scoped=a95e7049&lang.css
6826
+ var init_index_vue_vue_type_style_index_0_scoped_a95e7049_lang = __esmMin((() => {}));
5101
6827
  //#endregion
5102
6828
  //#region src/components/modal/index.vue
5103
6829
  var modal_default$1;
5104
6830
  var init_modal$1 = __esmMin((() => {
5105
6831
  init_index_vue_vue_type_script_setup_true_lang$1();
5106
6832
  init_index_vue_vue_type_script_setup_true_lang$1();
5107
- init_index_vue_vue_type_style_index_0_scoped_6653cff9_lang();
6833
+ init_index_vue_vue_type_style_index_0_scoped_a95e7049_lang();
5108
6834
  init__plugin_vue_export_helper();
5109
- modal_default$1 = /* @__PURE__ */ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default$1, [["__scopeId", "data-v-6653cff9"]]);
6835
+ modal_default$1 = /* @__PURE__ */ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default$1, [["__scopeId", "data-v-a95e7049"]]);
5110
6836
  }));
5111
6837
  //#endregion
5112
6838
  //#region src/components/dataGrid/pagination.vue?vue&type=script&setup=true&lang.ts
5113
6839
  var _hoisted_1$1, _hoisted_2$1, _hoisted_3$1, pagination_vue_vue_type_script_setup_true_lang_default;
5114
6840
  var init_pagination_vue_vue_type_script_setup_true_lang = __esmMin((() => {
5115
6841
  init_vue_runtime_esm_bundler();
6842
+ init_vue_i18n();
5116
6843
  _hoisted_1$1 = {
5117
6844
  "aria-label": "Page navigation",
5118
6845
  class: "px-3"
@@ -5133,6 +6860,7 @@ var init_pagination_vue_vue_type_script_setup_true_lang = __esmMin((() => {
5133
6860
  },
5134
6861
  emits: ["pageChanged"],
5135
6862
  setup(__props, { emit: __emit }) {
6863
+ const { t } = useI18n();
5136
6864
  const props = __props;
5137
6865
  const emits = __emit;
5138
6866
  const visiblePages = computed(() => {
@@ -5175,7 +6903,7 @@ var init_pagination_vue_vue_type_script_setup_true_lang = __esmMin((() => {
5175
6903
  class: "page-link",
5176
6904
  href: "#",
5177
6905
  onClick: withModifiers(prevPage, ["prevent"])
5178
- }, "上一页")], 2),
6906
+ }, toDisplayString(unref(t)("pagination.prevPage")), 1)], 2),
5179
6907
  (openBlock(true), createElementBlock(Fragment, null, renderList(visiblePages.value, (page) => {
5180
6908
  return openBlock(), createElementBlock("li", {
5181
6909
  key: page,
@@ -5194,7 +6922,7 @@ var init_pagination_vue_vue_type_script_setup_true_lang = __esmMin((() => {
5194
6922
  class: "page-link",
5195
6923
  href: "#",
5196
6924
  onClick: withModifiers(nextPage, ["prevent"])
5197
- }, "下一页")], 2)
6925
+ }, toDisplayString(unref(t)("pagination.nextPage")), 1)], 2)
5198
6926
  ])]);
5199
6927
  };
5200
6928
  }
@@ -5213,6 +6941,7 @@ var init_pagination = __esmMin((() => {
5213
6941
  var _hoisted_1, _hoisted_2, _hoisted_3, _hoisted_4, _hoisted_5, _hoisted_6, _hoisted_7, _hoisted_8, _hoisted_9, _hoisted_10, _hoisted_11, _hoisted_12, _hoisted_13, index_vue_vue_type_script_setup_true_lang_default;
5214
6942
  var init_index_vue_vue_type_script_setup_true_lang = __esmMin((() => {
5215
6943
  init_vue_runtime_esm_bundler();
6944
+ init_vue_i18n();
5216
6945
  init_loading();
5217
6946
  init_pagination();
5218
6947
  _hoisted_1 = { class: "datagrid-container" };
@@ -5249,7 +6978,7 @@ var init_index_vue_vue_type_script_setup_true_lang = __esmMin((() => {
5249
6978
  },
5250
6979
  loadingMessage: {
5251
6980
  type: String,
5252
- default: "加载中..."
6981
+ default: ""
5253
6982
  },
5254
6983
  totalPages: {
5255
6984
  type: Number,
@@ -5286,6 +7015,7 @@ var init_index_vue_vue_type_script_setup_true_lang = __esmMin((() => {
5286
7015
  "sortChanged"
5287
7016
  ],
5288
7017
  setup(__props, { emit: __emit }) {
7018
+ const { t } = useI18n();
5289
7019
  const props = __props;
5290
7020
  const emits = __emit;
5291
7021
  function renderDataItem(row, column) {
@@ -5345,17 +7075,17 @@ var init_index_vue_vue_type_script_setup_true_lang = __esmMin((() => {
5345
7075
  });
5346
7076
  }));
5347
7077
  //#endregion
5348
- //#region src/components/dataGrid/index.vue?vue&type=style&index=0&scoped=ae552d25&lang.css
5349
- var init_index_vue_vue_type_style_index_0_scoped_ae552d25_lang = __esmMin((() => {}));
7078
+ //#region src/components/dataGrid/index.vue?vue&type=style&index=0&scoped=f249eac8&lang.css
7079
+ var init_index_vue_vue_type_style_index_0_scoped_f249eac8_lang = __esmMin((() => {}));
5350
7080
  //#endregion
5351
7081
  //#region src/components/dataGrid/index.vue
5352
7082
  var dataGrid_default;
5353
7083
  var init_dataGrid = __esmMin((() => {
5354
7084
  init_index_vue_vue_type_script_setup_true_lang();
5355
7085
  init_index_vue_vue_type_script_setup_true_lang();
5356
- init_index_vue_vue_type_style_index_0_scoped_ae552d25_lang();
7086
+ init_index_vue_vue_type_style_index_0_scoped_f249eac8_lang();
5357
7087
  init__plugin_vue_export_helper();
5358
- dataGrid_default = /* @__PURE__ */ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-ae552d25"]]);
7088
+ dataGrid_default = /* @__PURE__ */ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-f249eac8"]]);
5359
7089
  }));
5360
7090
  //#endregion
5361
7091
  //#region src/components/modal/index.ts
@@ -5363,12 +7093,15 @@ var globalModalInstance, modalInstance, modal_default, getModalInstance, isModal
5363
7093
  var init_modal = __esmMin((() => {
5364
7094
  init_vue_runtime_esm_bundler();
5365
7095
  init_modal$1();
7096
+ init_i18n();
5366
7097
  globalModalInstance = null;
5367
7098
  modal_default = {
5368
7099
  install(app) {
5369
7100
  const mount = document.createElement("div");
5370
7101
  document.body.appendChild(mount);
5371
- globalModalInstance = createApp(modal_default$1).mount(mount);
7102
+ const modalApp = createApp(modal_default$1);
7103
+ modalApp.use(i18n);
7104
+ globalModalInstance = modalApp.mount(mount);
5372
7105
  if (globalModalInstance && globalModalInstance.$el) globalModalInstance.$el.addEventListener("hidden.bs.modal", () => {
5373
7106
  isModalActive = false;
5374
7107
  console.log("Modal hidden, isModalActive reset to false");
@@ -5403,32 +7136,36 @@ var init_modal = __esmMin((() => {
5403
7136
  });
5404
7137
  },
5405
7138
  success(content) {
7139
+ const t = getT();
5406
7140
  return this.alert({
5407
7141
  content,
5408
7142
  type: "success",
5409
- confirmText: "确定"
7143
+ confirmText: t("common.confirm")
5410
7144
  });
5411
7145
  },
5412
7146
  error(content, details) {
7147
+ const t = getT();
5413
7148
  return this.alert({
5414
7149
  content,
5415
7150
  type: "error",
5416
- confirmText: "确定",
7151
+ confirmText: t("common.confirm"),
5417
7152
  details
5418
7153
  });
5419
7154
  },
5420
7155
  warning(content) {
7156
+ const t = getT();
5421
7157
  return this.alert({
5422
7158
  content,
5423
7159
  type: "warning",
5424
- confirmText: "确定"
7160
+ confirmText: t("common.confirm")
5425
7161
  });
5426
7162
  },
5427
7163
  info(content) {
7164
+ const t = getT();
5428
7165
  return this.alert({
5429
7166
  content,
5430
7167
  type: "info",
5431
- confirmText: "确定"
7168
+ confirmText: t("common.confirm")
5432
7169
  });
5433
7170
  }
5434
7171
  };
@@ -5447,10 +7184,11 @@ var init_modal = __esmMin((() => {
5447
7184
  showModal = (options) => {
5448
7185
  if (!globalModalInstance) return Promise.resolve(false);
5449
7186
  return new Promise((resolve) => {
7187
+ const t = getT();
5450
7188
  const finalOptions = {
5451
- title: "提示",
5452
- confirmText: "确定",
5453
- cancelText: "取消",
7189
+ title: t("common.tip"),
7190
+ confirmText: t("common.confirm"),
7191
+ cancelText: t("common.cancel"),
5454
7192
  showCancel: false,
5455
7193
  type: "info",
5456
7194
  ...options,
@@ -5492,7 +7230,7 @@ var init_modal = __esmMin((() => {
5492
7230
  };
5493
7231
  showConfirm = (content, options) => {
5494
7232
  return showModal({
5495
- title: "确认",
7233
+ title: getT()("common.confirmTitle"),
5496
7234
  content,
5497
7235
  type: "warning",
5498
7236
  showCancel: true,
@@ -5506,6 +7244,7 @@ var init_modal = __esmMin((() => {
5506
7244
  init_router();
5507
7245
  init_pinia();
5508
7246
  init_dist();
7247
+ init_i18n();
5509
7248
  init_bootstrap();
5510
7249
  init_bootstrap_icons();
5511
7250
  init_database();
@@ -5523,6 +7262,7 @@ var init_modal = __esmMin((() => {
5523
7262
  pinia.use(src_default);
5524
7263
  app.use(router);
5525
7264
  app.use(pinia);
7265
+ app.use(i18n);
5526
7266
  app.use(toast_default);
5527
7267
  app.use(modal_default);
5528
7268
  app.component("Modal", modal_default$1);
@@ -5530,4 +7270,4 @@ var init_modal = __esmMin((() => {
5530
7270
  app.mount("#app");
5531
7271
  })))();
5532
7272
  //#endregion
5533
- export { init_pinia as _, dataGrid_default as a, modal_default$1 as c, toast as d, init_toast$2 as f, defineStore as g, request as h, showConfirm as i, init_loading as l, init_base as m, init_modal as n, init_dataGrid as o, toast_default$1 as p, showAlert as r, init_modal$1 as s, getModalInstance as t, init_toast$1 as u, _plugin_vue_export_helper_default as v, init__plugin_vue_export_helper as y };
7273
+ export { request as _, dataGrid_default as a, _plugin_vue_export_helper_default as b, modal_default$1 as c, toast as d, init_toast$2 as f, init_base as g, init_i18n as h, showConfirm as i, init_loading as l, getT as m, init_modal as n, init_dataGrid as o, toast_default$1 as p, showAlert as r, init_modal$1 as s, getModalInstance as t, init_toast$1 as u, defineStore as v, init__plugin_vue_export_helper as x, init_pinia as y };