@appium/support 2.56.1 → 2.57.2
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/build/lib/env.d.ts +54 -0
- package/build/lib/env.d.ts.map +1 -0
- package/build/lib/fs.d.ts +221 -0
- package/build/lib/fs.d.ts.map +1 -0
- package/build/lib/fs.js +1 -1
- package/build/lib/image-util.d.ts +56 -0
- package/build/lib/image-util.d.ts.map +1 -0
- package/build/lib/image-util.js +2 -3
- package/build/lib/index.d.ts +38 -0
- package/build/lib/index.d.ts.map +1 -0
- package/build/lib/index.js +20 -14
- package/build/lib/log-internal.d.ts +74 -0
- package/build/lib/log-internal.d.ts.map +1 -0
- package/build/lib/log-internal.js +10 -18
- package/build/lib/logger.d.ts +3 -0
- package/build/lib/logger.d.ts.map +1 -0
- package/build/lib/logging.d.ts +45 -0
- package/build/lib/logging.d.ts.map +1 -0
- package/build/lib/logging.js +11 -13
- package/build/lib/mjpeg.d.ts +65 -0
- package/build/lib/mjpeg.d.ts.map +1 -0
- package/build/lib/mjpeg.js +11 -4
- package/build/lib/mkdirp.d.ts +3 -0
- package/build/lib/mkdirp.d.ts.map +1 -0
- package/build/lib/net.d.ts +95 -0
- package/build/lib/net.d.ts.map +1 -0
- package/build/lib/net.js +41 -23
- package/build/lib/node.d.ts +26 -0
- package/build/lib/node.d.ts.map +1 -0
- package/build/lib/node.js +4 -2
- package/build/lib/npm.d.ts +123 -0
- package/build/lib/npm.d.ts.map +1 -0
- package/build/lib/npm.js +18 -41
- package/build/lib/plist.d.ts +43 -0
- package/build/lib/plist.d.ts.map +1 -0
- package/build/lib/plist.js +1 -1
- package/build/lib/process.d.ts +3 -0
- package/build/lib/process.d.ts.map +1 -0
- package/build/lib/system.d.ts +7 -0
- package/build/lib/system.d.ts.map +1 -0
- package/build/lib/tempdir.d.ts +63 -0
- package/build/lib/tempdir.d.ts.map +1 -0
- package/build/lib/tempdir.js +3 -6
- package/build/lib/timing.d.ts +46 -0
- package/build/lib/timing.d.ts.map +1 -0
- package/build/lib/util.d.ts +183 -0
- package/build/lib/util.d.ts.map +1 -0
- package/build/lib/util.js +4 -8
- package/build/lib/zip.d.ts +180 -0
- package/build/lib/zip.d.ts.map +1 -0
- package/build/lib/zip.js +6 -2
- package/build/tsconfig.tsbuildinfo +1 -0
- package/lib/fs.js +9 -4
- package/lib/image-util.js +23 -7
- package/lib/index.js +2 -8
- package/lib/log-internal.js +31 -38
- package/lib/logging.js +40 -16
- package/lib/mjpeg.js +14 -5
- package/lib/net.js +116 -60
- package/lib/node.js +4 -4
- package/lib/npm.js +33 -90
- package/lib/plist.js +3 -1
- package/lib/tempdir.js +8 -7
- package/lib/util.js +10 -11
- package/lib/zip.js +24 -13
- package/package.json +18 -11
package/build/lib/index.js
CHANGED
|
@@ -3,7 +3,21 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.env = exports.default = exports.cancellableDelay = void 0;
|
|
7
|
+
Object.defineProperty(exports, "fs", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return _fs.fs;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
exports.mjpeg = exports.logger = exports.imageUtil = void 0;
|
|
14
|
+
Object.defineProperty(exports, "mkdirp", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () {
|
|
17
|
+
return _mkdirp.mkdirp;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
exports.node = exports.net = void 0;
|
|
7
21
|
Object.defineProperty(exports, "npm", {
|
|
8
22
|
enumerable: true,
|
|
9
23
|
get: function () {
|
|
@@ -26,7 +40,7 @@ var util = _interopRequireWildcard(require("./util"));
|
|
|
26
40
|
|
|
27
41
|
exports.util = util;
|
|
28
42
|
|
|
29
|
-
var
|
|
43
|
+
var _fs = require("./fs");
|
|
30
44
|
|
|
31
45
|
var net = _interopRequireWildcard(require("./net"));
|
|
32
46
|
|
|
@@ -36,7 +50,7 @@ var plist = _interopRequireWildcard(require("./plist"));
|
|
|
36
50
|
|
|
37
51
|
exports.plist = plist;
|
|
38
52
|
|
|
39
|
-
var
|
|
53
|
+
var _mkdirp = require("./mkdirp");
|
|
40
54
|
|
|
41
55
|
var logger = _interopRequireWildcard(require("./logging"));
|
|
42
56
|
|
|
@@ -76,26 +90,18 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
76
90
|
|
|
77
91
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
78
92
|
|
|
79
|
-
const {
|
|
80
|
-
fs
|
|
81
|
-
} = fsIndex;
|
|
82
|
-
exports.fs = fs;
|
|
83
93
|
const {
|
|
84
94
|
cancellableDelay
|
|
85
95
|
} = util;
|
|
86
96
|
exports.cancellableDelay = cancellableDelay;
|
|
87
|
-
const {
|
|
88
|
-
mkdirp
|
|
89
|
-
} = mkdirpIndex;
|
|
90
|
-
exports.mkdirp = mkdirp;
|
|
91
97
|
var _default = {
|
|
92
98
|
tempDir,
|
|
93
99
|
system,
|
|
94
100
|
util,
|
|
95
|
-
fs,
|
|
101
|
+
fs: _fs.fs,
|
|
96
102
|
cancellableDelay,
|
|
97
103
|
plist,
|
|
98
|
-
mkdirp,
|
|
104
|
+
mkdirp: _mkdirp.mkdirp,
|
|
99
105
|
logger,
|
|
100
106
|
process,
|
|
101
107
|
zip,
|
|
@@ -107,4 +113,4 @@ var _default = {
|
|
|
107
113
|
env
|
|
108
114
|
};
|
|
109
115
|
exports.default = _default;
|
|
110
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
116
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9pbmRleC5qcyJdLCJuYW1lcyI6WyJjYW5jZWxsYWJsZURlbGF5IiwidXRpbCIsInRlbXBEaXIiLCJzeXN0ZW0iLCJmcyIsInBsaXN0IiwibWtkaXJwIiwibG9nZ2VyIiwicHJvY2VzcyIsInppcCIsImltYWdlVXRpbCIsIm5ldCIsIm1qcGVnIiwibm9kZSIsInRpbWluZyIsImVudiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFFQTs7Ozs7O0FBRUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQXVCQyxJQUE3Qjs7ZUFNZTtBQUNiQyxFQUFBQSxPQURhO0FBQ0pDLEVBQUFBLE1BREk7QUFDSUYsRUFBQUEsSUFESjtBQUNVRyxFQUFBQSxFQUFFLEVBQUZBLE1BRFY7QUFDY0osRUFBQUEsZ0JBRGQ7QUFDZ0NLLEVBQUFBLEtBRGhDO0FBQ3VDQyxFQUFBQSxNQUFNLEVBQU5BLGNBRHZDO0FBQytDQyxFQUFBQSxNQUQvQztBQUN1REMsRUFBQUEsT0FEdkQ7QUFFYkMsRUFBQUEsR0FGYTtBQUVSQyxFQUFBQSxTQUZRO0FBRUdDLEVBQUFBLEdBRkg7QUFFUUMsRUFBQUEsS0FGUjtBQUVlQyxFQUFBQSxJQUZmO0FBRXFCQyxFQUFBQSxNQUZyQjtBQUU2QkMsRUFBQUE7QUFGN0IsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHRlbXBEaXIgZnJvbSAnLi90ZW1wZGlyJztcbmltcG9ydCAqIGFzIHN5c3RlbSBmcm9tICcuL3N5c3RlbSc7XG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBmcyB9IGZyb20gJy4vZnMnO1xuaW1wb3J0ICogYXMgbmV0IGZyb20gJy4vbmV0JztcbmltcG9ydCAqIGFzIHBsaXN0IGZyb20gJy4vcGxpc3QnO1xuaW1wb3J0IHsgbWtkaXJwIH0gZnJvbSAnLi9ta2RpcnAnO1xuaW1wb3J0ICogYXMgbG9nZ2VyIGZyb20gJy4vbG9nZ2luZyc7XG5pbXBvcnQgKiBhcyBwcm9jZXNzIGZyb20gJy4vcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyB6aXAgZnJvbSAnLi96aXAnO1xuaW1wb3J0ICogYXMgaW1hZ2VVdGlsIGZyb20gJy4vaW1hZ2UtdXRpbCc7XG5pbXBvcnQgKiBhcyBtanBlZyBmcm9tICcuL21qcGVnJztcbmltcG9ydCAqIGFzIG5vZGUgZnJvbSAnLi9ub2RlJztcbmltcG9ydCAqIGFzIHRpbWluZyBmcm9tICcuL3RpbWluZyc7XG5pbXBvcnQgKiBhcyBlbnYgZnJvbSAnLi9lbnYnO1xuXG5leHBvcnQgeyBucG0gfSBmcm9tICcuL25wbSc7XG5cbmNvbnN0IHsgY2FuY2VsbGFibGVEZWxheSB9ID0gdXRpbDtcblxuZXhwb3J0IHtcbiAgdGVtcERpciwgc3lzdGVtLCB1dGlsLCBmcywgY2FuY2VsbGFibGVEZWxheSwgcGxpc3QsIG1rZGlycCwgbG9nZ2VyLCBwcm9jZXNzLFxuICB6aXAsIGltYWdlVXRpbCwgbmV0LCBtanBlZywgbm9kZSwgdGltaW5nLCBlbnZcbn07XG5leHBvcnQgZGVmYXVsdCB7XG4gIHRlbXBEaXIsIHN5c3RlbSwgdXRpbCwgZnMsIGNhbmNlbGxhYmxlRGVsYXksIHBsaXN0LCBta2RpcnAsIGxvZ2dlciwgcHJvY2VzcyxcbiAgemlwLCBpbWFnZVV0aWwsIG5ldCwgbWpwZWcsIG5vZGUsIHRpbWluZywgZW52XG59O1xuIl19
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export default SECURE_VALUES_PREPROCESSOR;
|
|
2
|
+
export type Rule = {
|
|
3
|
+
/**
|
|
4
|
+
* A valid RegExp pattern to be replaced
|
|
5
|
+
*/
|
|
6
|
+
pattern: string;
|
|
7
|
+
/**
|
|
8
|
+
* A text match to replace. Either this property or the
|
|
9
|
+
* above one must be provided. `pattern` has priority over `text` if both are provided.
|
|
10
|
+
*/
|
|
11
|
+
text: string;
|
|
12
|
+
/**
|
|
13
|
+
* Regular expression flags for the given pattern.
|
|
14
|
+
* Supported flag are the same as for the standard JavaScript RegExp constructor:
|
|
15
|
+
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Advanced_searching_with_flags_2
|
|
16
|
+
* The 'g' (global matching) is always enabled though.
|
|
17
|
+
*/
|
|
18
|
+
flags?: string | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* The replacer value to use. By default
|
|
21
|
+
* equals to `DEFAULT_SECURE_REPLACER`
|
|
22
|
+
*/
|
|
23
|
+
replacer?: string | undefined;
|
|
24
|
+
};
|
|
25
|
+
export type SecureValuePreprocessingRule = {
|
|
26
|
+
/**
|
|
27
|
+
* The parsed pattern which is going to be used for replacement
|
|
28
|
+
*/
|
|
29
|
+
pattern: RegExp;
|
|
30
|
+
/**
|
|
31
|
+
* The replacer value to use. By default
|
|
32
|
+
* equals to `DEFAULT_SECURE_REPLACER`
|
|
33
|
+
*/
|
|
34
|
+
replacer?: string | undefined;
|
|
35
|
+
};
|
|
36
|
+
export const SECURE_VALUES_PREPROCESSOR: SecureValuesPreprocessor;
|
|
37
|
+
export class SecureValuesPreprocessor {
|
|
38
|
+
_rules: any[];
|
|
39
|
+
/**
|
|
40
|
+
* @returns {Array<SecureValuePreprocessingRule>} The list of successfully
|
|
41
|
+
* parsed preprocessing rules
|
|
42
|
+
*/
|
|
43
|
+
get rules(): SecureValuePreprocessingRule[];
|
|
44
|
+
/**
|
|
45
|
+
* Parses single rule from the given JSON file
|
|
46
|
+
*
|
|
47
|
+
* @param {string|Rule} rule The rule might either be represented as a single string
|
|
48
|
+
* or a configuration object
|
|
49
|
+
* @throws {Error} If there was an error while parsing the rule
|
|
50
|
+
* @returns {SecureValuePreprocessingRule} The parsed rule
|
|
51
|
+
*/
|
|
52
|
+
parseRule(rule: string | Rule): SecureValuePreprocessingRule;
|
|
53
|
+
/**
|
|
54
|
+
* Loads rules from the given JSON file
|
|
55
|
+
*
|
|
56
|
+
* @param {string|string[]|Rule[]} source The full path to the JSON file containing secure
|
|
57
|
+
* values replacement rules or the rules themselves represented as an array
|
|
58
|
+
* @throws {Error} If the format of the source file is invalid or
|
|
59
|
+
* it does not exist
|
|
60
|
+
* @returns {Promise<string[]>} The list of issues found while parsing each rule.
|
|
61
|
+
* An empty list is returned if no rule parsing issues were found
|
|
62
|
+
*/
|
|
63
|
+
loadRules(source: string | string[] | Rule[]): Promise<string[]>;
|
|
64
|
+
/**
|
|
65
|
+
* Performs secure values replacement inside the given string
|
|
66
|
+
* according to the previously loaded rules. No replacement is made
|
|
67
|
+
* if there are no rules or the given value is not a string
|
|
68
|
+
*
|
|
69
|
+
* @param {string} str The string to make replacements in
|
|
70
|
+
* @returns {string} The string with replacements made
|
|
71
|
+
*/
|
|
72
|
+
preprocess(str: string): string;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=log-internal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-internal.d.ts","sourceRoot":"","sources":["../../lib/log-internal.js"],"names":[],"mappings":";;;;;aA+Ic,MAAM;;;;;UACN,MAAM;;;;;;;;;;;;;;;;;;aAYN,MAAM;;;;;;;AApBpB,kEAAkE;AAlIlE;IAEI,cAAgB;IAGlB;;;OAGG;IACH,4CAEC;IAED;;;;;;;OAOG;IACH,gBALW,MAAM,GAAC,IAAI,GAGT,4BAA4B,CAgDxC;IAED;;;;;;;;;OASG;IACH,kBAPW,MAAM,GAAC,MAAM,EAAE,GAAC,IAAI,EAAE,GAIpB,QAAQ,MAAM,EAAE,CAAC,CA+B7B;IAED;;;;;;;OAOG;IACH,gBAHW,MAAM,GACJ,MAAM,CAYlB;CACF"}
|
|
@@ -25,37 +25,33 @@ class SecureValuesPreprocessor {
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
parseRule(rule) {
|
|
28
|
-
const raiseError = msg => {
|
|
29
|
-
throw new Error(`${JSON.stringify(rule)} -> ${msg}`);
|
|
30
|
-
};
|
|
31
|
-
|
|
32
28
|
let pattern;
|
|
33
29
|
let replacer = DEFAULT_REPLACER;
|
|
34
30
|
let flags = ['g'];
|
|
35
31
|
|
|
36
32
|
if (_lodash.default.isString(rule)) {
|
|
37
33
|
if (rule.length === 0) {
|
|
38
|
-
|
|
34
|
+
throw new Error(`${JSON.stringify(rule)} -> The value must not be empty`);
|
|
39
35
|
}
|
|
40
36
|
|
|
41
37
|
pattern = `\\b${_lodash.default.escapeRegExp(rule)}\\b`;
|
|
42
38
|
} else if (_lodash.default.isPlainObject(rule)) {
|
|
43
39
|
if (_lodash.default.has(rule, 'pattern')) {
|
|
44
40
|
if (!_lodash.default.isString(rule.pattern) || rule.pattern.length === 0) {
|
|
45
|
-
|
|
41
|
+
throw new Error(`${JSON.stringify(rule)} -> The value of 'pattern' must be a valid non-empty string`);
|
|
46
42
|
}
|
|
47
43
|
|
|
48
44
|
pattern = rule.pattern;
|
|
49
45
|
} else if (_lodash.default.has(rule, 'text')) {
|
|
50
46
|
if (!_lodash.default.isString(rule.text) || rule.text.length === 0) {
|
|
51
|
-
|
|
47
|
+
throw new Error(`${JSON.stringify(rule)} -> The value of 'text' must be a valid non-empty string`);
|
|
52
48
|
}
|
|
53
49
|
|
|
54
50
|
pattern = `\\b${_lodash.default.escapeRegExp(rule.text)}\\b`;
|
|
55
51
|
}
|
|
56
52
|
|
|
57
53
|
if (!pattern) {
|
|
58
|
-
|
|
54
|
+
throw new Error(`${JSON.stringify(rule)} -> Must either have a field named 'pattern' or 'text'`);
|
|
59
55
|
}
|
|
60
56
|
|
|
61
57
|
if (_lodash.default.has(rule, 'flags')) {
|
|
@@ -72,17 +68,13 @@ class SecureValuesPreprocessor {
|
|
|
72
68
|
replacer = rule.replacer;
|
|
73
69
|
}
|
|
74
70
|
} else {
|
|
75
|
-
|
|
71
|
+
throw new Error(`${JSON.stringify(rule)} -> Must either be a string or an object`);
|
|
76
72
|
}
|
|
77
73
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
};
|
|
83
|
-
} catch (e) {
|
|
84
|
-
raiseError(e.message);
|
|
85
|
-
}
|
|
74
|
+
return {
|
|
75
|
+
pattern: new RegExp(pattern, flags.join('')),
|
|
76
|
+
replacer
|
|
77
|
+
};
|
|
86
78
|
}
|
|
87
79
|
|
|
88
80
|
async loadRules(source) {
|
|
@@ -141,4 +133,4 @@ const SECURE_VALUES_PREPROCESSOR = new SecureValuesPreprocessor();
|
|
|
141
133
|
exports.SECURE_VALUES_PREPROCESSOR = SECURE_VALUES_PREPROCESSOR;
|
|
142
134
|
var _default = SECURE_VALUES_PREPROCESSOR;
|
|
143
135
|
exports.default = _default;
|
|
144
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9sb2ctaW50ZXJuYWwuanMiXSwibmFtZXMiOlsiREVGQVVMVF9SRVBMQUNFUiIsIlNlY3VyZVZhbHVlc1ByZXByb2Nlc3NvciIsImNvbnN0cnVjdG9yIiwiX3J1bGVzIiwicnVsZXMiLCJwYXJzZVJ1bGUiLCJydWxlIiwicmFpc2VFcnJvciIsIm1zZyIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsInBhdHRlcm4iLCJyZXBsYWNlciIsImZsYWdzIiwiXyIsImlzU3RyaW5nIiwibGVuZ3RoIiwiZXNjYXBlUmVnRXhwIiwiaXNQbGFpbk9iamVjdCIsImhhcyIsInRleHQiLCJmbGFnIiwiaW5jbHVkZXMiLCJwdXNoIiwidW5pcSIsIlJlZ0V4cCIsImpvaW4iLCJlIiwibWVzc2FnZSIsImxvYWRSdWxlcyIsInNvdXJjZSIsImlzQXJyYXkiLCJmcyIsImV4aXN0cyIsInBhcnNlIiwicmVhZEZpbGUiLCJpc3N1ZXMiLCJwcmVwcm9jZXNzIiwic3RyIiwicmVzdWx0IiwicmVwbGFjZSIsIlNFQ1VSRV9WQUxVRVNfUFJFUFJPQ0VTU09SIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUVBLE1BQU1BLGdCQUFnQixHQUFHLFlBQXpCOztBQVNBLE1BQU1DLHdCQUFOLENBQStCO0FBQzdCQyxFQUFBQSxXQUFXLEdBQUk7QUFDYixTQUFLQyxNQUFMLEdBQWMsRUFBZDtBQUNEOztBQU1RLE1BQUxDLEtBQUssR0FBSTtBQUNYLFdBQU8sS0FBS0QsTUFBWjtBQUNEOztBQXVCREUsRUFBQUEsU0FBUyxDQUFFQyxJQUFGLEVBQVE7QUFDZixVQUFNQyxVQUFVLEdBQUlDLEdBQUQsSUFBUztBQUMxQixZQUFNLElBQUlDLEtBQUosQ0FBVyxHQUFFQyxJQUFJLENBQUNDLFNBQUwsQ0FBZUwsSUFBZixDQUFxQixPQUFNRSxHQUFJLEVBQTVDLENBQU47QUFDRCxLQUZEOztBQUlBLFFBQUlJLE9BQUo7QUFDQSxRQUFJQyxRQUFRLEdBQUdiLGdC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LE1BQXhCLEVBQWdDO0FBQzlCcUMsTUFBQUEsTUFBTSxHQUFHQSxNQUFNLENBQUNDLE9BQVAsQ0FBZW5DLElBQUksQ0FBQ00sT0FBcEIsRUFBNkJOLElBQUksQ0FBQ08sUUFBbEMsQ0FBVDtBQUNEOztBQUNELFdBQU8yQixNQUFQO0FBQ0Q7O0FBcEo0Qjs7O0FBdUovQixNQUFNRSwwQkFBMEIsR0FBRyxJQUFJekMsd0JBQUosRUFBbkM7O2VBR2V5QywwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICcuL2ZzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmNvbnN0IERFRkFVTFRfUkVQTEFDRVIgPSAnKipTRUNVUkUqKic7XG5cbi8qKlxuICogQHR5cGVkZWYgU2VjdXJlVmFsdWVQcmVwcm9jZXNzaW5nUnVsZVxuICogQHByb3BlcnR5IHtSZWdFeHB9IHBhdHRlcm4gVGhlIHBhcnNlZCBwYXR0ZXJuIHdoaWNoIGlzIGdvaW5nIHRvIGJlIHVzZWQgZm9yIHJlcGxhY2VtZW50XG4gKiBAcHJvcGVydHkge3N0cmluZ30gcmVwbGFjZXIgW0RFRkFVTFRfU0VDVVJFX1JFUExBQ0VSXSBUaGUgcmVwbGFjZXIgdmFsdWUgdG8gdXNlLiBCeSBkZWZhdWx0XG4gKiBlcXVhbHMgdG8gYERFRkFVTFRfU0VDVVJFX1JFUExBQ0VSYFxuICovXG5cbmNsYXNzIFNlY3VyZVZhbHVlc1ByZXByb2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yICgpIHtcbiAgICB0aGlzLl9ydWxlcyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtBcnJheTxTZWN1cmVWYWx1ZVByZXByb2Nlc3NpbmdSdWxlPn0gVGhlIGxpc3Qgb2Ygc3VjY2Vzc2Z1bGx5XG4gICAqIHBhcnNlZCBwcmVwcm9jZXNzaW5nIHJ1bGVzXG4gICAqL1xuICBnZXQgcnVsZXMgKCkge1xuICAgIHJldHVybiB0aGlzLl9ydWxlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAdHlwZWRlZiBSdWxlXG4gICAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBwYXR0ZXJuIEEgdmFsaWQgUmVnRXhwIHBhdHRlcm4gdG8gYmUgcmVwbGFjZWRcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IHRleHQgQSB0ZXh0IG1hdGNoIHRvIHJlcGxhY2UuIEVpdGhlciB0aGlzIHByb3BlcnR5IG9yIHRoZVxuICAgKiBhYm92ZSBvbmUgbXVzdCBiZSBwcm92aWRlZC4gYHBhdHRlcm5gIGhhcyBwcmlvcml0eSBvdmVyIGB0ZXh0YCBpZiBib3RoIGFyZSBwcm92aWRlZC5cbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IGZsYWdzIFsnZyddIFJlZ3VsYXIgZXhwcmVzc2lvbiBmbGFncyBmb3IgdGhlIGdpdmVuIHBhdHRlcm4uXG4gICAqIFN1cHBvcnRlZCBmbGFnIGFyZSB0aGUgc2FtZSBhcyBmb3IgdGhlIHN0YW5kYXJkIEphdmFTY3JpcHQgUmVnRXhwIGNvbnN0cnVjdG9yOlxuICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L0d1aWRlL1JlZ3VsYXJfRXhwcmVzc2lvbnMjQWR2YW5jZWRfc2VhcmNoaW5nX3dpdGhfZmxhZ3NfMlxuICAgKiBUaGUgJ2cnIChnbG9iYWwgbWF0Y2hpbmcpIGlzIGFsd2F5cyBlbmFibGVkIHRob3VnaC5cbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IHJlcGxhY2VyIFtERUZBVUxUX1NFQ1VSRV9SRVBMQUNFUl0gVGhlIHJlcGxhY2VyIHZhbHVlIHRvIHVzZS4gQnkgZGVmYXVsdFxuICAgKiBlcXVhbHMgdG8gYERFRkFVTFRfU0VDVVJFX1JFUExBQ0VSYFxuICAgKi9cblxuICAvKipcbiAgICogUGFyc2VzIHNpbmdsZSBydWxlIGZyb20gdGhlIGdpdmVuIEpTT04gZmlsZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ3xSdWxlfSBydWxlIFRoZSBydWxlIG1pZ2h0IGVpdGhlciBiZSByZXByZXNlbnRlZCBhcyBhIHNpbmdsZSBzdHJpbmdcbiAgICogb3IgYSBjb25maWd1cmF0aW9uIG9iamVjdFxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIHBhcnNpbmcgdGhlIHJ1bGVcbiAgICogQHJldHVybnMge1NlY3VyZVZhbHVlUHJlcHJvY2Vzc2luZ1J1bGV9IFRoZSBwYXJzZWQgcnVsZVxuICAgKi9cbiAgcGFyc2VSdWxlIChydWxlKSB7XG4gICAgY29uc3QgcmFpc2VFcnJvciA9IChtc2cpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtKU09OLnN0cmluZ2lmeShydWxlKX0gLT4gJHttc2d9YCk7XG4gICAgfTtcblxuICAgIGxldCBwYXR0ZXJuO1xuICAgIGxldCByZXBsYWNlciA9IERFRkFVTFRfUkVQTEFDRVI7XG4gICAgbGV0IGZsYWdzID0gWydnJ107XG4gICAgaWYgKF8uaXNTdHJpbmcocnVsZSkpIHtcbiAgICAgIGlmIChydWxlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByYWlzZUVycm9yKCdUaGUgdmFsdWUgbXVzdCBub3QgYmUgZW1wdHknKTtcbiAgICAgIH1cbiAgICAgIHBhdHRlcm4gPSBgXFxcXGIke18uZXNjYXBlUmVnRXhwKHJ1bGUpfVxcXFxiYDtcbiAgICB9IGVsc2UgaWYgKF8uaXNQbGFpbk9iamVjdChydWxlKSkge1xuICAgICAgaWYgKF8uaGFzKHJ1bGUsICdwYXR0ZXJuJykpIHtcbiAgICAgICAgaWYgKCFfLmlzU3RyaW5nKHJ1bGUucGF0dGVybikgfHwgcnVsZS5wYXR0ZXJuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJhaXNlRXJyb3IoYFRoZSB2YWx1ZSBvZiAncGF0dGVybicgbXVzdCBiZSBhIHZhbGlkIG5vbi1lbXB0eSBzdHJpbmdgKTtcbiAgICAgICAgfVxuICAgICAgICBwYXR0ZXJuID0gcnVsZS5wYXR0ZXJuO1xuICAgICAgfSBlbHNlIGlmIChfLmhhcyhydWxlLCAndGV4dCcpKSB7XG4gICAgICAgIGlmICghXy5pc1N0cmluZyhydWxlLnRleHQpIHx8IHJ1bGUudGV4dC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByYWlzZUVycm9yKGBUaGUgdmFsdWUgb2YgJ3RleHQnIG11c3QgYmUgYSB2YWxpZCBub24tZW1wdHkgc3RyaW5nYCk7XG4gICAgICAgIH1cbiAgICAgICAgcGF0dGVybiA9IGBcXFxcYiR7Xy5lc2NhcGVSZWdFeHAocnVsZS50ZXh0KX1cXFxcYmA7XG4gICAgICB9XG4gICAgICBpZiAoIXBhdHRlcm4pIHtcbiAgICAgICAgcmFpc2VFcnJvcihgTXVzdCBlaXRoZXIgaGF2ZSBhIGZpZWxkIG5hbWVkICdwYXR0ZXJuJyBvciAndGV4dCdgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKF8uaGFzKHJ1bGUsICdmbGFncycpKSB7XG4gICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvR3VpZGUvUmVndWxhcl9FeHByZXNzaW9ucyNBZHZhbmNlZF9zZWFyY2hpbmdfd2l0aF9mbGFnc18yXG4gICAgICAgIGZvciAoY29uc3QgZmxhZyBvZiBbJ2knLCAnZycsICdtJywgJ3MnLCAndScsICd5J10pIHtcbiAgICAgICAgICBpZiAoXy5pbmNsdWRlcyhydWxlLmZsYWdzLCBmbGFnKSkge1xuICAgICAgICAgICAgZmxhZ3MucHVzaChmbGFnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZmxhZ3MgPSBfLnVuaXEoZmxhZ3MpO1xuICAgICAgfVxuXG4gICAgICBpZiAoXy5pc1N0cmluZyhydWxlLnJlcGxhY2VyKSkge1xuICAgICAgICByZXBsYWNlciA9IHJ1bGUucmVwbGFjZXI7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJhaXNlRXJyb3IoJ011c3QgZWl0aGVyIGJlIGEgc3RyaW5nIG9yIGFuIG9iamVjdCcpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYXR0ZXJuOiBuZXcgUmVnRXhwKHBhdHRlcm4sIGZsYWdzLmpvaW4oJycpKSxcbiAgICAgICAgcmVwbGFjZXIsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJhaXNlRXJyb3IoZS5tZXNzYWdlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgcnVsZXMgZnJvbSB0aGUgZ2l2ZW4gSlNPTiBmaWxlXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfFJ1bGVbXT59IHNvdXJjZSBUaGUgZnVsbCBwYXRoIHRvIHRoZSBKU09OIGZpbGUgY29udGFpbmluZyBzZWN1cmVcbiAgICogdmFsdWVzIHJlcGxhY2VtZW50IHJ1bGVzIG9yIHRoZSBydWxlcyB0aGVtc2VsdmVzIHJlcHJlc2VudGVkIGFzIGFuIGFycmF5XG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgZm9ybWF0IG9mIHRoZSBzb3VyY2UgZmlsZSBpcyBpbnZhbGlkIG9yXG4gICAqIGl0IGRvZXMgbm90IGV4aXN0XG4gICAqIEByZXR1cm5zIHtBcnJheTxzdHJpbmc+fSBUaGUgbGlzdCBvZiBpc3N1ZXMgZm91bmQgd2hpbGUgcGFyc2luZyBlYWNoIHJ1bGUuXG4gICAqIEFuIGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQgaWYgbm8gcnVsZSBwYXJzaW5nIGlzc3VlcyB3ZXJlIGZvdW5kXG4gICAqL1xuICBhc3luYyBsb2FkUnVsZXMgKHNvdXJjZSkge1xuICAgIGxldCBydWxlcztcbiAgICBpZiAoXy5pc0FycmF5KHNvdXJjZSkpIHtcbiAgICAgIHJ1bGVzID0gc291cmNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIWF3YWl0IGZzLmV4aXN0cyhzb3VyY2UpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJyR7c291cmNlfScgZG9lcyBub3QgZXhpc3Qgb3IgaXMgbm90IGFjY2Vzc2libGVgKTtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIHJ1bGVzID0gSlNPTi5wYXJzZShhd2FpdCBmcy5yZWFkRmlsZShzb3VyY2UsICd1dGY4JykpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke3NvdXJjZX0nIG11c3QgYmUgYSB2YWxpZCBKU09OIGZpbGUuIE9yaWdpbmFsIGVycm9yOiAke2UubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICAgIGlmICghXy5pc0FycmF5KHJ1bGVzKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke3NvdXJjZX0nIG11c3QgY29udGFpbiBhIHZhbGlkIEpTT04gYXJyYXlgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBpc3N1ZXMgPSBbXTtcbiAgICB0aGlzLl9ydWxlcyA9IFtdO1xuICAgIGZvciAoY29uc3QgcnVsZSBvZiBydWxlcykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5fcnVsZXMucHVzaCh0aGlzLnBhcnNlUnVsZShydWxlKSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlzc3Vlcy5wdXNoKGUubWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpc3N1ZXM7XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybXMgc2VjdXJlIHZhbHVlcyByZXBsYWNlbWVudCBpbnNpZGUgdGhlIGdpdmVuIHN0cmluZ1xuICAgKiBhY2NvcmRpbmcgdG8gdGhlIHByZXZpb3VzbHkgbG9hZGVkIHJ1bGVzLiBObyByZXBsYWNlbWVudCBpcyBtYWRlXG4gICAqIGlmIHRoZXJlIGFyZSBubyBydWxlcyBvciB0aGUgZ2l2ZW4gdmFsdWUgaXMgbm90IGEgc3RyaW5nXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgVGhlIHN0cmluZyB0byBtYWtlIHJlcGxhY2VtZW50cyBpblxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgc3RyaW5nIHdpdGggcmVwbGFjZW1lbnRzIG1hZGVcbiAgICovXG4gIHByZXByb2Nlc3MgKHN0cikge1xuICAgIGlmICh0aGlzLl9ydWxlcy5sZW5ndGggPT09IDAgfHwgIV8uaXNTdHJpbmcoc3RyKSkge1xuICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG5cbiAgICBsZXQgcmVzdWx0ID0gc3RyO1xuICAgIGZvciAoY29uc3QgcnVsZSBvZiB0aGlzLl9ydWxlcykge1xuICAgICAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UocnVsZS5wYXR0ZXJuLCBydWxlLnJlcGxhY2VyKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5jb25zdCBTRUNVUkVfVkFMVUVTX1BSRVBST0NFU1NPUiA9IG5ldyBTZWN1cmVWYWx1ZXNQcmVwcm9jZXNzb3IoKTtcblxuZXhwb3J0IHsgU0VDVVJFX1ZBTFVFU19QUkVQUk9DRVNTT1IsIFNlY3VyZVZhbHVlc1ByZXByb2Nlc3NvciB9O1xuZXhwb3J0IGRlZmF1bHQgU0VDVVJFX1ZBTFVFU19QUkVQUk9DRVNTT1I7XG4iXX0=
|
|
136
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9sb2ctaW50ZXJuYWwuanMiXSwibmFtZXMiOlsiREVGQVVMVF9SRVBMQUNFUiIsIlNlY3VyZVZhbHVlc1ByZXByb2Nlc3NvciIsImNvbnN0cnVjdG9yIiwiX3J1bGVzIiwicnVsZXMiLCJwYXJzZVJ1bGUiLCJydWxlIiwicGF0dGVybiIsInJlcGxhY2VyIiwiZmxhZ3MiLCJfIiwiaXNTdHJpbmciLCJsZW5ndGgiLCJFcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJlc2NhcGVSZWdFeHAiLCJpc1BsYWluT2JqZWN0IiwiaGFzIiwidGV4dCIsImZsYWciLCJpbmNsdWRlcyIsInB1c2giLCJ1bmlxIiwiUmVnRXhwIiwiam9pbiIsImxvYWRSdWxlcyIsInNvdXJjZSIsImlzQXJyYXkiLCJmcyIsImV4aXN0cyIsInBhcnNlIiwicmVhZEZpbGUiLCJlIiwibWVzc2FnZSIsImlzc3VlcyIsInByZXByb2Nlc3MiLCJzdHIiLCJyZXN1bHQiLCJyZXBsYWNlIiwiU0VDVVJFX1ZBTFVFU19QUkVQUk9DRVNTT1IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUEsTUFBTUEsZ0JBQWdCLEdBQUcsWUFBekI7O0FBR0EsTUFBTUMsd0JBQU4sQ0FBK0I7QUFDN0JDLEVBQUFBLFdBQVcsR0FBSTtBQUNiLFNBQUtDLE1BQUwsR0FBYyxFQUFkO0FBQ0Q7O0FBTVEsTUFBTEMsS0FBSyxHQUFJO0FBQ1gsV0FBTyxLQUFLRCxNQUFaO0FBQ0Q7O0FBVURFLEVBQUFBLFNBQVMsQ0FBRUMsSUFBRixFQUFRO0FBQ2YsUUFBSUMsT0FBSjtBQUNBLFFBQUlDLFFBQVEsR0FBR1IsZ0JBQWY7QUFDQSxRQUFJUyxLQUFLLEdBQUcsQ0FBQyxHQUFELENBQVo7O0FBQ0EsUUFBSUMsZ0JBQUVDLFFBQUYsQ0FBV0wsSUFBWCxDQUFKLEVBQXNCO0FBQ3BCLFVBQUlBLElBQUksQ0FBQ00sTUFBTCxLQUFnQixDQUFwQixFQUF1QjtBQUNyQixjQUFNLElBQUlDLEtB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TUFBQUEsTUFBTSxHQUFHQSxNQUFNLENBQUNDLE9BQVAsQ0FBZWpDLElBQUksQ0FBQ0MsT0FBcEIsRUFBNkJELElBQUksQ0FBQ0UsUUFBbEMsQ0FBVDtBQUNEOztBQUNELFdBQU84QixNQUFQO0FBQ0Q7O0FBL0g0Qjs7O0FBa0kvQixNQUFNRSwwQkFBMEIsR0FBRyxJQUFJdkMsd0JBQUosRUFBbkM7O2VBR2V1QywwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICcuL2ZzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmNvbnN0IERFRkFVTFRfUkVQTEFDRVIgPSAnKipTRUNVUkUqKic7XG5cblxuY2xhc3MgU2VjdXJlVmFsdWVzUHJlcHJvY2Vzc29yIHtcbiAgY29uc3RydWN0b3IgKCkge1xuICAgIHRoaXMuX3J1bGVzID0gW107XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge0FycmF5PFNlY3VyZVZhbHVlUHJlcHJvY2Vzc2luZ1J1bGU+fSBUaGUgbGlzdCBvZiBzdWNjZXNzZnVsbHlcbiAgICogcGFyc2VkIHByZXByb2Nlc3NpbmcgcnVsZXNcbiAgICovXG4gIGdldCBydWxlcyAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3J1bGVzO1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlcyBzaW5nbGUgcnVsZSBmcm9tIHRoZSBnaXZlbiBKU09OIGZpbGVcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd8UnVsZX0gcnVsZSBUaGUgcnVsZSBtaWdodCBlaXRoZXIgYmUgcmVwcmVzZW50ZWQgYXMgYSBzaW5nbGUgc3RyaW5nXG4gICAqIG9yIGEgY29uZmlndXJhdGlvbiBvYmplY3RcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSBwYXJzaW5nIHRoZSBydWxlXG4gICAqIEByZXR1cm5zIHtTZWN1cmVWYWx1ZVByZXByb2Nlc3NpbmdSdWxlfSBUaGUgcGFyc2VkIHJ1bGVcbiAgICovXG4gIHBhcnNlUnVsZSAocnVsZSkge1xuICAgIGxldCBwYXR0ZXJuO1xuICAgIGxldCByZXBsYWNlciA9IERFRkFVTFRfUkVQTEFDRVI7XG4gICAgbGV0IGZsYWdzID0gWydnJ107XG4gICAgaWYgKF8uaXNTdHJpbmcocnVsZSkpIHtcbiAgICAgIGlmIChydWxlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7SlNPTi5zdHJpbmdpZnkocnVsZSl9IC0+IFRoZSB2YWx1ZSBtdXN0IG5vdCBiZSBlbXB0eWApO1xuICAgICAgfVxuICAgICAgcGF0dGVybiA9IGBcXFxcYiR7Xy5lc2NhcGVSZWdFeHAocnVsZSl9XFxcXGJgO1xuICAgIH0gZWxzZSBpZiAoXy5pc1BsYWluT2JqZWN0KHJ1bGUpKSB7XG4gICAgICBpZiAoXy5oYXMocnVsZSwgJ3BhdHRlcm4nKSkge1xuICAgICAgICBpZiAoIV8uaXNTdHJpbmcocnVsZS5wYXR0ZXJuKSB8fCBydWxlLnBhdHRlcm4ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke0pTT04uc3RyaW5naWZ5KHJ1bGUpfSAtPiBUaGUgdmFsdWUgb2YgJ3BhdHRlcm4nIG11c3QgYmUgYSB2YWxpZCBub24tZW1wdHkgc3RyaW5nYCk7XG4gICAgICAgIH1cbiAgICAgICAgcGF0dGVybiA9IHJ1bGUucGF0dGVybjtcbiAgICAgIH0gZWxzZSBpZiAoXy5oYXMocnVsZSwgJ3RleHQnKSkge1xuICAgICAgICBpZiAoIV8uaXNTdHJpbmcocnVsZS50ZXh0KSB8fCBydWxlLnRleHQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke0pTT04uc3RyaW5naWZ5KHJ1bGUpfSAtPiBUaGUgdmFsdWUgb2YgJ3RleHQnIG11c3QgYmUgYSB2YWxpZCBub24tZW1wdHkgc3RyaW5nYCk7XG4gICAgICAgIH1cbiAgICAgICAgcGF0dGVybiA9IGBcXFxcYiR7Xy5lc2NhcGVSZWdFeHAocnVsZS50ZXh0KX1cXFxcYmA7XG4gICAgICB9XG4gICAgICBpZiAoIXBhdHRlcm4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke0pTT04uc3RyaW5naWZ5KHJ1bGUpfSAtPiBNdXN0IGVpdGhlciBoYXZlIGEgZmllbGQgbmFtZWQgJ3BhdHRlcm4nIG9yICd0ZXh0J2ApO1xuICAgICAgfVxuXG4gICAgICBpZiAoXy5oYXMocnVsZSwgJ2ZsYWdzJykpIHtcbiAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9HdWlkZS9SZWd1bGFyX0V4cHJlc3Npb25zI0FkdmFuY2VkX3NlYXJjaGluZ193aXRoX2ZsYWdzXzJcbiAgICAgICAgZm9yIChjb25zdCBmbGFnIG9mIFsnaScsICdnJywgJ20nLCAncycsICd1JywgJ3knXSkge1xuICAgICAgICAgIGlmIChfLmluY2x1ZGVzKHJ1bGUuZmxhZ3MsIGZsYWcpKSB7XG4gICAgICAgICAgICBmbGFncy5wdXNoKGZsYWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmbGFncyA9IF8udW5pcShmbGFncyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChfLmlzU3RyaW5nKHJ1bGUucmVwbGFjZXIpKSB7XG4gICAgICAgIHJlcGxhY2VyID0gcnVsZS5yZXBsYWNlcjtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke0pTT04uc3RyaW5naWZ5KHJ1bGUpfSAtPiBNdXN0IGVpdGhlciBiZSBhIHN0cmluZyBvciBhbiBvYmplY3RgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGF0dGVybjogbmV3IFJlZ0V4cChwYXR0ZXJuLCBmbGFncy5qb2luKCcnKSksXG4gICAgICByZXBsYWNlcixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHJ1bGVzIGZyb20gdGhlIGdpdmVuIEpTT04gZmlsZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXXxSdWxlW119IHNvdXJjZSBUaGUgZnVsbCBwYXRoIHRvIHRoZSBKU09OIGZpbGUgY29udGFpbmluZyBzZWN1cmVcbiAgICogdmFsdWVzIHJlcGxhY2VtZW50IHJ1bGVzIG9yIHRoZSBydWxlcyB0aGVtc2VsdmVzIHJlcHJlc2VudGVkIGFzIGFuIGFycmF5XG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgZm9ybWF0IG9mIHRoZSBzb3VyY2UgZmlsZSBpcyBpbnZhbGlkIG9yXG4gICAqIGl0IGRvZXMgbm90IGV4aXN0XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZ1tdPn0gVGhlIGxpc3Qgb2YgaXNzdWVzIGZvdW5kIHdoaWxlIHBhcnNpbmcgZWFjaCBydWxlLlxuICAgKiBBbiBlbXB0eSBsaXN0IGlzIHJldHVybmVkIGlmIG5vIHJ1bGUgcGFyc2luZyBpc3N1ZXMgd2VyZSBmb3VuZFxuICAgKi9cbiAgYXN5bmMgbG9hZFJ1bGVzIChzb3VyY2UpIHtcbiAgICBsZXQgcnVsZXM7XG4gICAgaWYgKF8uaXNBcnJheShzb3VyY2UpKSB7XG4gICAgICBydWxlcyA9IHNvdXJjZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFhd2FpdCBmcy5leGlzdHMoc291cmNlKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke3NvdXJjZX0nIGRvZXMgbm90IGV4aXN0IG9yIGlzIG5vdCBhY2Nlc3NpYmxlYCk7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBydWxlcyA9IEpTT04ucGFyc2UoYXdhaXQgZnMucmVhZEZpbGUoc291cmNlLCAndXRmOCcpKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAnJHtzb3VyY2V9JyBtdXN0IGJlIGEgdmFsaWQgSlNPTiBmaWxlLiBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgICBpZiAoIV8uaXNBcnJheShydWxlcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAnJHtzb3VyY2V9JyBtdXN0IGNvbnRhaW4gYSB2YWxpZCBKU09OIGFycmF5YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaXNzdWVzID0gW107XG4gICAgdGhpcy5fcnVsZXMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgcnVsZXMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuX3J1bGVzLnB1c2godGhpcy5wYXJzZVJ1bGUocnVsZSkpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpc3N1ZXMucHVzaChlLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXNzdWVzO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm1zIHNlY3VyZSB2YWx1ZXMgcmVwbGFjZW1lbnQgaW5zaWRlIHRoZSBnaXZlbiBzdHJpbmdcbiAgICogYWNjb3JkaW5nIHRvIHRoZSBwcmV2aW91c2x5IGxvYWRlZCBydWxlcy4gTm8gcmVwbGFjZW1lbnQgaXMgbWFkZVxuICAgKiBpZiB0aGVyZSBhcmUgbm8gcnVsZXMgb3IgdGhlIGdpdmVuIHZhbHVlIGlzIG5vdCBhIHN0cmluZ1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyIFRoZSBzdHJpbmcgdG8gbWFrZSByZXBsYWNlbWVudHMgaW5cbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIHN0cmluZyB3aXRoIHJlcGxhY2VtZW50cyBtYWRlXG4gICAqL1xuICBwcmVwcm9jZXNzIChzdHIpIHtcbiAgICBpZiAodGhpcy5fcnVsZXMubGVuZ3RoID09PSAwIHx8ICFfLmlzU3RyaW5nKHN0cikpIHtcbiAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdCA9IHN0cjtcbiAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgdGhpcy5fcnVsZXMpIHtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKHJ1bGUucGF0dGVybiwgcnVsZS5yZXBsYWNlcik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuY29uc3QgU0VDVVJFX1ZBTFVFU19QUkVQUk9DRVNTT1IgPSBuZXcgU2VjdXJlVmFsdWVzUHJlcHJvY2Vzc29yKCk7XG5cbmV4cG9ydCB7IFNFQ1VSRV9WQUxVRVNfUFJFUFJPQ0VTU09SLCBTZWN1cmVWYWx1ZXNQcmVwcm9jZXNzb3IgfTtcbmV4cG9ydCBkZWZhdWx0IFNFQ1VSRV9WQUxVRVNfUFJFUFJPQ0VTU09SO1xuXG4vKipcbiAqIEB0eXBlZGVmIFJ1bGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBwYXR0ZXJuIEEgdmFsaWQgUmVnRXhwIHBhdHRlcm4gdG8gYmUgcmVwbGFjZWRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB0ZXh0IEEgdGV4dCBtYXRjaCB0byByZXBsYWNlLiBFaXRoZXIgdGhpcyBwcm9wZXJ0eSBvciB0aGVcbiAqIGFib3ZlIG9uZSBtdXN0IGJlIHByb3ZpZGVkLiBgcGF0dGVybmAgaGFzIHByaW9yaXR5IG92ZXIgYHRleHRgIGlmIGJvdGggYXJlIHByb3ZpZGVkLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtmbGFnc10gUmVndWxhciBleHByZXNzaW9uIGZsYWdzIGZvciB0aGUgZ2l2ZW4gcGF0dGVybi5cbiAqIFN1cHBvcnRlZCBmbGFnIGFyZSB0aGUgc2FtZSBhcyBmb3IgdGhlIHN0YW5kYXJkIEphdmFTY3JpcHQgUmVnRXhwIGNvbnN0cnVjdG9yOlxuICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9HdWlkZS9SZWd1bGFyX0V4cHJlc3Npb25zI0FkdmFuY2VkX3NlYXJjaGluZ193aXRoX2ZsYWdzXzJcbiAqIFRoZSAnZycgKGdsb2JhbCBtYXRjaGluZykgaXMgYWx3YXlzIGVuYWJsZWQgdGhvdWdoLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtyZXBsYWNlcl0gVGhlIHJlcGxhY2VyIHZhbHVlIHRvIHVzZS4gQnkgZGVmYXVsdFxuICogZXF1YWxzIHRvIGBERUZBVUxUX1NFQ1VSRV9SRVBMQUNFUmBcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIFNlY3VyZVZhbHVlUHJlcHJvY2Vzc2luZ1J1bGVcbiAqIEBwcm9wZXJ0eSB7UmVnRXhwfSBwYXR0ZXJuIFRoZSBwYXJzZWQgcGF0dGVybiB3aGljaCBpcyBnb2luZyB0byBiZSB1c2VkIGZvciByZXBsYWNlbWVudFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtyZXBsYWNlcl0gVGhlIHJlcGxhY2VyIHZhbHVlIHRvIHVzZS4gQnkgZGVmYXVsdFxuICogZXF1YWxzIHRvIGBERUZBVUxUX1NFQ1VSRV9SRVBMQUNFUmBcbiAqL1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../lib/logger.js"],"names":[],"mappings":";AAEA,sDAA+B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export default log;
|
|
2
|
+
export type LoadResult = {
|
|
3
|
+
/**
|
|
4
|
+
* The list of rule parsing issues (one item per rule).
|
|
5
|
+
* Rules with issues are skipped. An empty list is returned if no parsing issues exist.
|
|
6
|
+
*/
|
|
7
|
+
issues: string[];
|
|
8
|
+
/**
|
|
9
|
+
* The list of successfully loaded
|
|
10
|
+
* replacement rules. The list could be empty if no rules were loaded.
|
|
11
|
+
*/
|
|
12
|
+
rules: import('./log-internal').SecureValuePreprocessingRule[];
|
|
13
|
+
};
|
|
14
|
+
export type Prefix = import('@appium/types').Prefix;
|
|
15
|
+
export type AppiumLogger = import('@appium/types').AppiumLogger;
|
|
16
|
+
export const log: import("@appium/types").AppiumLogger;
|
|
17
|
+
export function patchLogger(logger: any): void;
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* @param {Prefix?} prefix
|
|
21
|
+
* @returns {AppiumLogger}
|
|
22
|
+
*/
|
|
23
|
+
export function getLogger(prefix?: Prefix | null): AppiumLogger;
|
|
24
|
+
/**
|
|
25
|
+
* @typedef LoadResult
|
|
26
|
+
* @property {string[]} issues The list of rule parsing issues (one item per rule).
|
|
27
|
+
* Rules with issues are skipped. An empty list is returned if no parsing issues exist.
|
|
28
|
+
* @property {import('./log-internal').SecureValuePreprocessingRule[]} rules The list of successfully loaded
|
|
29
|
+
* replacement rules. The list could be empty if no rules were loaded.
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* Loads the JSON file containing secure values replacement rules.
|
|
33
|
+
* This might be necessary to hide sensitive values that may possibly
|
|
34
|
+
* appear in Appium logs.
|
|
35
|
+
* Each call to this method replaces the previously loaded rules if any existed.
|
|
36
|
+
*
|
|
37
|
+
* @param {string|string[]|import('./log-internal').Rule[]} rulesJsonPath The full path to the JSON file containing
|
|
38
|
+
* the replacement rules. Each rule could either be a string to be replaced
|
|
39
|
+
* or an object with predefined properties. See the `Rule` type definition in
|
|
40
|
+
* `log-internals.js` to get more details on its format.
|
|
41
|
+
* @throws {Error} If the given file cannot be loaded
|
|
42
|
+
* @returns {Promise<LoadResult>}
|
|
43
|
+
*/
|
|
44
|
+
export function loadSecureValuesPreprocessingRules(rulesJsonPath: string | string[] | import('./log-internal').Rule[]): Promise<LoadResult>;
|
|
45
|
+
//# sourceMappingURL=logging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../lib/logging.js"],"names":[],"mappings":";;;;;;YA2Hc,MAAM,EAAE;;;;;WAER,OAAO,gBAAgB,EAAE,4BAA4B,EAAE;;qBAgCxD,OAAO,eAAe,EAAE,MAAM;2BAI9B,OAAO,eAAe,EAAE,YAAY;AAVjD,uDAAwB;AArIxB,+CAIC;AAwCD;;;;GAIG;AACH,mCAHW,MAAM,UACJ,YAAY,CAsDxB;AAED;;;;;;GAMG;AAEH;;;;;;;;;;;;GAYG;AACH,kEAPW,MAAM,GAAC,MAAM,EAAE,GAAC,OAAO,gBAAgB,EAAE,IAAI,EAAE,GAK7C,QAAQ,UAAU,CAAC,CAQ/B"}
|
package/build/lib/logging.js
CHANGED
|
@@ -42,8 +42,8 @@ function patchLogger(logger) {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
function _getLogger() {
|
|
45
|
-
const testingMode =
|
|
46
|
-
const forceLogMode =
|
|
45
|
+
const testingMode = process.env._TESTING === '1';
|
|
46
|
+
const forceLogMode = process.env._FORCE_LOGS === '1';
|
|
47
47
|
const usingGlobalLog = !!global._global_npmlog;
|
|
48
48
|
let logger;
|
|
49
49
|
|
|
@@ -59,20 +59,19 @@ function _getLogger() {
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
function getActualPrefix(prefix, logTimestamp = false) {
|
|
62
|
-
|
|
62
|
+
var _ref;
|
|
63
63
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return actualPrefix;
|
|
64
|
+
const result = (_ref = _lodash.default.isFunction(prefix) ? prefix() : prefix) !== null && _ref !== void 0 ? _ref : '';
|
|
65
|
+
return logTimestamp ? `[${(0, _moment.default)().format(PREFIX_TIMESTAMP_FORMAT)}] ${result}` : result;
|
|
69
66
|
}
|
|
70
67
|
|
|
71
68
|
function getLogger(prefix = null) {
|
|
72
69
|
let [logger, usingGlobalLog] = _getLogger();
|
|
73
70
|
|
|
74
71
|
let wrappedLogger = {
|
|
75
|
-
unwrap: () => logger
|
|
72
|
+
unwrap: () => logger,
|
|
73
|
+
levels: NPM_LEVELS,
|
|
74
|
+
prefix
|
|
76
75
|
};
|
|
77
76
|
Object.defineProperty(wrappedLogger, 'level', {
|
|
78
77
|
get() {
|
|
@@ -86,11 +85,11 @@ function getLogger(prefix = null) {
|
|
|
86
85
|
enumerable: true,
|
|
87
86
|
configurable: true
|
|
88
87
|
});
|
|
89
|
-
const logTimestamp =
|
|
88
|
+
const logTimestamp = process.env._LOG_TIMESTAMP === '1';
|
|
90
89
|
|
|
91
90
|
for (const level of NPM_LEVELS) {
|
|
92
91
|
wrappedLogger[level] = function (...args) {
|
|
93
|
-
const actualPrefix = getActualPrefix(prefix, logTimestamp);
|
|
92
|
+
const actualPrefix = getActualPrefix(this.prefix, logTimestamp);
|
|
94
93
|
|
|
95
94
|
for (const arg of args) {
|
|
96
95
|
const out = _lodash.default.isError(arg) && arg.stack ? arg.stack : `${arg}`;
|
|
@@ -112,7 +111,6 @@ function getLogger(prefix = null) {
|
|
|
112
111
|
wrappedLogger.level = 'verbose';
|
|
113
112
|
}
|
|
114
113
|
|
|
115
|
-
wrappedLogger.levels = NPM_LEVELS;
|
|
116
114
|
return wrappedLogger;
|
|
117
115
|
}
|
|
118
116
|
|
|
@@ -128,4 +126,4 @@ const log = getLogger();
|
|
|
128
126
|
exports.log = log;
|
|
129
127
|
var _default = log;
|
|
130
128
|
exports.default = _default;
|
|
131
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9sb2dnaW5nLmpzIl0sIm5hbWVzIjpbIk5QTV9MRVZFTFMiLCJNQVhfTE9HX1JFQ09SRFNfQ09VTlQiLCJQUkVGSVhfVElNRVNUQU1QX0ZPUk1BVCIsIm1vY2tMb2ciLCJsZXZlbCIsInBhdGNoTG9nZ2VyIiwibG9nZ2VyIiwiZGVidWciLCJhZGRMZXZlbCIsImZnIiwiYmciLCJfZ2V0TG9nZ2VyIiwidGVzdGluZ01vZGUiLCJwYXJzZUludCIsInByb2Nlc3MiLCJlbnYiLCJfVEVTVElORyIsImZvcmNlTG9nTW9kZSIsIl9GT1JDRV9MT0dTIiwidXNpbmdHbG9iYWxMb2ciLCJnbG9iYWwiLCJfZ2xvYmFsX25wbWxvZyIsIm5wbWxvZyIsIm1heFJlY29yZFNpemUiLCJnZXRBY3R1YWxQcmVmaXgiLCJwcmVmaXgiLCJsb2dUaW1lc3RhbXAiLCJhY3R1YWxQcmVmaXgiLCJfIiwiaXNGdW5jdGlvbiIsImZvcm1hdCIsImdldExvZ2dlciIsIndyYXBwZWRMb2dnZXIiLCJ1bndyYXAiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldCIsInNldCIsIm5ld1ZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIl9MT0dfVElNRVNUQU1QIiwiYXJncyIsImFyZyIsIm91dCIsImlzRXJyb3IiLCJzdGFjayIsImxpbmUiLCJzcGxpdCIsInVubGVha2VkTGluZSIsIlNFQ1VSRV9WQUxVRVNfUFJFUFJPQ0VTU09SIiwicHJlcHJvY2VzcyIsImVycm9yQW5kVGhyb3ciLCJlcnIiLCJlcnJvciIsIkVycm9yIiwibGV2ZWxzIiwibG9hZFNlY3VyZVZhbHVlc1ByZXByb2Nlc3NpbmdSdWxlcyIsInJ1bGVzSnNvblBhdGgiLCJpc3N1ZXMiLCJsb2FkUnVsZXMiLCJydWxlcyIsImNsb25lRGVlcCIsImxvZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsVUFBVSxHQUFHLENBQUMsT0FBRCxFQUFVLFNBQVYsRUFBcUIsT0FBckIsRUFBOEIsTUFBOUIsRUFBc0MsTUFBdEMsRUFBOEMsTUFBOUMsRUFBc0QsT0FBdEQsQ0FBbkI7QUFDQSxNQUFNQyxxQkFBcUIsR0FBRyxJQUE5QjtBQUVBLE1BQU1DLHVCQUF1QixHQUFHLGNBQWhDO0FBR0EsSUFBSUMsT0FBTyxHQUFHLEVBQWQ7O0FBQ0EsS0FBSyxJQUFJQyxLQUFULElBQWtCSixVQUFsQixFQUE4QjtBQUM1QkcsRUFBQUEsT0FBTyxDQUFDQyxLQUFELENBQVAsR0FBaUIsTUFBTSxDQUFFLENBQXpCO0FBQ0Q7O0FBRUQsU0FBU0MsV0FBVCxDQUFzQkMsTUFBdEIsRUFBOEI7QUFDNUIsTUFBSSxDQUFDQSxNQUFNLENBQUNDLEtBQVosRUFBbUI7QUFDakJELElBQUFBLE1BQU0sQ0FBQ0UsUUFBUCxDQUFnQixPQUFoQixFQUF5QixJQUF6QixFQUErQjtBQUFFQyxNQUFBQSxFQUFFLEVBQUUsTUFBTjtBQUFjQyxNQUFBQSxFQUFFLEVBQUU7QUFBbEIsS0FBL0IsRUFBNEQsTUFBNUQ7QUFDRDtBQUNGOztBQUVELFNBQVNDLFVBQVQsR0FBdUI7QUFFckIsUUFBTUMsV0FBVyxHQUFHQyxRQUFRLENBQUNDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxRQUFiLEVBQXVCLEVBQXZCLENBQVIsS0FBdUMsQ0FBM0Q7QUFDQSxRQUFNQyxZQUFZLEdBQUdKLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDQyxHQUFSLENBQVlHLFdBQWIsRUFBMEIsRUFBMUIsQ0FBUixLQUEwQyxDQUEvRDtBQUlBLFFBQU1DLGNBQWMsR0FBRyxDQUFDLENBQUNDLE1BQU0sQ0FBQ0MsY0FBaEM7QUFDQSxNQUFJZixNQUFKOztBQUNBLE1BQUlNLFdBQVcsSUFBSSxDQUFDSyxZQUFwQixFQUFrQztBQUVoQ1gsSUFBQUEsTUFBTSxHQUFHSCxPQUFUO0FBQ0QsR0FIRCxNQUdPO0FBRUxHLElBQUFBLE1BQU0sR0FBR2MsTUFBTSxDQUFDQyxjQUFQLElBQXlCQyxlQUFsQztBQUVBaEIsSUFBQUEsTUFBTSxDQUFDaUIsYUFBUCxHQUF1QnRCLHFCQUF2QjtBQUNEOztBQUNESSxFQUFBQSxXQUFXLENBQUNDLE1BQUQsQ0FBWDtBQUNBLFNBQU8sQ0FBQ0EsTUFBRCxFQUFTYSxjQUFULENBQVA7QUFDRDs7QUFFRCxTQUFTSyxlQUFULENBQTBCQyxNQUExQixFQUFrQ0MsWUFBWSxHQUFHLEtBQWpELEVBQXdEO0FBQ3RELE1BQUlDLFlBQVksR0FBR0MsZ0JBQUVDLFVBQUYsQ0FBYUosTUFBYixJQUF1QkEsTUFBTSxFQUE3QixHQUFrQ0EsTUFBckQ7O0FBQ0EsTUFBSUMsWUFBSixFQUFrQjtBQUNoQkMsSUFBQUEsWUFBWSxHQUFJLElBQUcsdUJBQVNHLE1BQVQsQ0FBZ0I1Qix1QkFBaEIsQ0FBeUMsS0FBSXlCLFlBQWEsRUFBN0U7QUFDRDs7QUFDRCxTQUFPQSxZQUFQO0FBQ0Q7O0FBRUQsU0FBU0ksU0FBVCxDQUFvQk4sTUFBTSxHQUFHLElBQTdCLEVBQW1DO0FBQ2pDLE1BQUksQ0FBQ25CLE1BQUQsRUFBU2EsY0FBVCxJQUEyQlIsVUFBVSxFQUF6Qzs7QUFHQSxNQUFJcUIsYUFBYSxHQUFHO0FBQUNDLElBQUFBLE1BQU0sRUFBRSxNQUFNM0I7QUFBZixHQUFwQjtBQUdBNEIsRUFBQUEsTUFBTSxDQUFDQyxjQUFQLENBQXNCSCxhQUF0QixFQUFxQyxPQUFyQyxFQUE4QztBQUM1Q0ksSUFBQUEsR0FBRyxHQUFJO0FBQ0wsYUFBTzlCLE1BQU0sQ0FBQ0YsS0FBZDtBQUNELEtBSDJDOztBQUk1Q2lDLElBQUFBLEdBQUcsQ0FBRUMsUUFBRixFQUFZO0FBQ2JoQyxNQUFBQSxNQUFNLENBQUNGLEtBQVAsR0FBZWtDLFFBQWY7QUFDRCxLQU4yQzs7QUFPNUNDLElBQUFBLFVBQVUsRUFBRSxJQVBnQztBQVE1Q0MsSUFBQUEsWUFBWSxFQUFFO0FBUjhCLEdBQTlDO0FBV0EsUUFBTWQsWUFBWSxHQUFHYixRQUFRLENBQUNDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZMEIsY0FBYixFQUE2QixFQUE3QixDQUFSLEtBQTZDLENBQWxFOztBQUdBLE9BQUssTUFBTXJDLEtBQVgsSUFBb0JKLFVBQXBCLEVBQWdDO0FBQzlCZ0MsSUFBQUEsYUFBYSxDQUFDNUIsS0FBRCxDQUFiLEdBQXVCLFVBQVUsR0FBR3NDLElBQWIsRUFBbUI7QUFDeEMsWUFBTWYsWUFBWSxHQUFHSCxlQUFlLENBQUNDLE1BQUQsRUFBU0MsWUFBVCxDQUFwQzs7QUFDQSxXQUFLLE1BQU1pQixHQUFYLElBQWtCRCxJQUFsQixFQUF3QjtBQUN0QixjQUFNRSxHQUFHLEdBQUloQixnQkFBRWlCLE9BQUYsQ0FBVUYsR0FBVixLQUFrQkEsR0FBRyxDQUFDRyxLQUF2QixHQUFnQ0gsR0FBRyxDQUFDRyxLQUFwQyxHQUE2QyxHQUFFSCxHQUFJLEVBQS9EOztBQUNBLGFBQUssTUFBTUksSUFBWCxJQUFtQkgsR0FBRyxDQUFDSSxLQUFKLENBQVUsSUFBVixDQUFuQixFQUFvQztBQUdsQyxnQkFBTUMsWUFBWSxHQUFHLHdCQUFhRixJQUFiLENBQXJCO0FBQ0F6QyxVQUFBQSxNQUFNLENBQUNGLEtBQUQsQ0FBTixDQUFjdUIsWUFBZCxFQUE0QnVCLHFCQUEyQkMsVUFBM0IsQ0FBc0NGLFlBQXRDLENBQTVCO0FBQ0Q7QUFDRjtBQUNGLEtBWEQ7QUFZRDs7QUFFRGpCLEVBQUFBLGFBQWEsQ0FBQ29CLGFBQWQsR0FBOEIsVUFBVUMsR0FBVixFQUFlO0FBQzNDLFNBQUtDLEtBQUwsQ0FBV0QsR0FBWDtBQUVBLFVBQU96QixnQkFBRWlCLE9BQUYsQ0FBVVEsR0FBVixJQUFpQkEsR0FBakIsR0FBdUIsSUFBSUUsS0FBSixDQUFVLHdCQUFhRixHQUFiLENBQVYsQ0FBOUI7QUFDRCxHQUpEOztBQUtBLE1BQUksQ0FBQ2xDLGNBQUwsRUFBcUI7QUFJbkJhLElBQUFBLGFBQWEsQ0FBQzVCLEtBQWQsR0FBc0IsU0FBdEI7QUFDRDs7QUFDRDRCLEVBQUFBLGFBQWEsQ0FBQ3dCLE1BQWQsR0FBdUJ4RCxVQUF2QjtBQUNBLFNBQU9nQyxhQUFQO0FBQ0Q7O0FBdUJELGVBQWV5QixrQ0FBZixDQUFtREMsYUFBbkQsRUFBa0U7QUFDaEUsUUFBTUMsTUFBTSxHQUFHLE1BQU1ULHFCQUEyQlUsU0FBM0IsQ0FBcUNGLGFBQXJDLENBQXJCO0FBQ0EsU0FBTztBQUNMQyxJQUFBQSxNQURLO0FBRUxFLElBQUFBLEtBQUssRUFBRWpDLGdCQUFFa0MsU0FBRixDQUFZWixxQkFBMkJXLEtBQXZDO0FBRkYsR0FBUDtBQUlEOztBQUdELE1BQU1FLEdBQUcsR0FBR2hDLFNBQVMsRUFBckI7O2VBR2VnQyxHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG5wbWxvZyBmcm9tICducG1sb2cnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHVubGVha1N0cmluZyB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgU0VDVVJFX1ZBTFVFU19QUkVQUk9DRVNTT1IgZnJvbSAnLi9sb2ctaW50ZXJuYWwnO1xuXG4vLyBsZXZlbHMgdGhhdCBhcmUgYXZhaWxhYmxlIGZyb20gYG5wbWxvZ2BcbmNvbnN0IE5QTV9MRVZFTFMgPSBbJ3NpbGx5JywgJ3ZlcmJvc2UnLCAnZGVidWcnLCAnaW5mbycsICdodHRwJywgJ3dhcm4nLCAnZXJyb3InXTtcbmNvbnN0IE1BWF9MT0dfUkVDT1JEU19DT1VOVCA9IDMwMDA7XG5cbmNvbnN0IFBSRUZJWF9USU1FU1RBTVBfRk9STUFUID0gJ0hILW1tLXNzOlNTUyc7XG5cbi8vIG1vY2sgbG9nIG9iamVjdCB1c2VkIGluIHRlc3RpbmcgbW9kZVxubGV0IG1vY2tMb2cgPSB7fTtcbmZvciAobGV0IGxldmVsIG9mIE5QTV9MRVZFTFMpIHtcbiAgbW9ja0xvZ1tsZXZlbF0gPSAoKSA9PiB7fTtcbn1cblxuZnVuY3Rpb24gcGF0Y2hMb2dnZXIgKGxvZ2dlcikge1xuICBpZiAoIWxvZ2dlci5kZWJ1Zykge1xuICAgIGxvZ2dlci5hZGRMZXZlbCgnZGVidWcnLCAxMDAwLCB7IGZnOiAnYmx1ZScsIGJnOiAnYmxhY2snIH0sICdkYnVnJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX2dldExvZ2dlciAoKSB7XG4gIC8vIGNoZWNrIGlmIHRoZSB1c2VyIHNldCB0aGUgYF9URVNUSU5HYCBvciBgX0ZPUkNFX0xPR1NgIGZsYWdcbiAgY29uc3QgdGVzdGluZ01vZGUgPSBwYXJzZUludChwcm9jZXNzLmVudi5fVEVTVElORywgMTApID09PSAxO1xuICBjb25zdCBmb3JjZUxvZ01vZGUgPSBwYXJzZUludChwcm9jZXNzLmVudi5fRk9SQ0VfTE9HUywgMTApID09PSAxO1xuXG4gIC8vIGlmIGlzIHBvc3NpYmxlIHRoYXQgdGhlcmUgaXMgYSBsb2dnZXIgaW5zdGFuY2UgdGhhdCBpcyBhbHJlYWR5IGFyb3VuZCxcbiAgLy8gaW4gd2hpY2ggY2FzZSB3ZSB3YW50IHQgbyB1c2UgdGhhdFxuICBjb25zdCB1c2luZ0dsb2JhbExvZyA9ICEhZ2xvYmFsLl9nbG9iYWxfbnBtbG9nO1xuICBsZXQgbG9nZ2VyO1xuICBpZiAodGVzdGluZ01vZGUgJiYgIWZvcmNlTG9nTW9kZSkge1xuICAgIC8vIGluIHRlc3RpbmcgbW9kZSwgdXNlIGEgbW9jayBsb2dnZXIgb2JqZWN0IHRoYXQgd2UgY2FuIHF1ZXJ5XG4gICAgbG9nZ2VyID0gbW9ja0xvZztcbiAgfSBlbHNlIHtcbiAgICAvLyBvdGhlcndpc2UsIGVpdGhlciB1c2UgdGhlIGdsb2JhbCwgb3IgYSBuZXcgYG5wbWxvZ2Agb2JqZWN0XG4gICAgbG9nZ2VyID0gZ2xvYmFsLl9nbG9iYWxfbnBtbG9nIHx8IG5wbWxvZztcbiAgICAvLyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAxMDAwMCwgd2hpY2ggY2F1c2VzIGV4Y2Vzc2l2ZSBtZW1vcnkgdXNhZ2VcbiAgICBsb2dnZXIubWF4UmVjb3JkU2l6ZSA9IE1BWF9MT0dfUkVDT1JEU19DT1VOVDtcbiAgfVxuICBwYXRjaExvZ2dlcihsb2dnZXIpO1xuICByZXR1cm4gW2xvZ2dlciwgdXNpbmdHbG9iYWxMb2ddO1xufVxuXG5mdW5jdGlvbiBnZXRBY3R1YWxQcmVmaXggKHByZWZpeCwgbG9nVGltZXN0YW1wID0gZmFsc2UpIHtcbiAgbGV0IGFjdHVhbFByZWZpeCA9IF8uaXNGdW5jdGlvbihwcmVmaXgpID8gcHJlZml4KCkgOiBwcmVmaXg7XG4gIGlmIChsb2dUaW1lc3RhbXApIHtcbiAgICBhY3R1YWxQcmVmaXggPSBgWyR7bW9tZW50KCkuZm9ybWF0KFBSRUZJWF9USU1FU1RBTVBfRk9STUFUKX1dICR7YWN0dWFsUHJlZml4fWA7XG4gIH1cbiAgcmV0dXJuIGFjdHVhbFByZWZpeDtcbn1cblxuZnVuY3Rpb24gZ2V0TG9nZ2VyIChwcmVmaXggPSBudWxsKSB7XG4gIGxldCBbbG9nZ2VyLCB1c2luZ0dsb2JhbExvZ10gPSBfZ2V0TG9nZ2VyKCk7XG5cbiAgLy8gd3JhcCB0aGUgbG9nZ2VyIHNvIHRoYXQgd2UgY2FuIGNhdGNoIGFuZCBtb2RpZnkgYW55IGxvZ2dpbmdcbiAgbGV0IHdyYXBwZWRMb2dnZXIgPSB7dW53cmFwOiAoKSA9PiBsb2dnZXJ9O1xuXG4gIC8vIGFsbG93IGFjY2VzcyB0byB0aGUgbGV2ZWwgb2YgdGhlIHVuZGVybHlpbmcgbG9nZ2VyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3cmFwcGVkTG9nZ2VyLCAnbGV2ZWwnLCB7XG4gICAgZ2V0ICgpIHtcbiAgICAgIHJldHVybiBsb2dnZXIubGV2ZWw7XG4gICAgfSxcbiAgICBzZXQgKG5ld1ZhbHVlKSB7XG4gICAgICBsb2dnZXIubGV2ZWwgPSBuZXdWYWx1ZTtcbiAgICB9LFxuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pO1xuXG4gIGNvbnN0IGxvZ1RpbWVzdGFtcCA9IHBhcnNlSW50KHByb2Nlc3MuZW52Ll9MT0dfVElNRVNUQU1QLCAxMCkgPT09IDE7XG5cbiAgLy8gYWRkIGFsbCB0aGUgbGV2ZWxzIGZyb20gYG5wbWxvZ2AsIGFuZCBtYXAgdG8gdGhlIHVuZGVybHlpbmcgbG9nZ2VyXG4gIGZvciAoY29uc3QgbGV2ZWwgb2YgTlBNX0xFVkVMUykge1xuICAgIHdyYXBwZWRMb2dnZXJbbGV2ZWxdID0gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgIGNvbnN0IGFjdHVhbFByZWZpeCA9IGdldEFjdHVhbFByZWZpeChwcmVmaXgsIGxvZ1RpbWVzdGFtcCk7XG4gICAgICBmb3IgKGNvbnN0IGFyZyBvZiBhcmdzKSB7XG4gICAgICAgIGNvbnN0IG91dCA9IChfLmlzRXJyb3IoYXJnKSAmJiBhcmcuc3RhY2spID8gYXJnLnN0YWNrIDogYCR7YXJnfWA7XG4gICAgICAgIGZvciAoY29uc3QgbGluZSBvZiBvdXQuc3BsaXQoJ1xcbicpKSB7XG4gICAgICAgICAgLy8gaXQgaXMgbmVjZXNzYXJ5IHRvIHVubGVhayBlYWNoIGxpbmUgYmVjYXVzZSBgc3BsaXRgIGNhbGxcbiAgICAgICAgICAvLyBjcmVhdGVzIFwidmlld3NcIiB0byB0aGUgb3JpZ2luYWwgc3RyaW5nIGFzIHdlbGwgYXMgdGhlIGBzdWJzdHJpbmdgIG9uZVxuICAgICAgICAgIGNvbnN0IHVubGVha2VkTGluZSA9IHVubGVha1N0cmluZyhsaW5lKTtcbiAgICAgICAgICBsb2dnZXJbbGV2ZWxdKGFjdHVhbFByZWZpeCwgU0VDVVJFX1ZBTFVFU19QUkVQUk9DRVNTT1IucHJlcHJvY2Vzcyh1bmxlYWtlZExpbmUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH1cbiAgLy8gYWRkIG1ldGhvZCB0byBsb2cgYW4gZXJyb3IsIGFuZCB0aHJvdyBpdCwgZm9yIGNvbnZlbmllbmNlXG4gIHdyYXBwZWRMb2dnZXIuZXJyb3JBbmRUaHJvdyA9IGZ1bmN0aW9uIChlcnIpIHtcbiAgICB0aGlzLmVycm9yKGVycik7XG4gICAgLy8gbWFrZSBzdXJlIHdlIGhhdmUgYW4gYEVycm9yYCBvYmplY3QuIFdyYXAgaWYgbmVjZXNzYXJ5XG4gICAgdGhyb3cgKF8uaXNFcnJvcihlcnIpID8gZXJyIDogbmV3IEVycm9yKHVubGVha1N0cmluZyhlcnIpKSk7XG4gIH07XG4gIGlmICghdXNpbmdHbG9iYWxMb2cpIHtcbiAgICAvLyBpZiB3ZSdyZSBub3QgdXNpbmcgYSBnbG9iYWwgbG9nIHNwZWNpZmllZCBmcm9tIHNvbWUgdG9wLWxldmVsIHBhY2thZ2UsXG4gICAgLy8gc2V0IHRoZSBsb2cgbGV2ZWwgdG8gYSBkZWZhdWx0IG9mIHZlcmJvc2UuIE90aGVyd2lzZSwgbGV0IHRoZSB0b3AtbGV2ZWxcbiAgICAvLyBwYWNrYWdlIHNldCB0aGUgbG9nIGxldmVsXG4gICAgd3JhcHBlZExvZ2dlci5sZXZlbCA9ICd2ZXJib3NlJztcbiAgfVxuICB3cmFwcGVkTG9nZ2VyLmxldmVscyA9IE5QTV9MRVZFTFM7XG4gIHJldHVybiB3cmFwcGVkTG9nZ2VyO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIExvYWRSZXN1bHRcbiAqIEBwcm9wZXJ0eSB7TGlzdDxzdHJpbmc+fSBpc3N1ZXMgVGhlIGxpc3Qgb2YgcnVsZSBwYXJzaW5nIGlzc3VlcyAob25lIGl0ZW0gcGVyIHJ1bGUpLlxuICogUnVsZXMgd2l0aCBpc3N1ZXMgYXJlIHNraXBwZWQuIEFuIGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQgaWYgbm8gcGFyc2luZyBpc3N1ZXMgZXhpc3QuXG4gKiBAcHJvcGVydHkge0xpc3Q8U2VjdXJlVmFsdWVQcmVwcm9jZXNzaW5nUnVsZT59IHJ1bGVzIFRoZSBsaXN0IG9mIHN1Y2Nlc3NmdWxseSBsb2FkZWRcbiAqIHJlcGxhY2VtZW50IHJ1bGVzLiBUaGUgbGlzdCBjb3VsZCBiZSBlbXB0eSBpZiBubyBydWxlcyB3ZXJlIGxvYWRlZC5cbiAqL1xuXG4vKipcbiAqIExvYWRzIHRoZSBKU09OIGZpbGUgY29udGFpbmluZyBzZWN1cmUgdmFsdWVzIHJlcGxhY2VtZW50IHJ1bGVzLlxuICogVGhpcyBtaWdodCBiZSBuZWNlc3NhcnkgdG8gaGlkZSBzZW5zaXRpdmUgdmFsdWVzIHRoYXQgbWF5IHBvc3NpYmx5XG4gKiBhcHBlYXIgaW4gQXBwaXVtIGxvZ3MuXG4gKiBFYWNoIGNhbGwgdG8gdGhpcyBtZXRob2QgcmVwbGFjZXMgdGhlIHByZXZpb3VzbHkgbG9hZGVkIHJ1bGVzIGlmIGFueSBleGlzdGVkLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfFJ1bGVbXX0gcnVsZXNKc29uUGF0aCBUaGUgZnVsbCBwYXRoIHRvIHRoZSBKU09OIGZpbGUgY29udGFpbmluZ1xuICogdGhlIHJlcGxhY2VtZW50IHJ1bGVzLiBFYWNoIHJ1bGUgY291bGQgZWl0aGVyIGJlIGEgc3RyaW5nIHRvIGJlIHJlcGxhY2VkXG4gKiBvciBhbiBvYmplY3Qgd2l0aCBwcmVkZWZpbmVkIHByb3BlcnRpZXMuIFNlZSB0aGUgYFJ1bGVgIHR5cGUgZGVmaW5pdGlvbiBpblxuICogYGxvZy1pbnRlcm5hbHMuanNgIHRvIGdldCBtb3JlIGRldGFpbHMgb24gaXRzIGZvcm1hdC5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgZ2l2ZW4gZmlsZSBjYW5ub3QgYmUgbG9hZGVkXG4gKiBAcmV0dXJucyB7TG9hZFJlc3VsdH1cbiAqL1xuYXN5bmMgZnVuY3Rpb24gbG9hZFNlY3VyZVZhbHVlc1ByZXByb2Nlc3NpbmdSdWxlcyAocnVsZXNKc29uUGF0aCkge1xuICBjb25zdCBpc3N1ZXMgPSBhd2FpdCBTRUNVUkVfVkFMVUVTX1BSRVBST0NFU1NPUi5sb2FkUnVsZXMocnVsZXNKc29uUGF0aCk7XG4gIHJldHVybiB7XG4gICAgaXNzdWVzLFxuICAgIHJ1bGVzOiBfLmNsb25lRGVlcChTRUNVUkVfVkFMVUVTX1BSRVBST0NFU1NPUi5ydWxlcyksXG4gIH07XG59XG5cbi8vIGV4cG9ydCBhIGRlZmF1bHQgbG9nZ2VyIHdpdGggbm8gcHJlZml4XG5jb25zdCBsb2cgPSBnZXRMb2dnZXIoKTtcblxuZXhwb3J0IHsgbG9nLCBwYXRjaExvZ2dlciwgZ2V0TG9nZ2VyLCBsb2FkU2VjdXJlVmFsdWVzUHJlcHJvY2Vzc2luZ1J1bGVzIH07XG5leHBvcnQgZGVmYXVsdCBsb2c7XG4iXX0=
|
|
129
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9sb2dnaW5nLmpzIl0sIm5hbWVzIjpbIk5QTV9MRVZFTFMiLCJNQVhfTE9HX1JFQ09SRFNfQ09VTlQiLCJQUkVGSVhfVElNRVNUQU1QX0ZPUk1BVCIsIm1vY2tMb2ciLCJsZXZlbCIsInBhdGNoTG9nZ2VyIiwibG9nZ2VyIiwiZGVidWciLCJhZGRMZXZlbCIsImZnIiwiYmciLCJfZ2V0TG9nZ2VyIiwidGVzdGluZ01vZGUiLCJwcm9jZXNzIiwiZW52IiwiX1RFU1RJTkciLCJmb3JjZUxvZ01vZGUiLCJfRk9SQ0VfTE9HUyIsInVzaW5nR2xvYmFsTG9nIiwiZ2xvYmFsIiwiX2dsb2JhbF9ucG1sb2ciLCJucG1sb2ciLCJtYXhSZWNvcmRTaXplIiwiZ2V0QWN0dWFsUHJlZml4IiwicHJlZml4IiwibG9nVGltZXN0YW1wIiwicmVzdWx0IiwiXyIsImlzRnVuY3Rpb24iLCJmb3JtYXQiLCJnZXRMb2dnZXIiLCJ3cmFwcGVkTG9nZ2VyIiwidW53cmFwIiwibGV2ZWxzIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXQiLCJzZXQiLCJuZXdWYWx1ZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJfTE9HX1RJTUVTVEFNUCIsImFyZ3MiLCJhY3R1YWxQcmVmaXgiLCJhcmciLCJvdXQiLCJpc0Vycm9yIiwic3RhY2siLCJsaW5lIiwic3BsaXQiLCJ1bmxlYWtlZExpbmUiLCJTRUNVUkVfVkFMVUVTX1BSRVBST0NFU1NPUiIsInByZXByb2Nlc3MiLCJlcnJvckFuZFRocm93IiwiZXJyIiwiZXJyb3IiLCJFcnJvciIsImxvYWRTZWN1cmVWYWx1ZXNQcmVwcm9jZXNzaW5nUnVsZXMiLCJydWxlc0pzb25QYXRoIiwiaXNzdWVzIiwibG9hZFJ1bGVzIiwicnVsZXMiLCJjbG9uZURlZXAiLCJsb2ciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBLE1BQU1BLFVBQVUsR0FBRyxD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TztBQUNMQyxJQUFBQSxNQURLO0FBRUxFLElBQUFBLEtBQUssRUFBRWxDLGdCQUFFbUMsU0FBRixDQUFZWCxxQkFBMkJVLEtBQXZDO0FBRkYsR0FBUDtBQUlEOztBQUdELE1BQU1FLEdBQUcsR0FBR2pDLFNBQVMsRUFBckI7O2VBR2VpQyxHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG5wbWxvZyBmcm9tICducG1sb2cnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHVubGVha1N0cmluZyB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgU0VDVVJFX1ZBTFVFU19QUkVQUk9DRVNTT1IgZnJvbSAnLi9sb2ctaW50ZXJuYWwnO1xuXG4vLyBsZXZlbHMgdGhhdCBhcmUgYXZhaWxhYmxlIGZyb20gYG5wbWxvZ2BcbmNvbnN0IE5QTV9MRVZFTFMgPSBbJ3NpbGx5JywgJ3ZlcmJvc2UnLCAnZGVidWcnLCAnaW5mbycsICdodHRwJywgJ3dhcm4nLCAnZXJyb3InXTtcbmNvbnN0IE1BWF9MT0dfUkVDT1JEU19DT1VOVCA9IDMwMDA7XG5cbmNvbnN0IFBSRUZJWF9USU1FU1RBTVBfRk9STUFUID0gJ0hILW1tLXNzOlNTUyc7XG5cbi8vIG1vY2sgbG9nIG9iamVjdCB1c2VkIGluIHRlc3RpbmcgbW9kZVxubGV0IG1vY2tMb2cgPSB7fTtcbmZvciAobGV0IGxldmVsIG9mIE5QTV9MRVZFTFMpIHtcbiAgbW9ja0xvZ1tsZXZlbF0gPSAoKSA9PiB7fTtcbn1cblxuZnVuY3Rpb24gcGF0Y2hMb2dnZXIgKGxvZ2dlcikge1xuICBpZiAoIWxvZ2dlci5kZWJ1Zykge1xuICAgIGxvZ2dlci5hZGRMZXZlbCgnZGVidWcnLCAxMDAwLCB7IGZnOiAnYmx1ZScsIGJnOiAnYmxhY2snIH0sICdkYnVnJyk7XG4gIH1cbn1cblxuLyoqXG4gKlxuICogQHJldHVybnMge1tucG1sb2cuTG9nZ2VyLCBib29sZWFuXX1cbiAqL1xuZnVuY3Rpb24gX2dldExvZ2dlciAoKSB7XG4gIC8vIGNoZWNrIGlmIHRoZSB1c2VyIHNldCB0aGUgYF9URVNUSU5HYCBvciBgX0ZPUkNFX0xPR1NgIGZsYWdcbiAgY29uc3QgdGVzdGluZ01vZGUgPSBwcm9jZXNzLmVudi5fVEVTVElORyA9PT0gJzEnO1xuICBjb25zdCBmb3JjZUxvZ01vZGUgPSBwcm9jZXNzLmVudi5fRk9SQ0VfTE9HUyA9PT0gJzEnO1xuXG4gIC8vIGlmIGlzIHBvc3NpYmxlIHRoYXQgdGhlcmUgaXMgYSBsb2dnZXIgaW5zdGFuY2UgdGhhdCBpcyBhbHJlYWR5IGFyb3VuZCxcbiAgLy8gaW4gd2hpY2ggY2FzZSB3ZSB3YW50IHQgbyB1c2UgdGhhdFxuICBjb25zdCB1c2luZ0dsb2JhbExvZyA9ICEhZ2xvYmFsLl9nbG9iYWxfbnBtbG9nO1xuICBsZXQgbG9nZ2VyO1xuICBpZiAodGVzdGluZ01vZGUgJiYgIWZvcmNlTG9nTW9kZSkge1xuICAgIC8vIGluIHRlc3RpbmcgbW9kZSwgdXNlIGEgbW9jayBsb2dnZXIgb2JqZWN0IHRoYXQgd2UgY2FuIHF1ZXJ5XG4gICAgbG9nZ2VyID0gbW9ja0xvZztcbiAgfSBlbHNlIHtcbiAgICAvLyBvdGhlcndpc2UsIGVpdGhlciB1c2UgdGhlIGdsb2JhbCwgb3IgYSBuZXcgYG5wbWxvZ2Agb2JqZWN0XG4gICAgbG9nZ2VyID0gZ2xvYmFsLl9nbG9iYWxfbnBtbG9nIHx8IG5wbWxvZztcbiAgICAvLyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAxMDAwMCwgd2hpY2ggY2F1c2VzIGV4Y2Vzc2l2ZSBtZW1vcnkgdXNhZ2VcbiAgICBsb2dnZXIubWF4UmVjb3JkU2l6ZSA9IE1BWF9MT0dfUkVDT1JEU19DT1VOVDtcbiAgfVxuICBwYXRjaExvZ2dlcihsb2dnZXIpO1xuICByZXR1cm4gW2xvZ2dlciwgdXNpbmdHbG9iYWxMb2ddO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7UHJlZml4P30gcHJlZml4XG4gKiBAcGFyYW0ge2Jvb2xlYW59IGxvZ1RpbWVzdGFtcCB3aGV0aGVyIHRvIGluY2x1ZGUgdGltZXN0YW1wcyBpbnRvIGxvZyBwcmVmaXhlc1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gZ2V0QWN0dWFsUHJlZml4IChwcmVmaXgsIGxvZ1RpbWVzdGFtcCA9IGZhbHNlKSB7XG4gIGNvbnN0IHJlc3VsdCA9IChfLmlzRnVuY3Rpb24ocHJlZml4KSA/IHByZWZpeCgpIDogcHJlZml4KSA/PyAnJztcbiAgcmV0dXJuIGxvZ1RpbWVzdGFtcFxuICAgID8gYFske21vbWVudCgpLmZvcm1hdChQUkVGSVhfVElNRVNUQU1QX0ZPUk1BVCl9XSAke3Jlc3VsdH1gXG4gICAgOiByZXN1bHQ7XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7UHJlZml4P30gcHJlZml4XG4gKiBAcmV0dXJucyB7QXBwaXVtTG9nZ2VyfVxuICovXG5mdW5jdGlvbiBnZXRMb2dnZXIgKHByZWZpeCA9IG51bGwpIHtcbiAgbGV0IFtsb2dnZXIsIHVzaW5nR2xvYmFsTG9nXSA9IF9nZXRMb2dnZXIoKTtcblxuICAvLyB3cmFwIHRoZSBsb2dnZXIgc28gdGhhdCB3ZSBjYW4gY2F0Y2ggYW5kIG1vZGlmeSBhbnkgbG9nZ2luZ1xuICBsZXQgd3JhcHBlZExvZ2dlciA9IHtcbiAgICB1bndyYXA6ICgpID0+IGxvZ2dlcixcbiAgICBsZXZlbHM6IE5QTV9MRVZFTFMsXG4gICAgcHJlZml4LFxuICB9O1xuXG4gIC8vIGFsbG93IGFjY2VzcyB0byB0aGUgbGV2ZWwgb2YgdGhlIHVuZGVybHlpbmcgbG9nZ2VyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3cmFwcGVkTG9nZ2VyLCAnbGV2ZWwnLCB7XG4gICAgZ2V0ICgpIHtcbiAgICAgIHJldHVybiBsb2dnZXIubGV2ZWw7XG4gICAgfSxcbiAgICBzZXQgKG5ld1ZhbHVlKSB7XG4gICAgICBsb2dnZXIubGV2ZWwgPSBuZXdWYWx1ZTtcbiAgICB9LFxuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pO1xuXG4gIGNvbnN0IGxvZ1RpbWVzdGFtcCA9IHByb2Nlc3MuZW52Ll9MT0dfVElNRVNUQU1QID09PSAnMSc7XG5cbiAgLy8gYWRkIGFsbCB0aGUgbGV2ZWxzIGZyb20gYG5wbWxvZ2AsIGFuZCBtYXAgdG8gdGhlIHVuZGVybHlpbmcgbG9nZ2VyXG4gIGZvciAoY29uc3QgbGV2ZWwgb2YgTlBNX0xFVkVMUykge1xuICAgIHdyYXBwZWRMb2dnZXJbbGV2ZWxdID0gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgIGNvbnN0IGFjdHVhbFByZWZpeCA9IGdldEFjdHVhbFByZWZpeCh0aGlzLnByZWZpeCwgbG9nVGltZXN0YW1wKTtcbiAgICAgIGZvciAoY29uc3QgYXJnIG9mIGFyZ3MpIHtcbiAgICAgICAgY29uc3Qgb3V0ID0gKF8uaXNFcnJvcihhcmcpICYmIGFyZy5zdGFjaykgPyBhcmcuc3RhY2sgOiBgJHthcmd9YDtcbiAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIG91dC5zcGxpdCgnXFxuJykpIHtcbiAgICAgICAgICAvLyBpdCBpcyBuZWNlc3NhcnkgdG8gdW5sZWFrIGVhY2ggbGluZSBiZWNhdXNlIGBzcGxpdGAgY2FsbFxuICAgICAgICAgIC8vIGNyZWF0ZXMgXCJ2aWV3c1wiIHRvIHRoZSBvcmlnaW5hbCBzdHJpbmcgYXMgd2VsbCBhcyB0aGUgYHN1YnN0cmluZ2Agb25lXG4gICAgICAgICAgY29uc3QgdW5sZWFrZWRMaW5lID0gdW5sZWFrU3RyaW5nKGxpbmUpO1xuICAgICAgICAgIGxvZ2dlcltsZXZlbF0oYWN0dWFsUHJlZml4LCBTRUNVUkVfVkFMVUVTX1BSRVBST0NFU1NPUi5wcmVwcm9jZXNzKHVubGVha2VkTGluZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfVxuICAvLyBhZGQgbWV0aG9kIHRvIGxvZyBhbiBlcnJvciwgYW5kIHRocm93IGl0LCBmb3IgY29udmVuaWVuY2VcbiAgd3JhcHBlZExvZ2dlci5lcnJvckFuZFRocm93ID0gZnVuY3Rpb24gKGVycikge1xuICAgIHRoaXMuZXJyb3IoZXJyKTtcbiAgICAvLyBtYWtlIHN1cmUgd2UgaGF2ZSBhbiBgRXJyb3JgIG9iamVjdC4gV3JhcCBpZiBuZWNlc3NhcnlcbiAgICB0aHJvdyAoXy5pc0Vycm9yKGVycikgPyBlcnIgOiBuZXcgRXJyb3IodW5sZWFrU3RyaW5nKGVycikpKTtcbiAgfTtcbiAgaWYgKCF1c2luZ0dsb2JhbExvZykge1xuICAgIC8vIGlmIHdlJ3JlIG5vdCB1c2luZyBhIGdsb2JhbCBsb2cgc3BlY2lmaWVkIGZyb20gc29tZSB0b3AtbGV2ZWwgcGFja2FnZSxcbiAgICAvLyBzZXQgdGhlIGxvZyBsZXZlbCB0byBhIGRlZmF1bHQgb2YgdmVyYm9zZS4gT3RoZXJ3aXNlLCBsZXQgdGhlIHRvcC1sZXZlbFxuICAgIC8vIHBhY2thZ2Ugc2V0IHRoZSBsb2cgbGV2ZWxcbiAgICB3cmFwcGVkTG9nZ2VyLmxldmVsID0gJ3ZlcmJvc2UnO1xuICB9XG4gIHJldHVybiAvKiogQHR5cGUge0FwcGl1bUxvZ2dlcn0gKi8od3JhcHBlZExvZ2dlcik7XG59XG5cbi8qKlxuICogQHR5cGVkZWYgTG9hZFJlc3VsdFxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gaXNzdWVzIFRoZSBsaXN0IG9mIHJ1bGUgcGFyc2luZyBpc3N1ZXMgKG9uZSBpdGVtIHBlciBydWxlKS5cbiAqIFJ1bGVzIHdpdGggaXNzdWVzIGFyZSBza2lwcGVkLiBBbiBlbXB0eSBsaXN0IGlzIHJldHVybmVkIGlmIG5vIHBhcnNpbmcgaXNzdWVzIGV4aXN0LlxuICogQHByb3BlcnR5IHtpbXBvcnQoJy4vbG9nLWludGVybmFsJykuU2VjdXJlVmFsdWVQcmVwcm9jZXNzaW5nUnVsZVtdfSBydWxlcyBUaGUgbGlzdCBvZiBzdWNjZXNzZnVsbHkgbG9hZGVkXG4gKiByZXBsYWNlbWVudCBydWxlcy4gVGhlIGxpc3QgY291bGQgYmUgZW1wdHkgaWYgbm8gcnVsZXMgd2VyZSBsb2FkZWQuXG4gKi9cblxuLyoqXG4gKiBMb2FkcyB0aGUgSlNPTiBmaWxlIGNvbnRhaW5pbmcgc2VjdXJlIHZhbHVlcyByZXBsYWNlbWVudCBydWxlcy5cbiAqIFRoaXMgbWlnaHQgYmUgbmVjZXNzYXJ5IHRvIGhpZGUgc2Vuc2l0aXZlIHZhbHVlcyB0aGF0IG1heSBwb3NzaWJseVxuICogYXBwZWFyIGluIEFwcGl1bSBsb2dzLlxuICogRWFjaCBjYWxsIHRvIHRoaXMgbWV0aG9kIHJlcGxhY2VzIHRoZSBwcmV2aW91c2x5IGxvYWRlZCBydWxlcyBpZiBhbnkgZXhpc3RlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXXxpbXBvcnQoJy4vbG9nLWludGVybmFsJykuUnVsZVtdfSBydWxlc0pzb25QYXRoIFRoZSBmdWxsIHBhdGggdG8gdGhlIEpTT04gZmlsZSBjb250YWluaW5nXG4gKiB0aGUgcmVwbGFjZW1lbnQgcnVsZXMuIEVhY2ggcnVsZSBjb3VsZCBlaXRoZXIgYmUgYSBzdHJpbmcgdG8gYmUgcmVwbGFjZWRcbiAqIG9yIGFuIG9iamVjdCB3aXRoIHByZWRlZmluZWQgcHJvcGVydGllcy4gU2VlIHRoZSBgUnVsZWAgdHlwZSBkZWZpbml0aW9uIGluXG4gKiBgbG9nLWludGVybmFscy5qc2AgdG8gZ2V0IG1vcmUgZGV0YWlscyBvbiBpdHMgZm9ybWF0LlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBnaXZlbiBmaWxlIGNhbm5vdCBiZSBsb2FkZWRcbiAqIEByZXR1cm5zIHtQcm9taXNlPExvYWRSZXN1bHQ+fVxuICovXG5hc3luYyBmdW5jdGlvbiBsb2FkU2VjdXJlVmFsdWVzUHJlcHJvY2Vzc2luZ1J1bGVzIChydWxlc0pzb25QYXRoKSB7XG4gIGNvbnN0IGlzc3VlcyA9IGF3YWl0IFNFQ1VSRV9WQUxVRVNfUFJFUFJPQ0VTU09SLmxvYWRSdWxlcyhydWxlc0pzb25QYXRoKTtcbiAgcmV0dXJuIHtcbiAgICBpc3N1ZXMsXG4gICAgcnVsZXM6IF8uY2xvbmVEZWVwKFNFQ1VSRV9WQUxVRVNfUFJFUFJPQ0VTU09SLnJ1bGVzKSxcbiAgfTtcbn1cblxuLy8gZXhwb3J0IGEgZGVmYXVsdCBsb2dnZXIgd2l0aCBubyBwcmVmaXhcbmNvbnN0IGxvZyA9IGdldExvZ2dlcigpO1xuXG5leHBvcnQgeyBsb2csIHBhdGNoTG9nZ2VyLCBnZXRMb2dnZXIsIGxvYWRTZWN1cmVWYWx1ZXNQcmVwcm9jZXNzaW5nUnVsZXMgfTtcbmV4cG9ydCBkZWZhdWx0IGxvZztcblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuUHJlZml4fSBQcmVmaXhcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5BcHBpdW1Mb2dnZXJ9IEFwcGl1bUxvZ2dlclxuICovXG4iXX0=
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/** Class which stores the last bit of data streamed into it */
|
|
2
|
+
export class MJpegStream extends Writable {
|
|
3
|
+
/**
|
|
4
|
+
* Create an MJpegStream
|
|
5
|
+
* @param {string} mJpegUrl - URL of MJPEG-over-HTTP stream
|
|
6
|
+
* @param {function} [errorHandler=noop] - additional function that will be
|
|
7
|
+
* called in the case of any errors.
|
|
8
|
+
* @param {object} [options={}] - Options to pass to the Writable constructor
|
|
9
|
+
*/
|
|
10
|
+
constructor(mJpegUrl: string, errorHandler?: Function | undefined, options?: object);
|
|
11
|
+
/**
|
|
12
|
+
* @type {number}
|
|
13
|
+
*/
|
|
14
|
+
updateCount: number;
|
|
15
|
+
errorHandler: Function;
|
|
16
|
+
url: string;
|
|
17
|
+
/**
|
|
18
|
+
* Get the base64-encoded version of the JPEG
|
|
19
|
+
*
|
|
20
|
+
* @returns {?string} base64-encoded JPEG image data
|
|
21
|
+
* or `null` if no image can be parsed
|
|
22
|
+
*/
|
|
23
|
+
get lastChunkBase64(): string | null;
|
|
24
|
+
/**
|
|
25
|
+
* Get the PNG version of the JPEG buffer
|
|
26
|
+
*
|
|
27
|
+
* @returns {Promise<Buffer?>} PNG image data or `null` if no PNG
|
|
28
|
+
* image can be parsed
|
|
29
|
+
*/
|
|
30
|
+
lastChunkPNG(): Promise<Buffer | null>;
|
|
31
|
+
/**
|
|
32
|
+
* Get the base64-encoded version of the PNG
|
|
33
|
+
*
|
|
34
|
+
* @returns {Promise<string?>} base64-encoded PNG image data
|
|
35
|
+
* or `null` if no image can be parsed
|
|
36
|
+
*/
|
|
37
|
+
lastChunkPNGBase64(): Promise<string | null>;
|
|
38
|
+
/**
|
|
39
|
+
* Reset internal state
|
|
40
|
+
*/
|
|
41
|
+
clear(): void;
|
|
42
|
+
registerStartSuccess: ((thenableOrResult?: any) => void) | null | undefined;
|
|
43
|
+
registerStartFailure: ((error?: any) => void) | null | undefined;
|
|
44
|
+
responseStream: any;
|
|
45
|
+
consumer: any;
|
|
46
|
+
lastChunk: Buffer | null | undefined;
|
|
47
|
+
/**
|
|
48
|
+
* Start reading the MJpeg stream and storing the last image
|
|
49
|
+
*/
|
|
50
|
+
start(serverTimeout?: number): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Stop reading the MJpeg stream. Ensure we disconnect all the pipes and stop
|
|
53
|
+
* the HTTP request itself. Then reset the state.
|
|
54
|
+
*/
|
|
55
|
+
stop(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Override the Writable write() method in order to save the last image and
|
|
58
|
+
* log the number of images we have received
|
|
59
|
+
* @override
|
|
60
|
+
* @param {Buffer} data - binary data streamed from the MJpeg consumer
|
|
61
|
+
*/
|
|
62
|
+
override write(data: Buffer): boolean;
|
|
63
|
+
}
|
|
64
|
+
import { Writable } from "stream";
|
|
65
|
+
//# sourceMappingURL=mjpeg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mjpeg.d.ts","sourceRoot":"","sources":["../../lib/mjpeg.js"],"names":[],"mappings":"AA6BA,+DAA+D;AAC/D;IAOE;;;;;;OAMG;IACH,sBALW,MAAM,iDAGN,MAAM,EAQhB;IAlBD;;OAEG;IACH,aAFU,MAAM,CAEA;IAYd,uBAAgC;IAChC,YAAmB;IAIrB;;;;;OAKG;IACH,qCAKC;IAED;;;;;OAKG;IACH,gBAHa,QAAQ,MAAM,QAAE,CAe5B;IAED;;;;;OAKG;IACH,sBAHa,QAAQ,MAAM,QAAE,CAM5B;IAED;;OAEG;IACH,cAOC;IANC,4EAAgC;IAChC,iEAAgC;IAChC,oBAA0B;IAC1B,cAAoB;IACpB,qCAAqB;IAIvB;;OAEG;IACH,6CAoDC;IAED;;;OAGG;IACH,aASC;IAED;;;;;OAKG;IACH,qBAFW,MAAM,WAYhB;CACF"}
|
package/build/lib/mjpeg.js
CHANGED
|
@@ -40,6 +40,8 @@ async function initMJpegConsumer() {
|
|
|
40
40
|
const MJPEG_SERVER_TIMEOUT_MS = 10000;
|
|
41
41
|
|
|
42
42
|
class MJpegStream extends _stream.Writable {
|
|
43
|
+
updateCount = 0;
|
|
44
|
+
|
|
43
45
|
constructor(mJpegUrl, errorHandler = _lodash.default.noop, options = {}) {
|
|
44
46
|
super(options);
|
|
45
47
|
this.errorHandler = errorHandler;
|
|
@@ -48,16 +50,19 @@ class MJpegStream extends _stream.Writable {
|
|
|
48
50
|
}
|
|
49
51
|
|
|
50
52
|
get lastChunkBase64() {
|
|
51
|
-
|
|
53
|
+
const lastChunk = this.lastChunk;
|
|
54
|
+
return !_lodash.default.isEmpty(this.lastChunk) && _lodash.default.isBuffer(this.lastChunk) ? lastChunk.toString('base64') : null;
|
|
52
55
|
}
|
|
53
56
|
|
|
54
57
|
async lastChunkPNG() {
|
|
55
|
-
|
|
58
|
+
const lastChunk = this.lastChunk;
|
|
59
|
+
|
|
60
|
+
if (_lodash.default.isEmpty(lastChunk) || !_lodash.default.isBuffer(lastChunk)) {
|
|
56
61
|
return null;
|
|
57
62
|
}
|
|
58
63
|
|
|
59
64
|
try {
|
|
60
|
-
const jpg = await (0, _imageUtil.getJimpImage)(
|
|
65
|
+
const jpg = await (0, _imageUtil.getJimpImage)(lastChunk);
|
|
61
66
|
return await jpg.getBuffer(_imageUtil.MIME_PNG);
|
|
62
67
|
} catch (e) {
|
|
63
68
|
return null;
|
|
@@ -139,9 +144,11 @@ class MJpegStream extends _stream.Writable {
|
|
|
139
144
|
this.registerStartSuccess();
|
|
140
145
|
this.registerStartSuccess = null;
|
|
141
146
|
}
|
|
147
|
+
|
|
148
|
+
return true;
|
|
142
149
|
}
|
|
143
150
|
|
|
144
151
|
}
|
|
145
152
|
|
|
146
153
|
exports.MJpegStream = MJpegStream;
|
|
147
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9tanBlZy5qcyJdLCJuYW1lcyI6WyJNSnBlZ0NvbnN1bWVyIiwiaW5pdE1KcGVnQ29uc3VtZXIiLCJpZ24iLCJFcnJvciIsIk1KUEVHX1NFUlZFUl9USU1FT1VUX01TIiwiTUpwZWdTdHJlYW0iLCJXcml0YWJsZSIsImNvbnN0cnVjdG9yIiwibUpwZWdVcmwiLCJlcnJvckhhbmRsZXIiLCJfIiwibm9vcCIsIm9wdGlvbnMiLCJ1cmwiLCJjbGVhciIsImxhc3RDaHVua0Jhc2U2NCIsImlzRW1wdHkiLCJsYXN0Q2h1bmsiLCJpc0J1ZmZlciIsInRvU3RyaW5nIiwibGFzdENodW5rUE5HIiwianBnIiwiZ2V0QnVmZmVyIiwiTUlNRV9QTkciLCJlIiwibGFzdENodW5rUE5HQmFzZTY0IiwicG5nIiwicmVnaXN0ZXJTdGFydFN1Y2Nlc3MiLCJyZWdpc3RlclN0YXJ0RmFpbHVyZSIsInJlc3BvbnNlU3RyZWFtIiwiY29uc3VtZXIiLCJ1cGRhdGVDb3VudCIsInN0YXJ0Iiwic2VydmVyVGltZW91dCIsInN0b3AiLCJzdGFydFByb21pc2UiLCJCIiwicmVzIiwicmVqIiwidGltZW91dCIsIm9uRXJyIiwiZXJyIiwibG9nIiwiZXJyb3IiLCJtZXNzYWdlIiwib25DbG9zZSIsImRlYnVnIiwicmVzcG9uc2VUeXBlIiwiZGF0YSIsIm9uY2UiLCJvbiIsInBpcGUiLCJ1bnBpcGUiLCJkZXN0cm95Iiwid3JpdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsSUFBSUEsYUFBYSxHQUFHLElBQXBCOztBQUtBLGVBQWVDLGlCQUFmLEdBQW9DO0FBQ2xDLE1BQUksQ0FBQ0QsYUFBTCxFQUFvQjtBQUNsQixRQUFJO0FBQ0ZBLE1BQUFBLGFBQWEsR0FBRyxNQUFNLDBCQUFlLGdCQUFmLENBQXRCO0FBQ0QsS0FGRCxDQUVFLE9BQU9FLEdBQVAsRUFBWSxDQUFFO0FBQ2pCOztBQUNE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QSxXQUFLSSxTQUFMLEdBQWlCLElBQWpCO0FBQ0QsS0FIRDs7QUFLQSxRQUFJO0FBQ0YsV0FBS1ksY0FBTCxHQUFzQixDQUFDLE1BQU0sb0JBQU07QUFDakNoQixRQUFBQSxHQURpQztBQUVqQ2tDLFFBQUFBLFlBQVksRUFBRSxRQUZtQjtBQUdqQ1IsUUFBQUEsT0FBTyxFQUFFTjtBQUh3QixPQUFOLENBQVAsRUFJbEJlLElBSko7QUFLRCxLQU5ELENBTUUsT0FBT3hCLENBQVAsRUFBVTtBQUNWLGFBQU9nQixLQUFLLENBQUNoQixDQUFELENBQVo7QUFDRDs7QUFFRCxTQUFLSyxjQUFMLENBQ0dvQixJQURILENBQ1EsT0FEUixFQUNpQkosT0FEakIsRUFFR0ssRUFGSCxDQUVNLE9BRk4sRUFFZVYsS0FGZixFQUdHVyxJQUhILENBR1EsS0FBS3JCLFFBSGIsRUFJR3FCLElBSkgsQ0FJUSxJQUpSO0FBTUEsVUFBTWhCLFlBQU47QUFDRDs7QUFNREQsRUFBQUEsSUFBSSxHQUFJO0FBQ04sUUFBSSxDQUFDLEtBQUtKLFFBQVYsRUFBb0I7QUFDbEI7QUFDRDs7QUFFRCxTQUFLRCxjQUFMLENBQW9CdUIsTUFBcEIsQ0FBMkIsS0FBS3RCLFFBQWhDO0FBQ0EsU0FBS0EsUUFBTCxDQUFjc0IsTUFBZCxDQUFxQixJQUFyQjtBQUNBLFNBQUt2QixjQUFMLENBQW9Cd0IsT0FBcEI7QUFDQSxTQUFLdkMsS0FBTDtBQUNEOztBQVFEd0MsRUFBQUEsS0FBSyxDQUFFTixJQUFGLEVBQVE7QUFDWCxTQUFLL0IsU0FBTCxHQUFpQitCLElBQWpCO0FBQ0EsU0FBS2pCLFdBQUw7O0FBRUEsUUFBSSxLQUFLSixvQkFBVCxFQUErQjtBQUM3QixXQUFLQSxvQkFBTDtBQUNBLFdBQUtBLG9CQUFMLEdBQTRCLElBQTVCO0FBQ0Q7QUFDRjs7QUE3SmdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IHsgZ2V0SmltcEltYWdlLCBNSU1FX1BORyB9IGZyb20gJy4vaW1hZ2UtdXRpbCc7XG5pbXBvcnQgeyBXcml0YWJsZSB9IGZyb20gJ3N0cmVhbSc7XG5pbXBvcnQgeyByZXF1aXJlUGFja2FnZSB9IGZyb20gJy4vbm9kZSc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuXG4vLyBsYXp5IGxvYWQgdGhpcywgYXMgaXQgbWlnaHQgbm90IGJlIGF2YWlsYWJsZVxubGV0IE1KcGVnQ29uc3VtZXIgPSBudWxsO1xuXG4vKipcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiBgbWpwZWctY29uc3VtZXJgIG1vZHVsZSBpcyBub3QgaW5zdGFsbGVkIG9yIGNhbm5vdCBiZSBsb2FkZWRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gaW5pdE1KcGVnQ29uc3VtZXIgKCkge1xuICBpZiAoIU1KcGVnQ29uc3VtZXIpIHtcbiAgICB0cnkge1xuICAgICAgTUpwZWdDb25zdW1lciA9IGF3YWl0IHJlcXVpcmVQYWNrYWdlKCdtanBlZy1jb25zdW1lcicpO1xuICAgIH0gY2F0Y2ggKGlnbikge31cbiAgfVxuICBpZiAoIU1KcGVnQ29uc3VtZXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ21qcGVnLWNvbnN1bWVyIG1vZHVsZSBpcyByZXF1aXJlZCB0byB1c2UgTUpQRUctb3Zlci1IVFRQIGZlYXR1cmVzLiAnICtcbiAgICAgICAgICAgICAgICAgICAgJ1BsZWFzZSBpbnN0YWxsIGl0IGZpcnN0IChucG0gaSAtZyBtanBlZy1jb25zdW1lcikgYW5kIHJlc3RhcnQgQXBwaXVtLicpO1xuICB9XG59XG5cbi8vIGFtb3VudCBvZiB0aW1lIHRvIHdhaXQgZm9yIHRoZSBmaXJzdCBpbWFnZSBpbiB0aGUgc3RyZWFtXG5jb25zdCBNSlBFR19TRVJWRVJfVElNRU9VVF9NUyA9IDEwMDAwO1xuXG4vKiogQ2xhc3Mgd2hpY2ggc3RvcmVzIHRoZSBsYXN0IGJpdCBvZiBkYXRhIHN0cmVhbWVkIGludG8gaXQgKi9cbmNsYXNzIE1KcGVnU3RyZWFtIGV4dGVuZHMgV3JpdGFibGUge1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gTUpwZWdTdHJlYW1cbiAgICogQHBhcmFtIHtzdHJpbmd9IG1KcGVnVXJsIC0gVVJMIG9mIE1KUEVHLW92ZXItSFRUUCBzdHJlYW1cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gW2Vycm9ySGFuZGxlcj1ub29wXSAtIGFkZGl0aW9uYWwgZnVuY3Rpb24gdGhhdCB3aWxsIGJlXG4gICAqIGNhbGxlZCBpbiB0aGUgY2FzZSBvZiBhbnkgZXJyb3JzLlxuICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnM9e31dIC0gT3B0aW9ucyB0byBwYXNzIHRvIHRoZSBXcml0YWJsZSBjb25zdHJ1Y3RvclxuICAgKi9cbiAgY29uc3RydWN0b3IgKG1KcGVnVXJsLCBlcnJvckhhbmRsZXIgPSBfLm5vb3AsIG9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuXG4gICAgdGhpcy5lcnJvckhhbmRsZXIgPSBlcnJvckhhbmRsZXI7XG4gICAgdGhpcy51cmwgPSBtSnBlZ1VybDtcbiAgICB0aGlzLmNsZWFyKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBiYXNlNjQtZW5jb2RlZCB2ZXJzaW9uIG9mIHRoZSBKUEVHXG4gICAqXG4gICAqIEByZXR1cm5zIHs/c3RyaW5nfSBiYXNlNjQtZW5jb2RlZCBKUEVHIGltYWdlIGRhdGFcbiAgICogb3IgYG51bGxgIGlmIG5vIGltYWdlIGNhbiBiZSBwYXJzZWRcbiAgICovXG4gIGdldCBsYXN0Q2h1bmtCYXNlNjQgKCkge1xuICAgIHJldHVybiAhXy5pc0VtcHR5KHRoaXMubGFzdENodW5rKSAmJiBfLmlzQnVmZmVyKHRoaXMubGFzdENodW5rKVxuICAgICAgPyB0aGlzLmxhc3RDaHVuay50b1N0cmluZygnYmFzZTY0JylcbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIFBORyB2ZXJzaW9uIG9mIHRoZSBKUEVHIGJ1ZmZlclxuICAgKlxuICAgKiBAcmV0dXJucyB7P0J1ZmZlcn0gUE5HIGltYWdlIGRhdGEgb3IgYG51bGxgIGlmIG5vIFBOR1xuICAgKiBpbWFnZSBjYW4gYmUgcGFyc2VkXG4gICAqL1xuICBhc3luYyBsYXN0Q2h1bmtQTkcgKCkge1xuICAgIGlmIChfLmlzRW1wdHkodGhpcy5sYXN0Q2h1bmspIHx8ICFfLmlzQnVmZmVyKHRoaXMubGFzdENodW5rKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGpwZyA9IGF3YWl0IGdldEppbXBJbWFnZSh0aGlzLmxhc3RDaHVuayk7XG4gICAgICByZXR1cm4gYXdhaXQganBnLmdldEJ1ZmZlcihNSU1FX1BORyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYmFzZTY0LWVuY29kZWQgdmVyc2lvbiBvZiB0aGUgUE5HXG4gICAqXG4gICAqIEByZXR1cm5zIHs/c3RyaW5nfSBiYXNlNjQtZW5jb2RlZCBQTkcgaW1hZ2UgZGF0YVxuICAgKiBvciBgbnVsbGAgaWYgbm8gaW1hZ2UgY2FuIGJlIHBhcnNlZFxuICAgKi9cbiAgYXN5bmMgbGFzdENodW5rUE5HQmFzZTY0ICgpIHtcbiAgICBjb25zdCBwbmcgPSBhd2FpdCB0aGlzLmxhc3RDaHVua1BORygpO1xuICAgIHJldHVybiBwbmcgPyBwbmcudG9TdHJpbmcoJ2Jhc2U2NCcpIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBpbnRlcm5hbCBzdGF0ZVxuICAgKi9cbiAgY2xlYXIgKCkge1xuICAgIHRoaXMucmVnaXN0ZXJTdGFydFN1Y2Nlc3MgPSBudWxsO1xuICAgIHRoaXMucmVnaXN0ZXJTdGFydEZhaWx1cmUgPSBudWxsO1xuICAgIHRoaXMucmVzcG9uc2VTdHJlYW0gPSBudWxsO1xuICAgIHRoaXMuY29uc3VtZXIgPSBudWxsO1xuICAgIHRoaXMubGFzdENodW5rID0gbnVsbDtcbiAgICB0aGlzLnVwZGF0ZUNvdW50ID0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydCByZWFkaW5nIHRoZSBNSnBlZyBzdHJlYW0gYW5kIHN0b3JpbmcgdGhlIGxhc3QgaW1hZ2VcbiAgICovXG4gIGFzeW5jIHN0YXJ0IChzZXJ2ZXJUaW1lb3V0ID0gTUpQRUdfU0VSVkVSX1RJTUVPVVRfTVMpIHtcbiAgICAvLyBlbnN1cmUgd2UncmUgbm90IHN0YXJ0ZWQgYWxyZWFkeVxuICAgIHRoaXMuc3RvcCgpO1xuXG4gICAgYXdhaXQgaW5pdE1KcGVnQ29uc3VtZXIoKTtcblxuICAgIHRoaXMuY29uc3VtZXIgPSBuZXcgTUpwZWdDb25zdW1lcigpO1xuXG4gICAgLy8gdXNlIHRoZSBkZWZlcnJlZCBwYXR0ZXJuIHNvIHdlIGNhbiB3YWl0IGZvciB0aGUgc3RhcnQgb2YgdGhlIHN0cmVhbVxuICAgIC8vIGJhc2VkIG9uIHdoYXQgY29tZXMgaW4gZnJvbSBhbiBleHRlcm5hbCBwaXBlXG4gICAgY29uc3Qgc3RhcnRQcm9taXNlID0gbmV3IEIoKHJlcywgcmVqKSA9PiB7XG4gICAgICB0aGlzLnJlZ2lzdGVyU3RhcnRTdWNjZXNzID0gcmVzO1xuICAgICAgdGhpcy5yZWdpc3RlclN0YXJ0RmFpbHVyZSA9IHJlajtcbiAgICB9KVxuICAgIC8vIHN0YXJ0IGEgdGltZW91dCBzbyB0aGF0IGlmIHRoZSBzZXJ2ZXIgZG9lcyBub3QgcmV0dXJuIGRhdGEsIHdlIGRvbid0XG4gICAgLy8gYmxvY2sgZm9yZXZlci5cbiAgICAgIC50aW1lb3V0KHNlcnZlclRpbWVvdXQsXG4gICAgICAgIGBXYWl0ZWQgJHtzZXJ2ZXJUaW1lb3V0fW1zIGJ1dCB0aGUgTUpQRUcgc2VydmVyIG5ldmVyIHNlbnQgYW55IGltYWdlc2ApO1xuXG4gICAgY29uc3QgdXJsID0gdGhpcy51cmw7XG4gICAgY29uc3Qgb25FcnIgPSAoZXJyKSA9PiB7XG4gICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgZ2V0IGFuIG91dGRhdGVkIHNjcmVlbnNob3QgaWYgdGhlcmUgd2FzIGFuIGVycm9yXG4gICAgICB0aGlzLmxhc3RDaHVuayA9IG51bGw7XG5cbiAgICAgIGxvZy5lcnJvcihgRXJyb3IgZ2V0dGluZyBNSnBlZyBzY3JlZW5zaG90IGNodW5rOiAke2Vyci5tZXNzYWdlfWApO1xuICAgICAgdGhpcy5lcnJvckhhbmRsZXIoZXJyKTtcbiAgICAgIGlmICh0aGlzLnJlZ2lzdGVyU3RhcnRGYWlsdXJlKSB7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJTdGFydEZhaWx1cmUoZXJyKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IG9uQ2xvc2UgPSAoKSA9PiB7XG4gICAgICBsb2cuZGVidWcoYFRoZSBjb25uZWN0aW9uIHRvIE1KUEVHIHNlcnZlciBhdCAke3VybH0gaGFzIGJlZW4gY2xvc2VkYCk7XG4gICAgICB0aGlzLmxhc3RDaHVuayA9IG51bGw7XG4gICAgfTtcblxuICAgIHRyeSB7XG4gICAgICB0aGlzLnJlc3BvbnNlU3RyZWFtID0gKGF3YWl0IGF4aW9zKHtcbiAgICAgICAgdXJsLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdzdHJlYW0nLFxuICAgICAgICB0aW1lb3V0OiBzZXJ2ZXJUaW1lb3V0LFxuICAgICAgfSkpLmRhdGE7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIG9uRXJyKGUpO1xuICAgIH1cblxuICAgIHRoaXMucmVzcG9uc2VTdHJlYW1cbiAgICAgIC5vbmNlKCdjbG9zZScsIG9uQ2xvc2UpXG4gICAgICAub24oJ2Vycm9yJywgb25FcnIpIC8vIGVuc3VyZSB3ZSBkbyBzb21ldGhpbmcgd2l0aCBlcnJvcnNcbiAgICAgIC5waXBlKHRoaXMuY29uc3VtZXIpIC8vIGFsbG93IGNodW5raW5nIGFuZCB0cmFuc2Zvcm1pbmcgb2YganBlZyBkYXRhXG4gICAgICAucGlwZSh0aGlzKTsgLy8gc2VuZCB0aGUgYWN0dWFsIGpwZWdzIHRvIG91cnNlbGZcblxuICAgIGF3YWl0IHN0YXJ0UHJvbWlzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIHJlYWRpbmcgdGhlIE1KcGVnIHN0cmVhbS4gRW5zdXJlIHdlIGRpc2Nvbm5lY3QgYWxsIHRoZSBwaXBlcyBhbmQgc3RvcFxuICAgKiB0aGUgSFRUUCByZXF1ZXN0IGl0c2VsZi4gVGhlbiByZXNldCB0aGUgc3RhdGUuXG4gICAqL1xuICBzdG9wICgpIHtcbiAgICBpZiAoIXRoaXMuY29uc3VtZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlc3BvbnNlU3RyZWFtLnVucGlwZSh0aGlzLmNvbnN1bWVyKTtcbiAgICB0aGlzLmNvbnN1bWVyLnVucGlwZSh0aGlzKTtcbiAgICB0aGlzLnJlc3BvbnNlU3RyZWFtLmRlc3Ryb3koKTtcbiAgICB0aGlzLmNsZWFyKCk7XG4gIH1cblxuICAvKipcbiAgICogT3ZlcnJpZGUgdGhlIFdyaXRhYmxlIHdyaXRlKCkgbWV0aG9kIGluIG9yZGVyIHRvIHNhdmUgdGhlIGxhc3QgaW1hZ2UgYW5kXG4gICAqIGxvZyB0aGUgbnVtYmVyIG9mIGltYWdlcyB3ZSBoYXZlIHJlY2VpdmVkXG4gICAqIEBvdmVycmlkZVxuICAgKiBAcGFyYW0ge0J1ZmZlcn0gZGF0YSAtIGJpbmFyeSBkYXRhIHN0cmVhbWVkIGZyb20gdGhlIE1KcGVnIGNvbnN1bWVyXG4gICAqL1xuICB3cml0ZSAoZGF0YSkge1xuICAgIHRoaXMubGFzdENodW5rID0gZGF0YTtcbiAgICB0aGlzLnVwZGF0ZUNvdW50Kys7XG5cbiAgICBpZiAodGhpcy5yZWdpc3RlclN0YXJ0U3VjY2Vzcykge1xuICAgICAgdGhpcy5yZWdpc3RlclN0YXJ0U3VjY2VzcygpO1xuICAgICAgdGhpcy5yZWdpc3RlclN0YXJ0U3VjY2VzcyA9IG51bGw7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB7IE1KcGVnU3RyZWFtIH07XG4iXX0=
|
|
154
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9tanBlZy5qcyJdLCJuYW1lcyI6WyJNSnBlZ0NvbnN1bWVyIiwiaW5pdE1KcGVnQ29uc3VtZXIiLCJpZ24iLCJFcnJvciIsIk1KUEVHX1NFUlZFUl9USU1FT1VUX01TIiwiTUpwZWdTdHJlYW0iLCJXcml0YWJsZSIsInVwZGF0ZUNvdW50IiwiY29uc3RydWN0b3IiLCJtSnBlZ1VybCIsImVycm9ySGFuZGxlciIsIl8iLCJub29wIiwib3B0aW9ucyIsInVybCIsImNsZWFyIiwibGFzdENodW5rQmFzZTY0IiwibGFzdENodW5rIiwiaXNFbXB0eSIsImlzQnVmZmVyIiwidG9TdHJpbmciLCJsYXN0Q2h1bmtQTkciLCJqcGciLCJnZXRCdWZmZXIiLCJNSU1FX1BORyIsImUiLCJsYXN0Q2h1bmtQTkdCYXNlNjQiLCJwbmciLCJyZWdpc3RlclN0YXJ0U3VjY2VzcyIsInJlZ2lzdGVyU3RhcnRGYWlsdXJlIiwicmVzcG9uc2VTdHJlYW0iLCJjb25zdW1lciIsInN0YXJ0Iiwic2VydmVyVGltZW91dCIsInN0b3AiLCJzdGFydFByb21pc2UiLCJCIiwicmVzIiwicmVqIiwidGltZW91dCIsIm9uRXJyIiwiZXJyIiwibG9nIiwiZXJyb3IiLCJtZXNzYWdlIiwib25DbG9zZSIsImRlYnVnIiwicmVzcG9uc2VUeXBlIiwiZGF0YSIsIm9uY2UiLCJvbiIsInBpcGUiLCJ1bnBpcGUiLCJkZXN0cm95Iiwid3JpdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsSUFBSUEsYUFBYSxHQUFHLElBQXBCOztBQUtBLGVBQWVDLGlCQUFmLEdBQW9DO0FBQ2xDLE1BQUksQ0FBQ0QsYUFBTCxFQUFvQjtBQUNsQixRQUFJO0FBQ0ZBLE1BQUFBLGFBQWEsR0FBRyxNQUFNLDBCQUFlLGdCQUFmLENBQXRCO0FBQ0QsS0FGRCxDQUVFLE9BQU9FLEdBQVAsRUFBWSxDQUFFO0FBQ2pCOztBQUNE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b250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCB7IGdldEppbXBJbWFnZSwgTUlNRV9QTkcgfSBmcm9tICcuL2ltYWdlLXV0aWwnO1xuaW1wb3J0IHsgV3JpdGFibGUgfSBmcm9tICdzdHJlYW0nO1xuaW1wb3J0IHsgcmVxdWlyZVBhY2thZ2UgfSBmcm9tICcuL25vZGUnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcblxuLy8gbGF6eSBsb2FkIHRoaXMsIGFzIGl0IG1pZ2h0IG5vdCBiZSBhdmFpbGFibGVcbmxldCBNSnBlZ0NvbnN1bWVyID0gbnVsbDtcblxuLyoqXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgYG1qcGVnLWNvbnN1bWVyYCBtb2R1bGUgaXMgbm90IGluc3RhbGxlZCBvciBjYW5ub3QgYmUgbG9hZGVkXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGluaXRNSnBlZ0NvbnN1bWVyICgpIHtcbiAgaWYgKCFNSnBlZ0NvbnN1bWVyKSB7XG4gICAgdHJ5IHtcbiAgICAgIE1KcGVnQ29uc3VtZXIgPSBhd2FpdCByZXF1aXJlUGFja2FnZSgnbWpwZWctY29uc3VtZXInKTtcbiAgICB9IGNhdGNoIChpZ24pIHt9XG4gIH1cbiAgaWYgKCFNSnBlZ0NvbnN1bWVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdtanBlZy1jb25zdW1lciBtb2R1bGUgaXMgcmVxdWlyZWQgdG8gdXNlIE1KUEVHLW92ZXItSFRUUCBmZWF0dXJlcy4gJyArXG4gICAgICAgICAgICAgICAgICAgICdQbGVhc2UgaW5zdGFsbCBpdCBmaXJzdCAobnBtIGkgLWcgbWpwZWctY29uc3VtZXIpIGFuZCByZXN0YXJ0IEFwcGl1bS4nKTtcbiAgfVxufVxuXG4vLyBhbW91bnQgb2YgdGltZSB0byB3YWl0IGZvciB0aGUgZmlyc3QgaW1hZ2UgaW4gdGhlIHN0cmVhbVxuY29uc3QgTUpQRUdfU0VSVkVSX1RJTUVPVVRfTVMgPSAxMDAwMDtcblxuLyoqIENsYXNzIHdoaWNoIHN0b3JlcyB0aGUgbGFzdCBiaXQgb2YgZGF0YSBzdHJlYW1lZCBpbnRvIGl0ICovXG5jbGFzcyBNSnBlZ1N0cmVhbSBleHRlbmRzIFdyaXRhYmxlIHtcblxuICAvKipcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIHVwZGF0ZUNvdW50ID0gMDtcblxuICAvKipcbiAgICogQ3JlYXRlIGFuIE1KcGVnU3RyZWFtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtSnBlZ1VybCAtIFVSTCBvZiBNSlBFRy1vdmVyLUhUVFAgc3RyZWFtXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtlcnJvckhhbmRsZXI9bm9vcF0gLSBhZGRpdGlvbmFsIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZVxuICAgKiBjYWxsZWQgaW4gdGhlIGNhc2Ugb2YgYW55IGVycm9ycy5cbiAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zPXt9XSAtIE9wdGlvbnMgdG8gcGFzcyB0byB0aGUgV3JpdGFibGUgY29uc3RydWN0b3JcbiAgICovXG4gIGNvbnN0cnVjdG9yIChtSnBlZ1VybCwgZXJyb3JIYW5kbGVyID0gXy5ub29wLCBvcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihvcHRpb25zKTtcblxuICAgIHRoaXMuZXJyb3JIYW5kbGVyID0gZXJyb3JIYW5kbGVyO1xuICAgIHRoaXMudXJsID0gbUpwZWdVcmw7XG4gICAgdGhpcy5jbGVhcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYmFzZTY0LWVuY29kZWQgdmVyc2lvbiBvZiB0aGUgSlBFR1xuICAgKlxuICAgKiBAcmV0dXJucyB7P3N0cmluZ30gYmFzZTY0LWVuY29kZWQgSlBFRyBpbWFnZSBkYXRhXG4gICAqIG9yIGBudWxsYCBpZiBubyBpbWFnZSBjYW4gYmUgcGFyc2VkXG4gICAqL1xuICBnZXQgbGFzdENodW5rQmFzZTY0ICgpIHtcbiAgICBjb25zdCBsYXN0Q2h1bmsgPSAvKiogQHR5cGUge0J1ZmZlcn0gKi8odGhpcy5sYXN0Q2h1bmspO1xuICAgIHJldHVybiAhXy5pc0VtcHR5KHRoaXMubGFzdENodW5rKSAmJiBfLmlzQnVmZmVyKHRoaXMubGFzdENodW5rKVxuICAgICAgPyBsYXN0Q2h1bmsudG9TdHJpbmcoJ2Jhc2U2NCcpXG4gICAgICA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBQTkcgdmVyc2lvbiBvZiB0aGUgSlBFRyBidWZmZXJcbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8QnVmZmVyPz59IFBORyBpbWFnZSBkYXRhIG9yIGBudWxsYCBpZiBubyBQTkdcbiAgICogaW1hZ2UgY2FuIGJlIHBhcnNlZFxuICAgKi9cbiAgYXN5bmMgbGFzdENodW5rUE5HICgpIHtcbiAgICBjb25zdCBsYXN0Q2h1bmsgPSAvKiogQHR5cGUge0J1ZmZlcn0gKi8odGhpcy5sYXN0Q2h1bmspO1xuICAgIGlmIChfLmlzRW1wdHkobGFzdENodW5rKSB8fCAhXy5pc0J1ZmZlcihsYXN0Q2h1bmspKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QganBnID0gYXdhaXQgZ2V0SmltcEltYWdlKGxhc3RDaHVuayk7XG4gICAgICByZXR1cm4gYXdhaXQganBnLmdldEJ1ZmZlcihNSU1FX1BORyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYmFzZTY0LWVuY29kZWQgdmVyc2lvbiBvZiB0aGUgUE5HXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZz8+fSBiYXNlNjQtZW5jb2RlZCBQTkcgaW1hZ2UgZGF0YVxuICAgKiBvciBgbnVsbGAgaWYgbm8gaW1hZ2UgY2FuIGJlIHBhcnNlZFxuICAgKi9cbiAgYXN5bmMgbGFzdENodW5rUE5HQmFzZTY0ICgpIHtcbiAgICBjb25zdCBwbmcgPSBhd2FpdCB0aGlzLmxhc3RDaHVua1BORygpO1xuICAgIHJldHVybiBwbmcgPyBwbmcudG9TdHJpbmcoJ2Jhc2U2NCcpIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBpbnRlcm5hbCBzdGF0ZVxuICAgKi9cbiAgY2xlYXIgKCkge1xuICAgIHRoaXMucmVnaXN0ZXJTdGFydFN1Y2Nlc3MgPSBudWxsO1xuICAgIHRoaXMucmVnaXN0ZXJTdGFydEZhaWx1cmUgPSBudWxsO1xuICAgIHRoaXMucmVzcG9uc2VTdHJlYW0gPSBudWxsO1xuICAgIHRoaXMuY29uc3VtZXIgPSBudWxsO1xuICAgIHRoaXMubGFzdENodW5rID0gbnVsbDtcbiAgICB0aGlzLnVwZGF0ZUNvdW50ID0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydCByZWFkaW5nIHRoZSBNSnBlZyBzdHJlYW0gYW5kIHN0b3JpbmcgdGhlIGxhc3QgaW1hZ2VcbiAgICovXG4gIGFzeW5jIHN0YXJ0IChzZXJ2ZXJUaW1lb3V0ID0gTUpQRUdfU0VSVkVSX1RJTUVPVVRfTVMpIHtcbiAgICAvLyBlbnN1cmUgd2UncmUgbm90IHN0YXJ0ZWQgYWxyZWFkeVxuICAgIHRoaXMuc3RvcCgpO1xuXG4gICAgYXdhaXQgaW5pdE1KcGVnQ29uc3VtZXIoKTtcblxuICAgIHRoaXMuY29uc3VtZXIgPSBuZXcgTUpwZWdDb25zdW1lcigpO1xuXG4gICAgLy8gdXNlIHRoZSBkZWZlcnJlZCBwYXR0ZXJuIHNvIHdlIGNhbiB3YWl0IGZvciB0aGUgc3RhcnQgb2YgdGhlIHN0cmVhbVxuICAgIC8vIGJhc2VkIG9uIHdoYXQgY29tZXMgaW4gZnJvbSBhbiBleHRlcm5hbCBwaXBlXG4gICAgY29uc3Qgc3RhcnRQcm9taXNlID0gbmV3IEIoKHJlcywgcmVqKSA9PiB7XG4gICAgICB0aGlzLnJlZ2lzdGVyU3RhcnRTdWNjZXNzID0gcmVzO1xuICAgICAgdGhpcy5yZWdpc3RlclN0YXJ0RmFpbHVyZSA9IHJlajtcbiAgICB9KVxuICAgIC8vIHN0YXJ0IGEgdGltZW91dCBzbyB0aGF0IGlmIHRoZSBzZXJ2ZXIgZG9lcyBub3QgcmV0dXJuIGRhdGEsIHdlIGRvbid0XG4gICAgLy8gYmxvY2sgZm9yZXZlci5cbiAgICAgIC50aW1lb3V0KHNlcnZlclRpbWVvdXQsXG4gICAgICAgIGBXYWl0ZWQgJHtzZXJ2ZXJUaW1lb3V0fW1zIGJ1dCB0aGUgTUpQRUcgc2VydmVyIG5ldmVyIHNlbnQgYW55IGltYWdlc2ApO1xuXG4gICAgY29uc3QgdXJsID0gdGhpcy51cmw7XG4gICAgY29uc3Qgb25FcnIgPSAoZXJyKSA9PiB7XG4gICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgZ2V0IGFuIG91dGRhdGVkIHNjcmVlbnNob3QgaWYgdGhlcmUgd2FzIGFuIGVycm9yXG4gICAgICB0aGlzLmxhc3RDaHVuayA9IG51bGw7XG5cbiAgICAgIGxvZy5lcnJvcihgRXJyb3IgZ2V0dGluZyBNSnBlZyBzY3JlZW5zaG90IGNodW5rOiAke2Vyci5tZXNzYWdlfWApO1xuICAgICAgdGhpcy5lcnJvckhhbmRsZXIoZXJyKTtcbiAgICAgIGlmICh0aGlzLnJlZ2lzdGVyU3RhcnRGYWlsdXJlKSB7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJTdGFydEZhaWx1cmUoZXJyKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IG9uQ2xvc2UgPSAoKSA9PiB7XG4gICAgICBsb2cuZGVidWcoYFRoZSBjb25uZWN0aW9uIHRvIE1KUEVHIHNlcnZlciBhdCAke3VybH0gaGFzIGJlZW4gY2xvc2VkYCk7XG4gICAgICB0aGlzLmxhc3RDaHVuayA9IG51bGw7XG4gICAgfTtcblxuICAgIHRyeSB7XG4gICAgICB0aGlzLnJlc3BvbnNlU3RyZWFtID0gKGF3YWl0IGF4aW9zKHtcbiAgICAgICAgdXJsLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdzdHJlYW0nLFxuICAgICAgICB0aW1lb3V0OiBzZXJ2ZXJUaW1lb3V0LFxuICAgICAgfSkpLmRhdGE7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIG9uRXJyKGUpO1xuICAgIH1cblxuICAgIHRoaXMucmVzcG9uc2VTdHJlYW1cbiAgICAgIC5vbmNlKCdjbG9zZScsIG9uQ2xvc2UpXG4gICAgICAub24oJ2Vycm9yJywgb25FcnIpIC8vIGVuc3VyZSB3ZSBkbyBzb21ldGhpbmcgd2l0aCBlcnJvcnNcbiAgICAgIC5waXBlKHRoaXMuY29uc3VtZXIpIC8vIGFsbG93IGNodW5raW5nIGFuZCB0cmFuc2Zvcm1pbmcgb2YganBlZyBkYXRhXG4gICAgICAucGlwZSh0aGlzKTsgLy8gc2VuZCB0aGUgYWN0dWFsIGpwZWdzIHRvIG91cnNlbGZcblxuICAgIGF3YWl0IHN0YXJ0UHJvbWlzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIHJlYWRpbmcgdGhlIE1KcGVnIHN0cmVhbS4gRW5zdXJlIHdlIGRpc2Nvbm5lY3QgYWxsIHRoZSBwaXBlcyBhbmQgc3RvcFxuICAgKiB0aGUgSFRUUCByZXF1ZXN0IGl0c2VsZi4gVGhlbiByZXNldCB0aGUgc3RhdGUuXG4gICAqL1xuICBzdG9wICgpIHtcbiAgICBpZiAoIXRoaXMuY29uc3VtZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlc3BvbnNlU3RyZWFtLnVucGlwZSh0aGlzLmNvbnN1bWVyKTtcbiAgICB0aGlzLmNvbnN1bWVyLnVucGlwZSh0aGlzKTtcbiAgICB0aGlzLnJlc3BvbnNlU3RyZWFtLmRlc3Ryb3koKTtcbiAgICB0aGlzLmNsZWFyKCk7XG4gIH1cblxuICAvKipcbiAgICogT3ZlcnJpZGUgdGhlIFdyaXRhYmxlIHdyaXRlKCkgbWV0aG9kIGluIG9yZGVyIHRvIHNhdmUgdGhlIGxhc3QgaW1hZ2UgYW5kXG4gICAqIGxvZyB0aGUgbnVtYmVyIG9mIGltYWdlcyB3ZSBoYXZlIHJlY2VpdmVkXG4gICAqIEBvdmVycmlkZVxuICAgKiBAcGFyYW0ge0J1ZmZlcn0gZGF0YSAtIGJpbmFyeSBkYXRhIHN0cmVhbWVkIGZyb20gdGhlIE1KcGVnIGNvbnN1bWVyXG4gICAqL1xuICB3cml0ZSAoZGF0YSkge1xuICAgIHRoaXMubGFzdENodW5rID0gZGF0YTtcbiAgICB0aGlzLnVwZGF0ZUNvdW50Kys7XG5cbiAgICBpZiAodGhpcy5yZWdpc3RlclN0YXJ0U3VjY2Vzcykge1xuICAgICAgdGhpcy5yZWdpc3RlclN0YXJ0U3VjY2VzcygpO1xuICAgICAgdGhpcy5yZWdpc3RlclN0YXJ0U3VjY2VzcyA9IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuZXhwb3J0IHsgTUpwZWdTdHJlYW0gfTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mkdirp.d.ts","sourceRoot":"","sources":["../../lib/mkdirp.js"],"names":[],"mappings":""}
|