tnp-core 19.0.0 → 19.0.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.
Files changed (67) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/fesm2022/tnp-core.mjs +0 -1
  3. package/browser/fesm2022/tnp-core.mjs.map +1 -1
  4. package/cli.backend.js +2 -2
  5. package/client/fesm2022/tnp-core.mjs +0 -1
  6. package/client/fesm2022/tnp-core.mjs.map +1 -1
  7. package/lib/helpers.d.ts +1 -1
  8. package/lib/helpers.js.map +1 -1
  9. package/lib/node-chalk-mock.js +2 -2
  10. package/lib/node-path-mock.js +2 -2
  11. package/package.json +1 -1
  12. package/taon.jsonc +5 -5
  13. package/tmp-environment.json +3 -3
  14. package/websql/fesm2022/tnp-core.mjs +0 -1
  15. package/websql/fesm2022/tnp-core.mjs.map +1 -1
  16. package/browser/esm2022/lib/core-cli.mjs +0 -21
  17. package/browser/esm2022/lib/core-config.mjs +0 -8
  18. package/browser/esm2022/lib/core-imports.mjs +0 -205
  19. package/browser/esm2022/lib/core-models.mjs +0 -176
  20. package/browser/esm2022/lib/framework-name.mjs +0 -11
  21. package/browser/esm2022/lib/helpers-isomorphic.mjs +0 -52
  22. package/browser/esm2022/lib/helpers-messages.mjs +0 -548
  23. package/browser/esm2022/lib/helpers.mjs +0 -2238
  24. package/browser/esm2022/lib/index.mjs +0 -14
  25. package/browser/esm2022/lib/node-chalk-mock.mjs +0 -42
  26. package/browser/esm2022/lib/node-path-mock.mjs +0 -422
  27. package/browser/esm2022/lib/progress-data.mjs +0 -55
  28. package/browser/esm2022/lib/required-global-npm-packages.mjs +0 -79
  29. package/browser/esm2022/lib/utils.mjs +0 -1946
  30. package/browser/esm2022/public-api.mjs +0 -2
  31. package/browser/esm2022/tnp-core.mjs +0 -5
  32. package/client/esm2022/lib/core-cli.mjs +0 -21
  33. package/client/esm2022/lib/core-config.mjs +0 -8
  34. package/client/esm2022/lib/core-imports.mjs +0 -205
  35. package/client/esm2022/lib/core-models.mjs +0 -176
  36. package/client/esm2022/lib/framework-name.mjs +0 -11
  37. package/client/esm2022/lib/helpers-isomorphic.mjs +0 -52
  38. package/client/esm2022/lib/helpers-messages.mjs +0 -548
  39. package/client/esm2022/lib/helpers.mjs +0 -2238
  40. package/client/esm2022/lib/index.mjs +0 -14
  41. package/client/esm2022/lib/node-chalk-mock.mjs +0 -42
  42. package/client/esm2022/lib/node-path-mock.mjs +0 -422
  43. package/client/esm2022/lib/progress-data.mjs +0 -55
  44. package/client/esm2022/lib/required-global-npm-packages.mjs +0 -79
  45. package/client/esm2022/lib/utils.mjs +0 -1946
  46. package/client/esm2022/public-api.mjs +0 -2
  47. package/client/esm2022/tnp-core.mjs +0 -5
  48. package/firedev.jsonc +0 -67
  49. package/lib/required.d.ts +0 -44
  50. package/lib/required.js +0 -76
  51. package/lib/required.js.map +0 -1
  52. package/websql/esm2022/lib/core-cli.mjs +0 -21
  53. package/websql/esm2022/lib/core-config.mjs +0 -8
  54. package/websql/esm2022/lib/core-imports.mjs +0 -205
  55. package/websql/esm2022/lib/core-models.mjs +0 -176
  56. package/websql/esm2022/lib/framework-name.mjs +0 -11
  57. package/websql/esm2022/lib/helpers-isomorphic.mjs +0 -52
  58. package/websql/esm2022/lib/helpers-messages.mjs +0 -548
  59. package/websql/esm2022/lib/helpers.mjs +0 -2234
  60. package/websql/esm2022/lib/index.mjs +0 -14
  61. package/websql/esm2022/lib/node-chalk-mock.mjs +0 -42
  62. package/websql/esm2022/lib/node-path-mock.mjs +0 -422
  63. package/websql/esm2022/lib/progress-data.mjs +0 -55
  64. package/websql/esm2022/lib/required-global-npm-packages.mjs +0 -79
  65. package/websql/esm2022/lib/utils.mjs +0 -1945
  66. package/websql/esm2022/public-api.mjs +0 -2
  67. 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==