isomorphic-region-loader 19.0.3 → 19.0.5
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/browser/README.md +24 -24
- package/browser/fesm2022/isomorphic-region-loader.mjs +24 -15
- package/browser/fesm2022/isomorphic-region-loader.mjs.map +1 -1
- package/browser/package.json +1 -1
- package/client/README.md +24 -24
- package/client/fesm2022/isomorphic-region-loader.mjs +24 -15
- package/client/fesm2022/isomorphic-region-loader.mjs.map +1 -1
- package/client/package.json +1 -1
- package/index.js.map +1 -1
- package/lib/build-info._auto-generated_.d.ts +2 -1
- package/lib/build-info._auto-generated_.js +3 -2
- package/lib/build-info._auto-generated_.js.map +1 -1
- package/lib/index._auto-generated_.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/models.js.map +1 -1
- package/lib/region-remover.js +21 -19
- package/lib/region-remover.js.map +1 -1
- package/lib/region.js +25 -25
- package/lib/region.js.map +1 -1
- package/migrations/index.js.map +1 -1
- package/migrations/migrations_index._auto-generated_.js.map +1 -1
- package/package.json +1 -1
- package/tmp-environment.json +4 -4
- package/websql/README.md +24 -24
- package/websql/fesm2022/isomorphic-region-loader.mjs +24 -15
- package/websql/fesm2022/isomorphic-region-loader.mjs.map +1 -1
- package/websql/package.json +1 -1
- package/browser/esm2022/isomorphic-region-loader.mjs +0 -5
- package/browser/esm2022/lib/index.mjs +0 -17
- package/browser/esm2022/lib/models.mjs +0 -13
- package/browser/esm2022/lib/region-remover.mjs +0 -112
- package/browser/esm2022/lib/region.mjs +0 -151
- package/browser/esm2022/public-api.mjs +0 -2
- package/client/esm2022/isomorphic-region-loader.mjs +0 -5
- package/client/esm2022/lib/index.mjs +0 -17
- package/client/esm2022/lib/models.mjs +0 -13
- package/client/esm2022/lib/region-remover.mjs +0 -112
- package/client/esm2022/lib/region.mjs +0 -151
- package/client/esm2022/public-api.mjs +0 -2
- package/websql/esm2022/isomorphic-region-loader.mjs +0 -5
- package/websql/esm2022/lib/index.mjs +0 -17
- package/websql/esm2022/lib/models.mjs +0 -13
- package/websql/esm2022/lib/region-remover.mjs +0 -112
- package/websql/esm2022/lib/region.mjs +0 -151
- package/websql/esm2022/public-api.mjs +0 -2
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { _, path } from 'tnp-core/browser';
|
|
2
|
-
import { Region } from './region';
|
|
3
|
-
import { REGEX_REGION, TAGS } from 'tnp-config/browser';
|
|
4
|
-
export class RegionRemover {
|
|
5
|
-
static from(realtiveOrAbsFilePAth, content, replacementss, // Models.dev.Replacement[],
|
|
6
|
-
project) {
|
|
7
|
-
let fileExtension = path.extname(realtiveOrAbsFilePAth);
|
|
8
|
-
if (!replacementss) {
|
|
9
|
-
replacementss = [
|
|
10
|
-
[TAGS.BACKEND_FUNC, `return (void 0);`],
|
|
11
|
-
TAGS.BACKEND,
|
|
12
|
-
];
|
|
13
|
-
}
|
|
14
|
-
return new RegionRemover(realtiveOrAbsFilePAth, fileExtension, content, replacementss, project);
|
|
15
|
-
}
|
|
16
|
-
matchStartRegion(l) {
|
|
17
|
-
const res = !_.isUndefined(this.START_REGION.find(r => l.match(r)));
|
|
18
|
-
return res;
|
|
19
|
-
}
|
|
20
|
-
matchEndRegion(l) {
|
|
21
|
-
const res = !_.isUndefined(this.END_REGION.find(r => l.match(r)));
|
|
22
|
-
return res;
|
|
23
|
-
}
|
|
24
|
-
constructor(realtiveOrAbsFilePAth, fileExtension, content, replacementss, // Models.dev.Replacement[],
|
|
25
|
-
project) {
|
|
26
|
-
this.realtiveOrAbsFilePAth = realtiveOrAbsFilePAth;
|
|
27
|
-
this.content = content;
|
|
28
|
-
this.project = project;
|
|
29
|
-
this.START_REGION = [];
|
|
30
|
-
this.END_REGION = [];
|
|
31
|
-
if ((REGEX_REGION.TS_JS_SCSS_SASS.EXT).includes(fileExtension)) {
|
|
32
|
-
this.START_REGION.push(REGEX_REGION.TS_JS_SCSS_SASS.START);
|
|
33
|
-
this.END_REGION.push(REGEX_REGION.TS_JS_SCSS_SASS.END);
|
|
34
|
-
}
|
|
35
|
-
if ((REGEX_REGION.HTML.EXT).includes(fileExtension)) {
|
|
36
|
-
this.START_REGION.push(REGEX_REGION.HTML.START);
|
|
37
|
-
this.END_REGION.push(REGEX_REGION.HTML.END);
|
|
38
|
-
}
|
|
39
|
-
if ((REGEX_REGION.CSS.EXT).includes(fileExtension)) {
|
|
40
|
-
this.START_REGION.push(REGEX_REGION.CSS.START);
|
|
41
|
-
this.END_REGION.push(REGEX_REGION.CSS.END);
|
|
42
|
-
}
|
|
43
|
-
const lines = this.content.split('\n');
|
|
44
|
-
this.root = new Region(this, replacementss, void 0, 0, (lines.length - 1), _.first(lines), _.last(lines), lines);
|
|
45
|
-
this.tree(this.root);
|
|
46
|
-
}
|
|
47
|
-
tree(node) {
|
|
48
|
-
const contentLines = node.contentLines;
|
|
49
|
-
let stack = 0;
|
|
50
|
-
for (let i = 0; i < contentLines.length; i++) {
|
|
51
|
-
const l = contentLines[i];
|
|
52
|
-
if (!node.isRoot) {
|
|
53
|
-
if (i === 0) {
|
|
54
|
-
node.addNormalLine(l, 0);
|
|
55
|
-
continue;
|
|
56
|
-
}
|
|
57
|
-
if (i === (node.contentLines.length - 1)) {
|
|
58
|
-
node.addNormalLine(l, i);
|
|
59
|
-
continue;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
if (node.lastRegionWithoutEnd) {
|
|
63
|
-
if (this.matchStartRegion(l)) {
|
|
64
|
-
node.addNormalLineToLastRegion(l, i);
|
|
65
|
-
stack++;
|
|
66
|
-
}
|
|
67
|
-
else if (this.matchEndRegion(l)) {
|
|
68
|
-
if (stack === 0) {
|
|
69
|
-
node.endLastRegion(i, l);
|
|
70
|
-
}
|
|
71
|
-
else if (stack > 0) {
|
|
72
|
-
node.addNormalLineToLastRegion(l, i);
|
|
73
|
-
stack--;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
if (i === (node.contentLines.length - (node.isRoot ? 1 : 2))) {
|
|
78
|
-
stack = 0;
|
|
79
|
-
node.endLastRegion(i, l);
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
node.addNormalLineToLastRegion(l, i);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
if (this.matchStartRegion(l)) {
|
|
88
|
-
node.addRegion(this, node, i, l);
|
|
89
|
-
}
|
|
90
|
-
else if (this.matchEndRegion(l)) {
|
|
91
|
-
node.addNormalLine(l, i);
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
node.addNormalLine(l, i);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
const children = node.regions;
|
|
99
|
-
if (children.length > 0) {
|
|
100
|
-
for (let index = 0; index < children.length; index++) {
|
|
101
|
-
const child = children[index];
|
|
102
|
-
this.tree(child);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
get output() {
|
|
107
|
-
return this.root.toString();
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
;
|
|
111
|
-
({}); // @--end-of-file-for-module=isomorphic-region-loader lib/region-remover.ts
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9uLXJlbW92ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC9pc29tb3JwaGljLXJlZ2lvbi1sb2FkZXIvcHJvamVjdHMvaXNvbW9ycGhpYy1yZWdpb24tbG9hZGVyL3NyYy9saWIvcmVnaW9uLXJlbW92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUczQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR2xDLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHeEQsTUFBTSxPQUFPLGFBQWE7SUFJakIsTUFBTSxDQUFDLElBQUksQ0FDaEIscUJBQTZCLEVBQzdCLE9BQWUsRUFDZixhQUFtQixFQUFFLDRCQUE0QjtJQUNqRCxPQUFhO1FBR2IsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXhELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNuQixhQUFhLEdBQUc7Z0JBQ2QsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDO2dCQUN2QyxJQUFJLENBQUMsT0FBYzthQUNwQixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxhQUFhLENBQUMscUJBQXFCLEVBQUUsYUFBb0IsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pHLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxDQUFTO1FBQ2hDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFD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IlxuXG5pbXBvcnQgeyBfLCBwYXRoIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5cbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IFJlZ2lvbiB9IGZyb20gJy4vcmVnaW9uJztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IENvcmVNb2RlbHMgfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IFJFR0VYX1JFR0lPTiwgVEFHUyB9IGZyb20gJ3RucC1jb25maWcvYnJvd3Nlcic7XG5cblxuZXhwb3J0IGNsYXNzIFJlZ2lvblJlbW92ZXIge1xuICBwcml2YXRlIHJvb3Q6IFJlZ2lvbjtcbiAgcHJpdmF0ZSByZWFkb25seSBTVEFSVF9SRUdJT046IFJlZ0V4cFtdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgRU5EX1JFR0lPTjogUmVnRXhwW10gPSBbXTtcbiAgcHVibGljIHN0YXRpYyBmcm9tKFxuICAgIHJlYWx0aXZlT3JBYnNGaWxlUEF0aDogc3RyaW5nLFxuICAgIGNvbnRlbnQ6IHN0cmluZyxcbiAgICByZXBsYWNlbWVudHNzPzogYW55LCAvLyBNb2RlbHMuZGV2LlJlcGxhY2VtZW50W10sXG4gICAgcHJvamVjdD86IGFueSwgLy8gUHJvamVjdCxcbiAgKSB7XG5cbiAgICBsZXQgZmlsZUV4dGVuc2lvbiA9IHBhdGguZXh0bmFtZShyZWFsdGl2ZU9yQWJzRmlsZVBBdGgpO1xuXG4gICAgaWYgKCFyZXBsYWNlbWVudHNzKSB7XG4gICAgICByZXBsYWNlbWVudHNzID0gW1xuICAgICAgICBbVEFHUy5CQUNLRU5EX0ZVTkMsIGByZXR1cm4gKHZvaWQgMCk7YF0sXG4gICAgICAgIFRBR1MuQkFDS0VORCBhcyBhbnksXG4gICAgICBdO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFJlZ2lvblJlbW92ZXIocmVhbHRpdmVPckFic0ZpbGVQQXRoLCBmaWxlRXh0ZW5zaW9uIGFzIGFueSwgY29udGVudCwgcmVwbGFjZW1lbnRzcywgcHJvamVjdCk7XG4gIH1cblxuICBwcml2YXRlIG1hdGNoU3RhcnRSZWdpb24obDogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVzID0gIV8uaXNVbmRlZmluZWQodGhpcy5TVEFSVF9SRUdJT04uZmluZChyID0+IGwubWF0Y2gocikpKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByaXZhdGUgbWF0Y2hFbmRSZWdpb24obDogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVzID0gIV8uaXNVbmRlZmluZWQodGhpcy5FTkRfUkVHSU9OLmZpbmQociA9PiBsLm1hdGNoKHIpKSk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVhbHRpdmVPckFic0ZpbGVQQXRoOiBzdHJpbmcsXG4gICAgZmlsZUV4dGVuc2lvbjogQ29yZU1vZGVscy5DdXRhYmxlRmlsZUV4dCxcbiAgICBwcml2YXRlIGNvbnRlbnQ6IHN0cmluZyxcbiAgICByZXBsYWNlbWVudHNzPzogYW55LCAvLyBNb2RlbHMuZGV2LlJlcGxhY2VtZW50W10sXG4gICAgcHVibGljIHJlYWRvbmx5IHByb2plY3Q/OiBhbnksIC8vIFByb2plY3RcblxuICApIHtcbiAgICBpZiAoKFJFR0VYX1JFR0lPTi5UU19KU19TQ1NTX1NBU1MuRVhUKS5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgdGhpcy5TVEFSVF9SRUdJT04ucHVzaChSRUdFWF9SRUdJT04uVFNfSlNfU0NTU19TQVNTLlNUQVJUKTtcbiAgICAgIHRoaXMuRU5EX1JFR0lPTi5wdXNoKFJFR0VYX1JFR0lPTi5UU19KU19TQ1NTX1NBU1MuRU5EKTtcbiAgICB9XG4gICAgaWYgKChSRUdFWF9SRUdJT04uSFRNTC5FWFQpLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICB0aGlzLlNUQVJUX1JFR0lPTi5wdXNoKFJFR0VYX1JFR0lPTi5IVE1MLlNUQVJUKTtcbiAgICAgIHRoaXMuRU5EX1JFR0lPTi5wdXNoKFJFR0VYX1JFR0lPTi5IVE1MLkVORCk7XG4gICAgfVxuICAgIGlmICgoUkVHRVhfUkVHSU9OLkNTUy5FWFQpLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICB0aGlzLlNUQVJUX1JFR0lPTi5wdXNoKFJFR0VYX1JFR0lPTi5DU1MuU1RBUlQpO1xuICAgICAgdGhpcy5FTkRfUkVHSU9OLnB1c2goUkVHRVhfUkVHSU9OLkNTUy5FTkQpO1xuICAgIH1cblxuICAgIGNvbnN0IGxpbmVzID0gdGhpcy5jb250ZW50LnNwbGl0KCdcXG4nKTtcbiAgICB0aGlzLnJvb3QgPSBuZXcgUmVnaW9uKFxuICAgICAgdGhpcyxcbiAgICAgIHJlcGxhY2VtZW50c3MsXG4gICAgICB2b2lkIDAsXG4gICAgICAwLCAobGluZXMubGVuZ3RoIC0gMSksXG4gICAgICBfLmZpcnN0KGxpbmVzKSwgXy5sYXN0KGxpbmVzKSxcbiAgICAgIGxpbmVzKTtcbiAgICB0aGlzLnRyZWUodGhpcy5yb290KTtcbiAgfVxuXG4gIHByaXZhdGUgdHJlZShub2RlOiBSZWdpb24pIHtcbiAgICBjb25zdCBjb250ZW50TGluZXMgPSBub2RlLmNvbnRlbnRMaW5lcztcblxuXG5cblxuXG5cbiAgICBsZXQgc3RhY2sgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29udGVudExpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBsID0gY29udGVudExpbmVzW2ldO1xuICAgICAgaWYgKCFub2RlLmlzUm9vdCkge1xuICAgICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgIG5vZGUuYWRkTm9ybWFsTGluZShsLCAwKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaSA9PT0gKG5vZGUuY29udGVudExpbmVzLmxlbmd0aCAtIDEpKSB7XG4gICAgICAgICAgbm9kZS5hZGROb3JtYWxMaW5lKGwsIGkpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAobm9kZS5sYXN0UmVnaW9uV2l0aG91dEVuZCkge1xuICAgICAgICBpZiAodGhpcy5tYXRjaFN0YXJ0UmVnaW9uKGwpKSB7XG4gICAgICAgICAgbm9kZS5hZGROb3JtYWxMaW5lVG9MYXN0UmVnaW9uKGwsIGkpO1xuICAgICAgICAgIHN0YWNrKys7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tYXRjaEVuZFJlZ2lvbihsKSkge1xuICAgICAgICAgIGlmIChzdGFjayA9PT0gMCkge1xuICAgICAgICAgICAgbm9kZS5lbmRMYXN0UmVnaW9uKGksIGwpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoc3RhY2sgPiAwKSB7XG4gICAgICAgICAgICBub2RlLmFkZE5vcm1hbExpbmVUb0xhc3RSZWdpb24obCwgaSk7XG4gICAgICAgICAgICBzdGFjay0tO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoaSA9PT0gKG5vZGUuY29udGVudExpbmVzLmxlbmd0aCAtIChub2RlLmlzUm9vdCA/IDEgOiAyKSkpIHtcbiAgICAgICAgICAgIHN0YWNrID0gMDtcbiAgICAgICAgICAgIG5vZGUuZW5kTGFzdFJlZ2lvbihpLCBsKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9kZS5hZGROb3JtYWxMaW5lVG9MYXN0UmVnaW9uKGwsIGkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHRoaXMubWF0Y2hTdGFydFJlZ2lvbihsKSkge1xuICAgICAgICAgIG5vZGUuYWRkUmVnaW9uKHRoaXMsIG5vZGUsIGksIGwpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubWF0Y2hFbmRSZWdpb24obCkpIHtcbiAgICAgICAgICBub2RlLmFkZE5vcm1hbExpbmUobCwgaSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbm9kZS5hZGROb3JtYWxMaW5lKGwsIGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICBjb25zdCBjaGlsZHJlbiA9IG5vZGUucmVnaW9ucztcbiAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGNoaWxkcmVuLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICBjb25zdCBjaGlsZCA9IGNoaWxkcmVuW2luZGV4XSBhcyBSZWdpb247XG4gICAgICAgIHRoaXMudHJlZShjaGlsZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IG91dHB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5yb290LnRvU3RyaW5nKCk7XG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9aXNvbW9ycGhpYy1yZWdpb24tbG9hZGVyIGxpYi9yZWdpb24tcmVtb3Zlci50cyJdfQ==
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import { _ } from 'tnp-core/browser';
|
|
2
|
-
import { labelReplacementCode } from './models';
|
|
3
|
-
import { TAGS } from 'tnp-config/browser';
|
|
4
|
-
export class Region {
|
|
5
|
-
constructor(context, replacementss, parent, startIndex, endIndex, lineStart, lineEnd, contentLines = []) {
|
|
6
|
-
this.context = context;
|
|
7
|
-
this.replacementss = replacementss;
|
|
8
|
-
this.parent = parent;
|
|
9
|
-
this.startIndex = startIndex;
|
|
10
|
-
this.endIndex = endIndex;
|
|
11
|
-
this.lineStart = lineStart;
|
|
12
|
-
this.lineEnd = lineEnd;
|
|
13
|
-
this.contentLines = contentLines;
|
|
14
|
-
this.regionsOrStrings = [];
|
|
15
|
-
}
|
|
16
|
-
get hasEnd() {
|
|
17
|
-
return this.endIndex !== void 0;
|
|
18
|
-
}
|
|
19
|
-
get lastRegionWithoutEnd() {
|
|
20
|
-
const last = _.last(this.regionsOrStrings);
|
|
21
|
-
if (last instanceof Region && !last.hasEnd) {
|
|
22
|
-
return last;
|
|
23
|
-
}
|
|
24
|
-
return void 0;
|
|
25
|
-
}
|
|
26
|
-
get regions() {
|
|
27
|
-
return this.regionsOrStrings.filter(f => f instanceof Region);
|
|
28
|
-
}
|
|
29
|
-
setEnd(endIndex, lineEnd) {
|
|
30
|
-
this.endIndex = endIndex;
|
|
31
|
-
this.lineEnd = lineEnd;
|
|
32
|
-
}
|
|
33
|
-
get isRoot() {
|
|
34
|
-
return !this.parent;
|
|
35
|
-
}
|
|
36
|
-
addNormalLine(l, lineIndex) {
|
|
37
|
-
this.contentLines[lineIndex] = void 0;
|
|
38
|
-
this.regionsOrStrings.push(l);
|
|
39
|
-
}
|
|
40
|
-
addNormalLineToLastRegion(l, lineIndex) {
|
|
41
|
-
this.contentLines[lineIndex] = void 0;
|
|
42
|
-
this.lastRegionWithoutEnd.contentLines.push(l);
|
|
43
|
-
}
|
|
44
|
-
addRegion(context, parent, startIndex, lineStart) {
|
|
45
|
-
this.contentLines[startIndex] = void 0;
|
|
46
|
-
const newReg = new Region(context, this.replacementss, parent, startIndex, void 0, lineStart, void 0, [lineStart]);
|
|
47
|
-
this.regionsOrStrings.push(newReg);
|
|
48
|
-
}
|
|
49
|
-
endLastRegion(endIndex, lineEnd) {
|
|
50
|
-
this.contentLines[endIndex] = void 0;
|
|
51
|
-
const regionWithoutEnd = this.regionsOrStrings.find(r => r instanceof Region && !r.hasEnd);
|
|
52
|
-
regionWithoutEnd.contentLines.push(lineEnd);
|
|
53
|
-
regionWithoutEnd.setEnd(endIndex, lineEnd);
|
|
54
|
-
}
|
|
55
|
-
containsTitle(s) {
|
|
56
|
-
const res = (this.titleString.search(s) !== -1);
|
|
57
|
-
return res;
|
|
58
|
-
}
|
|
59
|
-
get titleString() {
|
|
60
|
-
let line = this.lineStart;
|
|
61
|
-
const regionWord = '#region';
|
|
62
|
-
const indexOfRegion = line.search(regionWord);
|
|
63
|
-
line = line.replace(line.slice(0, indexOfRegion + regionWord.length), '');
|
|
64
|
-
return line
|
|
65
|
-
.replace('-->', '')
|
|
66
|
-
.replace('<!--', ''); // TODO not necessery ?
|
|
67
|
-
}
|
|
68
|
-
toString() {
|
|
69
|
-
if (this.tmpOutput !== void 0) {
|
|
70
|
-
return this.tmpOutput;
|
|
71
|
-
}
|
|
72
|
-
let previous = '';
|
|
73
|
-
this.tmpOutput = this.regionsOrStrings
|
|
74
|
-
.map(regionOrString => {
|
|
75
|
-
if (regionOrString instanceof Region) {
|
|
76
|
-
const replacements = this.replacementss;
|
|
77
|
-
for (let index = 0; index < replacements.length; index++) {
|
|
78
|
-
const rep = replacements[index];
|
|
79
|
-
const isArr = _.isArray(replacements[index]);
|
|
80
|
-
const regionTag = (isArr ? _.first(rep) : rep);
|
|
81
|
-
let out = (isArr ? rep[1] : '');
|
|
82
|
-
const verticalLength = regionOrString.toString().split('\n').length - 1;
|
|
83
|
-
if (regionOrString.containsTitle(regionTag)) {
|
|
84
|
-
if (regionTag.toLowerCase() === TAGS.WEBSQL.toLowerCase()) {
|
|
85
|
-
out = `${_.times(verticalLength).map(() => labelReplacementCode.backendCode + '\n').join('')} ${out}`;
|
|
86
|
-
}
|
|
87
|
-
if (regionTag.toLowerCase() === TAGS.BACKEND.toLowerCase()) {
|
|
88
|
-
out = `${_.times(verticalLength).map(() => labelReplacementCode.backendCode + '\n').join('')} ${out}`;
|
|
89
|
-
}
|
|
90
|
-
if (regionTag.toLowerCase() === TAGS.NOT_FOR_NPM.toLowerCase()) {
|
|
91
|
-
out = `${_.times(verticalLength).map(() => labelReplacementCode.notForNpmCode + '\n').join('')} ${out}`;
|
|
92
|
-
}
|
|
93
|
-
if (regionTag.toLowerCase() === TAGS.BROWSER.toLowerCase()) {
|
|
94
|
-
out = `${_.times(verticalLength).map(() => labelReplacementCode.browserCode + '\n').join('')} ${out}`;
|
|
95
|
-
}
|
|
96
|
-
if (regionTag.toLowerCase() === TAGS.WEBSQL_ONLY.toLowerCase()) {
|
|
97
|
-
out = `${_.times(verticalLength).map(() => labelReplacementCode.backendCode + '\n').join('')} ${out}`;
|
|
98
|
-
}
|
|
99
|
-
if (regionTag.toLowerCase() === TAGS.BACKEND_FUNC.toLowerCase()) {
|
|
100
|
-
let spacesPrevious = previous.search(/\S/);
|
|
101
|
-
spacesPrevious = (spacesPrevious < 0 ? 0 : spacesPrevious);
|
|
102
|
-
out = `${_.times(verticalLength).map(() => labelReplacementCode.backendCode + '\n').join('')}`
|
|
103
|
-
+ `${_.times(spacesPrevious).map(n => ' ').join('')} ${out}`;
|
|
104
|
-
}
|
|
105
|
-
if (regionTag.toLowerCase() === TAGS.WEBSQL_FUNC.toLowerCase()) {
|
|
106
|
-
let spacesPrevious = previous.search(/\S/);
|
|
107
|
-
spacesPrevious = (spacesPrevious < 0 ? 0 : spacesPrevious);
|
|
108
|
-
out = `${_.times(verticalLength).map(() => labelReplacementCode.backendCode + '\n').join('')}`
|
|
109
|
-
+ `${_.times(spacesPrevious).map(n => ' ').join('')} ${out}`;
|
|
110
|
-
}
|
|
111
|
-
if (regionTag.toLowerCase() === TAGS.CUT_CODE_IF_TRUE.toLowerCase()
|
|
112
|
-
||
|
|
113
|
-
regionTag.toLowerCase() === TAGS.CUT_CODE_IF_FALSE.toLowerCase()) {
|
|
114
|
-
const fn = out; // as ReturnType<typeof codeCuttFn>;
|
|
115
|
-
let expressionToExecute = regionOrString.titleString;
|
|
116
|
-
expressionToExecute = expressionToExecute.replace(regionTag, '');
|
|
117
|
-
const configForProject = this.project && this.project.env.config;
|
|
118
|
-
const cutCode = fn(expressionToExecute, configForProject, this.realtiveOrAbsFilePAth);
|
|
119
|
-
if (cutCode === null) {
|
|
120
|
-
continue;
|
|
121
|
-
}
|
|
122
|
-
if ((cutCode && (regionTag.toLowerCase() === TAGS.CUT_CODE_IF_TRUE.toLowerCase()))
|
|
123
|
-
||
|
|
124
|
-
(!cutCode && (regionTag.toLowerCase() === TAGS.CUT_CODE_IF_FALSE.toLowerCase()))) {
|
|
125
|
-
out = '';
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
continue;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
regionOrString.tmpOutput = out;
|
|
132
|
-
break;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
const res = regionOrString.toString();
|
|
137
|
-
previous = res;
|
|
138
|
-
return res;
|
|
139
|
-
}).join('\n');
|
|
140
|
-
return this.tmpOutput;
|
|
141
|
-
}
|
|
142
|
-
get project() {
|
|
143
|
-
return this.context.project;
|
|
144
|
-
}
|
|
145
|
-
get realtiveOrAbsFilePAth() {
|
|
146
|
-
return this.context.realtiveOrAbsFilePAth;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
;
|
|
150
|
-
({}); // @--end-of-file-for-module=isomorphic-region-loader lib/region.ts
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvaXNvbW9ycGhpYy1yZWdpb24tbG9hZGVyL3Byb2plY3RzL2lzb21vcnBoaWMtcmVnaW9uLWxvYWRlci9zcmMvbGliL3JlZ2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQVcsQ0FBQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFrQyxvQkFBb0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUdoRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUMsTUFBTSxPQUFPLE1BQU07SUFDakIsWUFDVSxPQUFzQixFQUN2QixhQUE0QixFQUM1QixNQUFjLEVBQ2QsVUFBa0IsRUFDbEIsUUFBZ0IsRUFDaEIsU0FBaUIsRUFDakIsT0FBZSxFQUNmLGVBQXlCLEVBQUU7UUFQMUIsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUN2QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBZ0I1QixxQkFBZ0IsR0FBd0IsRUFBRSxDQUFDO0lBZC9DLENBQUM7SUFFTCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVcsb0JBQW9CO1FBQzdCLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDM0MsSUFBSSxJQUFJLFlBQVksTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0s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QUMsQ0FBQzs0QkFFdEYsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFLENBQUM7Z0NBQ3JCLFNBQVM7NEJBQ1gsQ0FBQzs0QkFDRCxJQUNFLENBQUMsT0FBTyxJQUFJLENBQ1YsU0FBUyxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FDaEUsQ0FBQzs7b0NBRUYsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUNYLFNBQVMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQ2pFLENBQUMsRUFDRixDQUFDO2dDQUNELEdBQUcsR0FBRyxFQUFFLENBQUM7NEJBQ1gsQ0FBQztpQ0FBTSxDQUFDO2dDQUNOLFNBQVM7NEJBQ1gsQ0FBQzt3QkFDSCxDQUFDO3dCQUNELGNBQWMsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO3dCQUMvQixNQUFNO29CQUNSLENBQUM7Z0JBQ0gsQ0FBQztZQUVILENBQUM7WUFDRCxNQUFNLEdBQUcsR0FBRyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEMsUUFBUSxHQUFHLEdBQUcsQ0FBQztZQUNmLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBWSxPQUFPO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVkscUJBQXFCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQztJQUM1QyxDQUFDO0NBRUY7QUFHQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLG1FQUFtRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBIZWxwZXJzLCBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBSZXBsYWNlbWVudCwgUmVwbGFjZW1lbnRTdHJpbmcsIGxhYmVsUmVwbGFjZW1lbnRDb2RlIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5pbXBvcnQgdHlwZSB7IFJlZ2lvblJlbW92ZXIgfSBmcm9tICcuL3JlZ2lvbi1yZW1vdmVyJztcbmltcG9ydCB7IFRBR1MgfSBmcm9tICd0bnAtY29uZmlnL2Jyb3dzZXInO1xuXG5leHBvcnQgY2xhc3MgUmVnaW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb250ZXh0OiBSZWdpb25SZW1vdmVyLFxuICAgIHB1YmxpYyByZXBsYWNlbWVudHNzOiBSZXBsYWNlbWVudFtdLFxuICAgIHB1YmxpYyBwYXJlbnQ6IFJlZ2lvbixcbiAgICBwdWJsaWMgc3RhcnRJbmRleDogbnVtYmVyLFxuICAgIHB1YmxpYyBlbmRJbmRleDogbnVtYmVyLFxuICAgIHB1YmxpYyBsaW5lU3RhcnQ6IHN0cmluZyxcbiAgICBwdWJsaWMgbGluZUVuZDogc3RyaW5nLFxuICAgIHB1YmxpYyBjb250ZW50TGluZXM6IHN0cmluZ1tdID0gW10sXG5cbiAgKSB7IH1cbiAgcHJpdmF0ZSB0bXBPdXRwdXQ6IHN0cmluZztcbiAgcHVibGljIGdldCBoYXNFbmQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5kSW5kZXggIT09IHZvaWQgMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGFzdFJlZ2lvbldpdGhvdXRFbmQoKSB7XG4gICAgY29uc3QgbGFzdCA9IF8ubGFzdCh0aGlzLnJlZ2lvbnNPclN0cmluZ3MpO1xuICAgIGlmIChsYXN0IGluc3RhbmNlb2YgUmVnaW9uICYmICFsYXN0Lmhhc0VuZCkge1xuICAgICAgcmV0dXJuIGxhc3Q7XG4gICAgfVxuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lvbnNPclN0cmluZ3M6IChSZWdpb24gfCBzdHJpbmcpW10gPSBbXTtcblxuICBnZXQgcmVnaW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5yZWdpb25zT3JTdHJpbmdzLmZpbHRlcihmID0+IGYgaW5zdGFuY2VvZiBSZWdpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRFbmQoZW5kSW5kZXg6IG51bWJlciwgbGluZUVuZDogc3RyaW5nKSB7XG4gICAgdGhpcy5lbmRJbmRleCA9IGVuZEluZGV4O1xuICAgIHRoaXMubGluZUVuZCA9IGxpbmVFbmQ7XG4gIH1cblxuICBnZXQgaXNSb290KCkge1xuICAgIHJldHVybiAhdGhpcy5wYXJlbnQ7XG4gIH1cblxuICBhZGROb3JtYWxMaW5lKGw6IHN0cmluZywgbGluZUluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmNvbnRlbnRMaW5lc1tsaW5lSW5kZXhdID0gdm9pZCAwO1xuICAgIHRoaXMucmVnaW9uc09yU3RyaW5ncy5wdXNoKGwpO1xuICB9XG5cbiAgYWRkTm9ybWFsTGluZVRvTGFzdFJlZ2lvbihsOiBzdHJpbmcsIGxpbmVJbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5jb250ZW50TGluZXNbbGluZUluZGV4XSA9IHZvaWQgMDtcbiAgICB0aGlzLmxhc3RSZWdpb25XaXRob3V0RW5kLmNvbnRlbnRMaW5lcy5wdXNoKGwpO1xuICB9XG5cbiAgYWRkUmVnaW9uKGNvbnRleHQ6IFJlZ2lvblJlbW92ZXIsIHBhcmVudDogUmVnaW9uLCBzdGFydEluZGV4OiBudW1iZXIsIGxpbmVTdGFydDogc3RyaW5nKSB7XG4gICAgdGhpcy5jb250ZW50TGluZXNbc3RhcnRJbmRleF0gPSB2b2lkIDA7XG4gICAgY29uc3QgbmV3UmVnID0gbmV3IFJlZ2lvbihcbiAgICAgIGNvbnRleHQsXG4gICAgICB0aGlzLnJlcGxhY2VtZW50c3MsXG4gICAgICBwYXJlbnQsXG4gICAgICBzdGFydEluZGV4LCB2b2lkIDAsXG4gICAgICBsaW5lU3RhcnQsIHZvaWQgMCxcbiAgICAgIFtsaW5lU3RhcnRdXG4gICAgKTtcbiAgICB0aGlzLnJlZ2lvbnNPclN0cmluZ3MucHVzaChuZXdSZWcpO1xuICB9XG5cbiAgZW5kTGFzdFJlZ2lvbihlbmRJbmRleDogbnVtYmVyLCBsaW5lRW5kOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvbnRlbnRMaW5lc1tlbmRJbmRleF0gPSB2b2lkIDA7XG4gICAgY29uc3QgcmVnaW9uV2l0aG91dEVuZCA9IHRoaXMucmVnaW9uc09yU3RyaW5ncy5maW5kKHIgPT4gciBpbnN0YW5jZW9mIFJlZ2lvbiAmJiAhci5oYXNFbmQpIGFzIFJlZ2lvbjtcbiAgICByZWdpb25XaXRob3V0RW5kLmNvbnRlbnRMaW5lcy5wdXNoKGxpbmVFbmQpO1xuICAgIHJlZ2lvbldpdGhvdXRFbmQuc2V0RW5kKGVuZEluZGV4LCBsaW5lRW5kKTtcbiAgfVxuXG4gIHByaXZhdGUgY29udGFpbnNUaXRsZShzOiBSZXBsYWNlbWVudFN0cmluZykge1xuICAgIGNvbnN0IHJlcyA9ICh0aGlzLnRpdGxlU3RyaW5nLnNlYXJjaChzKSAhPT0gLTEpO1xuXG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHRpdGxlU3RyaW5nKCkge1xuICAgIGxldCBsaW5lID0gdGhpcy5saW5lU3RhcnQ7XG4gICAgY29uc3QgcmVnaW9uV29yZCA9ICcjcmVnaW9uJztcbiAgICBjb25zdCBpbmRleE9mUmVnaW9uID0gbGluZS5zZWFyY2gocmVnaW9uV29yZCk7XG4gICAgbGluZSA9IGxpbmUucmVwbGFjZShcbiAgICAgIGxpbmUuc2xpY2UoMCwgaW5kZXhPZlJlZ2lvbiArIHJlZ2lvbldvcmQubGVuZ3RoKSxcbiAgICAgICcnXG4gICAgKTtcbiAgICByZXR1cm4gbGluZVxuICAgICAgLnJlcGxhY2UoJy0tPicsICcnKVxuICAgICAgLnJlcGxhY2UoJzwhLS0nLCAnJyk7IC8vIFRPRE8gbm90IG5lY2Vzc2VyeSA/XG4gIH1cblxuICBwdWJsaWMgdG9TdHJpbmcoKSB7XG4gICAgaWYgKHRoaXMudG1wT3V0cHV0ICE9PSB2b2lkIDApIHtcbiAgICAgIHJldHVybiB0aGlzLnRtcE91dHB1dDtcbiAgICB9XG4gICAgbGV0IHByZXZpb3VzID0gJyc7XG4gICAgdGhpcy50bXBPdXRwdXQgPSB0aGlzLnJlZ2lvbnNPclN0cmluZ3NcbiAgICAgIC5tYXAocmVnaW9uT3JTdHJpbmcgPT4ge1xuICAgICAgICBpZiAocmVnaW9uT3JTdHJpbmcgaW5zdGFuY2VvZiBSZWdpb24pIHtcblxuICAgICAgICAgIGNvbnN0IHJlcGxhY2VtZW50cyA9IHRoaXMucmVwbGFjZW1lbnRzcztcbiAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgcmVwbGFjZW1lbnRzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgY29uc3QgcmVwID0gcmVwbGFjZW1lbnRzW2luZGV4XTtcbiAgICAgICAgICAgIGNvbnN0IGlzQXJyID0gXy5pc0FycmF5KHJlcGxhY2VtZW50c1tpbmRleF0pO1xuXG4gICAgICAgICAgICBjb25zdCByZWdpb25UYWcgPSAoaXNBcnIgPyBfLmZpcnN0KHJlcCBhcyBzdHJpbmdbXSkgOiByZXApIGFzIFJlcGxhY2VtZW50U3RyaW5nO1xuXG4gICAgICAgICAgICBsZXQgb3V0ID0gKGlzQXJyID8gcmVwWzFdIDogJycpIGFzIHN0cmluZztcblxuICAgICAgICAgICAgY29uc3QgdmVydGljYWxMZW5ndGggPSByZWdpb25PclN0cmluZy50b1N0cmluZygpLnNwbGl0KCdcXG4nKS5sZW5ndGggLSAxO1xuXG4gICAgICAgICAgICBpZiAocmVnaW9uT3JTdHJpbmcuY29udGFpbnNUaXRsZShyZWdpb25UYWcpKSB7XG4gICAgICAgICAgICAgIGlmIChyZWdpb25UYWcudG9Mb3dlckNhc2UoKSA9PT0gVEFHUy5XRUJTUUwudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgICAgICAgIG91dCA9IGAke18udGltZXModmVydGljYWxMZW5ndGgpLm1hcCgoKSA9PiBsYWJlbFJlcGxhY2VtZW50Q29kZS5iYWNrZW5kQ29kZSArICdcXG4nKS5qb2luKCcnKX0gICR7b3V0fWA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHJlZ2lvblRhZy50b0xvd2VyQ2FzZSgpID09PSBUQUdTLkJBQ0tFTkQudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgICAgICAgIG91dCA9IGAke18udGltZXModmVydGljYWxMZW5ndGgpLm1hcCgoKSA9PiBsYWJlbFJlcGxhY2VtZW50Q29kZS5iYWNrZW5kQ29kZSArICdcXG4nKS5qb2luKCcnKX0gICR7b3V0fWA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHJlZ2lvblRhZy50b0xvd2VyQ2FzZSgpID09PSBUQUdTLk5PVF9GT1JfTlBNLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgICAgICBvdXQgPSBgJHtfLnRpbWVzKHZlcnRpY2FsTGVuZ3RoKS5tYXAoKCkgPT4gbGFiZWxSZXBsYWNlbWVudENvZGUubm90Rm9yTnBtQ29kZSArICdcXG4nKS5qb2luKCcnKX0gICR7b3V0fWA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHJlZ2lvblRhZy50b0xvd2VyQ2FzZSgpID09PSBUQUdTLkJST1dTRVIudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgICAgICAgIG91dCA9IGAke18udGltZXModmVydGljYWxMZW5ndGgpLm1hcCgoKSA9PiBsYWJlbFJlcGxhY2VtZW50Q29kZS5icm93c2VyQ29kZSArICdcXG4nKS5qb2luKCcnKX0gICR7b3V0fWA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHJlZ2lvblRhZy50b0xvd2VyQ2FzZSgpID09PSBUQUdTLldFQlNRTF9PTkxZLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgICAgICBvdXQgPSBgJHtfLnRpbWVzKHZlcnRpY2FsTGVuZ3RoKS5tYXAoKCkgPT4gbGFiZWxSZXBsYWNlbWVudENvZGUuYmFja2VuZENvZGUgKyAnXFxuJykuam9pbignJyl9ICAke291dH1gO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICByZWdpb25UYWcudG9Mb3dlckNhc2UoKSA9PT0gVEFHUy5CQUNLRU5EX0ZVTkMudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBsZXQgc3BhY2VzUHJldmlvdXMgPSBwcmV2aW91cy5zZWFyY2goL1xcUy8pO1xuICAgICAgICAgICAgICAgIHNwYWNlc1ByZXZpb3VzID0gKHNwYWNlc1ByZXZpb3VzIDwgMCA/IDAgOiBzcGFjZXNQcmV2aW91cyk7XG4gICAgICAgICAgICAgICAgb3V0ID0gYCR7Xy50aW1lcyh2ZXJ0aWNhbExlbmd0aCkubWFwKCgpID0+IGxhYmVsUmVwbGFjZW1lbnRDb2RlLmJhY2tlbmRDb2RlICsgJ1xcbicpLmpvaW4oJycpfWBcbiAgICAgICAgICAgICAgICAgICsgYCR7Xy50aW1lcyhzcGFjZXNQcmV2aW91cykubWFwKG4gPT4gJyAnKS5qb2luKCcnKX0gICR7b3V0fWA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHJlZ2lvblRhZy50b0xvd2VyQ2FzZSgpID09PSBUQUdTLldFQlNRTF9GVU5DLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgbGV0IHNwYWNlc1ByZXZpb3VzID0gcHJldmlvdXMuc2VhcmNoKC9cXFMvKTtcbiAgICAgICAgICAgICAgICBzcGFjZXNQcmV2aW91cyA9IChzcGFjZXNQcmV2aW91cyA8IDAgPyAwIDogc3BhY2VzUHJldmlvdXMpO1xuICAgICAgICAgICAgICAgIG91dCA9IGAke18udGltZXModmVydGljYWxMZW5ndGgpLm1hcCgoKSA9PiBsYWJlbFJlcGxhY2VtZW50Q29kZS5iYWNrZW5kQ29kZSArICdcXG4nKS5qb2luKCcnKX1gXG4gICAgICAgICAgICAgICAgICArIGAke18udGltZXMoc3BhY2VzUHJldmlvdXMpLm1hcChuID0+ICcgJykuam9pbignJyl9ICAke291dH1gO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICByZWdpb25UYWcudG9Mb3dlckNhc2UoKSA9PT0gVEFHUy5DVVRfQ09ERV9JRl9UUlVFLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICB8fFxuICAgICAgICAgICAgICAgIHJlZ2lvblRhZy50b0xvd2VyQ2FzZSgpID09PSBUQUdTLkNVVF9DT0RFX0lGX0ZBTFNFLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm4gPSBvdXQgYXMgYW55OyAvLyBhcyBSZXR1cm5UeXBlPHR5cGVvZiBjb2RlQ3V0dEZuPjtcbiAgICAgICAgICAgICAgICBsZXQgZXhwcmVzc2lvblRvRXhlY3V0ZSA9IHJlZ2lvbk9yU3RyaW5nLnRpdGxlU3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvblRvRXhlY3V0ZSA9IGV4cHJlc3Npb25Ub0V4ZWN1dGUucmVwbGFjZShyZWdpb25UYWcsICcnKTtcblxuXG4gICAgICAgICAgICAgICAgY29uc3QgY29uZmlnRm9yUHJvamVjdCA9IHRoaXMucHJvamVjdCAmJiB0aGlzLnByb2plY3QuZW52LmNvbmZpZztcblxuICAgICAgICAgICAgICAgIGNvbnN0IGN1dENvZGUgPSBmbihleHByZXNzaW9uVG9FeGVjdXRlLCBjb25maWdGb3JQcm9qZWN0LCB0aGlzLnJlYWx0aXZlT3JBYnNGaWxlUEF0aCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoY3V0Q29kZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIChjdXRDb2RlICYmIChcbiAgICAgICAgICAgICAgICAgICAgcmVnaW9uVGFnLnRvTG93ZXJDYXNlKCkgPT09IFRBR1MuQ1VUX0NPREVfSUZfVFJVRS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgfHxcbiAgICAgICAgICAgICAgICAgICghY3V0Q29kZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgIHJlZ2lvblRhZy50b0xvd2VyQ2FzZSgpID09PSBUQUdTLkNVVF9DT0RFX0lGX0ZBTFNFLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICBvdXQgPSAnJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJlZ2lvbk9yU3RyaW5nLnRtcE91dHB1dCA9IG91dDtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzID0gcmVnaW9uT3JTdHJpbmcudG9TdHJpbmcoKTtcbiAgICAgICAgcHJldmlvdXMgPSByZXM7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgICB9KS5qb2luKCdcXG4nKTtcbiAgICByZXR1cm4gdGhpcy50bXBPdXRwdXQ7XG4gIH1cblxuICBwcml2YXRlIGdldCBwcm9qZWN0KCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQucHJvamVjdDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHJlYWx0aXZlT3JBYnNGaWxlUEF0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LnJlYWx0aXZlT3JBYnNGaWxlUEF0aDtcbiAgfVxuXG59XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPWlzb21vcnBoaWMtcmVnaW9uLWxvYWRlciBsaWIvcmVnaW9uLnRzIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './lib';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L2lzb21vcnBoaWMtcmVnaW9uLWxvYWRlci9wcm9qZWN0cy9pc29tb3JwaGljLXJlZ2lvbi1sb2FkZXIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYic7XG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvbW9ycGhpYy1yZWdpb24tbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL2lzb21vcnBoaWMtcmVnaW9uLWxvYWRlci9wcm9qZWN0cy9pc29tb3JwaGljLXJlZ2lvbi1sb2FkZXIvc3JjL2lzb21vcnBoaWMtcmVnaW9uLWxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { RegionRemover } from "./region-remover";
|
|
2
|
-
export * from './models';
|
|
3
|
-
function StripBrowserCode(content) {
|
|
4
|
-
// @ts-ignore
|
|
5
|
-
content = RegionRemover.from(this.resourcePath, content, ['@browser']).output + '\n';
|
|
6
|
-
if (this.cacheable) {
|
|
7
|
-
this.cacheable(true);
|
|
8
|
-
}
|
|
9
|
-
return content;
|
|
10
|
-
}
|
|
11
|
-
export { StripBrowserCode as StripBlockLoader };
|
|
12
|
-
export * from './region-remover';
|
|
13
|
-
export * from './region';
|
|
14
|
-
export default StripBrowserCode;
|
|
15
|
-
;
|
|
16
|
-
({}); // @--end-of-file-for-module=isomorphic-region-loader lib/index.ts
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvaXNvbW9ycGhpYy1yZWdpb24tbG9hZGVyL3Byb2plY3RzL2lzb21vcnBoaWMtcmVnaW9uLWxvYWRlci9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxjQUFjLFVBQVUsQ0FBQztBQUV6QixTQUFTLGdCQUFnQixDQUFDLE9BQU87SUFHL0IsYUFBYTtJQUNiLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBRXJGLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxPQUFPLEVBQUUsZ0JBQWdCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztBQUVoRCxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGVBQWUsZ0JBQWdCLENBQUM7QUFFL0IsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrRUFBa0UiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBSZWdpb25SZW1vdmVyIH0gZnJvbSBcIi4vcmVnaW9uLXJlbW92ZXJcIjtcblxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnO1xuXG5mdW5jdGlvbiBTdHJpcEJyb3dzZXJDb2RlKGNvbnRlbnQpIHtcblxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgY29udGVudCA9IFJlZ2lvblJlbW92ZXIuZnJvbSh0aGlzLnJlc291cmNlUGF0aCwgY29udGVudCwgWydAYnJvd3NlciddKS5vdXRwdXQgKyAnXFxuJztcblxuICBpZiAodGhpcy5jYWNoZWFibGUpIHtcbiAgICB0aGlzLmNhY2hlYWJsZSh0cnVlKTtcbiAgfVxuXG4gIHJldHVybiBjb250ZW50O1xufVxuXG5leHBvcnQgeyBTdHJpcEJyb3dzZXJDb2RlIGFzIFN0cmlwQmxvY2tMb2FkZXIgfTtcblxuZXhwb3J0ICogZnJvbSAnLi9yZWdpb24tcmVtb3Zlcic7XG5leHBvcnQgKiBmcm9tICcuL3JlZ2lvbic7XG5cbmV4cG9ydCBkZWZhdWx0IFN0cmlwQnJvd3NlckNvZGU7XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT1pc29tb3JwaGljLXJlZ2lvbi1sb2FkZXIgbGliL2luZGV4LnRzIl19
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export const labelReplacementCode = {
|
|
2
|
-
browserCode: '/* */', // '/* browser code */',
|
|
3
|
-
backendCode: '/* */', // '/* backend code */',
|
|
4
|
-
notForNpmCode: '/* */', //'/* not for npm lib code */',
|
|
5
|
-
onlyForGithubDocs: '/* */', // '/* only for github docs */',
|
|
6
|
-
flatenImportExportRequred: '/* */', // '/* only for github docs */',
|
|
7
|
-
};
|
|
8
|
-
export const ReplacementStringArr = [
|
|
9
|
-
'@backend', '@backendFunc', '@cutCodeIfTrue', '@cutCodeIfFalse', "@notForNpm"
|
|
10
|
-
];
|
|
11
|
-
;
|
|
12
|
-
({}); // @--end-of-file-for-module=isomorphic-region-loader lib/models.ts
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL2lzb21vcnBoaWMtcmVnaW9uLWxvYWRlci9wcm9qZWN0cy9pc29tb3JwaGljLXJlZ2lvbi1sb2FkZXIvc3JjL2xpYi9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUc7SUFDbEMsV0FBVyxFQUFFLE9BQU8sRUFBQyx3QkFBd0I7SUFDN0MsV0FBVyxFQUFFLE9BQU8sRUFBQyx3QkFBd0I7SUFDN0MsYUFBYSxFQUFFLE9BQU8sRUFBQywrQkFBK0I7SUFDdEQsaUJBQWlCLEVBQUUsT0FBTyxFQUFDLGdDQUFnQztJQUMzRCx5QkFBeUIsRUFBRSxPQUFPLEVBQUMsZ0NBQWdDO0NBQ3BFLENBQUM7QUFHRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRztJQUNsQyxVQUFVLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLFlBQVk7Q0FDdkQsQ0FBQztBQWdCeEIsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtRUFBbUUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5leHBvcnQgY29uc3QgbGFiZWxSZXBsYWNlbWVudENvZGUgPSB7XG4gIGJyb3dzZXJDb2RlOiAnLyogKi8nLC8vICcvKiBicm93c2VyIGNvZGUgKi8nLFxuICBiYWNrZW5kQ29kZTogJy8qICovJywvLyAnLyogYmFja2VuZCBjb2RlICovJyxcbiAgbm90Rm9yTnBtQ29kZTogJy8qICovJywvLycvKiBub3QgZm9yIG5wbSBsaWIgY29kZSAqLycsXG4gIG9ubHlGb3JHaXRodWJEb2NzOiAnLyogKi8nLC8vICcvKiBvbmx5IGZvciBnaXRodWIgZG9jcyAqLycsXG4gIGZsYXRlbkltcG9ydEV4cG9ydFJlcXVyZWQ6ICcvKiAqLycsLy8gJy8qIG9ubHkgZm9yIGdpdGh1YiBkb2NzICovJyxcbn07XG5cbmV4cG9ydCB0eXBlIFJlcGxhY2VtZW50U3RyaW5nID0gJ0BiYWNrZW5kJyB8ICdAYmFja2VuZEZ1bmMnIHwgJ0BjdXRDb2RlSWZUcnVlJyB8ICdAY3V0Q29kZUlmRmFsc2UnIHwgJ0Bub3RGb3JOcG0nO1xuZXhwb3J0IGNvbnN0IFJlcGxhY2VtZW50U3RyaW5nQXJyID0gW1xuICAnQGJhY2tlbmQnLCAnQGJhY2tlbmRGdW5jJywgJ0BjdXRDb2RlSWZUcnVlJywgJ0BjdXRDb2RlSWZGYWxzZScsIFwiQG5vdEZvck5wbVwiXG5dIGFzIFJlcGxhY2VtZW50U3RyaW5nW107XG5cbmV4cG9ydCB0eXBlIFJlcGxhY2VtZW50PEVudkNvbmZpZyA9IGFueT4gPSAoUmVwbGFjZW1lbnRTdHJpbmdcbiAgfCBbUmVwbGFjZW1lbnRTdHJpbmcsIHN0cmluZ11cbiAgfCBbUmVwbGFjZW1lbnRTdHJpbmcsIChleHByZXNzaW9uOiBhbnksIGVudjogRW52Q29uZmlnKSA9PiAoKSA9PiBib29sZWFuXVxuKTtcblxuZXhwb3J0IGludGVyZmFjZSBSZXBsYWNlT3B0aW9uc0V4dGVuZGVkPEVudkNvbmZpZyA9IGFueT4ge1xuXG4gIHJlcGxhY2VtZW50czogUmVwbGFjZW1lbnRbXTtcbiAgZW52PzogRW52Q29uZmlnXG59XG5cblxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT1pc29tb3JwaGljLXJlZ2lvbi1sb2FkZXIgbGliL21vZGVscy50cyJdfQ==
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { _, path } from 'tnp-core/websql';
|
|
2
|
-
import { Region } from './region';
|
|
3
|
-
import { REGEX_REGION, TAGS } from 'tnp-config/websql';
|
|
4
|
-
export class RegionRemover {
|
|
5
|
-
static from(realtiveOrAbsFilePAth, content, replacementss, // Models.dev.Replacement[],
|
|
6
|
-
project) {
|
|
7
|
-
let fileExtension = path.extname(realtiveOrAbsFilePAth);
|
|
8
|
-
if (!replacementss) {
|
|
9
|
-
replacementss = [
|
|
10
|
-
[TAGS.BACKEND_FUNC, `return (void 0);`],
|
|
11
|
-
TAGS.BACKEND,
|
|
12
|
-
];
|
|
13
|
-
}
|
|
14
|
-
return new RegionRemover(realtiveOrAbsFilePAth, fileExtension, content, replacementss, project);
|
|
15
|
-
}
|
|
16
|
-
matchStartRegion(l) {
|
|
17
|
-
const res = !_.isUndefined(this.START_REGION.find(r => l.match(r)));
|
|
18
|
-
return res;
|
|
19
|
-
}
|
|
20
|
-
matchEndRegion(l) {
|
|
21
|
-
const res = !_.isUndefined(this.END_REGION.find(r => l.match(r)));
|
|
22
|
-
return res;
|
|
23
|
-
}
|
|
24
|
-
constructor(realtiveOrAbsFilePAth, fileExtension, content, replacementss, // Models.dev.Replacement[],
|
|
25
|
-
project) {
|
|
26
|
-
this.realtiveOrAbsFilePAth = realtiveOrAbsFilePAth;
|
|
27
|
-
this.content = content;
|
|
28
|
-
this.project = project;
|
|
29
|
-
this.START_REGION = [];
|
|
30
|
-
this.END_REGION = [];
|
|
31
|
-
if ((REGEX_REGION.TS_JS_SCSS_SASS.EXT).includes(fileExtension)) {
|
|
32
|
-
this.START_REGION.push(REGEX_REGION.TS_JS_SCSS_SASS.START);
|
|
33
|
-
this.END_REGION.push(REGEX_REGION.TS_JS_SCSS_SASS.END);
|
|
34
|
-
}
|
|
35
|
-
if ((REGEX_REGION.HTML.EXT).includes(fileExtension)) {
|
|
36
|
-
this.START_REGION.push(REGEX_REGION.HTML.START);
|
|
37
|
-
this.END_REGION.push(REGEX_REGION.HTML.END);
|
|
38
|
-
}
|
|
39
|
-
if ((REGEX_REGION.CSS.EXT).includes(fileExtension)) {
|
|
40
|
-
this.START_REGION.push(REGEX_REGION.CSS.START);
|
|
41
|
-
this.END_REGION.push(REGEX_REGION.CSS.END);
|
|
42
|
-
}
|
|
43
|
-
const lines = this.content.split('\n');
|
|
44
|
-
this.root = new Region(this, replacementss, void 0, 0, (lines.length - 1), _.first(lines), _.last(lines), lines);
|
|
45
|
-
this.tree(this.root);
|
|
46
|
-
}
|
|
47
|
-
tree(node) {
|
|
48
|
-
const contentLines = node.contentLines;
|
|
49
|
-
let stack = 0;
|
|
50
|
-
for (let i = 0; i < contentLines.length; i++) {
|
|
51
|
-
const l = contentLines[i];
|
|
52
|
-
if (!node.isRoot) {
|
|
53
|
-
if (i === 0) {
|
|
54
|
-
node.addNormalLine(l, 0);
|
|
55
|
-
continue;
|
|
56
|
-
}
|
|
57
|
-
if (i === (node.contentLines.length - 1)) {
|
|
58
|
-
node.addNormalLine(l, i);
|
|
59
|
-
continue;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
if (node.lastRegionWithoutEnd) {
|
|
63
|
-
if (this.matchStartRegion(l)) {
|
|
64
|
-
node.addNormalLineToLastRegion(l, i);
|
|
65
|
-
stack++;
|
|
66
|
-
}
|
|
67
|
-
else if (this.matchEndRegion(l)) {
|
|
68
|
-
if (stack === 0) {
|
|
69
|
-
node.endLastRegion(i, l);
|
|
70
|
-
}
|
|
71
|
-
else if (stack > 0) {
|
|
72
|
-
node.addNormalLineToLastRegion(l, i);
|
|
73
|
-
stack--;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
if (i === (node.contentLines.length - (node.isRoot ? 1 : 2))) {
|
|
78
|
-
stack = 0;
|
|
79
|
-
node.endLastRegion(i, l);
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
node.addNormalLineToLastRegion(l, i);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
if (this.matchStartRegion(l)) {
|
|
88
|
-
node.addRegion(this, node, i, l);
|
|
89
|
-
}
|
|
90
|
-
else if (this.matchEndRegion(l)) {
|
|
91
|
-
node.addNormalLine(l, i);
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
node.addNormalLine(l, i);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
const children = node.regions;
|
|
99
|
-
if (children.length > 0) {
|
|
100
|
-
for (let index = 0; index < children.length; index++) {
|
|
101
|
-
const child = children[index];
|
|
102
|
-
this.tree(child);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
get output() {
|
|
107
|
-
return this.root.toString();
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
;
|
|
111
|
-
({}); // @--end-of-file-for-module=isomorphic-region-loader lib/region-remover.ts
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9uLXJlbW92ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvaXNvbW9ycGhpYy1yZWdpb24tbG9hZGVyL3Byb2plY3RzL2lzb21vcnBoaWMtcmVnaW9uLWxvYWRlci9zcmMvbGliL3JlZ2lvbi1yZW1vdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUdsQyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR3ZELE1BQU0sT0FBTyxhQUFhO0lBSWpCLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLHFCQUE2QixFQUM3QixPQUFlLEVBQ2YsYUFBbUIsRUFBRSw0QkFBNEI7SUFDakQsT0FBYTtRQUdiLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUV4RCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkIsYUFBYSxHQUFHO2dCQUNkLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLE9BQWM7YUFDcEIsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksYUFBYSxDQUFDLHFCQUFxQixFQUFFLGFBQW9CLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsQ0FBUztRQUNoQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENB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dGVudCI6WyJcblxuaW1wb3J0IHsgXywgcGF0aCB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5cbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgUmVnaW9uIH0gZnJvbSAnLi9yZWdpb24nO1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgQ29yZU1vZGVscyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBSRUdFWF9SRUdJT04sIFRBR1MgfSBmcm9tICd0bnAtY29uZmlnL3dlYnNxbCc7XG5cblxuZXhwb3J0IGNsYXNzIFJlZ2lvblJlbW92ZXIge1xuICBwcml2YXRlIHJvb3Q6IFJlZ2lvbjtcbiAgcHJpdmF0ZSByZWFkb25seSBTVEFSVF9SRUdJT046IFJlZ0V4cFtdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgRU5EX1JFR0lPTjogUmVnRXhwW10gPSBbXTtcbiAgcHVibGljIHN0YXRpYyBmcm9tKFxuICAgIHJlYWx0aXZlT3JBYnNGaWxlUEF0aDogc3RyaW5nLFxuICAgIGNvbnRlbnQ6IHN0cmluZyxcbiAgICByZXBsYWNlbWVudHNzPzogYW55LCAvLyBNb2RlbHMuZGV2LlJlcGxhY2VtZW50W10sXG4gICAgcHJvamVjdD86IGFueSwgLy8gUHJvamVjdCxcbiAgKSB7XG5cbiAgICBsZXQgZmlsZUV4dGVuc2lvbiA9IHBhdGguZXh0bmFtZShyZWFsdGl2ZU9yQWJzRmlsZVBBdGgpO1xuXG4gICAgaWYgKCFyZXBsYWNlbWVudHNzKSB7XG4gICAgICByZXBsYWNlbWVudHNzID0gW1xuICAgICAgICBbVEFHUy5CQUNLRU5EX0ZVTkMsIGByZXR1cm4gKHZvaWQgMCk7YF0sXG4gICAgICAgIFRBR1MuQkFDS0VORCBhcyBhbnksXG4gICAgICBdO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFJlZ2lvblJlbW92ZXIocmVhbHRpdmVPckFic0ZpbGVQQXRoLCBmaWxlRXh0ZW5zaW9uIGFzIGFueSwgY29udGVudCwgcmVwbGFjZW1lbnRzcywgcHJvamVjdCk7XG4gIH1cblxuICBwcml2YXRlIG1hdGNoU3RhcnRSZWdpb24obDogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVzID0gIV8uaXNVbmRlZmluZWQodGhpcy5TVEFSVF9SRUdJT04uZmluZChyID0+IGwubWF0Y2gocikpKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIHByaXZhdGUgbWF0Y2hFbmRSZWdpb24obDogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVzID0gIV8uaXNVbmRlZmluZWQodGhpcy5FTkRfUkVHSU9OLmZpbmQociA9PiBsLm1hdGNoKHIpKSk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVhbHRpdmVPckFic0ZpbGVQQXRoOiBzdHJpbmcsXG4gICAgZmlsZUV4dGVuc2lvbjogQ29yZU1vZGVscy5DdXRhYmxlRmlsZUV4dCxcbiAgICBwcml2YXRlIGNvbnRlbnQ6IHN0cmluZyxcbiAgICByZXBsYWNlbWVudHNzPzogYW55LCAvLyBNb2RlbHMuZGV2LlJlcGxhY2VtZW50W10sXG4gICAgcHVibGljIHJlYWRvbmx5IHByb2plY3Q/OiBhbnksIC8vIFByb2plY3RcblxuICApIHtcbiAgICBpZiAoKFJFR0VYX1JFR0lPTi5UU19KU19TQ1NTX1NBU1MuRVhUKS5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgdGhpcy5TVEFSVF9SRUdJT04ucHVzaChSRUdFWF9SRUdJT04uVFNfSlNfU0NTU19TQVNTLlNUQVJUKTtcbiAgICAgIHRoaXMuRU5EX1JFR0lPTi5wdXNoKFJFR0VYX1JFR0lPTi5UU19KU19TQ1NTX1NBU1MuRU5EKTtcbiAgICB9XG4gICAgaWYgKChSRUdFWF9SRUdJT04uSFRNTC5FWFQpLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICB0aGlzLlNUQVJUX1JFR0lPTi5wdXNoKFJFR0VYX1JFR0lPTi5IVE1MLlNUQVJUKTtcbiAgICAgIHRoaXMuRU5EX1JFR0lPTi5wdXNoKFJFR0VYX1JFR0lPTi5IVE1MLkVORCk7XG4gICAgfVxuICAgIGlmICgoUkVHRVhfUkVHSU9OLkNTUy5FWFQpLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICB0aGlzLlNUQVJUX1JFR0lPTi5wdXNoKFJFR0VYX1JFR0lPTi5DU1MuU1RBUlQpO1xuICAgICAgdGhpcy5FTkRfUkVHSU9OLnB1c2goUkVHRVhfUkVHSU9OLkNTUy5FTkQpO1xuICAgIH1cblxuICAgIGNvbnN0IGxpbmVzID0gdGhpcy5jb250ZW50LnNwbGl0KCdcXG4nKTtcbiAgICB0aGlzLnJvb3QgPSBuZXcgUmVnaW9uKFxuICAgICAgdGhpcyxcbiAgICAgIHJlcGxhY2VtZW50c3MsXG4gICAgICB2b2lkIDAsXG4gICAgICAwLCAobGluZXMubGVuZ3RoIC0gMSksXG4gICAgICBfLmZpcnN0KGxpbmVzKSwgXy5sYXN0KGxpbmVzKSxcbiAgICAgIGxpbmVzKTtcbiAgICB0aGlzLnRyZWUodGhpcy5yb290KTtcbiAgfVxuXG4gIHByaXZhdGUgdHJlZShub2RlOiBSZWdpb24pIHtcbiAgICBjb25zdCBjb250ZW50TGluZXMgPSBub2RlLmNvbnRlbnRMaW5lcztcblxuXG5cblxuXG5cbiAgICBsZXQgc3RhY2sgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29udGVudExpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBsID0gY29udGVudExpbmVzW2ldO1xuICAgICAgaWYgKCFub2RlLmlzUm9vdCkge1xuICAgICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgIG5vZGUuYWRkTm9ybWFsTGluZShsLCAwKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaSA9PT0gKG5vZGUuY29udGVudExpbmVzLmxlbmd0aCAtIDEpKSB7XG4gICAgICAgICAgbm9kZS5hZGROb3JtYWxMaW5lKGwsIGkpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAobm9kZS5sYXN0UmVnaW9uV2l0aG91dEVuZCkge1xuICAgICAgICBpZiAodGhpcy5tYXRjaFN0YXJ0UmVnaW9uKGwpKSB7XG4gICAgICAgICAgbm9kZS5hZGROb3JtYWxMaW5lVG9MYXN0UmVnaW9uKGwsIGkpO1xuICAgICAgICAgIHN0YWNrKys7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tYXRjaEVuZFJlZ2lvbihsKSkge1xuICAgICAgICAgIGlmIChzdGFjayA9PT0gMCkge1xuICAgICAgICAgICAgbm9kZS5lbmRMYXN0UmVnaW9uKGksIGwpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoc3RhY2sgPiAwKSB7XG4gICAgICAgICAgICBub2RlLmFkZE5vcm1hbExpbmVUb0xhc3RSZWdpb24obCwgaSk7XG4gICAgICAgICAgICBzdGFjay0tO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoaSA9PT0gKG5vZGUuY29udGVudExpbmVzLmxlbmd0aCAtIChub2RlLmlzUm9vdCA/IDEgOiAyKSkpIHtcbiAgICAgICAgICAgIHN0YWNrID0gMDtcbiAgICAgICAgICAgIG5vZGUuZW5kTGFzdFJlZ2lvbihpLCBsKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9kZS5hZGROb3JtYWxMaW5lVG9MYXN0UmVnaW9uKGwsIGkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHRoaXMubWF0Y2hTdGFydFJlZ2lvbihsKSkge1xuICAgICAgICAgIG5vZGUuYWRkUmVnaW9uKHRoaXMsIG5vZGUsIGksIGwpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubWF0Y2hFbmRSZWdpb24obCkpIHtcbiAgICAgICAgICBub2RlLmFkZE5vcm1hbExpbmUobCwgaSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbm9kZS5hZGROb3JtYWxMaW5lKGwsIGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICBjb25zdCBjaGlsZHJlbiA9IG5vZGUucmVnaW9ucztcbiAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGNoaWxkcmVuLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICBjb25zdCBjaGlsZCA9IGNoaWxkcmVuW2luZGV4XSBhcyBSZWdpb247XG4gICAgICAgIHRoaXMudHJlZShjaGlsZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IG91dHB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5yb290LnRvU3RyaW5nKCk7XG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9aXNvbW9ycGhpYy1yZWdpb24tbG9hZGVyIGxpYi9yZWdpb24tcmVtb3Zlci50cyJdfQ==
|