@cloudbase/js-sdk 3.7.0 → 3.7.2-cbf.0

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 (99) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/app/dist/index.esm.js +1 -1
  3. package/app/dist/index.js +1 -1
  4. package/app/dist/index.js.map +1 -1
  5. package/app/dist/index.node.esm.js +1 -1
  6. package/app/dist/index.node.esm.js.map +1 -1
  7. package/app/dist/index.node.js +1 -1
  8. package/app/dist/index.node.js.map +1 -1
  9. package/auth/dist/index.esm.js +1 -1
  10. package/auth/dist/index.esm.js.map +1 -1
  11. package/auth/dist/index.js +1 -1
  12. package/auth/dist/index.js.map +1 -1
  13. package/dist/index.cjs.js +1 -1
  14. package/dist/index.cjs.js.map +1 -1
  15. package/dist/index.esm.js +1 -1
  16. package/dist/index.esm.js.map +1 -1
  17. package/dist/index.node.cjs.js +1 -1
  18. package/dist/index.node.cjs.js.map +1 -1
  19. package/dist/index.node.esm.js +1 -1
  20. package/dist/index.node.esm.js.map +1 -1
  21. package/miniprogram_dist/ai.js +2 -0
  22. package/miniprogram_dist/analytics.js +1 -0
  23. package/miniprogram_dist/apis.js +1 -0
  24. package/miniprogram_dist/app.js +2 -0
  25. package/miniprogram_dist/auth/index.d.ts +2 -0
  26. package/miniprogram_dist/auth/index.js +1 -1
  27. package/miniprogram_dist/auth.js +2 -0
  28. package/miniprogram_dist/cloudrun.js +1 -0
  29. package/miniprogram_dist/container.js +1 -0
  30. package/miniprogram_dist/database.js +1 -0
  31. package/miniprogram_dist/functions.js +1 -0
  32. package/miniprogram_dist/index.js +1 -1
  33. package/miniprogram_dist/model/index.js +1 -1
  34. package/miniprogram_dist/model.js +1 -0
  35. package/miniprogram_dist/mysql.js +1 -0
  36. package/miniprogram_dist/oauth/index.js +1 -1
  37. package/miniprogram_dist/oauth.js +2 -0
  38. package/miniprogram_dist/realtime.js +1 -0
  39. package/miniprogram_dist/storage.js +1 -0
  40. package/oauth/dist/index.esm.js +1 -1
  41. package/oauth/dist/index.esm.js.map +1 -1
  42. package/oauth/dist/index.js +1 -1
  43. package/oauth/dist/index.js.map +1 -1
  44. package/package.json +2 -2
  45. package/types/package.json +13 -1
  46. package/utilities/package.json +1 -1
  47. package/utilities/dist/cjs/adapters/index.d.ts +0 -45
  48. package/utilities/dist/cjs/adapters/index.js +0 -68
  49. package/utilities/dist/cjs/adapters/platforms/web.d.ts +0 -20
  50. package/utilities/dist/cjs/adapters/platforms/web.js +0 -286
  51. package/utilities/dist/cjs/constants/common.d.ts +0 -6
  52. package/utilities/dist/cjs/constants/common.js +0 -24
  53. package/utilities/dist/cjs/constants/errors.d.ts +0 -8
  54. package/utilities/dist/cjs/constants/errors.js +0 -12
  55. package/utilities/dist/cjs/constants/index.d.ts +0 -3
  56. package/utilities/dist/cjs/constants/index.js +0 -21
  57. package/utilities/dist/cjs/helpers/decorators.d.ts +0 -11
  58. package/utilities/dist/cjs/helpers/decorators.js +0 -238
  59. package/utilities/dist/cjs/helpers/index.d.ts +0 -1
  60. package/utilities/dist/cjs/helpers/index.js +0 -18
  61. package/utilities/dist/cjs/index.d.ts +0 -13
  62. package/utilities/dist/cjs/index.js +0 -51
  63. package/utilities/dist/cjs/libs/abortController.d.ts +0 -9
  64. package/utilities/dist/cjs/libs/abortController.js +0 -25
  65. package/utilities/dist/cjs/libs/cache.d.ts +0 -17
  66. package/utilities/dist/cjs/libs/cache.js +0 -261
  67. package/utilities/dist/cjs/libs/events.d.ts +0 -27
  68. package/utilities/dist/cjs/libs/events.js +0 -108
  69. package/utilities/dist/cjs/libs/langEvent.d.ts +0 -3
  70. package/utilities/dist/cjs/libs/langEvent.js +0 -7
  71. package/utilities/dist/cjs/libs/util.d.ts +0 -49
  72. package/utilities/dist/cjs/libs/util.js +0 -282
  73. package/utilities/dist/esm/adapters/index.d.ts +0 -45
  74. package/utilities/dist/esm/adapters/index.js +0 -40
  75. package/utilities/dist/esm/adapters/platforms/web.d.ts +0 -20
  76. package/utilities/dist/esm/adapters/platforms/web.js +0 -282
  77. package/utilities/dist/esm/constants/common.d.ts +0 -6
  78. package/utilities/dist/esm/constants/common.js +0 -17
  79. package/utilities/dist/esm/constants/errors.d.ts +0 -8
  80. package/utilities/dist/esm/constants/errors.js +0 -9
  81. package/utilities/dist/esm/constants/index.d.ts +0 -3
  82. package/utilities/dist/esm/constants/index.js +0 -4
  83. package/utilities/dist/esm/helpers/decorators.d.ts +0 -11
  84. package/utilities/dist/esm/helpers/decorators.js +0 -234
  85. package/utilities/dist/esm/helpers/index.d.ts +0 -1
  86. package/utilities/dist/esm/helpers/index.js +0 -2
  87. package/utilities/dist/esm/index.d.ts +0 -13
  88. package/utilities/dist/esm/index.js +0 -14
  89. package/utilities/dist/esm/libs/abortController.d.ts +0 -9
  90. package/utilities/dist/esm/libs/abortController.js +0 -23
  91. package/utilities/dist/esm/libs/cache.d.ts +0 -17
  92. package/utilities/dist/esm/libs/cache.js +0 -258
  93. package/utilities/dist/esm/libs/events.d.ts +0 -27
  94. package/utilities/dist/esm/libs/events.js +0 -102
  95. package/utilities/dist/esm/libs/langEvent.d.ts +0 -3
  96. package/utilities/dist/esm/libs/langEvent.js +0 -4
  97. package/utilities/dist/esm/libs/util.d.ts +0 -49
  98. package/utilities/dist/esm/libs/util.js +0 -254
  99. package/utilities/dist/miniprogram/index.js +0 -1
