@cloudbase/utilities 1.8.2 → 1.8.4
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/dist/{cjs/adapters → adapters}/index.js +1 -1
- package/dist/adapters/platforms/web.js +212 -0
- package/dist/constants/common.js +26 -0
- package/dist/constants/errors.js +12 -0
- package/dist/{cjs/constants → constants}/index.js +1 -1
- package/dist/helpers/decorators.js +206 -0
- package/dist/{cjs/helpers → helpers}/index.js +1 -1
- package/dist/{cjs/index.js → index.js} +1 -1
- package/dist/libs/cache.js +338 -0
- package/dist/libs/events.js +108 -0
- package/dist/libs/util.js +223 -0
- package/package.json +5 -6
- package/dist/cjs/adapters/platforms/web.js +0 -212
- package/dist/cjs/constants/common.js +0 -26
- package/dist/cjs/constants/errors.js +0 -12
- package/dist/cjs/helpers/decorators.js +0 -206
- package/dist/cjs/libs/cache.js +0 -338
- package/dist/cjs/libs/events.js +0 -108
- package/dist/cjs/libs/util.js +0 -223
- /package/dist/{cjs/adapters → adapters}/index.d.ts +0 -0
- /package/dist/{cjs/adapters → adapters}/platforms/web.d.ts +0 -0
- /package/dist/{cjs/constants → constants}/common.d.ts +0 -0
- /package/dist/{cjs/constants → constants}/errors.d.ts +0 -0
- /package/dist/{cjs/constants → constants}/index.d.ts +0 -0
- /package/dist/{cjs/helpers → helpers}/decorators.d.ts +0 -0
- /package/dist/{cjs/helpers → helpers}/index.d.ts +0 -0
- /package/dist/{cjs/index.d.ts → index.d.ts} +0 -0
- /package/dist/{cjs/libs → libs}/cache.d.ts +0 -0
- /package/dist/{cjs/libs → libs}/events.d.ts +0 -0
- /package/dist/{cjs/libs → libs}/util.d.ts +0 -0
package/dist/cjs/libs/events.js
DELETED
|
@@ -1,108 +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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
18
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
19
|
-
if (ar || !(i in from)) {
|
|
20
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
21
|
-
ar[i] = from[i];
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
25
|
-
};
|
|
26
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
-
exports.removeEventListener = exports.activateEvent = exports.addEventListener = exports.CloudbaseEventEmitter = exports.IErrorEvent = exports.CloudbaseEvent = void 0;
|
|
28
|
-
var util_1 = require("./util");
|
|
29
|
-
function _addEventListener(name, listener, listeners) {
|
|
30
|
-
listeners[name] = listeners[name] || [];
|
|
31
|
-
listeners[name].push(listener);
|
|
32
|
-
}
|
|
33
|
-
function _removeEventListener(name, listener, listeners) {
|
|
34
|
-
if (listeners === null || listeners === void 0 ? void 0 : listeners[name]) {
|
|
35
|
-
var index = listeners[name].indexOf(listener);
|
|
36
|
-
if (index !== -1) {
|
|
37
|
-
listeners[name].splice(index, 1);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
var CloudbaseEvent = (function () {
|
|
42
|
-
function CloudbaseEvent(name, data) {
|
|
43
|
-
this.data = data || null;
|
|
44
|
-
this.name = name;
|
|
45
|
-
}
|
|
46
|
-
return CloudbaseEvent;
|
|
47
|
-
}());
|
|
48
|
-
exports.CloudbaseEvent = CloudbaseEvent;
|
|
49
|
-
var IErrorEvent = (function (_super) {
|
|
50
|
-
__extends(IErrorEvent, _super);
|
|
51
|
-
function IErrorEvent(error, data) {
|
|
52
|
-
var _this = _super.call(this, 'error', { error: error, data: data }) || this;
|
|
53
|
-
_this.error = error;
|
|
54
|
-
return _this;
|
|
55
|
-
}
|
|
56
|
-
return IErrorEvent;
|
|
57
|
-
}(CloudbaseEvent));
|
|
58
|
-
exports.IErrorEvent = IErrorEvent;
|
|
59
|
-
var CloudbaseEventEmitter = (function () {
|
|
60
|
-
function CloudbaseEventEmitter() {
|
|
61
|
-
this._listeners = {};
|
|
62
|
-
}
|
|
63
|
-
CloudbaseEventEmitter.prototype.on = function (name, listener) {
|
|
64
|
-
_addEventListener(name, listener, this._listeners);
|
|
65
|
-
return this;
|
|
66
|
-
};
|
|
67
|
-
CloudbaseEventEmitter.prototype.off = function (name, listener) {
|
|
68
|
-
_removeEventListener(name, listener, this._listeners);
|
|
69
|
-
return this;
|
|
70
|
-
};
|
|
71
|
-
CloudbaseEventEmitter.prototype.fire = function (event, data) {
|
|
72
|
-
if ((0, util_1.isInstanceOf)(event, IErrorEvent)) {
|
|
73
|
-
console.error(event.error);
|
|
74
|
-
return this;
|
|
75
|
-
}
|
|
76
|
-
var ev = (0, util_1.isString)(event) ? new CloudbaseEvent(event, data || {}) : event;
|
|
77
|
-
var name = ev.name;
|
|
78
|
-
if (this._listens(name)) {
|
|
79
|
-
ev.target = this;
|
|
80
|
-
var handlers = this._listeners[name] ? __spreadArray([], this._listeners[name], true) : [];
|
|
81
|
-
for (var _i = 0, handlers_1 = handlers; _i < handlers_1.length; _i++) {
|
|
82
|
-
var fn = handlers_1[_i];
|
|
83
|
-
fn.call(this, ev);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
return this;
|
|
87
|
-
};
|
|
88
|
-
CloudbaseEventEmitter.prototype._listens = function (name) {
|
|
89
|
-
return this._listeners[name] && this._listeners[name].length > 0;
|
|
90
|
-
};
|
|
91
|
-
return CloudbaseEventEmitter;
|
|
92
|
-
}());
|
|
93
|
-
exports.CloudbaseEventEmitter = CloudbaseEventEmitter;
|
|
94
|
-
var eventEmitter = new CloudbaseEventEmitter();
|
|
95
|
-
function addEventListener(event, callback) {
|
|
96
|
-
eventEmitter.on(event, callback);
|
|
97
|
-
}
|
|
98
|
-
exports.addEventListener = addEventListener;
|
|
99
|
-
function activateEvent(event, data) {
|
|
100
|
-
if (data === void 0) { data = {}; }
|
|
101
|
-
eventEmitter.fire(event, data);
|
|
102
|
-
}
|
|
103
|
-
exports.activateEvent = activateEvent;
|
|
104
|
-
function removeEventListener(event, callback) {
|
|
105
|
-
eventEmitter.off(event, callback);
|
|
106
|
-
}
|
|
107
|
-
exports.removeEventListener = removeEventListener;
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYnMvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUFnRDtBQVdoRCxTQUFTLGlCQUFpQixDQUFDLElBQVksRUFBRSxRQUFrQixFQUFFLFNBQW9CO0lBQy9FLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDakMsQ0FBQztBQVFELFNBQVMsb0JBQW9CLENBQUMsSUFBWSxFQUFFLFFBQWtCLEVBQUUsU0FBb0I7SUFDbEYsSUFBSSxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUcsSUFBSSxDQUFDLEVBQUU7UUFDckIsSUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNoQixTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNsQztLQUNGO0FBQ0gsQ0FBQztBQVlEO0lBS0Usd0JBQVksSUFBWSxFQUFFLElBQVM7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFDSCxxQkFBQztBQUFELENBQUMsQUFURCxJQVNDO0FBVFksd0NBQWM7QUFpQjNCO0lBQWlDLCtCQUFjO0lBRTdDLHFCQUFZLEtBQVksRUFBRSxJQUFVO1FBQXBDLFlBQ0Usa0JBQU0sT0FBTyxFQUFFLEVBQUUsS0FBSyxPQUFBLEVBQUUsSUFBSSxNQUFBLEVBQUUsQ0FBQyxTQUVoQztRQURDLEtBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDOztJQUNyQixDQUFDO0lBQ0gsa0JBQUM7QUFBRCxDQUFDLEFBTkQsQ0FBaUMsY0FBYyxHQU05QztBQU5ZLGtDQUFXO0FBV3hCO0lBQUE7UUFPbUIsZUFBVSxHQUFjLEVBQUUsQ0FBQztJQThEOUMsQ0FBQztJQXJEUSxrQ0FBRSxHQUFULFVBQVUsSUFBWSxFQUFFLFFBQWtCO1FBQ3hDLGlCQUFpQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25ELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQVFNLG1DQUFHLEdBQVYsVUFBVyxJQUFZLEVBQUUsUUFBa0I7UUFDekMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBT00sb0NBQUksR0FBWCxVQUFZLEtBQThCLEVBQUUsSUFBVTtRQUVwRCxJQUFJLElBQUEsbUJBQVksRUFBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEVBQUU7WUFDcEMsT0FBTyxDQUFDLEtBQUssQ0FBRSxLQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFNLEVBQUUsR0FBbUIsSUFBQSxlQUFRLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksY0FBYyxDQUFDLEtBQWUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQXVCLENBQUM7UUFFL0csSUFBQSxJQUFJLEdBQUssRUFBRSxLQUFQLENBQVE7UUFFcEIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3ZCLEVBQUUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBRWpCLElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxtQkFBSyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDekUsS0FBaUIsVUFBUSxFQUFSLHFCQUFRLEVBQVIsc0JBQVEsRUFBUixJQUFRLEVBQUU7Z0JBQXRCLElBQU0sRUFBRSxpQkFBQTtnQkFDWCxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQzthQUNuQjtTQUNGO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBUU8sd0NBQVEsR0FBaEIsVUFBaUIsSUFBWTtRQUMzQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFDSCw0QkFBQztBQUFELENBQUMsQUFyRUQsSUFxRUM7QUFyRVksc0RBQXFCO0FBd0VsQyxJQUFNLFlBQVksR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7QUFFakQsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBYSxFQUFFLFFBQWtCO0lBQ2hFLFlBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFGRCw0Q0FFQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxLQUFhLEVBQUUsSUFBYztJQUFkLHFCQUFBLEVBQUEsU0FBYztJQUN6RCxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRkQsc0NBRUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxLQUFhLEVBQUUsUUFBa0I7SUFDbkUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUZELGtEQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTdHJpbmcsIGlzSW5zdGFuY2VPZiB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBMaXN0ZW5lcnMsIElDbG91ZGJhc2VFdmVudEVtaXR0ZXIgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2V2ZW50cyc7XG5cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICogQGZ1bmN0aW9uIF9hZGRFdmVudExpc3RlbmVyIC0g5re75Yqg55uR5ZCsXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIGV2ZW505ZCN56ewXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBsaXN0ZW5lciAtIOWTjeW6lOWHveaVsFxuICogQHBhcmFtIHtMaXN0ZW5lcnN9IGxpc3RlbmVycyAtIOW3suWtmOWTjeW6lOWHveaVsOmbhuWQiFxuICovXG5mdW5jdGlvbiBfYWRkRXZlbnRMaXN0ZW5lcihuYW1lOiBzdHJpbmcsIGxpc3RlbmVyOiBGdW5jdGlvbiwgbGlzdGVuZXJzOiBMaXN0ZW5lcnMpIHtcbiAgbGlzdGVuZXJzW25hbWVdID0gbGlzdGVuZXJzW25hbWVdIHx8IFtdO1xuICBsaXN0ZW5lcnNbbmFtZV0ucHVzaChsaXN0ZW5lcik7XG59XG4vKipcbiAqIEBwcml2YXRlXG4gKiBAZnVuY3Rpb24gX3JlbW92ZUV2ZW50TGlzdGVuZXIgLSDnp7vpmaTnm5HlkKxcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gZXZlbnTlkI3np7BcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGxpc3RlbmVyIC0g5ZON5bqU5Ye95pWwXG4gKiBAcGFyYW0ge0xpc3RlbmVyc30gbGlzdGVuZXJzIC0g5bey5a2Y5ZON5bqU5Ye95pWw6ZuG5ZCIXG4gKi9cbmZ1bmN0aW9uIF9yZW1vdmVFdmVudExpc3RlbmVyKG5hbWU6IHN0cmluZywgbGlzdGVuZXI6IEZ1bmN0aW9uLCBsaXN0ZW5lcnM6IExpc3RlbmVycykge1xuICBpZiAobGlzdGVuZXJzPy5bbmFtZV0pIHtcbiAgICBjb25zdCBpbmRleCA9IGxpc3RlbmVyc1tuYW1lXS5pbmRleE9mKGxpc3RlbmVyKTtcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICBsaXN0ZW5lcnNbbmFtZV0uc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gIH1cbn1cbmludGVyZmFjZSBJRXZlbnQge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRhcmdldDogYW55O1xuICBkYXRhOiBhbnk7XG59XG4vKipcbiAqIOiHquWumuS5ieS6i+S7tlxuICogQGNsYXNzIENsb3VkYmFzZUV2ZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIOexu+Wei1xuICogQHBhcmFtIHthbnl9IGRhdGEgLSDmlbDmja5cbiAqL1xuZXhwb3J0IGNsYXNzIENsb3VkYmFzZUV2ZW50IGltcGxlbWVudHMgSUV2ZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHRhcmdldDogYW55O1xuICBwdWJsaWMgZGF0YTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgZGF0YTogYW55KSB7XG4gICAgdGhpcy5kYXRhID0gZGF0YSB8fCBudWxsO1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cbn1cbi8qKlxuICog6Ieq5a6a5LmJ6ZSZ6K+v5LqL5Lu2XG4gKiBAY2xhc3MgSUVycm9yRXZlbnRcbiAqIEBleHRlbmRzIENsb3VkYmFzZUV2ZW50XG4gKiBAcGFyYW0ge0Vycm9yfSBlcnJvciAtIOmUmeivr+S/oeaBr+WvueixoVxuICogQHBhcmFtIHthbnl9IGRhdGEgIC0g5pWw5o2uXG4gKi9cbmV4cG9ydCBjbGFzcyBJRXJyb3JFdmVudCBleHRlbmRzIENsb3VkYmFzZUV2ZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IGVycm9yOiBFcnJvcjtcbiAgY29uc3RydWN0b3IoZXJyb3I6IEVycm9yLCBkYXRhPzogYW55KSB7XG4gICAgc3VwZXIoJ2Vycm9yJywgeyBlcnJvciwgZGF0YSB9KTtcbiAgICB0aGlzLmVycm9yID0gZXJyb3I7XG4gIH1cbn1cblxuLyoqXG4gKiBAY2xhc3MgQ2xvdWRiYXNlRXZlbnRFbWl0dGVyXG4gKi9cbmV4cG9ydCBjbGFzcyBDbG91ZGJhc2VFdmVudEVtaXR0ZXIgaW1wbGVtZW50cyBJQ2xvdWRiYXNlRXZlbnRFbWl0dGVyIHtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqIEByZWFkb25seVxuICAgKiBAcHJvcGVydHkge0xpc3RlbmVyc30gX2xpc3RlbmVycyAtIOWTjeW6lOWHveaVsOmbhuWQiFxuICAgKiBAZGVmYXVsdCBge31gXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9saXN0ZW5lcnM6IExpc3RlbmVycyA9IHt9O1xuXG4gIC8qKlxuICAgKiBAcHVibGljXG4gICAqIEBtZXRob2Qgb24gLSDmt7vliqDnm5HlkKxcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBldmVudOWQjeensFxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBsaXN0ZW5lciAtIOWTjeW6lOWHveaVsFxuICAgKiBAcmV0dXJuIGB0aGlzYFxuICAgKi9cbiAgcHVibGljIG9uKG5hbWU6IHN0cmluZywgbGlzdGVuZXI6IEZ1bmN0aW9uKTogdGhpcyB7XG4gICAgX2FkZEV2ZW50TGlzdGVuZXIobmFtZSwgbGlzdGVuZXIsIHRoaXMuX2xpc3RlbmVycyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEBwdWJsaWNcbiAgICogQG1ldGhvZCBvZmYgLSDnp7vpmaTnm5HlkKxcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBldmVudOWQjeensFxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBsaXN0ZW5lciAtIOWTjeW6lOWHveaVsFxuICAgKiBAcmV0dXJuIGB0aGlzYFxuICAgKi9cbiAgcHVibGljIG9mZihuYW1lOiBzdHJpbmcsIGxpc3RlbmVyOiBGdW5jdGlvbik6IHRoaXMge1xuICAgIF9yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIGxpc3RlbmVyLCB0aGlzLl9saXN0ZW5lcnMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiBAcHVibGljXG4gICAqIEBtZXRob2QgZmlyZSAtIOinpuWPkeS6i+S7tlxuICAgKiBAcGFyYW0ge3N0cmluZ3xDbG91ZGJhc2VFdmVudH0gZXZlbnQgLSBldmVudFxuICAgKiBAcmV0dXJuIGB0aGlzYFxuICAgKi9cbiAgcHVibGljIGZpcmUoZXZlbnQ6IHN0cmluZyB8IENsb3VkYmFzZUV2ZW50LCBkYXRhPzogYW55KTogdGhpcyB7XG4gICAgLy8g5omT5Y2w6ZSZ6K+v5L+h5oGvXG4gICAgaWYgKGlzSW5zdGFuY2VPZihldmVudCwgSUVycm9yRXZlbnQpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKChldmVudCBhcyBJRXJyb3JFdmVudCkuZXJyb3IpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgY29uc3QgZXY6IENsb3VkYmFzZUV2ZW50ID0gaXNTdHJpbmcoZXZlbnQpID8gbmV3IENsb3VkYmFzZUV2ZW50KGV2ZW50IGFzIHN0cmluZywgZGF0YSB8fCB7fSkgOiBldmVudCBhcyBDbG91ZGJhc2VFdmVudDtcblxuICAgIGNvbnN0IHsgbmFtZSB9ID0gZXY7XG5cbiAgICBpZiAodGhpcy5fbGlzdGVucyhuYW1lKSkge1xuICAgICAgZXYudGFyZ2V0ID0gdGhpcztcblxuICAgICAgY29uc3QgaGFuZGxlcnMgPSB0aGlzLl9saXN0ZW5lcnNbbmFtZV0gPyBbLi4udGhpcy5fbGlzdGVuZXJzW25hbWVdXSA6IFtdO1xuICAgICAgZm9yIChjb25zdCBmbiBvZiBoYW5kbGVycykge1xuICAgICAgICBmbi5jYWxsKHRoaXMsIGV2KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAbWV0aG9kIF9saXN0ZW5zIC0g5Yik5pat5piv5ZCm55uR5ZCs5LqGbmFtZeS6i+S7tlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIGV2ZW505ZCN56ewXG4gICAqIEByZXR1cm4gYGJvb2xlYW5gXG4gICAqL1xuICBwcml2YXRlIF9saXN0ZW5zKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9saXN0ZW5lcnNbbmFtZV0gJiYgdGhpcy5fbGlzdGVuZXJzW25hbWVdLmxlbmd0aCA+IDA7XG4gIH1cbn1cblxuXG5jb25zdCBldmVudEVtaXR0ZXIgPSBuZXcgQ2xvdWRiYXNlRXZlbnRFbWl0dGVyKCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRFdmVudExpc3RlbmVyKGV2ZW50OiBzdHJpbmcsIGNhbGxiYWNrOiBGdW5jdGlvbikge1xuICBldmVudEVtaXR0ZXIub24oZXZlbnQsIGNhbGxiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFjdGl2YXRlRXZlbnQoZXZlbnQ6IHN0cmluZywgZGF0YTogYW55ID0ge30pIHtcbiAgZXZlbnRFbWl0dGVyLmZpcmUoZXZlbnQsIGRhdGEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudDogc3RyaW5nLCBjYWxsYmFjazogRnVuY3Rpb24pIHtcbiAgZXZlbnRFbWl0dGVyLm9mZihldmVudCwgY2FsbGJhY2spO1xufVxuIl19
|
package/dist/cjs/libs/util.js
DELETED
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.transformPhone = exports.sleep = exports.printGroupLog = exports.throwError = exports.printInfo = exports.printError = exports.printWarn = exports.execCallback = exports.createPromiseCallback = exports.removeParam = exports.getHash = exports.getQuery = exports.toQueryString = exports.createSign = exports.formatUrl = exports.genSeqId = exports.isFormData = exports.isInstanceOf = exports.isNull = exports.isPalinObject = exports.isUndefined = exports.isString = exports.isArray = void 0;
|
|
7
|
-
var hmac_sha256_1 = __importDefault(require("crypto-js/hmac-sha256"));
|
|
8
|
-
var enc_base64_1 = __importDefault(require("crypto-js/enc-base64"));
|
|
9
|
-
var enc_utf8_1 = __importDefault(require("crypto-js/enc-utf8"));
|
|
10
|
-
var constants_1 = require("../constants");
|
|
11
|
-
function isArray(val) {
|
|
12
|
-
return Object.prototype.toString.call(val) === '[object Array]';
|
|
13
|
-
}
|
|
14
|
-
exports.isArray = isArray;
|
|
15
|
-
function isString(val) {
|
|
16
|
-
return typeof val === 'string';
|
|
17
|
-
}
|
|
18
|
-
exports.isString = isString;
|
|
19
|
-
function isUndefined(val) {
|
|
20
|
-
return typeof val === 'undefined';
|
|
21
|
-
}
|
|
22
|
-
exports.isUndefined = isUndefined;
|
|
23
|
-
function isPalinObject(val) {
|
|
24
|
-
return Object.prototype.toString.call(val) === '[object Object]';
|
|
25
|
-
}
|
|
26
|
-
exports.isPalinObject = isPalinObject;
|
|
27
|
-
function isNull(val) {
|
|
28
|
-
return Object.prototype.toString.call(val) === '[object Null]';
|
|
29
|
-
}
|
|
30
|
-
exports.isNull = isNull;
|
|
31
|
-
function isInstanceOf(instance, construct) {
|
|
32
|
-
return instance instanceof construct;
|
|
33
|
-
}
|
|
34
|
-
exports.isInstanceOf = isInstanceOf;
|
|
35
|
-
function isFormData(val) {
|
|
36
|
-
return Object.prototype.toString.call(val) === '[object FormData]';
|
|
37
|
-
}
|
|
38
|
-
exports.isFormData = isFormData;
|
|
39
|
-
function genSeqId() {
|
|
40
|
-
return Math.random().toString(16)
|
|
41
|
-
.slice(2);
|
|
42
|
-
}
|
|
43
|
-
exports.genSeqId = genSeqId;
|
|
44
|
-
function formatUrl(PROTOCOL, url, query) {
|
|
45
|
-
if (query === void 0) { query = {}; }
|
|
46
|
-
var urlHasQuery = /\?/.test(url);
|
|
47
|
-
var queryString = '';
|
|
48
|
-
for (var key in query) {
|
|
49
|
-
if (queryString === '') {
|
|
50
|
-
!urlHasQuery && (url += '?');
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
queryString += '&';
|
|
54
|
-
}
|
|
55
|
-
queryString += "".concat(key, "=").concat(encodeURIComponent(query[key]));
|
|
56
|
-
}
|
|
57
|
-
url += queryString;
|
|
58
|
-
if (/^http(s)?\:\/\//.test(url)) {
|
|
59
|
-
return url;
|
|
60
|
-
}
|
|
61
|
-
return "".concat(PROTOCOL).concat(url);
|
|
62
|
-
}
|
|
63
|
-
exports.formatUrl = formatUrl;
|
|
64
|
-
function base64url(source) {
|
|
65
|
-
var encodedSource = enc_base64_1.default.stringify(source);
|
|
66
|
-
encodedSource = encodedSource.replace(/=+$/, '');
|
|
67
|
-
encodedSource = encodedSource.replace(/\+/g, '-');
|
|
68
|
-
encodedSource = encodedSource.replace(/\//g, '_');
|
|
69
|
-
return encodedSource;
|
|
70
|
-
}
|
|
71
|
-
function createSign(payload, secret) {
|
|
72
|
-
var header = {
|
|
73
|
-
alg: 'HS256',
|
|
74
|
-
typ: 'JWT',
|
|
75
|
-
};
|
|
76
|
-
var headerStr = base64url(enc_utf8_1.default.parse(JSON.stringify(header)));
|
|
77
|
-
var payloadStr = base64url(enc_utf8_1.default.parse(JSON.stringify(payload)));
|
|
78
|
-
var token = "".concat(headerStr, ".").concat(payloadStr);
|
|
79
|
-
var sign = base64url((0, hmac_sha256_1.default)(token, secret));
|
|
80
|
-
return "".concat(token, ".").concat(sign);
|
|
81
|
-
}
|
|
82
|
-
exports.createSign = createSign;
|
|
83
|
-
function toQueryString(query) {
|
|
84
|
-
if (query === void 0) { query = {}; }
|
|
85
|
-
var queryString = [];
|
|
86
|
-
for (var key in query) {
|
|
87
|
-
queryString.push("".concat(key, "=").concat(encodeURIComponent(query[key])));
|
|
88
|
-
}
|
|
89
|
-
return queryString.join('&');
|
|
90
|
-
}
|
|
91
|
-
exports.toQueryString = toQueryString;
|
|
92
|
-
function getQuery(name, url) {
|
|
93
|
-
if (typeof window === 'undefined') {
|
|
94
|
-
return false;
|
|
95
|
-
}
|
|
96
|
-
var u = url || window.location.search;
|
|
97
|
-
var reg = new RegExp("(^|&)".concat(name, "=([^&]*)(&|$)"));
|
|
98
|
-
var r = u.substr(u.indexOf('?') + 1).match(reg);
|
|
99
|
-
return r != null ? r[2] : '';
|
|
100
|
-
}
|
|
101
|
-
exports.getQuery = getQuery;
|
|
102
|
-
var getHash = function (name) {
|
|
103
|
-
if (typeof window === 'undefined') {
|
|
104
|
-
return '';
|
|
105
|
-
}
|
|
106
|
-
var matches = window.location.hash.match(new RegExp("[#?&/]".concat(name, "=([^&#]*)")));
|
|
107
|
-
return matches ? matches[1] : '';
|
|
108
|
-
};
|
|
109
|
-
exports.getHash = getHash;
|
|
110
|
-
function removeParam(key, sourceURL) {
|
|
111
|
-
var rtn = sourceURL.split('?')[0];
|
|
112
|
-
var param;
|
|
113
|
-
var params_arr = [];
|
|
114
|
-
var queryString = sourceURL.indexOf('?') !== -1 ? sourceURL.split('?')[1] : '';
|
|
115
|
-
if (queryString !== '') {
|
|
116
|
-
params_arr = queryString.split('&');
|
|
117
|
-
for (var i = params_arr.length - 1; i >= 0; i -= 1) {
|
|
118
|
-
param = params_arr[i].split('=')[0];
|
|
119
|
-
if (param === key) {
|
|
120
|
-
params_arr.splice(i, 1);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
rtn = "".concat(rtn, "?").concat(params_arr.join('&'));
|
|
124
|
-
}
|
|
125
|
-
return rtn;
|
|
126
|
-
}
|
|
127
|
-
exports.removeParam = removeParam;
|
|
128
|
-
function createPromiseCallback() {
|
|
129
|
-
var cb;
|
|
130
|
-
if (!Promise) {
|
|
131
|
-
cb = function () { };
|
|
132
|
-
cb.promise = {};
|
|
133
|
-
var throwPromiseNotDefined = function () {
|
|
134
|
-
throw new Error('Your Node runtime does support ES6 Promises. '
|
|
135
|
-
+ 'Set "global.Promise" to your preferred implementation of promises.');
|
|
136
|
-
};
|
|
137
|
-
Object.defineProperty(cb.promise, 'then', { get: throwPromiseNotDefined });
|
|
138
|
-
Object.defineProperty(cb.promise, 'catch', { get: throwPromiseNotDefined });
|
|
139
|
-
return cb;
|
|
140
|
-
}
|
|
141
|
-
var promise = new Promise(function (resolve, reject) {
|
|
142
|
-
cb = function (err, data) {
|
|
143
|
-
if (err)
|
|
144
|
-
return reject(err);
|
|
145
|
-
return resolve(data);
|
|
146
|
-
};
|
|
147
|
-
});
|
|
148
|
-
cb.promise = promise;
|
|
149
|
-
return cb;
|
|
150
|
-
}
|
|
151
|
-
exports.createPromiseCallback = createPromiseCallback;
|
|
152
|
-
function execCallback(fn, err, data) {
|
|
153
|
-
if (data === void 0) { data = null; }
|
|
154
|
-
if (fn && typeof fn === 'function') {
|
|
155
|
-
return fn(err, data);
|
|
156
|
-
}
|
|
157
|
-
if (err) {
|
|
158
|
-
throw err;
|
|
159
|
-
}
|
|
160
|
-
return data;
|
|
161
|
-
}
|
|
162
|
-
exports.execCallback = execCallback;
|
|
163
|
-
function printWarn(error, msg) {
|
|
164
|
-
console.warn("[".concat((0, constants_1.getSdkName)(), "][").concat(error, "]:").concat(msg));
|
|
165
|
-
}
|
|
166
|
-
exports.printWarn = printWarn;
|
|
167
|
-
function printError(error, msg) {
|
|
168
|
-
console.error({
|
|
169
|
-
code: error,
|
|
170
|
-
msg: "[".concat((0, constants_1.getSdkName)(), "][").concat(error, "]:").concat(msg),
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
exports.printError = printError;
|
|
174
|
-
function printInfo(error, msg) {
|
|
175
|
-
console.log("[".concat((0, constants_1.getSdkName)(), "][").concat(error, "]:").concat(msg));
|
|
176
|
-
}
|
|
177
|
-
exports.printInfo = printInfo;
|
|
178
|
-
function throwError(error, msg) {
|
|
179
|
-
throw new Error(JSON.stringify({
|
|
180
|
-
code: error,
|
|
181
|
-
msg: "[".concat((0, constants_1.getSdkName)(), "][").concat(error, "]:").concat(msg),
|
|
182
|
-
}));
|
|
183
|
-
}
|
|
184
|
-
exports.throwError = throwError;
|
|
185
|
-
function printGroupLog(options) {
|
|
186
|
-
var title = options.title, _a = options.subtitle, subtitle = _a === void 0 ? '' : _a, _b = options.content, content = _b === void 0 ? [] : _b, _c = options.printTrace, printTrace = _c === void 0 ? false : _c, _d = options.collapsed, collapsed = _d === void 0 ? false : _d;
|
|
187
|
-
if (collapsed) {
|
|
188
|
-
console.groupCollapsed(title, subtitle);
|
|
189
|
-
}
|
|
190
|
-
else {
|
|
191
|
-
console.group(title, subtitle);
|
|
192
|
-
}
|
|
193
|
-
for (var _i = 0, content_1 = content; _i < content_1.length; _i++) {
|
|
194
|
-
var tip = content_1[_i];
|
|
195
|
-
var type = tip.type, body = tip.body;
|
|
196
|
-
switch (type) {
|
|
197
|
-
case 'info':
|
|
198
|
-
console.log(body);
|
|
199
|
-
break;
|
|
200
|
-
case 'warn':
|
|
201
|
-
console.warn(body);
|
|
202
|
-
break;
|
|
203
|
-
case 'error':
|
|
204
|
-
console.error(body);
|
|
205
|
-
break;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
if (printTrace) {
|
|
209
|
-
console.trace('stack trace:');
|
|
210
|
-
}
|
|
211
|
-
console.groupEnd();
|
|
212
|
-
}
|
|
213
|
-
exports.printGroupLog = printGroupLog;
|
|
214
|
-
var sleep = function (ms) {
|
|
215
|
-
if (ms === void 0) { ms = 0; }
|
|
216
|
-
return new Promise(function (r) { return setTimeout(r, ms); });
|
|
217
|
-
};
|
|
218
|
-
exports.sleep = sleep;
|
|
219
|
-
function transformPhone(phoneNumber) {
|
|
220
|
-
return "+86".concat(phoneNumber);
|
|
221
|
-
}
|
|
222
|
-
exports.transformPhone = transformPhone;
|
|
223
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWJzL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0Esc0VBQTBDO0FBQzFDLG9FQUEwQztBQUMxQyxnRUFBc0M7QUFFdEMsMENBQTBDO0FBRTFDLFNBQWdCLE9BQU8sQ0FBQyxHQUFRO0lBQzlCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLGdCQUFnQixDQUFDO0FBQ2xFLENBQUM7QUFGRCwwQkFFQztBQUNELFNBQWdCLFFBQVEsQ0FBQyxHQUFRO0lBQy9CLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDO0FBQ2pDLENBQUM7QUFGRCw0QkFFQztBQUNELFNBQWdCLFdBQVcsQ0FBQyxHQUFRO0lBQ2xDLE9BQU8sT0FBTyxHQUFHLEtBQUssV0FBVyxDQUFDO0FBQ3BDLENBQUM7QUFGRCxrQ0FFQztBQUNELFNBQWdCLGFBQWEsQ0FBQyxHQUFRO0lBQ3BDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLGlCQUFpQixDQUFDO0FBQ25FLENBQUM7QUFGRCxzQ0FFQztBQUNELFNBQWdCLE1BQU0sQ0FBQyxHQUFRO0lBQzdCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLGVBQWUsQ0FBQztBQUNqRSxDQUFDO0FBRkQsd0JBRUM7QUFDRCxTQUFnQixZQUFZLENBQUMsUUFBYSxFQUFFLFNBQWM7SUFDeEQsT0FBTyxRQUFRLFlBQVksU0FBUyxDQUFDO0FBQ3ZDLENBQUM7QUFGRCxvQ0FFQztBQUNELFNBQWdCLFVBQVUsQ0FBQyxHQUFRO0lBQ2pDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLG1CQUFtQixD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QUFPLEVBQVAsSUFBTyxFQUFFO1FBQXRCLElBQU0sR0FBRyxnQkFBQTtRQUNKLElBQUEsSUFBSSxHQUFXLEdBQUcsS0FBZCxFQUFFLElBQUksR0FBSyxHQUFHLEtBQVIsQ0FBUztRQUMzQixRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssTUFBTTtnQkFDVCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNsQixNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ25CLE1BQU07WUFDUixLQUFLLE9BQU87Z0JBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEIsTUFBTTtTQUNUO0tBQ0Y7SUFDRCxJQUFJLFVBQVUsRUFBRTtRQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7S0FDL0I7SUFDRCxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDckIsQ0FBQztBQXpCRCxzQ0F5QkM7QUFFTSxJQUFNLEtBQUssR0FBRyxVQUFDLEVBQU07SUFBTixtQkFBQSxFQUFBLE1BQU07SUFBSyxPQUFBLElBQUksT0FBTyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsVUFBVSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBakIsQ0FBaUIsQ0FBQztBQUFuQyxDQUFtQyxDQUFDO0FBQXhELFFBQUEsS0FBSyxTQUFtRDtBQUVyRSxTQUFnQixjQUFjLENBQUMsV0FBbUI7SUFDaEQsT0FBTyxhQUFNLFdBQVcsQ0FBRSxDQUFDO0FBQzdCLENBQUM7QUFGRCx3Q0FFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVzZWxlc3MtZXNjYXBlICovXG5pbXBvcnQgaHMyNTYgZnJvbSAnY3J5cHRvLWpzL2htYWMtc2hhMjU2JztcbmltcG9ydCBiYXNlNjQgZnJvbSAnY3J5cHRvLWpzL2VuYy1iYXNlNjQnO1xuaW1wb3J0IHV0ZjggZnJvbSAnY3J5cHRvLWpzL2VuYy11dGY4JztcbmltcG9ydCB7IEtWIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcyc7XG5pbXBvcnQgeyBnZXRTZGtOYW1lIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzQXJyYXkodmFsOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWwpID09PSAnW29iamVjdCBBcnJheV0nO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nKHZhbDogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1VuZGVmaW5lZCh2YWw6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ3VuZGVmaW5lZCc7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNQYWxpbk9iamVjdCh2YWw6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbCkgPT09ICdbb2JqZWN0IE9iamVjdF0nO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbCh2YWw6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbCkgPT09ICdbb2JqZWN0IE51bGxdJztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0luc3RhbmNlT2YoaW5zdGFuY2U6IGFueSwgY29uc3RydWN0OiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIGluc3RhbmNlIGluc3RhbmNlb2YgY29uc3RydWN0O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzRm9ybURhdGEodmFsOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWwpID09PSAnW29iamVjdCBGb3JtRGF0YV0nO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdlblNlcUlkKCk6IHN0cmluZyB7XG4gIHJldHVybiBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDE2KVxuICAgIC5zbGljZSgyKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRVcmwoUFJPVE9DT0w6IHN0cmluZywgdXJsOiBzdHJpbmcsIHF1ZXJ5OiBLVjxhbnk+ID0ge30pOiBzdHJpbmcge1xuICBjb25zdCB1cmxIYXNRdWVyeSA9IC9cXD8vLnRlc3QodXJsKTtcbiAgbGV0IHF1ZXJ5U3RyaW5nID0gJyc7XG4gIGZvciAoY29uc3Qga2V5IGluIHF1ZXJ5KSB7XG4gICAgaWYgKHF1ZXJ5U3RyaW5nID09PSAnJykge1xuICAgICAgIXVybEhhc1F1ZXJ5ICYmICh1cmwgKz0gJz8nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcXVlcnlTdHJpbmcgKz0gJyYnO1xuICAgIH1cbiAgICBxdWVyeVN0cmluZyArPSBgJHtrZXl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHF1ZXJ5W2tleV0pfWA7XG4gIH1cbiAgdXJsICs9IHF1ZXJ5U3RyaW5nO1xuICBpZiAoL15odHRwKHMpP1xcOlxcL1xcLy8udGVzdCh1cmwpKSB7XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuICByZXR1cm4gYCR7UFJPVE9DT0x9JHt1cmx9YDtcbn1cblxuZnVuY3Rpb24gYmFzZTY0dXJsKHNvdXJjZTogS1Y8YW55Pik6IHN0cmluZyB7XG4gIGxldCBlbmNvZGVkU291cmNlID0gYmFzZTY0LnN0cmluZ2lmeShzb3VyY2UpO1xuXG4gIGVuY29kZWRTb3VyY2UgPSBlbmNvZGVkU291cmNlLnJlcGxhY2UoLz0rJC8sICcnKTtcbiAgZW5jb2RlZFNvdXJjZSA9IGVuY29kZWRTb3VyY2UucmVwbGFjZSgvXFwrL2csICctJyk7XG4gIGVuY29kZWRTb3VyY2UgPSBlbmNvZGVkU291cmNlLnJlcGxhY2UoL1xcLy9nLCAnXycpO1xuXG4gIHJldHVybiBlbmNvZGVkU291cmNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2lnbihwYXlsb2FkOiBLVjxhbnk+LCBzZWNyZXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGhlYWRlciA9IHtcbiAgICBhbGc6ICdIUzI1NicsXG4gICAgdHlwOiAnSldUJyxcbiAgfTtcbiAgY29uc3QgaGVhZGVyU3RyID0gYmFzZTY0dXJsKHV0ZjgucGFyc2UoSlNPTi5zdHJpbmdpZnkoaGVhZGVyKSkpO1xuICBjb25zdCBwYXlsb2FkU3RyID0gYmFzZTY0dXJsKHV0ZjgucGFyc2UoSlNPTi5zdHJpbmdpZnkocGF5bG9hZCkpKTtcblxuICBjb25zdCB0b2tlbiA9IGAke2hlYWRlclN0cn0uJHtwYXlsb2FkU3RyfWA7XG4gIGNvbnN0IHNpZ24gPSBiYXNlNjR1cmwoaHMyNTYodG9rZW4sIHNlY3JldCkpO1xuICByZXR1cm4gYCR7dG9rZW59LiR7c2lnbn1gO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHRvUXVlcnlTdHJpbmcocXVlcnk6IEtWPGFueT4gPSB7fSkge1xuICBjb25zdCBxdWVyeVN0cmluZyA9IFtdO1xuICBmb3IgKGNvbnN0IGtleSBpbiBxdWVyeSkge1xuICAgIHF1ZXJ5U3RyaW5nLnB1c2goYCR7a2V5fT0ke2VuY29kZVVSSUNvbXBvbmVudChxdWVyeVtrZXldKX1gKTtcbiAgfVxuICByZXR1cm4gcXVlcnlTdHJpbmcuam9pbignJicpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UXVlcnkobmFtZTogc3RyaW5nLCB1cmw/OiBzdHJpbmcpIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIOWPguaVsO+8muWPmOmHj+WQje+8jHVybOS4uuepuuWImeihqOS7juW9k+WJjemhtemdoueahHVybOS4reWPllxuICBjb25zdCB1ID0gdXJsIHx8IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2g7XG4gIGNvbnN0IHJlZyA9IG5ldyBSZWdFeHAoYChefCYpJHtuYW1lfT0oW14mXSopKCZ8JClgKTtcbiAgY29uc3QgciA9IHUuc3Vic3RyKHUuaW5kZXhPZignPycpICsgMSkubWF0Y2gocmVnKTtcbiAgcmV0dXJuIHIgIT0gbnVsbCA/IHJbMl0gOiAnJztcbn1cblxuZXhwb3J0IGNvbnN0IGdldEhhc2ggPSBmdW5jdGlvbiAobmFtZTogc3RyaW5nKSB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiAnJztcbiAgfVxuICBjb25zdCBtYXRjaGVzID0gd2luZG93LmxvY2F0aW9uLmhhc2gubWF0Y2gobmV3IFJlZ0V4cChgWyNcXD8mXFwvXSR7bmFtZX09KFteJiNdKilgKSk7XG4gIHJldHVybiBtYXRjaGVzID8gbWF0Y2hlc1sxXSA6ICcnO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVBhcmFtKGtleTogc3RyaW5nLCBzb3VyY2VVUkw6IHN0cmluZykge1xuICBsZXQgcnRuID0gc291cmNlVVJMLnNwbGl0KCc/JylbMF07XG4gIGxldCBwYXJhbTtcbiAgbGV0IHBhcmFtc19hcnIgPSBbXTtcbiAgY29uc3QgcXVlcnlTdHJpbmcgPSAgICBzb3VyY2VVUkwuaW5kZXhPZignPycpICE9PSAtMSA/IHNvdXJjZVVSTC5zcGxpdCgnPycpWzFdIDogJyc7XG4gIGlmIChxdWVyeVN0cmluZyAhPT0gJycpIHtcbiAgICBwYXJhbXNfYXJyID0gcXVlcnlTdHJpbmcuc3BsaXQoJyYnKTtcbiAgICBmb3IgKGxldCBpID0gcGFyYW1zX2Fyci5sZW5ndGggLSAxOyBpID49IDA7IGkgLT0gMSkge1xuICAgICAgcGFyYW0gPSBwYXJhbXNfYXJyW2ldLnNwbGl0KCc9JylbMF07XG4gICAgICBpZiAocGFyYW0gPT09IGtleSkge1xuICAgICAgICBwYXJhbXNfYXJyLnNwbGljZShpLCAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcnRuID0gYCR7cnRufT8ke3BhcmFtc19hcnIuam9pbignJicpfWA7XG4gIH1cbiAgcmV0dXJuIHJ0bjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb21pc2VDYWxsYmFjaygpIHtcbiAgbGV0IGNiOiBhbnk7XG4gIGlmICghUHJvbWlzZSkge1xuICAgIGNiID0gKCkgPT4geyB9O1xuICAgIGNiLnByb21pc2UgPSB7fTtcblxuICAgIGNvbnN0IHRocm93UHJvbWlzZU5vdERlZmluZWQgPSAoKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdXIgTm9kZSBydW50aW1lIGRvZXMgc3VwcG9ydCBFUzYgUHJvbWlzZXMuICdcbiAgICAgICAgKyAnU2V0IFwiZ2xvYmFsLlByb21pc2VcIiB0byB5b3VyIHByZWZlcnJlZCBpbXBsZW1lbnRhdGlvbiBvZiBwcm9taXNlcy4nKTtcbiAgICB9O1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNiLnByb21pc2UsICd0aGVuJywgeyBnZXQ6IHRocm93UHJvbWlzZU5vdERlZmluZWQgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNiLnByb21pc2UsICdjYXRjaCcsIHsgZ2V0OiB0aHJvd1Byb21pc2VOb3REZWZpbmVkIH0pO1xuICAgIHJldHVybiBjYjtcbiAgfVxuXG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY2IgPSAoZXJyLCBkYXRhKSA9PiB7XG4gICAgICBpZiAoZXJyKSByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICByZXR1cm4gcmVzb2x2ZShkYXRhKTtcbiAgICB9O1xuICB9KTtcbiAgY2IucHJvbWlzZSA9IHByb21pc2U7XG4gIHJldHVybiBjYjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4ZWNDYWxsYmFjayhmbjogRnVuY3Rpb24gfCBudWxsIHwgdW5kZWZpbmVkLCBlcnI6IGFueSwgZGF0YSA9IG51bGwpIHtcbiAgaWYgKGZuICYmIHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBmbihlcnIsIGRhdGEpO1xuICB9XG4gIGlmIChlcnIpIHtcbiAgICB0aHJvdyBlcnI7XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmludFdhcm4oZXJyb3I6IHN0cmluZywgbXNnOiBzdHJpbmcpIHtcbiAgY29uc29sZS53YXJuKGBbJHtnZXRTZGtOYW1lKCl9XVske2Vycm9yfV06JHttc2d9YCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmludEVycm9yKGVycm9yOiBzdHJpbmcsIG1zZzogc3RyaW5nKSB7XG4gIGNvbnNvbGUuZXJyb3Ioe1xuICAgIGNvZGU6IGVycm9yLFxuICAgIG1zZzogYFske2dldFNka05hbWUoKX1dWyR7ZXJyb3J9XToke21zZ31gLFxuICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBwcmludEluZm8oZXJyb3I6IHN0cmluZywgbXNnOiBzdHJpbmcpIHtcbiAgY29uc29sZS5sb2coYFske2dldFNka05hbWUoKX1dWyR7ZXJyb3J9XToke21zZ31gKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0Vycm9yKGVycm9yOiBzdHJpbmcsIG1zZzogc3RyaW5nKSB7XG4gIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgY29kZTogZXJyb3IsXG4gICAgbXNnOiBgWyR7Z2V0U2RrTmFtZSgpfV1bJHtlcnJvcn1dOiR7bXNnfWAsXG4gIH0pKTtcbn1cblxuaW50ZXJmYWNlIElQcmludEdyb3VwTG9nT3B0aW9ucyB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHN1YnRpdGxlOiBzdHJpbmcgfCBvYmplY3Q7XG4gIGNvbnRlbnQ6IHtcbiAgICB0eXBlOiAnaW5mbycgfCAnd2FybicgfCAnZXJyb3InLFxuICAgIGJvZHk6IHN0cmluZyB8IEVycm9yO1xuICB9W107XG4gIHByaW50VHJhY2U/OiBib29sZWFuO1xuICBjb2xsYXBzZWQ/OiBib29sZWFuO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHByaW50R3JvdXBMb2cob3B0aW9uczogSVByaW50R3JvdXBMb2dPcHRpb25zKSB7XG4gIGNvbnN0IHsgdGl0bGUsIHN1YnRpdGxlID0gJycsIGNvbnRlbnQgPSBbXSwgcHJpbnRUcmFjZSA9IGZhbHNlLCBjb2xsYXBzZWQgPSBmYWxzZSB9ID0gb3B0aW9ucztcbiAgaWYgKGNvbGxhcHNlZCkge1xuICAgIGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQodGl0bGUsIHN1YnRpdGxlKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmdyb3VwKHRpdGxlLCBzdWJ0aXRsZSk7XG4gIH1cbiAgZm9yIChjb25zdCB0aXAgb2YgY29udGVudCkge1xuICAgIGNvbnN0IHsgdHlwZSwgYm9keSB9ID0gdGlwO1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnaW5mbyc6XG4gICAgICAgIGNvbnNvbGUubG9nKGJvZHkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3dhcm4nOlxuICAgICAgICBjb25zb2xlLndhcm4oYm9keSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICBjb25zb2xlLmVycm9yKGJvZHkpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgaWYgKHByaW50VHJhY2UpIHtcbiAgICBjb25zb2xlLnRyYWNlKCdzdGFjayB0cmFjZTonKTtcbiAgfVxuICBjb25zb2xlLmdyb3VwRW5kKCk7XG59XG5cbmV4cG9ydCBjb25zdCBzbGVlcCA9IChtcyA9IDApID0+IG5ldyBQcm9taXNlKHIgPT4gc2V0VGltZW91dChyLCBtcykpO1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUGhvbmUocGhvbmVOdW1iZXI6IHN0cmluZykge1xuICByZXR1cm4gYCs4NiR7cGhvbmVOdW1iZXJ9YDtcbn1cblxuIl19
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|