@cloudbase/utilities 2.5.7-beta.0 → 2.5.20-beta.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.
- package/.eslintignore +2 -0
- package/.eslintrc.js +15 -0
- package/dist/{adapters → cjs/adapters}/index.js +1 -1
- package/dist/cjs/adapters/platforms/web.js +213 -0
- package/dist/cjs/constants/common.js +24 -0
- package/dist/cjs/constants/errors.js +12 -0
- package/dist/{constants → cjs/constants}/index.js +1 -1
- package/dist/cjs/helpers/decorators.js +238 -0
- package/dist/{helpers → cjs/helpers}/index.js +1 -1
- package/dist/{index.js → cjs/index.js} +1 -1
- package/dist/cjs/libs/cache.js +259 -0
- package/dist/cjs/libs/events.js +104 -0
- package/dist/cjs/libs/util.js +221 -0
- package/dist/esm/adapters/index.d.ts +13 -0
- package/dist/esm/adapters/index.js +27 -0
- package/dist/esm/adapters/platforms/web.d.ts +15 -0
- package/dist/esm/adapters/platforms/web.js +209 -0
- package/dist/esm/constants/common.d.ts +6 -0
- package/dist/esm/constants/common.js +17 -0
- package/dist/esm/constants/errors.d.ts +8 -0
- package/dist/esm/constants/errors.js +9 -0
- package/dist/esm/constants/index.d.ts +3 -0
- package/dist/esm/constants/index.js +4 -0
- package/dist/esm/helpers/decorators.d.ts +11 -0
- package/dist/esm/helpers/decorators.js +234 -0
- package/dist/esm/helpers/index.d.ts +1 -0
- package/dist/esm/helpers/index.js +2 -0
- package/dist/esm/index.d.ts +11 -0
- package/dist/esm/index.js +12 -0
- package/dist/esm/libs/cache.d.ts +17 -0
- package/dist/esm/libs/cache.js +256 -0
- package/dist/esm/libs/events.d.ts +27 -0
- package/dist/esm/libs/events.js +98 -0
- package/dist/esm/libs/util.d.ts +35 -0
- package/dist/esm/libs/util.js +194 -0
- package/package.json +6 -16
- package/src/adapters/index.ts +28 -0
- package/src/adapters/platforms/web.ts +182 -0
- package/src/constants/common.ts +21 -0
- package/src/constants/errors.ts +8 -0
- package/src/constants/index.ts +4 -0
- package/src/global.d.ts +3 -0
- package/src/helpers/decorators.ts +228 -0
- package/src/helpers/index.ts +1 -0
- package/src/index.ts +22 -0
- package/src/libs/cache.ts +192 -0
- package/src/libs/events.ts +154 -0
- package/src/libs/util.ts +216 -0
- package/tsconfig.esm.json +16 -0
- package/tsconfig.json +21 -0
- package/dist/adapters/platforms/web.js +0 -213
- package/dist/constants/common.js +0 -24
- package/dist/constants/errors.js +0 -12
- package/dist/helpers/decorators.js +0 -238
- package/dist/libs/cache.js +0 -259
- package/dist/libs/events.js +0 -104
- package/dist/libs/util.js +0 -221
- /package/dist/{adapters → cjs/adapters}/index.d.ts +0 -0
- /package/dist/{adapters → cjs/adapters}/platforms/web.d.ts +0 -0
- /package/dist/{constants → cjs/constants}/common.d.ts +0 -0
- /package/dist/{constants → cjs/constants}/errors.d.ts +0 -0
- /package/dist/{constants → cjs/constants}/index.d.ts +0 -0
- /package/dist/{helpers → cjs/helpers}/decorators.d.ts +0 -0
- /package/dist/{helpers → cjs/helpers}/index.d.ts +0 -0
- /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
- /package/dist/{libs → cjs/libs}/cache.d.ts +0 -0
- /package/dist/{libs → cjs/libs}/events.d.ts +0 -0
- /package/dist/{libs → cjs/libs}/util.d.ts +0 -0
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
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;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.catchErrorsDecorator = void 0;
|
|
40
|
-
var util_1 = require("../libs/util");
|
|
41
|
-
var constants_1 = require("../constants");
|
|
42
|
-
var isFirefox = false;
|
|
43
|
-
if (typeof navigator !== 'undefined' && navigator.userAgent) {
|
|
44
|
-
isFirefox = navigator.userAgent.indexOf('Firefox') !== -1;
|
|
45
|
-
}
|
|
46
|
-
var REG_STACK_DECORATE = isFirefox
|
|
47
|
-
? /(\.js\/)?__decorate(\$\d+)?<@.*\d$/
|
|
48
|
-
: /(\/\w+\.js\.)?__decorate(\$\d+)?\s*\(.*\)$/;
|
|
49
|
-
var REG_STACK_LINK = /https?:\/\/.+:\d*\/.*\.js:\d+:\d+/;
|
|
50
|
-
function catchErrorsDecorator(options) {
|
|
51
|
-
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;
|
|
52
|
-
return function (target, methodName, descriptor) {
|
|
53
|
-
if (!constants_1.IS_DEBUG_MODE) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
var className = customInfo.className || target.constructor.name;
|
|
57
|
-
var fnName = customInfo.methodName || methodName;
|
|
58
|
-
var fn = descriptor.value;
|
|
59
|
-
var sourceLink = getSourceLink(new Error());
|
|
60
|
-
if (mode === 'sync') {
|
|
61
|
-
descriptor.value = function () {
|
|
62
|
-
var args = [];
|
|
63
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
64
|
-
args[_i] = arguments[_i];
|
|
65
|
-
}
|
|
66
|
-
var innerErr = getRewritedError({
|
|
67
|
-
err: new Error(),
|
|
68
|
-
className: className,
|
|
69
|
-
methodName: fnName,
|
|
70
|
-
sourceLink: sourceLink,
|
|
71
|
-
});
|
|
72
|
-
try {
|
|
73
|
-
return fn.apply(this, args);
|
|
74
|
-
}
|
|
75
|
-
catch (err) {
|
|
76
|
-
var failErr = err;
|
|
77
|
-
var errMsg = err.message, error = err.error, errorDescription = err.error_description;
|
|
78
|
-
var logs = {
|
|
79
|
-
title: title || className + "." + fnName + " failed",
|
|
80
|
-
content: [{
|
|
81
|
-
type: 'error',
|
|
82
|
-
body: err,
|
|
83
|
-
}],
|
|
84
|
-
};
|
|
85
|
-
if (errMsg && /^\{.*\}$/.test(errMsg)) {
|
|
86
|
-
var msg = JSON.parse(errMsg);
|
|
87
|
-
logs.subtitle = errMsg;
|
|
88
|
-
if (msg.code) {
|
|
89
|
-
if (innerErr) {
|
|
90
|
-
innerErr.code = msg.code;
|
|
91
|
-
innerErr.msg = msg.msg;
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
err.code = msg.code;
|
|
95
|
-
err.message = msg.msg;
|
|
96
|
-
}
|
|
97
|
-
failErr = innerErr || err;
|
|
98
|
-
logs.content = messages.map(function (msg) { return ({
|
|
99
|
-
type: 'info',
|
|
100
|
-
body: msg,
|
|
101
|
-
}); });
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
if (error && errorDescription) {
|
|
105
|
-
logs.subtitle = errorDescription;
|
|
106
|
-
if (innerErr) {
|
|
107
|
-
innerErr.code = error;
|
|
108
|
-
innerErr.msg = errorDescription;
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
err.code = error;
|
|
112
|
-
err.message = errorDescription;
|
|
113
|
-
}
|
|
114
|
-
failErr = innerErr || err;
|
|
115
|
-
logs.content = messages.map(function (msg) { return ({
|
|
116
|
-
type: 'info',
|
|
117
|
-
body: msg,
|
|
118
|
-
}); });
|
|
119
|
-
}
|
|
120
|
-
util_1.printGroupLog(logs);
|
|
121
|
-
throw failErr;
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
descriptor.value = function () {
|
|
127
|
-
var args = [];
|
|
128
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
129
|
-
args[_i] = arguments[_i];
|
|
130
|
-
}
|
|
131
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
132
|
-
var innerErr, err_1, failErr, errMsg, error, errorDescription, logs, msg;
|
|
133
|
-
return __generator(this, function (_a) {
|
|
134
|
-
switch (_a.label) {
|
|
135
|
-
case 0:
|
|
136
|
-
innerErr = getRewritedError({
|
|
137
|
-
err: new Error(),
|
|
138
|
-
className: className,
|
|
139
|
-
methodName: fnName,
|
|
140
|
-
sourceLink: sourceLink,
|
|
141
|
-
});
|
|
142
|
-
_a.label = 1;
|
|
143
|
-
case 1:
|
|
144
|
-
_a.trys.push([1, 3, , 4]);
|
|
145
|
-
return [4, fn.apply(this, args)];
|
|
146
|
-
case 2: return [2, _a.sent()];
|
|
147
|
-
case 3:
|
|
148
|
-
err_1 = _a.sent();
|
|
149
|
-
failErr = err_1;
|
|
150
|
-
errMsg = err_1.message, error = err_1.error, errorDescription = err_1.error_description;
|
|
151
|
-
logs = {
|
|
152
|
-
title: title || className + "." + fnName + " failed",
|
|
153
|
-
content: [{
|
|
154
|
-
type: 'error',
|
|
155
|
-
body: err_1,
|
|
156
|
-
}],
|
|
157
|
-
};
|
|
158
|
-
if (errMsg && /^\{.*\}$/.test(errMsg)) {
|
|
159
|
-
msg = JSON.parse(errMsg);
|
|
160
|
-
logs.subtitle = msg;
|
|
161
|
-
if (msg.code) {
|
|
162
|
-
if (innerErr) {
|
|
163
|
-
innerErr.code = msg.code;
|
|
164
|
-
innerErr.message = msg.msg;
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
err_1.code = msg.code;
|
|
168
|
-
err_1.message = msg.msg;
|
|
169
|
-
}
|
|
170
|
-
failErr = innerErr || err_1;
|
|
171
|
-
logs.content = messages.map(function (msg) { return ({
|
|
172
|
-
type: 'info',
|
|
173
|
-
body: msg,
|
|
174
|
-
}); });
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
if (error && errorDescription) {
|
|
178
|
-
logs.subtitle = errorDescription;
|
|
179
|
-
if (innerErr) {
|
|
180
|
-
innerErr.code = error;
|
|
181
|
-
innerErr.msg = errorDescription;
|
|
182
|
-
}
|
|
183
|
-
else {
|
|
184
|
-
err_1.code = error;
|
|
185
|
-
err_1.message = errorDescription;
|
|
186
|
-
}
|
|
187
|
-
failErr = innerErr || err_1;
|
|
188
|
-
logs.content = messages.map(function (msg) { return ({
|
|
189
|
-
type: 'info',
|
|
190
|
-
body: msg,
|
|
191
|
-
}); });
|
|
192
|
-
}
|
|
193
|
-
util_1.printGroupLog(logs);
|
|
194
|
-
throw failErr;
|
|
195
|
-
case 4: return [2];
|
|
196
|
-
}
|
|
197
|
-
});
|
|
198
|
-
});
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
exports.catchErrorsDecorator = catchErrorsDecorator;
|
|
204
|
-
function getSourceLink(err) {
|
|
205
|
-
var sourceLink = '';
|
|
206
|
-
var outterErrStacks = err.stack.split('\n');
|
|
207
|
-
var indexOfDecorator = outterErrStacks.findIndex(function (str) { return REG_STACK_DECORATE.test(str); });
|
|
208
|
-
if (indexOfDecorator !== -1) {
|
|
209
|
-
var match = REG_STACK_LINK.exec(outterErrStacks[indexOfDecorator + 1] || '');
|
|
210
|
-
sourceLink = match ? match[0] : '';
|
|
211
|
-
}
|
|
212
|
-
return sourceLink;
|
|
213
|
-
}
|
|
214
|
-
function getRewritedError(options) {
|
|
215
|
-
var err = options.err, className = options.className, methodName = options.methodName, sourceLink = options.sourceLink;
|
|
216
|
-
if (!sourceLink) {
|
|
217
|
-
return null;
|
|
218
|
-
}
|
|
219
|
-
var innerErrStack = err.stack.split('\n');
|
|
220
|
-
var REG_STACK_INNER_METHOD = isFirefox
|
|
221
|
-
? /^catchErrorsDecorator\/<\/descriptor.value@.*\d$/
|
|
222
|
-
: new RegExp(className + "\\.descriptor.value\\s*\\[as\\s" + methodName + "\\]\\s*\\(.*\\)$");
|
|
223
|
-
var REG_STACK_INNER_METHOD_WITHOUT_LINK = isFirefox
|
|
224
|
-
? /^catchErrorsDecorator\/<\/descriptor.value/
|
|
225
|
-
: new RegExp(className + "\\.descriptor.value\\s*\\[as\\s" + methodName + "\\]");
|
|
226
|
-
var indexOfSource = innerErrStack.findIndex(function (str) { return REG_STACK_INNER_METHOD.test(str); });
|
|
227
|
-
var innerErr;
|
|
228
|
-
if (indexOfSource !== -1) {
|
|
229
|
-
var realErrStack = innerErrStack.filter(function (v, i) { return i > indexOfSource; });
|
|
230
|
-
realErrStack.unshift(innerErrStack[indexOfSource]
|
|
231
|
-
.replace(REG_STACK_INNER_METHOD_WITHOUT_LINK, className + "." + methodName)
|
|
232
|
-
.replace(REG_STACK_LINK, sourceLink));
|
|
233
|
-
innerErr = new Error();
|
|
234
|
-
innerErr.stack = (isFirefox ? '@debugger' : 'Error') + "\n" + realErrStack.join('\n');
|
|
235
|
-
}
|
|
236
|
-
return innerErr;
|
|
237
|
-
}
|
|
238
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL2RlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUNBQTRDO0FBQzVDLDBDQUE0QztBQVk1QyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUE7QUFDckIsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDLFNBQVMsRUFBRTtJQUMzRCxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7Q0FDMUQ7QUFJRCxJQUFNLGtCQUFrQixHQUFHLFNBQVM7SUFDbEMsQ0FBQyxDQUFDLG9DQUFvQztJQUN0QyxDQUFDLENBQUMsNENBQTRDLENBQUE7QUFDaEQsSUFBTSxjQUFjLEdBQUcsbUNBQW1DLENBQUE7QUFLMUQsU0FBZ0Isb0JBQW9CLENBQUMsT0FBcUM7SUFDaEUsSUFBQSxLQUEwRCxPQUFPLEtBQW5ELEVBQWQsSUFBSSxtQkFBRyxPQUFPLEtBQUEsRUFBRSxLQUEwQyxPQUFPLFdBQWxDLEVBQWYsVUFBVSxtQkFBRyxFQUFFLEtBQUEsRUFBRSxLQUFLLEdBQW9CLE9BQU8sTUFBM0IsRUFBRSxLQUFrQixPQUFPLFNBQVosRUFBYixRQUFRLG1CQUFHLEVBQUUsS0FBQSxDQUFZO0lBRXpFLE9BQU8sVUFDTCxNQUFXLEVBQ1gsVUFBa0IsRUFDbEIsVUFBNkM7UUFHN0MsSUFBSSxDQUFDLHlCQUFhLEVBQUU7WUFDbEIsT0FBTTtTQUNQO1FBQ0QsSUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQTtRQUNqRSxJQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQTtRQUNsRCxJQUFNLEVBQUUs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UUFDOUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFJLFNBQVMsdUNBQWtDLFVBQVUsUUFBSyxDQUFDLENBQUE7SUFDN0UsSUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxVQUFBLEdBQUcsSUFBSSxPQUFBLHNCQUFzQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBaEMsQ0FBZ0MsQ0FBQyxDQUFBO0lBQ3RGLElBQUksUUFBZSxDQUFBO0lBQ25CLElBQUksYUFBYSxLQUFLLENBQUMsQ0FBQyxFQUFFO1FBRXhCLElBQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxHQUFHLGFBQWEsRUFBakIsQ0FBaUIsQ0FBQyxDQUFBO1FBQ3RFLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQzthQUM5QyxPQUFPLENBQUMsbUNBQW1DLEVBQUssU0FBUyxTQUFJLFVBQVksQ0FBQzthQUMxRSxPQUFPLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUE7UUFDdkMsUUFBUSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUE7UUFDdEIsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLFdBQUssWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUcsQ0FBQTtLQUNwRjtJQUNELE9BQU8sUUFBUSxDQUFBO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcmludEdyb3VwTG9nIH0gZnJvbSAnLi4vbGlicy91dGlsJ1xuaW1wb3J0IHsgSVNfREVCVUdfTU9ERSB9IGZyb20gJy4uL2NvbnN0YW50cydcblxuaW50ZXJmYWNlIElDYXRjaEVycm9yc0RlY29yYXRvck9wdGlvbnMge1xuICBtb2RlPzogJ3N5bmMnIHwgJ2FzeW5jJztcbiAgY3VzdG9tSW5mbz86IHtcbiAgICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgbWV0aG9kTmFtZT86IHN0cmluZztcbiAgfTtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIG1lc3NhZ2VzPzogc3RyaW5nW107XG59XG4vLyBmaXJlZm9455qEc3RhY2vmoLzlvI/kuI5jaHJvbWXkuI3lkIxcbmxldCBpc0ZpcmVmb3ggPSBmYWxzZVxuaWYgKHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIG5hdmlnYXRvci51c2VyQWdlbnQpIHtcbiAgaXNGaXJlZm94ID0gbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdGaXJlZm94JykgIT09IC0xXG59XG4vKipcbiAqIGRlY29yYXRl5Zyoc3RhY2vkuK3kuIDoiKzpg73nibnlrprnmoTop4TojINcbiAqL1xuY29uc3QgUkVHX1NUQUNLX0RFQ09SQVRFID0gaXNGaXJlZm94XG4gID8gLyhcXC5qc1xcLyk/X19kZWNvcmF0ZShcXCRcXGQrKT88QC4qXFxkJC9cbiAgOiAvKFxcL1xcdytcXC5qc1xcLik/X19kZWNvcmF0ZShcXCRcXGQrKT9cXHMqXFwoLipcXCkkL1xuY29uc3QgUkVHX1NUQUNLX0xJTksgPSAvaHR0cHM/OlxcL1xcLy4rOlxcZCpcXC8uKlxcLmpzOlxcZCs6XFxkKy9cbi8qKlxuICogZGVidWfmqKHlvI/lvLrljJbml6Xlv5fkv6Hmga9cbiAqIEBwYXJhbSBvcHRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYXRjaEVycm9yc0RlY29yYXRvcihvcHRpb25zOiBJQ2F0Y2hFcnJvcnNEZWNvcmF0b3JPcHRpb25zKSB7XG4gIGNvbnN0IHsgbW9kZSA9ICdhc3luYycsIGN1c3RvbUluZm8gPSB7fSwgdGl0bGUsIG1lc3NhZ2VzID0gW10gfSA9IG9wdGlvbnNcblxuICByZXR1cm4gZnVuY3Rpb24gKFxuICAgIHRhcmdldDogYW55LFxuICAgIG1ldGhvZE5hbWU6IHN0cmluZyxcbiAgICBkZXNjcmlwdG9yOiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxGdW5jdGlvbj5cbiAgKSB7XG4gICAgLy8g55Sf5Lqn546v5aKD56aB55SoXG4gICAgaWYgKCFJU19ERUJVR19NT0RFKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY29uc3QgY2xhc3NOYW1lID0gY3VzdG9tSW5mby5jbGFzc05hbWUgfHwgdGFyZ2V0LmNvbnN0cnVjdG9yLm5hbWVcbiAgICBjb25zdCBmbk5hbWUgPSBjdXN0b21JbmZvLm1ldGhvZE5hbWUgfHwgbWV0aG9kTmFtZVxuICAgIGNvbnN0IGZuID0gZGVzY3JpcHRvci52YWx1ZVxuXG4gICAgLy8g6KKrZGVjb3JhdG9y6KOF6aWw55qE5rqQ56CBbGlua1xuICAgIC8vIOWcqGRlc2NyaXB0b3IudmFsdWXlpJbpg6jmraTlpITliJvlu7rnmoRzdGFja+WxguasoeWPr+inpui+vua6kOeggVxuICAgIC8vIOiAjGRlc2NyaXB0b3IudmFsdWXlhoXpg6jmnInlj6/og73nlLHkuo5zdGFja+Wkqua3seaXoOazleinpui+vlxuICAgIGNvbnN0IHNvdXJjZUxpbmsgPSBnZXRTb3VyY2VMaW5rKG5ldyBFcnJvcigpKVxuXG4gICAgaWYgKG1vZGUgPT09ICdzeW5jJykge1xuICAgICAgZGVzY3JpcHRvci52YWx1ZSA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgICAvLyDmraTlpITnmoRzdGFja+S9nOeUqOS4u+imgeaYr+S4uuS6huiOt+WPluiiq2RlY29yYXRvcuijhemlsOeahOa6kOeggWNsYXNz5ZKMbWV0aG9k5ZCN56ewXG4gICAgICAgIGNvbnN0IGlubmVyRXJyOiBhbnkgPSBnZXRSZXdyaXRlZEVycm9yKHtcbiAgICAgICAgICBlcnI6IG5ldyBFcnJvcigpLFxuICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICBtZXRob2ROYW1lOiBmbk5hbWUsXG4gICAgICAgICAgc291cmNlTGluayxcbiAgICAgICAgfSlcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJncylcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgbGV0IGZhaWxFcnIgPSBlcnJcbiAgICAgICAgICBjb25zdCB7IG1lc3NhZ2U6IGVyck1zZywgZXJyb3IsIGVycm9yX2Rlc2NyaXB0aW9uOiBlcnJvckRlc2NyaXB0aW9uIH0gPSBlcnJcbiAgICAgICAgICBjb25zdCBsb2dzOiBhbnkgPSB7XG4gICAgICAgICAgICB0aXRsZTogdGl0bGUgfHwgYCR7Y2xhc3NOYW1lfS4ke2ZuTmFtZX0gZmFpbGVkYCxcbiAgICAgICAgICAgIGNvbnRlbnQ6IFt7XG4gICAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgICAgIGJvZHk6IGVycixcbiAgICAgICAgICAgIH1dLFxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyDlj6rnibnmrorlpITnkIZTREvkuJrliqHpgLvovpHmipvlh7rnmoTplJnor68tSlNPTiBzdHJpbmdcbiAgICAgICAgICBpZiAoZXJyTXNnICYmIC9eXFx7LipcXH0kLy50ZXN0KGVyck1zZykpIHtcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IEpTT04ucGFyc2UoZXJyTXNnKVxuICAgICAgICAgICAgbG9ncy5zdWJ0aXRsZSA9IGVyck1zZ1xuICAgICAgICAgICAgaWYgKG1zZy5jb2RlKSB7XG4gICAgICAgICAgICAgIGlmIChpbm5lckVycikge1xuICAgICAgICAgICAgICAgIGlubmVyRXJyLmNvZGUgPSBtc2cuY29kZVxuICAgICAgICAgICAgICAgIGlubmVyRXJyLm1zZyA9IG1zZy5tc2dcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlcnIuY29kZSA9IG1zZy5jb2RlXG4gICAgICAgICAgICAgICAgZXJyLm1lc3NhZ2UgPSBtc2cubXNnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZmFpbEVyciA9IGlubmVyRXJyIHx8IGVyclxuICAgICAgICAgICAgICBsb2dzLmNvbnRlbnQgPSBtZXNzYWdlcy5tYXAobXNnID0+ICh7XG4gICAgICAgICAgICAgICAgdHlwZTogJ2luZm8nLFxuICAgICAgICAgICAgICAgIGJvZHk6IG1zZyxcbiAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gb2F1dGgg6ZSZ6K+v54m55q6K5aSE55CGXG4gICAgICAgICAgaWYgKGVycm9yICYmIGVycm9yRGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIGxvZ3Muc3VidGl0bGUgPSBlcnJvckRlc2NyaXB0aW9uXG4gICAgICAgICAgICBpZiAoaW5uZXJFcnIpIHtcbiAgICAgICAgICAgICAgaW5uZXJFcnIuY29kZSA9IGVycm9yXG4gICAgICAgICAgICAgIGlubmVyRXJyLm1zZyA9IGVycm9yRGVzY3JpcHRpb25cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGVyci5jb2RlID0gZXJyb3JcbiAgICAgICAgICAgICAgZXJyLm1lc3NhZ2UgPSBlcnJvckRlc2NyaXB0aW9uXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmYWlsRXJyID0gaW5uZXJFcnIgfHwgZXJyXG4gICAgICAgICAgICBsb2dzLmNvbnRlbnQgPSBtZXNzYWdlcy5tYXAobXNnID0+ICh7XG4gICAgICAgICAgICAgIHR5cGU6ICdpbmZvJyxcbiAgICAgICAgICAgICAgYm9keTogbXNnLFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgfVxuICAgICAgICAgIHByaW50R3JvdXBMb2cobG9ncylcbiAgICAgICAgICB0aHJvdyBmYWlsRXJyXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZGVzY3JpcHRvci52YWx1ZSA9IGFzeW5jIGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgICBjb25zdCBpbm5lckVycjogYW55ID0gZ2V0UmV3cml0ZWRFcnJvcih7XG4gICAgICAgICAgZXJyOiBuZXcgRXJyb3IoKSxcbiAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgbWV0aG9kTmFtZTogZm5OYW1lLFxuICAgICAgICAgIHNvdXJjZUxpbmssXG4gICAgICAgIH0pXG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gYXdhaXQgZm4uYXBwbHkodGhpcywgYXJncylcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgbGV0IGZhaWxFcnIgPSBlcnJcbiAgICAgICAgICBjb25zdCB7IG1lc3NhZ2U6IGVyck1zZywgZXJyb3IsIGVycm9yX2Rlc2NyaXB0aW9uOiBlcnJvckRlc2NyaXB0aW9uIH0gPSBlcnJcbiAgICAgICAgICBjb25zdCBsb2dzOiBhbnkgPSB7XG4gICAgICAgICAgICB0aXRsZTogdGl0bGUgfHwgYCR7Y2xhc3NOYW1lfS4ke2ZuTmFtZX0gZmFpbGVkYCxcbiAgICAgICAgICAgIGNvbnRlbnQ6IFt7XG4gICAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgICAgIGJvZHk6IGVycixcbiAgICAgICAgICAgIH1dLFxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyDlj6rnibnmrorlpITnkIZTREvkuJrliqHpgLvovpHmipvlh7rnmoTplJnor68tSlNPTiBzdHJpbmdcbiAgICAgICAgICBpZiAoZXJyTXNnICYmIC9eXFx7LipcXH0kLy50ZXN0KGVyck1zZykpIHtcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IEpTT04ucGFyc2UoZXJyTXNnKVxuICAgICAgICAgICAgbG9ncy5zdWJ0aXRsZSA9IG1zZ1xuICAgICAgICAgICAgaWYgKG1zZy5jb2RlKSB7XG4gICAgICAgICAgICAgIGlmIChpbm5lckVycikge1xuICAgICAgICAgICAgICAgIGlubmVyRXJyLmNvZGUgPSBtc2cuY29kZVxuICAgICAgICAgICAgICAgIGlubmVyRXJyLm1lc3NhZ2UgPSBtc2cubXNnXG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZXJyLmNvZGUgPSBtc2cuY29kZVxuICAgICAgICAgICAgICAgIGVyci5tZXNzYWdlID0gbXNnLm1zZ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGZhaWxFcnIgPSBpbm5lckVyciB8fCBlcnJcbiAgICAgICAgICAgICAgbG9ncy5jb250ZW50ID0gbWVzc2FnZXMubWFwKG1zZyA9PiAoe1xuICAgICAgICAgICAgICAgIHR5cGU6ICdpbmZvJyxcbiAgICAgICAgICAgICAgICBib2R5OiBtc2csXG4gICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIG9hdXRoIOmUmeivr+eJueauiuWkhOeQhlxuICAgICAgICAgIGlmIChlcnJvciAmJiBlcnJvckRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICBsb2dzLnN1YnRpdGxlID0gZXJyb3JEZXNjcmlwdGlvblxuICAgICAgICAgICAgaWYgKGlubmVyRXJyKSB7XG4gICAgICAgICAgICAgIGlubmVyRXJyLmNvZGUgPSBlcnJvclxuICAgICAgICAgICAgICBpbm5lckVyci5tc2cgPSBlcnJvckRlc2NyaXB0aW9uXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBlcnIuY29kZSA9IGVycm9yXG4gICAgICAgICAgICAgIGVyci5tZXNzYWdlID0gZXJyb3JEZXNjcmlwdGlvblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmFpbEVyciA9IGlubmVyRXJyIHx8IGVyclxuICAgICAgICAgICAgbG9ncy5jb250ZW50ID0gbWVzc2FnZXMubWFwKG1zZyA9PiAoe1xuICAgICAgICAgICAgICB0eXBlOiAnaW5mbycsXG4gICAgICAgICAgICAgIGJvZHk6IG1zZyxcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgIH1cbiAgICAgICAgICBwcmludEdyb3VwTG9nKGxvZ3MpXG4gICAgICAgICAgdGhyb3cgZmFpbEVyclxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICog5Zyo5Y6f5aeL5aCG5qCI5Lit5p+l5om+6KOF6aWw5Zmo5p2h55uu5bm26L+U5Zue5rqQ56CB6ZO+5o6lbGlua1xuICogQHBhcmFtIGVyclxuICovXG5mdW5jdGlvbiBnZXRTb3VyY2VMaW5rKGVycjogRXJyb3IpIHtcbiAgbGV0IHNvdXJjZUxpbmsgPSAnJ1xuICBjb25zdCBvdXR0ZXJFcnJTdGFja3MgPSBlcnIuc3RhY2suc3BsaXQoJ1xcbicpXG4gIGNvbnN0IGluZGV4T2ZEZWNvcmF0b3IgPSBvdXR0ZXJFcnJTdGFja3MuZmluZEluZGV4KHN0ciA9PiBSRUdfU1RBQ0tfREVDT1JBVEUudGVzdChzdHIpKVxuXG4gIGlmIChpbmRleE9mRGVjb3JhdG9yICE9PSAtMSkge1xuICAgIGNvbnN0IG1hdGNoID0gUkVHX1NUQUNLX0xJTksuZXhlYyhvdXR0ZXJFcnJTdGFja3NbaW5kZXhPZkRlY29yYXRvciArIDFdIHx8ICcnKVxuXG4gICAgc291cmNlTGluayA9IG1hdGNoID8gbWF0Y2hbMF0gOiAnJ1xuICB9XG4gIHJldHVybiBzb3VyY2VMaW5rXG59XG5cbi8qKlxuICog5Zyo5Y6f5aeL5aCG5qCI5Lit5p+l5om+6KOF6aWw5Zmo5p2h55uu77yM5YmU6Zmk5YW25ZCO55qE5peg55So5aCG5qCI77yM5bm25bCG6ZO+5o6l5pu/5o2i5Li65rqQ56CBbGlua1xuICogQHBhcmFtIG9wdGlvbnNcbiAqL1xuZnVuY3Rpb24gZ2V0UmV3cml0ZWRFcnJvcihvcHRpb25zOiB7XG4gIGVycjogRXJyb3I7XG4gIGNsYXNzTmFtZTogc3RyaW5nO1xuICBtZXRob2ROYW1lOiBzdHJpbmc7XG4gIHNvdXJjZUxpbms6IHN0cmluZztcbn0pIHtcbiAgY29uc3QgeyBlcnIsIGNsYXNzTmFtZSwgbWV0aG9kTmFtZSwgc291cmNlTGluayB9ID0gb3B0aW9uc1xuICAvLyDmib7kuI3liLDmupDnoIFsaW5r6L+U5ZuebnVsbO+8jOWQjue7remAu+i+keWwhuaJk+WNsOWOn+WghuagiOS/oeaBr1xuICBpZiAoIXNvdXJjZUxpbmspIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgaW5uZXJFcnJTdGFjayA9IGVyci5zdGFjay5zcGxpdCgnXFxuJylcbiAgY29uc3QgUkVHX1NUQUNLX0lOTkVSX01FVEhPRCA9IGlzRmlyZWZveFxuICAgID8gL15jYXRjaEVycm9yc0RlY29yYXRvclxcLzxcXC9kZXNjcmlwdG9yLnZhbHVlQC4qXFxkJC9cbiAgICA6IG5ldyBSZWdFeHAoYCR7Y2xhc3NOYW1lfVxcXFwuZGVzY3JpcHRvci52YWx1ZVxcXFxzKlxcXFxbYXNcXFxccyR7bWV0aG9kTmFtZX1cXFxcXVxcXFxzKlxcXFwoLipcXFxcKSRgKVxuICBjb25zdCBSRUdfU1RBQ0tfSU5ORVJfTUVUSE9EX1dJVEhPVVRfTElOSyA9IGlzRmlyZWZveFxuICAgID8gL15jYXRjaEVycm9yc0RlY29yYXRvclxcLzxcXC9kZXNjcmlwdG9yLnZhbHVlL1xuICAgIDogbmV3IFJlZ0V4cChgJHtjbGFzc05hbWV9XFxcXC5kZXNjcmlwdG9yLnZhbHVlXFxcXHMqXFxcXFthc1xcXFxzJHttZXRob2ROYW1lfVxcXFxdYClcbiAgY29uc3QgaW5kZXhPZlNvdXJjZSA9IGlubmVyRXJyU3RhY2suZmluZEluZGV4KHN0ciA9PiBSRUdfU1RBQ0tfSU5ORVJfTUVUSE9ELnRlc3Qoc3RyKSlcbiAgbGV0IGlubmVyRXJyOiBFcnJvclxuICBpZiAoaW5kZXhPZlNvdXJjZSAhPT0gLTEpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgcmVhbEVyclN0YWNrID0gaW5uZXJFcnJTdGFjay5maWx0ZXIoKHYsIGkpID0+IGkgPiBpbmRleE9mU291cmNlKVxuICAgIHJlYWxFcnJTdGFjay51bnNoaWZ0KGlubmVyRXJyU3RhY2tbaW5kZXhPZlNvdXJjZV1cbiAgICAgIC5yZXBsYWNlKFJFR19TVEFDS19JTk5FUl9NRVRIT0RfV0lUSE9VVF9MSU5LLCBgJHtjbGFzc05hbWV9LiR7bWV0aG9kTmFtZX1gKVxuICAgICAgLnJlcGxhY2UoUkVHX1NUQUNLX0xJTkssIHNvdXJjZUxpbmspKVxuICAgIGlubmVyRXJyID0gbmV3IEVycm9yKClcbiAgICBpbm5lckVyci5zdGFjayA9IGAke2lzRmlyZWZveCA/ICdAZGVidWdnZXInIDogJ0Vycm9yJ31cXG4ke3JlYWxFcnJTdGFjay5qb2luKCdcXG4nKX1gXG4gIH1cbiAgcmV0dXJuIGlubmVyRXJyXG59XG4iXX0=
|
package/dist/libs/cache.js
DELETED
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
extendStatics(d, b);
|
|
11
|
-
function __() { this.constructor = d; }
|
|
12
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
13
|
-
};
|
|
14
|
-
})();
|
|
15
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
16
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
17
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
18
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
19
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
20
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
21
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
22
|
-
});
|
|
23
|
-
};
|
|
24
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
25
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
26
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
27
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
28
|
-
function step(op) {
|
|
29
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
30
|
-
while (_) try {
|
|
31
|
-
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;
|
|
32
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
33
|
-
switch (op[0]) {
|
|
34
|
-
case 0: case 1: t = op; break;
|
|
35
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
36
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
37
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
38
|
-
default:
|
|
39
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
40
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
41
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
42
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
43
|
-
if (t[2]) _.ops.pop();
|
|
44
|
-
_.trys.pop(); continue;
|
|
45
|
-
}
|
|
46
|
-
op = body.call(thisArg, _);
|
|
47
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
48
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
-
exports.CloudbaseCache = void 0;
|
|
53
|
-
var adapter_interface_1 = require("@cloudbase/adapter-interface");
|
|
54
|
-
var util_1 = require("./util");
|
|
55
|
-
var constants_1 = require("../constants");
|
|
56
|
-
var TcbCacheObject = (function (_super) {
|
|
57
|
-
__extends(TcbCacheObject, _super);
|
|
58
|
-
function TcbCacheObject(root) {
|
|
59
|
-
var _this = _super.call(this) || this;
|
|
60
|
-
_this.root = root;
|
|
61
|
-
if (!root.tcbCacheObject) {
|
|
62
|
-
root.tcbCacheObject = {};
|
|
63
|
-
}
|
|
64
|
-
return _this;
|
|
65
|
-
}
|
|
66
|
-
TcbCacheObject.prototype.setItem = function (key, value) {
|
|
67
|
-
this.root.tcbCacheObject[key] = value;
|
|
68
|
-
};
|
|
69
|
-
TcbCacheObject.prototype.getItem = function (key) {
|
|
70
|
-
return this.root.tcbCacheObject[key];
|
|
71
|
-
};
|
|
72
|
-
TcbCacheObject.prototype.removeItem = function (key) {
|
|
73
|
-
delete this.root.tcbCacheObject[key];
|
|
74
|
-
};
|
|
75
|
-
TcbCacheObject.prototype.clear = function () {
|
|
76
|
-
delete this.root.tcbCacheObject;
|
|
77
|
-
};
|
|
78
|
-
return TcbCacheObject;
|
|
79
|
-
}(adapter_interface_1.AbstractStorage));
|
|
80
|
-
function createStorage(persistence, adapter) {
|
|
81
|
-
switch (persistence) {
|
|
82
|
-
case 'local':
|
|
83
|
-
if (!adapter.localStorage) {
|
|
84
|
-
util_1.printWarn(constants_1.ERRORS.INVALID_PARAMS, 'localStorage is not supported on current platform');
|
|
85
|
-
return new TcbCacheObject(adapter.root);
|
|
86
|
-
}
|
|
87
|
-
return adapter.localStorage;
|
|
88
|
-
case 'none':
|
|
89
|
-
return new TcbCacheObject(adapter.root);
|
|
90
|
-
default:
|
|
91
|
-
if (!adapter.localStorage) {
|
|
92
|
-
util_1.printWarn(constants_1.ERRORS.INVALID_PARAMS, 'localStorage is not supported on current platform');
|
|
93
|
-
return new TcbCacheObject(adapter.root);
|
|
94
|
-
}
|
|
95
|
-
return adapter.localStorage;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
var CloudbaseCache = (function () {
|
|
99
|
-
function CloudbaseCache(config) {
|
|
100
|
-
this.keys = {};
|
|
101
|
-
var persistence = config.persistence, _a = config.platformInfo, platformInfo = _a === void 0 ? {} : _a, _b = config.keys, keys = _b === void 0 ? {} : _b;
|
|
102
|
-
this.platformInfo = platformInfo;
|
|
103
|
-
if (!this.storage) {
|
|
104
|
-
this.persistenceTag = this.platformInfo.adapter.primaryStorage || persistence;
|
|
105
|
-
this.storage = createStorage(this.persistenceTag, this.platformInfo.adapter);
|
|
106
|
-
this.keys = keys;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
Object.defineProperty(CloudbaseCache.prototype, "mode", {
|
|
110
|
-
get: function () {
|
|
111
|
-
return this.storage.mode || 'sync';
|
|
112
|
-
},
|
|
113
|
-
enumerable: false,
|
|
114
|
-
configurable: true
|
|
115
|
-
});
|
|
116
|
-
Object.defineProperty(CloudbaseCache.prototype, "persistence", {
|
|
117
|
-
get: function () {
|
|
118
|
-
return this.persistenceTag;
|
|
119
|
-
},
|
|
120
|
-
enumerable: false,
|
|
121
|
-
configurable: true
|
|
122
|
-
});
|
|
123
|
-
CloudbaseCache.prototype.setStore = function (key, value, version) {
|
|
124
|
-
if (this.mode === 'async') {
|
|
125
|
-
util_1.printWarn(constants_1.ERRORS.INVALID_OPERATION, 'current platform\'s storage is asynchronous, please use setStoreAsync insteed');
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
if (!this.storage) {
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
try {
|
|
132
|
-
var val = {
|
|
133
|
-
version: version || 'localCachev1',
|
|
134
|
-
content: value,
|
|
135
|
-
};
|
|
136
|
-
this.storage.setItem(key, JSON.stringify(val));
|
|
137
|
-
}
|
|
138
|
-
catch (e) {
|
|
139
|
-
throw new Error(JSON.stringify({
|
|
140
|
-
code: constants_1.ERRORS.OPERATION_FAIL,
|
|
141
|
-
msg: "[" + constants_1.getSdkName() + "][" + constants_1.ERRORS.OPERATION_FAIL + "]setStore failed",
|
|
142
|
-
info: e,
|
|
143
|
-
}));
|
|
144
|
-
}
|
|
145
|
-
return;
|
|
146
|
-
};
|
|
147
|
-
CloudbaseCache.prototype.setStoreAsync = function (key, value, version) {
|
|
148
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
149
|
-
var val, e_1;
|
|
150
|
-
return __generator(this, function (_a) {
|
|
151
|
-
switch (_a.label) {
|
|
152
|
-
case 0:
|
|
153
|
-
if (!this.storage) {
|
|
154
|
-
return [2];
|
|
155
|
-
}
|
|
156
|
-
_a.label = 1;
|
|
157
|
-
case 1:
|
|
158
|
-
_a.trys.push([1, 3, , 4]);
|
|
159
|
-
val = {
|
|
160
|
-
version: version || 'localCachev1',
|
|
161
|
-
content: value,
|
|
162
|
-
};
|
|
163
|
-
return [4, this.storage.setItem(key, JSON.stringify(val))];
|
|
164
|
-
case 2:
|
|
165
|
-
_a.sent();
|
|
166
|
-
return [3, 4];
|
|
167
|
-
case 3:
|
|
168
|
-
e_1 = _a.sent();
|
|
169
|
-
return [2];
|
|
170
|
-
case 4: return [2];
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
});
|
|
174
|
-
};
|
|
175
|
-
CloudbaseCache.prototype.getStore = function (key, version) {
|
|
176
|
-
var _a;
|
|
177
|
-
if (this.mode === 'async') {
|
|
178
|
-
util_1.printWarn(constants_1.ERRORS.INVALID_OPERATION, 'current platform\'s storage is asynchronous, please use getStoreAsync insteed');
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
|
-
try {
|
|
182
|
-
if (typeof process !== 'undefined' && ((_a = process.env) === null || _a === void 0 ? void 0 : _a.tcb_token)) {
|
|
183
|
-
return process.env.tcb_token;
|
|
184
|
-
}
|
|
185
|
-
if (!this.storage) {
|
|
186
|
-
return '';
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
catch (e) {
|
|
190
|
-
return '';
|
|
191
|
-
}
|
|
192
|
-
version = version || 'localCachev1';
|
|
193
|
-
var content = this.storage.getItem(key);
|
|
194
|
-
if (!content) {
|
|
195
|
-
return '';
|
|
196
|
-
}
|
|
197
|
-
if (content.indexOf(version) >= 0) {
|
|
198
|
-
var d = JSON.parse(content);
|
|
199
|
-
return d.content;
|
|
200
|
-
}
|
|
201
|
-
return '';
|
|
202
|
-
};
|
|
203
|
-
CloudbaseCache.prototype.getStoreAsync = function (key, version) {
|
|
204
|
-
var _a;
|
|
205
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
206
|
-
var content, d;
|
|
207
|
-
return __generator(this, function (_b) {
|
|
208
|
-
switch (_b.label) {
|
|
209
|
-
case 0:
|
|
210
|
-
try {
|
|
211
|
-
if (typeof process !== 'undefined' && ((_a = process.env) === null || _a === void 0 ? void 0 : _a.tcb_token)) {
|
|
212
|
-
return [2, process.env.tcb_token];
|
|
213
|
-
}
|
|
214
|
-
if (!this.storage) {
|
|
215
|
-
return [2, ''];
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
catch (e) {
|
|
219
|
-
return [2, ''];
|
|
220
|
-
}
|
|
221
|
-
version = version || 'localCachev1';
|
|
222
|
-
return [4, this.storage.getItem(key)];
|
|
223
|
-
case 1:
|
|
224
|
-
content = _b.sent();
|
|
225
|
-
if (!content) {
|
|
226
|
-
return [2, ''];
|
|
227
|
-
}
|
|
228
|
-
if (content.indexOf(version) >= 0) {
|
|
229
|
-
d = JSON.parse(content);
|
|
230
|
-
return [2, d.content];
|
|
231
|
-
}
|
|
232
|
-
return [2, ''];
|
|
233
|
-
}
|
|
234
|
-
});
|
|
235
|
-
});
|
|
236
|
-
};
|
|
237
|
-
CloudbaseCache.prototype.removeStore = function (key) {
|
|
238
|
-
if (this.mode === 'async') {
|
|
239
|
-
util_1.printWarn(constants_1.ERRORS.INVALID_OPERATION, 'current platform\'s storage is asynchronous, please use removeStoreAsync insteed');
|
|
240
|
-
return;
|
|
241
|
-
}
|
|
242
|
-
this.storage.removeItem(key);
|
|
243
|
-
};
|
|
244
|
-
CloudbaseCache.prototype.removeStoreAsync = function (key) {
|
|
245
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
246
|
-
return __generator(this, function (_a) {
|
|
247
|
-
switch (_a.label) {
|
|
248
|
-
case 0: return [4, this.storage.removeItem(key)];
|
|
249
|
-
case 1:
|
|
250
|
-
_a.sent();
|
|
251
|
-
return [2];
|
|
252
|
-
}
|
|
253
|
-
});
|
|
254
|
-
});
|
|
255
|
-
};
|
|
256
|
-
return CloudbaseCache;
|
|
257
|
-
}());
|
|
258
|
-
exports.CloudbaseCache = CloudbaseCache;
|
|
259
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGlicy9jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0VBQXFHO0FBR3JHLCtCQUFrQztBQUNsQywwQ0FBaUQ7QUFLakQ7SUFBNkIsa0NBQWU7SUFFMUMsd0JBQVksSUFBUztRQUFyQixZQUNFLGlCQUFPLFNBS1I7UUFKQyxLQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQTtTQUN6Qjs7SUFDSCxDQUFDO0lBQ00sZ0NBQU8sR0FBZCxVQUFlLEdBQVcsRUFBRSxLQUFVO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQTtJQUN2QyxDQUFDO0lBQ00sZ0NBQU8sR0FBZCxVQUFlLEdBQVc7UUFDeEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN0QyxDQUFDO0lBQ00sbUNBQVUsR0FBakIsVUFBa0IsR0FBVztRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3RDLENBQUM7SUFDTSw4QkFBSyxHQUFaO1FBQ0UsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQTtJQUNqQyxDQUFDO0lBQ0gscUJBQUM7QUFBRCxDQUFDLEFBckJELENBQTZCLG1DQUFlLEdBcUIzQztBQUlELFNBQVMsYUFBYSxDQUFDLFdBQXdCLEVBQUUsT0FBNEI7SUFDM0UsUUFBUSxXQUFXLEVBQUU7UUFDbkIsS0FBSyxPQUFPO1lBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7Z0JB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QkFDdkMsV0FBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBQTs7d0JBQWxDLFNBQWtDLENBQUE7Ozs7O0tBQ25DO0lBQ0gscUJBQUM7QUFBRCxDQUFDLEFBeElELElBd0lDO0FBeElZLHdDQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RvcmFnZUludGVyZmFjZSwgQWJzdHJhY3RTdG9yYWdlLCBTREtBZGFwdGVySW50ZXJmYWNlIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB7IElDbG91ZGJhc2VDYWNoZSwgSUNhY2hlQ29uZmlnIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9jYWNoZSdcbmltcG9ydCB7IEtWLCBQZXJzaXN0ZW5jZSwgSUNsb3VkYmFzZVBsYXRmb3JtSW5mbyB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMnXG5pbXBvcnQgeyBwcmludFdhcm4gfSBmcm9tICcuL3V0aWwnXG5pbXBvcnQgeyBFUlJPUlMsIGdldFNka05hbWUgfSBmcm9tICcuLi9jb25zdGFudHMnXG5cbi8qKlxuICogcGVyc2l0ZW5jZT1ub25l5pe255m75b2V5oCB5L+d5a2Y5Zyo5YaF5a2Y5LitXG4gKi9cbmNsYXNzIFRjYkNhY2hlT2JqZWN0IGV4dGVuZHMgQWJzdHJhY3RTdG9yYWdlIHtcbiAgcHJpdmF0ZSByZWFkb25seSByb290OiBhbnk7XG4gIGNvbnN0cnVjdG9yKHJvb3Q6IGFueSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLnJvb3QgPSByb290XG4gICAgaWYgKCFyb290LnRjYkNhY2hlT2JqZWN0KSB7XG4gICAgICByb290LnRjYkNhY2hlT2JqZWN0ID0ge31cbiAgICB9XG4gIH1cbiAgcHVibGljIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLnJvb3QudGNiQ2FjaGVPYmplY3Rba2V5XSA9IHZhbHVlXG4gIH1cbiAgcHVibGljIGdldEl0ZW0oa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5yb290LnRjYkNhY2hlT2JqZWN0W2tleV1cbiAgfVxuICBwdWJsaWMgcmVtb3ZlSXRlbShrZXk6IHN0cmluZykge1xuICAgIGRlbGV0ZSB0aGlzLnJvb3QudGNiQ2FjaGVPYmplY3Rba2V5XVxuICB9XG4gIHB1YmxpYyBjbGVhcigpIHtcbiAgICBkZWxldGUgdGhpcy5yb290LnRjYkNhY2hlT2JqZWN0XG4gIH1cbn1cbi8qKlxuICog5bel5Y6C5Ye95pWwXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVN0b3JhZ2UocGVyc2lzdGVuY2U6IFBlcnNpc3RlbmNlLCBhZGFwdGVyOiBTREtBZGFwdGVySW50ZXJmYWNlKTogU3RvcmFnZUludGVyZmFjZSB7XG4gIHN3aXRjaCAocGVyc2lzdGVuY2UpIHtcbiAgICBjYXNlICdsb2NhbCc6XG4gICAgICBpZiAoIWFkYXB0ZXIubG9jYWxTdG9yYWdlKSB7XG4gICAgICAgIHByaW50V2FybihFUlJPUlMuSU5WQUxJRF9QQVJBTVMsICdsb2NhbFN0b3JhZ2UgaXMgbm90IHN1cHBvcnRlZCBvbiBjdXJyZW50IHBsYXRmb3JtJylcbiAgICAgICAgLy8g5LiN5pSv5oyBbG9jYWxzdG9yYWdl55qE5bmz5Y+w6ZmN57qn5Li6bm9uZVxuICAgICAgICByZXR1cm4gbmV3IFRjYkNhY2hlT2JqZWN0KGFkYXB0ZXIucm9vdClcbiAgICAgIH1cbiAgICAgIHJldHVybiBhZGFwdGVyLmxvY2FsU3RvcmFnZVxuICAgIGNhc2UgJ25vbmUnOlxuICAgICAgcmV0dXJuIG5ldyBUY2JDYWNoZU9iamVjdChhZGFwdGVyLnJvb3QpXG4gICAgZGVmYXVsdDpcbiAgICAgIGlmICghYWRhcHRlci5sb2NhbFN0b3JhZ2UpIHtcbiAgICAgICAgcHJpbnRXYXJuKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ2xvY2FsU3RvcmFnZSBpcyBub3Qgc3VwcG9ydGVkIG9uIGN1cnJlbnQgcGxhdGZvcm0nKVxuICAgICAgICAvLyDkuI3mlK/mjIFsb2NhbHN0b3JhZ2XnmoTlubPlj7DpmY3nuqfkuLpub25lXG4gICAgICAgIHJldHVybiBuZXcgVGNiQ2FjaGVPYmplY3QoYWRhcHRlci5yb290KVxuICAgICAgfVxuICAgICAgcmV0dXJuIGFkYXB0ZXIubG9jYWxTdG9yYWdlXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENsb3VkYmFzZUNhY2hlIGltcGxlbWVudHMgSUNsb3VkYmFzZUNhY2hlIHtcbiAgcHVibGljIGtleXM6IEtWPHN0cmluZz4gPSB7fTtcblxuICBwcml2YXRlIHBlcnNpc3RlbmNlVGFnOiBQZXJzaXN0ZW5jZTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybUluZm86IElDbG91ZGJhc2VQbGF0Zm9ybUluZm87XG4gIHByaXZhdGUgc3RvcmFnZTogU3RvcmFnZUludGVyZmFjZTtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IElDYWNoZUNvbmZpZykge1xuICAgIGNvbnN0IHsgcGVyc2lzdGVuY2UsIHBsYXRmb3JtSW5mbyA9IHt9LCBrZXlzID0ge30gfSA9IGNvbmZpZ1xuICAgIHRoaXMucGxhdGZvcm1JbmZvID0gcGxhdGZvcm1JbmZvXG4gICAgaWYgKCF0aGlzLnN0b3JhZ2UpIHtcbiAgICAgIHRoaXMucGVyc2lzdGVuY2VUYWcgPSB0aGlzLnBsYXRmb3JtSW5mby5hZGFwdGVyLnByaW1hcnlTdG9yYWdlIHx8IHBlcnNpc3RlbmNlXG4gICAgICB0aGlzLnN0b3JhZ2UgPSBjcmVhdGVTdG9yYWdlKHRoaXMucGVyc2lzdGVuY2VUYWcsIHRoaXMucGxhdGZvcm1JbmZvLmFkYXB0ZXIpXG4gICAgICB0aGlzLmtleXMgPSBrZXlzXG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBAZ2V0dGVyIHN0b3JhZ2XmqKHlvI8t5ZCM5q2lL+W8guatpVxuICAgKi9cbiAgZ2V0IG1vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZS5tb2RlIHx8ICdzeW5jJ1xuICB9XG4gIGdldCBwZXJzaXN0ZW5jZSgpOiBQZXJzaXN0ZW5jZSB7XG4gICAgcmV0dXJuIHRoaXMucGVyc2lzdGVuY2VUYWdcbiAgfVxuXG4gIHB1YmxpYyBzZXRTdG9yZShrZXk6IHN0cmluZywgdmFsdWU6IGFueSwgdmVyc2lvbj86IGFueSkge1xuICAgIGlmICh0aGlzLm1vZGUgPT09ICdhc3luYycpIHtcbiAgICAgIHByaW50V2FybihFUlJPUlMuSU5WQUxJRF9PUEVSQVRJT04sICdjdXJyZW50IHBsYXRmb3JtXFwncyBzdG9yYWdlIGlzIGFzeW5jaHJvbm91cywgcGxlYXNlIHVzZSBzZXRTdG9yZUFzeW5jIGluc3RlZWQnKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmICghdGhpcy5zdG9yYWdlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgdmFsID0ge1xuICAgICAgICB2ZXJzaW9uOiB2ZXJzaW9uIHx8ICdsb2NhbENhY2hldjEnLFxuICAgICAgICBjb250ZW50OiB2YWx1ZSxcbiAgICAgIH1cbiAgICAgIHRoaXMuc3RvcmFnZS5zZXRJdGVtKGtleSwgSlNPTi5zdHJpbmdpZnkodmFsKSlcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBjb2RlOiBFUlJPUlMuT1BFUkFUSU9OX0ZBSUwsXG4gICAgICAgIG1zZzogYFske2dldFNka05hbWUoKX1dWyR7RVJST1JTLk9QRVJBVElPTl9GQUlMfV1zZXRTdG9yZSBmYWlsZWRgLFxuICAgICAgICBpbmZvOiBlLFxuICAgICAgfSkpXG4gICAgfVxuXG4gICAgcmV0dXJuXG4gIH1cbiAgcHVibGljIGFzeW5jIHNldFN0b3JlQXN5bmMoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIHZlcnNpb24/OiBhbnkpIHtcbiAgICBpZiAoIXRoaXMuc3RvcmFnZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHZhbCA9IHtcbiAgICAgICAgdmVyc2lvbjogdmVyc2lvbiB8fCAnbG9jYWxDYWNoZXYxJyxcbiAgICAgICAgY29udGVudDogdmFsdWUsXG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLnN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KHZhbCkpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgcmV0dXJuXG4gIH1cbiAgcHVibGljIGdldFN0b3JlKGtleTogc3RyaW5nLCB2ZXJzaW9uPzogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ2FzeW5jJykge1xuICAgICAgcHJpbnRXYXJuKEVSUk9SUy5JTlZBTElEX09QRVJBVElPTiwgJ2N1cnJlbnQgcGxhdGZvcm1cXCdzIHN0b3JhZ2UgaXMgYXN5bmNocm9ub3VzLCBwbGVhc2UgdXNlIGdldFN0b3JlQXN5bmMgaW5zdGVlZCcpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIC8vIOa1i+ivleeUqOS+i+S9v+eUqFxuICAgICAgaWYgKHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiBwcm9jZXNzLmVudj8udGNiX3Rva2VuKSB7XG4gICAgICAgIHJldHVybiBwcm9jZXNzLmVudi50Y2JfdG9rZW5cbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLnN0b3JhZ2UpIHtcbiAgICAgICAgcmV0dXJuICcnXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuXG4gICAgdmVyc2lvbiA9IHZlcnNpb24gfHwgJ2xvY2FsQ2FjaGV2MSdcblxuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLnN0b3JhZ2UuZ2V0SXRlbShrZXkpXG4gICAgaWYgKCFjb250ZW50KSB7XG4gICAgICByZXR1cm4gJydcbiAgICB9XG5cbiAgICBpZiAoY29udGVudC5pbmRleE9mKHZlcnNpb24pID49IDApIHtcbiAgICAgIGNvbnN0IGQgPSBKU09OLnBhcnNlKGNvbnRlbnQpXG4gICAgICByZXR1cm4gZC5jb250ZW50XG4gICAgfVxuICAgIHJldHVybiAnJ1xuICB9XG4gIHB1YmxpYyBhc3luYyBnZXRTdG9yZUFzeW5jKGtleTogc3RyaW5nLCB2ZXJzaW9uPzogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIOa1i+ivleeUqOS+i+S9v+eUqFxuICAgICAgaWYgKHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiBwcm9jZXNzLmVudj8udGNiX3Rva2VuKSB7XG4gICAgICAgIHJldHVybiBwcm9jZXNzLmVudi50Y2JfdG9rZW5cbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLnN0b3JhZ2UpIHtcbiAgICAgICAgcmV0dXJuICcnXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuXG4gICAgdmVyc2lvbiA9IHZlcnNpb24gfHwgJ2xvY2FsQ2FjaGV2MSdcblxuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCB0aGlzLnN0b3JhZ2UuZ2V0SXRlbShrZXkpXG4gICAgaWYgKCFjb250ZW50KSB7XG4gICAgICByZXR1cm4gJydcbiAgICB9XG5cbiAgICBpZiAoY29udGVudC5pbmRleE9mKHZlcnNpb24pID49IDApIHtcbiAgICAgIGNvbnN0IGQgPSBKU09OLnBhcnNlKGNvbnRlbnQpXG4gICAgICByZXR1cm4gZC5jb250ZW50XG4gICAgfVxuICAgIHJldHVybiAnJ1xuICB9XG4gIHB1YmxpYyByZW1vdmVTdG9yZShrZXk6IHN0cmluZykge1xuICAgIGlmICh0aGlzLm1vZGUgPT09ICdhc3luYycpIHtcbiAgICAgIHByaW50V2FybihFUlJPUlMuSU5WQUxJRF9PUEVSQVRJT04sICdjdXJyZW50IHBsYXRmb3JtXFwncyBzdG9yYWdlIGlzIGFzeW5jaHJvbm91cywgcGxlYXNlIHVzZSByZW1vdmVTdG9yZUFzeW5jIGluc3RlZWQnKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRoaXMuc3RvcmFnZS5yZW1vdmVJdGVtKGtleSlcbiAgfVxuICBwdWJsaWMgYXN5bmMgcmVtb3ZlU3RvcmVBc3luYyhrZXk6IHN0cmluZykge1xuICAgIGF3YWl0IHRoaXMuc3RvcmFnZS5yZW1vdmVJdGVtKGtleSlcbiAgfVxufVxuIl19
|