@@ -1,234 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __generator = (this && this.__generator) || function (thisArg, body) {
11
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
- function verb(n) { return function (v) { return step([n, v]); }; }
14
- function step(op) {
15
- if (f) throw new TypeError("Generator is already executing.");
16
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
- if (y = 0, t) op = [op[0] & 2, t.value];
19
- switch (op[0]) {
20
- case 0: case 1: t = op; break;
21
- case 4: _.label++; return { value: op[1], done: false };
22
- case 5: _.label++; y = op[1]; op = [0]; continue;
23
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
- default:
25
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
- if (t[2]) _.ops.pop();
30
- _.trys.pop(); continue;
31
- }
32
- op = body.call(thisArg, _);
33
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
- }
36
- };
37
- import { printGroupLog } from '../libs/util';
38
- import { IS_DEBUG_MODE } from '../constants';
39
- var isFirefox = false;
40
- if (typeof navigator !== 'undefined' && navigator.userAgent) {
41
- isFirefox = navigator.userAgent.indexOf('Firefox') !== -1;
42
- }
43
- var REG_STACK_DECORATE = isFirefox
44
- ? /(\.js\/)?__decorate(\$\d+)?<@.*\d$/
45
- : /(\/\w+\.js\.)?__decorate(\$\d+)?\s*\(.*\)$/;
46
- var REG_STACK_LINK = /https?:\/\/.+:\d*\/.*\.js:\d+:\d+/;
47
- export function catchErrorsDecorator(options) {
48
- var _a = options.mode, mode = _a === void 0 ? 'async' : _a, _b = options.customInfo, customInfo = _b === void 0 ? {} : _b, title = options.title, _c = options.messages, messages = _c === void 0 ? [] : _c;
49
- return function (target, methodName, descriptor) {
50
- if (!IS_DEBUG_MODE) {
51
- return;
52
- }
53
- var className = customInfo.className || target.constructor.name;
54
- var fnName = customInfo.methodName || methodName;
55
- var fn = descriptor.value;
56
- var sourceLink = getSourceLink(new Error());
57
- if (mode === 'sync') {
58
- descriptor.value = function () {
59
- var args = [];
60
- for (var _i = 0; _i < arguments.length; _i++) {
61
- args[_i] = arguments[_i];
62
- }
63
- var innerErr = getRewritedError({
64
- err: new Error(),
65
- className: className,
66
- methodName: fnName,
67
- sourceLink: sourceLink,
68
- });
69
- try {
70
- return fn.apply(this, args);
71
- }
72
- catch (err) {
73
- var failErr = err;
74
- var errMsg = err.message, error = err.error, errorDescription = err.error_description;
75
- var logs = {
76
- title: title || "".concat(className, ".").concat(fnName, " failed"),
77
- content: [{
78
- type: 'error',
79
- body: err,
80
- }],
81
- };
82
- if (errMsg && /^\{.*\}$/.test(errMsg)) {
83
- var msg = JSON.parse(errMsg);
84
- logs.subtitle = errMsg;
85
- if (msg.code) {
86
- if (innerErr) {
87
- innerErr.code = msg.code;
88
- innerErr.msg = msg.msg;
89
- }
90
- else {
91
- err.code = msg.code;
92
- err.message = msg.msg;
93
- }
94
- failErr = innerErr || err;
95
- logs.content = messages.map(function (msg) { return ({
96
- type: 'info',
97
- body: msg,
98
- }); });
99
- }
100
- }
101
- if (error && errorDescription) {
102
- logs.subtitle = errorDescription;
103
- if (innerErr) {
104
- innerErr.code = error;
105
- innerErr.msg = errorDescription;
106
- }
107
- else {
108
- err.code = error;
109
- err.message = errorDescription;
110
- }
111
- failErr = innerErr || err;
112
- logs.content = messages.map(function (msg) { return ({
113
- type: 'info',
114
- body: msg,
115
- }); });
116
- }
117
- printGroupLog(logs);
118
- throw failErr;
119
- }
120
- };
121
- }
122
- else {
123
- descriptor.value = function () {
124
- var args = [];
125
- for (var _i = 0; _i < arguments.length; _i++) {
126
- args[_i] = arguments[_i];
127
- }
128
- return __awaiter(this, void 0, void 0, function () {
129
- var innerErr, err_1, failErr, errMsg, error, errorDescription, logs, msg;
130
- return __generator(this, function (_a) {
131
- switch (_a.label) {
132
- case 0:
133
- innerErr = getRewritedError({
134
- err: new Error(),
135
- className: className,
136
- methodName: fnName,
137
- sourceLink: sourceLink,
138
- });
139
- _a.label = 1;
140
- case 1:
141
- _a.trys.push([1, 3, , 4]);
142
- return [4, fn.apply(this, args)];
143
- case 2: return [2, _a.sent()];
144
- case 3:
145
- err_1 = _a.sent();
146
- failErr = err_1;
147
- errMsg = err_1.message, error = err_1.error, errorDescription = err_1.error_description;
148
- logs = {
149
- title: title || "".concat(className, ".").concat(fnName, " failed"),
150
- content: [{
151
- type: 'error',
152
- body: err_1,
153
- }],
154
- };
155
- if (errMsg && /^\{.*\}$/.test(errMsg)) {
156
- msg = JSON.parse(errMsg);
157
- logs.subtitle = msg;
158
- if (msg.code) {
159
- if (innerErr) {
160
- innerErr.code = msg.code;
161
- innerErr.message = msg.msg;
162
- }
163
- else {
164
- err_1.code = msg.code;
165
- err_1.message = msg.msg;
166
- }
167
- failErr = innerErr || err_1;
168
- logs.content = messages.map(function (msg) { return ({
169
- type: 'info',
170
- body: msg,
171
- }); });
172
- }
173
- }
174
- if (error && errorDescription) {
175
- logs.subtitle = errorDescription;
176
- if (innerErr) {
177
- innerErr.code = error;
178
- innerErr.msg = errorDescription;
179
- }
180
- else {
181
- err_1.code = error;
182
- err_1.message = errorDescription;
183
- }
184
- failErr = innerErr || err_1;
185
- logs.content = messages.map(function (msg) { return ({
186
- type: 'info',
187
- body: msg,
188
- }); });
189
- }
190
- printGroupLog(logs);
191
- throw failErr;
192
- case 4: return [2];
193
- }
194
- });
195
- });
196
- };
197
- }
198
- };
199
- }
200
- function getSourceLink(err) {
201
- var sourceLink = '';
202
- var outterErrStacks = err.stack.split('\n');
203
- var indexOfDecorator = outterErrStacks.findIndex(function (str) { return REG_STACK_DECORATE.test(str); });
204
- if (indexOfDecorator !== -1) {
205
- var match = REG_STACK_LINK.exec(outterErrStacks[indexOfDecorator + 1] || '');
206
- sourceLink = match ? match[0] : '';
207
- }
208
- return sourceLink;
209
- }
210
- function getRewritedError(options) {
211
- var err = options.err, className = options.className, methodName = options.methodName, sourceLink = options.sourceLink;
212
- if (!sourceLink) {
213
- return null;
214
- }
215
- var innerErrStack = err.stack.split('\n');
216
- var REG_STACK_INNER_METHOD = isFirefox
217
- ? /^catchErrorsDecorator\/<\/descriptor.value@.*\d$/
218
- : new RegExp("".concat(className, "\\.descriptor.value\\s*\\[as\\s").concat(methodName, "\\]\\s*\\(.*\\)$"));
219
- var REG_STACK_INNER_METHOD_WITHOUT_LINK = isFirefox
220
- ? /^catchErrorsDecorator\/<\/descriptor.value/
221
- : new RegExp("".concat(className, "\\.descriptor.value\\s*\\[as\\s").concat(methodName, "\\]"));
222
- var indexOfSource = innerErrStack.findIndex(function (str) { return REG_STACK_INNER_METHOD.test(str); });
223
- var innerErr;
224
- if (indexOfSource !== -1) {
225
- var realErrStack = innerErrStack.filter(function (v, i) { return i > indexOfSource; });
226
- realErrStack.unshift(innerErrStack[indexOfSource]
227
- .replace(REG_STACK_INNER_METHOD_WITHOUT_LINK, "".concat(className, ".").concat(methodName))
228
- .replace(REG_STACK_LINK, sourceLink));
229
- innerErr = new Error();
230
- innerErr.stack = "".concat(isFirefox ? '@debugger' : 'Error', "\n").concat(realErrStack.join('\n'));
231
- }
232
- return innerErr;
233
- }
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oZWxwZXJzL2RlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBWTVDLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQTtBQUNyQixJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFO0lBQzNELFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtDQUMxRDtBQUlELElBQU0sa0JBQWtCLEdBQUcsU0FBUztJQUNsQyxDQUFDLENBQUMsb0NBQW9DO0lBQ3RDLENBQUMsQ0FBQyw0Q0FBNEMsQ0FBQTtBQUNoRCxJQUFNLGNBQWMsR0FBRyxtQ0FBbUMsQ0FBQTtBQUsxRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsT0FBcUM7SUFDaEUsSUFBQSxLQUEwRCxPQUFPLEtBQW5ELEVBQWQsSUFBSSxtQkFBRyxPQUFPLEtBQUEsRUFBRSxLQUEwQyxPQUFPLFdBQWxDLEVBQWYsVUFBVSxtQkFBRyxFQUFFLEtBQUEsRUFBRSxLQUFLLEdBQW9CLE9BQU8sTUFBM0IsRUFBRSxLQUFrQixPQUFPLFNBQVosRUFBYixRQUFRLG1CQUFHLEVBQUUsS0FBQSxDQUFZO0lBRXpFLE9BQU8sVUFDTCxNQUFXLEVBQ1gsVUFBa0IsRUFDbEIsVUFBNkM7UUFHN0MsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNsQixPQUFNO1NBQ1A7UUFDRCxJQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFBO1FBQ2pFLElB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QUMsQ0FBQTtJQUMxRixJQUFNLG1DQUFtQyxHQUFHLFNBQVM7UUFDbkQsQ0FBQyxDQUFDLDRDQUE0QztRQUM5QyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsVUFBRyxTQUFTLDRDQUFrQyxVQUFVLFFBQUssQ0FBQyxDQUFBO0lBQzdFLElBQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQWhDLENBQWdDLENBQUMsQ0FBQTtJQUN0RixJQUFJLFFBQWUsQ0FBQTtJQUNuQixJQUFJLGFBQWEsS0FBSyxDQUFDLENBQUMsRUFBRTtRQUV4QixJQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSyxPQUFBLENBQUMsR0FBRyxhQUFhLEVBQWpCLENBQWlCLENBQUMsQ0FBQTtRQUN0RSxZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7YUFDOUMsT0FBTyxDQUFDLG1DQUFtQyxFQUFFLFVBQUcsU0FBUyxjQUFJLFVBQVUsQ0FBRSxDQUFDO2FBQzFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQTtRQUN2QyxRQUFRLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQTtRQUN0QixRQUFRLENBQUMsS0FBSyxHQUFHLFVBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sZUFBSyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFFLENBQUE7S0FDcEY7SUFDRCxPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJpbnRHcm91cExvZyB9IGZyb20gJy4uL2xpYnMvdXRpbCdcbmltcG9ydCB7IElTX0RFQlVHX01PREUgfSBmcm9tICcuLi9jb25zdGFudHMnXG5cbmludGVyZmFjZSBJQ2F0Y2hFcnJvcnNEZWNvcmF0b3JPcHRpb25zIHtcbiAgbW9kZT86ICdzeW5jJyB8ICdhc3luYyc7XG4gIGN1c3RvbUluZm8/OiB7XG4gICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgIG1ldGhvZE5hbWU/OiBzdHJpbmc7XG4gIH07XG4gIHRpdGxlPzogc3RyaW5nO1xuICBtZXNzYWdlcz86IHN0cmluZ1tdO1xufVxuLy8gZmlyZWZveOeahHN0YWNr5qC85byP5LiOY2hyb21l5LiN5ZCMXG5sZXQgaXNGaXJlZm94ID0gZmFsc2VcbmlmICh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiBuYXZpZ2F0b3IudXNlckFnZW50KSB7XG4gIGlzRmlyZWZveCA9IG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignRmlyZWZveCcpICE9PSAtMVxufVxuLyoqXG4gKiBkZWNvcmF0ZeWcqHN0YWNr5Lit5LiA6Iis6YO954m55a6a55qE6KeE6IyDXG4gKi9cbmNvbnN0IFJFR19TVEFDS19ERUNPUkFURSA9IGlzRmlyZWZveFxuICA/IC8oXFwuanNcXC8pP19fZGVjb3JhdGUoXFwkXFxkKyk/PEAuKlxcZCQvXG4gIDogLyhcXC9cXHcrXFwuanNcXC4pP19fZGVjb3JhdGUoXFwkXFxkKyk/XFxzKlxcKC4qXFwpJC9cbmNvbnN0IFJFR19TVEFDS19MSU5LID0gL2h0dHBzPzpcXC9cXC8uKzpcXGQqXFwvLipcXC5qczpcXGQrOlxcZCsvXG4vKipcbiAqIGRlYnVn5qih5byP5by65YyW5pel5b+X5L+h5oGvXG4gKiBAcGFyYW0gb3B0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY2F0Y2hFcnJvcnNEZWNvcmF0b3Iob3B0aW9uczogSUNhdGNoRXJyb3JzRGVjb3JhdG9yT3B0aW9ucykge1xuICBjb25zdCB7IG1vZGUgPSAnYXN5bmMnLCBjdXN0b21JbmZvID0ge30sIHRpdGxlLCBtZXNzYWdlcyA9IFtdIH0gPSBvcHRpb25zXG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChcbiAgICB0YXJnZXQ6IGFueSxcbiAgICBtZXRob2ROYW1lOiBzdHJpbmcsXG4gICAgZGVzY3JpcHRvcjogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8RnVuY3Rpb24+XG4gICkge1xuICAgIC8vIOeUn+S6p+eOr+Wig+emgeeUqFxuICAgIGlmICghSVNfREVCVUdfTU9ERSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IGNsYXNzTmFtZSA9IGN1c3RvbUluZm8uY2xhc3NOYW1lIHx8IHRhcmdldC5jb25zdHJ1Y3Rvci5uYW1lXG4gICAgY29uc3QgZm5OYW1lID0gY3VzdG9tSW5mby5tZXRob2ROYW1lIHx8IG1ldGhvZE5hbWVcbiAgICBjb25zdCBmbiA9IGRlc2NyaXB0b3IudmFsdWVcblxuICAgIC8vIOiiq2RlY29yYXRvcuijhemlsOeahOa6kOeggWxpbmtcbiAgICAvLyDlnKhkZXNjcmlwdG9yLnZhbHVl5aSW6YOo5q2k5aSE5Yib5bu655qEc3RhY2vlsYLmrKHlj6/op6bovr7mupDnoIFcbiAgICAvLyDogIxkZXNjcmlwdG9yLnZhbHVl5YaF6YOo5pyJ5Y+v6IO955Sx5LqOc3RhY2vlpKrmt7Hml6Dms5Xop6bovr5cbiAgICBjb25zdCBzb3VyY2VMaW5rID0gZ2V0U291cmNlTGluayhuZXcgRXJyb3IoKSlcblxuICAgIGlmIChtb2RlID09PSAnc3luYycpIHtcbiAgICAgIGRlc2NyaXB0b3IudmFsdWUgPSBmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcbiAgICAgICAgLy8g5q2k5aSE55qEc3RhY2vkvZznlKjkuLvopoHmmK/kuLrkuobojrflj5booqtkZWNvcmF0b3Loo4XppbDnmoTmupDnoIFjbGFzc+WSjG1ldGhvZOWQjeensFxuICAgICAgICBjb25zdCBpbm5lckVycjogYW55ID0gZ2V0UmV3cml0ZWRFcnJvcih7XG4gICAgICAgICAgZXJyOiBuZXcgRXJyb3IoKSxcbiAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgbWV0aG9kTmFtZTogZm5OYW1lLFxuICAgICAgICAgIHNvdXJjZUxpbmssXG4gICAgICAgIH0pXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3MpXG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGxldCBmYWlsRXJyID0gZXJyXG4gICAgICAgICAgY29uc3QgeyBtZXNzYWdlOiBlcnJNc2csIGVycm9yLCBlcnJvcl9kZXNjcmlwdGlvbjogZXJyb3JEZXNjcmlwdGlvbiB9ID0gZXJyXG4gICAgICAgICAgY29uc3QgbG9nczogYW55ID0ge1xuICAgICAgICAgICAgdGl0bGU6IHRpdGxlIHx8IGAke2NsYXNzTmFtZX0uJHtmbk5hbWV9IGZhaWxlZGAsXG4gICAgICAgICAgICBjb250ZW50OiBbe1xuICAgICAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgICAgICBib2R5OiBlcnIsXG4gICAgICAgICAgICB9XSxcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8g5Y+q54m55q6K5aSE55CGU0RL5Lia5Yqh6YC76L6R5oqb5Ye655qE6ZSZ6K+vLUpTT04gc3RyaW5nXG4gICAgICAgICAgaWYgKGVyck1zZyAmJiAvXlxcey4qXFx9JC8udGVzdChlcnJNc2cpKSB7XG4gICAgICAgICAgICBjb25zdCBtc2cgPSBKU09OLnBhcnNlKGVyck1zZylcbiAgICAgICAgICAgIGxvZ3Muc3VidGl0bGUgPSBlcnJNc2dcbiAgICAgICAgICAgIGlmIChtc2cuY29kZSkge1xuICAgICAgICAgICAgICBpZiAoaW5uZXJFcnIpIHtcbiAgICAgICAgICAgICAgICBpbm5lckVyci5jb2RlID0gbXNnLmNvZGVcbiAgICAgICAgICAgICAgICBpbm5lckVyci5tc2cgPSBtc2cubXNnXG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZXJyLmNvZGUgPSBtc2cuY29kZVxuICAgICAgICAgICAgICAgIGVyci5tZXNzYWdlID0gbXNnLm1zZ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGZhaWxFcnIgPSBpbm5lckVyciB8fCBlcnJcbiAgICAgICAgICAgICAgbG9ncy5jb250ZW50ID0gbWVzc2FnZXMubWFwKG1zZyA9PiAoe1xuICAgICAgICAgICAgICAgIHR5cGU6ICdpbmZvJyxcbiAgICAgICAgICAgICAgICBib2R5OiBtc2csXG4gICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIG9hdXRoIOmUmeivr+eJueauiuWkhOeQhlxuICAgICAgICAgIGlmIChlcnJvciAmJiBlcnJvckRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICBsb2dzLnN1YnRpdGxlID0gZXJyb3JEZXNjcmlwdGlvblxuICAgICAgICAgICAgaWYgKGlubmVyRXJyKSB7XG4gICAgICAgICAgICAgIGlubmVyRXJyLmNvZGUgPSBlcnJvclxuICAgICAgICAgICAgICBpbm5lckVyci5tc2cgPSBlcnJvckRlc2NyaXB0aW9uXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBlcnIuY29kZSA9IGVycm9yXG4gICAgICAgICAgICAgIGVyci5tZXNzYWdlID0gZXJyb3JEZXNjcmlwdGlvblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmFpbEVyciA9IGlubmVyRXJyIHx8IGVyclxuICAgICAgICAgICAgbG9ncy5jb250ZW50ID0gbWVzc2FnZXMubWFwKG1zZyA9PiAoe1xuICAgICAgICAgICAgICB0eXBlOiAnaW5mbycsXG4gICAgICAgICAgICAgIGJvZHk6IG1zZyxcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgIH1cbiAgICAgICAgICBwcmludEdyb3VwTG9nKGxvZ3MpXG4gICAgICAgICAgdGhyb3cgZmFpbEVyclxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlc2NyaXB0b3IudmFsdWUgPSBhc3luYyBmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcbiAgICAgICAgY29uc3QgaW5uZXJFcnI6IGFueSA9IGdldFJld3JpdGVkRXJyb3Ioe1xuICAgICAgICAgIGVycjogbmV3IEVycm9yKCksXG4gICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgIG1ldGhvZE5hbWU6IGZuTmFtZSxcbiAgICAgICAgICBzb3VyY2VMaW5rLFxuICAgICAgICB9KVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IGZuLmFwcGx5KHRoaXMsIGFyZ3MpXG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGxldCBmYWlsRXJyID0gZXJyXG4gICAgICAgICAgY29uc3QgeyBtZXNzYWdlOiBlcnJNc2csIGVycm9yLCBlcnJvcl9kZXNjcmlwdGlvbjogZXJyb3JEZXNjcmlwdGlvbiB9ID0gZXJyXG4gICAgICAgICAgY29uc3QgbG9nczogYW55ID0ge1xuICAgICAgICAgICAgdGl0bGU6IHRpdGxlIHx8IGAke2NsYXNzTmFtZX0uJHtmbk5hbWV9IGZhaWxlZGAsXG4gICAgICAgICAgICBjb250ZW50OiBbe1xuICAgICAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgICAgICBib2R5OiBlcnIsXG4gICAgICAgICAgICB9XSxcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8g5Y+q54m55q6K5aSE55CGU0RL5Lia5Yqh6YC76L6R5oqb5Ye655qE6ZSZ6K+vLUpTT04gc3RyaW5nXG4gICAgICAgICAgaWYgKGVyck1zZyAmJiAvXlxcey4qXFx9JC8udGVzdChlcnJNc2cpKSB7XG4gICAgICAgICAgICBjb25zdCBtc2cgPSBKU09OLnBhcnNlKGVyck1zZylcbiAgICAgICAgICAgIGxvZ3Muc3VidGl0bGUgPSBtc2dcbiAgICAgICAgICAgIGlmIChtc2cuY29kZSkge1xuICAgICAgICAgICAgICBpZiAoaW5uZXJFcnIpIHtcbiAgICAgICAgICAgICAgICBpbm5lckVyci5jb2RlID0gbXNnLmNvZGVcbiAgICAgICAgICAgICAgICBpbm5lckVyci5tZXNzYWdlID0gbXNnLm1zZ1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGVyci5jb2RlID0gbXNnLmNvZGVcbiAgICAgICAgICAgICAgICBlcnIubWVzc2FnZSA9IG1zZy5tc2dcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBmYWlsRXJyID0gaW5uZXJFcnIgfHwgZXJyXG4gICAgICAgICAgICAgIGxvZ3MuY29udGVudCA9IG1lc3NhZ2VzLm1hcChtc2cgPT4gKHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnaW5mbycsXG4gICAgICAgICAgICAgICAgYm9keTogbXNnLFxuICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBvYXV0aCDplJnor6/nibnmrorlpITnkIZcbiAgICAgICAgICBpZiAoZXJyb3IgJiYgZXJyb3JEZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgbG9ncy5zdWJ0aXRsZSA9IGVycm9yRGVzY3JpcHRpb25cbiAgICAgICAgICAgIGlmIChpbm5lckVycikge1xuICAgICAgICAgICAgICBpbm5lckVyci5jb2RlID0gZXJyb3JcbiAgICAgICAgICAgICAgaW5uZXJFcnIubXNnID0gZXJyb3JEZXNjcmlwdGlvblxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZXJyLmNvZGUgPSBlcnJvclxuICAgICAgICAgICAgICBlcnIubWVzc2FnZSA9IGVycm9yRGVzY3JpcHRpb25cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZhaWxFcnIgPSBpbm5lckVyciB8fCBlcnJcbiAgICAgICAgICAgIGxvZ3MuY29udGVudCA9IG1lc3NhZ2VzLm1hcChtc2cgPT4gKHtcbiAgICAgICAgICAgICAgdHlwZTogJ2luZm8nLFxuICAgICAgICAgICAgICBib2R5OiBtc2csXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICB9XG4gICAgICAgICAgcHJpbnRHcm91cExvZyhsb2dzKVxuICAgICAgICAgIHRocm93IGZhaWxFcnJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIOWcqOWOn+Wni+WghuagiOS4reafpeaJvuijhemlsOWZqOadoeebruW5tui/lOWbnua6kOeggemTvuaOpWxpbmtcbiAqIEBwYXJhbSBlcnJcbiAqL1xuZnVuY3Rpb24gZ2V0U291cmNlTGluayhlcnI6IEVycm9yKSB7XG4gIGxldCBzb3VyY2VMaW5rID0gJydcbiAgY29uc3Qgb3V0dGVyRXJyU3RhY2tzID0gZXJyLnN0YWNrLnNwbGl0KCdcXG4nKVxuICBjb25zdCBpbmRleE9mRGVjb3JhdG9yID0gb3V0dGVyRXJyU3RhY2tzLmZpbmRJbmRleChzdHIgPT4gUkVHX1NUQUNLX0RFQ09SQVRFLnRlc3Qoc3RyKSlcblxuICBpZiAoaW5kZXhPZkRlY29yYXRvciAhPT0gLTEpIHtcbiAgICBjb25zdCBtYXRjaCA9IFJFR19TVEFDS19MSU5LLmV4ZWMob3V0dGVyRXJyU3RhY2tzW2luZGV4T2ZEZWNvcmF0b3IgKyAxXSB8fCAnJylcblxuICAgIHNvdXJjZUxpbmsgPSBtYXRjaCA/IG1hdGNoWzBdIDogJydcbiAgfVxuICByZXR1cm4gc291cmNlTGlua1xufVxuXG4vKipcbiAqIOWcqOWOn+Wni+WghuagiOS4reafpeaJvuijhemlsOWZqOadoeebru+8jOWJlOmZpOWFtuWQjueahOaXoOeUqOWghuagiO+8jOW5tuWwhumTvuaOpeabv+aNouS4uua6kOeggWxpbmtcbiAqIEBwYXJhbSBvcHRpb25zXG4gKi9cbmZ1bmN0aW9uIGdldFJld3JpdGVkRXJyb3Iob3B0aW9uczoge1xuICBlcnI6IEVycm9yO1xuICBjbGFzc05hbWU6IHN0cmluZztcbiAgbWV0aG9kTmFtZTogc3RyaW5nO1xuICBzb3VyY2VMaW5rOiBzdHJpbmc7XG59KSB7XG4gIGNvbnN0IHsgZXJyLCBjbGFzc05hbWUsIG1ldGhvZE5hbWUsIHNvdXJjZUxpbmsgfSA9IG9wdGlvbnNcbiAgLy8g5om+5LiN5Yiw5rqQ56CBbGlua+i/lOWbnm51bGzvvIzlkI7nu63pgLvovpHlsIbmiZPljbDljp/loIbmoIjkv6Hmga9cbiAgaWYgKCFzb3VyY2VMaW5rKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGlubmVyRXJyU3RhY2sgPSBlcnIuc3RhY2suc3BsaXQoJ1xcbicpXG4gIGNvbnN0IFJFR19TVEFDS19JTk5FUl9NRVRIT0QgPSBpc0ZpcmVmb3hcbiAgICA/IC9eY2F0Y2hFcnJvcnNEZWNvcmF0b3JcXC88XFwvZGVzY3JpcHRvci52YWx1ZUAuKlxcZCQvXG4gICAgOiBuZXcgUmVnRXhwKGAke2NsYXNzTmFtZX1cXFxcLmRlc2NyaXB0b3IudmFsdWVcXFxccypcXFxcW2FzXFxcXHMke21ldGhvZE5hbWV9XFxcXF1cXFxccypcXFxcKC4qXFxcXCkkYClcbiAgY29uc3QgUkVHX1NUQUNLX0lOTkVSX01FVEhPRF9XSVRIT1VUX0xJTksgPSBpc0ZpcmVmb3hcbiAgICA/IC9eY2F0Y2hFcnJvcnNEZWNvcmF0b3JcXC88XFwvZGVzY3JpcHRvci52YWx1ZS9cbiAgICA6IG5ldyBSZWdFeHAoYCR7Y2xhc3NOYW1lfVxcXFwuZGVzY3JpcHRvci52YWx1ZVxcXFxzKlxcXFxbYXNcXFxccyR7bWV0aG9kTmFtZX1cXFxcXWApXG4gIGNvbnN0IGluZGV4T2ZTb3VyY2UgPSBpbm5lckVyclN0YWNrLmZpbmRJbmRleChzdHIgPT4gUkVHX1NUQUNLX0lOTkVSX01FVEhPRC50ZXN0KHN0cikpXG4gIGxldCBpbm5lckVycjogRXJyb3JcbiAgaWYgKGluZGV4T2ZTb3VyY2UgIT09IC0xKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHJlYWxFcnJTdGFjayA9IGlubmVyRXJyU3RhY2suZmlsdGVyKCh2LCBpKSA9PiBpID4gaW5kZXhPZlNvdXJjZSlcbiAgICByZWFsRXJyU3RhY2sudW5zaGlmdChpbm5lckVyclN0YWNrW2luZGV4T2ZTb3VyY2VdXG4gICAgICAucmVwbGFjZShSRUdfU1RBQ0tfSU5ORVJfTUVUSE9EX1dJVEhPVVRfTElOSywgYCR7Y2xhc3NOYW1lfS4ke21ldGhvZE5hbWV9YClcbiAgICAgIC5yZXBsYWNlKFJFR19TVEFDS19MSU5LLCBzb3VyY2VMaW5rKSlcbiAgICBpbm5lckVyciA9IG5ldyBFcnJvcigpXG4gICAgaW5uZXJFcnIuc3RhY2sgPSBgJHtpc0ZpcmVmb3ggPyAnQGRlYnVnZ2VyJyA6ICdFcnJvcid9XFxuJHtyZWFsRXJyU3RhY2suam9pbignXFxuJyl9YFxuICB9XG4gIHJldHVybiBpbm5lckVyclxufVxuIl19
@@ -1 +0,0 @@
1
- export * from './decorators';
@@ -1,2 +0,0 @@
1
- export * from './decorators';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9ycydcbiJdfQ==
@@ -1,13 +0,0 @@
1
- import * as constants from './constants';
2
- import * as adapters from './adapters';
3
- import * as cache from './libs/cache';
4
- import * as events from './libs/events';
5
- import * as langEvent from './libs/langEvent';
6
- import * as utils from './libs/util';
7
- import * as helpers from './helpers';
8
- import AbortController from './libs/abortController';
9
- import jwtDecode from 'jwt-decode';
10
- declare const jwt: {
11
- decode: typeof jwtDecode;
12
- };
13
- export { constants, adapters, cache, events, utils, helpers, jwt, AbortController, langEvent };
@@ -1,14 +0,0 @@
1
- import * as constants from './constants';
2
- import * as adapters from './adapters';
3
- import * as cache from './libs/cache';
4
- import * as events from './libs/events';
5
- import * as langEvent from './libs/langEvent';
6
- import * as utils from './libs/util';
7
- import * as helpers from './helpers';
8
- import AbortController from './libs/abortController';
9
- import jwtDecode from 'jwt-decode';
10
- var jwt = {
11
- decode: jwtDecode,
12
- };
13
- export { constants, adapters, cache, events, utils, helpers, jwt, AbortController, langEvent };
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLFNBQVMsTUFBTSxhQUFhLENBQUE7QUFDeEMsT0FBTyxLQUFLLFFBQVEsTUFBTSxZQUFZLENBQUE7QUFDdEMsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxLQUFLLFNBQVMsTUFBTSxrQkFBa0IsQ0FBQTtBQUM3QyxPQUFPLEtBQUssS0FBSyxNQUFNLGFBQWEsQ0FBQTtBQUNwQyxPQUFPLEtBQUssT0FBTyxNQUFNLFdBQVcsQ0FBQTtBQUNwQyxPQUFPLGVBQWUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNwRCxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFFbEMsSUFBTSxHQUFHLEdBQUc7SUFDVixNQUFNLEVBQUUsU0FBUztDQUNsQixDQUFBO0FBRUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjb25zdGFudHMgZnJvbSAnLi9jb25zdGFudHMnXG5pbXBvcnQgKiBhcyBhZGFwdGVycyBmcm9tICcuL2FkYXB0ZXJzJ1xuaW1wb3J0ICogYXMgY2FjaGUgZnJvbSAnLi9saWJzL2NhY2hlJ1xuaW1wb3J0ICogYXMgZXZlbnRzIGZyb20gJy4vbGlicy9ldmVudHMnXG5pbXBvcnQgKiBhcyBsYW5nRXZlbnQgZnJvbSAnLi9saWJzL2xhbmdFdmVudCdcbmltcG9ydCAqIGFzIHV0aWxzIGZyb20gJy4vbGlicy91dGlsJ1xuaW1wb3J0ICogYXMgaGVscGVycyBmcm9tICcuL2hlbHBlcnMnXG5pbXBvcnQgQWJvcnRDb250cm9sbGVyIGZyb20gJy4vbGlicy9hYm9ydENvbnRyb2xsZXInXG5pbXBvcnQgand0RGVjb2RlIGZyb20gJ2p3dC1kZWNvZGUnXG5cbmNvbnN0IGp3dCA9IHtcbiAgZGVjb2RlOiBqd3REZWNvZGUsXG59XG5cbmV4cG9ydCB7IGNvbnN0YW50cywgYWRhcHRlcnMsIGNhY2hlLCBldmVudHMsIHV0aWxzLCBoZWxwZXJzLCBqd3QsIEFib3J0Q29udHJvbGxlciwgbGFuZ0V2ZW50IH1cblxuIl19
@@ -1,9 +0,0 @@
1
- export default class AbortController {
2
- listeners: Array<CallableFunction>;
3
- signal: {
4
- aborted: boolean;
5
- addEventListener: (e: string, f: CallableFunction) => void;
6
- };
7
- constructor();
8
- abort(): void;
9
- }
@@ -1,23 +0,0 @@
1
- var AbortController = (function () {
2
- function AbortController() {
3
- var _this = this;
4
- this.listeners = [];
5
- this.signal = {
6
- aborted: false,
7
- addEventListener: function (e, f) {
8
- if (e === 'abort') {
9
- _this.listeners.push(f);
10
- }
11
- },
12
- };
13
- }
14
- AbortController.prototype.abort = function () {
15
- if (this.signal.aborted)
16
- return;
17
- this.signal.aborted = true;
18
- this.listeners.forEach(function (f) { return f(); });
19
- };
20
- return AbortController;
21
- }());
22
- export default AbortController;
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJvcnRDb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYnMvYWJvcnRDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBV0U7UUFBQSxpQkFBZ0I7UUFWaEIsY0FBUyxHQUE0QixFQUFFLENBQUE7UUFDdkMsV0FBTSxHQUFHO1lBQ1AsT0FBTyxFQUFFLEtBQUs7WUFDZCxnQkFBZ0IsRUFBRSxVQUFDLENBQVMsRUFBRSxDQUFtQjtnQkFDL0MsSUFBSSxDQUFDLEtBQUssT0FBTyxFQUFFO29CQUNqQixLQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtpQkFDdkI7WUFDSCxDQUFDO1NBQ0YsQ0FBQTtJQUVjLENBQUM7SUFFaEIsK0JBQUssR0FBTDtRQUNFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQUUsT0FBTTtRQUUvQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLEVBQUUsRUFBSCxDQUFHLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBQ0gsc0JBQUM7QUFBRCxDQUFDLEFBbkJELElBbUJDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWJvcnRDb250cm9sbGVyIHtcbiAgbGlzdGVuZXJzOiBBcnJheTxDYWxsYWJsZUZ1bmN0aW9uPiA9IFtdXG4gIHNpZ25hbCA9IHtcbiAgICBhYm9ydGVkOiBmYWxzZSxcbiAgICBhZGRFdmVudExpc3RlbmVyOiAoZTogc3RyaW5nLCBmOiBDYWxsYWJsZUZ1bmN0aW9uKSA9PiB7XG4gICAgICBpZiAoZSA9PT0gJ2Fib3J0Jykge1xuICAgICAgICB0aGlzLmxpc3RlbmVycy5wdXNoKGYpXG4gICAgICB9XG4gICAgfSxcbiAgfVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZWxlc3MtY29uc3RydWN0b3JcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIGFib3J0KCkge1xuICAgIGlmICh0aGlzLnNpZ25hbC5hYm9ydGVkKSByZXR1cm5cblxuICAgIHRoaXMuc2lnbmFsLmFib3J0ZWQgPSB0cnVlXG4gICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaChmID0+IGYoKSlcbiAgfVxufVxuIl19
@@ -1,17 +0,0 @@
1
- import { ICloudbaseCache, ICacheConfig } from '@cloudbase/types/cache';
2
- import { KV, Persistence } from '@cloudbase/types';
3
- export declare class CloudbaseCache implements ICloudbaseCache {
4
- keys: KV<string>;
5
- private persistenceTag;
6
- private platformInfo;
7
- private storage;
8
- constructor(config: ICacheConfig);
9
- get mode(): "async" | "sync";
10
- get persistence(): Persistence;
11
- setStore(key: string, value: any, version?: any): void;
12
- setStoreAsync(key: string, value: any, version?: any): Promise<void>;
13
- getStore(key: string, version?: string): any;
14
- getStoreAsync(key: string, version?: string): Promise<any>;
15
- removeStore(key: string): void;
16
- removeStoreAsync(key: string): Promise<void>;
17
- }
@@ -1,258 +0,0 @@
1
- var __extends = (this && this.__extends) || (function () {
2
- var extendStatics = function (d, b) {
3
- extendStatics = Object.setPrototypeOf ||
4
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
- return extendStatics(d, b);
7
- };
8
- return function (d, b) {
9
- if (typeof b !== "function" && b !== null)
10
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
- extendStatics(d, b);
12
- function __() { this.constructor = d; }
13
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
- };
15
- })();
16
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
17
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
18
- return new (P || (P = Promise))(function (resolve, reject) {
19
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
20
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
21
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
22
- step((generator = generator.apply(thisArg, _arguments || [])).next());
23
- });
24
- };
25
- var __generator = (this && this.__generator) || function (thisArg, body) {
26
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
27
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
28
- function verb(n) { return function (v) { return step([n, v]); }; }
29
- function step(op) {
30
- if (f) throw new TypeError("Generator is already executing.");
31
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
- if (y = 0, t) op = [op[0] & 2, t.value];
34
- switch (op[0]) {
35
- case 0: case 1: t = op; break;
36
- case 4: _.label++; return { value: op[1], done: false };
37
- case 5: _.label++; y = op[1]; op = [0]; continue;
38
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
39
- default:
40
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
41
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
42
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
43
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
44
- if (t[2]) _.ops.pop();
45
- _.trys.pop(); continue;
46
- }
47
- op = body.call(thisArg, _);
48
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
49
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
50
- }
51
- };
52
- import { AbstractStorage } from '@cloudbase/adapter-interface';
53
- import { printWarn } from './util';
54
- import { ERRORS, getSdkName } from '../constants';
55
- var TcbCacheObject = (function (_super) {
56
- __extends(TcbCacheObject, _super);
57
- function TcbCacheObject(root) {
58
- var _this = _super.call(this) || this;
59
- _this.root = root;
60
- if (!root.tcbCacheObject) {
61
- root.tcbCacheObject = {};
62
- }
63
- return _this;
64
- }
65
- TcbCacheObject.prototype.setItem = function (key, value) {
66
- this.root.tcbCacheObject[key] = value;
67
- };
68
- TcbCacheObject.prototype.getItem = function (key) {
69
- return this.root.tcbCacheObject[key];
70
- };
71
- TcbCacheObject.prototype.removeItem = function (key) {
72
- delete this.root.tcbCacheObject[key];
73
- };
74
- TcbCacheObject.prototype.clear = function () {
75
- delete this.root.tcbCacheObject;
76
- };
77
- return TcbCacheObject;
78
- }(AbstractStorage));
79
- function createStorage(persistence, adapter) {
80
- switch (persistence) {
81
- case 'local':
82
- if (!adapter.localStorage) {
83
- printWarn(ERRORS.INVALID_PARAMS, 'localStorage is not supported on current platform');
84
- return new TcbCacheObject(adapter.root);
85
- }
86
- return adapter.localStorage;
87
- case 'none':
88
- return new TcbCacheObject(adapter.root);
89
- default:
90
- if (!adapter.localStorage) {
91
- printWarn(ERRORS.INVALID_PARAMS, 'localStorage is not supported on current platform');
92
- return new TcbCacheObject(adapter.root);
93
- }
94
- return adapter.localStorage;
95
- }
96
- }
97
- var CloudbaseCache = (function () {
98
- function CloudbaseCache(config) {
99
- this.keys = {};
100
- var persistence = config.persistence, _a = config.platformInfo, platformInfo = _a === void 0 ? {} : _a, _b = config.keys, keys = _b === void 0 ? {} : _b;
101
- this.platformInfo = platformInfo;
102
- if (!this.storage) {
103
- this.persistenceTag = this.platformInfo.adapter.primaryStorage || persistence;
104
- this.storage = createStorage(this.persistenceTag, this.platformInfo.adapter);
105
- this.keys = keys;
106
- }
107
- }
108
- Object.defineProperty(CloudbaseCache.prototype, "mode", {
109
- get: function () {
110
- return this.storage.mode || 'sync';
111
- },
112
- enumerable: false,
113
- configurable: true
114
- });
115
- Object.defineProperty(CloudbaseCache.prototype, "persistence", {
116
- get: function () {
117
- return this.persistenceTag;
118
- },
119
- enumerable: false,
120
- configurable: true
121
- });
122
- CloudbaseCache.prototype.setStore = function (key, value, version) {
123
- if (this.mode === 'async') {
124
- printWarn(ERRORS.INVALID_OPERATION, 'current platform\'s storage is asynchronous, please use setStoreAsync insteed');
125
- return;
126
- }
127
- if (!this.storage) {
128
- return;
129
- }
130
- try {
131
- var val = {
132
- version: version || 'localCachev1',
133
- content: value,
134
- };
135
- this.storage.setItem(key, JSON.stringify(val));
136
- }
137
- catch (e) {
138
- throw new Error(JSON.stringify({
139
- code: ERRORS.OPERATION_FAIL,
140
- msg: "[".concat(getSdkName(), "][").concat(ERRORS.OPERATION_FAIL, "]setStore failed"),
141
- info: e,
142
- }));
143
- }
144
- return;
145
- };
146
- CloudbaseCache.prototype.setStoreAsync = function (key, value, version) {
147
- return __awaiter(this, void 0, void 0, function () {
148
- var val, e_1;
149
- return __generator(this, function (_a) {
150
- switch (_a.label) {
151
- case 0:
152
- if (!this.storage) {
153
- return [2];
154
- }
155
- _a.label = 1;
156
- case 1:
157
- _a.trys.push([1, 3, , 4]);
158
- val = {
159
- version: version || 'localCachev1',
160
- content: value,
161
- };
162
- return [4, this.storage.setItem(key, JSON.stringify(val))];
163
- case 2:
164
- _a.sent();
165
- return [3, 4];
166
- case 3:
167
- e_1 = _a.sent();
168
- return [2];
169
- case 4: return [2];
170
- }
171
- });
172
- });
173
- };
174
- CloudbaseCache.prototype.getStore = function (key, version) {
175
- var _a;
176
- if (this.mode === 'async') {
177
- printWarn(ERRORS.INVALID_OPERATION, 'current platform\'s storage is asynchronous, please use getStoreAsync insteed');
178
- return;
179
- }
180
- try {
181
- if (typeof process !== 'undefined' && ((_a = process.env) === null || _a === void 0 ? void 0 : _a.tcb_token)) {
182
- return process.env.tcb_token;
183
- }
184
- if (!this.storage) {
185
- return '';
186
- }
187
- }
188
- catch (e) {
189
- return '';
190
- }
191
- version = version || 'localCachev1';
192
- var content = this.storage.getItem(key);
193
- if (!content) {
194
- return '';
195
- }
196
- if (content.indexOf(version) >= 0) {
197
- var d = JSON.parse(content);
198
- return d.content;
199
- }
200
- return '';
201
- };
202
- CloudbaseCache.prototype.getStoreAsync = function (key, version) {
203
- var _a;
204
- return __awaiter(this, void 0, void 0, function () {
205
- var content, d;
206
- return __generator(this, function (_b) {
207
- switch (_b.label) {
208
- case 0:
209
- try {
210
- if (typeof process !== 'undefined' && ((_a = process.env) === null || _a === void 0 ? void 0 : _a.tcb_token)) {
211
- return [2, process.env.tcb_token];
212
- }
213
- if (!this.storage) {
214
- return [2, ''];
215
- }
216
- }
217
- catch (e) {
218
- return [2, ''];
219
- }
220
- version = version || 'localCachev1';
221
- return [4, this.storage.getItem(key)];
222
- case 1:
223
- content = _b.sent();
224
- if (!content) {
225
- return [2, ''];
226
- }
227
- if (content.indexOf(version) >= 0) {
228
- d = JSON.parse(content);
229
- return [2, d.content];
230
- }
231
- return [2, ''];
232
- }
233
- });
234
- });
235
- };
236
- CloudbaseCache.prototype.removeStore = function (key) {
237
- if (this.mode === 'async') {
238
- printWarn(ERRORS.INVALID_OPERATION, 'current platform\'s storage is asynchronous, please use removeStoreAsync insteed');
239
- return;
240
- }
241
- this.storage.removeItem(key);
242
- };
243
- CloudbaseCache.prototype.removeStoreAsync = function (key) {
244
- return __awaiter(this, void 0, void 0, function () {
245
- return __generator(this, function (_a) {
246
- switch (_a.label) {
247
- case 0: return [4, this.storage.removeItem(key)];
248
- case 1:
249
- _a.sent();
250
- return [2];
251
- }
252
- });
253
- });
254
- };
255
- return CloudbaseCache;
256
- }());
257
- export { CloudbaseCache };
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGlicy9jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQW9CLGVBQWUsRUFBdUIsTUFBTSw4QkFBOEIsQ0FBQTtBQUdyRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQ2xDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBS2pEO0lBQTZCLGtDQUFlO0lBRTFDLHdCQUFZLElBQVM7UUFBckIsWUFDRSxpQkFBTyxTQUtSO1FBSkMsS0FBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUE7U0FDekI7O0lBQ0gsQ0FBQztJQUNNLGdDQUFPLEdBQWQsVUFBZSxHQUFXLEVBQUUsS0FBVTtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUE7SUFDdkMsQ0FBQztJQUNNLGdDQUFPLEdBQWQsVUFBZSxHQUFXO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUNNLG1DQUFVLEdBQWpCLFVBQWtCLEdBQVc7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN0QyxDQUFDO0lBQ00sOEJBQUssR0FBWjtRQUNFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUE7SUFDakMsQ0FBQztJQUNILHFCQUFDO0FBQUQsQ0FBQyxBQXJCRCxDQUE2QixlQUFlLEdBcUIzQztBQUlELFNBQVMsYUFBYSxDQUFDLFdBQXdCLEVBQUUsT0FBNEI7SUFDM0UsUUFBUSxXQUFXLEVBQUU7UUFDbkIsS0FBSyxPQUFPO1lBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7Z0JBQ3pCLFNBQVMsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLG1EQUFtRCxDQUFDLENBQUE7Z0JBRXJGLE9BQU8sSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO2FBQ3hDO1lBQ0QsT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFBO1FBQzdCLEtBQUssTUFBTTtZQUNULE9BQU8sSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3pDO1lBQ0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7Z0JBQ3pCLFNBQVMsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLG1EQUFtRCxDQUFDLENBQUE7Z0JBRXJGLE9BQU8sSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO2FBQ3hDO1lBQ0QsT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFBO0tBQzlCO0FBQ0gsQ0FBQztBQUVEO0lBT0Usd0JBQVksTUFBb0I7UUFOekIsU0FBSSxHQUFlLEVBQUUsQ0FBQTtRQU9sQixJQUFBLFdBQVcsR0FBbUMsTUFBTSxZQUF6QyxFQUFFLEtBQWlDLE1BQU0sYUFBdEIsRUFBakIsWUFBWSxtQkFBRyxFQUFFLEtBQUEsRUFBRSxLQUFjLE1BQU0sS0FBWCxFQUFULElBQUksbUJBQUcsRUFBRSxLQUFBLENBQVc7UUFDNUQsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUE7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLElBQUksV0FBVyxDQUFBO1lBQzdFLElBQUksQ0FBQyxPQUFPLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUM1RSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtTQUNqQjtJQUNILENBQUM7SUFJRCxzQkFBSSxnQ0FBSTthQUFSO1lBQ0UsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUE7UUFDcEMsQ0FBQzs7O09BQUE7SUFDRCxzQkFBSSx1Q0FBVzthQUFmO1lBQ0UsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFBO1FBQzVCLENBQUM7OztPQUFBO0lBRU0saUNBQVEsR0FBZixVQUFnQixHQUFXLEVBQUUsS0FBVSxFQUFFLE9BQWE7UUFDcEQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtZQUN6QixTQUFTLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLCtFQUErRSxDQUFDLENBQUE7WUFDcEgsT0FBTTtTQUNQO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsT0FBTTtTQUNQO1FBRUQsSUFBSTtZQUNGLElBQU0sR0FBRyxHQUFHO2dCQUNWLE9BQU8sRUFBRSxPQUFPLElBQUksY0FBYztnQkFDbEMsT0FBTyxFQUFFLEtBQUs7YUFDZixDQUFBO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtTQUMvQztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUM3QixJQUFJLEVBQUUsTUFBTSxDQUFDLGNBQWM7Z0JBQzNCLEdBQUcsRUFBRSxXQUFJLFVBQVUsRUFBRSxlQUFLLE1BQU0sQ0FBQyxjQUFjLHFCQUFrQjtnQkFDakUsSUFBSSxFQUFFLENBQUM7YUFDUixDQUFDLENBQUMsQ0FBQTtTQUNKO1FBRUQsT0FBTTtJQUNSLENBQUM7SUFDWSxzQ0FBYSxHQUExQixVQUEyQixHQUFXLEVBQUUsS0FBVSxFQUFFLE9BQWE7Ozs7Ozt3QkFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7NEJBQ2pCLFdBQU07eUJBQ1A7Ozs7d0JBR08sR0FBRyxHQUFHOzRCQUNWLE9BQU8sRUFBRSxPQUFPLElBQUksY0FBYzs0QkFDbEMsT0FBTyxFQUFFLEtBQUs7eUJBQ2YsQ0FBQTt3QkFDRCxXQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUE7O3dCQUFwRCxTQUFvRCxDQUFBOzs7O3dCQUVwRCxXQUFNOzRCQUdSLFdBQU07Ozs7S0FDUDtJQUNNLGlDQUFRLEdBQWYsVUFBZ0IsR0FBVyxFQUFFLE9BQWdCOztRQUMzQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO1lBQ3pCLFNBQVMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsK0VBQStFLENBQUMsQ0FBQTtZQUNwSCxPQUFNO1NBQ1A7UUFDRCxJQUFJO1lBRUYsSUFBSSxPQUFPLE9BQU8sS0FBSyxXQUFXLEtBQUksTUFBQSxPQUFPLENBQUMsR0FBRywwQ0FBRSxTQUFTLENBQUEsRUFBRTtnQkFDNUQsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQTthQUM3QjtZQUVELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNqQixPQUFPLEVBQUUsQ0FBQTthQUNWO1NBQ0Y7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sRUFBRSxDQUFBO1NBQ1Y7UUFFRCxPQUFPLEdBQUcsT0FBTyxJQUFJLGNBQWMsQ0FBQTtRQUVuQyxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN6QyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osT0FBTyxFQUFFLENBQUE7U0FDVjtRQUVELElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakMsSUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUM3QixPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUE7U0FDakI7UUFDRCxPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFDWSxzQ0FBYSxHQUExQixVQUEyQixHQUFXLEVBQUUsT0FBZ0I7Ozs7Ozs7d0JBQ3RELElBQUk7NEJBRUYsSUFBSSxPQUFPLE9BQU8sS0FBSyxXQUFXLEtBQUksTUFBQSxPQUFPLENBQUMsR0FBRywwQ0FBRSxTQUFTLENBQUEsRUFBRTtnQ0FDNUQsV0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBQTs2QkFDN0I7NEJBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0NBQ2pCLFdBQU8sRUFBRSxFQUFBOzZCQUNWO3lCQUNGO3dCQUFDLE9BQU8sQ0FBQyxFQUFFOzRCQUNWLFdBQU8sRUFBRSxFQUFBO3lCQUNWO3dCQUVELE9BQU8sR0FBRyxPQUFPLElBQUksY0FBYyxDQUFBO3dCQUVuQixXQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFBOzt3QkFBekMsT0FBTyxHQUFHLFNBQStCO3dCQUMvQyxJQUFJLENBQUMsT0FBTyxFQUFFOzRCQUNaLFdBQU8sRUFBRSxFQUFBO3lCQUNWO3dCQUVELElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7NEJBQzNCLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBOzRCQUM3QixXQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUE7eUJBQ2pCO3dCQUNELFdBQU8sRUFBRSxFQUFBOzs7O0tBQ1Y7SUFDTSxvQ0FBVyxHQUFsQixVQUFtQixHQUFXO1FBQzVCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7WUFDekIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxrRkFBa0YsQ0FBQyxDQUFBO1lBQ3ZILE9BQU07U0FDUDtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzlCLENBQUM7SUFDWSx5Q0FBZ0IsR0FBN0IsVUFBOEIsR0FBVzs7Ozs0QkFDdkMsV0FBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBQTs7d0JBQWxDLFNBQWtDLENBQUE7Ozs7O0tBQ25DO0lBQ0gscUJBQUM7QUFBRCxDQUFDLEFBeElELElBd0lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RvcmFnZUludGVyZmFjZSwgQWJzdHJhY3RTdG9yYWdlLCBTREtBZGFwdGVySW50ZXJmYWNlIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB7IElDbG91ZGJhc2VDYWNoZSwgSUNhY2hlQ29uZmlnIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9jYWNoZSdcbmltcG9ydCB7IEtWLCBQZXJzaXN0ZW5jZSwgSUNsb3VkYmFzZVBsYXRmb3JtSW5mbyB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMnXG5pbXBvcnQgeyBwcmludFdhcm4gfSBmcm9tICcuL3V0aWwnXG5pbXBvcnQgeyBFUlJPUlMsIGdldFNka05hbWUgfSBmcm9tICcuLi9jb25zdGFudHMnXG5cbi8qKlxuICogcGVyc2l0ZW5jZT1ub25l5pe255m75b2V5oCB5L+d5a2Y5Zyo5YaF5a2Y5LitXG4gKi9cbmNsYXNzIFRjYkNhY2hlT2JqZWN0IGV4dGVuZHMgQWJzdHJhY3RTdG9yYWdlIHtcbiAgcHJpdmF0ZSByZWFkb25seSByb290OiBhbnlcbiAgY29uc3RydWN0b3Iocm9vdDogYW55KSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMucm9vdCA9IHJvb3RcbiAgICBpZiAoIXJvb3QudGNiQ2FjaGVPYmplY3QpIHtcbiAgICAgIHJvb3QudGNiQ2FjaGVPYmplY3QgPSB7fVxuICAgIH1cbiAgfVxuICBwdWJsaWMgc2V0SXRlbShrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIHRoaXMucm9vdC50Y2JDYWNoZU9iamVjdFtrZXldID0gdmFsdWVcbiAgfVxuICBwdWJsaWMgZ2V0SXRlbShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnJvb3QudGNiQ2FjaGVPYmplY3Rba2V5XVxuICB9XG4gIHB1YmxpYyByZW1vdmVJdGVtKGtleTogc3RyaW5nKSB7XG4gICAgZGVsZXRlIHRoaXMucm9vdC50Y2JDYWNoZU9iamVjdFtrZXldXG4gIH1cbiAgcHVibGljIGNsZWFyKCkge1xuICAgIGRlbGV0ZSB0aGlzLnJvb3QudGNiQ2FjaGVPYmplY3RcbiAgfVxufVxuLyoqXG4gKiDlt6XljoLlh73mlbBcbiAqL1xuZnVuY3Rpb24gY3JlYXRlU3RvcmFnZShwZXJzaXN0ZW5jZTogUGVyc2lzdGVuY2UsIGFkYXB0ZXI6IFNES0FkYXB0ZXJJbnRlcmZhY2UpOiBTdG9yYWdlSW50ZXJmYWNlIHtcbiAgc3dpdGNoIChwZXJzaXN0ZW5jZSkge1xuICAgIGNhc2UgJ2xvY2FsJzpcbiAgICAgIGlmICghYWRhcHRlci5sb2NhbFN0b3JhZ2UpIHtcbiAgICAgICAgcHJpbnRXYXJuKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ2xvY2FsU3RvcmFnZSBpcyBub3Qgc3VwcG9ydGVkIG9uIGN1cnJlbnQgcGxhdGZvcm0nKVxuICAgICAgICAvLyDkuI3mlK/mjIFsb2NhbHN0b3JhZ2XnmoTlubPlj7DpmY3nuqfkuLpub25lXG4gICAgICAgIHJldHVybiBuZXcgVGNiQ2FjaGVPYmplY3QoYWRhcHRlci5yb290KVxuICAgICAgfVxuICAgICAgcmV0dXJuIGFkYXB0ZXIubG9jYWxTdG9yYWdlXG4gICAgY2FzZSAnbm9uZSc6XG4gICAgICByZXR1cm4gbmV3IFRjYkNhY2hlT2JqZWN0KGFkYXB0ZXIucm9vdClcbiAgICBkZWZhdWx0OlxuICAgICAgaWYgKCFhZGFwdGVyLmxvY2FsU3RvcmFnZSkge1xuICAgICAgICBwcmludFdhcm4oRVJST1JTLklOVkFMSURfUEFSQU1TLCAnbG9jYWxTdG9yYWdlIGlzIG5vdCBzdXBwb3J0ZWQgb24gY3VycmVudCBwbGF0Zm9ybScpXG4gICAgICAgIC8vIOS4jeaUr+aMgWxvY2Fsc3RvcmFnZeeahOW5s+WPsOmZjee6p+S4um5vbmVcbiAgICAgICAgcmV0dXJuIG5ldyBUY2JDYWNoZU9iamVjdChhZGFwdGVyLnJvb3QpXG4gICAgICB9XG4gICAgICByZXR1cm4gYWRhcHRlci5sb2NhbFN0b3JhZ2VcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2xvdWRiYXNlQ2FjaGUgaW1wbGVtZW50cyBJQ2xvdWRiYXNlQ2FjaGUge1xuICBwdWJsaWMga2V5czogS1Y8c3RyaW5nPiA9IHt9XG5cbiAgcHJpdmF0ZSBwZXJzaXN0ZW5jZVRhZzogUGVyc2lzdGVuY2VcbiAgcHJpdmF0ZSBwbGF0Zm9ybUluZm86IElDbG91ZGJhc2VQbGF0Zm9ybUluZm9cbiAgcHJpdmF0ZSBzdG9yYWdlOiBTdG9yYWdlSW50ZXJmYWNlXG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBJQ2FjaGVDb25maWcpIHtcbiAgICBjb25zdCB7IHBlcnNpc3RlbmNlLCBwbGF0Zm9ybUluZm8gPSB7fSwga2V5cyA9IHt9IH0gPSBjb25maWdcbiAgICB0aGlzLnBsYXRmb3JtSW5mbyA9IHBsYXRmb3JtSW5mb1xuICAgIGlmICghdGhpcy5zdG9yYWdlKSB7XG4gICAgICB0aGlzLnBlcnNpc3RlbmNlVGFnID0gdGhpcy5wbGF0Zm9ybUluZm8uYWRhcHRlci5wcmltYXJ5U3RvcmFnZSB8fCBwZXJzaXN0ZW5jZVxuICAgICAgdGhpcy5zdG9yYWdlID0gY3JlYXRlU3RvcmFnZSh0aGlzLnBlcnNpc3RlbmNlVGFnLCB0aGlzLnBsYXRmb3JtSW5mby5hZGFwdGVyKVxuICAgICAgdGhpcy5rZXlzID0ga2V5c1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogQGdldHRlciBzdG9yYWdl5qih5byPLeWQjOatpS/lvILmraVcbiAgICovXG4gIGdldCBtb2RlKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2UubW9kZSB8fCAnc3luYydcbiAgfVxuICBnZXQgcGVyc2lzdGVuY2UoKTogUGVyc2lzdGVuY2Uge1xuICAgIHJldHVybiB0aGlzLnBlcnNpc3RlbmNlVGFnXG4gIH1cblxuICBwdWJsaWMgc2V0U3RvcmUoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIHZlcnNpb24/OiBhbnkpIHtcbiAgICBpZiAodGhpcy5tb2RlID09PSAnYXN5bmMnKSB7XG4gICAgICBwcmludFdhcm4oRVJST1JTLklOVkFMSURfT1BFUkFUSU9OLCAnY3VycmVudCBwbGF0Zm9ybVxcJ3Mgc3RvcmFnZSBpcyBhc3luY2hyb25vdXMsIHBsZWFzZSB1c2Ugc2V0U3RvcmVBc3luYyBpbnN0ZWVkJylcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAoIXRoaXMuc3RvcmFnZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHZhbCA9IHtcbiAgICAgICAgdmVyc2lvbjogdmVyc2lvbiB8fCAnbG9jYWxDYWNoZXYxJyxcbiAgICAgICAgY29udGVudDogdmFsdWUsXG4gICAgICB9XG4gICAgICB0aGlzLnN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KHZhbCkpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgY29kZTogRVJST1JTLk9QRVJBVElPTl9GQUlMLFxuICAgICAgICBtc2c6IGBbJHtnZXRTZGtOYW1lKCl9XVske0VSUk9SUy5PUEVSQVRJT05fRkFJTH1dc2V0U3RvcmUgZmFpbGVkYCxcbiAgICAgICAgaW5mbzogZSxcbiAgICAgIH0pKVxuICAgIH1cblxuICAgIHJldHVyblxuICB9XG4gIHB1YmxpYyBhc3luYyBzZXRTdG9yZUFzeW5jKGtleTogc3RyaW5nLCB2YWx1ZTogYW55LCB2ZXJzaW9uPzogYW55KSB7XG4gICAgaWYgKCF0aGlzLnN0b3JhZ2UpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB2YWwgPSB7XG4gICAgICAgIHZlcnNpb246IHZlcnNpb24gfHwgJ2xvY2FsQ2FjaGV2MScsXG4gICAgICAgIGNvbnRlbnQ6IHZhbHVlLFxuICAgICAgfVxuICAgICAgYXdhaXQgdGhpcy5zdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeSh2YWwpKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHJldHVyblxuICB9XG4gIHB1YmxpYyBnZXRTdG9yZShrZXk6IHN0cmluZywgdmVyc2lvbj86IHN0cmluZykge1xuICAgIGlmICh0aGlzLm1vZGUgPT09ICdhc3luYycpIHtcbiAgICAgIHByaW50V2FybihFUlJPUlMuSU5WQUxJRF9PUEVSQVRJT04sICdjdXJyZW50IHBsYXRmb3JtXFwncyBzdG9yYWdlIGlzIGFzeW5jaHJvbm91cywgcGxlYXNlIHVzZSBnZXRTdG9yZUFzeW5jIGluc3RlZWQnKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAvLyDmtYvor5XnlKjkvovkvb/nlKhcbiAgICAgIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgcHJvY2Vzcy5lbnY/LnRjYl90b2tlbikge1xuICAgICAgICByZXR1cm4gcHJvY2Vzcy5lbnYudGNiX3Rva2VuXG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5zdG9yYWdlKSB7XG4gICAgICAgIHJldHVybiAnJ1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiAnJ1xuICAgIH1cblxuICAgIHZlcnNpb24gPSB2ZXJzaW9uIHx8ICdsb2NhbENhY2hldjEnXG5cbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5zdG9yYWdlLmdldEl0ZW0oa2V5KVxuICAgIGlmICghY29udGVudCkge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuXG4gICAgaWYgKGNvbnRlbnQuaW5kZXhPZih2ZXJzaW9uKSA+PSAwKSB7XG4gICAgICBjb25zdCBkID0gSlNPTi5wYXJzZShjb250ZW50KVxuICAgICAgcmV0dXJuIGQuY29udGVudFxuICAgIH1cbiAgICByZXR1cm4gJydcbiAgfVxuICBwdWJsaWMgYXN5bmMgZ2V0U3RvcmVBc3luYyhrZXk6IHN0cmluZywgdmVyc2lvbj86IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICAvLyDmtYvor5XnlKjkvovkvb/nlKhcbiAgICAgIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgcHJvY2Vzcy5lbnY/LnRjYl90b2tlbikge1xuICAgICAgICByZXR1cm4gcHJvY2Vzcy5lbnYudGNiX3Rva2VuXG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5zdG9yYWdlKSB7XG4gICAgICAgIHJldHVybiAnJ1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiAnJ1xuICAgIH1cblxuICAgIHZlcnNpb24gPSB2ZXJzaW9uIHx8ICdsb2NhbENhY2hldjEnXG5cbiAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgdGhpcy5zdG9yYWdlLmdldEl0ZW0oa2V5KVxuICAgIGlmICghY29udGVudCkge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuXG4gICAgaWYgKGNvbnRlbnQuaW5kZXhPZih2ZXJzaW9uKSA+PSAwKSB7XG4gICAgICBjb25zdCBkID0gSlNPTi5wYXJzZShjb250ZW50KVxuICAgICAgcmV0dXJuIGQuY29udGVudFxuICAgIH1cbiAgICByZXR1cm4gJydcbiAgfVxuICBwdWJsaWMgcmVtb3ZlU3RvcmUoa2V5OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5tb2RlID09PSAnYXN5bmMnKSB7XG4gICAgICBwcmludFdhcm4oRVJST1JTLklOVkFMSURfT1BFUkFUSU9OLCAnY3VycmVudCBwbGF0Zm9ybVxcJ3Mgc3RvcmFnZSBpcyBhc3luY2hyb25vdXMsIHBsZWFzZSB1c2UgcmVtb3ZlU3RvcmVBc3luYyBpbnN0ZWVkJylcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLnN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpXG4gIH1cbiAgcHVibGljIGFzeW5jIHJlbW92ZVN0b3JlQXN5bmMoa2V5OiBzdHJpbmcpIHtcbiAgICBhd2FpdCB0aGlzLnN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpXG4gIH1cbn1cbiJdfQ==