@indfnd/utils 0.1.25 → 0.1.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/ind-utils.es.js +242 -77
  3. package/dist/ind-utils.umd.cjs +19 -19
  4. package/package.json +2 -2
  5. package/src/api/com.ts +3 -0
  6. package/src/api/item.ts +5 -0
  7. package/src/config/index.ts +14 -3
  8. package/src/utils/request/axios.extends.ts +14 -0
  9. package/src/utils/request/index.ts +116 -0
  10. package/src/utils/request/interceptors.ts +2 -1
  11. package/types/api/com.d.ts.map +1 -1
  12. package/types/api/index.d.ts +6 -6
  13. package/types/api/item.d.ts.map +1 -1
  14. package/types/api/platform/base64.d.ts +5 -5
  15. package/types/api/platform/index.d.ts +5 -5
  16. package/types/config/base.config.d.ts +33 -33
  17. package/types/config/dev.config.d.ts +3 -3
  18. package/types/config/index.d.ts +6 -67
  19. package/types/config/index.d.ts.map +1 -1
  20. package/types/config/prod.config.d.ts +3 -3
  21. package/types/index.d.ts +4 -4
  22. package/types/utils/base64.d.ts +22 -22
  23. package/types/utils/blob.d.ts +3 -3
  24. package/types/utils/cache/dict-cache.d.ts +3 -3
  25. package/types/utils/cache/index-desc.d.ts +4 -4
  26. package/types/utils/cache/index.d.ts +4 -4
  27. package/types/utils/cache/permission-cache.d.ts +4 -4
  28. package/types/utils/cache/user-cache.d.ts +4 -4
  29. package/types/utils/date.d.ts +4 -4
  30. package/types/utils/enum.d.ts +39 -43
  31. package/types/utils/event.d.ts +5 -13
  32. package/types/utils/excel.d.ts +4 -4
  33. package/types/utils/half-year.d.ts +6 -6
  34. package/types/utils/index.d.ts +20 -20
  35. package/types/utils/is-type.d.ts +33 -33
  36. package/types/utils/mime-type.d.ts +67 -67
  37. package/types/utils/number.d.ts +8 -8
  38. package/types/utils/quarter.d.ts +7 -7
  39. package/types/utils/request/axios.extends.d.ts +6 -7
  40. package/types/utils/request/axios.extends.d.ts.map +1 -1
  41. package/types/utils/request/cache-rules.d.ts +3 -3
  42. package/types/utils/request/content-type.d.ts +9 -9
  43. package/types/utils/request/index.d.ts +20 -8
  44. package/types/utils/request/index.d.ts.map +1 -1
  45. package/types/utils/request/interceptors.d.ts +4 -4
  46. package/types/utils/request/interceptors.d.ts.map +1 -1
  47. package/types/utils/request/url-params.d.ts +6 -6
  48. package/types/utils/sm3/index.d.ts +6 -6
  49. package/types/utils/sm3/sm3.d.ts +3 -3
  50. package/types/utils/storage.d.ts +8 -8
  51. package/types/utils/table.d.ts +31 -40
  52. package/types/utils/token.d.ts +3 -3
  53. package/types/utils/uuid.d.ts +4 -4
  54. package/types/utils/validate.d.ts +5 -5
