yxuse 3.0.42 → 3.0.44

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 (88) hide show
  1. package/README.md +14 -568
  2. package/lib/api.cjs.js +1 -1
  3. package/lib/api.es.js +4 -4
  4. package/lib/dayjs.min.cjs.js +1 -1
  5. package/lib/dayjs.min.cjs.js.map +1 -1
  6. package/lib/dayjs.min.es.js +32 -2
  7. package/lib/dayjs.min.es.js.gz +0 -0
  8. package/lib/dayjs.min.es.js.map +1 -1
  9. package/lib/index.cjs.js.map +1 -1
  10. package/lib/index.cjs11.js.map +1 -1
  11. package/lib/index.cjs12.js +1 -7
  12. package/lib/index.cjs12.js.gz +0 -0
  13. package/lib/index.cjs12.js.map +1 -1
  14. package/lib/index.cjs13.js +1 -1
  15. package/lib/index.cjs13.js.map +1 -1
  16. package/lib/index.cjs2.js +1 -1
  17. package/lib/index.cjs2.js.map +1 -1
  18. package/lib/index.cjs3.js +1 -1
  19. package/lib/index.cjs4.js +1 -1
  20. package/lib/index.cjs5.js +10 -4
  21. package/lib/index.cjs5.js.gz +0 -0
  22. package/lib/index.cjs5.js.map +1 -1
  23. package/lib/index.cjs6.js +2 -2
  24. package/lib/index.cjs6.js.gz +0 -0
  25. package/lib/index.cjs6.js.map +1 -1
  26. package/lib/index.es.js.map +1 -1
  27. package/lib/index.es11.js.map +1 -1
  28. package/lib/index.es12.js +36 -2249
  29. package/lib/index.es12.js.gz +0 -0
  30. package/lib/index.es12.js.map +1 -1
  31. package/lib/index.es13.js +20 -230
  32. package/lib/index.es13.js.map +1 -1
  33. package/lib/index.es2.js +330 -3
  34. package/lib/index.es2.js.map +1 -1
  35. package/lib/index.es3.js +1 -1
  36. package/lib/index.es4.js +2 -2
  37. package/lib/index.es5.js +2220 -13
  38. package/lib/index.es5.js.gz +0 -0
  39. package/lib/index.es5.js.map +1 -1
  40. package/lib/index.es6.js +65 -53
  41. package/lib/index.es6.js.gz +0 -0
  42. package/lib/index.es6.js.map +1 -1
  43. package/lib/index.es7.js +1 -1
  44. package/lib/index.es7.js.gz +0 -0
  45. package/lib/index.es8.js +1 -1
  46. package/lib/mqtt.min.cjs.js +2 -0
  47. package/lib/mqtt.min.cjs.js.gz +0 -0
  48. package/lib/mqtt.min.cjs.js.map +1 -0
  49. package/lib/mqtt.min.es.js +7066 -0
  50. package/lib/mqtt.min.es.js.gz +0 -0
  51. package/lib/mqtt.min.es.js.map +1 -0
  52. package/lib/style.css +1 -1
  53. package/lib/style.css.gz +0 -0
  54. package/lib/theme.cjs.js +1 -1
  55. package/lib/theme.es.js +11 -10
  56. package/lib/theme.es.js.map +1 -1
  57. package/lib/translate.cjs.js +1 -1
  58. package/lib/translate.es.js +4 -3
  59. package/lib/translate.es.js.map +1 -1
  60. package/lib/utils.cjs.js +1 -1
  61. package/lib/utils.es.js +8 -4
  62. package/lib/utils.es.js.map +1 -1
  63. package/lib/yxIcon.cjs.js +1 -1
  64. package/lib/yxIcon.es.js +1 -1
  65. package/package.json +4 -3
  66. package/types/api/auth/index.d.ts +1 -2
  67. package/types/components/Toolbar/src/utils/mounted.d.ts +1 -0
  68. package/types/components/YxForm/index.vue.d.ts +10 -6
  69. package/types/components/YxForm/type.d.ts +11 -8
  70. package/types/components/YxIcon/type.d.ts +1 -0
  71. package/types/components/YxTable/index.vue.d.ts +1 -5
  72. package/types/components/YxTable/type.d.ts +5 -3
  73. package/types/utils/common/index.d.ts +1 -1
  74. package/types/utils/fecth/index.d.ts +8 -0
  75. package/types/utils/fecth/interface.d.ts +8 -0
  76. package/types/utils/index.d.ts +3 -0
  77. package/types/utils/mqtt/index.d.ts +16 -0
  78. package/types/utils/mqtt/interface.d.ts +17 -0
  79. package/types/utils/socket/index.d.ts +36 -0
  80. package/types/utils/socket/interface.d.ts +16 -0
  81. package/lib/_commonjsHelpers.cjs.js +0 -2
  82. package/lib/_commonjsHelpers.cjs.js.map +0 -1
  83. package/lib/_commonjsHelpers.es.js +0 -34
  84. package/lib/_commonjsHelpers.es.js.map +0 -1
  85. package/lib/index.cjs14.js +0 -2
  86. package/lib/index.cjs14.js.map +0 -1
  87. package/lib/index.es14.js +0 -23
  88. package/lib/index.es14.js.map +0 -1
package/lib/index.es12.js CHANGED
@@ -87,7 +87,6 @@ var __yieldStar = (value) => {
87
87
  };
88
88
  var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")]) ? it.call(obj) : (obj = obj[__knownSymbol("iterator")](), it = {}, method = (key, fn) => (fn = obj[key]) && (it[key] = (arg) => new Promise((yes, no, done) => (arg = fn.call(obj, arg), done = arg.done, Promise.resolve(arg.value).then((value) => yes({ value, done }), no)))), method("next"), method("return"), it);
89
89
  import { ElMessage, ElLoading, ElNotification } from "element-plus";
90
- import { c as commonjsGlobal, a as getDefaultExportFromCjs } from "./_commonjsHelpers.es.js";
91
90
  function bind(fn, thisArg) {
92
91
  return function wrap() {
93
92
  return fn.apply(thisArg, arguments);
@@ -2588,19 +2587,19 @@ const getUserPermissions = (systemName, isJumpLogin = true, serverName) => __asy
2588
2587
  } catch (err) {
2589
2588
  }
2590
2589
  });
