tnp-helpers 13.1.16 → 13.1.17
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/app.js +3 -3
- package/browser/README.md +24 -24
- package/browser/esm2020/lib/angular.helper.mjs +87 -87
- package/browser/esm2020/lib/base-component.mjs +49 -49
- package/browser/esm2020/lib/base-formly-component.mjs +112 -112
- package/browser/esm2020/lib/condition-wait.mjs +45 -45
- package/browser/esm2020/lib/constants.mjs +7 -7
- package/browser/esm2020/lib/dual-component-ctrl.mjs +118 -118
- package/browser/esm2020/lib/firedev-models.mjs +3 -3
- package/browser/esm2020/lib/helpers-array-obj.mjs +82 -82
- package/browser/esm2020/lib/helpers-browser.mjs +46 -46
- package/browser/esm2020/lib/helpers-environment.mjs +32 -32
- package/browser/esm2020/lib/helpers-numbers.mjs +7 -7
- package/browser/esm2020/lib/helpers-strings-regexes.mjs +50 -50
- package/browser/esm2020/lib/helpers-strings.mjs +252 -252
- package/browser/esm2020/lib/helpers.mjs +283 -283
- package/browser/esm2020/lib/index.mjs +15 -15
- package/browser/esm2020/lib/long-press.directive.mjs +112 -112
- package/browser/esm2020/lib/project.mjs +429 -429
- package/browser/esm2020/lib/resize-service.mjs +21 -21
- package/browser/esm2020/public-api.mjs +1 -1
- package/browser/esm2020/tnp-helpers.mjs +4 -4
- package/browser/fesm2015/tnp-helpers.mjs +1676 -1676
- package/browser/fesm2020/tnp-helpers.mjs +1666 -1666
- package/browser/lib/angular.helper.d.ts +35 -35
- package/browser/lib/base-component.d.ts +16 -16
- package/browser/lib/base-formly-component.d.ts +30 -30
- package/browser/lib/condition-wait.d.ts +7 -7
- package/browser/lib/constants.d.ts +5 -5
- package/browser/lib/dual-component-ctrl.d.ts +24 -24
- package/browser/lib/firedev-models.d.ts +12 -12
- package/browser/lib/helpers-array-obj.d.ts +14 -14
- package/browser/lib/helpers-browser.d.ts +10 -10
- package/browser/lib/helpers-environment.d.ts +4 -4
- package/browser/lib/helpers-numbers.d.ts +2 -2
- package/browser/lib/helpers-strings-regexes.d.ts +27 -27
- package/browser/lib/helpers-strings.d.ts +49 -49
- package/browser/lib/helpers.d.ts +31 -31
- package/browser/lib/index.d.ts +11 -11
- package/browser/lib/long-press.directive.d.ts +24 -24
- package/browser/lib/project.d.ts +94 -94
- package/browser/lib/resize-service.d.ts +8 -8
- package/browser/tnp-helpers.d.ts +4 -4
- package/client/README.md +24 -24
- package/client/esm2020/lib/angular.helper.mjs +87 -87
- package/client/esm2020/lib/base-component.mjs +49 -49
- package/client/esm2020/lib/base-formly-component.mjs +112 -112
- package/client/esm2020/lib/condition-wait.mjs +45 -45
- package/client/esm2020/lib/constants.mjs +7 -7
- package/client/esm2020/lib/dual-component-ctrl.mjs +118 -118
- package/client/esm2020/lib/firedev-models.mjs +3 -3
- package/client/esm2020/lib/helpers-array-obj.mjs +82 -82
- package/client/esm2020/lib/helpers-browser.mjs +46 -46
- package/client/esm2020/lib/helpers-environment.mjs +32 -32
- package/client/esm2020/lib/helpers-numbers.mjs +7 -7
- package/client/esm2020/lib/helpers-strings-regexes.mjs +50 -50
- package/client/esm2020/lib/helpers-strings.mjs +252 -252
- package/client/esm2020/lib/helpers.mjs +283 -283
- package/client/esm2020/lib/index.mjs +15 -15
- package/client/esm2020/lib/long-press.directive.mjs +112 -112
- package/client/esm2020/lib/project.mjs +429 -429
- package/client/esm2020/lib/resize-service.mjs +21 -21
- package/client/esm2020/public-api.mjs +1 -1
- package/client/esm2020/tnp-helpers.mjs +4 -4
- package/client/fesm2015/tnp-helpers.mjs +1676 -1676
- package/client/fesm2020/tnp-helpers.mjs +1666 -1666
- package/client/lib/angular.helper.d.ts +35 -35
- package/client/lib/base-component.d.ts +16 -16
- package/client/lib/base-formly-component.d.ts +30 -30
- package/client/lib/condition-wait.d.ts +7 -7
- package/client/lib/constants.d.ts +5 -5
- package/client/lib/dual-component-ctrl.d.ts +24 -24
- package/client/lib/firedev-models.d.ts +12 -12
- package/client/lib/helpers-array-obj.d.ts +14 -14
- package/client/lib/helpers-browser.d.ts +10 -10
- package/client/lib/helpers-environment.d.ts +4 -4
- package/client/lib/helpers-numbers.d.ts +2 -2
- package/client/lib/helpers-strings-regexes.d.ts +27 -27
- package/client/lib/helpers-strings.d.ts +49 -49
- package/client/lib/helpers.d.ts +31 -31
- package/client/lib/index.d.ts +11 -11
- package/client/lib/long-press.directive.d.ts +24 -24
- package/client/lib/project.d.ts +94 -94
- package/client/lib/resize-service.d.ts +8 -8
- package/client/tnp-helpers.d.ts +4 -4
- package/index.d.ts +1 -1
- package/lib/angular.helper.d.ts +35 -35
- package/lib/angular.helper.js +3 -3
- package/lib/base-component.d.ts +13 -13
- package/lib/base-component.js +3 -3
- package/lib/base-formly-component.d.ts +27 -27
- package/lib/base-formly-component.js +3 -3
- package/lib/condition-wait.d.ts +8 -8
- package/lib/constants.d.ts +6 -6
- package/lib/dual-component-ctrl.d.ts +24 -24
- package/lib/dual-component-ctrl.js +3 -3
- package/lib/firedev-models.d.ts +13 -13
- package/lib/git-project.d.ts +45 -45
- package/lib/helpers-array-obj.d.ts +15 -15
- package/lib/helpers-browser.d.ts +11 -11
- package/lib/helpers-cli-tool.backend.d.ts +55 -55
- package/lib/helpers-cli-tool.backend.js +1 -1
- package/lib/helpers-dependencies.backend.d.ts +11 -11
- package/lib/helpers-environment.d.ts +5 -5
- package/lib/helpers-file-folders.backend.d.ts +83 -83
- package/lib/helpers-file-folders.backend.js +6 -6
- package/lib/helpers-git.backend.d.ts +43 -43
- package/lib/helpers-json5.backend.d.ts +16 -16
- package/lib/helpers-morphi-framework.backend.d.ts +4 -4
- package/lib/helpers-network.backend.d.ts +8 -8
- package/lib/helpers-npm.backend.d.ts +3 -3
- package/lib/helpers-numbers.d.ts +3 -3
- package/lib/helpers-path.backend.d.ts +7 -7
- package/lib/helpers-process.backend.d.ts +54 -54
- package/lib/helpers-strings-regexes.d.ts +28 -28
- package/lib/helpers-strings.d.ts +50 -50
- package/lib/helpers-system-terminal.backend.d.ts +5 -5
- package/lib/helpers-vscode.backend.d.ts +5 -5
- package/lib/helpers.d.ts +72 -72
- package/lib/index.d.ts +12 -12
- package/lib/long-press.directive.d.ts +22 -22
- package/lib/merge-helpers.backend.d.ts +23 -23
- package/lib/project.d.ts +97 -97
- package/lib/resize-service.d.ts +6 -6
- package/lib/ts-code/index.d.ts +1 -1
- package/lib/ts-code/ts-code-extractor.d.ts +14 -14
- package/lib/ts-code/ts-code-modifier.backend.d.ts +12 -12
- package/package.json +3 -3
- package/package.json_devDependencies.json +222 -222
- package/package.json_tnp.json5 +44 -44
- package/tmp-environment.json +12 -12
- package/websql/README.md +24 -24
- package/websql/esm2020/lib/angular.helper.mjs +87 -87
- package/websql/esm2020/lib/base-component.mjs +49 -49
- package/websql/esm2020/lib/base-formly-component.mjs +112 -112
- package/websql/esm2020/lib/condition-wait.mjs +45 -45
- package/websql/esm2020/lib/constants.mjs +7 -7
- package/websql/esm2020/lib/dual-component-ctrl.mjs +118 -118
- package/websql/esm2020/lib/firedev-models.mjs +3 -3
- package/websql/esm2020/lib/helpers-array-obj.mjs +82 -82
- package/websql/esm2020/lib/helpers-browser.mjs +46 -46
- package/websql/esm2020/lib/helpers-environment.mjs +32 -32
- package/websql/esm2020/lib/helpers-numbers.mjs +7 -7
- package/websql/esm2020/lib/helpers-strings-regexes.mjs +50 -50
- package/websql/esm2020/lib/helpers-strings.mjs +252 -252
- package/websql/esm2020/lib/helpers.mjs +283 -283
- package/websql/esm2020/lib/index.mjs +15 -15
- package/websql/esm2020/lib/long-press.directive.mjs +112 -112
- package/websql/esm2020/lib/project.mjs +429 -429
- package/websql/esm2020/lib/resize-service.mjs +21 -21
- package/websql/esm2020/public-api.mjs +1 -1
- package/websql/esm2020/tnp-helpers.mjs +4 -4
- package/websql/fesm2015/tnp-helpers.mjs +1676 -1676
- package/websql/fesm2020/tnp-helpers.mjs +1666 -1666
- package/websql/lib/angular.helper.d.ts +35 -35
- package/websql/lib/base-component.d.ts +16 -16
- package/websql/lib/base-formly-component.d.ts +30 -30
- package/websql/lib/condition-wait.d.ts +7 -7
- package/websql/lib/constants.d.ts +5 -5
- package/websql/lib/dual-component-ctrl.d.ts +24 -24
- package/websql/lib/firedev-models.d.ts +12 -12
- package/websql/lib/helpers-array-obj.d.ts +14 -14
- package/websql/lib/helpers-browser.d.ts +10 -10
- package/websql/lib/helpers-environment.d.ts +4 -4
- package/websql/lib/helpers-numbers.d.ts +2 -2
- package/websql/lib/helpers-strings-regexes.d.ts +27 -27
- package/websql/lib/helpers-strings.d.ts +49 -49
- package/websql/lib/helpers.d.ts +31 -31
- package/websql/lib/index.d.ts +11 -11
- package/websql/lib/long-press.directive.d.ts +24 -24
- package/websql/lib/project.d.ts +94 -94
- package/websql/lib/resize-service.d.ts +8 -8
- package/websql/tnp-helpers.d.ts +4 -4
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
const key = Symbol('[firedev-helpers] helper browser key');
|
|
2
|
-
export class HelpersBrowaser {
|
|
3
|
-
constructor(win) {
|
|
4
|
-
this.init = (() => {
|
|
5
|
-
const win = this.win;
|
|
6
|
-
if (!win[key]) {
|
|
7
|
-
win[key] = new HelpersBrowaser(win);
|
|
8
|
-
}
|
|
9
|
-
HelpersBrowaser.inst = win[key];
|
|
10
|
-
})();
|
|
11
|
-
win.addEventListener("beforeunload", (e) => {
|
|
12
|
-
win.sessionStorage.tabId = this.tabId;
|
|
13
|
-
return null;
|
|
14
|
-
});
|
|
15
|
-
setTimeout(() => {
|
|
16
|
-
if (win.sessionStorage?.tabId) {
|
|
17
|
-
// @ts-ignore
|
|
18
|
-
this.tabId = Number(win.sessionStorage.tabId);
|
|
19
|
-
win.sessionStorage.removeItem("tabId");
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
// @ts-ignore
|
|
23
|
-
this.tabId = Math.floor(Math.random() * 1000000) + (new Date()).getTime();
|
|
24
|
-
}
|
|
25
|
-
HelpersBrowaser.callbacks.forEach((c) => {
|
|
26
|
-
c(this);
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
static onInit(callback) {
|
|
31
|
-
this.callbacks.push(callback);
|
|
32
|
-
}
|
|
33
|
-
get win() {
|
|
34
|
-
let win = window;
|
|
35
|
-
return win;
|
|
36
|
-
}
|
|
37
|
-
get tabIdSessionStorage() {
|
|
38
|
-
return Number(this.win.sessionStorage?.tabId) || 0;
|
|
39
|
-
}
|
|
40
|
-
static get instance() {
|
|
41
|
-
return HelpersBrowaser.inst;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
HelpersBrowaser.callbacks = [];
|
|
45
|
-
;
|
|
46
|
-
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-browser.ts
|
|
1
|
+
const key = Symbol('[firedev-helpers] helper browser key');
|
|
2
|
+
export class HelpersBrowaser {
|
|
3
|
+
constructor(win) {
|
|
4
|
+
this.init = (() => {
|
|
5
|
+
const win = this.win;
|
|
6
|
+
if (!win[key]) {
|
|
7
|
+
win[key] = new HelpersBrowaser(win);
|
|
8
|
+
}
|
|
9
|
+
HelpersBrowaser.inst = win[key];
|
|
10
|
+
})();
|
|
11
|
+
win.addEventListener("beforeunload", (e) => {
|
|
12
|
+
win.sessionStorage.tabId = this.tabId;
|
|
13
|
+
return null;
|
|
14
|
+
});
|
|
15
|
+
setTimeout(() => {
|
|
16
|
+
if (win.sessionStorage?.tabId) {
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
this.tabId = Number(win.sessionStorage.tabId);
|
|
19
|
+
win.sessionStorage.removeItem("tabId");
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
// @ts-ignore
|
|
23
|
+
this.tabId = Math.floor(Math.random() * 1000000) + (new Date()).getTime();
|
|
24
|
+
}
|
|
25
|
+
HelpersBrowaser.callbacks.forEach((c) => {
|
|
26
|
+
c(this);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
static onInit(callback) {
|
|
31
|
+
this.callbacks.push(callback);
|
|
32
|
+
}
|
|
33
|
+
get win() {
|
|
34
|
+
let win = window;
|
|
35
|
+
return win;
|
|
36
|
+
}
|
|
37
|
+
get tabIdSessionStorage() {
|
|
38
|
+
return Number(this.win.sessionStorage?.tabId) || 0;
|
|
39
|
+
}
|
|
40
|
+
static get instance() {
|
|
41
|
+
return HelpersBrowaser.inst;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
HelpersBrowaser.callbacks = [];
|
|
45
|
+
;
|
|
46
|
+
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-browser.ts
|
|
47
47
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1icm93c2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9oZWxwZXJzLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLHNDQUFzQyxDQUFDLENBQUE7QUFFMUQsTUFBTSxPQUFPLGVBQWU7SUE0QjFCLFlBQW9CLEdBQVc7UUFUL0IsU0FBSSxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUVyQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNiLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNyQztZQUNELGVBQWUsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFJSCxHQUFHLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDekMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUVkLElBQUksR0FBRyxDQUFDLGNBQWMsRUFBRSxLQUFLLEVBQUU7Z0JBQzdCLGFBQWE7Z0JBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDOUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDeEM7aUJBQ0k7Z0JBQ0gsYUFBYTtnQkFDYixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQzNFO1lBQ0QsZUFBZSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDdEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ1YsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUdKLENBQUM7SUFqREQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUF1QztRQUNuRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ2pCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELElBQVksbUJBQW1CO1FBQzdCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBeUNELE1BQU0sS0FBSyxRQUFRO1FBQ2pCLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQztJQUM5QixDQUFDOztBQXZEYyx5QkFBUyxHQUFHLEVBQUUsQ0FBQztBQWdFL0IsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywrREFBK0QiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5jb25zdCBrZXkgPSBTeW1ib2woJ1tmaXJlZGV2LWhlbHBlcnNdIGhlbHBlciBicm93c2VyIGtleScpXG5cbmV4cG9ydCBjbGFzcyBIZWxwZXJzQnJvd2FzZXIge1xuXG4gIHByaXZhdGUgc3RhdGljIGNhbGxiYWNrcyA9IFtdO1xuICBzdGF0aWMgb25Jbml0KGNhbGxiYWNrOiAoaW5zOiBIZWxwZXJzQnJvd2FzZXIpID0+IGFueSkge1xuICAgIHRoaXMuY2FsbGJhY2tzLnB1c2goY2FsbGJhY2spO1xuICB9XG5cbiAgZ2V0IHdpbigpIHtcbiAgICBsZXQgd2luID0gd2luZG93O1xuICAgIHJldHVybiB3aW47XG4gIH1cblxuICBwcml2YXRlIGdldCB0YWJJZFNlc3Npb25TdG9yYWdlKCkge1xuICAgIHJldHVybiBOdW1iZXIodGhpcy53aW4uc2Vzc2lvblN0b3JhZ2U/LnRhYklkKSB8fCAwO1xuICB9XG5cbiAgcmVhZG9ubHkgdGFiSWQ6IG51bWJlcjtcblxuICBwcml2YXRlIHN0YXRpYyBpbnN0OiBIZWxwZXJzQnJvd2FzZXI7XG4gIGluaXQgPSAoKCkgPT4ge1xuICAgIGNvbnN0IHdpbiA9IHRoaXMud2luO1xuXG4gICAgaWYgKCF3aW5ba2V5XSkge1xuICAgICAgd2luW2tleV0gPSBuZXcgSGVscGVyc0Jyb3dhc2VyKHdpbik7XG4gICAgfVxuICAgIEhlbHBlcnNCcm93YXNlci5pbnN0ID0gd2luW2tleV07XG4gIH0pKCk7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih3aW46IFdpbmRvdykge1xuXG4gICAgd2luLmFkZEV2ZW50TGlzdGVuZXIoXCJiZWZvcmV1bmxvYWRcIiwgKGUpID0+IHtcbiAgICAgIHdpbi5zZXNzaW9uU3RvcmFnZS50YWJJZCA9IHRoaXMudGFiSWQ7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuXG4gICAgICBpZiAod2luLnNlc3Npb25TdG9yYWdlPy50YWJJZCkge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRoaXMudGFiSWQgPSBOdW1iZXIod2luLnNlc3Npb25TdG9yYWdlLnRhYklkKTtcbiAgICAgICAgd2luLnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oXCJ0YWJJZFwiKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRoaXMudGFiSWQgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwKSArIChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7XG4gICAgICB9XG4gICAgICBIZWxwZXJzQnJvd2FzZXIuY2FsbGJhY2tzLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgYyh0aGlzKTtcbiAgICAgIH0pO1xuICAgIH0pXG5cblxuICB9XG5cblxuICBzdGF0aWMgZ2V0IGluc3RhbmNlKCkge1xuICAgIHJldHVybiBIZWxwZXJzQnJvd2FzZXIuaW5zdDtcbiAgfVxuXG59XG5cblxuXG5cblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2hlbHBlcnMtYnJvd3Nlci50cyJdfQ==
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { _, /* */ /* */ } from 'tnp-core/websql'; /* */
|
|
2
|
-
/* */
|
|
3
|
-
/* */
|
|
4
|
-
/* */
|
|
5
|
-
/* */
|
|
6
|
-
export class HelpersEnvironment {
|
|
7
|
-
environmentName(filename, local_env_name) {
|
|
8
|
-
/* */
|
|
9
|
-
/* */
|
|
10
|
-
/* */
|
|
11
|
-
/* */
|
|
12
|
-
/* */
|
|
13
|
-
/* */
|
|
14
|
-
}
|
|
15
|
-
isValidGitRepuUrl(url) {
|
|
16
|
-
const regex = /^([A-Za-z0-9]+@|http(|s)\:\/\/)([A-Za-z0-9.]+(:\d+)?)(?::|\/)([\d\/\w.-]+?)(\.git)?$/;
|
|
17
|
-
const res = regex.test(url);
|
|
18
|
-
return res;
|
|
19
|
-
}
|
|
20
|
-
isValidIp(ip) {
|
|
21
|
-
if (!_.isString(ip)) {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
ip = ip.trim();
|
|
25
|
-
if (ip === 'localhost') {
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
return /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(ip);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
;
|
|
32
|
-
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-environment.ts
|
|
1
|
+
import { _, /* */ /* */ } from 'tnp-core/websql'; /* */
|
|
2
|
+
/* */
|
|
3
|
+
/* */
|
|
4
|
+
/* */
|
|
5
|
+
/* */
|
|
6
|
+
export class HelpersEnvironment {
|
|
7
|
+
environmentName(filename, local_env_name) {
|
|
8
|
+
/* */
|
|
9
|
+
/* */
|
|
10
|
+
/* */
|
|
11
|
+
/* */
|
|
12
|
+
/* */
|
|
13
|
+
/* */
|
|
14
|
+
}
|
|
15
|
+
isValidGitRepuUrl(url) {
|
|
16
|
+
const regex = /^([A-Za-z0-9]+@|http(|s)\:\/\/)([A-Za-z0-9.]+(:\d+)?)(?::|\/)([\d\/\w.-]+?)(\.git)?$/;
|
|
17
|
+
const res = regex.test(url);
|
|
18
|
+
return res;
|
|
19
|
+
}
|
|
20
|
+
isValidIp(ip) {
|
|
21
|
+
if (!_.isString(ip)) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
ip = ip.trim();
|
|
25
|
+
if (ip === 'localhost') {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
return /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(ip);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
;
|
|
32
|
+
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-environment.ts
|
|
33
33
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1idW5kbGUtd2Vic3FsL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvaGVscGVycy1lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUssTUFBTSxpQkFBaUIsQ0FBQyxDQUFBLEtBQUs7QUFDM0QsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUdMLE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsZUFBZSxDQUFDLFFBQVEsRUFBRSxjQUFjO1FBQzFDLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztJQUVILENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxHQUFXO1FBQzNCLE1BQU0sS0FBSyxHQUFHLHNGQUFzRixDQUFDO1FBQ3JHLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsU0FBUyxDQUFDLEVBQVU7UUFDbEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDbkIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZixJQUFJLEVBQUUsS0FBSyxXQUFXLEVBQUU7WUFDdEIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sa0tBQWtLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3BMLENBQUM7Q0FFRjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUVBQW1FIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgICBfLCAvKiAqLyAvKiAqLyAgICB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7LyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG5cblxuZXhwb3J0IGNsYXNzIEhlbHBlcnNFbnZpcm9ubWVudCB7XG5cbiAgZW52aXJvbm1lbnROYW1lKGZpbGVuYW1lLCBsb2NhbF9lbnZfbmFtZSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG4gIGlzVmFsaWRHaXRSZXB1VXJsKHVybDogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVnZXggPSAvXihbQS1aYS16MC05XStAfGh0dHAofHMpXFw6XFwvXFwvKShbQS1aYS16MC05Ll0rKDpcXGQrKT8pKD86OnxcXC8pKFtcXGRcXC9cXHcuLV0rPykoXFwuZ2l0KT8kLztcbiAgICBjb25zdCByZXMgPSByZWdleC50ZXN0KHVybCk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIGlzVmFsaWRJcChpcDogc3RyaW5nKSB7XG4gICAgaWYgKCFfLmlzU3RyaW5nKGlwKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpcCA9IGlwLnRyaW0oKTtcbiAgICBpZiAoaXAgPT09ICdsb2NhbGhvc3QnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIC9eKDI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcXC4oMjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KVxcLigyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pXFwuKDI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPykkLy50ZXN0KGlwKVxuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9oZWxwZXJzLWVudmlyb25tZW50LnRzIl19
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export class HelpersNumber {
|
|
2
|
-
constructor() {
|
|
3
|
-
this.randomInteger = (max, min) => Math.round(Math.random() * (max - min)) + min;
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
;
|
|
7
|
-
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-numbers.ts
|
|
1
|
+
export class HelpersNumber {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.randomInteger = (max, min) => Math.round(Math.random() * (max - min)) + min;
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
;
|
|
7
|
+
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-numbers.ts
|
|
8
8
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1udW1iZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9oZWxwZXJzLW51bWJlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGFBQWE7SUFBMUI7UUFDRSxrQkFBYSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7SUFHOUUsQ0FBQztDQUFBO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywrREFBK0QiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgSGVscGVyc051bWJlciB7XG4gIHJhbmRvbUludGVnZXIgPSAobWF4LCBtaW4pID0+IE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4pKSArIG1pbjtcblxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvaGVscGVycy1udW1iZXJzLnRzIl19
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
import { _ } from 'tnp-core/websql';
|
|
2
|
-
export class HelpersStringsRegexes {
|
|
3
|
-
escapeStringForRegEx(s) {
|
|
4
|
-
return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
|
|
5
|
-
}
|
|
6
|
-
matchExactOnce(s, regex) {
|
|
7
|
-
if (!_.isString(s) || !_.isRegExp(regex)) {
|
|
8
|
-
return void 0;
|
|
9
|
-
}
|
|
10
|
-
const result = s.match(regex);
|
|
11
|
-
if (_.isNil(result)) {
|
|
12
|
-
return void 0;
|
|
13
|
-
}
|
|
14
|
-
return result.length >= 1 ? _.first(result) : void 0;
|
|
15
|
-
}
|
|
16
|
-
get regex() {
|
|
17
|
-
return {
|
|
18
|
-
/**
|
|
19
|
-
* mathes
|
|
20
|
-
* xxx.xxx.xxx.xxx
|
|
21
|
-
* xxx.xxx.xxx.xxx:port
|
|
22
|
-
* http://xxx.xxx.xxx.xxx:port
|
|
23
|
-
* http://xxx.xxx.xxx.xxx
|
|
24
|
-
* https://xxx.xxx.xxx.xxx:port
|
|
25
|
-
* https://xxx.xxx.xxx.xxx *
|
|
26
|
-
*/
|
|
27
|
-
get forStringWithIpHost() {
|
|
28
|
-
const regex = /(http(s)?\:\/\/)?(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\:[0-9]+)?/;
|
|
29
|
-
return regex;
|
|
30
|
-
},
|
|
31
|
-
/**
|
|
32
|
-
* mathes
|
|
33
|
-
* http://domain.com:port
|
|
34
|
-
* http://domain.com
|
|
35
|
-
* http://domain:port
|
|
36
|
-
* http://domain
|
|
37
|
-
* https://domain.com:port
|
|
38
|
-
* https://domain.com
|
|
39
|
-
* https://domain:port
|
|
40
|
-
* https://domain
|
|
41
|
-
*/
|
|
42
|
-
get forStringWithDomainHost() {
|
|
43
|
-
const regex = /(((http(s)?\:\/\/)?[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,})+(\:[0-9]+)?)|((http(s)?\:\/\/)[a-zA-Z0-9-]{1,61}))/;
|
|
44
|
-
return regex;
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
;
|
|
50
|
-
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-strings-regexes.ts
|
|
1
|
+
import { _ } from 'tnp-core/websql';
|
|
2
|
+
export class HelpersStringsRegexes {
|
|
3
|
+
escapeStringForRegEx(s) {
|
|
4
|
+
return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
|
|
5
|
+
}
|
|
6
|
+
matchExactOnce(s, regex) {
|
|
7
|
+
if (!_.isString(s) || !_.isRegExp(regex)) {
|
|
8
|
+
return void 0;
|
|
9
|
+
}
|
|
10
|
+
const result = s.match(regex);
|
|
11
|
+
if (_.isNil(result)) {
|
|
12
|
+
return void 0;
|
|
13
|
+
}
|
|
14
|
+
return result.length >= 1 ? _.first(result) : void 0;
|
|
15
|
+
}
|
|
16
|
+
get regex() {
|
|
17
|
+
return {
|
|
18
|
+
/**
|
|
19
|
+
* mathes
|
|
20
|
+
* xxx.xxx.xxx.xxx
|
|
21
|
+
* xxx.xxx.xxx.xxx:port
|
|
22
|
+
* http://xxx.xxx.xxx.xxx:port
|
|
23
|
+
* http://xxx.xxx.xxx.xxx
|
|
24
|
+
* https://xxx.xxx.xxx.xxx:port
|
|
25
|
+
* https://xxx.xxx.xxx.xxx *
|
|
26
|
+
*/
|
|
27
|
+
get forStringWithIpHost() {
|
|
28
|
+
const regex = /(http(s)?\:\/\/)?(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\:[0-9]+)?/;
|
|
29
|
+
return regex;
|
|
30
|
+
},
|
|
31
|
+
/**
|
|
32
|
+
* mathes
|
|
33
|
+
* http://domain.com:port
|
|
34
|
+
* http://domain.com
|
|
35
|
+
* http://domain:port
|
|
36
|
+
* http://domain
|
|
37
|
+
* https://domain.com:port
|
|
38
|
+
* https://domain.com
|
|
39
|
+
* https://domain:port
|
|
40
|
+
* https://domain
|
|
41
|
+
*/
|
|
42
|
+
get forStringWithDomainHost() {
|
|
43
|
+
const regex = /(((http(s)?\:\/\/)?[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,})+(\:[0-9]+)?)|((http(s)?\:\/\/)[a-zA-Z0-9-]{1,61}))/;
|
|
44
|
+
return regex;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
;
|
|
50
|
+
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-strings-regexes.ts
|
|
51
51
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1zdHJpbmdzLXJlZ2V4ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2hlbHBlcnMtc3RyaW5ncy1yZWdleGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxNQUFNLE9BQU8scUJBQXFCO0lBSWhDLG9CQUFvQixDQUFDLENBQVM7UUFDNUIsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxjQUFjLENBQUMsQ0FBUyxFQUFFLEtBQWE7UUFDckMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hDLE9BQU8sS0FBSyxDQUFDLENBQUM7U0FDZjtRQUNELE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25CLE9BQU8sS0FBSyxDQUFDLENBQUM7U0FDZjtRQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPO1lBQ0w7Ozs7Ozs7O2FBUUM7WUFDRCxJQUFJLG1CQUFtQjtnQkFDckIsTUFBTSxLQUFLLEdBQUcsNExBQTRMLENBQUM7Z0JBQzNNLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNEOzs7Ozs7Ozs7O1lBVUE7WUFDQSxJQUFJLHVCQUF1QjtnQkFDekIsTUFBTSxLQUFLLEdBQUcsa0lBQWtJLENBQUM7Z0JBQ2pKLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztTQUNGLENBQUE7SUFDSCxDQUFDO0NBQ0Y7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHVFQUF1RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuZXhwb3J0IGNsYXNzIEhlbHBlcnNTdHJpbmdzUmVnZXhlcyB7XG5cblxuXG4gIGVzY2FwZVN0cmluZ0ZvclJlZ0V4KHM6IHN0cmluZykge1xuICAgIHJldHVybiBzLnJlcGxhY2UoL1stXFwvXFxcXF4kKis/LigpfFtcXF17fV0vZywgJ1xcXFwkJicpO1xuICB9XG5cbiAgbWF0Y2hFeGFjdE9uY2Uoczogc3RyaW5nLCByZWdleDogUmVnRXhwKTogc3RyaW5nIHtcbiAgICBpZiAoIV8uaXNTdHJpbmcocykgfHwgIV8uaXNSZWdFeHAocmVnZXgpKSB7XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBzLm1hdGNoKHJlZ2V4KTtcbiAgICBpZiAoXy5pc05pbChyZXN1bHQpKSB7XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0Lmxlbmd0aCA+PSAxID8gXy5maXJzdChyZXN1bHQpIDogdm9pZCAwO1xuICB9XG5cbiAgZ2V0IHJlZ2V4KCkge1xuICAgIHJldHVybiB7XG4gICAgICAvKipcbiAgICAgKiBtYXRoZXNcbiAgICAgKiB4eHgueHh4Lnh4eC54eHhcbiAgICAgKiB4eHgueHh4Lnh4eC54eHg6cG9ydFxuICAgICAqIGh0dHA6Ly94eHgueHh4Lnh4eC54eHg6cG9ydFxuICAgICAqIGh0dHA6Ly94eHgueHh4Lnh4eC54eHhcbiAgICAgKiBodHRwczovL3h4eC54eHgueHh4Lnh4eDpwb3J0XG4gICAgICogaHR0cHM6Ly94eHgueHh4Lnh4eC54eHggICAqXG4gICAgICovXG4gICAgICBnZXQgZm9yU3RyaW5nV2l0aElwSG9zdCgpIHtcbiAgICAgICAgY29uc3QgcmVnZXggPSAvKGh0dHAocyk/XFw6XFwvXFwvKT8oMjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KVxcLigyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pXFwuKDI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcXC4oMjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KShcXDpbMC05XSspPy87XG4gICAgICAgIHJldHVybiByZWdleDtcbiAgICAgIH0sXG4gICAgICAvKipcbiAgICAqIG1hdGhlc1xuICAgICogaHR0cDovL2RvbWFpbi5jb206cG9ydFxuICAgICogaHR0cDovL2RvbWFpbi5jb21cbiAgICAqIGh0dHA6Ly9kb21haW46cG9ydFxuICAgICogaHR0cDovL2RvbWFpblxuICAgICogaHR0cHM6Ly9kb21haW4uY29tOnBvcnRcbiAgICAqIGh0dHBzOi8vZG9tYWluLmNvbVxuICAgICogaHR0cHM6Ly9kb21haW46cG9ydFxuICAgICogaHR0cHM6Ly9kb21haW5cbiAgICAqL1xuICAgICAgZ2V0IGZvclN0cmluZ1dpdGhEb21haW5Ib3N0KCkge1xuICAgICAgICBjb25zdCByZWdleCA9IC8oKChodHRwKHMpP1xcOlxcL1xcLyk/W2EtekEtWjAtOV1bYS16QS1aMC05LV17MSw2MX1bYS16QS1aMC05XSg/OlxcLlthLXpBLVpdezIsfSkrKFxcOlswLTldKyk/KXwoKGh0dHAocyk/XFw6XFwvXFwvKVthLXpBLVowLTktXXsxLDYxfSkpLztcbiAgICAgICAgcmV0dXJuIHJlZ2V4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2hlbHBlcnMtc3RyaW5ncy1yZWdleGVzLnRzIl19
|