package/CHANGELOG.md CHANGED
@@ -2,6 +2,17 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.1.27](http://git.inspur.com/imp-ec/ind-front/ind-utils/compare/v0.1.26...v0.1.27) (2026-01-13)
6
+
7
+
8
+ ### Features
9
+
10
+ * 地市公司兼容湖北 ([61c7731](http://git.inspur.com/imp-ec/ind-front/ind-utils/commit/61c7731c5ad3d27cbd6bffd47856df796f123819))
11
+ * utils增加getSingleton等api ([f1c0f79](http://git.inspur.com/imp-ec/ind-front/ind-utils/commit/f1c0f7919e97eefb39746a5f7d63b9eedf7b1e99))
12
+ * utils增加getSingleton等api 修改 ([b913574](http://git.inspur.com/imp-ec/ind-front/ind-utils/commit/b91357498aba90a05d06ca2f17a16fb3bddd5654))
13
+
14
+ ### [0.1.26](http://git.inspur.com/imp-ec/ind-front/ind-utils/compare/v0.1.25...v0.1.26) (2025-10-10)
15
+
5
16
  ### [0.1.25](http://git.inspur.com/imp-ec/ind-front/ind-utils/compare/v0.1.24...v0.1.25) (2025-09-04)
6
17
 
7
18
 
@@ -2536,7 +2536,7 @@ var compactQueue = function compactQueue2(queue) {
2536
2536
  }
2537
2537
  };
2538
2538
  var arrayToObject = function arrayToObject2(source2, options) {
2539
- var obj = options && options.plainObjects ? /* @__PURE__ */ Object.create(null) : {};
2539
+ var obj = options && options.plainObjects ? { __proto__: null } : {};
2540
2540
  for (var i = 0; i < source2.length; ++i) {
2541
2541
  if (typeof source2[i] !== "undefined") {
2542
2542
  obj[i] = source2[i];
@@ -2548,7 +2548,7 @@ var merge = function merge2(target, source2, options) {
2548
2548
  if (!source2) {
2549
2549
  return target;
2550
2550
  }
2551
- if (typeof source2 !== "object") {
2551
+ if (typeof source2 !== "object" && typeof source2 !== "function") {
2552
2552
  if (isArray$3(target)) {
2553
2553
  target.push(source2);
2554
2554
  } else if (target && typeof target === "object") {
@@ -2598,7 +2598,7 @@ var assign = function assignSingleSource(target, source2) {
2598
2598
  return acc;
2599
2599
  }, target);
2600
2600
  };
2601
- var decode = function(str, decoder, charset) {
2601
+ var decode = function(str, defaultDecoder, charset) {
2602
2602
  var strWithoutPlus = str.replace(/\+/g, " ");
2603
2603
  if (charset === "iso-8859-1") {
2604
2604
  return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
@@ -2609,6 +2609,7 @@ var decode = function(str, decoder, charset) {
2609
2609
  return strWithoutPlus;
2610
2610
  }
2611
2611
  };
2612
+ var limit = 1024;
2612
2613
  var encode = function encode2(str, defaultEncoder, charset, kind, format) {
2613
2614
  if (str.length === 0) {
2614
2615
  return str;
@@ -2625,27 +2626,32 @@ var encode = function encode2(str, defaultEncoder, charset, kind, format) {
2625
2626
  });
2626
2627
  }
2627
2628
  var out = "";
2628
- for (var i = 0; i < string.length; ++i) {
2629
- var c = string.charCodeAt(i);
2630
- if (c === 45 || c === 46 || c === 95 || c === 126 || c >= 48 && c <= 57 || c >= 65 && c <= 90 || c >= 97 && c <= 122 || format === formats$2.RFC1738 && (c === 40 || c === 41)) {
2631
- out += string.charAt(i);
2632
- continue;
2633
- }
2634
- if (c < 128) {
2635
- out = out + hexTable[c];
2636
- continue;
2637
- }
2638
- if (c < 2048) {
2639
- out = out + (hexTable[192 | c >> 6] + hexTable[128 | c & 63]);
2640
- continue;
2641
- }
2642
- if (c < 55296 || c >= 57344) {
2643
- out = out + (hexTable[224 | c >> 12] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63]);
2644
- continue;
2629
+ for (var j = 0; j < string.length; j += limit) {
2630
+ var segment = string.length >= limit ? string.slice(j, j + limit) : string;
2631
+ var arr = [];
2632
+ for (var i = 0; i < segment.length; ++i) {
2633
+ var c = segment.charCodeAt(i);
2634
+ if (c === 45 || c === 46 || c === 95 || c === 126 || c >= 48 && c <= 57 || c >= 65 && c <= 90 || c >= 97 && c <= 122 || format === formats$2.RFC1738 && (c === 40 || c === 41)) {
2635
+ arr[arr.length] = segment.charAt(i);
2636
+ continue;
2637
+ }
2638
+ if (c < 128) {
2639
+ arr[arr.length] = hexTable[c];
2640
+ continue;
2641
+ }
2642
+ if (c < 2048) {
2643
+ arr[arr.length] = hexTable[192 | c >> 6] + hexTable[128 | c & 63];
2644
+ continue;
2645
+ }
2646
+ if (c < 55296 || c >= 57344) {
2647
+ arr[arr.length] = hexTable[224 | c >> 12] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63];
2648
+ continue;
2649
+ }
2650
+ i += 1;
2651
+ c = 65536 + ((c & 1023) << 10 | segment.charCodeAt(i) & 1023);
2652
+ arr[arr.length] = hexTable[240 | c >> 18] + hexTable[128 | c >> 12 & 63] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63];
2645
2653
  }
2646
- i += 1;
2647
- c = 65536 + ((c & 1023) << 10 | string.charCodeAt(i) & 1023);
2648
- out += hexTable[240 | c >> 18] + hexTable[128 | c >> 12 & 63] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63];
2654
+ out += arr.join("");
2649
2655
  }
2650
2656
  return out;
2651
2657
  };
@@ -2728,12 +2734,17 @@ var defaultFormat = formats$1["default"];
2728
2734
  var defaults$1 = {
2729
2735
  addQueryPrefix: false,
2730
2736
  allowDots: false,
2737
+ allowEmptyArrays: false,
2738
+ arrayFormat: "indices",
2731
2739
  charset: "utf-8",
2732
2740
  charsetSentinel: false,
2741
+ commaRoundTrip: false,
2733
2742
  delimiter: "&",
2734
2743
  encode: true,
2744
+ encodeDotInKeys: false,
2735
2745
  encoder: utils$1.encode,
2736
2746
  encodeValuesOnly: false,
2747
+ filter: void 0,
2737
2748
  format: defaultFormat,
2738
2749
  formatter: formats$1.formatters[defaultFormat],
2739
2750
  indices: false,
@@ -2747,7 +2758,7 @@ var isNonNullishPrimitive = function isNonNullishPrimitive2(v) {
2747
2758
  return typeof v === "string" || typeof v === "number" || typeof v === "boolean" || typeof v === "symbol" || typeof v === "bigint";
2748
2759
  };
2749
2760
  var sentinel = {};
2750
- var stringify$1 = function stringify(object, prefix, generateArrayPrefix, commaRoundTrip, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate2, format, formatter, encodeValuesOnly, charset, sideChannel2) {
2761
+ var stringify$1 = function stringify(object, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder, filter, sort, allowDots, serializeDate2, format, formatter, encodeValuesOnly, charset, sideChannel2) {
2751
2762
  var obj = object;
2752
2763
  var tmpSc = sideChannel2;
2753
2764
  var step = 0;
@@ -2807,14 +2818,19 @@ var stringify$1 = function stringify(object, prefix, generateArrayPrefix, commaR
2807
2818
  var keys = Object.keys(obj);
2808
2819
  objKeys = sort ? keys.sort(sort) : keys;
2809
2820
  }
2810
- var adjustedPrefix = commaRoundTrip && isArray$2(obj) && obj.length === 1 ? prefix + "[]" : prefix;
2821
+ var encodedPrefix = encodeDotInKeys ? String(prefix).replace(/\./g, "%2E") : String(prefix);
2822
+ var adjustedPrefix = commaRoundTrip && isArray$2(obj) && obj.length === 1 ? encodedPrefix + "[]" : encodedPrefix;
2823
+ if (allowEmptyArrays && isArray$2(obj) && obj.length === 0) {
2824
+ return adjustedPrefix + "[]";
2825
+ }
2811
2826
  for (var j = 0; j < objKeys.length; ++j) {
2812
2827
  var key = objKeys[j];
2813
- var value = typeof key === "object" && typeof key.value !== "undefined" ? key.value : obj[key];
2828
+ var value = typeof key === "object" && key && typeof key.value !== "undefined" ? key.value : obj[key];
2814
2829
  if (skipNulls && value === null) {
2815
2830
  continue;
2816
2831
  }
2817
- var keyPrefix = isArray$2(obj) ? typeof generateArrayPrefix === "function" ? generateArrayPrefix(adjustedPrefix, key) : adjustedPrefix : adjustedPrefix + (allowDots ? "." + key : "[" + key + "]");
2832
+ var encodedKey = allowDots && encodeDotInKeys ? String(key).replace(/\./g, "%2E") : String(key);
2833
+ var keyPrefix = isArray$2(obj) ? typeof generateArrayPrefix === "function" ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix : adjustedPrefix + (allowDots ? "." + encodedKey : "[" + encodedKey + "]");
2818
2834
  sideChannel2.set(object, step);
2819
2835
  var valueSideChannel = getSideChannel2();
2820
2836
  valueSideChannel.set(sentinel, sideChannel2);
@@ -2823,8 +2839,10 @@ var stringify$1 = function stringify(object, prefix, generateArrayPrefix, commaR
2823
2839
  keyPrefix,
2824
2840
  generateArrayPrefix,
2825
2841
  commaRoundTrip,
2842
+ allowEmptyArrays,
2826
2843
  strictNullHandling,
2827
2844
  skipNulls,
2845
+ encodeDotInKeys,
2828
2846
  generateArrayPrefix === "comma" && encodeValuesOnly && isArray$2(obj) ? null : encoder,
2829
2847
  filter,
2830
2848
  sort,
@@ -2843,6 +2861,12 @@ var normalizeStringifyOptions = function normalizeStringifyOptions2(opts) {
2843
2861
  if (!opts) {
2844
2862
  return defaults$1;
2845
2863
  }
2864
+ if (typeof opts.allowEmptyArrays !== "undefined" && typeof opts.allowEmptyArrays !== "boolean") {
2865
+ throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");
2866
+ }
2867
+ if (typeof opts.encodeDotInKeys !== "undefined" && typeof opts.encodeDotInKeys !== "boolean") {
2868
+ throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");
2869
+ }
2846
2870
  if (opts.encoder !== null && typeof opts.encoder !== "undefined" && typeof opts.encoder !== "function") {
2847
2871
  throw new TypeError("Encoder has to be a function.");
2848
2872
  }
@@ -2862,13 +2886,29 @@ var normalizeStringifyOptions = function normalizeStringifyOptions2(opts) {
2862
2886
  if (typeof opts.filter === "function" || isArray$2(opts.filter)) {
2863
2887
  filter = opts.filter;
2864
2888
  }
2889
+ var arrayFormat;
2890
+ if (opts.arrayFormat in arrayPrefixGenerators) {
2891
+ arrayFormat = opts.arrayFormat;
2892
+ } else if ("indices" in opts) {
2893
+ arrayFormat = opts.indices ? "indices" : "repeat";
2894
+ } else {
2895
+ arrayFormat = defaults$1.arrayFormat;
2896
+ }
2897
+ if ("commaRoundTrip" in opts && typeof opts.commaRoundTrip !== "boolean") {
2898
+ throw new TypeError("`commaRoundTrip` must be a boolean, or absent");
2899
+ }
2900
+ var allowDots = typeof opts.allowDots === "undefined" ? opts.encodeDotInKeys === true ? true : defaults$1.allowDots : !!opts.allowDots;
2865
2901
  return {
2866
2902
  addQueryPrefix: typeof opts.addQueryPrefix === "boolean" ? opts.addQueryPrefix : defaults$1.addQueryPrefix,
2867
- allowDots: typeof opts.allowDots === "undefined" ? defaults$1.allowDots : !!opts.allowDots,
2903
+ allowDots,
2904
+ allowEmptyArrays: typeof opts.allowEmptyArrays === "boolean" ? !!opts.allowEmptyArrays : defaults$1.allowEmptyArrays,
2905
+ arrayFormat,
2868
2906
  charset,
2869
2907
  charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults$1.charsetSentinel,
2908
+ commaRoundTrip: !!opts.commaRoundTrip,
2870
2909
  delimiter: typeof opts.delimiter === "undefined" ? defaults$1.delimiter : opts.delimiter,
2871
2910
  encode: typeof opts.encode === "boolean" ? opts.encode : defaults$1.encode,
2911
+ encodeDotInKeys: typeof opts.encodeDotInKeys === "boolean" ? opts.encodeDotInKeys : defaults$1.encodeDotInKeys,
2872
2912
  encoder: typeof opts.encoder === "function" ? opts.encoder : defaults$1.encoder,
2873
2913
  encodeValuesOnly: typeof opts.encodeValuesOnly === "boolean" ? opts.encodeValuesOnly : defaults$1.encodeValuesOnly,
2874
2914
  filter,
@@ -2896,19 +2936,8 @@ var stringify_1 = function(object, opts) {
2896
2936
  if (typeof obj !== "object" || obj === null) {
2897
2937
  return "";
2898
2938
  }
2899
- var arrayFormat;
2900
- if (opts && opts.arrayFormat in arrayPrefixGenerators) {
2901
- arrayFormat = opts.arrayFormat;
2902
- } else if (opts && "indices" in opts) {
2903
- arrayFormat = opts.indices ? "indices" : "repeat";
2904
- } else {
2905
- arrayFormat = "indices";
2906
- }
2907
- var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];
2908
- if (opts && "commaRoundTrip" in opts && typeof opts.commaRoundTrip !== "boolean") {
2909
- throw new TypeError("`commaRoundTrip` must be a boolean, or absent");
2910
- }
2911
- var commaRoundTrip = generateArrayPrefix === "comma" && opts && opts.commaRoundTrip;
2939
+ var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];
2940
+ var commaRoundTrip = generateArrayPrefix === "comma" && options.commaRoundTrip;
2912
2941
  if (!objKeys) {
2913
2942
  objKeys = Object.keys(obj);
2914
2943
  }
@@ -2918,16 +2947,19 @@ var stringify_1 = function(object, opts) {
2918
2947
  var sideChannel2 = getSideChannel2();
2919
2948
  for (var i = 0; i < objKeys.length; ++i) {
2920
2949
  var key = objKeys[i];
2921
- if (options.skipNulls && obj[key] === null) {
2950
+ var value = obj[key];
2951
+ if (options.skipNulls && value === null) {
2922
2952
  continue;
2923
2953
  }
2924
2954
  pushToArray(keys, stringify$1(
2925
- obj[key],
2955
+ value,
2926
2956
  key,
2927
2957
  generateArrayPrefix,
2928
2958
  commaRoundTrip,
2959
+ options.allowEmptyArrays,
2929
2960
  options.strictNullHandling,
2930
2961
  options.skipNulls,
2962
+ options.encodeDotInKeys,
2931
2963
  options.encode ? options.encoder : null,
2932
2964
  options.filter,
2933
2965
  options.sort,
@@ -2956,31 +2988,39 @@ var has = Object.prototype.hasOwnProperty;
2956
2988
  var isArray$1 = Array.isArray;
2957
2989
  var defaults = {
2958
2990
  allowDots: false,
2991
+ allowEmptyArrays: false,
2959
2992
  allowPrototypes: false,
2960
2993
  allowSparse: false,
2961
2994
  arrayLimit: 20,
2962
2995
  charset: "utf-8",
2963
2996
  charsetSentinel: false,
2964
2997
  comma: false,
2998
+ decodeDotInKeys: false,
2965
2999
  decoder: utils.decode,
2966
3000
  delimiter: "&",
2967
3001
  depth: 5,
3002
+ duplicates: "combine",
2968
3003
  ignoreQueryPrefix: false,
2969
3004
  interpretNumericEntities: false,
2970
3005
  parameterLimit: 1e3,
2971
3006
  parseArrays: true,
2972
3007
  plainObjects: false,
2973
- strictNullHandling: false
3008
+ strictDepth: false,
3009
+ strictNullHandling: false,
3010
+ throwOnLimitExceeded: false
2974
3011
  };
2975
3012
  var interpretNumericEntities = function(str) {
2976
3013
  return str.replace(/&#(\d+);/g, function($0, numberStr) {
2977
3014
  return String.fromCharCode(parseInt(numberStr, 10));
2978
3015
  });
2979
3016
  };
2980
- var parseArrayValue = function(val, options) {
3017
+ var parseArrayValue = function(val, options, currentArrayLength) {
2981
3018
  if (val && typeof val === "string" && options.comma && val.indexOf(",") > -1) {
2982
3019
  return val.split(",");
2983
3020
  }
3021
+ if (options.throwOnLimitExceeded && currentArrayLength >= options.arrayLimit) {
3022
+ throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
3023
+ }
2984
3024
  return val;
2985
3025
  };
2986
3026
  var isoSentinel = "utf8=%26%2310003%3B";
@@ -2988,8 +3028,15 @@ var charsetSentinel = "utf8=%E2%9C%93";
2988
3028
  var parseValues = function parseQueryStringValues(str, options) {
2989
3029
  var obj = { __proto__: null };
2990
3030
  var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, "") : str;
2991
- var limit = options.parameterLimit === Infinity ? void 0 : options.parameterLimit;
2992
- var parts = cleanStr.split(options.delimiter, limit);
3031
+ cleanStr = cleanStr.replace(/%5B/gi, "[").replace(/%5D/gi, "]");
3032
+ var limit2 = options.parameterLimit === Infinity ? void 0 : options.parameterLimit;
3033
+ var parts = cleanStr.split(
3034
+ options.delimiter,
3035
+ options.throwOnLimitExceeded ? limit2 + 1 : limit2
3036
+ );
3037
+ if (options.throwOnLimitExceeded && parts.length > limit2) {
3038
+ throw new RangeError("Parameter limit exceeded. Only " + limit2 + " parameter" + (limit2 === 1 ? "" : "s") + " allowed.");
3039
+ }
2993
3040
  var skipIndex = -1;
2994
3041
  var i;
2995
3042
  var charset = options.charset;
@@ -3013,51 +3060,63 @@ var parseValues = function parseQueryStringValues(str, options) {
3013
3060
  var part = parts[i];
3014
3061
  var bracketEqualsPos = part.indexOf("]=");
3015
3062
  var pos = bracketEqualsPos === -1 ? part.indexOf("=") : bracketEqualsPos + 1;
3016
- var key, val;
3063
+ var key;
3064
+ var val;
3017
3065
  if (pos === -1) {
3018
3066
  key = options.decoder(part, defaults.decoder, charset, "key");
3019
3067
  val = options.strictNullHandling ? null : "";
3020
3068
  } else {
3021
3069
  key = options.decoder(part.slice(0, pos), defaults.decoder, charset, "key");
3022
3070
  val = utils.maybeMap(
3023
- parseArrayValue(part.slice(pos + 1), options),
3071
+ parseArrayValue(
3072
+ part.slice(pos + 1),
3073
+ options,
3074
+ isArray$1(obj[key]) ? obj[key].length : 0
3075
+ ),
3024
3076
  function(encodedVal) {
3025
3077
  return options.decoder(encodedVal, defaults.decoder, charset, "value");
3026
3078
  }
3027
3079
  );
3028
3080
  }
3029
3081
  if (val && options.interpretNumericEntities && charset === "iso-8859-1") {
3030
- val = interpretNumericEntities(val);
3082
+ val = interpretNumericEntities(String(val));
3031
3083
  }
3032
3084
  if (part.indexOf("[]=") > -1) {
3033
3085
  val = isArray$1(val) ? [val] : val;
3034
3086
  }
3035
- if (has.call(obj, key)) {
3087
+ var existing = has.call(obj, key);
3088
+ if (existing && options.duplicates === "combine") {
3036
3089
  obj[key] = utils.combine(obj[key], val);
3037
- } else {
3090
+ } else if (!existing || options.duplicates === "last") {
3038
3091
  obj[key] = val;
3039
3092
  }
3040
3093
  }
3041
3094
  return obj;
3042
3095
  };
3043
3096
  var parseObject = function(chain, val, options, valuesParsed) {
3044
- var leaf = valuesParsed ? val : parseArrayValue(val, options);
3097
+ var currentArrayLength = 0;
3098
+ if (chain.length > 0 && chain[chain.length - 1] === "[]") {
3099
+ var parentKey = chain.slice(0, -1).join("");
3100
+ currentArrayLength = Array.isArray(val) && val[parentKey] ? val[parentKey].length : 0;
3101
+ }
3102
+ var leaf = valuesParsed ? val : parseArrayValue(val, options, currentArrayLength);
3045
3103
  for (var i = chain.length - 1; i >= 0; --i) {
3046
3104
  var obj;
3047
3105
  var root = chain[i];
3048
3106
  if (root === "[]" && options.parseArrays) {
3049
- obj = [].concat(leaf);
3107
+ obj = options.allowEmptyArrays && (leaf === "" || options.strictNullHandling && leaf === null) ? [] : utils.combine([], leaf);
3050
3108
  } else {
3051
- obj = options.plainObjects ? /* @__PURE__ */ Object.create(null) : {};
3109
+ obj = options.plainObjects ? { __proto__: null } : {};
3052
3110
  var cleanRoot = root.charAt(0) === "[" && root.charAt(root.length - 1) === "]" ? root.slice(1, -1) : root;
3053
- var index = parseInt(cleanRoot, 10);
3054
- if (!options.parseArrays && cleanRoot === "") {
3111
+ var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, ".") : cleanRoot;
3112
+ var index = parseInt(decodedRoot, 10);
3113
+ if (!options.parseArrays && decodedRoot === "") {
3055
3114
  obj = { 0: leaf };
3056
- } else if (!isNaN(index) && root !== cleanRoot && String(index) === cleanRoot && index >= 0 && (options.parseArrays && index <= options.arrayLimit)) {
3115
+ } else if (!isNaN(index) && root !== decodedRoot && String(index) === decodedRoot && index >= 0 && (options.parseArrays && index <= options.arrayLimit)) {
3057
3116
  obj = [];
3058
3117
  obj[index] = leaf;
3059
- } else if (cleanRoot !== "__proto__") {
3060
- obj[cleanRoot] = leaf;
3118
+ } else if (decodedRoot !== "__proto__") {
3119
+ obj[decodedRoot] = leaf;
3061
3120
  }
3062
3121
  }
3063
3122
  leaf = obj;
@@ -3093,6 +3152,9 @@ var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesPars
3093
3152
  keys.push(segment[1]);
3094
3153
  }
3095
3154
  if (segment) {
3155
+ if (options.strictDepth === true) {
3156
+ throw new RangeError("Input depth exceeded depth option of " + options.depth + " and strictDepth is true");
3157
+ }
3096
3158
  keys.push("[" + key.slice(segment.index) + "]");
3097
3159
  }
3098
3160
  return parseObject(keys, val, options, valuesParsed);
@@ -3101,39 +3163,58 @@ var normalizeParseOptions = function normalizeParseOptions2(opts) {
3101
3163
  if (!opts) {
3102
3164
  return defaults;
3103
3165
  }
3104
- if (opts.decoder !== null && opts.decoder !== void 0 && typeof opts.decoder !== "function") {
3166
+ if (typeof opts.allowEmptyArrays !== "undefined" && typeof opts.allowEmptyArrays !== "boolean") {
3167
+ throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");
3168
+ }
3169
+ if (typeof opts.decodeDotInKeys !== "undefined" && typeof opts.decodeDotInKeys !== "boolean") {
3170
+ throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided");
3171
+ }
3172
+ if (opts.decoder !== null && typeof opts.decoder !== "undefined" && typeof opts.decoder !== "function") {
3105
3173
  throw new TypeError("Decoder has to be a function.");
3106
3174
  }
3107
3175
  if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") {
3108
3176
  throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");
3109
3177
  }
3178
+ if (typeof opts.throwOnLimitExceeded !== "undefined" && typeof opts.throwOnLimitExceeded !== "boolean") {
3179
+ throw new TypeError("`throwOnLimitExceeded` option must be a boolean");
3180
+ }
3110
3181
  var charset = typeof opts.charset === "undefined" ? defaults.charset : opts.charset;
3182
+ var duplicates = typeof opts.duplicates === "undefined" ? defaults.duplicates : opts.duplicates;
3183
+ if (duplicates !== "combine" && duplicates !== "first" && duplicates !== "last") {
3184
+ throw new TypeError("The duplicates option must be either combine, first, or last");
3185
+ }
3186
+ var allowDots = typeof opts.allowDots === "undefined" ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;
3111
3187
  return {
3112
- allowDots: typeof opts.allowDots === "undefined" ? defaults.allowDots : !!opts.allowDots,
3188
+ allowDots,
3189
+ allowEmptyArrays: typeof opts.allowEmptyArrays === "boolean" ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,
3113
3190
  allowPrototypes: typeof opts.allowPrototypes === "boolean" ? opts.allowPrototypes : defaults.allowPrototypes,
3114
3191
  allowSparse: typeof opts.allowSparse === "boolean" ? opts.allowSparse : defaults.allowSparse,
3115
3192
  arrayLimit: typeof opts.arrayLimit === "number" ? opts.arrayLimit : defaults.arrayLimit,
3116
3193
  charset,
3117
3194
  charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults.charsetSentinel,
3118
3195
  comma: typeof opts.comma === "boolean" ? opts.comma : defaults.comma,
3196
+ decodeDotInKeys: typeof opts.decodeDotInKeys === "boolean" ? opts.decodeDotInKeys : defaults.decodeDotInKeys,
3119
3197
  decoder: typeof opts.decoder === "function" ? opts.decoder : defaults.decoder,
3120
3198
  delimiter: typeof opts.delimiter === "string" || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,
3121
3199
  depth: typeof opts.depth === "number" || opts.depth === false ? +opts.depth : defaults.depth,
3200
+ duplicates,
3122
3201
  ignoreQueryPrefix: opts.ignoreQueryPrefix === true,
3123
3202
  interpretNumericEntities: typeof opts.interpretNumericEntities === "boolean" ? opts.interpretNumericEntities : defaults.interpretNumericEntities,
3124
3203
  parameterLimit: typeof opts.parameterLimit === "number" ? opts.parameterLimit : defaults.parameterLimit,
3125
3204
  parseArrays: opts.parseArrays !== false,
3126
3205
  plainObjects: typeof opts.plainObjects === "boolean" ? opts.plainObjects : defaults.plainObjects,
3127
- strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults.strictNullHandling
3206
+ strictDepth: typeof opts.strictDepth === "boolean" ? !!opts.strictDepth : defaults.strictDepth,
3207
+ strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults.strictNullHandling,
3208
+ throwOnLimitExceeded: typeof opts.throwOnLimitExceeded === "boolean" ? opts.throwOnLimitExceeded : false
3128
3209
  };
3129
3210
  };
3130
3211
  var parse$1 = function(str, opts) {
3131
3212
  var options = normalizeParseOptions(opts);
3132
3213
  if (str === "" || str === null || typeof str === "undefined") {
3133
- return options.plainObjects ? /* @__PURE__ */ Object.create(null) : {};
3214
+ return options.plainObjects ? { __proto__: null } : {};
3134
3215
  }
3135
3216
  var tempObj = typeof str === "string" ? parseValues(str, options) : str;
3136
- var obj = options.plainObjects ? /* @__PURE__ */ Object.create(null) : {};
3217
+ var obj = options.plainObjects ? { __proto__: null } : {};
3137
3218
  var keys = Object.keys(tempObj);
3138
3219
  for (var i = 0; i < keys.length; ++i) {
3139
3220
  var key = keys[i];
@@ -3153,6 +3234,7 @@ var lib = {
3153
3234
  parse,
3154
3235
  stringify: stringify2
3155
3236
  };
3237
+ var qs = lib;
3156
3238
  function getUrlParams() {
3157
3239
  const url = location.search;
3158
3240
  const theRequest = new Object();
@@ -3271,10 +3353,16 @@ function getProdConfig() {
3271
3353
  showMenus: typeof window !== "undefined" && window.top === window.self
3272
3354
  };
3273
3355
  }
3356
+ let config = {};
3274
3357
  function useConfig(isDev) {
3275
- return isDev ? Object.assign({}, baseConfig, getDevConfig()) : Object.assign({}, baseConfig, getProdConfig());
3358
+ config = isDev ? Object.assign({}, baseConfig, getDevConfig()) : Object.assign({}, baseConfig, getProdConfig());
3359
+ return config;
3360
+ }
3361
+ useConfig();
3362
+ function setConfig(key, value) {
3363
+ baseConfig[key] = value;
3364
+ config[key] = value;
3276
3365
  }
3277
- const config = useConfig();
3278
3366
  const SUCCESS_CODE = 1;
3279
3367
  const NO_SESSION_CODE = 10106;
3280
3368
  let timer = null;
@@ -3306,7 +3394,7 @@ function requestInterceptors(config2) {
3306
3394
  const contentType = getContentType(config2.headers);
3307
3395
  if (config2.method === "post") {
3308
3396
  if (contentType === CONTENT_TYPE.form) {
3309
- config2.data = lib.stringify(config2.data);
3397
+ config2.data = qs.stringify(config2.data);
3310
3398
  }
3311
3399
  } else if (config2.method === "get")
3312
3400
  ;
@@ -3349,7 +3437,7 @@ function inspectorError(error) {
3349
3437
  var _a;
3350
3438
  if ((error == null ? void 0 : error.code) === "ECONNABORTED") {
3351
3439
  window.apiErrorHandler && window.apiErrorHandler("\u8BF7\u6C42\u8D85\u65F6\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5");
3352
- } else if (((_a = error == null ? void 0 : error.response) == null ? void 0 : _a.status) !== 200) {
3440
+ } else if (((_a = error == null ? void 0 : error.response) == null ? void 0 : _a.status) !== 200 && (error == null ? void 0 : error.message) !== "canceled") {
3353
3441
  window.apiErrorHandler && window.apiErrorHandler("\u8BF7\u6C42\u51FA\u9519\u4E86");
3354
3442
  }
3355
3443
  return Promise.reject(error);
@@ -3362,6 +3450,75 @@ instance.formPost = function(url, data, config2) {
3362
3450
  setContentType(headers, CONTENT_TYPE.form);
3363
3451
  return instance.post(url, data, __spreadProps(__spreadValues({}, config2), { headers }));
3364
3452
  };
3453
+ const wrapApi = (api) => {
3454
+ let currentController = null;
3455
+ const wrappedFunction = function(...args) {
3456
+ return __async(this, null, function* () {
3457
+ if (currentController) {
3458
+ console.log("currentController.abort trigger, now cancel before request");
3459
+ currentController.abort();
3460
+ currentController = null;
3461
+ }
3462
+ const controller = new AbortController();
3463
+ currentController = controller;
3464
+ const newArgs = [...args];
3465
+ const lastIndex = newArgs.length - 1;
3466
+ try {
3467
+ if (newArgs.length > 0 && typeof newArgs[lastIndex] === "object" && !Array.isArray(newArgs[lastIndex])) {
3468
+ const config2 = newArgs[lastIndex];
3469
+ if (config2.signal) {
3470
+ const combinedController = new AbortController();
3471
+ const originalSignal = config2.signal;
3472
+ originalSignal.addEventListener("abort", () => {
3473
+ combinedController.abort(originalSignal.reason);
3474
+ });
3475
+ controller.signal.addEventListener("abort", () => {
3476
+ combinedController.abort(controller.signal.reason);
3477
+ });
3478
+ newArgs[lastIndex] = __spreadProps(__spreadValues({}, config2), {
3479
+ signal: combinedController.signal
3480
+ });
3481
+ } else {
3482
+ newArgs[lastIndex] = __spreadProps(__spreadValues({}, config2), {
3483
+ signal: controller.signal
3484
+ });
3485
+ }
3486
+ } else {
3487
+ newArgs.push({ signal: controller.signal });
3488
+ }
3489
+ const result = yield api(...newArgs);
3490
+ currentController = null;
3491
+ return result;
3492
+ } catch (error) {
3493
+ if (error.name === "AbortError" || axios.isCancel(error)) {
3494
+ throw Object.assign(new Error("Request cancelled"), {
3495
+ name: "AbortError",
3496
+ cancelled: true,
3497
+ originalError: error
3498
+ });
3499
+ }
3500
+ throw error;
3501
+ } finally {
3502
+ if (currentController === controller) {
3503
+ currentController = null;
3504
+ }
3505
+ }
3506
+ });
3507
+ };
3508
+ wrappedFunction.cancel = (reason) => {
3509
+ if (currentController) {
3510
+ currentController.abort(reason);
3511
+ currentController = null;
3512
+ }
3513
+ };
3514
+ wrappedFunction.isPending = () => {
3515
+ return currentController !== null;
3516
+ };
3517
+ return wrappedFunction;
3518
+ };
3519
+ instance.getSingleton = wrapApi(instance.get);
3520
+ instance.postSingleton = wrapApi(instance.post);
3521
+ instance.formPostSingleton = wrapApi(instance.formPost);
3365
3522
  var md5$1 = { exports: {} };
3366
3523
  var crypt = { exports: {} };
3367
3524
  (function() {
@@ -8906,22 +9063,22 @@ var lodash = { exports: {} };
8906
9063
  var snakeCase = createCompounder(function(result2, word, index) {
8907
9064
  return result2 + (index ? "_" : "") + word.toLowerCase();
8908
9065
  });
8909
- function split(string, separator, limit) {
8910
- if (limit && typeof limit != "number" && isIterateeCall(string, separator, limit)) {
8911
- separator = limit = undefined$12;
9066
+ function split(string, separator, limit2) {
9067
+ if (limit2 && typeof limit2 != "number" && isIterateeCall(string, separator, limit2)) {
9068
+ separator = limit2 = undefined$12;
8912
9069
  }
8913
- limit = limit === undefined$12 ? MAX_ARRAY_LENGTH : limit >>> 0;
8914
- if (!limit) {
9070
+ limit2 = limit2 === undefined$12 ? MAX_ARRAY_LENGTH : limit2 >>> 0;
9071
+ if (!limit2) {
8915
9072
  return [];
8916
9073
  }
8917
9074
  string = toString3(string);
8918
9075
  if (string && (typeof separator == "string" || separator != null && !isRegExp3(separator))) {
8919
9076
  separator = baseToString(separator);
8920
9077
  if (!separator && hasUnicode(string)) {
8921
- return castSlice(stringToArray(string), 0, limit);
9078
+ return castSlice(stringToArray(string), 0, limit2);
8922
9079
  }
8923
9080
  }
8924
- return string.split(separator, limit);
9081
+ return string.split(separator, limit2);
8925
9082
  }
8926
9083
  var startCase = createCompounder(function(result2, word, index) {
8927
9084
  return result2 + (index ? " " : "") + upperFirst(word);
@@ -11257,6 +11414,9 @@ function logoutApi() {
11257
11414
  }
11258
11415
  const CONTEXT$1 = config.ismAmServerContext;
11259
11416
  function listComTreeApi(params) {
11417
+ if (config.useDddComItemTree) {
11418
+ return instance.get(`${config.ucExtServerContext}/manage/tree/getBusiComTree`, { params });
11419
+ }
11260
11420
  return instance.get(`${CONTEXT$1}/tree/com/listComTree`, { params });
11261
11421
  }
11262
11422
  const UC_CONTEXT$1 = config.ucExtServerContext;
@@ -11265,6 +11425,11 @@ function listIndexDescApi(params) {
11265
11425
  }
11266
11426
  const CONTEXT = config.ismAmServerContext;
11267
11427
  function listItemTreeApi(params) {
11428
+ if (config.useDddComItemTree) {
11429
+ return instance.get(`${config.ucExtServerContext}/manage/tree/getProductInfoAsTreeData`, {
11430
+ params
11431
+ });
11432
+ }
11268
11433
  return instance.get(`${CONTEXT}/tree/item/listItemTree`, { params });
11269
11434
  }
11270
11435
  function getPriceInfo() {
@@ -11277,4 +11442,4 @@ const UC_CONTEXT = config.ucExtServerContext;
11277
11442
  function listUserTreeApi(params) {
11278
11443
  return instance.get(`${UC_CONTEXT}/tree/uc-user/listUserTree`, { params });
11279
11444
  }
11280
- export { Base64ForLogin, CONTENT_TYPE, IS_OR_NOT_ENUM, IS_OR_NOT_ENUM_KEY, IS_OR_NOT_ENUM_LIST, MIME_TYPE, UC_ENUM, addMenuCollectApi, instance as axios, base64ToBlob, blobToBase64, checkIdCard, checkPhone, checkTel, checkVehicleNo, clearIndexDescCache, clearPermissionCache, clearSessionStorage, clearUserInfoCache, config, cryptor, deleteMenuCollectApi, deleteMenuHistoryApi, exportJsonToExcel, flattenRow2ColumnData, formatDate, formatDateChinese, formatDecimal, formatHalfYear, formatQuarter, getAppListApi, getCaptchaURL, getContentType, getDictApi, getDictMapApi, getDictsMapApi, getExcelColumnIdx, getGlobalPolicyApi, getHalfYear, getHalfYearBeginMonth, getHalfYearEndMonth, getHalfYearNum, getIndexDescCache, getItem, getLocalStorage, getMaxTabNumValueApi, getMenuCollectApi, getMenuHistoryApi, getOssFileApi, getOssFileUrl, getPermissionApi, getPermissionCache, getPreviewUrlApi, getPriceInfo, getQuarter, getQuarterBeginMonth, getQuarterEndMonth, getQuarterNum, getSessionStorage, getToken, getType, getUrlParams, getUserInfoApi, getUserInfoCache, guid, importJsonFromExcel, isArguments, isArray, isArrayLike, isBoolean, isDate, isDecimal, isElement, isEmpty, isEqual, isEqualWith, isError, isEven, isFinite$1 as isFinite, isFunction, isInteger, isNegative, isNil, isNull, isNumber, isNumberEqual, isObject, isObjectLike, isOdd, isPlainObject, isPositive, isPromise, isPrototype, isRegExp2 as isRegExp, isString, isType, isUndefined, listComTreeApi, listIndexDescApi, listItemTreeApi, listUserTreeApi, loginApi, logoutApi, menuHistoryApi, numToChineseNumerals, numToDX, off, on, preventDefault, putOssFileApi, putOssFileUrl, quarter2Chinese, removeLocalStorage, removeMenuCollectApi, removeSessionStorage, renderColumnEnums, renderEnumData, renderEnumList, renderFieldEnums, responseInterceptors, round, row2column, setContentType, setIndexDescCache, setLocalStorage, setPermissionCache, setSessionStorage, setToken, setUserInfoCache, stopPropagation, str2Date, toChies, toFixed, toThousands, updatePasswordApi, useConfig, uuid };
11445
+ export { Base64ForLogin, CONTENT_TYPE, IS_OR_NOT_ENUM, IS_OR_NOT_ENUM_KEY, IS_OR_NOT_ENUM_LIST, MIME_TYPE, UC_ENUM, addMenuCollectApi, instance as axios, base64ToBlob, blobToBase64, checkIdCard, checkPhone, checkTel, checkVehicleNo, clearIndexDescCache, clearPermissionCache, clearSessionStorage, clearUserInfoCache, config, cryptor, deleteMenuCollectApi, deleteMenuHistoryApi, exportJsonToExcel, flattenRow2ColumnData, formatDate, formatDateChinese, formatDecimal, formatHalfYear, formatQuarter, getAppListApi, getCaptchaURL, getContentType, getDictApi, getDictMapApi, getDictsMapApi, getExcelColumnIdx, getGlobalPolicyApi, getHalfYear, getHalfYearBeginMonth, getHalfYearEndMonth, getHalfYearNum, getIndexDescCache, getItem, getLocalStorage, getMaxTabNumValueApi, getMenuCollectApi, getMenuHistoryApi, getOssFileApi, getOssFileUrl, getPermissionApi, getPermissionCache, getPreviewUrlApi, getPriceInfo, getQuarter, getQuarterBeginMonth, getQuarterEndMonth, getQuarterNum, getSessionStorage, getToken, getType, getUrlParams, getUserInfoApi, getUserInfoCache, guid, importJsonFromExcel, isArguments, isArray, isArrayLike, isBoolean, isDate, isDecimal, isElement, isEmpty, isEqual, isEqualWith, isError, isEven, isFinite$1 as isFinite, isFunction, isInteger, isNegative, isNil, isNull, isNumber, isNumberEqual, isObject, isObjectLike, isOdd, isPlainObject, isPositive, isPromise, isPrototype, isRegExp2 as isRegExp, isString, isType, isUndefined, listComTreeApi, listIndexDescApi, listItemTreeApi, listUserTreeApi, loginApi, logoutApi, menuHistoryApi, numToChineseNumerals, numToDX, off, on, preventDefault, putOssFileApi, putOssFileUrl, quarter2Chinese, removeLocalStorage, removeMenuCollectApi, removeSessionStorage, renderColumnEnums, renderEnumData, renderEnumList, renderFieldEnums, responseInterceptors, round, row2column, setConfig, setContentType, setIndexDescCache, setLocalStorage, setPermissionCache, setSessionStorage, setToken, setUserInfoCache, stopPropagation, str2Date, toChies, toFixed, toThousands, updatePasswordApi, useConfig, uuid, wrapApi };