2591
- const getUserRouter = (userMenuList, viewModules, viewConfig) => {
2590
+ const getUserRouter = (userMenuList, viewModules) => {
2592
2591
  let menuList = [];
2593
2592
  userMenuList.forEach((item) => {
2594
- const configKey = `/src/views${item.routeView}/config.ts`;
2593
+ var _a;
2595
2594
  const viewKey = `/src/views${item.routeView}/index.vue`;
2596
- if (viewModules[viewKey] && viewConfig[configKey]) {
2597
- const pageConfig = viewConfig[configKey];
2595
+ if (viewModules[viewKey]) {
2596
+ const pageConfig = (item == null ? void 0 : item.reservedRouteInfo) && JSON.parse((_a = item == null ? void 0 : item.reservedRouteInfo) != null ? _a : "{}");
2598
2597
  const routerObject = {
2599
2598
  path: item.routeView,
2600
2599
  name: item.routeView.split("/")[1],
2601
2600
  meta: {
2602
- title: pageConfig.title,
2603
- icon: pageConfig.icon
2601
+ title: item.routeName,
2602
+ icon: pageConfig == null ? void 0 : pageConfig.routeIcon
2604
2603
  },
2605
2604
  component: viewModules[viewKey]
2606
2605
  };
@@ -2634,2213 +2633,6 @@ const index = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePropert
2634
2633
  removeToken,
2635
2634
  setSystemConfig
2636
2635
  }, Symbol.toStringTag, { value: "Module" }));
2637
- function commonjsRequire(path) {
2638
- throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
2639
- }
2640
- var localforage$1 = { exports: {} };
2641
- /*!
2642
- localForage -- Offline Storage, Improved
2643
- Version 1.10.0
2644
- https://localforage.github.io/localForage
2645
- (c) 2013-2017 Mozilla, Apache License 2.0
2646
- */
2647
- (function(module, exports) {
2648
- (function(f) {
2649
- {
2650
- module.exports = f();
2651
- }
2652
- })(function() {
2653
- return function e(t, n, r) {
2654
- function s(o2, u) {
2655
- if (!n[o2]) {
2656
- if (!t[o2]) {
2657
- var a = typeof commonjsRequire == "function" && commonjsRequire;
2658
- if (!u && a) return a(o2, true);
2659
- if (i) return i(o2, true);
2660
- var f = new Error("Cannot find module '" + o2 + "'");
2661
- throw f.code = "MODULE_NOT_FOUND", f;
2662
- }
2663
- var l = n[o2] = { exports: {} };
2664
- t[o2][0].call(l.exports, function(e2) {
2665
- var n2 = t[o2][1][e2];
2666
- return s(n2 ? n2 : e2);
2667
- }, l, l.exports, e, t, n, r);
2668
- }
2669
- return n[o2].exports;
2670
- }
2671
- var i = typeof commonjsRequire == "function" && commonjsRequire;
2672
- for (var o = 0; o < r.length; o++) s(r[o]);
2673
- return s;
2674
- }({ 1: [function(_dereq_, module2, exports2) {
2675
- (function(global2) {
2676
- var Mutation = global2.MutationObserver || global2.WebKitMutationObserver;
2677
- var scheduleDrain;
2678
- {
2679
- if (Mutation) {
2680
- var called = 0;
2681
- var observer = new Mutation(nextTick);
2682
- var element = global2.document.createTextNode("");
2683
- observer.observe(element, {
2684
- characterData: true
2685
- });
2686
- scheduleDrain = function() {
2687
- element.data = called = ++called % 2;
2688
- };
2689
- } else if (!global2.setImmediate && typeof global2.MessageChannel !== "undefined") {
2690
- var channel = new global2.MessageChannel();
2691
- channel.port1.onmessage = nextTick;
2692
- scheduleDrain = function() {
2693
- channel.port2.postMessage(0);
2694
- };
2695
- } else if ("document" in global2 && "onreadystatechange" in global2.document.createElement("script")) {
2696
- scheduleDrain = function() {
2697
- var scriptEl = global2.document.createElement("script");
2698
- scriptEl.onreadystatechange = function() {
2699
- nextTick();
2700
- scriptEl.onreadystatechange = null;
2701
- scriptEl.parentNode.removeChild(scriptEl);
2702
- scriptEl = null;
2703
- };
2704
- global2.document.documentElement.appendChild(scriptEl);
2705
- };
2706
- } else {
2707
- scheduleDrain = function() {
2708
- setTimeout(nextTick, 0);
2709
- };
2710
- }
2711
- }
2712
- var draining;
2713
- var queue = [];
2714
- function nextTick() {
2715
- draining = true;
2716
- var i, oldQueue;
2717
- var len = queue.length;
2718
- while (len) {
2719
- oldQueue = queue;
2720
- queue = [];
2721
- i = -1;
2722
- while (++i < len) {
2723
- oldQueue[i]();
2724
- }
2725
- len = queue.length;
2726
- }
2727
- draining = false;
2728
- }
2729
- module2.exports = immediate;
2730
- function immediate(task) {
2731
- if (queue.push(task) === 1 && !draining) {
2732
- scheduleDrain();
2733
- }
2734
- }
2735
- }).call(this, typeof commonjsGlobal !== "undefined" ? commonjsGlobal : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {});
2736
- }, {}], 2: [function(_dereq_, module2, exports2) {
2737
- var immediate = _dereq_(1);
2738
- function INTERNAL() {
2739
- }
2740
- var handlers = {};
2741
- var REJECTED = ["REJECTED"];
2742
- var FULFILLED = ["FULFILLED"];
2743
- var PENDING = ["PENDING"];
2744
- module2.exports = Promise2;
2745
- function Promise2(resolver) {
2746
- if (typeof resolver !== "function") {
2747
- throw new TypeError("resolver must be a function");
2748
- }
2749
- this.state = PENDING;
2750
- this.queue = [];
2751
- this.outcome = void 0;
2752
- if (resolver !== INTERNAL) {
2753
- safelyResolveThenable(this, resolver);
2754
- }
2755
- }
2756
- Promise2.prototype["catch"] = function(onRejected) {
2757
- return this.then(null, onRejected);
2758
- };
2759
- Promise2.prototype.then = function(onFulfilled, onRejected) {
2760
- if (typeof onFulfilled !== "function" && this.state === FULFILLED || typeof onRejected !== "function" && this.state === REJECTED) {
2761
- return this;
2762
- }
2763
- var promise = new this.constructor(INTERNAL);
2764
- if (this.state !== PENDING) {
2765
- var resolver = this.state === FULFILLED ? onFulfilled : onRejected;
2766
- unwrap(promise, resolver, this.outcome);
2767
- } else {
2768
- this.queue.push(new QueueItem(promise, onFulfilled, onRejected));
2769
- }
2770
- return promise;
2771
- };
2772
- function QueueItem(promise, onFulfilled, onRejected) {
2773
- this.promise = promise;
2774
- if (typeof onFulfilled === "function") {
2775
- this.onFulfilled = onFulfilled;
2776
- this.callFulfilled = this.otherCallFulfilled;
2777
- }
2778
- if (typeof onRejected === "function") {
2779
- this.onRejected = onRejected;
2780
- this.callRejected = this.otherCallRejected;
2781
- }
2782
- }
2783
- QueueItem.prototype.callFulfilled = function(value) {
2784
- handlers.resolve(this.promise, value);
2785
- };
2786
- QueueItem.prototype.otherCallFulfilled = function(value) {
2787
- unwrap(this.promise, this.onFulfilled, value);
2788
- };
2789
- QueueItem.prototype.callRejected = function(value) {
2790
- handlers.reject(this.promise, value);
2791
- };
2792
- QueueItem.prototype.otherCallRejected = function(value) {
2793
- unwrap(this.promise, this.onRejected, value);
2794
- };
2795
- function unwrap(promise, func, value) {
2796
- immediate(function() {
2797
- var returnValue;
2798
- try {
2799
- returnValue = func(value);
2800
- } catch (e) {
2801
- return handlers.reject(promise, e);
2802
- }
2803
- if (returnValue === promise) {
2804
- handlers.reject(promise, new TypeError("Cannot resolve promise with itself"));
2805
- } else {
2806
- handlers.resolve(promise, returnValue);
2807
- }
2808
- });
2809
- }
2810
- handlers.resolve = function(self2, value) {
2811
- var result = tryCatch(getThen, value);
2812
- if (result.status === "error") {
2813
- return handlers.reject(self2, result.value);
2814
- }
2815
- var thenable = result.value;
2816
- if (thenable) {
2817
- safelyResolveThenable(self2, thenable);
2818
- } else {
2819
- self2.state = FULFILLED;
2820
- self2.outcome = value;
2821
- var i = -1;
2822
- var len = self2.queue.length;
2823
- while (++i < len) {
2824
- self2.queue[i].callFulfilled(value);
2825
- }
2826
- }
2827
- return self2;
2828
- };
2829
- handlers.reject = function(self2, error) {
2830
- self2.state = REJECTED;
2831
- self2.outcome = error;
2832
- var i = -1;
2833
- var len = self2.queue.length;
2834
- while (++i < len) {
2835
- self2.queue[i].callRejected(error);
2836
- }
2837
- return self2;
2838
- };
2839
- function getThen(obj) {
2840
- var then = obj && obj.then;
2841
- if (obj && (typeof obj === "object" || typeof obj === "function") && typeof then === "function") {
2842
- return function appyThen() {
2843
- then.apply(obj, arguments);
2844
- };
2845
- }
2846
- }
2847
- function safelyResolveThenable(self2, thenable) {
2848
- var called = false;
2849
- function onError(value) {
2850
- if (called) {
2851
- return;
2852
- }
2853
- called = true;
2854
- handlers.reject(self2, value);
2855
- }
2856
- function onSuccess(value) {
2857
- if (called) {
2858
- return;
2859
- }
2860
- called = true;
2861
- handlers.resolve(self2, value);
2862
- }
2863
- function tryToUnwrap() {
2864
- thenable(onSuccess, onError);
2865
- }
2866
- var result = tryCatch(tryToUnwrap);
2867
- if (result.status === "error") {
2868
- onError(result.value);
2869
- }
2870
- }
2871
- function tryCatch(func, value) {
2872
- var out = {};
2873
- try {
2874
- out.value = func(value);
2875
- out.status = "success";
2876
- } catch (e) {
2877
- out.status = "error";
2878
- out.value = e;
2879
- }
2880
- return out;
2881
- }
2882
- Promise2.resolve = resolve;
2883
- function resolve(value) {
2884
- if (value instanceof this) {
2885
- return value;
2886
- }
2887
- return handlers.resolve(new this(INTERNAL), value);
2888
- }
2889
- Promise2.reject = reject;
2890
- function reject(reason) {
2891
- var promise = new this(INTERNAL);
2892
- return handlers.reject(promise, reason);
2893
- }
2894
- Promise2.all = all3;
2895
- function all3(iterable) {
2896
- var self2 = this;
2897
- if (Object.prototype.toString.call(iterable) !== "[object Array]") {
2898
- return this.reject(new TypeError("must be an array"));
2899
- }
2900
- var len = iterable.length;
2901
- var called = false;
2902
- if (!len) {
2903
- return this.resolve([]);
2904
- }
2905
- var values = new Array(len);
2906
- var resolved = 0;
2907
- var i = -1;
2908
- var promise = new this(INTERNAL);
2909
- while (++i < len) {
2910
- allResolver(iterable[i], i);
2911
- }
2912
- return promise;
2913
- function allResolver(value, i2) {
2914
- self2.resolve(value).then(resolveFromAll, function(error) {
2915
- if (!called) {
2916
- called = true;
2917
- handlers.reject(promise, error);
2918
- }
2919
- });
2920
- function resolveFromAll(outValue) {
2921
- values[i2] = outValue;
2922
- if (++resolved === len && !called) {
2923
- called = true;
2924
- handlers.resolve(promise, values);
2925
- }
2926
- }
2927
- }
2928
- }
2929
- Promise2.race = race;
2930
- function race(iterable) {
2931
- var self2 = this;
2932
- if (Object.prototype.toString.call(iterable) !== "[object Array]") {
2933
- return this.reject(new TypeError("must be an array"));
2934
- }
2935
- var len = iterable.length;
2936
- var called = false;
2937
- if (!len) {
2938
- return this.resolve([]);
2939
- }
2940
- var i = -1;
2941
- var promise = new this(INTERNAL);
2942
- while (++i < len) {
2943
- resolver(iterable[i]);
2944
- }
2945
- return promise;
2946
- function resolver(value) {
2947
- self2.resolve(value).then(function(response) {
2948
- if (!called) {
2949
- called = true;
2950
- handlers.resolve(promise, response);
2951
- }
2952
- }, function(error) {
2953
- if (!called) {
2954
- called = true;
2955
- handlers.reject(promise, error);
2956
- }
2957
- });
2958
- }
2959
- }
2960
- }, { "1": 1 }], 3: [function(_dereq_, module2, exports2) {
2961
- (function(global2) {
2962
- if (typeof global2.Promise !== "function") {
2963
- global2.Promise = _dereq_(2);
2964
- }
2965
- }).call(this, typeof commonjsGlobal !== "undefined" ? commonjsGlobal : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {});
2966
- }, { "2": 2 }], 4: [function(_dereq_, module2, exports2) {
2967
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) {
2968
- return typeof obj;
2969
- } : function(obj) {
2970
- return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
2971
- };
2972
- function _classCallCheck(instance, Constructor) {
2973
- if (!(instance instanceof Constructor)) {
2974
- throw new TypeError("Cannot call a class as a function");
2975
- }
2976
- }
2977
- function getIDB() {
2978
- try {
2979
- if (typeof indexedDB !== "undefined") {
2980
- return indexedDB;
2981
- }
2982
- if (typeof webkitIndexedDB !== "undefined") {
2983
- return webkitIndexedDB;
2984
- }
2985
- if (typeof mozIndexedDB !== "undefined") {
2986
- return mozIndexedDB;
2987
- }
2988
- if (typeof OIndexedDB !== "undefined") {
2989
- return OIndexedDB;
2990
- }
2991
- if (typeof msIndexedDB !== "undefined") {
2992
- return msIndexedDB;
2993
- }
2994
- } catch (e) {
2995
- return;
2996
- }
2997
- }
2998
- var idb = getIDB();
2999
- function isIndexedDBValid() {
3000
- try {
3001
- if (!idb || !idb.open) {
3002
- return false;
3003
- }
3004
- var isSafari = typeof openDatabase !== "undefined" && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform);
3005
- var hasFetch = typeof fetch === "function" && fetch.toString().indexOf("[native code") !== -1;
3006
- return (!isSafari || hasFetch) && typeof indexedDB !== "undefined" && // some outdated implementations of IDB that appear on Samsung
3007
- // and HTC Android devices <4.4 are missing IDBKeyRange
3008
- // See: https://github.com/mozilla/localForage/issues/128
3009
- // See: https://github.com/mozilla/localForage/issues/272
3010
- typeof IDBKeyRange !== "undefined";
3011
- } catch (e) {
3012
- return false;
3013
- }
3014
- }
3015
- function createBlob(parts, properties) {
3016
- parts = parts || [];
3017
- properties = properties || {};
3018
- try {
3019
- return new Blob(parts, properties);
3020
- } catch (e) {
3021
- if (e.name !== "TypeError") {
3022
- throw e;
3023
- }
3024
- var Builder = typeof BlobBuilder !== "undefined" ? BlobBuilder : typeof MSBlobBuilder !== "undefined" ? MSBlobBuilder : typeof MozBlobBuilder !== "undefined" ? MozBlobBuilder : WebKitBlobBuilder;
3025
- var builder = new Builder();
3026
- for (var i = 0; i < parts.length; i += 1) {
3027
- builder.append(parts[i]);
3028
- }
3029
- return builder.getBlob(properties.type);
3030
- }
3031
- }
3032
- if (typeof Promise === "undefined") {
3033
- _dereq_(3);
3034
- }
3035
- var Promise$1 = Promise;
3036
- function executeCallback(promise, callback) {
3037
- if (callback) {
3038
- promise.then(function(result) {
3039
- callback(null, result);
3040
- }, function(error) {
3041
- callback(error);
3042
- });
3043
- }
3044
- }
3045
- function executeTwoCallbacks(promise, callback, errorCallback) {
3046
- if (typeof callback === "function") {
3047
- promise.then(callback);
3048
- }
3049
- if (typeof errorCallback === "function") {
3050
- promise["catch"](errorCallback);
3051
- }
3052
- }
3053
- function normalizeKey(key2) {
3054
- if (typeof key2 !== "string") {
3055
- key2 = String(key2);
3056
- }
3057
- return key2;
3058
- }
3059
- function getCallback() {
3060
- if (arguments.length && typeof arguments[arguments.length - 1] === "function") {
3061
- return arguments[arguments.length - 1];
3062
- }
3063
- }
3064
- var DETECT_BLOB_SUPPORT_STORE = "local-forage-detect-blob-support";
3065
- var supportsBlobs = void 0;
3066
- var dbContexts = {};
3067
- var toString3 = Object.prototype.toString;
3068
- var READ_ONLY = "readonly";
3069
- var READ_WRITE = "readwrite";
3070
- function _binStringToArrayBuffer(bin) {
3071
- var length2 = bin.length;
3072
- var buf = new ArrayBuffer(length2);
3073
- var arr = new Uint8Array(buf);
3074
- for (var i = 0; i < length2; i++) {
3075
- arr[i] = bin.charCodeAt(i);
3076
- }
3077
- return buf;
3078
- }
3079
- function _checkBlobSupportWithoutCaching(idb2) {
3080
- return new Promise$1(function(resolve) {
3081
- var txn = idb2.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE);
3082
- var blob = createBlob([""]);
3083
- txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, "key");
3084
- txn.onabort = function(e) {
3085
- e.preventDefault();
3086
- e.stopPropagation();
3087
- resolve(false);
3088
- };
3089
- txn.oncomplete = function() {
3090
- var matchedChrome = navigator.userAgent.match(/Chrome\/(\d+)/);
3091
- var matchedEdge = navigator.userAgent.match(/Edge\//);
3092
- resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43);
3093
- };
3094
- })["catch"](function() {
3095
- return false;
3096
- });
3097
- }
3098
- function _checkBlobSupport(idb2) {
3099
- if (typeof supportsBlobs === "boolean") {
3100
- return Promise$1.resolve(supportsBlobs);
3101
- }
3102
- return _checkBlobSupportWithoutCaching(idb2).then(function(value) {
3103
- supportsBlobs = value;
3104
- return supportsBlobs;
3105
- });
3106
- }
3107
- function _deferReadiness(dbInfo) {
3108
- var dbContext = dbContexts[dbInfo.name];
3109
- var deferredOperation = {};
3110
- deferredOperation.promise = new Promise$1(function(resolve, reject) {
3111
- deferredOperation.resolve = resolve;
3112
- deferredOperation.reject = reject;
3113
- });
3114
- dbContext.deferredOperations.push(deferredOperation);
3115
- if (!dbContext.dbReady) {
3116
- dbContext.dbReady = deferredOperation.promise;
3117
- } else {
3118
- dbContext.dbReady = dbContext.dbReady.then(function() {
3119
- return deferredOperation.promise;
3120
- });
3121
- }
3122
- }
3123
- function _advanceReadiness(dbInfo) {
3124
- var dbContext = dbContexts[dbInfo.name];
3125
- var deferredOperation = dbContext.deferredOperations.pop();
3126
- if (deferredOperation) {
3127
- deferredOperation.resolve();
3128
- return deferredOperation.promise;
3129
- }
3130
- }
3131
- function _rejectReadiness(dbInfo, err) {
3132
- var dbContext = dbContexts[dbInfo.name];
3133
- var deferredOperation = dbContext.deferredOperations.pop();
3134
- if (deferredOperation) {
3135
- deferredOperation.reject(err);
3136
- return deferredOperation.promise;
3137
- }
3138
- }
3139
- function _getConnection(dbInfo, upgradeNeeded) {
3140
- return new Promise$1(function(resolve, reject) {
3141
- dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext();
3142
- if (dbInfo.db) {
3143
- if (upgradeNeeded) {
3144
- _deferReadiness(dbInfo);
3145
- dbInfo.db.close();
3146
- } else {
3147
- return resolve(dbInfo.db);
3148
- }
3149
- }
3150
- var dbArgs = [dbInfo.name];
3151
- if (upgradeNeeded) {
3152
- dbArgs.push(dbInfo.version);
3153
- }
3154
- var openreq = idb.open.apply(idb, dbArgs);
3155
- if (upgradeNeeded) {
3156
- openreq.onupgradeneeded = function(e) {
3157
- var db = openreq.result;
3158
- try {
3159
- db.createObjectStore(dbInfo.storeName);
3160
- if (e.oldVersion <= 1) {
3161
- db.createObjectStore(DETECT_BLOB_SUPPORT_STORE);
3162
- }
3163
- } catch (ex) {
3164
- if (ex.name === "ConstraintError") {
3165
- } else {
3166
- throw ex;
3167
- }
3168
- }
3169
- };
3170
- }
3171
- openreq.onerror = function(e) {
3172
- e.preventDefault();
3173
- reject(openreq.error);
3174
- };
3175
- openreq.onsuccess = function() {
3176
- var db = openreq.result;
3177
- db.onversionchange = function(e) {
3178
- e.target.close();
3179
- };
3180
- resolve(db);
3181
- _advanceReadiness(dbInfo);
3182
- };
3183
- });
3184
- }
3185
- function _getOriginalConnection(dbInfo) {
3186
- return _getConnection(dbInfo, false);
3187
- }
3188
- function _getUpgradedConnection(dbInfo) {
3189
- return _getConnection(dbInfo, true);
3190
- }
3191
- function _isUpgradeNeeded(dbInfo, defaultVersion) {
3192
- if (!dbInfo.db) {
3193
- return true;
3194
- }
3195
- var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName);
3196
- var isDowngrade = dbInfo.version < dbInfo.db.version;
3197
- var isUpgrade = dbInfo.version > dbInfo.db.version;
3198
- if (isDowngrade) {
3199
- if (dbInfo.version !== defaultVersion) {
3200
- }
3201
- dbInfo.version = dbInfo.db.version;
3202
- }
3203
- if (isUpgrade || isNewStore) {
3204
- if (isNewStore) {
3205
- var incVersion = dbInfo.db.version + 1;
3206
- if (incVersion > dbInfo.version) {
3207
- dbInfo.version = incVersion;
3208
- }
3209
- }
3210
- return true;
3211
- }
3212
- return false;
3213
- }
3214
- function _encodeBlob(blob) {
3215
- return new Promise$1(function(resolve, reject) {
3216
- var reader = new FileReader();
3217
- reader.onerror = reject;
3218
- reader.onloadend = function(e) {
3219
- var base64 = btoa(e.target.result || "");
3220
- resolve({
3221
- __local_forage_encoded_blob: true,
3222
- data: base64,
3223
- type: blob.type
3224
- });
3225
- };
3226
- reader.readAsBinaryString(blob);
3227
- });
3228
- }
3229
- function _decodeBlob(encodedBlob) {
3230
- var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data));
3231
- return createBlob([arrayBuff], { type: encodedBlob.type });
3232
- }
3233
- function _isEncodedBlob(value) {
3234
- return value && value.__local_forage_encoded_blob;
3235
- }
3236
- function _fullyReady(callback) {
3237
- var self2 = this;
3238
- var promise = self2._initReady().then(function() {
3239
- var dbContext = dbContexts[self2._dbInfo.name];
3240
- if (dbContext && dbContext.dbReady) {
3241
- return dbContext.dbReady;
3242
- }
3243
- });
3244
- executeTwoCallbacks(promise, callback, callback);
3245
- return promise;
3246
- }
3247
- function _tryReconnect(dbInfo) {
3248
- _deferReadiness(dbInfo);
3249
- var dbContext = dbContexts[dbInfo.name];
3250
- var forages = dbContext.forages;
3251
- for (var i = 0; i < forages.length; i++) {
3252
- var forage = forages[i];
3253
- if (forage._dbInfo.db) {
3254
- forage._dbInfo.db.close();
3255
- forage._dbInfo.db = null;
3256
- }
3257
- }
3258
- dbInfo.db = null;
3259
- return _getOriginalConnection(dbInfo).then(function(db) {
3260
- dbInfo.db = db;
3261
- if (_isUpgradeNeeded(dbInfo)) {
3262
- return _getUpgradedConnection(dbInfo);
3263
- }
3264
- return db;
3265
- }).then(function(db) {
3266
- dbInfo.db = dbContext.db = db;
3267
- for (var i2 = 0; i2 < forages.length; i2++) {
3268
- forages[i2]._dbInfo.db = db;
3269
- }
3270
- })["catch"](function(err) {
3271
- _rejectReadiness(dbInfo, err);
3272
- throw err;
3273
- });
3274
- }
3275
- function createTransaction(dbInfo, mode, callback, retries) {
3276
- if (retries === void 0) {
3277
- retries = 1;
3278
- }
3279
- try {
3280
- var tx = dbInfo.db.transaction(dbInfo.storeName, mode);
3281
- callback(null, tx);
3282
- } catch (err) {
3283
- if (retries > 0 && (!dbInfo.db || err.name === "InvalidStateError" || err.name === "NotFoundError")) {
3284
- return Promise$1.resolve().then(function() {
3285
- if (!dbInfo.db || err.name === "NotFoundError" && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) {
3286
- if (dbInfo.db) {
3287
- dbInfo.version = dbInfo.db.version + 1;
3288
- }
3289
- return _getUpgradedConnection(dbInfo);
3290
- }
3291
- }).then(function() {
3292
- return _tryReconnect(dbInfo).then(function() {
3293
- createTransaction(dbInfo, mode, callback, retries - 1);
3294
- });
3295
- })["catch"](callback);
3296
- }
3297
- callback(err);
3298
- }
3299
- }
3300
- function createDbContext() {
3301
- return {
3302
- // Running localForages sharing a database.
3303
- forages: [],
3304
- // Shared database.
3305
- db: null,
3306
- // Database readiness (promise).
3307
- dbReady: null,
3308
- // Deferred operations on the database.
3309
- deferredOperations: []
3310
- };
3311
- }
3312
- function _initStorage(options) {
3313
- var self2 = this;
3314
- var dbInfo = {
3315
- db: null
3316
- };
3317
- if (options) {
3318
- for (var i in options) {
3319
- dbInfo[i] = options[i];
3320
- }
3321
- }
3322
- var dbContext = dbContexts[dbInfo.name];
3323
- if (!dbContext) {
3324
- dbContext = createDbContext();
3325
- dbContexts[dbInfo.name] = dbContext;
3326
- }
3327
- dbContext.forages.push(self2);
3328
- if (!self2._initReady) {
3329
- self2._initReady = self2.ready;
3330
- self2.ready = _fullyReady;
3331
- }
3332
- var initPromises = [];
3333
- function ignoreErrors() {
3334
- return Promise$1.resolve();
3335
- }
3336
- for (var j = 0; j < dbContext.forages.length; j++) {
3337
- var forage = dbContext.forages[j];
3338
- if (forage !== self2) {
3339
- initPromises.push(forage._initReady()["catch"](ignoreErrors));
3340
- }
3341
- }
3342
- var forages = dbContext.forages.slice(0);
3343
- return Promise$1.all(initPromises).then(function() {
3344
- dbInfo.db = dbContext.db;
3345
- return _getOriginalConnection(dbInfo);
3346
- }).then(function(db) {
3347
- dbInfo.db = db;
3348
- if (_isUpgradeNeeded(dbInfo, self2._defaultConfig.version)) {
3349
- return _getUpgradedConnection(dbInfo);
3350
- }
3351
- return db;
3352
- }).then(function(db) {
3353
- dbInfo.db = dbContext.db = db;
3354
- self2._dbInfo = dbInfo;
3355
- for (var k = 0; k < forages.length; k++) {
3356
- var forage2 = forages[k];
3357
- if (forage2 !== self2) {
3358
- forage2._dbInfo.db = dbInfo.db;
3359
- forage2._dbInfo.version = dbInfo.version;
3360
- }
3361
- }
3362
- });
3363
- }
3364
- function getItem(key2, callback) {
3365
- var self2 = this;
3366
- key2 = normalizeKey(key2);
3367
- var promise = new Promise$1(function(resolve, reject) {
3368
- self2.ready().then(function() {
3369
- createTransaction(self2._dbInfo, READ_ONLY, function(err, transaction) {
3370
- if (err) {
3371
- return reject(err);
3372
- }
3373
- try {
3374
- var store = transaction.objectStore(self2._dbInfo.storeName);
3375
- var req = store.get(key2);
3376
- req.onsuccess = function() {
3377
- var value = req.result;
3378
- if (value === void 0) {
3379
- value = null;
3380
- }
3381
- if (_isEncodedBlob(value)) {
3382
- value = _decodeBlob(value);
3383
- }
3384
- resolve(value);
3385
- };
3386
- req.onerror = function() {
3387
- reject(req.error);
3388
- };
3389
- } catch (e) {
3390
- reject(e);
3391
- }
3392
- });
3393
- })["catch"](reject);
3394
- });
3395
- executeCallback(promise, callback);
3396
- return promise;
3397
- }
3398
- function iterate(iterator, callback) {
3399
- var self2 = this;
3400
- var promise = new Promise$1(function(resolve, reject) {
3401
- self2.ready().then(function() {
3402
- createTransaction(self2._dbInfo, READ_ONLY, function(err, transaction) {
3403
- if (err) {
3404
- return reject(err);
3405
- }
3406
- try {
3407
- var store = transaction.objectStore(self2._dbInfo.storeName);
3408
- var req = store.openCursor();
3409
- var iterationNumber = 1;
3410
- req.onsuccess = function() {
3411
- var cursor = req.result;
3412
- if (cursor) {
3413
- var value = cursor.value;
3414
- if (_isEncodedBlob(value)) {
3415
- value = _decodeBlob(value);
3416
- }
3417
- var result = iterator(value, cursor.key, iterationNumber++);
3418
- if (result !== void 0) {
3419
- resolve(result);
3420
- } else {
3421
- cursor["continue"]();
3422
- }
3423
- } else {
3424
- resolve();
3425
- }
3426
- };
3427
- req.onerror = function() {
3428
- reject(req.error);
3429
- };
3430
- } catch (e) {
3431
- reject(e);
3432
- }
3433
- });
3434
- })["catch"](reject);
3435
- });
3436
- executeCallback(promise, callback);
3437
- return promise;
3438
- }
3439
- function setItem(key2, value, callback) {
3440
- var self2 = this;
3441
- key2 = normalizeKey(key2);
3442
- var promise = new Promise$1(function(resolve, reject) {
3443
- var dbInfo;
3444
- self2.ready().then(function() {
3445
- dbInfo = self2._dbInfo;
3446
- if (toString3.call(value) === "[object Blob]") {
3447
- return _checkBlobSupport(dbInfo.db).then(function(blobSupport) {
3448
- if (blobSupport) {
3449
- return value;
3450
- }
3451
- return _encodeBlob(value);
3452
- });
3453
- }
3454
- return value;
3455
- }).then(function(value2) {
3456
- createTransaction(self2._dbInfo, READ_WRITE, function(err, transaction) {
3457
- if (err) {
3458
- return reject(err);
3459
- }
3460
- try {
3461
- var store = transaction.objectStore(self2._dbInfo.storeName);
3462
- if (value2 === null) {
3463
- value2 = void 0;
3464
- }
3465
- var req = store.put(value2, key2);
3466
- transaction.oncomplete = function() {
3467
- if (value2 === void 0) {
3468
- value2 = null;
3469
- }
3470
- resolve(value2);
3471
- };
3472
- transaction.onabort = transaction.onerror = function() {
3473
- var err2 = req.error ? req.error : req.transaction.error;
3474
- reject(err2);
3475
- };
3476
- } catch (e) {
3477
- reject(e);
3478
- }
3479
- });
3480
- })["catch"](reject);
3481
- });
3482
- executeCallback(promise, callback);
3483
- return promise;
3484
- }
3485
- function removeItem(key2, callback) {
3486
- var self2 = this;
3487
- key2 = normalizeKey(key2);
3488
- var promise = new Promise$1(function(resolve, reject) {
3489
- self2.ready().then(function() {
3490
- createTransaction(self2._dbInfo, READ_WRITE, function(err, transaction) {
3491
- if (err) {
3492
- return reject(err);
3493
- }
3494
- try {
3495
- var store = transaction.objectStore(self2._dbInfo.storeName);
3496
- var req = store["delete"](key2);
3497
- transaction.oncomplete = function() {
3498
- resolve();
3499
- };
3500
- transaction.onerror = function() {
3501
- reject(req.error);
3502
- };
3503
- transaction.onabort = function() {
3504
- var err2 = req.error ? req.error : req.transaction.error;
3505
- reject(err2);
3506
- };
3507
- } catch (e) {
3508
- reject(e);
3509
- }
3510
- });
3511
- })["catch"](reject);
3512
- });
3513
- executeCallback(promise, callback);
3514
- return promise;
3515
- }
3516
- function clear(callback) {
3517
- var self2 = this;
3518
- var promise = new Promise$1(function(resolve, reject) {
3519
- self2.ready().then(function() {
3520
- createTransaction(self2._dbInfo, READ_WRITE, function(err, transaction) {
3521
- if (err) {
3522
- return reject(err);
3523
- }
3524
- try {
3525
- var store = transaction.objectStore(self2._dbInfo.storeName);
3526
- var req = store.clear();
3527
- transaction.oncomplete = function() {
3528
- resolve();
3529
- };
3530
- transaction.onabort = transaction.onerror = function() {
3531
- var err2 = req.error ? req.error : req.transaction.error;
3532
- reject(err2);
3533
- };
3534
- } catch (e) {
3535
- reject(e);
3536
- }
3537
- });
3538
- })["catch"](reject);
3539
- });
3540
- executeCallback(promise, callback);
3541
- return promise;
3542
- }
3543
- function length(callback) {
3544
- var self2 = this;
3545
- var promise = new Promise$1(function(resolve, reject) {
3546
- self2.ready().then(function() {
3547
- createTransaction(self2._dbInfo, READ_ONLY, function(err, transaction) {
3548
- if (err) {
3549
- return reject(err);
3550
- }
3551
- try {
3552
- var store = transaction.objectStore(self2._dbInfo.storeName);
3553
- var req = store.count();
3554
- req.onsuccess = function() {
3555
- resolve(req.result);
3556
- };
3557
- req.onerror = function() {
3558
- reject(req.error);
3559
- };
3560
- } catch (e) {
3561
- reject(e);
3562
- }
3563
- });
3564
- })["catch"](reject);
3565
- });
3566
- executeCallback(promise, callback);
3567
- return promise;
3568
- }
3569
- function key(n, callback) {
3570
- var self2 = this;
3571
- var promise = new Promise$1(function(resolve, reject) {
3572
- if (n < 0) {
3573
- resolve(null);
3574
- return;
3575
- }
3576
- self2.ready().then(function() {
3577
- createTransaction(self2._dbInfo, READ_ONLY, function(err, transaction) {
3578
- if (err) {
3579
- return reject(err);
3580
- }
3581
- try {
3582
- var store = transaction.objectStore(self2._dbInfo.storeName);
3583
- var advanced = false;
3584
- var req = store.openKeyCursor();
3585
- req.onsuccess = function() {
3586
- var cursor = req.result;
3587
- if (!cursor) {
3588
- resolve(null);
3589
- return;
3590
- }
3591
- if (n === 0) {
3592
- resolve(cursor.key);
3593
- } else {
3594
- if (!advanced) {
3595
- advanced = true;
3596
- cursor.advance(n);
3597
- } else {
3598
- resolve(cursor.key);
3599
- }
3600
- }
3601
- };
3602
- req.onerror = function() {
3603
- reject(req.error);
3604
- };
3605
- } catch (e) {
3606
- reject(e);
3607
- }
3608
- });
3609
- })["catch"](reject);
3610
- });
3611
- executeCallback(promise, callback);
3612
- return promise;
3613
- }
3614
- function keys(callback) {
3615
- var self2 = this;
3616
- var promise = new Promise$1(function(resolve, reject) {
3617
- self2.ready().then(function() {
3618
- createTransaction(self2._dbInfo, READ_ONLY, function(err, transaction) {
3619
- if (err) {
3620
- return reject(err);
3621
- }
3622
- try {
3623
- var store = transaction.objectStore(self2._dbInfo.storeName);
3624
- var req = store.openKeyCursor();
3625
- var keys2 = [];
3626
- req.onsuccess = function() {
3627
- var cursor = req.result;
3628
- if (!cursor) {
3629
- resolve(keys2);
3630
- return;
3631
- }
3632
- keys2.push(cursor.key);
3633
- cursor["continue"]();
3634
- };
3635
- req.onerror = function() {
3636
- reject(req.error);
3637
- };
3638
- } catch (e) {
3639
- reject(e);
3640
- }
3641
- });
3642
- })["catch"](reject);
3643
- });
3644
- executeCallback(promise, callback);
3645
- return promise;
3646
- }
3647
- function dropInstance(options, callback) {
3648
- callback = getCallback.apply(this, arguments);
3649
- var currentConfig = this.config();
3650
- options = typeof options !== "function" && options || {};
3651
- if (!options.name) {
3652
- options.name = options.name || currentConfig.name;
3653
- options.storeName = options.storeName || currentConfig.storeName;
3654
- }
3655
- var self2 = this;
3656
- var promise;
3657
- if (!options.name) {
3658
- promise = Promise$1.reject("Invalid arguments");
3659
- } else {
3660
- var isCurrentDb = options.name === currentConfig.name && self2._dbInfo.db;
3661
- var dbPromise = isCurrentDb ? Promise$1.resolve(self2._dbInfo.db) : _getOriginalConnection(options).then(function(db) {
3662
- var dbContext = dbContexts[options.name];
3663
- var forages = dbContext.forages;
3664
- dbContext.db = db;
3665
- for (var i = 0; i < forages.length; i++) {
3666
- forages[i]._dbInfo.db = db;
3667
- }
3668
- return db;
3669
- });
3670
- if (!options.storeName) {
3671
- promise = dbPromise.then(function(db) {
3672
- _deferReadiness(options);
3673
- var dbContext = dbContexts[options.name];
3674
- var forages = dbContext.forages;
3675
- db.close();
3676
- for (var i = 0; i < forages.length; i++) {
3677
- var forage = forages[i];
3678
- forage._dbInfo.db = null;
3679
- }
3680
- var dropDBPromise = new Promise$1(function(resolve, reject) {
3681
- var req = idb.deleteDatabase(options.name);
3682
- req.onerror = function() {
3683
- var db2 = req.result;
3684
- if (db2) {
3685
- db2.close();
3686
- }
3687
- reject(req.error);
3688
- };
3689
- req.onblocked = function() {
3690
- };
3691
- req.onsuccess = function() {
3692
- var db2 = req.result;
3693
- if (db2) {
3694
- db2.close();
3695
- }
3696
- resolve(db2);
3697
- };
3698
- });
3699
- return dropDBPromise.then(function(db2) {
3700
- dbContext.db = db2;
3701
- for (var i2 = 0; i2 < forages.length; i2++) {
3702
- var _forage = forages[i2];
3703
- _advanceReadiness(_forage._dbInfo);
3704
- }
3705
- })["catch"](function(err) {
3706
- (_rejectReadiness(options, err) || Promise$1.resolve())["catch"](function() {
3707
- });
3708
- throw err;
3709
- });
3710
- });
3711
- } else {
3712
- promise = dbPromise.then(function(db) {
3713
- if (!db.objectStoreNames.contains(options.storeName)) {
3714
- return;
3715
- }
3716
- var newVersion = db.version + 1;
3717
- _deferReadiness(options);
3718
- var dbContext = dbContexts[options.name];
3719
- var forages = dbContext.forages;
3720
- db.close();
3721
- for (var i = 0; i < forages.length; i++) {
3722
- var forage = forages[i];
3723
- forage._dbInfo.db = null;
3724
- forage._dbInfo.version = newVersion;
3725
- }
3726
- var dropObjectPromise = new Promise$1(function(resolve, reject) {
3727
- var req = idb.open(options.name, newVersion);
3728
- req.onerror = function(err) {
3729
- var db2 = req.result;
3730
- db2.close();
3731
- reject(err);
3732
- };
3733
- req.onupgradeneeded = function() {
3734
- var db2 = req.result;
3735
- db2.deleteObjectStore(options.storeName);
3736
- };
3737
- req.onsuccess = function() {
3738
- var db2 = req.result;
3739
- db2.close();
3740
- resolve(db2);
3741
- };
3742
- });
3743
- return dropObjectPromise.then(function(db2) {
3744
- dbContext.db = db2;
3745
- for (var j = 0; j < forages.length; j++) {
3746
- var _forage2 = forages[j];
3747
- _forage2._dbInfo.db = db2;
3748
- _advanceReadiness(_forage2._dbInfo);
3749
- }
3750
- })["catch"](function(err) {
3751
- (_rejectReadiness(options, err) || Promise$1.resolve())["catch"](function() {
3752
- });
3753
- throw err;
3754
- });
3755
- });
3756
- }
3757
- }
3758
- executeCallback(promise, callback);
3759
- return promise;
3760
- }
3761
- var asyncStorage = {
3762
- _driver: "asyncStorage",
3763
- _initStorage,
3764
- _support: isIndexedDBValid(),
3765
- iterate,
3766
- getItem,
3767
- setItem,
3768
- removeItem,
3769
- clear,
3770
- length,
3771
- key,
3772
- keys,
3773
- dropInstance
3774
- };
3775
- function isWebSQLValid() {
3776
- return typeof openDatabase === "function";
3777
- }
3778
- var BASE_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
3779
- var BLOB_TYPE_PREFIX = "~~local_forage_type~";
3780
- var BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/;
3781
- var SERIALIZED_MARKER = "__lfsc__:";
3782
- var SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length;
3783
- var TYPE_ARRAYBUFFER = "arbf";
3784
- var TYPE_BLOB = "blob";
3785
- var TYPE_INT8ARRAY = "si08";
3786
- var TYPE_UINT8ARRAY = "ui08";
3787
- var TYPE_UINT8CLAMPEDARRAY = "uic8";
3788
- var TYPE_INT16ARRAY = "si16";
3789
- var TYPE_INT32ARRAY = "si32";
3790
- var TYPE_UINT16ARRAY = "ur16";
3791
- var TYPE_UINT32ARRAY = "ui32";
3792
- var TYPE_FLOAT32ARRAY = "fl32";
3793
- var TYPE_FLOAT64ARRAY = "fl64";
3794
- var TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length;
3795
- var toString$1 = Object.prototype.toString;
3796
- function stringToBuffer(serializedString) {
3797
- var bufferLength = serializedString.length * 0.75;
3798
- var len = serializedString.length;
3799
- var i;
3800
- var p = 0;
3801
- var encoded1, encoded2, encoded3, encoded4;
3802
- if (serializedString[serializedString.length - 1] === "=") {
3803
- bufferLength--;
3804
- if (serializedString[serializedString.length - 2] === "=") {
3805
- bufferLength--;
3806
- }
3807
- }
3808
- var buffer = new ArrayBuffer(bufferLength);
3809
- var bytes = new Uint8Array(buffer);
3810
- for (i = 0; i < len; i += 4) {
3811
- encoded1 = BASE_CHARS.indexOf(serializedString[i]);
3812
- encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]);
3813
- encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]);
3814
- encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]);
3815
- bytes[p++] = encoded1 << 2 | encoded2 >> 4;
3816
- bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;
3817
- bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;
3818
- }
3819
- return buffer;
3820
- }
3821
- function bufferToString(buffer) {
3822
- var bytes = new Uint8Array(buffer);
3823
- var base64String = "";
3824
- var i;
3825
- for (i = 0; i < bytes.length; i += 3) {
3826
- base64String += BASE_CHARS[bytes[i] >> 2];
3827
- base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];
3828
- base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];
3829
- base64String += BASE_CHARS[bytes[i + 2] & 63];
3830
- }
3831
- if (bytes.length % 3 === 2) {
3832
- base64String = base64String.substring(0, base64String.length - 1) + "=";
3833
- } else if (bytes.length % 3 === 1) {
3834
- base64String = base64String.substring(0, base64String.length - 2) + "==";
3835
- }
3836
- return base64String;
3837
- }
3838
- function serialize(value, callback) {
3839
- var valueType = "";
3840
- if (value) {
3841
- valueType = toString$1.call(value);
3842
- }
3843
- if (value && (valueType === "[object ArrayBuffer]" || value.buffer && toString$1.call(value.buffer) === "[object ArrayBuffer]")) {
3844
- var buffer;
3845
- var marker = SERIALIZED_MARKER;
3846
- if (value instanceof ArrayBuffer) {
3847
- buffer = value;
3848
- marker += TYPE_ARRAYBUFFER;
3849
- } else {
3850
- buffer = value.buffer;
3851
- if (valueType === "[object Int8Array]") {
3852
- marker += TYPE_INT8ARRAY;
3853
- } else if (valueType === "[object Uint8Array]") {
3854
- marker += TYPE_UINT8ARRAY;
3855
- } else if (valueType === "[object Uint8ClampedArray]") {
3856
- marker += TYPE_UINT8CLAMPEDARRAY;
3857
- } else if (valueType === "[object Int16Array]") {
3858
- marker += TYPE_INT16ARRAY;
3859
- } else if (valueType === "[object Uint16Array]") {
3860
- marker += TYPE_UINT16ARRAY;
3861
- } else if (valueType === "[object Int32Array]") {
3862
- marker += TYPE_INT32ARRAY;
3863
- } else if (valueType === "[object Uint32Array]") {
3864
- marker += TYPE_UINT32ARRAY;
3865
- } else if (valueType === "[object Float32Array]") {
3866
- marker += TYPE_FLOAT32ARRAY;
3867
- } else if (valueType === "[object Float64Array]") {
3868
- marker += TYPE_FLOAT64ARRAY;
3869
- } else {
3870
- callback(new Error("Failed to get type for BinaryArray"));
3871
- }
3872
- }
3873
- callback(marker + bufferToString(buffer));
3874
- } else if (valueType === "[object Blob]") {
3875
- var fileReader = new FileReader();
3876
- fileReader.onload = function() {
3877
- var str = BLOB_TYPE_PREFIX + value.type + "~" + bufferToString(this.result);
3878
- callback(SERIALIZED_MARKER + TYPE_BLOB + str);
3879
- };
3880
- fileReader.readAsArrayBuffer(value);
3881
- } else {
3882
- try {
3883
- callback(JSON.stringify(value));
3884
- } catch (e) {
3885
- callback(null, e);
3886
- }
3887
- }
3888
- }
3889
- function deserialize(value) {
3890
- if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) {
3891
- return JSON.parse(value);
3892
- }
3893
- var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH);
3894
- var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH);
3895
- var blobType;
3896
- if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) {
3897
- var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX);
3898
- blobType = matcher[1];
3899
- serializedString = serializedString.substring(matcher[0].length);
3900
- }
3901
- var buffer = stringToBuffer(serializedString);
3902
- switch (type) {
3903
- case TYPE_ARRAYBUFFER:
3904
- return buffer;
3905
- case TYPE_BLOB:
3906
- return createBlob([buffer], { type: blobType });
3907
- case TYPE_INT8ARRAY:
3908
- return new Int8Array(buffer);
3909
- case TYPE_UINT8ARRAY:
3910
- return new Uint8Array(buffer);
3911
- case TYPE_UINT8CLAMPEDARRAY:
3912
- return new Uint8ClampedArray(buffer);
3913
- case TYPE_INT16ARRAY:
3914
- return new Int16Array(buffer);
3915
- case TYPE_UINT16ARRAY:
3916
- return new Uint16Array(buffer);
3917
- case TYPE_INT32ARRAY:
3918
- return new Int32Array(buffer);
3919
- case TYPE_UINT32ARRAY:
3920
- return new Uint32Array(buffer);
3921
- case TYPE_FLOAT32ARRAY:
3922
- return new Float32Array(buffer);
3923
- case TYPE_FLOAT64ARRAY:
3924
- return new Float64Array(buffer);
3925
- default:
3926
- throw new Error("Unkown type: " + type);
3927
- }
3928
- }
3929
- var localforageSerializer = {
3930
- serialize,
3931
- deserialize,
3932
- stringToBuffer,
3933
- bufferToString
3934
- };
3935
- function createDbTable(t, dbInfo, callback, errorCallback) {
3936
- t.executeSql("CREATE TABLE IF NOT EXISTS " + dbInfo.storeName + " (id INTEGER PRIMARY KEY, key unique, value)", [], callback, errorCallback);
3937
- }
3938
- function _initStorage$1(options) {
3939
- var self2 = this;
3940
- var dbInfo = {
3941
- db: null
3942
- };
3943
- if (options) {
3944
- for (var i in options) {
3945
- dbInfo[i] = typeof options[i] !== "string" ? options[i].toString() : options[i];
3946
- }
3947
- }
3948
- var dbInfoPromise = new Promise$1(function(resolve, reject) {
3949
- try {
3950
- dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size);
3951
- } catch (e) {
3952
- return reject(e);
3953
- }
3954
- dbInfo.db.transaction(function(t) {
3955
- createDbTable(t, dbInfo, function() {
3956
- self2._dbInfo = dbInfo;
3957
- resolve();
3958
- }, function(t2, error) {
3959
- reject(error);
3960
- });
3961
- }, reject);
3962
- });
3963
- dbInfo.serializer = localforageSerializer;
3964
- return dbInfoPromise;
3965
- }
3966
- function tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) {
3967
- t.executeSql(sqlStatement, args, callback, function(t2, error) {
3968
- if (error.code === error.SYNTAX_ERR) {
3969
- t2.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?", [dbInfo.storeName], function(t3, results) {
3970
- if (!results.rows.length) {
3971
- createDbTable(t3, dbInfo, function() {
3972
- t3.executeSql(sqlStatement, args, callback, errorCallback);
3973
- }, errorCallback);
3974
- } else {
3975
- errorCallback(t3, error);
3976
- }
3977
- }, errorCallback);
3978
- } else {
3979
- errorCallback(t2, error);
3980
- }
3981
- }, errorCallback);
3982
- }
3983
- function getItem$1(key2, callback) {
3984
- var self2 = this;
3985
- key2 = normalizeKey(key2);
3986
- var promise = new Promise$1(function(resolve, reject) {
3987
- self2.ready().then(function() {
3988
- var dbInfo = self2._dbInfo;
3989
- dbInfo.db.transaction(function(t) {
3990
- tryExecuteSql(t, dbInfo, "SELECT * FROM " + dbInfo.storeName + " WHERE key = ? LIMIT 1", [key2], function(t2, results) {
3991
- var result = results.rows.length ? results.rows.item(0).value : null;
3992
- if (result) {
3993
- result = dbInfo.serializer.deserialize(result);
3994
- }
3995
- resolve(result);
3996
- }, function(t2, error) {
3997
- reject(error);
3998
- });
3999
- });
4000
- })["catch"](reject);
4001
- });
4002
- executeCallback(promise, callback);
4003
- return promise;
4004
- }
4005
- function iterate$1(iterator, callback) {
4006
- var self2 = this;
4007
- var promise = new Promise$1(function(resolve, reject) {
4008
- self2.ready().then(function() {
4009
- var dbInfo = self2._dbInfo;
4010
- dbInfo.db.transaction(function(t) {
4011
- tryExecuteSql(t, dbInfo, "SELECT * FROM " + dbInfo.storeName, [], function(t2, results) {
4012
- var rows = results.rows;
4013
- var length2 = rows.length;
4014
- for (var i = 0; i < length2; i++) {
4015
- var item = rows.item(i);
4016
- var result = item.value;
4017
- if (result) {
4018
- result = dbInfo.serializer.deserialize(result);
4019
- }
4020
- result = iterator(result, item.key, i + 1);
4021
- if (result !== void 0) {
4022
- resolve(result);
4023
- return;
4024
- }
4025
- }
4026
- resolve();
4027
- }, function(t2, error) {
4028
- reject(error);
4029
- });
4030
- });
4031
- })["catch"](reject);
4032
- });
4033
- executeCallback(promise, callback);
4034
- return promise;
4035
- }
4036
- function _setItem(key2, value, callback, retriesLeft) {
4037
- var self2 = this;
4038
- key2 = normalizeKey(key2);
4039
- var promise = new Promise$1(function(resolve, reject) {
4040
- self2.ready().then(function() {
4041
- if (value === void 0) {
4042
- value = null;
4043
- }
4044
- var originalValue = value;
4045
- var dbInfo = self2._dbInfo;
4046
- dbInfo.serializer.serialize(value, function(value2, error) {
4047
- if (error) {
4048
- reject(error);
4049
- } else {
4050
- dbInfo.db.transaction(function(t) {
4051
- tryExecuteSql(t, dbInfo, "INSERT OR REPLACE INTO " + dbInfo.storeName + " (key, value) VALUES (?, ?)", [key2, value2], function() {
4052
- resolve(originalValue);
4053
- }, function(t2, error2) {
4054
- reject(error2);
4055
- });
4056
- }, function(sqlError) {
4057
- if (sqlError.code === sqlError.QUOTA_ERR) {
4058
- if (retriesLeft > 0) {
4059
- resolve(_setItem.apply(self2, [key2, originalValue, callback, retriesLeft - 1]));
4060
- return;
4061
- }
4062
- reject(sqlError);
4063
- }
4064
- });
4065
- }
4066
- });
4067
- })["catch"](reject);
4068
- });
4069
- executeCallback(promise, callback);
4070
- return promise;
4071
- }
4072
- function setItem$1(key2, value, callback) {
4073
- return _setItem.apply(this, [key2, value, callback, 1]);
4074
- }
4075
- function removeItem$1(key2, callback) {
4076
- var self2 = this;
4077
- key2 = normalizeKey(key2);
4078
- var promise = new Promise$1(function(resolve, reject) {
4079
- self2.ready().then(function() {
4080
- var dbInfo = self2._dbInfo;
4081
- dbInfo.db.transaction(function(t) {
4082
- tryExecuteSql(t, dbInfo, "DELETE FROM " + dbInfo.storeName + " WHERE key = ?", [key2], function() {
4083
- resolve();
4084
- }, function(t2, error) {
4085
- reject(error);
4086
- });
4087
- });
4088
- })["catch"](reject);
4089
- });
4090
- executeCallback(promise, callback);
4091
- return promise;
4092
- }
4093
- function clear$1(callback) {
4094
- var self2 = this;
4095
- var promise = new Promise$1(function(resolve, reject) {
4096
- self2.ready().then(function() {
4097
- var dbInfo = self2._dbInfo;
4098
- dbInfo.db.transaction(function(t) {
4099
- tryExecuteSql(t, dbInfo, "DELETE FROM " + dbInfo.storeName, [], function() {
4100
- resolve();
4101
- }, function(t2, error) {
4102
- reject(error);
4103
- });
4104
- });
4105
- })["catch"](reject);
4106
- });
4107
- executeCallback(promise, callback);
4108
- return promise;
4109
- }
4110
- function length$1(callback) {
4111
- var self2 = this;
4112
- var promise = new Promise$1(function(resolve, reject) {
4113
- self2.ready().then(function() {
4114
- var dbInfo = self2._dbInfo;
4115
- dbInfo.db.transaction(function(t) {
4116
- tryExecuteSql(t, dbInfo, "SELECT COUNT(key) as c FROM " + dbInfo.storeName, [], function(t2, results) {
4117
- var result = results.rows.item(0).c;
4118
- resolve(result);
4119
- }, function(t2, error) {
4120
- reject(error);
4121
- });
4122
- });
4123
- })["catch"](reject);
4124
- });
4125
- executeCallback(promise, callback);
4126
- return promise;
4127
- }
4128
- function key$1(n, callback) {
4129
- var self2 = this;
4130
- var promise = new Promise$1(function(resolve, reject) {
4131
- self2.ready().then(function() {
4132
- var dbInfo = self2._dbInfo;
4133
- dbInfo.db.transaction(function(t) {
4134
- tryExecuteSql(t, dbInfo, "SELECT key FROM " + dbInfo.storeName + " WHERE id = ? LIMIT 1", [n + 1], function(t2, results) {
4135
- var result = results.rows.length ? results.rows.item(0).key : null;
4136
- resolve(result);
4137
- }, function(t2, error) {
4138
- reject(error);
4139
- });
4140
- });
4141
- })["catch"](reject);
4142
- });
4143
- executeCallback(promise, callback);
4144
- return promise;
4145
- }
4146
- function keys$1(callback) {
4147
- var self2 = this;
4148
- var promise = new Promise$1(function(resolve, reject) {
4149
- self2.ready().then(function() {
4150
- var dbInfo = self2._dbInfo;
4151
- dbInfo.db.transaction(function(t) {
4152
- tryExecuteSql(t, dbInfo, "SELECT key FROM " + dbInfo.storeName, [], function(t2, results) {
4153
- var keys2 = [];
4154
- for (var i = 0; i < results.rows.length; i++) {
4155
- keys2.push(results.rows.item(i).key);
4156
- }
4157
- resolve(keys2);
4158
- }, function(t2, error) {
4159
- reject(error);
4160
- });
4161
- });
4162
- })["catch"](reject);
4163
- });
4164
- executeCallback(promise, callback);
4165
- return promise;
4166
- }
4167
- function getAllStoreNames(db) {
4168
- return new Promise$1(function(resolve, reject) {
4169
- db.transaction(function(t) {
4170
- t.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'", [], function(t2, results) {
4171
- var storeNames = [];
4172
- for (var i = 0; i < results.rows.length; i++) {
4173
- storeNames.push(results.rows.item(i).name);
4174
- }
4175
- resolve({
4176
- db,
4177
- storeNames
4178
- });
4179
- }, function(t2, error) {
4180
- reject(error);
4181
- });
4182
- }, function(sqlError) {
4183
- reject(sqlError);
4184
- });
4185
- });
4186
- }
4187
- function dropInstance$1(options, callback) {
4188
- callback = getCallback.apply(this, arguments);
4189
- var currentConfig = this.config();
4190
- options = typeof options !== "function" && options || {};
4191
- if (!options.name) {
4192
- options.name = options.name || currentConfig.name;
4193
- options.storeName = options.storeName || currentConfig.storeName;
4194
- }
4195
- var self2 = this;
4196
- var promise;
4197
- if (!options.name) {
4198
- promise = Promise$1.reject("Invalid arguments");
4199
- } else {
4200
- promise = new Promise$1(function(resolve) {
4201
- var db;
4202
- if (options.name === currentConfig.name) {
4203
- db = self2._dbInfo.db;
4204
- } else {
4205
- db = openDatabase(options.name, "", "", 0);
4206
- }
4207
- if (!options.storeName) {
4208
- resolve(getAllStoreNames(db));
4209
- } else {
4210
- resolve({
4211
- db,
4212
- storeNames: [options.storeName]
4213
- });
4214
- }
4215
- }).then(function(operationInfo) {
4216
- return new Promise$1(function(resolve, reject) {
4217
- operationInfo.db.transaction(function(t) {
4218
- function dropTable(storeName) {
4219
- return new Promise$1(function(resolve2, reject2) {
4220
- t.executeSql("DROP TABLE IF EXISTS " + storeName, [], function() {
4221
- resolve2();
4222
- }, function(t2, error) {
4223
- reject2(error);
4224
- });
4225
- });
4226
- }
4227
- var operations = [];
4228
- for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) {
4229
- operations.push(dropTable(operationInfo.storeNames[i]));
4230
- }
4231
- Promise$1.all(operations).then(function() {
4232
- resolve();
4233
- })["catch"](function(e) {
4234
- reject(e);
4235
- });
4236
- }, function(sqlError) {
4237
- reject(sqlError);
4238
- });
4239
- });
4240
- });
4241
- }
4242
- executeCallback(promise, callback);
4243
- return promise;
4244
- }
4245
- var webSQLStorage = {
4246
- _driver: "webSQLStorage",
4247
- _initStorage: _initStorage$1,
4248
- _support: isWebSQLValid(),
4249
- iterate: iterate$1,
4250
- getItem: getItem$1,
4251
- setItem: setItem$1,
4252
- removeItem: removeItem$1,
4253
- clear: clear$1,
4254
- length: length$1,
4255
- key: key$1,
4256
- keys: keys$1,
4257
- dropInstance: dropInstance$1
4258
- };
4259
- function isLocalStorageValid() {
4260
- try {
4261
- return typeof localStorage !== "undefined" && "setItem" in localStorage && // in IE8 typeof localStorage.setItem === 'object'
4262
- !!localStorage.setItem;
4263
- } catch (e) {
4264
- return false;
4265
- }
4266
- }
4267
- function _getKeyPrefix(options, defaultConfig) {
4268
- var keyPrefix = options.name + "/";
4269
- if (options.storeName !== defaultConfig.storeName) {
4270
- keyPrefix += options.storeName + "/";
4271
- }
4272
- return keyPrefix;
4273
- }
4274
- function checkIfLocalStorageThrows() {
4275
- var localStorageTestKey = "_localforage_support_test";
4276
- try {
4277
- localStorage.setItem(localStorageTestKey, true);
4278
- localStorage.removeItem(localStorageTestKey);
4279
- return false;
4280
- } catch (e) {
4281
- return true;
4282
- }
4283
- }
4284
- function _isLocalStorageUsable() {
4285
- return !checkIfLocalStorageThrows() || localStorage.length > 0;
4286
- }
4287
- function _initStorage$2(options) {
4288
- var self2 = this;
4289
- var dbInfo = {};
4290
- if (options) {
4291
- for (var i in options) {
4292
- dbInfo[i] = options[i];
4293
- }
4294
- }
4295
- dbInfo.keyPrefix = _getKeyPrefix(options, self2._defaultConfig);
4296
- if (!_isLocalStorageUsable()) {
4297
- return Promise$1.reject();
4298
- }
4299
- self2._dbInfo = dbInfo;
4300
- dbInfo.serializer = localforageSerializer;
4301
- return Promise$1.resolve();
4302
- }
4303
- function clear$2(callback) {
4304
- var self2 = this;
4305
- var promise = self2.ready().then(function() {
4306
- var keyPrefix = self2._dbInfo.keyPrefix;
4307
- for (var i = localStorage.length - 1; i >= 0; i--) {
4308
- var key2 = localStorage.key(i);
4309
- if (key2.indexOf(keyPrefix) === 0) {
4310
- localStorage.removeItem(key2);
4311
- }
4312
- }
4313
- });
4314
- executeCallback(promise, callback);
4315
- return promise;
4316
- }
4317
- function getItem$2(key2, callback) {
4318
- var self2 = this;
4319
- key2 = normalizeKey(key2);
4320
- var promise = self2.ready().then(function() {
4321
- var dbInfo = self2._dbInfo;
4322
- var result = localStorage.getItem(dbInfo.keyPrefix + key2);
4323
- if (result) {
4324
- result = dbInfo.serializer.deserialize(result);
4325
- }
4326
- return result;
4327
- });
4328
- executeCallback(promise, callback);
4329
- return promise;
4330
- }
4331
- function iterate$2(iterator, callback) {
4332
- var self2 = this;
4333
- var promise = self2.ready().then(function() {
4334
- var dbInfo = self2._dbInfo;
4335
- var keyPrefix = dbInfo.keyPrefix;
4336
- var keyPrefixLength = keyPrefix.length;
4337
- var length2 = localStorage.length;
4338
- var iterationNumber = 1;
4339
- for (var i = 0; i < length2; i++) {
4340
- var key2 = localStorage.key(i);
4341
- if (key2.indexOf(keyPrefix) !== 0) {
4342
- continue;
4343
- }
4344
- var value = localStorage.getItem(key2);
4345
- if (value) {
4346
- value = dbInfo.serializer.deserialize(value);
4347
- }
4348
- value = iterator(value, key2.substring(keyPrefixLength), iterationNumber++);
4349
- if (value !== void 0) {
4350
- return value;
4351
- }
4352
- }
4353
- });
4354
- executeCallback(promise, callback);
4355
- return promise;
4356
- }
4357
- function key$2(n, callback) {
4358
- var self2 = this;
4359
- var promise = self2.ready().then(function() {
4360
- var dbInfo = self2._dbInfo;
4361
- var result;
4362
- try {
4363
- result = localStorage.key(n);
4364
- } catch (error) {
4365
- result = null;
4366
- }
4367
- if (result) {
4368
- result = result.substring(dbInfo.keyPrefix.length);
4369
- }
4370
- return result;
4371
- });
4372
- executeCallback(promise, callback);
4373
- return promise;
4374
- }
4375
- function keys$2(callback) {
4376
- var self2 = this;
4377
- var promise = self2.ready().then(function() {
4378
- var dbInfo = self2._dbInfo;
4379
- var length2 = localStorage.length;
4380
- var keys2 = [];
4381
- for (var i = 0; i < length2; i++) {
4382
- var itemKey = localStorage.key(i);
4383
- if (itemKey.indexOf(dbInfo.keyPrefix) === 0) {
4384
- keys2.push(itemKey.substring(dbInfo.keyPrefix.length));
4385
- }
4386
- }
4387
- return keys2;
4388
- });
4389
- executeCallback(promise, callback);
4390
- return promise;
4391
- }
4392
- function length$2(callback) {
4393
- var self2 = this;
4394
- var promise = self2.keys().then(function(keys2) {
4395
- return keys2.length;
4396
- });
4397
- executeCallback(promise, callback);
4398
- return promise;
4399
- }
4400
- function removeItem$2(key2, callback) {
4401
- var self2 = this;
4402
- key2 = normalizeKey(key2);
4403
- var promise = self2.ready().then(function() {
4404
- var dbInfo = self2._dbInfo;
4405
- localStorage.removeItem(dbInfo.keyPrefix + key2);
4406
- });
4407
- executeCallback(promise, callback);
4408
- return promise;
4409
- }
4410
- function setItem$2(key2, value, callback) {
4411
- var self2 = this;
4412
- key2 = normalizeKey(key2);
4413
- var promise = self2.ready().then(function() {
4414
- if (value === void 0) {
4415
- value = null;
4416
- }
4417
- var originalValue = value;
4418
- return new Promise$1(function(resolve, reject) {
4419
- var dbInfo = self2._dbInfo;
4420
- dbInfo.serializer.serialize(value, function(value2, error) {
4421
- if (error) {
4422
- reject(error);
4423
- } else {
4424
- try {
4425
- localStorage.setItem(dbInfo.keyPrefix + key2, value2);
4426
- resolve(originalValue);
4427
- } catch (e) {
4428
- if (e.name === "QuotaExceededError" || e.name === "NS_ERROR_DOM_QUOTA_REACHED") {
4429
- reject(e);
4430
- }
4431
- reject(e);
4432
- }
4433
- }
4434
- });
4435
- });
4436
- });
4437
- executeCallback(promise, callback);
4438
- return promise;
4439
- }
4440
- function dropInstance$2(options, callback) {
4441
- callback = getCallback.apply(this, arguments);
4442
- options = typeof options !== "function" && options || {};
4443
- if (!options.name) {
4444
- var currentConfig = this.config();
4445
- options.name = options.name || currentConfig.name;
4446
- options.storeName = options.storeName || currentConfig.storeName;
4447
- }
4448
- var self2 = this;
4449
- var promise;
4450
- if (!options.name) {
4451
- promise = Promise$1.reject("Invalid arguments");
4452
- } else {
4453
- promise = new Promise$1(function(resolve) {
4454
- if (!options.storeName) {
4455
- resolve(options.name + "/");
4456
- } else {
4457
- resolve(_getKeyPrefix(options, self2._defaultConfig));
4458
- }
4459
- }).then(function(keyPrefix) {
4460
- for (var i = localStorage.length - 1; i >= 0; i--) {
4461
- var key2 = localStorage.key(i);
4462
- if (key2.indexOf(keyPrefix) === 0) {
4463
- localStorage.removeItem(key2);
4464
- }
4465
- }
4466
- });
4467
- }
4468
- executeCallback(promise, callback);
4469
- return promise;
4470
- }
4471
- var localStorageWrapper = {
4472
- _driver: "localStorageWrapper",
4473
- _initStorage: _initStorage$2,
4474
- _support: isLocalStorageValid(),
4475
- iterate: iterate$2,
4476
- getItem: getItem$2,
4477
- setItem: setItem$2,
4478
- removeItem: removeItem$2,
4479
- clear: clear$2,
4480
- length: length$2,
4481
- key: key$2,
4482
- keys: keys$2,
4483
- dropInstance: dropInstance$2
4484
- };
4485
- var sameValue = function sameValue2(x, y) {
4486
- return x === y || typeof x === "number" && typeof y === "number" && isNaN(x) && isNaN(y);
4487
- };
4488
- var includes = function includes2(array, searchElement) {
4489
- var len = array.length;
4490
- var i = 0;
4491
- while (i < len) {
4492
- if (sameValue(array[i], searchElement)) {
4493
- return true;
4494
- }
4495
- i++;
4496
- }
4497
- return false;
4498
- };
4499
- var isArray2 = Array.isArray || function(arg) {
4500
- return Object.prototype.toString.call(arg) === "[object Array]";
4501
- };
4502
- var DefinedDrivers = {};
4503
- var DriverSupport = {};
4504
- var DefaultDrivers = {
4505
- INDEXEDDB: asyncStorage,
4506
- WEBSQL: webSQLStorage,
4507
- LOCALSTORAGE: localStorageWrapper
4508
- };
4509
- var DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver];
4510
- var OptionalDriverMethods = ["dropInstance"];
4511
- var LibraryMethods = ["clear", "getItem", "iterate", "key", "keys", "length", "removeItem", "setItem"].concat(OptionalDriverMethods);
4512
- var DefaultConfig = {
4513
- description: "",
4514
- driver: DefaultDriverOrder.slice(),
4515
- name: "localforage",
4516
- // Default DB size is _JUST UNDER_ 5MB, as it's the highest size
4517
- // we can use without a prompt.
4518
- size: 4980736,
4519
- storeName: "keyvaluepairs",
4520
- version: 1
4521
- };
4522
- function callWhenReady(localForageInstance, libraryMethod) {
4523
- localForageInstance[libraryMethod] = function() {
4524
- var _args = arguments;
4525
- return localForageInstance.ready().then(function() {
4526
- return localForageInstance[libraryMethod].apply(localForageInstance, _args);
4527
- });
4528
- };
4529
- }
4530
- function extend2() {
4531
- for (var i = 1; i < arguments.length; i++) {
4532
- var arg = arguments[i];
4533
- if (arg) {
4534
- for (var _key in arg) {
4535
- if (arg.hasOwnProperty(_key)) {
4536
- if (isArray2(arg[_key])) {
4537
- arguments[0][_key] = arg[_key].slice();
4538
- } else {
4539
- arguments[0][_key] = arg[_key];
4540
- }
4541
- }
4542
- }
4543
- }
4544
- }
4545
- return arguments[0];
4546
- }
4547
- var LocalForage = function() {
4548
- function LocalForage2(options) {
4549
- _classCallCheck(this, LocalForage2);
4550
- for (var driverTypeKey in DefaultDrivers) {
4551
- if (DefaultDrivers.hasOwnProperty(driverTypeKey)) {
4552
- var driver = DefaultDrivers[driverTypeKey];
4553
- var driverName = driver._driver;
4554
- this[driverTypeKey] = driverName;
4555
- if (!DefinedDrivers[driverName]) {
4556
- this.defineDriver(driver);
4557
- }
4558
- }
4559
- }
4560
- this._defaultConfig = extend2({}, DefaultConfig);
4561
- this._config = extend2({}, this._defaultConfig, options);
4562
- this._driverSet = null;
4563
- this._initDriver = null;
4564
- this._ready = false;
4565
- this._dbInfo = null;
4566
- this._wrapLibraryMethodsWithReady();
4567
- this.setDriver(this._config.driver)["catch"](function() {
4568
- });
4569
- }
4570
- LocalForage2.prototype.config = function config2(options) {
4571
- if ((typeof options === "undefined" ? "undefined" : _typeof(options)) === "object") {
4572
- if (this._ready) {
4573
- return new Error("Can't call config() after localforage has been used.");
4574
- }
4575
- for (var i in options) {
4576
- if (i === "storeName") {
4577
- options[i] = options[i].replace(/\W/g, "_");
4578
- }
4579
- if (i === "version" && typeof options[i] !== "number") {
4580
- return new Error("Database version must be a number.");
4581
- }
4582
- this._config[i] = options[i];
4583
- }
4584
- if ("driver" in options && options.driver) {
4585
- return this.setDriver(this._config.driver);
4586
- }
4587
- return true;
4588
- } else if (typeof options === "string") {
4589
- return this._config[options];
4590
- } else {
4591
- return this._config;
4592
- }
4593
- };
4594
- LocalForage2.prototype.defineDriver = function defineDriver(driverObject, callback, errorCallback) {
4595
- var promise = new Promise$1(function(resolve, reject) {
4596
- try {
4597
- var driverName = driverObject._driver;
4598
- var complianceError = new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");
4599
- if (!driverObject._driver) {
4600
- reject(complianceError);
4601
- return;
4602
- }
4603
- var driverMethods = LibraryMethods.concat("_initStorage");
4604
- for (var i = 0, len = driverMethods.length; i < len; i++) {
4605
- var driverMethodName = driverMethods[i];
4606
- var isRequired = !includes(OptionalDriverMethods, driverMethodName);
4607
- if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== "function") {
4608
- reject(complianceError);
4609
- return;
4610
- }
4611
- }
4612
- var configureMissingMethods = function configureMissingMethods2() {
4613
- var methodNotImplementedFactory = function methodNotImplementedFactory2(methodName) {
4614
- return function() {
4615
- var error = new Error("Method " + methodName + " is not implemented by the current driver");
4616
- var promise2 = Promise$1.reject(error);
4617
- executeCallback(promise2, arguments[arguments.length - 1]);
4618
- return promise2;
4619
- };
4620
- };
4621
- for (var _i = 0, _len = OptionalDriverMethods.length; _i < _len; _i++) {
4622
- var optionalDriverMethod = OptionalDriverMethods[_i];
4623
- if (!driverObject[optionalDriverMethod]) {
4624
- driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod);
4625
- }
4626
- }
4627
- };
4628
- configureMissingMethods();
4629
- var setDriverSupport = function setDriverSupport2(support) {
4630
- if (DefinedDrivers[driverName]) {
4631
- }
4632
- DefinedDrivers[driverName] = driverObject;
4633
- DriverSupport[driverName] = support;
4634
- resolve();
4635
- };
4636
- if ("_support" in driverObject) {
4637
- if (driverObject._support && typeof driverObject._support === "function") {
4638
- driverObject._support().then(setDriverSupport, reject);
4639
- } else {
4640
- setDriverSupport(!!driverObject._support);
4641
- }
4642
- } else {
4643
- setDriverSupport(true);
4644
- }
4645
- } catch (e) {
4646
- reject(e);
4647
- }
4648
- });
4649
- executeTwoCallbacks(promise, callback, errorCallback);
4650
- return promise;
4651
- };
4652
- LocalForage2.prototype.driver = function driver() {
4653
- return this._driver || null;
4654
- };
4655
- LocalForage2.prototype.getDriver = function getDriver(driverName, callback, errorCallback) {
4656
- var getDriverPromise = DefinedDrivers[driverName] ? Promise$1.resolve(DefinedDrivers[driverName]) : Promise$1.reject(new Error("Driver not found."));
4657
- executeTwoCallbacks(getDriverPromise, callback, errorCallback);
4658
- return getDriverPromise;
4659
- };
4660
- LocalForage2.prototype.getSerializer = function getSerializer(callback) {
4661
- var serializerPromise = Promise$1.resolve(localforageSerializer);
4662
- executeTwoCallbacks(serializerPromise, callback);
4663
- return serializerPromise;
4664
- };
4665
- LocalForage2.prototype.ready = function ready(callback) {
4666
- var self2 = this;
4667
- var promise = self2._driverSet.then(function() {
4668
- if (self2._ready === null) {
4669
- self2._ready = self2._initDriver();
4670
- }
4671
- return self2._ready;
4672
- });
4673
- executeTwoCallbacks(promise, callback, callback);
4674
- return promise;
4675
- };
4676
- LocalForage2.prototype.setDriver = function setDriver(drivers, callback, errorCallback) {
4677
- var self2 = this;
4678
- if (!isArray2(drivers)) {
4679
- drivers = [drivers];
4680
- }
4681
- var supportedDrivers = this._getSupportedDrivers(drivers);
4682
- function setDriverToConfig() {
4683
- self2._config.driver = self2.driver();
4684
- }
4685
- function extendSelfWithDriver(driver) {
4686
- self2._extend(driver);
4687
- setDriverToConfig();
4688
- self2._ready = self2._initStorage(self2._config);
4689
- return self2._ready;
4690
- }
4691
- function initDriver(supportedDrivers2) {
4692
- return function() {
4693
- var currentDriverIndex = 0;
4694
- function driverPromiseLoop() {
4695
- while (currentDriverIndex < supportedDrivers2.length) {
4696
- var driverName = supportedDrivers2[currentDriverIndex];
4697
- currentDriverIndex++;
4698
- self2._dbInfo = null;
4699
- self2._ready = null;
4700
- return self2.getDriver(driverName).then(extendSelfWithDriver)["catch"](driverPromiseLoop);
4701
- }
4702
- setDriverToConfig();
4703
- var error = new Error("No available storage method found.");
4704
- self2._driverSet = Promise$1.reject(error);
4705
- return self2._driverSet;
4706
- }
4707
- return driverPromiseLoop();
4708
- };
4709
- }
4710
- var oldDriverSetDone = this._driverSet !== null ? this._driverSet["catch"](function() {
4711
- return Promise$1.resolve();
4712
- }) : Promise$1.resolve();
4713
- this._driverSet = oldDriverSetDone.then(function() {
4714
- var driverName = supportedDrivers[0];
4715
- self2._dbInfo = null;
4716
- self2._ready = null;
4717
- return self2.getDriver(driverName).then(function(driver) {
4718
- self2._driver = driver._driver;
4719
- setDriverToConfig();
4720
- self2._wrapLibraryMethodsWithReady();
4721
- self2._initDriver = initDriver(supportedDrivers);
4722
- });
4723
- })["catch"](function() {
4724
- setDriverToConfig();
4725
- var error = new Error("No available storage method found.");
4726
- self2._driverSet = Promise$1.reject(error);
4727
- return self2._driverSet;
4728
- });
4729
- executeTwoCallbacks(this._driverSet, callback, errorCallback);
4730
- return this._driverSet;
4731
- };
4732
- LocalForage2.prototype.supports = function supports(driverName) {
4733
- return !!DriverSupport[driverName];
4734
- };
4735
- LocalForage2.prototype._extend = function _extend(libraryMethodsAndProperties) {
4736
- extend2(this, libraryMethodsAndProperties);
4737
- };
4738
- LocalForage2.prototype._getSupportedDrivers = function _getSupportedDrivers(drivers) {
4739
- var supportedDrivers = [];
4740
- for (var i = 0, len = drivers.length; i < len; i++) {
4741
- var driverName = drivers[i];
4742
- if (this.supports(driverName)) {
4743
- supportedDrivers.push(driverName);
4744
- }
4745
- }
4746
- return supportedDrivers;
4747
- };
4748
- LocalForage2.prototype._wrapLibraryMethodsWithReady = function _wrapLibraryMethodsWithReady() {
4749
- for (var i = 0, len = LibraryMethods.length; i < len; i++) {
4750
- callWhenReady(this, LibraryMethods[i]);
4751
- }
4752
- };
4753
- LocalForage2.prototype.createInstance = function createInstance2(options) {
4754
- return new LocalForage2(options);
4755
- };
4756
- return LocalForage2;
4757
- }();
4758
- var localforage_js = new LocalForage();
4759
- module2.exports = localforage_js;
4760
- }, { "3": 3 }] }, {}, [4])(4);
4761
- });
4762
- })(localforage$1);
4763
- var localforageExports = localforage$1.exports;
4764
- const localforage = /* @__PURE__ */ getDefaultExportFromCjs(localforageExports);
4765
- localforage.config({
4766
- name: "yxI18n"
4767
- });
4768
- const dbSetItem = (key, value) => __async(void 0, null, function* () {
4769
- yield localforage.setItem(key, value);
4770
- });
4771
- const dbGetItem = (key) => __async(void 0, null, function* () {
4772
- return yield localforage.getItem(key);
4773
- });
4774
- const setLang = (lang) => {
4775
- changeSystemConfig("lang", lang);
4776
- };
4777
- const defaultApiUrl = {
4778
- URL: "/gateway/integrated-management/api/v1/translate/get"
4779
- };
4780
- const config$1 = {
4781
- URL: getSystemConfig("translateApiUrl") || defaultApiUrl.URL
4782
- };
4783
- const translate = (_0) => __async(void 0, [_0], function* ({ words, systemFlag, toSource = "en", fromSource = "zh", translateApiUrl }) {
4784
- try {
4785
- const { data } = yield http.post(
4786
- translateApiUrl ? translateApiUrl : config$1.URL,
4787
- {
4788
- words,
4789
- systemFlag,
4790
- toSource,
4791
- fromSource
4792
- },
4793
- { headers: { noLoading: true } }
4794
- );
4795
- return data.dstMap || {};
4796
- } catch (e) {
4797
- return null;
4798
- }
4799
- });
4800
- const sqlKey = `${getSystemConfig("systemKey")}_${window.lang}`;
4801
- const whitelistApi = [
4802
- "/gateway/integrated-management/api/v1/theme/list",
4803
- "/gateway/integrated-management/api/v1/translate/get",
4804
- ...getSystemConfig("whitelistTranslateApi")
4805
- ];
4806
- const getYxI18nThesaurus = () => __async(void 0, null, function* () {
4807
- const lang = yield dbGetItem("lang");
4808
- return yield dbGetItem(`${getSystemConfig("systemKey")}_${lang}`);
4809
- });
4810
- const handleTranslation = (data) => __async(void 0, null, function* () {
4811
- let result = JSON.stringify(data);
4812
- const chineseRegex = /[\u4e00-\u9fa5]+/g;
4813
- const matches = result.match(chineseRegex);
4814
- const yxI18nThesaurus = yield getYxI18nThesaurus();
4815
- let waitWords = [];
4816
- if (matches) {
4817
- for (const match of matches) {
4818
- if (yxI18nThesaurus[match]) {
4819
- result = result.replace(new RegExp(match, "g"), yxI18nThesaurus[match]);
4820
- } else {
4821
- if (!waitWords.includes(match)) {
4822
- waitWords.push(match);
4823
- }
4824
- }
4825
- }
4826
- if (waitWords.length > 0) {
4827
- const i18nMap = yield translatedText(waitWords);
4828
- waitWords.forEach((word) => {
4829
- result = result.replace(new RegExp(word, "g"), i18nMap[word]);
4830
- });
4831
- const newYxI18nThesaurus = __spreadValues(__spreadValues({}, yxI18nThesaurus), i18nMap);
4832
- yield dbSetItem(sqlKey, newYxI18nThesaurus);
4833
- waitWords = [];
4834
- }
4835
- }
4836
- return JSON.parse(result);
4837
- });
4838
- function translatedText(words) {
4839
- return __async(this, null, function* () {
4840
- const result = yield translate({ words, toSource: window.lang, systemFlag: getSystemConfig("systemKey") });
4841
- return result;
4842
- });
4843
- }
4844
2636
  let loadingInstance;
