tnp-core 19.0.0 → 19.0.1
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/assets/shared/shared_folder_info.txt +1 -1
- package/browser/fesm2022/tnp-core.mjs +0 -1
- package/browser/fesm2022/tnp-core.mjs.map +1 -1
- package/cli.backend.js +2 -2
- package/client/fesm2022/tnp-core.mjs +0 -1
- package/client/fesm2022/tnp-core.mjs.map +1 -1
- package/lib/helpers.d.ts +1 -1
- package/lib/helpers.js.map +1 -1
- package/lib/node-chalk-mock.js +2 -2
- package/lib/node-path-mock.js +2 -2
- package/package.json +1 -1
- package/taon.jsonc +5 -5
- package/tmp-environment.json +3 -3
- package/websql/fesm2022/tnp-core.mjs +0 -1
- package/websql/fesm2022/tnp-core.mjs.map +1 -1
- package/browser/esm2022/lib/core-cli.mjs +0 -21
- package/browser/esm2022/lib/core-config.mjs +0 -8
- package/browser/esm2022/lib/core-imports.mjs +0 -205
- package/browser/esm2022/lib/core-models.mjs +0 -176
- package/browser/esm2022/lib/framework-name.mjs +0 -11
- package/browser/esm2022/lib/helpers-isomorphic.mjs +0 -52
- package/browser/esm2022/lib/helpers-messages.mjs +0 -548
- package/browser/esm2022/lib/helpers.mjs +0 -2238
- package/browser/esm2022/lib/index.mjs +0 -14
- package/browser/esm2022/lib/node-chalk-mock.mjs +0 -42
- package/browser/esm2022/lib/node-path-mock.mjs +0 -422
- package/browser/esm2022/lib/progress-data.mjs +0 -55
- package/browser/esm2022/lib/required-global-npm-packages.mjs +0 -79
- package/browser/esm2022/lib/utils.mjs +0 -1946
- package/browser/esm2022/public-api.mjs +0 -2
- package/browser/esm2022/tnp-core.mjs +0 -5
- package/client/esm2022/lib/core-cli.mjs +0 -21
- package/client/esm2022/lib/core-config.mjs +0 -8
- package/client/esm2022/lib/core-imports.mjs +0 -205
- package/client/esm2022/lib/core-models.mjs +0 -176
- package/client/esm2022/lib/framework-name.mjs +0 -11
- package/client/esm2022/lib/helpers-isomorphic.mjs +0 -52
- package/client/esm2022/lib/helpers-messages.mjs +0 -548
- package/client/esm2022/lib/helpers.mjs +0 -2238
- package/client/esm2022/lib/index.mjs +0 -14
- package/client/esm2022/lib/node-chalk-mock.mjs +0 -42
- package/client/esm2022/lib/node-path-mock.mjs +0 -422
- package/client/esm2022/lib/progress-data.mjs +0 -55
- package/client/esm2022/lib/required-global-npm-packages.mjs +0 -79
- package/client/esm2022/lib/utils.mjs +0 -1946
- package/client/esm2022/public-api.mjs +0 -2
- package/client/esm2022/tnp-core.mjs +0 -5
- package/firedev.jsonc +0 -67
- package/lib/required.d.ts +0 -44
- package/lib/required.js +0 -76
- package/lib/required.js.map +0 -1
- package/websql/esm2022/lib/core-cli.mjs +0 -21
- package/websql/esm2022/lib/core-config.mjs +0 -8
- package/websql/esm2022/lib/core-imports.mjs +0 -205
- package/websql/esm2022/lib/core-models.mjs +0 -176
- package/websql/esm2022/lib/framework-name.mjs +0 -11
- package/websql/esm2022/lib/helpers-isomorphic.mjs +0 -52
- package/websql/esm2022/lib/helpers-messages.mjs +0 -548
- package/websql/esm2022/lib/helpers.mjs +0 -2234
- package/websql/esm2022/lib/index.mjs +0 -14
- package/websql/esm2022/lib/node-chalk-mock.mjs +0 -42
- package/websql/esm2022/lib/node-path-mock.mjs +0 -422
- package/websql/esm2022/lib/progress-data.mjs +0 -55
- package/websql/esm2022/lib/required-global-npm-packages.mjs +0 -79
- package/websql/esm2022/lib/utils.mjs +0 -1945
- package/websql/esm2022/public-api.mjs +0 -2
- package/websql/esm2022/tnp-core.mjs +0 -5
@@ -1,14 +0,0 @@
|
|
1
|
-
export * from './framework-name';
|
2
|
-
export * from './core-imports';
|
3
|
-
export * from './core-models';
|
4
|
-
import { HelpersCore as Base } from './helpers';
|
5
|
-
export * from './core-config';
|
6
|
-
export * from './progress-data';
|
7
|
-
export * from './utils';
|
8
|
-
export * from './core-cli';
|
9
|
-
export * from './required-global-npm-packages';
|
10
|
-
export { HelpersCore as CoreHelpers } from './helpers';
|
11
|
-
export let Helpers = Base.InstanceCore;
|
12
|
-
;
|
13
|
-
({}); // @--end-of-file-for-module=tnp-core lib/index.ts
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdG5wLWNvcmUvcHJvamVjdHMvdG5wLWNvcmUvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsT0FBTyxFQUFFLFdBQVcsSUFBSSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLElBQUksV0FBVyxFQUF3QixNQUFNLFdBQVcsQ0FBQztBQUM3RSxNQUFNLENBQUMsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztBQUV0QyxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtEQUFrRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5leHBvcnQgKiBmcm9tICcuL2ZyYW1ld29yay1uYW1lJztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS1pbXBvcnRzJztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS1tb2RlbHMnO1xuaW1wb3J0IHsgSGVscGVyc0NvcmUgYXMgQmFzZSB9IGZyb20gJy4vaGVscGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUtY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvZ3Jlc3MtZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS1jbGknO1xuZXhwb3J0ICogZnJvbSAnLi9yZXF1aXJlZC1nbG9iYWwtbnBtLXBhY2thZ2VzJztcbmV4cG9ydCB7IEhlbHBlcnNDb3JlIGFzIENvcmVIZWxwZXJzLCBDb21tYW5kT3V0cHV0T3B0aW9ucyB9IGZyb20gJy4vaGVscGVycyc7XG5leHBvcnQgbGV0IEhlbHBlcnMgPSBCYXNlLkluc3RhbmNlQ29yZTtcblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1jb3JlIGxpYi9pbmRleC50cyJdfQ==
|
@@ -1,42 +0,0 @@
|
|
1
|
-
const allObj = {
|
2
|
-
black(a) {
|
3
|
-
console.log(a);
|
4
|
-
},
|
5
|
-
gray(a) {
|
6
|
-
console.log(a);
|
7
|
-
},
|
8
|
-
red(a) {
|
9
|
-
console.log(a);
|
10
|
-
},
|
11
|
-
green(a) {
|
12
|
-
console.log(a);
|
13
|
-
},
|
14
|
-
italic(a) {
|
15
|
-
console.log(a);
|
16
|
-
},
|
17
|
-
magenta(a) {
|
18
|
-
console.log(a);
|
19
|
-
},
|
20
|
-
bold(a) {
|
21
|
-
console.log(a);
|
22
|
-
},
|
23
|
-
underline(a) {
|
24
|
-
console.log(a);
|
25
|
-
},
|
26
|
-
};
|
27
|
-
const map = new Map();
|
28
|
-
const all = Object.keys(allObj).map(key => {
|
29
|
-
map.set(allObj[key], key);
|
30
|
-
return allObj[key];
|
31
|
-
});
|
32
|
-
for (let i = 0; i < all.length; i++) {
|
33
|
-
const e1 = all[i];
|
34
|
-
for (let j = 0; j < all.length; j++) {
|
35
|
-
const e2 = all[j]; // @ts-ignore
|
36
|
-
e1[map.get(e2)] = e2;
|
37
|
-
}
|
38
|
-
}
|
39
|
-
export const chalk = allObj;
|
40
|
-
;
|
41
|
-
({}); // @--end-of-file-for-module=tnp-core lib/node-chalk-mock.ts
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1jaGFsay1tb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3RucC1jb3JlL3Byb2plY3RzL3RucC1jb3JlL3NyYy9saWIvbm9kZS1jaGFsay1tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE1BQU0sTUFBTSxHQUFHO0lBQ2IsS0FBSyxDQUFDLENBQUM7UUFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxJQUFJLENBQUMsQ0FBQztRQUNKLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUNELEdBQUcsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBQ0QsS0FBSyxDQUFDLENBQUM7UUFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxNQUFNLENBQUMsQ0FBQztRQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFDO1FBQ1AsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBQ0QsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxTQUFTLENBQUMsQ0FBQztRQUNULE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztBQUV4QyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtJQUN4QyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxQixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNyQixDQUFDLENBQUMsQ0FBQztBQUVILEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDcEMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBYSxDQUFDO0lBQzlCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDcEMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBYSxDQUFDLENBQUMsYUFBYTtRQUM1QyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBVSxNQUFhLENBQUM7QUFHekMsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyw0REFBNEQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBDaGFsayB9IGZyb20gJ2NoYWxrJztcblxuXG5cblxuY29uc3QgYWxsT2JqID0ge1xuICBibGFjayhhKSB7XG4gICAgY29uc29sZS5sb2coYSk7XG4gIH0sXG4gIGdyYXkoYSkge1xuICAgIGNvbnNvbGUubG9nKGEpO1xuICB9LFxuICByZWQoYSkge1xuICAgIGNvbnNvbGUubG9nKGEpO1xuICB9LFxuICBncmVlbihhKSB7XG4gICAgY29uc29sZS5sb2coYSk7XG4gIH0sXG4gIGl0YWxpYyhhKSB7XG4gICAgY29uc29sZS5sb2coYSk7XG4gIH0sXG4gIG1hZ2VudGEoYSkge1xuICAgIGNvbnNvbGUubG9nKGEpO1xuICB9LFxuICBib2xkKGEpIHtcbiAgICBjb25zb2xlLmxvZyhhKTtcbiAgfSxcbiAgdW5kZXJsaW5lKGEpIHtcbiAgICBjb25zb2xlLmxvZyhhKTtcbiAgfSxcbn07XG5cbmNvbnN0IG1hcCA9IG5ldyBNYXA8RnVuY3Rpb24sIHN0cmluZz4oKTtcblxuY29uc3QgYWxsID0gT2JqZWN0LmtleXMoYWxsT2JqKS5tYXAoa2V5ID0+IHtcbiAgbWFwLnNldChhbGxPYmpba2V5XSwga2V5KTtcbiAgcmV0dXJuIGFsbE9ialtrZXldO1xufSk7XG5cbmZvciAobGV0IGkgPSAwOyBpIDwgYWxsLmxlbmd0aDsgaSsrKSB7XG4gIGNvbnN0IGUxID0gYWxsW2ldIGFzIEZ1bmN0aW9uO1xuICBmb3IgKGxldCBqID0gMDsgaiA8IGFsbC5sZW5ndGg7IGorKykge1xuICAgIGNvbnN0IGUyID0gYWxsW2pdIGFzIEZ1bmN0aW9uOyAvLyBAdHMtaWdub3JlXG4gICAgZTFbbWFwLmdldChlMildID0gZTI7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGNoYWxrOiBDaGFsayA9IGFsbE9iaiBhcyBhbnk7XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1jb3JlIGxpYi9ub2RlLWNoYWxrLW1vY2sudHMiXX0=
|
@@ -1,422 +0,0 @@
|
|
1
|
-
function assertPath(path) {
|
2
|
-
if (typeof path !== 'string') {
|
3
|
-
throw new TypeError('[taon-core] Path must be a string. Received ' + JSON.stringify(path));
|
4
|
-
}
|
5
|
-
}
|
6
|
-
function normalizeStringPosix(path, allowAboveRoot) {
|
7
|
-
var res = '';
|
8
|
-
var lastSegmentLength = 0;
|
9
|
-
var lastSlash = -1;
|
10
|
-
var dots = 0;
|
11
|
-
var code;
|
12
|
-
for (var i = 0; i <= path.length; ++i) {
|
13
|
-
if (i < path.length)
|
14
|
-
code = path.charCodeAt(i);
|
15
|
-
else if (code === 47 /*/*/)
|
16
|
-
break;
|
17
|
-
else
|
18
|
-
code = 47 /*/*/;
|
19
|
-
if (code === 47 /*/*/) {
|
20
|
-
if (lastSlash === i - 1 || dots === 1) {
|
21
|
-
}
|
22
|
-
else if (lastSlash !== i - 1 && dots === 2) {
|
23
|
-
if (res.length < 2 ||
|
24
|
-
lastSegmentLength !== 2 ||
|
25
|
-
res.charCodeAt(res.length - 1) !== 46 /*.*/ ||
|
26
|
-
res.charCodeAt(res.length - 2) !== 46 /*.*/) {
|
27
|
-
if (res.length > 2) {
|
28
|
-
var lastSlashIndex = res.lastIndexOf('/');
|
29
|
-
if (lastSlashIndex !== res.length - 1) {
|
30
|
-
if (lastSlashIndex === -1) {
|
31
|
-
res = '';
|
32
|
-
lastSegmentLength = 0;
|
33
|
-
}
|
34
|
-
else {
|
35
|
-
res = res.slice(0, lastSlashIndex);
|
36
|
-
lastSegmentLength = res.length - 1 - res.lastIndexOf('/');
|
37
|
-
}
|
38
|
-
lastSlash = i;
|
39
|
-
dots = 0;
|
40
|
-
continue;
|
41
|
-
}
|
42
|
-
}
|
43
|
-
else if (res.length === 2 || res.length === 1) {
|
44
|
-
res = '';
|
45
|
-
lastSegmentLength = 0;
|
46
|
-
lastSlash = i;
|
47
|
-
dots = 0;
|
48
|
-
continue;
|
49
|
-
}
|
50
|
-
}
|
51
|
-
if (allowAboveRoot) {
|
52
|
-
if (res.length > 0)
|
53
|
-
res += '/..';
|
54
|
-
else
|
55
|
-
res = '..';
|
56
|
-
lastSegmentLength = 2;
|
57
|
-
}
|
58
|
-
}
|
59
|
-
else {
|
60
|
-
if (res.length > 0)
|
61
|
-
res += '/' + path.slice(lastSlash + 1, i);
|
62
|
-
else
|
63
|
-
res = path.slice(lastSlash + 1, i);
|
64
|
-
lastSegmentLength = i - lastSlash - 1;
|
65
|
-
}
|
66
|
-
lastSlash = i;
|
67
|
-
dots = 0;
|
68
|
-
}
|
69
|
-
else if (code === 46 /*.*/ && dots !== -1) {
|
70
|
-
++dots;
|
71
|
-
}
|
72
|
-
else {
|
73
|
-
dots = -1;
|
74
|
-
}
|
75
|
-
}
|
76
|
-
return res;
|
77
|
-
}
|
78
|
-
function _format(sep, pathObject) {
|
79
|
-
var dir = pathObject.dir || pathObject.root;
|
80
|
-
var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');
|
81
|
-
if (!dir) {
|
82
|
-
return base;
|
83
|
-
}
|
84
|
-
if (dir === pathObject.root) {
|
85
|
-
return dir + base;
|
86
|
-
}
|
87
|
-
return dir + sep + base;
|
88
|
-
}
|
89
|
-
export const path = {
|
90
|
-
resolve: function resolve(pathToResovle) {
|
91
|
-
return pathToResovle;
|
92
|
-
},
|
93
|
-
normalize: function normalize(pathArg) {
|
94
|
-
assertPath(pathArg);
|
95
|
-
if (pathArg.length === 0)
|
96
|
-
return '.';
|
97
|
-
var isAbsolute = pathArg.charCodeAt(0) === 47; /*/*/
|
98
|
-
var trailingSeparator = pathArg.charCodeAt(pathArg.length - 1) === 47; /*/*/
|
99
|
-
pathArg = normalizeStringPosix(pathArg, !isAbsolute);
|
100
|
-
if (pathArg.length === 0 && !isAbsolute)
|
101
|
-
pathArg = '.';
|
102
|
-
if (pathArg.length > 0 && trailingSeparator)
|
103
|
-
pathArg += '/';
|
104
|
-
if (isAbsolute)
|
105
|
-
return '/' + pathArg;
|
106
|
-
return pathArg;
|
107
|
-
},
|
108
|
-
isAbsolute: function isAbsolute(pathArg) {
|
109
|
-
assertPath(pathArg);
|
110
|
-
return pathArg.length > 0 && pathArg.charCodeAt(0) === 47 /*/*/;
|
111
|
-
},
|
112
|
-
join: function join() {
|
113
|
-
if (arguments.length === 0)
|
114
|
-
return '.';
|
115
|
-
var joined;
|
116
|
-
for (var i = 0; i < arguments.length; ++i) {
|
117
|
-
var arg = arguments[i];
|
118
|
-
assertPath(arg);
|
119
|
-
if (arg.length > 0) {
|
120
|
-
if (joined === undefined)
|
121
|
-
joined = arg;
|
122
|
-
else
|
123
|
-
joined += '/' + arg;
|
124
|
-
}
|
125
|
-
}
|
126
|
-
if (joined === undefined)
|
127
|
-
return '.';
|
128
|
-
return path.normalize(joined);
|
129
|
-
},
|
130
|
-
relative: function relative(from, to) {
|
131
|
-
assertPath(from);
|
132
|
-
assertPath(to);
|
133
|
-
if (from === to)
|
134
|
-
return '';
|
135
|
-
from = path.resolve(from);
|
136
|
-
to = path.resolve(to);
|
137
|
-
if (from === to)
|
138
|
-
return '';
|
139
|
-
var fromStart = 1;
|
140
|
-
for (; fromStart < from.length; ++fromStart) {
|
141
|
-
if (from.charCodeAt(fromStart) !== 47 /*/*/)
|
142
|
-
break;
|
143
|
-
}
|
144
|
-
var fromEnd = from.length;
|
145
|
-
var fromLen = fromEnd - fromStart;
|
146
|
-
var toStart = 1;
|
147
|
-
for (; toStart < to.length; ++toStart) {
|
148
|
-
if (to.charCodeAt(toStart) !== 47 /*/*/)
|
149
|
-
break;
|
150
|
-
}
|
151
|
-
var toEnd = to.length;
|
152
|
-
var toLen = toEnd - toStart;
|
153
|
-
var length = fromLen < toLen ? fromLen : toLen;
|
154
|
-
var lastCommonSep = -1;
|
155
|
-
var i = 0;
|
156
|
-
for (; i <= length; ++i) {
|
157
|
-
if (i === length) {
|
158
|
-
if (toLen > length) {
|
159
|
-
if (to.charCodeAt(toStart + i) === 47 /*/*/) {
|
160
|
-
return to.slice(toStart + i + 1);
|
161
|
-
}
|
162
|
-
else if (i === 0) {
|
163
|
-
return to.slice(toStart + i);
|
164
|
-
}
|
165
|
-
}
|
166
|
-
else if (fromLen > length) {
|
167
|
-
if (from.charCodeAt(fromStart + i) === 47 /*/*/) {
|
168
|
-
lastCommonSep = i;
|
169
|
-
}
|
170
|
-
else if (i === 0) {
|
171
|
-
lastCommonSep = 0;
|
172
|
-
}
|
173
|
-
}
|
174
|
-
break;
|
175
|
-
}
|
176
|
-
var fromCode = from.charCodeAt(fromStart + i);
|
177
|
-
var toCode = to.charCodeAt(toStart + i);
|
178
|
-
if (fromCode !== toCode)
|
179
|
-
break;
|
180
|
-
else if (fromCode === 47 /*/*/)
|
181
|
-
lastCommonSep = i;
|
182
|
-
}
|
183
|
-
var out = '';
|
184
|
-
for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {
|
185
|
-
if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {
|
186
|
-
if (out.length === 0)
|
187
|
-
out += '..';
|
188
|
-
else
|
189
|
-
out += '/..';
|
190
|
-
}
|
191
|
-
}
|
192
|
-
if (out.length > 0)
|
193
|
-
return out + to.slice(toStart + lastCommonSep);
|
194
|
-
else {
|
195
|
-
toStart += lastCommonSep;
|
196
|
-
if (to.charCodeAt(toStart) === 47 /*/*/)
|
197
|
-
++toStart;
|
198
|
-
return to.slice(toStart);
|
199
|
-
}
|
200
|
-
},
|
201
|
-
_makeLong: function _makeLong(path) {
|
202
|
-
return path;
|
203
|
-
},
|
204
|
-
dirname: function dirname(path) {
|
205
|
-
assertPath(path);
|
206
|
-
if (path.length === 0)
|
207
|
-
return '.';
|
208
|
-
var code = path.charCodeAt(0);
|
209
|
-
var hasRoot = code === 47; /*/*/
|
210
|
-
var end = -1;
|
211
|
-
var matchedSlash = true;
|
212
|
-
for (var i = path.length - 1; i >= 1; --i) {
|
213
|
-
code = path.charCodeAt(i);
|
214
|
-
if (code === 47 /*/*/) {
|
215
|
-
if (!matchedSlash) {
|
216
|
-
end = i;
|
217
|
-
break;
|
218
|
-
}
|
219
|
-
}
|
220
|
-
else {
|
221
|
-
matchedSlash = false;
|
222
|
-
}
|
223
|
-
}
|
224
|
-
if (end === -1)
|
225
|
-
return hasRoot ? '/' : '.';
|
226
|
-
if (hasRoot && end === 1)
|
227
|
-
return '//';
|
228
|
-
return path.slice(0, end);
|
229
|
-
},
|
230
|
-
basename: function basename(pathArg, ext) {
|
231
|
-
if (ext !== undefined && typeof ext !== 'string')
|
232
|
-
throw new TypeError('"ext" argument must be a string');
|
233
|
-
assertPath(pathArg);
|
234
|
-
var start = 0;
|
235
|
-
var end = -1;
|
236
|
-
var matchedSlash = true;
|
237
|
-
var i;
|
238
|
-
if (ext !== undefined && ext.length > 0 && ext.length <= pathArg.length) {
|
239
|
-
if (ext.length === pathArg.length && ext === pathArg)
|
240
|
-
return '';
|
241
|
-
var extIdx = ext.length - 1;
|
242
|
-
var firstNonSlashEnd = -1;
|
243
|
-
for (i = pathArg.length - 1; i >= 0; --i) {
|
244
|
-
var code = pathArg.charCodeAt(i);
|
245
|
-
if (code === 47 /*/*/) {
|
246
|
-
if (!matchedSlash) {
|
247
|
-
start = i + 1;
|
248
|
-
break;
|
249
|
-
}
|
250
|
-
}
|
251
|
-
else {
|
252
|
-
if (firstNonSlashEnd === -1) {
|
253
|
-
matchedSlash = false;
|
254
|
-
firstNonSlashEnd = i + 1;
|
255
|
-
}
|
256
|
-
if (extIdx >= 0) {
|
257
|
-
if (code === ext.charCodeAt(extIdx)) {
|
258
|
-
if (--extIdx === -1) {
|
259
|
-
end = i;
|
260
|
-
}
|
261
|
-
}
|
262
|
-
else {
|
263
|
-
extIdx = -1;
|
264
|
-
end = firstNonSlashEnd;
|
265
|
-
}
|
266
|
-
}
|
267
|
-
}
|
268
|
-
}
|
269
|
-
if (start === end)
|
270
|
-
end = firstNonSlashEnd;
|
271
|
-
else if (end === -1)
|
272
|
-
end = pathArg.length;
|
273
|
-
return pathArg.slice(start, end);
|
274
|
-
}
|
275
|
-
else {
|
276
|
-
for (i = pathArg.length - 1; i >= 0; --i) {
|
277
|
-
if (pathArg.charCodeAt(i) === 47 /*/*/) {
|
278
|
-
if (!matchedSlash) {
|
279
|
-
start = i + 1;
|
280
|
-
break;
|
281
|
-
}
|
282
|
-
}
|
283
|
-
else if (end === -1) {
|
284
|
-
matchedSlash = false;
|
285
|
-
end = i + 1;
|
286
|
-
}
|
287
|
-
}
|
288
|
-
if (end === -1)
|
289
|
-
return '';
|
290
|
-
return pathArg.slice(start, end);
|
291
|
-
}
|
292
|
-
},
|
293
|
-
extname: function extname(pathArg) {
|
294
|
-
assertPath(pathArg);
|
295
|
-
var startDot = -1;
|
296
|
-
var startPart = 0;
|
297
|
-
var end = -1;
|
298
|
-
var matchedSlash = true;
|
299
|
-
var preDotState = 0;
|
300
|
-
for (var i = pathArg.length - 1; i >= 0; --i) {
|
301
|
-
var code = pathArg.charCodeAt(i);
|
302
|
-
if (code === 47 /*/*/) {
|
303
|
-
if (!matchedSlash) {
|
304
|
-
startPart = i + 1;
|
305
|
-
break;
|
306
|
-
}
|
307
|
-
continue;
|
308
|
-
}
|
309
|
-
if (end === -1) {
|
310
|
-
matchedSlash = false;
|
311
|
-
end = i + 1;
|
312
|
-
}
|
313
|
-
if (code === 46 /*.*/) {
|
314
|
-
if (startDot === -1)
|
315
|
-
startDot = i;
|
316
|
-
else if (preDotState !== 1)
|
317
|
-
preDotState = 1;
|
318
|
-
}
|
319
|
-
else if (startDot !== -1) {
|
320
|
-
preDotState = -1;
|
321
|
-
}
|
322
|
-
}
|
323
|
-
if (startDot === -1 ||
|
324
|
-
end === -1 ||
|
325
|
-
preDotState === 0 ||
|
326
|
-
(preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)) {
|
327
|
-
return '';
|
328
|
-
}
|
329
|
-
return pathArg.slice(startDot, end);
|
330
|
-
},
|
331
|
-
format: function format(pathObject) {
|
332
|
-
if (pathObject === null || typeof pathObject !== 'object') {
|
333
|
-
throw new TypeError('The "pathObject" argument must be of type Object. Received type ' +
|
334
|
-
typeof pathObject);
|
335
|
-
}
|
336
|
-
return _format('/', pathObject);
|
337
|
-
},
|
338
|
-
parse: function parse(pathArg) {
|
339
|
-
assertPath(pathArg);
|
340
|
-
var ret = { root: '', dir: '', base: '', ext: '', name: '' };
|
341
|
-
if (pathArg.length === 0)
|
342
|
-
return ret;
|
343
|
-
var code = pathArg.charCodeAt(0);
|
344
|
-
var isAbsolute = code === 47; /*/*/
|
345
|
-
var start;
|
346
|
-
if (isAbsolute) {
|
347
|
-
ret.root = '/';
|
348
|
-
start = 1;
|
349
|
-
}
|
350
|
-
else {
|
351
|
-
start = 0;
|
352
|
-
}
|
353
|
-
var startDot = -1;
|
354
|
-
var startPart = 0;
|
355
|
-
var end = -1;
|
356
|
-
var matchedSlash = true;
|
357
|
-
var i = pathArg.length - 1;
|
358
|
-
var preDotState = 0;
|
359
|
-
for (; i >= start; --i) {
|
360
|
-
code = pathArg.charCodeAt(i);
|
361
|
-
if (code === 47 /*/*/) {
|
362
|
-
if (!matchedSlash) {
|
363
|
-
startPart = i + 1;
|
364
|
-
break;
|
365
|
-
}
|
366
|
-
continue;
|
367
|
-
}
|
368
|
-
if (end === -1) {
|
369
|
-
matchedSlash = false;
|
370
|
-
end = i + 1;
|
371
|
-
}
|
372
|
-
if (code === 46 /*.*/) {
|
373
|
-
if (startDot === -1)
|
374
|
-
startDot = i;
|
375
|
-
else if (preDotState !== 1)
|
376
|
-
preDotState = 1;
|
377
|
-
}
|
378
|
-
else if (startDot !== -1) {
|
379
|
-
preDotState = -1;
|
380
|
-
}
|
381
|
-
}
|
382
|
-
if (startDot === -1 ||
|
383
|
-
end === -1 ||
|
384
|
-
preDotState === 0 ||
|
385
|
-
(preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)) {
|
386
|
-
if (end !== -1) {
|
387
|
-
if (startPart === 0 && isAbsolute)
|
388
|
-
ret.base = ret.name = pathArg.slice(1, end);
|
389
|
-
else
|
390
|
-
ret.base = ret.name = pathArg.slice(startPart, end);
|
391
|
-
}
|
392
|
-
}
|
393
|
-
else {
|
394
|
-
if (startPart === 0 && isAbsolute) {
|
395
|
-
ret.name = pathArg.slice(1, startDot);
|
396
|
-
ret.base = pathArg.slice(1, end);
|
397
|
-
}
|
398
|
-
else {
|
399
|
-
ret.name = pathArg.slice(startPart, startDot);
|
400
|
-
ret.base = pathArg.slice(startPart, end);
|
401
|
-
}
|
402
|
-
ret.ext = pathArg.slice(startDot, end);
|
403
|
-
}
|
404
|
-
if (startPart > 0)
|
405
|
-
ret.dir = pathArg.slice(0, startPart - 1);
|
406
|
-
else if (isAbsolute)
|
407
|
-
ret.dir = '/';
|
408
|
-
return ret;
|
409
|
-
},
|
410
|
-
sep: '/',
|
411
|
-
delimiter: ':',
|
412
|
-
win32: {
|
413
|
-
// @ts-ignore
|
414
|
-
normalize: p => {
|
415
|
-
return p;
|
416
|
-
},
|
417
|
-
},
|
418
|
-
posix: null,
|
419
|
-
};
|
420
|
-
;
|
421
|
-
({}); // @--end-of-file-for-module=tnp-core lib/node-path-mock.ts
|
422
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1wYXRoLW1vY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdG5wLWNvcmUvcHJvamVjdHMvdG5wLWNvcmUvc3JjL2xpYi9ub2RlLXBhdGgtbW9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxTQUFTLFVBQVUsQ0FBQyxJQUFJO0lBQ3RCLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLFNBQVMsQ0FDakIsOENBQThDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FDdEUsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDO0FBR0QsU0FBUyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsY0FBYztJQUNoRCxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixJQUFJLGlCQUFpQixHQUFHLENBQUMsQ0FBQztJQUMxQixJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuQixJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7SUFDYixJQUFJLElBQUksQ0FBQztJQUNULEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU07WUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxQyxJQUFJLElBQUksS0FBSyxFQUFFLENBQUMsS0FBSztZQUFFLE1BQU07O1lBQzdCLElBQUksR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ3JCLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QixJQUFJLFNBQVMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FB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RyxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUVELElBQUksU0FBUyxHQUFHLENBQUM7WUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUN4RCxJQUFJLFVBQVU7WUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUVuQyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxHQUFHLEVBQUUsR0FBRztJQUNSLFNBQVMsRUFBRSxHQUFHO0lBQ2QsS0FBSyxFQUFFO1FBQ0wsYUFBYTtRQUNiLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRTtZQUNiLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQztLQUNGO0lBQ0QsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBR0QsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywyREFBMkQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5mdW5jdGlvbiBhc3NlcnRQYXRoKHBhdGgpIHtcbiAgaWYgKHR5cGVvZiBwYXRoICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAnW3Rhb24tY29yZV0gUGF0aCBtdXN0IGJlIGEgc3RyaW5nLiBSZWNlaXZlZCAnICsgSlNPTi5zdHJpbmdpZnkocGF0aCksXG4gICAgKTtcbiAgfVxufVxuXG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZVN0cmluZ1Bvc2l4KHBhdGgsIGFsbG93QWJvdmVSb290KSB7XG4gIHZhciByZXMgPSAnJztcbiAgdmFyIGxhc3RTZWdtZW50TGVuZ3RoID0gMDtcbiAgdmFyIGxhc3RTbGFzaCA9IC0xO1xuICB2YXIgZG90cyA9IDA7XG4gIHZhciBjb2RlO1xuICBmb3IgKHZhciBpID0gMDsgaSA8PSBwYXRoLmxlbmd0aDsgKytpKSB7XG4gICAgaWYgKGkgPCBwYXRoLmxlbmd0aCkgY29kZSA9IHBhdGguY2hhckNvZGVBdChpKTtcbiAgICBlbHNlIGlmIChjb2RlID09PSA0NyAvKi8qLykgYnJlYWs7XG4gICAgZWxzZSBjb2RlID0gNDcgLyovKi87XG4gICAgaWYgKGNvZGUgPT09IDQ3IC8qLyovKSB7XG4gICAgICBpZiAobGFzdFNsYXNoID09PSBpIC0gMSB8fCBkb3RzID09PSAxKSB7XG5cbiAgICAgIH0gZWxzZSBpZiAobGFzdFNsYXNoICE9PSBpIC0gMSAmJiBkb3RzID09PSAyKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICByZXMubGVuZ3RoIDwgMiB8fFxuICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoICE9PSAyIHx8XG4gICAgICAgICAgcmVzLmNoYXJDb2RlQXQocmVzLmxlbmd0aCAtIDEpICE9PSA0NiAvKi4qLyB8fFxuICAgICAgICAgIHJlcy5jaGFyQ29kZUF0KHJlcy5sZW5ndGggLSAyKSAhPT0gNDYgLyouKi9cbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKHJlcy5sZW5ndGggPiAyKSB7XG4gICAgICAgICAgICB2YXIgbGFzdFNsYXNoSW5kZXggPSByZXMubGFzdEluZGV4T2YoJy8nKTtcbiAgICAgICAgICAgIGlmIChsYXN0U2xhc2hJbmRleCAhPT0gcmVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaWYgKGxhc3RTbGFzaEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIHJlcyA9ICcnO1xuICAgICAgICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gMDtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXMgPSByZXMuc2xpY2UoMCwgbGFzdFNsYXNoSW5kZXgpO1xuICAgICAgICAgICAgICAgIGxhc3RTZWdtZW50TGVuZ3RoID0gcmVzLmxlbmd0aCAtIDEgLSByZXMubGFzdEluZGV4T2YoJy8nKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBsYXN0U2xhc2ggPSBpO1xuICAgICAgICAgICAgICBkb3RzID0gMDtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChyZXMubGVuZ3RoID09PSAyIHx8IHJlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHJlcyA9ICcnO1xuICAgICAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggPSAwO1xuICAgICAgICAgICAgbGFzdFNsYXNoID0gaTtcbiAgICAgICAgICAgIGRvdHMgPSAwO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChhbGxvd0Fib3ZlUm9vdCkge1xuICAgICAgICAgIGlmIChyZXMubGVuZ3RoID4gMCkgcmVzICs9ICcvLi4nO1xuICAgICAgICAgIGVsc2UgcmVzID0gJy4uJztcbiAgICAgICAgICBsYXN0U2VnbWVudExlbmd0aCA9IDI7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChyZXMubGVuZ3RoID4gMCkgcmVzICs9ICcvJyArIHBhdGguc2xpY2UobGFzdFNsYXNoICsgMSwgaSk7XG4gICAgICAgIGVsc2UgcmVzID0gcGF0aC5zbGljZShsYXN0U2xhc2ggKyAxLCBpKTtcbiAgICAgICAgbGFzdFNlZ21lbnRMZW5ndGggPSBpIC0gbGFzdFNsYXNoIC0gMTtcbiAgICAgIH1cbiAgICAgIGxhc3RTbGFzaCA9IGk7XG4gICAgICBkb3RzID0gMDtcbiAgICB9IGVsc2UgaWYgKGNvZGUgPT09IDQ2IC8qLiovICYmIGRvdHMgIT09IC0xKSB7XG4gICAgICArK2RvdHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRvdHMgPSAtMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlcztcbn1cblxuZnVuY3Rpb24gX2Zvcm1hdChzZXAsIHBhdGhPYmplY3QpIHtcbiAgdmFyIGRpciA9IHBhdGhPYmplY3QuZGlyIHx8IHBhdGhPYmplY3Qucm9vdDtcbiAgdmFyIGJhc2UgPVxuICAgIHBhdGhPYmplY3QuYmFzZSB8fCAocGF0aE9iamVjdC5uYW1lIHx8ICcnKSArIChwYXRoT2JqZWN0LmV4dCB8fCAnJyk7XG4gIGlmICghZGlyKSB7XG4gICAgcmV0dXJuIGJhc2U7XG4gIH1cbiAgaWYgKGRpciA9PT0gcGF0aE9iamVjdC5yb290KSB7XG4gICAgcmV0dXJuIGRpciArIGJhc2U7XG4gIH1cbiAgcmV0dXJuIGRpciArIHNlcCArIGJhc2U7XG59XG5cbmV4cG9ydCBjb25zdCBwYXRoID0ge1xuXG4gIHJlc29sdmU6IGZ1bmN0aW9uIHJlc29sdmUocGF0aFRvUmVzb3ZsZSkge1xuICAgIHJldHVybiBwYXRoVG9SZXNvdmxlO1xuICB9LFxuXG4gIG5vcm1hbGl6ZTogZnVuY3Rpb24gbm9ybWFsaXplKHBhdGhBcmcpIHtcbiAgICBhc3NlcnRQYXRoKHBhdGhBcmcpO1xuXG4gICAgaWYgKHBhdGhBcmcubGVuZ3RoID09PSAwKSByZXR1cm4gJy4nO1xuXG4gICAgdmFyIGlzQWJzb2x1dGUgPSBwYXRoQXJnLmNoYXJDb2RlQXQoMCkgPT09IDQ3OyAvKi8qL1xuICAgIHZhciB0cmFpbGluZ1NlcGFyYXRvciA9IHBhdGhBcmcuY2hhckNvZGVBdChwYXRoQXJnLmxlbmd0aCAtIDEpID09PSA0NzsgLyovKi9cblxuXG4gICAgcGF0aEFyZyA9IG5vcm1hbGl6ZVN0cmluZ1Bvc2l4KHBhdGhBcmcsICFpc0Fic29sdXRlKTtcblxuICAgIGlmIChwYXRoQXJnLmxlbmd0aCA9PT0gMCAmJiAhaXNBYnNvbHV0ZSkgcGF0aEFyZyA9ICcuJztcbiAgICBpZiAocGF0aEFyZy5sZW5ndGggPiAwICYmIHRyYWlsaW5nU2VwYXJhdG9yKSBwYXRoQXJnICs9ICcvJztcblxuICAgIGlmIChpc0Fic29sdXRlKSByZXR1cm4gJy8nICsgcGF0aEFyZztcbiAgICByZXR1cm4gcGF0aEFyZztcbiAgfSxcblxuICBpc0Fic29sdXRlOiBmdW5jdGlvbiBpc0Fic29sdXRlKHBhdGhBcmcpIHtcbiAgICBhc3NlcnRQYXRoKHBhdGhBcmcpO1xuICAgIHJldHVybiBwYXRoQXJnLmxlbmd0aCA+IDAgJiYgcGF0aEFyZy5jaGFyQ29kZUF0KDApID09PSA0NyAvKi8qLztcbiAgfSxcblxuICBqb2luOiBmdW5jdGlvbiBqb2luKCkge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSByZXR1cm4gJy4nO1xuICAgIHZhciBqb2luZWQ7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyArK2kpIHtcbiAgICAgIHZhciBhcmcgPSBhcmd1bWVudHNbaV07XG4gICAgICBhc3NlcnRQYXRoKGFyZyk7XG4gICAgICBpZiAoYXJnLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKGpvaW5lZCA9PT0gdW5kZWZpbmVkKSBqb2luZWQgPSBhcmc7XG4gICAgICAgIGVsc2Ugam9pbmVkICs9ICcvJyArIGFyZztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGpvaW5lZCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gJy4nO1xuICAgIHJldHVybiBwYXRoLm5vcm1hbGl6ZShqb2luZWQpO1xuICB9LFxuXG4gIHJlbGF0aXZlOiBmdW5jdGlvbiByZWxhdGl2ZShmcm9tLCB0bykge1xuICAgIGFzc2VydFBhdGgoZnJvbSk7XG4gICAgYXNzZXJ0UGF0aCh0byk7XG5cbiAgICBpZiAoZnJvbSA9PT0gdG8pIHJldHVybiAnJztcblxuICAgIGZyb20gPSBwYXRoLnJlc29sdmUoZnJvbSk7XG4gICAgdG8gPSBwYXRoLnJlc29sdmUodG8pO1xuXG4gICAgaWYgKGZyb20gPT09IHRvKSByZXR1cm4gJyc7XG5cblxuICAgIHZhciBmcm9tU3RhcnQgPSAxO1xuICAgIGZvciAoOyBmcm9tU3RhcnQgPCBmcm9tLmxlbmd0aDsgKytmcm9tU3RhcnQpIHtcbiAgICAgIGlmIChmcm9tLmNoYXJDb2RlQXQoZnJvbVN0YXJ0KSAhPT0gNDcgLyovKi8pIGJyZWFrO1xuICAgIH1cbiAgICB2YXIgZnJvbUVuZCA9IGZyb20ubGVuZ3RoO1xuICAgIHZhciBmcm9tTGVuID0gZnJvbUVuZCAtIGZyb21TdGFydDtcblxuXG4gICAgdmFyIHRvU3RhcnQgPSAxO1xuICAgIGZvciAoOyB0b1N0YXJ0IDwgdG8ubGVuZ3RoOyArK3RvU3RhcnQpIHtcbiAgICAgIGlmICh0by5jaGFyQ29kZUF0KHRvU3RhcnQpICE9PSA0NyAvKi8qLykgYnJlYWs7XG4gICAgfVxuICAgIHZhciB0b0VuZCA9IHRvLmxlbmd0aDtcbiAgICB2YXIgdG9MZW4gPSB0b0VuZCAtIHRvU3RhcnQ7XG5cblxuICAgIHZhciBsZW5ndGggPSBmcm9tTGVuIDwgdG9MZW4gPyBmcm9tTGVuIDogdG9MZW47XG4gICAgdmFyIGxhc3RDb21tb25TZXAgPSAtMTtcbiAgICB2YXIgaSA9IDA7XG4gICAgZm9yICg7IGkgPD0gbGVuZ3RoOyArK2kpIHtcbiAgICAgIGlmIChpID09PSBsZW5ndGgpIHtcbiAgICAgICAgaWYgKHRvTGVuID4gbGVuZ3RoKSB7XG4gICAgICAgICAgaWYgKHRvLmNoYXJDb2RlQXQodG9TdGFydCArIGkpID09PSA0NyAvKi8qLykge1xuXG5cbiAgICAgICAgICAgIHJldHVybiB0by5zbGljZSh0b1N0YXJ0ICsgaSArIDEpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaSA9PT0gMCkge1xuXG5cbiAgICAgICAgICAgIHJldHVybiB0by5zbGljZSh0b1N0YXJ0ICsgaSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGZyb21MZW4gPiBsZW5ndGgpIHtcbiAgICAgICAgICBpZiAoZnJvbS5jaGFyQ29kZUF0KGZyb21TdGFydCArIGkpID09PSA0NyAvKi8qLykge1xuXG5cbiAgICAgICAgICAgIGxhc3RDb21tb25TZXAgPSBpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaSA9PT0gMCkge1xuXG5cbiAgICAgICAgICAgIGxhc3RDb21tb25TZXAgPSAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHZhciBmcm9tQ29kZSA9IGZyb20uY2hhckNvZGVBdChmcm9tU3RhcnQgKyBpKTtcbiAgICAgIHZhciB0b0NvZGUgPSB0by5jaGFyQ29kZUF0KHRvU3RhcnQgKyBpKTtcbiAgICAgIGlmIChmcm9tQ29kZSAhPT0gdG9Db2RlKSBicmVhaztcbiAgICAgIGVsc2UgaWYgKGZyb21Db2RlID09PSA0NyAvKi8qLykgbGFzdENvbW1vblNlcCA9IGk7XG4gICAgfVxuXG4gICAgdmFyIG91dCA9ICcnO1xuXG5cbiAgICBmb3IgKGkgPSBmcm9tU3RhcnQgKyBsYXN0Q29tbW9uU2VwICsgMTsgaSA8PSBmcm9tRW5kOyArK2kpIHtcbiAgICAgIGlmIChpID09PSBmcm9tRW5kIHx8IGZyb20uY2hhckNvZGVBdChpKSA9PT0gNDcgLyovKi8pIHtcbiAgICAgICAgaWYgKG91dC5sZW5ndGggPT09IDApIG91dCArPSAnLi4nO1xuICAgICAgICBlbHNlIG91dCArPSAnLy4uJztcbiAgICAgIH1cbiAgICB9XG5cblxuXG4gICAgaWYgKG91dC5sZW5ndGggPiAwKSByZXR1cm4gb3V0ICsgdG8uc2xpY2UodG9TdGFydCArIGxhc3RDb21tb25TZXApO1xuICAgIGVsc2Uge1xuICAgICAgdG9TdGFydCArPSBsYXN0Q29tbW9uU2VwO1xuICAgICAgaWYgKHRvLmNoYXJDb2RlQXQodG9TdGFydCkgPT09IDQ3IC8qLyovKSArK3RvU3RhcnQ7XG4gICAgICByZXR1cm4gdG8uc2xpY2UodG9TdGFydCk7XG4gICAgfVxuICB9LFxuXG4gIF9tYWtlTG9uZzogZnVuY3Rpb24gX21ha2VMb25nKHBhdGgpIHtcbiAgICByZXR1cm4gcGF0aDtcbiAgfSxcblxuICBkaXJuYW1lOiBmdW5jdGlvbiBkaXJuYW1lKHBhdGgpIHtcbiAgICBhc3NlcnRQYXRoKHBhdGgpO1xuICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkgcmV0dXJuICcuJztcbiAgICB2YXIgY29kZSA9IHBhdGguY2hhckNvZGVBdCgwKTtcbiAgICB2YXIgaGFzUm9vdCA9IGNvZGUgPT09IDQ3OyAvKi8qL1xuICAgIHZhciBlbmQgPSAtMTtcbiAgICB2YXIgbWF0Y2hlZFNsYXNoID0gdHJ1ZTtcbiAgICBmb3IgKHZhciBpID0gcGF0aC5sZW5ndGggLSAxOyBpID49IDE7IC0taSkge1xuICAgICAgY29kZSA9IHBhdGguY2hhckNvZGVBdChpKTtcbiAgICAgIGlmIChjb2RlID09PSA0NyAvKi8qLykge1xuICAgICAgICBpZiAoIW1hdGNoZWRTbGFzaCkge1xuICAgICAgICAgIGVuZCA9IGk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgbWF0Y2hlZFNsYXNoID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGVuZCA9PT0gLTEpIHJldHVybiBoYXNSb290ID8gJy8nIDogJy4nO1xuICAgIGlmIChoYXNSb290ICYmIGVuZCA9PT0gMSkgcmV0dXJuICcvLyc7XG4gICAgcmV0dXJuIHBhdGguc2xpY2UoMCwgZW5kKTtcbiAgfSxcblxuICBiYXNlbmFtZTogZnVuY3Rpb24gYmFzZW5hbWUocGF0aEFyZywgZXh0KSB7XG4gICAgaWYgKGV4dCAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBleHQgIT09ICdzdHJpbmcnKVxuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJleHRcIiBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nJyk7XG4gICAgYXNzZXJ0UGF0aChwYXRoQXJnKTtcblxuICAgIHZhciBzdGFydCA9IDA7XG4gICAgdmFyIGVuZCA9IC0xO1xuICAgIHZhciBtYXRjaGVkU2xhc2ggPSB0cnVlO1xuICAgIHZhciBpO1xuXG4gICAgaWYgKGV4dCAhPT0gdW5kZWZpbmVkICYmIGV4dC5sZW5ndGggPiAwICYmIGV4dC5sZW5ndGggPD0gcGF0aEFyZy5sZW5ndGgpIHtcbiAgICAgIGlmIChleHQubGVuZ3RoID09PSBwYXRoQXJnLmxlbmd0aCAmJiBleHQgPT09IHBhdGhBcmcpIHJldHVybiAnJztcbiAgICAgIHZhciBleHRJZHggPSBleHQubGVuZ3RoIC0gMTtcbiAgICAgIHZhciBmaXJzdE5vblNsYXNoRW5kID0gLTE7XG4gICAgICBmb3IgKGkgPSBwYXRoQXJnLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgIHZhciBjb2RlID0gcGF0aEFyZy5jaGFyQ29kZUF0KGkpO1xuICAgICAgICBpZiAoY29kZSA9PT0gNDcgLyovKi8pIHtcblxuXG4gICAgICAgICAgaWYgKCFtYXRjaGVkU2xhc2gpIHtcbiAgICAgICAgICAgIHN0YXJ0ID0gaSArIDE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGZpcnN0Tm9uU2xhc2hFbmQgPT09IC0xKSB7XG5cblxuICAgICAgICAgICAgbWF0Y2hlZFNsYXNoID0gZmFsc2U7XG4gICAgICAgICAgICBmaXJzdE5vblNsYXNoRW5kID0gaSArIDE7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChleHRJZHggPj0gMCkge1xuXG4gICAgICAgICAgICBpZiAoY29kZSA9PT0gZXh0LmNoYXJDb2RlQXQoZXh0SWR4KSkge1xuICAgICAgICAgICAgICBpZiAoLS1leHRJZHggPT09IC0xKSB7XG5cblxuICAgICAgICAgICAgICAgIGVuZCA9IGk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG5cblxuICAgICAgICAgICAgICBleHRJZHggPSAtMTtcbiAgICAgICAgICAgICAgZW5kID0gZmlyc3ROb25TbGFzaEVuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXJ0ID09PSBlbmQpIGVuZCA9IGZpcnN0Tm9uU2xhc2hFbmQ7XG4gICAgICBlbHNlIGlmIChlbmQgPT09IC0xKSBlbmQgPSBwYXRoQXJnLmxlbmd0aDtcbiAgICAgIHJldHVybiBwYXRoQXJnLnNsaWNlKHN0YXJ0LCBlbmQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGkgPSBwYXRoQXJnLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgIGlmIChwYXRoQXJnLmNoYXJDb2RlQXQoaSkgPT09IDQ3IC8qLyovKSB7XG5cblxuICAgICAgICAgIGlmICghbWF0Y2hlZFNsYXNoKSB7XG4gICAgICAgICAgICBzdGFydCA9IGkgKyAxO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGVuZCA9PT0gLTEpIHtcblxuXG4gICAgICAgICAgbWF0Y2hlZFNsYXNoID0gZmFsc2U7XG4gICAgICAgICAgZW5kID0gaSArIDE7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGVuZCA9PT0gLTEpIHJldHVybiAnJztcbiAgICAgIHJldHVybiBwYXRoQXJnLnNsaWNlKHN0YXJ0LCBlbmQpO1xuICAgIH1cbiAgfSxcblxuICBleHRuYW1lOiBmdW5jdGlvbiBleHRuYW1lKHBhdGhBcmcpIHtcbiAgICBhc3NlcnRQYXRoKHBhdGhBcmcpO1xuICAgIHZhciBzdGFydERvdCA9IC0xO1xuICAgIHZhciBzdGFydFBhcnQgPSAwO1xuICAgIHZhciBlbmQgPSAtMTtcbiAgICB2YXIgbWF0Y2hlZFNsYXNoID0gdHJ1ZTtcblxuXG4gICAgdmFyIHByZURvdFN0YXRlID0gMDtcbiAgICBmb3IgKHZhciBpID0gcGF0aEFyZy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgdmFyIGNvZGUgPSBwYXRoQXJnLmNoYXJDb2RlQXQoaSk7XG4gICAgICBpZiAoY29kZSA9PT0gNDcgLyovKi8pIHtcblxuXG4gICAgICAgIGlmICghbWF0Y2hlZFNsYXNoKSB7XG4gICAgICAgICAgc3RhcnRQYXJ0ID0gaSArIDE7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoZW5kID09PSAtMSkge1xuXG5cbiAgICAgICAgbWF0Y2hlZFNsYXNoID0gZmFsc2U7XG4gICAgICAgIGVuZCA9IGkgKyAxO1xuICAgICAgfVxuICAgICAgaWYgKGNvZGUgPT09IDQ2IC8qLiovKSB7XG5cbiAgICAgICAgaWYgKHN0YXJ0RG90ID09PSAtMSkgc3RhcnREb3QgPSBpO1xuICAgICAgICBlbHNlIGlmIChwcmVEb3RTdGF0ZSAhPT0gMSkgcHJlRG90U3RhdGUgPSAxO1xuICAgICAgfSBlbHNlIGlmIChzdGFydERvdCAhPT0gLTEpIHtcblxuXG4gICAgICAgIHByZURvdFN0YXRlID0gLTE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgc3RhcnREb3QgPT09IC0xIHx8XG4gICAgICBlbmQgPT09IC0xIHx8XG5cbiAgICAgIHByZURvdFN0YXRlID09PSAwIHx8XG5cbiAgICAgIChwcmVEb3RTdGF0ZSA9PT0gMSAmJiBzdGFydERvdCA9PT0gZW5kIC0gMSAmJiBzdGFydERvdCA9PT0gc3RhcnRQYXJ0ICsgMSlcbiAgICApIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgcmV0dXJuIHBhdGhBcmcuc2xpY2Uoc3RhcnREb3QsIGVuZCk7XG4gIH0sXG5cbiAgZm9ybWF0OiBmdW5jdGlvbiBmb3JtYXQocGF0aE9iamVjdCkge1xuICAgIGlmIChwYXRoT2JqZWN0ID09PSBudWxsIHx8IHR5cGVvZiBwYXRoT2JqZWN0ICE9PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgJ1RoZSBcInBhdGhPYmplY3RcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgT2JqZWN0LiBSZWNlaXZlZCB0eXBlICcgK1xuICAgICAgICAgIHR5cGVvZiBwYXRoT2JqZWN0LFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIF9mb3JtYXQoJy8nLCBwYXRoT2JqZWN0KTtcbiAgfSxcblxuICBwYXJzZTogZnVuY3Rpb24gcGFyc2UocGF0aEFyZykge1xuICAgIGFzc2VydFBhdGgocGF0aEFyZyk7XG5cbiAgICB2YXIgcmV0ID0geyByb290OiAnJywgZGlyOiAnJywgYmFzZTogJycsIGV4dDogJycsIG5hbWU6ICcnIH07XG4gICAgaWYgKHBhdGhBcmcubGVuZ3RoID09PSAwKSByZXR1cm4gcmV0O1xuICAgIHZhciBjb2RlID0gcGF0aEFyZy5jaGFyQ29kZUF0KDApO1xuICAgIHZhciBpc0Fic29sdXRlID0gY29kZSA9PT0gNDc7IC8qLyovXG4gICAgdmFyIHN0YXJ0O1xuICAgIGlmIChpc0Fic29sdXRlKSB7XG4gICAgICByZXQucm9vdCA9ICcvJztcbiAgICAgIHN0YXJ0ID0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhcnQgPSAwO1xuICAgIH1cbiAgICB2YXIgc3RhcnREb3QgPSAtMTtcbiAgICB2YXIgc3RhcnRQYXJ0ID0gMDtcbiAgICB2YXIgZW5kID0gLTE7XG4gICAgdmFyIG1hdGNoZWRTbGFzaCA9IHRydWU7XG4gICAgdmFyIGkgPSBwYXRoQXJnLmxlbmd0aCAtIDE7XG5cblxuXG4gICAgdmFyIHByZURvdFN0YXRlID0gMDtcblxuXG4gICAgZm9yICg7IGkgPj0gc3RhcnQ7IC0taSkge1xuICAgICAgY29kZSA9IHBhdGhBcmcuY2hhckNvZGVBdChpKTtcbiAgICAgIGlmIChjb2RlID09PSA0NyAvKi8qLykge1xuXG5cbiAgICAgICAgaWYgKCFtYXRjaGVkU2xhc2gpIHtcbiAgICAgICAgICBzdGFydFBhcnQgPSBpICsgMTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChlbmQgPT09IC0xKSB7XG5cblxuICAgICAgICBtYXRjaGVkU2xhc2ggPSBmYWxzZTtcbiAgICAgICAgZW5kID0gaSArIDE7XG4gICAgICB9XG4gICAgICBpZiAoY29kZSA9PT0gNDYgLyouKi8pIHtcblxuICAgICAgICBpZiAoc3RhcnREb3QgPT09IC0xKSBzdGFydERvdCA9IGk7XG4gICAgICAgIGVsc2UgaWYgKHByZURvdFN0YXRlICE9PSAxKSBwcmVEb3RTdGF0ZSA9IDE7XG4gICAgICB9IGVsc2UgaWYgKHN0YXJ0RG90ICE9PSAtMSkge1xuXG5cbiAgICAgICAgcHJlRG90U3RhdGUgPSAtMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBzdGFydERvdCA9PT0gLTEgfHxcbiAgICAgIGVuZCA9PT0gLTEgfHxcblxuICAgICAgcHJlRG90U3RhdGUgPT09IDAgfHxcblxuICAgICAgKHByZURvdFN0YXRlID09PSAxICYmIHN0YXJ0RG90ID09PSBlbmQgLSAxICYmIHN0YXJ0RG90ID09PSBzdGFydFBhcnQgKyAxKVxuICAgICkge1xuICAgICAgaWYgKGVuZCAhPT0gLTEpIHtcbiAgICAgICAgaWYgKHN0YXJ0UGFydCA9PT0gMCAmJiBpc0Fic29sdXRlKVxuICAgICAgICAgIHJldC5iYXNlID0gcmV0Lm5hbWUgPSBwYXRoQXJnLnNsaWNlKDEsIGVuZCk7XG4gICAgICAgIGVsc2UgcmV0LmJhc2UgPSByZXQubmFtZSA9IHBhdGhBcmcuc2xpY2Uoc3RhcnRQYXJ0LCBlbmQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc3RhcnRQYXJ0ID09PSAwICYmIGlzQWJzb2x1dGUpIHtcbiAgICAgICAgcmV0Lm5hbWUgPSBwYXRoQXJnLnNsaWNlKDEsIHN0YXJ0RG90KTtcbiAgICAgICAgcmV0LmJhc2UgPSBwYXRoQXJnLnNsaWNlKDEsIGVuZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXQubmFtZSA9IHBhdGhBcmcuc2xpY2Uoc3RhcnRQYXJ0LCBzdGFydERvdCk7XG4gICAgICAgIHJldC5iYXNlID0gcGF0aEFyZy5zbGljZShzdGFydFBhcnQsIGVuZCk7XG4gICAgICB9XG4gICAgICByZXQuZXh0ID0gcGF0aEFyZy5zbGljZShzdGFydERvdCwgZW5kKTtcbiAgICB9XG5cbiAgICBpZiAoc3RhcnRQYXJ0ID4gMCkgcmV0LmRpciA9IHBhdGhBcmcuc2xpY2UoMCwgc3RhcnRQYXJ0IC0gMSk7XG4gICAgZWxzZSBpZiAoaXNBYnNvbHV0ZSkgcmV0LmRpciA9ICcvJztcblxuICAgIHJldHVybiByZXQ7XG4gIH0sXG5cbiAgc2VwOiAnLycsXG4gIGRlbGltaXRlcjogJzonLFxuICB3aW4zMjoge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBub3JtYWxpemU6IHAgPT4ge1xuICAgICAgcmV0dXJuIHA7XG4gICAgfSxcbiAgfSxcbiAgcG9zaXg6IG51bGwsXG59O1xuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtY29yZSBsaWIvbm9kZS1wYXRoLW1vY2sudHMiXX0=
|
@@ -1,55 +0,0 @@
|
|
1
|
-
import { Helpers } from '.';
|
2
|
-
import { _ } from './core-imports';
|
3
|
-
export class PROGRESS_DATA {
|
4
|
-
constructor() {
|
5
|
-
this.type = 'event';
|
6
|
-
}
|
7
|
-
static log(log) {
|
8
|
-
/* */
|
9
|
-
/* */
|
10
|
-
/* */
|
11
|
-
/* */
|
12
|
-
/* */
|
13
|
-
/* */
|
14
|
-
/* */
|
15
|
-
}
|
16
|
-
static resolveFrom(chunk, callbackOnFounded, checkSplit = true) {
|
17
|
-
let progress;
|
18
|
-
let res = [];
|
19
|
-
if (!_.isString(chunk)) {
|
20
|
-
return [];
|
21
|
-
}
|
22
|
-
chunk = chunk.trim();
|
23
|
-
if (checkSplit) {
|
24
|
-
const split = chunk.split(/\r\n|\n|\r/);
|
25
|
-
if (split.length > 1) {
|
26
|
-
split.forEach(s => {
|
27
|
-
res = res.concat(this.resolveFrom(s, callbackOnFounded, false));
|
28
|
-
});
|
29
|
-
return res;
|
30
|
-
}
|
31
|
-
}
|
32
|
-
if (/\[\[\[.*\]\]\]/g.test(chunk)) {
|
33
|
-
chunk = chunk.replace(/^\[\[\[/g, '').replace(/\]\]\]$/g, '');
|
34
|
-
progress = chunk;
|
35
|
-
}
|
36
|
-
if (!_.isUndefined(progress)) {
|
37
|
-
try {
|
38
|
-
const p = JSON.parse(progress);
|
39
|
-
const single = _.merge(new PROGRESS_DATA(), p);
|
40
|
-
res = res.concat([single]);
|
41
|
-
if (_.isFunction(callbackOnFounded)) {
|
42
|
-
callbackOnFounded(single);
|
43
|
-
}
|
44
|
-
}
|
45
|
-
catch (err) {
|
46
|
-
Helpers.error(err, true, true);
|
47
|
-
Helpers.error(`ProgresssBarData: fail to parse "${progress}"`, true, true);
|
48
|
-
}
|
49
|
-
}
|
50
|
-
return res;
|
51
|
-
}
|
52
|
-
}
|
53
|
-
;
|
54
|
-
({}); // @--end-of-file-for-module=tnp-core lib/progress-data.ts
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90bnAtY29yZS9wcm9qZWN0cy90bnAtY29yZS9zcmMvbGliL3Byb2dyZXNzLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEdBQUcsQ0FBQztBQUM1QixPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFpQm5DLE1BQU0sT0FBTyxhQUFhO0lBQTFCO1FBOERTLFNBQUksR0FBa0MsT0FBTyxDQUFDO0lBR3ZELENBQUM7SUFoRVEsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFtQjtRQUN2QyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO0lBRUgsQ0FBQztJQUVNLE1BQU0sQ0FBQyxXQUFXLENBQ3ZCLEtBQWEsRUFDYixpQkFBZ0QsRUFDaEQsVUFBVSxHQUFHLElBQUk7UUFFakIsSUFBSSxRQUFRLENBQUM7UUFDYixJQUFJLEdBQUcsR0FBb0IsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVyQixJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN4QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBRXJCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ2hCLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ2xFLENBQUMsQ0FBQyxDQUFDO2dCQUNILE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2xDLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzlELFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDbkIsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDO2dCQUNILE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQy9CLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDL0MsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO29CQUNwQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDNUIsQ0FBQztZQUNILENBQUM7WUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDL0IsT0FBTyxDQUFDLEtBQUssQ0FDWCxvQ0FBb0MsUUFBUSxHQUFHLEVBQy9DLElBQUksRUFDSixJQUFJLENBQ0wsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBUUY7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDBEQUEwRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnLic7XG5pbXBvcnQgeyBfIH0gZnJvbSAnLi9jb3JlLWltcG9ydHMnO1xuaW1wb3J0IHsgQ29yZU1vZGVscyB9IGZyb20gJy4vY29yZS1tb2RlbHMnO1xuXG4vKiAqL1xuLyogKi9cbiAgXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBST0dSRVNTX0RBVEEge1xuICAvKipcbiAgICogSG93IG1hbiBwZXJjZW50IG9mXG4gICAqL1xuICB2YWx1ZT86IG51bWJlcjtcbiAgbXNnPzogc3RyaW5nO1xuICB0eXBlPzogQ29yZU1vZGVscy5QUk9HUkVTU19EQVRBX1RZUEU7XG4gIGRhdGU/OiBEYXRlO1xufVxuXG5leHBvcnQgY2xhc3MgUFJPR1JFU1NfREFUQSBpbXBsZW1lbnRzIElQUk9HUkVTU19EQVRBIHtcbiAgcHVibGljIHN0YXRpYyBsb2cobG9nOiBJUFJPR1JFU1NfREFUQSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHJlc29sdmVGcm9tKFxuICAgIGNodW5rOiBzdHJpbmcsXG4gICAgY2FsbGJhY2tPbkZvdW5kZWQ/OiAoanNvbjogUFJPR1JFU1NfREFUQSkgPT4gYW55LFxuICAgIGNoZWNrU3BsaXQgPSB0cnVlLFxuICApOiBQUk9HUkVTU19EQVRBW10ge1xuICAgIGxldCBwcm9ncmVzcztcbiAgICBsZXQgcmVzOiBQUk9HUkVTU19EQVRBW10gPSBbXTtcbiAgICBpZiAoIV8uaXNTdHJpbmcoY2h1bmspKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNodW5rID0gY2h1bmsudHJpbSgpO1xuXG4gICAgaWYgKGNoZWNrU3BsaXQpIHtcbiAgICAgIGNvbnN0IHNwbGl0ID0gY2h1bmsuc3BsaXQoL1xcclxcbnxcXG58XFxyLyk7XG4gICAgICBpZiAoc3BsaXQubGVuZ3RoID4gMSkge1xuXG4gICAgICAgIHNwbGl0LmZvckVhY2gocyA9PiB7XG4gICAgICAgICAgcmVzID0gcmVzLmNvbmNhdCh0aGlzLnJlc29sdmVGcm9tKHMsIGNhbGxiYWNrT25Gb3VuZGVkLCBmYWxzZSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoL1xcW1xcW1xcWy4qXFxdXFxdXFxdL2cudGVzdChjaHVuaykpIHtcbiAgICAgIGNodW5rID0gY2h1bmsucmVwbGFjZSgvXlxcW1xcW1xcWy9nLCAnJykucmVwbGFjZSgvXFxdXFxdXFxdJC9nLCAnJyk7XG4gICAgICBwcm9ncmVzcyA9IGNodW5rO1xuICAgIH1cbiAgICBpZiAoIV8uaXNVbmRlZmluZWQocHJvZ3Jlc3MpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBwID0gSlNPTi5wYXJzZShwcm9ncmVzcyk7XG4gICAgICAgIGNvbnN0IHNpbmdsZSA9IF8ubWVyZ2UobmV3IFBST0dSRVNTX0RBVEEoKSwgcCk7XG4gICAgICAgIHJlcyA9IHJlcy5jb25jYXQoW3NpbmdsZV0pO1xuICAgICAgICBpZiAoXy5pc0Z1bmN0aW9uKGNhbGxiYWNrT25Gb3VuZGVkKSkge1xuICAgICAgICAgIGNhbGxiYWNrT25Gb3VuZGVkKHNpbmdsZSk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBIZWxwZXJzLmVycm9yKGVyciwgdHJ1ZSwgdHJ1ZSk7XG4gICAgICAgIEhlbHBlcnMuZXJyb3IoXG4gICAgICAgICAgYFByb2dyZXNzc0JhckRhdGE6IGZhaWwgdG8gcGFyc2UgXCIke3Byb2dyZXNzfVwiYCxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICAgIHRydWUsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBwdWJsaWMgdmFsdWU/OiBudW1iZXI7XG4gIHB1YmxpYyBtc2c/OiBzdHJpbmc7XG5cbiAgcHVibGljIHR5cGU6IENvcmVNb2RlbHMuUFJPR1JFU1NfREFUQV9UWVBFID0gJ2V2ZW50JztcblxuICBwdWJsaWMgZGF0ZT86IERhdGU7XG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtY29yZSBsaWIvcHJvZ3Jlc3MtZGF0YS50cyJdfQ==
|