4845
2637
  const loadingOptions = {
4846
2638
  lock: true,
@@ -4885,43 +2677,40 @@ const config = {
4885
2677
  const checkStatus = (status, msg) => {
4886
2678
  switch (status) {
4887
2679
  case 400:
4888
- ElMessage.error("request was aborted!Please try again later");
2680
+ ElMessage.error(msg || "请求失败!请您稍后重试");
4889
2681
  break;
4890
2682
  case 401:
4891
- if (!location.href.includes(getLoginUrl())) {
4892
- ElMessage.error("Login failure!Please log in again");
4893
- jumpToLogin();
4894
- }
2683
+ ElMessage.error(msg || "登录失效!请您重新登录");
4895
2684
  break;
4896
2685
  case 403:
4897
- ElMessage.error("The current account does not have permission to access!");
2686
+ ElMessage.error(msg || "当前账号无权限访问!");
4898
2687
  break;
4899
2688
  case 404:
4900
- ElMessage.error("The resource you are accessing does not exist");
2689
+ ElMessage.error("你所访问的资源不存在");
4901
2690
  break;
4902
2691
  case 405:
4903
- ElMessage.error("Request method incorrect!Please try again later");
2692
+ ElMessage.error(msg || "请求方式错误!请您稍后重试");
4904
2693
  break;
4905
2694
  case 408:
4906
- ElMessage.error("request timeout!Please try again later");
2695
+ ElMessage.error(msg || "请求超时!请您稍后重试");
4907
2696
  break;
4908
2697
  case 500:
4909
- ElMessage.error("Service exception!");
2698
+ ElMessage.error(msg || "服务异常!");
4910
2699
  break;
4911
2700
  case 502:
4912
- ElMessage.error("Bad Gateway ");
2701
+ ElMessage.error(msg || "网关错误!");
4913
2702
  break;
4914
2703
  case 503:
4915
- ElMessage.error("Service unavailable!");
2704
+ ElMessage.error(msg || "服务不可用");
4916
2705
  break;
4917
2706
  case 504:
4918
- ElMessage.error("gateway timeout ");
2707
+ ElMessage.error(msg || "网关超时!");
4919
2708
  break;
4920
2709
  default:
4921
- ElMessage.error("request was aborted!");
2710
+ ElMessage.error(msg || "请求失败!请您稍后重试!");
4922
2711
  }
4923
2712
  };
4924
- const isTranslateApi = getSystemConfig("isTranslateApi");
2713
+ getSystemConfig("isTranslateApi");
4925
2714
  class YxHttp {
4926
2715
  constructor(config2) {
4927
2716
  __publicField(this, "service");
@@ -4952,22 +2741,22 @@ class YxHttp {
4952
2741
  (response) => __async(this, null, function* () {
4953
2742
  const { config: config2 } = response;
4954
2743
  let data = response.data;
4955
- if (window.lang !== "zh" && isTranslateApi && !whitelistApi.includes(config2.url)) {
4956
- data = yield handleTranslation(data);
4957
- }
2744
+ const code = response.status;
4958
2745
  hideFullScreenLoading();
4959
2746
  if (config2.url && this.customResMap[config2.url]) {
4960
2747
  return this.customResMap[config2.url](data);
4961
2748
  }
4962
- if (data.code == ResultEnum.OVERDUE) {
2749
+ if (code == ResultEnum.OVERDUE) {
4963
2750
  this.handleOverdueResponse(data);
4964
- } else if (data.code !== ResultEnum.SUCCESS) {
2751
+ } else if (code !== ResultEnum.SUCCESS) {
4965
2752
  this.handleErrorResponse(data);
4966
2753
  }
4967
2754
  return data;
4968
2755
  }),
4969
2756
  (error) => {
2757
+ var _a;
4970
2758
  hideFullScreenLoading();
2759
+ const response = error.response;
4971
2760
  const { config: config2 } = error;
4972
2761
  if ((config2 == null ? void 0 : config2.url) && this.customResMap[config2.url]) {
4973
2762
  this.customResMap[config2.url](error.response);
@@ -4977,8 +2766,8 @@ class YxHttp {
4977
2766
  } else if (error.message.includes("Network Error")) {
4978
2767
  ElMessage.error("网络错误!请稍后重试");
4979
2768
  }
4980
- if (error.response) {
4981
- checkStatus(error.response.status);
2769
+ if (response) {
2770
+ checkStatus(response.status, (_a = response.data) == null ? void 0 : _a.resultMsg);
4982
2771
  }
4983
2772
  if (!window.navigator.onLine) {
4984
2773
  ElNotification({
@@ -5050,18 +2839,16 @@ const http = new YxHttp(config);
5050
2839
  export {
5051
2840
  BC_LANG_NAME as B,
5052
2841
  URL$1 as U,
5053
- dbGetItem as a,
5054
- handleTranslation as b,
5055
- commonjsRequire as c,
5056
- dbSetItem as d,
5057
- BC_THEME_NAME as e,
5058
- setSystemConfig as f,
5059
- getUserIsHaveBtnPower as g,
5060
- http as h,
5061
- index as i,
5062
- getSystemConfig as j,
5063
- setLang as s,
5064
- translate as t,
5065
- whitelistApi as w
2842
+ http as a,
2843
+ getUserIsHaveBtnPower as b,
2844
+ checkStatus as c,
2845
+ changeSystemConfig as d,
2846
+ getSystemConfig as e,
2847
+ BC_THEME_NAME as f,
2848
+ getToken as g,
2849
+ hideFullScreenLoading as h,
2850
+ setSystemConfig as i,
2851
+ index as j,
2852
+ showFullScreenLoading as s
5066
2853
  };
5067
2854
  //# sourceMappingURL=index.es12.js.map