occam-custom-grammars 6.1.21 → 6.1.22
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/lib/customGrammar/combined.js +41 -65
- package/lib/example/view.js +1 -1
- package/lib/utilities/bnf.js +31 -0
- package/lib/utilities/validate.js +1 -1
- package/package.json +3 -3
- package/src/customGrammar/combined.js +53 -91
- package/src/example/view.js +9 -9
- package/src/utilities/bnf.js +33 -0
- package/src/utilities/validate.js +1 -1
|
@@ -9,12 +9,11 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
const _necessary = require("necessary");
|
|
12
|
-
const _occamlexers = require("occam-lexers");
|
|
13
|
-
const _occamparsers = require("occam-parsers");
|
|
14
12
|
const _occamgrammarutilities = require("occam-grammar-utilities");
|
|
15
13
|
const _default = /*#__PURE__*/ _interop_require_default(require("../customGrammar/default"));
|
|
16
|
-
const
|
|
14
|
+
const _bnf = require("../utilities/bnf");
|
|
17
15
|
const _constants = require("../constants");
|
|
16
|
+
const _vocabulary = require("../utilities/vocabulary");
|
|
18
17
|
const _validate = require("../utilities/validate");
|
|
19
18
|
const _ruleNames = require("../ruleNames");
|
|
20
19
|
const _vocabularyNames = require("../vocabularyNames");
|
|
@@ -23,7 +22,7 @@ function _interop_require_default(obj) {
|
|
|
23
22
|
default: obj
|
|
24
23
|
};
|
|
25
24
|
}
|
|
26
|
-
const {
|
|
25
|
+
const { push, tail, first } = _necessary.arrayUtilities;
|
|
27
26
|
class CombinedCustomGrammar {
|
|
28
27
|
constructor(rules, entries){
|
|
29
28
|
this.rules = rules;
|
|
@@ -47,9 +46,9 @@ class CombinedCustomGrammar {
|
|
|
47
46
|
let customGrammars = [];
|
|
48
47
|
if (includeDefault) {
|
|
49
48
|
customGrammars = [
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
];
|
|
49
|
+
...customGrammars,
|
|
50
|
+
_default.default
|
|
51
|
+
];
|
|
53
52
|
}
|
|
54
53
|
const rules = rulesFromCustomGrammars(customGrammars), entries = entriesFromCustomGrammars(customGrammars), combinedCustomGrammar = new CombinedCustomGrammar(rules, entries);
|
|
55
54
|
return combinedCustomGrammar;
|
|
@@ -65,27 +64,6 @@ class CombinedCustomGrammar {
|
|
|
65
64
|
return combinedCustomGrammar;
|
|
66
65
|
}
|
|
67
66
|
}
|
|
68
|
-
function rulesFromCustomGrammars(customGrammars) {
|
|
69
|
-
const ruleNames = [
|
|
70
|
-
_ruleNames.TERM_RULE_NAME,
|
|
71
|
-
_ruleNames.STATEMENT_RULE_NAME
|
|
72
|
-
], bnfs = ruleNames.map((ruleName)=>{
|
|
73
|
-
const bnf = bnfFromCustomGrammars(customGrammars, ruleName);
|
|
74
|
-
return bnf;
|
|
75
|
-
}), bnf = bnfs.join(_constants.VERTICAL_SPACE), rules = rulesFromBNF(bnf);
|
|
76
|
-
combineRules(rules);
|
|
77
|
-
const opacity = opaque; ///
|
|
78
|
-
ruleNames.forEach((ruleName)=>{
|
|
79
|
-
const rule = rules.find((rule)=>{
|
|
80
|
-
const name = rule.getName();
|
|
81
|
-
if (name === ruleName) {
|
|
82
|
-
return true;
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
rule.setOpacity(opacity);
|
|
86
|
-
});
|
|
87
|
-
return rules;
|
|
88
|
-
}
|
|
89
67
|
function entriesFromCustomGrammars(customGrammars) {
|
|
90
68
|
const vocabularyNames = [
|
|
91
69
|
_vocabularyNames.TYPE_VOCABULARY_NAME,
|
|
@@ -96,52 +74,50 @@ function entriesFromCustomGrammars(customGrammars) {
|
|
|
96
74
|
});
|
|
97
75
|
return entries;
|
|
98
76
|
}
|
|
77
|
+
function rulesFromCustomGrammars(customGrammars) {
|
|
78
|
+
const ruleNames = [
|
|
79
|
+
_ruleNames.TERM_RULE_NAME,
|
|
80
|
+
_ruleNames.STATEMENT_RULE_NAME
|
|
81
|
+
], rules = ruleNames.map((ruleName)=>{
|
|
82
|
+
const rule = ruleFromCustomGrammars(customGrammars, ruleName);
|
|
83
|
+
return rule;
|
|
84
|
+
});
|
|
85
|
+
return rules;
|
|
86
|
+
}
|
|
99
87
|
function entryFromCustomGrammars(customGrammars, vocabularyName) {
|
|
100
88
|
const expressions = [];
|
|
101
|
-
|
|
102
|
-
const vocabulary = customGrammar.getVocabulary(vocabularyName)
|
|
103
|
-
|
|
104
|
-
(0, _validate.validateVocabulary)(vocabulary);
|
|
105
|
-
}
|
|
89
|
+
customGrammars.forEach((customGrammar)=>{
|
|
90
|
+
const vocabulary = customGrammar.getVocabulary(vocabularyName);
|
|
91
|
+
(0, _validate.validateVocabulary)(vocabulary);
|
|
106
92
|
(0, _vocabulary.expressionsFromVocabulary)(vocabulary, expressions);
|
|
107
93
|
});
|
|
94
|
+
const entry = combineExpressions(expressions, vocabularyName);
|
|
95
|
+
return entry;
|
|
96
|
+
}
|
|
97
|
+
function ruleFromCustomGrammars(customGrammars, ruleName) {
|
|
98
|
+
const rules = [];
|
|
99
|
+
customGrammars.forEach((customGrammar)=>{
|
|
100
|
+
const bnf = customGrammar.getBNF(ruleName);
|
|
101
|
+
(0, _validate.validateBNF)(bnf, ruleName);
|
|
102
|
+
(0, _bnf.ruleFromBNF)(bnf, rules);
|
|
103
|
+
});
|
|
104
|
+
const rule = combineRules(rules);
|
|
105
|
+
return rule;
|
|
106
|
+
}
|
|
107
|
+
function combineExpressions(expressions, vocabularyName) {
|
|
108
108
|
const pattern = expressions.join(_constants.VERTICAL_BAR), entryName = vocabularyName, entryValue = `^(?:${pattern})`, entry = {
|
|
109
109
|
[entryName]: entryValue
|
|
110
110
|
};
|
|
111
111
|
return entry;
|
|
112
112
|
}
|
|
113
|
-
function bnfFromCustomGrammars(customGrammars, ruleName) {
|
|
114
|
-
const bnfs = [];
|
|
115
|
-
backwardsForEach(customGrammars, (customGrammar)=>{
|
|
116
|
-
const bnf = customGrammar.getBNF(ruleName), customGrammarDefaultCustomGrammar = customGrammar.isDefaultCustomGrammar();
|
|
117
|
-
if (!customGrammarDefaultCustomGrammar) {
|
|
118
|
-
(0, _validate.validateBNF)(bnf, ruleName);
|
|
119
|
-
}
|
|
120
|
-
bnfs.push(bnf);
|
|
121
|
-
});
|
|
122
|
-
const bnf = bnfs.join(_constants.VERTICAL_SPACE);
|
|
123
|
-
return bnf;
|
|
124
|
-
}
|
|
125
113
|
function combineRules(rules) {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
const
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
const innerRuleDefinitions = innerRule.getDefinitions(), outerRuleDefinitions = outerRule.getDefinitions();
|
|
134
|
-
unshift(outerRuleDefinitions, innerRuleDefinitions);
|
|
135
|
-
const start = innerIndex, deleteCount = 1;
|
|
136
|
-
rules.splice(start, deleteCount);
|
|
137
|
-
length = rules.length;
|
|
138
|
-
} else {
|
|
139
|
-
innerIndex++;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
outerIndex++;
|
|
143
|
-
length = rules.length;
|
|
144
|
-
}
|
|
114
|
+
const firstRule = first(rules), rulesTail = tail(rules), definitions = firstRule.getDefinitions(), remainingRules = rulesTail; ///
|
|
115
|
+
remainingRules.forEach((remainingRule)=>{
|
|
116
|
+
const remainingRuleDefinitions = remainingRule.getDefinitions();
|
|
117
|
+
push(definitions, remainingRuleDefinitions);
|
|
118
|
+
});
|
|
119
|
+
const rule = firstRule; ///
|
|
120
|
+
return rule;
|
|
145
121
|
}
|
|
146
122
|
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jdXN0b21HcmFtbWFyL2NvbWJpbmVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcbmltcG9ydCB7IHNwZWNpYWxTeW1ib2xzIH0gZnJvbSBcIm9jY2FtLWxleGVyc1wiO1xuaW1wb3J0IHsgcGFyc2VyVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLXBhcnNlcnNcIjtcbmltcG9ydCB7IGVsaW1pbmF0ZUxlZnRSZWN1cnNpb24gfSBmcm9tIFwib2NjYW0tZ3JhbW1hci11dGlsaXRpZXNcIjtcblxuaW1wb3J0IGRlZmF1bHRDdXN0b21HcmFtbWFyIGZyb20gXCIuLi9jdXN0b21HcmFtbWFyL2RlZmF1bHRcIjtcblxuaW1wb3J0IHsgZXhwcmVzc2lvbnNGcm9tVm9jYWJ1bGFyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvdm9jYWJ1bGFyeVwiO1xuaW1wb3J0IHsgVkVSVElDQUxfQkFSLCBWRVJUSUNBTF9TUEFDRSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHZhbGlkYXRlQk5GLCB2YWxpZGF0ZVZvY2FidWxhcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbGlkYXRlXCI7XG5pbXBvcnQgeyBURVJNX1JVTEVfTkFNRSwgU1RBVEVNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCIuLi9ydWxlTmFtZXNcIjtcbmltcG9ydCB7IFRZUEVfVk9DQUJVTEFSWV9OQU1FLCBTWU1CT0xfVk9DQUJVTEFSWV9OQU1FIH0gZnJvbSBcIi4uL3ZvY2FidWxhcnlOYW1lc1wiO1xuXG5jb25zdCB7IG9wYXF1ZSAgfSA9IHNwZWNpYWxTeW1ib2xzLFxuICAgICAgeyBydWxlc0Zyb21CTkYgfSA9IHBhcnNlclV0aWxpdGllcyxcbiAgICAgIHsgdW5zaGlmdCwgZm9yd2FyZHNGb3JFYWNoLCBiYWNrd2FyZHNGb3JFYWNoIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29tYmluZWRDdXN0b21HcmFtbWFyIHtcbiAgY29uc3RydWN0b3IocnVsZXMsIGVudHJpZXMpIHtcbiAgICB0aGlzLnJ1bGVzID0gcnVsZXM7XG4gICAgdGhpcy5lbnRyaWVzID0gZW50cmllcztcbiAgfVxuICBcbiAgZ2V0UnVsZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucnVsZXM7XG4gIH1cblxuICBnZXRFbnRyaWVzKCkge1xuICAgIHJldHVybiB0aGlzLmVudHJpZXM7XG4gIH1cblxuICBwb3N0UHJvY2VzcyhydWxlcykge1xuICAgIHJ1bGVzID0gWyAvLy9cbiAgICAgIC4uLnJ1bGVzLFxuICAgICAgLi4udGhpcy5ydWxlc1xuICAgIF07XG5cbiAgICBydWxlcyA9IGVsaW1pbmF0ZUxlZnRSZWN1cnNpb24ocnVsZXMpOyAgLy8vXG5cbiAgICByZXR1cm4gcnVsZXM7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoaW5jbHVkZURlZmF1bHQgPSB0cnVlKSB7XG4gICAgbGV0IGN1c3RvbUdyYW1tYXJzID0gW107XG5cbiAgICBpZiAoaW5jbHVkZURlZmF1bHQpIHtcbiAgICAgIGN1c3RvbUdyYW1tYXJzID0gWyBkZWZhdWx0Q3VzdG9tR3JhbW1hciwgLi4uY3VzdG9tR3JhbW1hcnMgXTsgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgcnVsZXMgPSBydWxlc0Zyb21DdXN0b21HcmFtbWFycyhjdXN0b21HcmFtbWFycyksXG4gICAgICAgICAgZW50cmllcyA9IGVudHJpZXNGcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMpLFxuICAgICAgICAgIGNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IG5ldyBDb21iaW5lZEN1c3RvbUdyYW1tYXIocnVsZXMsIGVudHJpZXMpO1xuXG4gICAgcmV0dXJuIGNvbWJpbmVkQ3VzdG9tR3JhbW1hcjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMsIGluY2x1ZGVEZWZhdWx0ID0gdHJ1ZSkge1xuICAgIGlmIChpbmNsdWRlRGVmYXVsdCkge1xuICAgICAgY3VzdG9tR3JhbW1hcnMgPSBbICAvLy9cbiAgICAgICAgLi4uY3VzdG9tR3JhbW1hcnMsXG4gICAgICAgIGRlZmF1bHRDdXN0b21HcmFtbWFyXG4gICAgICBdO1xuICAgIH1cblxuICAgIGNvbnN0IHJ1bGVzID0gcnVsZXNGcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMpLFxuICAgICAgICAgIGVudHJpZXMgPSBlbnRyaWVzRnJvbUN1c3RvbUdyYW1tYXJzKGN1c3RvbUdyYW1tYXJzKSxcbiAgICAgICAgICBjb21iaW5lZEN1c3RvbUdyYW1tYXIgPSBuZXcgQ29tYmluZWRDdXN0b21HcmFtbWFyKHJ1bGVzLCBlbnRyaWVzKTtcbiAgICBcbiAgICByZXR1cm4gY29tYmluZWRDdXN0b21HcmFtbWFyO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJ1bGVzRnJvbUN1c3RvbUdyYW1tYXJzKGN1c3RvbUdyYW1tYXJzKSB7XG4gIGNvbnN0IHJ1bGVOYW1lcyA9IFtcbiAgICAgICAgICBURVJNX1JVTEVfTkFNRSxcbiAgICAgICAgICBTVEFURU1FTlRfUlVMRV9OQU1FLFxuICAgICAgICBdLFxuICAgICAgICBibmZzID0gcnVsZU5hbWVzLm1hcCgocnVsZU5hbWUpID0+IHtcbiAgICAgICAgICBjb25zdCBibmYgPSBibmZGcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMsIHJ1bGVOYW1lKTtcblxuICAgICAgICAgIHJldHVybiBibmY7XG4gICAgICAgIH0pLFxuICAgICAgICBibmYgPSBibmZzLmpvaW4oVkVSVElDQUxfU1BBQ0UpLFxuICAgICAgICBydWxlcyA9IHJ1bGVzRnJvbUJORihibmYpO1xuXG4gIGNvbWJpbmVSdWxlcyhydWxlcyk7XG5cbiAgY29uc3Qgb3BhY2l0eSA9IG9wYXF1ZTsgLy8vXG5cbiAgcnVsZU5hbWVzLmZvckVhY2goKHJ1bGVOYW1lKSA9PiB7XG4gICAgY29uc3QgcnVsZSA9IHJ1bGVzLmZpbmQoKHJ1bGUpID0+IHtcbiAgICAgIGNvbnN0IG5hbWUgPSBydWxlLmdldE5hbWUoKTtcblxuICAgICAgaWYgKG5hbWUgPT09IHJ1bGVOYW1lKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcnVsZS5zZXRPcGFjaXR5KG9wYWNpdHkpO1xuICB9KTtcblxuICByZXR1cm4gcnVsZXM7XG59XG5cbmZ1bmN0aW9uIGVudHJpZXNGcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMpIHtcbiAgY29uc3Qgdm9jYWJ1bGFyeU5hbWVzID0gW1xuICAgICAgICAgIFRZUEVfVk9DQUJVTEFSWV9OQU1FLFxuICAgICAgICAgIFNZTUJPTF9WT0NBQlVMQVJZX05BTUVcbiAgICAgICAgXSxcbiAgICAgICAgZW50cmllcyA9IHZvY2FidWxhcnlOYW1lcy5tYXAoKHZvY2FidWxhcnlOYW1lKSA9PiB7XG4gICAgICAgICAgY29uc3QgZW50cnkgPSBlbnRyeUZyb21DdXN0b21HcmFtbWFycyhjdXN0b21HcmFtbWFycywgdm9jYWJ1bGFyeU5hbWUpO1xuXG4gICAgICAgICAgcmV0dXJuIGVudHJ5O1xuICAgICAgICB9KTtcblxuICByZXR1cm4gZW50cmllcztcbn1cblxuZnVuY3Rpb24gZW50cnlGcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMsIHZvY2FidWxhcnlOYW1lKSB7XG4gIGNvbnN0IGV4cHJlc3Npb25zID0gW107XG5cbiAgZm9yd2FyZHNGb3JFYWNoKGN1c3RvbUdyYW1tYXJzLCAoY3VzdG9tR3JhbW1hcikgPT4ge1xuICAgIGNvbnN0IHZvY2FidWxhcnkgPSBjdXN0b21HcmFtbWFyLmdldFZvY2FidWxhcnkodm9jYWJ1bGFyeU5hbWUpLFxuICAgICAgICAgIGN1c3RvbUdyYW1tYXJEZWZhdWx0Q3VzdG9tR3JhbW1hciA9IGN1c3RvbUdyYW1tYXIuaXNEZWZhdWx0Q3VzdG9tR3JhbW1hcigpO1xuXG4gICAgaWYgKCFjdXN0b21HcmFtbWFyRGVmYXVsdEN1c3RvbUdyYW1tYXIpIHtcbiAgICAgIHZhbGlkYXRlVm9jYWJ1bGFyeSh2b2NhYnVsYXJ5KTtcbiAgICB9XG5cbiAgICBleHByZXNzaW9uc0Zyb21Wb2NhYnVsYXJ5KHZvY2FidWxhcnksIGV4cHJlc3Npb25zKTtcbiAgfSk7XG5cbiAgY29uc3QgcGF0dGVybiA9IGV4cHJlc3Npb25zLmpvaW4oVkVSVElDQUxfQkFSKSxcbiAgICAgICAgZW50cnlOYW1lID0gdm9jYWJ1bGFyeU5hbWUsICAvLy9cbiAgICAgICAgZW50cnlWYWx1ZSA9IGBeKD86JHtwYXR0ZXJufSlgLFxuICAgICAgICBlbnRyeSA9IHtcbiAgICAgICAgICBbZW50cnlOYW1lXTogZW50cnlWYWx1ZVxuICAgICAgICB9O1xuXG4gIHJldHVybiBlbnRyeTtcbn1cblxuZnVuY3Rpb24gYm5mRnJvbUN1c3RvbUdyYW1tYXJzKGN1c3RvbUdyYW1tYXJzLCBydWxlTmFtZSkge1xuICBjb25zdCBibmZzID0gW107XG5cbiAgYmFja3dhcmRzRm9yRWFjaChjdXN0b21HcmFtbWFycywgKGN1c3RvbUdyYW1tYXIpID0+IHtcbiAgICBjb25zdCBibmYgPSBjdXN0b21HcmFtbWFyLmdldEJORihydWxlTmFtZSksXG4gICAgICAgICAgY3VzdG9tR3JhbW1hckRlZmF1bHRDdXN0b21HcmFtbWFyID0gY3VzdG9tR3JhbW1hci5pc0RlZmF1bHRDdXN0b21HcmFtbWFyKCk7XG5cbiAgICBpZiAoIWN1c3RvbUdyYW1tYXJEZWZhdWx0Q3VzdG9tR3JhbW1hcikge1xuICAgICAgdmFsaWRhdGVCTkYoYm5mLCBydWxlTmFtZSk7XG4gICAgfVxuXG4gICAgYm5mcy5wdXNoKGJuZik7XG4gIH0pO1xuXG4gIGNvbnN0IGJuZiA9IGJuZnMuam9pbihWRVJUSUNBTF9TUEFDRSk7XG5cbiAgcmV0dXJuIGJuZjtcbn1cblxuZnVuY3Rpb24gY29tYmluZVJ1bGVzKHJ1bGVzKSB7XG4gIGxldCBvdXRlckluZGV4ID0gMCxcbiAgICAgIGxlbmd0aCA9IHJ1bGVzLmxlbmd0aDtcblxuICB3aGlsZSAob3V0ZXJJbmRleCA8IGxlbmd0aCkge1xuICAgIGNvbnN0IG91dGVyUnVsZSA9IHJ1bGVzW291dGVySW5kZXhdLFxuICAgICAgICAgIG91dGVyUnVsZU5hbWUgPSBvdXRlclJ1bGUuZ2V0TmFtZSgpO1xuXG4gICAgbGV0IGlubmVySW5kZXggPSBvdXRlckluZGV4ICsgMTtcblxuICAgIHdoaWxlIChpbm5lckluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBjb25zdCBpbm5lclJ1bGUgPSBydWxlc1tpbm5lckluZGV4XSxcbiAgICAgICAgICAgIGlubmVyUnVsZU5hbWUgPSBpbm5lclJ1bGUuZ2V0TmFtZSgpO1xuXG4gICAgICBpZiAoaW5uZXJSdWxlTmFtZSA9PT0gb3V0ZXJSdWxlTmFtZSkge1xuICAgICAgICBjb25zdCBpbm5lclJ1bGVEZWZpbml0aW9ucyA9IGlubmVyUnVsZS5nZXREZWZpbml0aW9ucygpLFxuICAgICAgICAgICAgICBvdXRlclJ1bGVEZWZpbml0aW9ucyA9IG91dGVyUnVsZS5nZXREZWZpbml0aW9ucygpO1xuXG4gICAgICAgIHVuc2hpZnQob3V0ZXJSdWxlRGVmaW5pdGlvbnMsIGlubmVyUnVsZURlZmluaXRpb25zKTtcblxuICAgICAgICBjb25zdCBzdGFydCA9IGlubmVySW5kZXgsIC8vL1xuICAgICAgICAgICAgICBkZWxldGVDb3VudCA9IDE7XG5cbiAgICAgICAgcnVsZXMuc3BsaWNlKHN0YXJ0LCBkZWxldGVDb3VudCk7XG5cbiAgICAgICAgbGVuZ3RoID0gcnVsZXMubGVuZ3RoO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5uZXJJbmRleCsrO1xuICAgICAgfVxuICAgIH1cblxuICAgIG91dGVySW5kZXgrKztcblxuICAgIGxlbmd0aCA9IHJ1bGVzLmxlbmd0aDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsIm9wYXF1ZSIsInNwZWNpYWxTeW1ib2xzIiwicnVsZXNGcm9tQk5GIiwicGFyc2VyVXRpbGl0aWVzIiwidW5zaGlmdCIsImZvcndhcmRzRm9yRWFjaCIsImJhY2t3YXJkc0ZvckVhY2giLCJhcnJheVV0aWxpdGllcyIsInJ1bGVzIiwiZW50cmllcyIsImdldFJ1bGVzIiwiZ2V0RW50cmllcyIsInBvc3RQcm9jZXNzIiwiZWxpbWluYXRlTGVmdFJlY3Vyc2lvbiIsImZyb21Ob3RoaW5nIiwiaW5jbHVkZURlZmF1bHQiLCJjdXN0b21HcmFtbWFycyIsImRlZmF1bHRDdXN0b21HcmFtbWFyIiwicnVsZXNGcm9tQ3VzdG9tR3JhbW1hcnMiLCJlbnRyaWVzRnJvbUN1c3RvbUdyYW1tYXJzIiwiY29tYmluZWRDdXN0b21HcmFtbWFyIiwiZnJvbUN1c3RvbUdyYW1tYXJzIiwicnVsZU5hbWVzIiwiVEVSTV9SVUxFX05BTUUiLCJTVEFURU1FTlRfUlVMRV9OQU1FIiwiYm5mcyIsIm1hcCIsInJ1bGVOYW1lIiwiYm5mIiwiYm5mRnJvbUN1c3RvbUdyYW1tYXJzIiwiam9pbiIsIlZFUlRJQ0FMX1NQQUNFIiwiY29tYmluZVJ1bGVzIiwib3BhY2l0eSIsImZvckVhY2giLCJydWxlIiwiZmluZCIsIm5hbWUiLCJnZXROYW1lIiwic2V0T3BhY2l0eSIsInZvY2FidWxhcnlOYW1lcyIsIlRZUEVfVk9DQUJVTEFSWV9OQU1FIiwiU1lNQk9MX1ZPQ0FCVUxBUllfTkFNRSIsInZvY2FidWxhcnlOYW1lIiwiZW50cnkiLCJlbnRyeUZyb21DdXN0b21HcmFtbWFycyIsImV4cHJlc3Npb25zIiwiY3VzdG9tR3JhbW1hciIsInZvY2FidWxhcnkiLCJnZXRWb2NhYnVsYXJ5IiwiY3VzdG9tR3JhbW1hckRlZmF1bHRDdXN0b21HcmFtbWFyIiwiaXNEZWZhdWx0Q3VzdG9tR3JhbW1hciIsInZhbGlkYXRlVm9jYWJ1bGFyeSIsImV4cHJlc3Npb25zRnJvbVZvY2FidWxhcnkiLCJwYXR0ZXJuIiwiVkVSVElDQUxfQkFSIiwiZW50cnlOYW1lIiwiZW50cnlWYWx1ZSIsImdldEJORiIsInZhbGlkYXRlQk5GIiwicHVzaCIsIm91dGVySW5kZXgiLCJsZW5ndGgiLCJvdXRlclJ1bGUiLCJvdXRlclJ1bGVOYW1lIiwiaW5uZXJJbmRleCIsImlubmVyUnVsZSIsImlubmVyUnVsZU5hbWUiLCJpbm5lclJ1bGVEZWZpbml0aW9ucyIsImdldERlZmluaXRpb25zIiwib3V0ZXJSdWxlRGVmaW5pdGlvbnMiLCJzdGFydCIsImRlbGV0ZUNvdW50Iiwic3BsaWNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFtQkE7OztlQUFxQkE7OzsyQkFqQlU7NkJBQ0E7OEJBQ0M7dUNBQ087Z0VBRU47NEJBRVM7MkJBQ0c7MEJBQ0c7MkJBQ0k7aUNBQ1M7Ozs7OztBQUU3RCxNQUFNLEVBQUVDLE1BQU0sRUFBRyxHQUFHQywyQkFBYyxFQUM1QixFQUFFQyxZQUFZLEVBQUUsR0FBR0MsNkJBQWUsRUFDbEMsRUFBRUMsT0FBTyxFQUFFQyxlQUFlLEVBQUVDLGdCQUFnQixFQUFFLEdBQUdDLHlCQUFjO0FBRXRELE1BQU1SO0lBQ25CLFlBQVlTLEtBQUssRUFBRUMsT0FBTyxDQUFFO1FBQzFCLElBQUksQ0FBQ0QsS0FBSyxHQUFHQTtRQUNiLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTtJQUNqQjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNGLEtBQUs7SUFDbkI7SUFFQUcsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDRixPQUFPO0lBQ3JCO0lBRUFHLFlBQVlKLEtBQUssRUFBRTtRQUNqQkEsUUFBUTtlQUNIQTtlQUNBLElBQUksQ0FBQ0EsS0FBSztTQUNkO1FBRURBLFFBQVFLLElBQUFBLDZDQUFzQixFQUFDTCxRQUFTLEdBQUc7UUFFM0MsT0FBT0E7SUFDVDtJQUVBLE9BQU9NLFlBQVlDLGlCQUFpQixJQUFJLEVBQUU7UUFDeEMsSUFBSUMsaUJBQWlCLEVBQUU7UUFFdkIsSUFBSUQsZ0JBQWdCO1lBQ2xCQyxpQkFBaUI7Z0JBQUVDLGdCQUFvQjttQkFBS0Q7YUFBZ0IsRUFBRSxHQUFHO1FBQ25FO1FBRUEsTUFBTVIsUUFBUVUsd0JB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
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jdXN0b21HcmFtbWFyL2NvbWJpbmVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcbmltcG9ydCB7IGVsaW1pbmF0ZUxlZnRSZWN1cnNpb24gfSBmcm9tIFwib2NjYW0tZ3JhbW1hci11dGlsaXRpZXNcIjtcblxuaW1wb3J0IGRlZmF1bHRDdXN0b21HcmFtbWFyIGZyb20gXCIuLi9jdXN0b21HcmFtbWFyL2RlZmF1bHRcIjtcblxuaW1wb3J0IHsgcnVsZUZyb21CTkYgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2JuZlwiO1xuaW1wb3J0IHsgVkVSVElDQUxfQkFSIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgZXhwcmVzc2lvbnNGcm9tVm9jYWJ1bGFyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvdm9jYWJ1bGFyeVwiO1xuaW1wb3J0IHsgdmFsaWRhdGVCTkYsIHZhbGlkYXRlVm9jYWJ1bGFyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsaWRhdGVcIjtcbmltcG9ydCB7IFRFUk1fUlVMRV9OQU1FLCBTVEFURU1FTlRfUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuaW1wb3J0IHsgVFlQRV9WT0NBQlVMQVJZX05BTUUsIFNZTUJPTF9WT0NBQlVMQVJZX05BTUUgfSBmcm9tIFwiLi4vdm9jYWJ1bGFyeU5hbWVzXCI7XG5cbmNvbnN0IHsgcHVzaCwgdGFpbCwgZmlyc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb21iaW5lZEN1c3RvbUdyYW1tYXIge1xuICBjb25zdHJ1Y3RvcihydWxlcywgZW50cmllcykge1xuICAgIHRoaXMucnVsZXMgPSBydWxlcztcbiAgICB0aGlzLmVudHJpZXMgPSBlbnRyaWVzO1xuICB9XG4gIFxuICBnZXRSdWxlcygpIHtcbiAgICByZXR1cm4gdGhpcy5ydWxlcztcbiAgfVxuXG4gIGdldEVudHJpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW50cmllcztcbiAgfVxuXG4gIHBvc3RQcm9jZXNzKHJ1bGVzKSB7XG4gICAgcnVsZXMgPSBbIC8vL1xuICAgICAgLi4ucnVsZXMsXG4gICAgICAuLi50aGlzLnJ1bGVzXG4gICAgXTtcblxuICAgIHJ1bGVzID0gZWxpbWluYXRlTGVmdFJlY3Vyc2lvbihydWxlcyk7ICAvLy9cblxuICAgIHJldHVybiBydWxlcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZyhpbmNsdWRlRGVmYXVsdCA9IHRydWUpIHtcbiAgICBsZXQgY3VzdG9tR3JhbW1hcnMgPSBbXTtcblxuICAgIGlmIChpbmNsdWRlRGVmYXVsdCkge1xuICAgICAgY3VzdG9tR3JhbW1hcnMgPSBbICAvLy9cbiAgICAgICAgLi4uY3VzdG9tR3JhbW1hcnMsXG4gICAgICAgIGRlZmF1bHRDdXN0b21HcmFtbWFyXG4gICAgICBdO1xuICAgIH1cblxuICAgIGNvbnN0IHJ1bGVzID0gcnVsZXNGcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMpLFxuICAgICAgICAgIGVudHJpZXMgPSBlbnRyaWVzRnJvbUN1c3RvbUdyYW1tYXJzKGN1c3RvbUdyYW1tYXJzKSxcbiAgICAgICAgICBjb21iaW5lZEN1c3RvbUdyYW1tYXIgPSBuZXcgQ29tYmluZWRDdXN0b21HcmFtbWFyKHJ1bGVzLCBlbnRyaWVzKTtcblxuICAgIHJldHVybiBjb21iaW5lZEN1c3RvbUdyYW1tYXI7XG4gIH1cblxuICBzdGF0aWMgZnJvbUN1c3RvbUdyYW1tYXJzKGN1c3RvbUdyYW1tYXJzLCBpbmNsdWRlRGVmYXVsdCA9IHRydWUpIHtcbiAgICBpZiAoaW5jbHVkZURlZmF1bHQpIHtcbiAgICAgIGN1c3RvbUdyYW1tYXJzID0gWyAgLy8vXG4gICAgICAgIC4uLmN1c3RvbUdyYW1tYXJzLFxuICAgICAgICBkZWZhdWx0Q3VzdG9tR3JhbW1hclxuICAgICAgXTtcbiAgICB9XG5cbiAgICBjb25zdCBydWxlcyA9IHJ1bGVzRnJvbUN1c3RvbUdyYW1tYXJzKGN1c3RvbUdyYW1tYXJzKSxcbiAgICAgICAgICBlbnRyaWVzID0gZW50cmllc0Zyb21DdXN0b21HcmFtbWFycyhjdXN0b21HcmFtbWFycyksXG4gICAgICAgICAgY29tYmluZWRDdXN0b21HcmFtbWFyID0gbmV3IENvbWJpbmVkQ3VzdG9tR3JhbW1hcihydWxlcywgZW50cmllcyk7XG4gICAgXG4gICAgcmV0dXJuIGNvbWJpbmVkQ3VzdG9tR3JhbW1hcjtcbiAgfVxufVxuXG5mdW5jdGlvbiBlbnRyaWVzRnJvbUN1c3RvbUdyYW1tYXJzKGN1c3RvbUdyYW1tYXJzKSB7XG4gIGNvbnN0IHZvY2FidWxhcnlOYW1lcyA9IFtcbiAgICAgICAgICBUWVBFX1ZPQ0FCVUxBUllfTkFNRSxcbiAgICAgICAgICBTWU1CT0xfVk9DQUJVTEFSWV9OQU1FXG4gICAgICAgIF0sXG4gICAgICAgIGVudHJpZXMgPSB2b2NhYnVsYXJ5TmFtZXMubWFwKCh2b2NhYnVsYXJ5TmFtZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGVudHJ5ID0gZW50cnlGcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMsIHZvY2FidWxhcnlOYW1lKTtcblxuICAgICAgICAgIHJldHVybiBlbnRyeTtcbiAgICAgICAgfSk7XG5cbiAgcmV0dXJuIGVudHJpZXM7XG59XG5cbmZ1bmN0aW9uIHJ1bGVzRnJvbUN1c3RvbUdyYW1tYXJzKGN1c3RvbUdyYW1tYXJzKSB7XG4gIGNvbnN0IHJ1bGVOYW1lcyA9IFtcbiAgICAgICAgICBURVJNX1JVTEVfTkFNRSxcbiAgICAgICAgICBTVEFURU1FTlRfUlVMRV9OQU1FLFxuICAgICAgICBdLFxuICAgICAgICBydWxlcyA9IHJ1bGVOYW1lcy5tYXAoKHJ1bGVOYW1lKSA9PiB7XG4gICAgICAgICAgY29uc3QgcnVsZSA9IHJ1bGVGcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMsIHJ1bGVOYW1lKTtcblxuICAgICAgICAgIHJldHVybiBydWxlO1xuICAgICAgICB9KTtcblxuICByZXR1cm4gcnVsZXM7XG59XG5cbmZ1bmN0aW9uIGVudHJ5RnJvbUN1c3RvbUdyYW1tYXJzKGN1c3RvbUdyYW1tYXJzLCB2b2NhYnVsYXJ5TmFtZSkge1xuICBjb25zdCBleHByZXNzaW9ucyA9IFtdO1xuXG4gIGN1c3RvbUdyYW1tYXJzLmZvckVhY2goKGN1c3RvbUdyYW1tYXIpID0+IHtcbiAgICBjb25zdCB2b2NhYnVsYXJ5ID0gY3VzdG9tR3JhbW1hci5nZXRWb2NhYnVsYXJ5KHZvY2FidWxhcnlOYW1lKTtcblxuICAgIHZhbGlkYXRlVm9jYWJ1bGFyeSh2b2NhYnVsYXJ5KTtcblxuICAgIGV4cHJlc3Npb25zRnJvbVZvY2FidWxhcnkodm9jYWJ1bGFyeSwgZXhwcmVzc2lvbnMpO1xuICB9KTtcblxuICBjb25zdCBlbnRyeSA9IGNvbWJpbmVFeHByZXNzaW9ucyhleHByZXNzaW9ucywgdm9jYWJ1bGFyeU5hbWUpO1xuXG4gIHJldHVybiBlbnRyeTtcbn1cblxuZnVuY3Rpb24gcnVsZUZyb21DdXN0b21HcmFtbWFycyhjdXN0b21HcmFtbWFycywgcnVsZU5hbWUpIHtcbiAgY29uc3QgcnVsZXMgPSBbXTtcblxuICBjdXN0b21HcmFtbWFycy5mb3JFYWNoKChjdXN0b21HcmFtbWFyKSA9PiB7XG4gICAgY29uc3QgYm5mID0gY3VzdG9tR3JhbW1hci5nZXRCTkYocnVsZU5hbWUpO1xuXG4gICAgdmFsaWRhdGVCTkYoYm5mLCBydWxlTmFtZSk7XG5cbiAgICBydWxlRnJvbUJORihibmYsIHJ1bGVzKTtcbiAgfSk7XG5cbiAgY29uc3QgcnVsZSA9IGNvbWJpbmVSdWxlcyhydWxlcyk7XG5cbiAgcmV0dXJuIHJ1bGU7XG59XG5cbmZ1bmN0aW9uIGNvbWJpbmVFeHByZXNzaW9ucyhleHByZXNzaW9ucywgdm9jYWJ1bGFyeU5hbWUpIHtcbiAgY29uc3QgcGF0dGVybiA9IGV4cHJlc3Npb25zLmpvaW4oVkVSVElDQUxfQkFSKSxcbiAgICAgICAgZW50cnlOYW1lID0gdm9jYWJ1bGFyeU5hbWUsICAvLy9cbiAgICAgICAgZW50cnlWYWx1ZSA9IGBeKD86JHtwYXR0ZXJufSlgLFxuICAgICAgICBlbnRyeSA9IHtcbiAgICAgICAgICBbZW50cnlOYW1lXTogZW50cnlWYWx1ZVxuICAgICAgICB9O1xuXG4gIHJldHVybiBlbnRyeTtcbn1cblxuZnVuY3Rpb24gY29tYmluZVJ1bGVzKHJ1bGVzKSB7XG4gIGNvbnN0IGZpcnN0UnVsZSA9IGZpcnN0KHJ1bGVzKSxcbiAgICAgICAgcnVsZXNUYWlsID0gdGFpbChydWxlcyksXG4gICAgICAgIGRlZmluaXRpb25zID0gZmlyc3RSdWxlLmdldERlZmluaXRpb25zKCksXG4gICAgICAgIHJlbWFpbmluZ1J1bGVzID0gcnVsZXNUYWlsOyAvLy9cblxuICByZW1haW5pbmdSdWxlcy5mb3JFYWNoKChyZW1haW5pbmdSdWxlKSA9PiB7XG4gICAgY29uc3QgcmVtYWluaW5nUnVsZURlZmluaXRpb25zID0gcmVtYWluaW5nUnVsZS5nZXREZWZpbml0aW9ucygpO1xuXG4gICAgcHVzaChkZWZpbml0aW9ucywgcmVtYWluaW5nUnVsZURlZmluaXRpb25zKTtcbiAgfSk7XG5cbiAgY29uc3QgcnVsZSA9IGZpcnN0UnVsZTsgLy8vXG5cbiAgcmV0dXJuIHJ1bGU7XG59XG4iXSwibmFtZXMiOlsiQ29tYmluZWRDdXN0b21HcmFtbWFyIiwicHVzaCIsInRhaWwiLCJmaXJzdCIsImFycmF5VXRpbGl0aWVzIiwicnVsZXMiLCJlbnRyaWVzIiwiZ2V0UnVsZXMiLCJnZXRFbnRyaWVzIiwicG9zdFByb2Nlc3MiLCJlbGltaW5hdGVMZWZ0UmVjdXJzaW9uIiwiZnJvbU5vdGhpbmciLCJpbmNsdWRlRGVmYXVsdCIsImN1c3RvbUdyYW1tYXJzIiwiZGVmYXVsdEN1c3RvbUdyYW1tYXIiLCJydWxlc0Zyb21DdXN0b21HcmFtbWFycyIsImVudHJpZXNGcm9tQ3VzdG9tR3JhbW1hcnMiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJmcm9tQ3VzdG9tR3JhbW1hcnMiLCJ2b2NhYnVsYXJ5TmFtZXMiLCJUWVBFX1ZPQ0FCVUxBUllfTkFNRSIsIlNZTUJPTF9WT0NBQlVMQVJZX05BTUUiLCJtYXAiLCJ2b2NhYnVsYXJ5TmFtZSIsImVudHJ5IiwiZW50cnlGcm9tQ3VzdG9tR3JhbW1hcnMiLCJydWxlTmFtZXMiLCJURVJNX1JVTEVfTkFNRSIsIlNUQVRFTUVOVF9SVUxFX05BTUUiLCJydWxlTmFtZSIsInJ1bGUiLCJydWxlRnJvbUN1c3RvbUdyYW1tYXJzIiwiZXhwcmVzc2lvbnMiLCJmb3JFYWNoIiwiY3VzdG9tR3JhbW1hciIsInZvY2FidWxhcnkiLCJnZXRWb2NhYnVsYXJ5IiwidmFsaWRhdGVWb2NhYnVsYXJ5IiwiZXhwcmVzc2lvbnNGcm9tVm9jYWJ1bGFyeSIsImNvbWJpbmVFeHByZXNzaW9ucyIsImJuZiIsImdldEJORiIsInZhbGlkYXRlQk5GIiwicnVsZUZyb21CTkYiLCJjb21iaW5lUnVsZXMiLCJwYXR0ZXJuIiwiam9pbiIsIlZFUlRJQ0FMX0JBUiIsImVudHJ5TmFtZSIsImVudHJ5VmFsdWUiLCJmaXJzdFJ1bGUiLCJydWxlc1RhaWwiLCJkZWZpbml0aW9ucyIsImdldERlZmluaXRpb25zIiwicmVtYWluaW5nUnVsZXMiLCJyZW1haW5pbmdSdWxlIiwicmVtYWluaW5nUnVsZURlZmluaXRpb25zIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFnQkE7OztlQUFxQkE7OzsyQkFkVTt1Q0FDUTtnRUFFTjtxQkFFTDsyQkFDQzs0QkFDYTswQkFDTTsyQkFDSTtpQ0FDUzs7Ozs7O0FBRTdELE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLEtBQUssRUFBRSxHQUFHQyx5QkFBYztBQUU3QixNQUFNSjtJQUNuQixZQUFZSyxLQUFLLEVBQUVDLE9BQU8sQ0FBRTtRQUMxQixJQUFJLENBQUNELEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLE9BQU8sR0FBR0E7SUFDakI7SUFFQUMsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDRixLQUFLO0lBQ25CO0lBRUFHLGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQ0YsT0FBTztJQUNyQjtJQUVBRyxZQUFZSixLQUFLLEVBQUU7UUFDakJBLFFBQVE7ZUFDSEE7ZUFDQSxJQUFJLENBQUNBLEtBQUs7U0FDZDtRQUVEQSxRQUFRSyxJQUFBQSw2Q0FBc0IsRUFBQ0wsUUFBUyxHQUFHO1FBRTNDLE9BQU9BO0lBQ1Q7SUFFQSxPQUFPTSxZQUFZQyxpQkFBaUIsSUFBSSxFQUFFO1FBQ3hDLElBQUlDLGlCQUFpQixFQUFFO1FBRXZCLElBQUlELGdCQUFnQjtZQUNsQkMsaUJBQWlCO21CQUNaQTtnQkFDSEMsZ0JBQW9CO2FBQ3JCO1FBQ0g7UUFFQSxNQUFNVCxRQUFRVSx3QkFBd0JGLGlCQUNoQ1AsVUFBVVUsMEJBQTBCSCxpQkFDcENJLHdCQUF3QixJQUFJakIsc0JBQXNCSyxPQUFPQztRQUUvRCxPQUFPVztJQUNUO0lBRUEsT0FBT0MsbUJBQW1CTCxjQUFjLEVBQUVELGlCQUFpQixJQUFJLEVBQUU7UUFDL0QsSUFBSUEsZ0JBQWdCO1lBQ2xCQyxpQkFBaUI7bUJBQ1pBO2dCQUNIQyxnQkFBb0I7YUFDckI7UUFDSDtRQUVBLE1BQU1ULFFBQVFVLHdCQUF3QkYsaUJBQ2hDUCxVQUFVVSwwQkFBMEJILGlCQUNwQ0ksd0JBQXdCLElBQUlqQixzQkFBc0JLLE9BQU9DO1FBRS9ELE9BQU9XO0lBQ1Q7QUFDRjtBQUVBLFNBQVNELDBCQUEwQkgsY0FBYztJQUMvQyxNQUFNTSxrQkFBa0I7UUFDaEJDLHFDQUFvQjtRQUNwQkMsdUNBQXNCO0tBQ3ZCLEVBQ0RmLFVBQVVhLGdCQUFnQkcsR0FBRyxDQUFDLENBQUNDO1FBQzdCLE1BQU1DLFFBQVFDLHdCQUF3QlosZ0JBQWdCVTtRQUV0RCxPQUFPQztJQUNUO0lBRU4sT0FBT2xCO0FBQ1Q7QUFFQSxTQUFTUyx3QkFBd0JGLGNBQWM7SUFDN0MsTUFBTWEsWUFBWTtRQUNWQyx5QkFBYztRQUNkQyw4QkFBbUI7S0FDcEIsRUFDRHZCLFFBQVFxQixVQUFVSixHQUFHLENBQUMsQ0FBQ087UUFDckIsTUFBTUMsT0FBT0MsdUJBQXVCbEIsZ0JBQWdCZ0I7UUFFcEQsT0FBT0M7SUFDVDtJQUVOLE9BQU96QjtBQUNUO0FBRUEsU0FBU29CLHdCQUF3QlosY0FBYyxFQUFFVSxjQUFjO0lBQzdELE1BQU1TLGNBQWMsRUFBRTtJQUV0Qm5CLGVBQWVvQixPQUFPLENBQUMsQ0FBQ0M7UUFDdEIsTUFBTUMsYUFBYUQsY0FBY0UsYUFBYSxDQUFDYjtRQUUvQ2MsSUFBQUEsNEJBQWtCLEVBQUNGO1FBRW5CRyxJQUFBQSxxQ0FBeUIsRUFBQ0gsWUFBWUg7SUFDeEM7SUFFQSxNQUFNUixRQUFRZSxtQkFBbUJQLGFBQWFUO0lBRTlDLE9BQU9DO0FBQ1Q7QUFFQSxTQUFTTyx1QkFBdUJsQixjQUFjLEVBQUVnQixRQUFRO0lBQ3RELE1BQU14QixRQUFRLEVBQUU7SUFFaEJRLGVBQWVvQixPQUFPLENBQUMsQ0FBQ0M7UUFDdEIsTUFBTU0sTUFBTU4sY0FBY08sTUFBTSxDQUFDWjtRQUVqQ2EsSUFBQUEscUJBQVcsRUFBQ0YsS0FBS1g7UUFFakJjLElBQUFBLGdCQUFXLEVBQUNILEtBQUtuQztJQUNuQjtJQUVBLE1BQU15QixPQUFPYyxhQUFhdkM7SUFFMUIsT0FBT3lCO0FBQ1Q7QUFFQSxTQUFTUyxtQkFBbUJQLFdBQVcsRUFBRVQsY0FBYztJQUNyRCxNQUFNc0IsVUFBVWIsWUFBWWMsSUFBSSxDQUFDQyx1QkFBWSxHQUN2Q0MsWUFBWXpCLGdCQUNaMEIsYUFBYSxDQUFDLElBQUksRUFBRUosUUFBUSxDQUFDLENBQUMsRUFDOUJyQixRQUFRO1FBQ04sQ0FBQ3dCLFVBQVUsRUFBRUM7SUFDZjtJQUVOLE9BQU96QjtBQUNUO0FBRUEsU0FBU29CLGFBQWF2QyxLQUFLO0lBQ3pCLE1BQU02QyxZQUFZL0MsTUFBTUUsUUFDbEI4QyxZQUFZakQsS0FBS0csUUFDakIrQyxjQUFjRixVQUFVRyxjQUFjLElBQ3RDQyxpQkFBaUJILFdBQVcsR0FBRztJQUVyQ0csZUFBZXJCLE9BQU8sQ0FBQyxDQUFDc0I7UUFDdEIsTUFBTUMsMkJBQTJCRCxjQUFjRixjQUFjO1FBRTdEcEQsS0FBS21ELGFBQWFJO0lBQ3BCO0lBRUEsTUFBTTFCLE9BQU9vQixXQUFXLEdBQUc7SUFFM0IsT0FBT3BCO0FBQ1QifQ==
|
package/lib/example/view.js
CHANGED
|
@@ -125,4 +125,4 @@ const _default1 = (0, _easywithstyle.default)(View)`
|
|
|
125
125
|
|
|
126
126
|
`;
|
|
127
127
|
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ZpZXcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwiZWFzeVwiO1xuaW1wb3J0IHsgcnVsZXNVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tcGFyc2Vyc1wiO1xuaW1wb3J0IHsgTm9taW5hbExleGVyLCBOb21pbmFsUGFyc2VyIH0gZnJvbSBcIm9jY2FtLWdyYW1tYXJzXCI7XG5pbXBvcnQgeyBSb3dzRGl2LCBDb2x1bW5EaXYsIENvbHVtbnNEaXYsIFZlcnRpY2FsU3BsaXR0ZXJEaXYgfSBmcm9tIFwiZWFzeS1sYXlvdXRcIjtcbmltcG9ydCB7IGxleGVyc1V0aWxpdGllcywgcGFyc2Vyc1V0aWxpdGllcywgQ29tYmluZWRDdXN0b21HcmFtbWFyIH0gZnJvbSBcIi4uL2luZGV4XCI7ICAvLy9cblxuaW1wb3J0IFN1YkhlYWRpbmcgZnJvbSBcIi4vc3ViSGVhZGluZ1wiO1xuaW1wb3J0IE5hbWVTZWxlY3QgZnJvbSBcIi4vc2VsZWN0L25hbWVcIjtcbmltcG9ydCBTaXplYWJsZURpdiBmcm9tIFwiLi9kaXYvc2l6ZWFibGVcIjtcbmltcG9ydCBCTkZUZXh0YXJlYSBmcm9tIFwiLi90ZXh0YXJlYS9ibmZcIjtcbmltcG9ydCBSdWxlTmFtZVNlbGVjdCBmcm9tIFwiLi9zZWxlY3QvcnVsZU5hbWVcIjtcbmltcG9ydCBDb250ZW50VGV4dGFyZWEgZnJvbSBcIi4vdGV4dGFyZWEvY29udGVudFwiO1xuaW1wb3J0IFBhcnNlVHJlZVRleHRhcmVhIGZyb20gXCIuL3RleHRhcmVhL3BhcnNlVHJlZVwiO1xuaW1wb3J0IFN0YXJ0UnVsZU5hbWVJbnB1dCBmcm9tIFwiLi9pbnB1dC9zdGFydFJ1bGVOYW1lXCI7XG5pbXBvcnQgTm9taW5hbEJORlRleHRhcmVhIGZyb20gXCIuL3RleHRhcmVhL25vbWluYWxCTkZcIjtcbmltcG9ydCBWb2NhYnVsYXJ5VGV4dGFyZWEgZnJvbSBcIi4vdGV4dGFyZWEvdm9jYWJ1bGFyeVwiO1xuaW1wb3J0IFZvY2FidWxhcnlOYW1lU2VsZWN0IGZyb20gXCIuL3NlbGVjdC92b2NhYnVsYXJ5TmFtZVwiO1xuaW1wb3J0IGRlZmF1bHRDdXN0b21HcmFtbWFyIGZyb20gXCIuL2N1c3RvbUdyYW1tYXIvZGVmYXVsdFwiO1xuaW1wb3J0IHVzZXJEZWZpbmVkQ3VzdG9tR3JhbW1hciBmcm9tIFwiLi9jdXN0b21HcmFtbWFyL3VzZXJEZWZpbmVkXCI7XG5cbmltcG9ydCB7IHJ1bGVzRnJvbVBhcnNlciB9IGZyb20gXCIuL3V0aWxpdGllcy9ydWxlc1wiO1xuaW1wb3J0IHsgREVGQVVMVF9DVVNUT01fR1JBTU1BUl9OQU1FLCBVU0VSX0RFRklORURfQ1VTVE9NX0dSQU1NQVJfTkFNRSB9IGZyb20gXCIuL2dyYW1tYXJOYW1lc1wiO1xuXG5jb25zdCB7IHJ1bGVzQXNTdHJpbmcgfSA9IHJ1bGVzVXRpbGl0aWVzLFxuICAgICAgeyBsZXhlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIgfSA9IGxleGVyc1V0aWxpdGllcyxcbiAgICAgIHsgcGFyc2VyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciB9ID0gcGFyc2Vyc1V0aWxpdGllcztcblxuY2xhc3MgVmlldyBleHRlbmRzIEVsZW1lbnQge1xuICBrZXlVcEhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcbiAgICAvLyB0cnkge1xuICAgICAgY29uc3QgYm5mID0gdGhpcy5nZXRCTkYoKSxcbiAgICAgICAgICAgIG5hbWUgPSB0aGlzLmdldE5hbWUoKSxcbiAgICAgICAgICAgIHJ1bGVOYW1lID0gdGhpcy5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgICAgdm9jYWJ1bGFyeSA9IHRoaXMuZ2V0Vm9jYWJ1bGFyeSgpLFxuICAgICAgICAgICAgdm9jYWJ1bGFyeU5hbWUgPSB0aGlzLmdldFZvY2FidWxhcnlOYW1lKCk7XG5cbiAgICBpZiAobmFtZSA9PT0gREVGQVVMVF9DVVNUT01fR1JBTU1BUl9OQU1FKSB7XG4gICAgICBkZWZhdWx0Q3VzdG9tR3JhbW1hci5zZXRCTkYocnVsZU5hbWUsIGJuZik7XG5cbiAgICAgIGRlZmF1bHRDdXN0b21HcmFtbWFyLnNldFZvY2FidWxhcnkodm9jYWJ1bGFyeU5hbWUsIHZvY2FidWxhcnkpO1xuICAgIH1cblxuICAgIGlmIChuYW1lID09PSBVU0VSX0RFRklORURfQ1VTVE9NX0dSQU1NQVJfTkFNRSkge1xuICAgICAgdXNlckRlZmluZWRDdXN0b21HcmFtbWFyLnNldEJORihydWxlTmFtZSwgYm5mKTtcblxuICAgICAgdXNlckRlZmluZWRDdXN0b21HcmFtbWFyLnNldFZvY2FidWxhcnkodm9jYWJ1bGFyeU5hbWUsIHZvY2FidWxhcnkpO1xuICAgIH1cblxuICAgIGNvbnN0IGN1c3RvbUdyYW1tYXJzID0gW1xuICAgICAgICAgICAgICB1c2VyRGVmaW5lZEN1c3RvbUdyYW1tYXIsXG4gICAgICAgICAgICAgIGRlZmF1bHRDdXN0b21HcmFtbWFyLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGluY2x1ZGVEZWZhdWx0ID0gZmFsc2UsXG4gICAgICAgICAgICBjb21iaW5lZEN1c3RvbUdyYW1tYXIgPSBDb21iaW5lZEN1c3RvbUdyYW1tYXIuZnJvbUN1c3RvbUdyYW1tYXJzKGN1c3RvbUdyYW1tYXJzLCBpbmNsdWRlRGVmYXVsdCksXG4gICAgICAgICAgICBub21pbmFsTGV4ZXIgPSBsZXhlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIoTm9taW5hbExleGVyLCBjb21iaW5lZEN1c3RvbUdyYW1tYXIpLFxuICAgICAgICAgICAgbm9taW5hbFBhcnNlciA9IHBhcnNlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIoTm9taW5hbFBhcnNlciwgY29tYmluZWRDdXN0b21HcmFtbWFyKTtcblxuICAgICAgY29uc3QgcnVsZU1hcCA9IG5vbWluYWxQYXJzZXIuZ2V0UnVsZU1hcCgpLFxuICAgICAgICAgICAgc3RhcnRSdWxlTmFtZSA9IHRoaXMuZ2V0U3RhcnRSdWxlTmFtZSgpLFxuICAgICAgICAgICAgc3RhcnRSdWxlID0gcnVsZU1hcFtzdGFydFJ1bGVOYW1lXSwgLy8vXG4gICAgICAgICAgICBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXG4gICAgICAgICAgICB0b2tlbnMgPSBub21pbmFsTGV4ZXIudG9rZW5pc2UoY29udGVudCksXG4gICAgICAgICAgICBub2RlID0gbm9taW5hbFBhcnNlci5wYXJzZSh0b2tlbnMsIHN0YXJ0UnVsZSk7XG5cbiAgICAgIGxldCBwYXJzZVRyZWUgPSBudWxsO1xuXG4gICAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBwYXJzZVRyZWUgPSBub2RlLmFzUGFyc2VUcmVlKHRva2Vucyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2V0UGFyc2VUcmVlKHBhcnNlVHJlZSk7XG5cbiAgICAgIGNvbnN0IG5vbWluYWxSdWxlcyA9IHJ1bGVzRnJvbVBhcnNlcihub21pbmFsUGFyc2VyKSxcbiAgICAgICAgICAgIG11bHRpTGluZSA9IHRydWUsXG4gICAgICAgICAgICBydWxlc1N0cmluZyA9IHJ1bGVzQXNTdHJpbmcobm9taW5hbFJ1bGVzLCBtdWx0aUxpbmUpLFxuICAgICAgICAgICAgbm9taW5hbEJORiA9IHJ1bGVzU3RyaW5nOyAgLy8vXG5cbiAgICAgIHRoaXMuc2V0Tm9taW5hbEJORihub21pbmFsQk5GKTtcbiAgICAvLyB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgIC8vXG4gICAgLy8gICB0aGlzLmNsZWFyUGFyc2VUcmVlKCk7XG4gICAgLy9cbiAgICAvLyAgIHRoaXMuY2xlYXJOb21pbmFsQk5GKCk7XG4gICAgLy8gfVxuICB9XG5cbiAgY2hhbmdlSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xuICAgIGxldCBjdXN0b21HcmFtbWFyO1xuXG4gICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0TmFtZSgpLFxuICAgICAgICAgIHJ1bGVOYW1lID0gdGhpcy5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgIHZvY2FidWxhcnlOYW1lID0gdGhpcy5nZXRWb2NhYnVsYXJ5TmFtZSgpO1xuXG4gICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICBjYXNlIERFRkFVTFRfQ1VTVE9NX0dSQU1NQVJfTkFNRTpcbiAgICAgICAgY3VzdG9tR3JhbW1hciA9IGRlZmF1bHRDdXN0b21HcmFtbWFyO1xuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFVTRVJfREVGSU5FRF9DVVNUT01fR1JBTU1BUl9OQU1FOlxuICAgICAgICBjdXN0b21HcmFtbWFyID0gdXNlckRlZmluZWRDdXN0b21HcmFtbWFyO1xuXG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNvbnN0IGJuZiA9IGN1c3RvbUdyYW1tYXIuZ2V0Qk5GKHJ1bGVOYW1lKSxcbiAgICAgICAgICB2b2NhYnVsYXJ5ID0gY3VzdG9tR3JhbW1hci5nZXRWb2NhYnVsYXJ5KHZvY2FidWxhcnlOYW1lKTtcblxuICAgIHRoaXMuc2V0Qk5GKGJuZik7XG5cbiAgICB0aGlzLnNldFZvY2FidWxhcnkodm9jYWJ1bGFyeSk7XG4gIH1cblxuICBjaGlsZEVsZW1lbnRzKCkge1xuICAgIGNvbnN0IGtleVVwSGFuZGxlciA9IHRoaXMua2V5VXBIYW5kbGVyLmJpbmQodGhpcyksXG4gICAgICAgICAgY2hhbmdlSGFuZGxlciA9IHRoaXMuY2hhbmdlSGFuZGxlci5iaW5kKHRoaXMpO1xuXG4gICAgcmV0dXJuIChbXG5cbiAgICAgIDxDb2x1bW5zRGl2PlxuICAgICAgICA8U2l6ZWFibGVEaXY+XG4gICAgICAgICAgPFJvd3NEaXY+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgQ3VzdG9tIGdyYW1tYXJcbiAgICAgICAgICAgIDwvU3ViSGVhZGluZz5cbiAgICAgICAgICAgIDxOYW1lU2VsZWN0IG9uQ2hhbmdlPXtjaGFuZ2VIYW5kbGVyfSAvPlxuICAgICAgICAgICAgPFN1YkhlYWRpbmc+XG4gICAgICAgICAgICAgIFZvY2FidWxhcnlcbiAgICAgICAgICAgIDwvU3ViSGVhZGluZz5cbiAgICAgICAgICAgIDxWb2NhYnVsYXJ5TmFtZVNlbGVjdCBvbkNoYW5nZT17Y2hhbmdlSGFuZGxlcn0gLz5cbiAgICAgICAgICAgIDxWb2NhYnVsYXJ5VGV4dGFyZWEgb25LZXlVcD17a2V5VXBIYW5kbGVyfSAvPlxuICAgICAgICAgICAgPFN1YkhlYWRpbmc+XG4gICAgICAgICAgICAgIEJORlxuICAgICAgICAgICAgPC9TdWJIZWFkaW5nPlxuICAgICAgICAgICAgPFJ1bGVOYW1lU2VsZWN0IG9uQ2hhbmdlPXtjaGFuZ2VIYW5kbGVyfSAvPlxuICAgICAgICAgICAgPEJORlRleHRhcmVhIG9uS2V5VXA9e2tleVVwSGFuZGxlcn0gLz5cbiAgICAgICAgICAgIDxTdWJIZWFkaW5nPlxuICAgICAgICAgICAgICBTdGFydCBydWxlXG4gICAgICAgICAgICA8L1N1YkhlYWRpbmc+XG4gICAgICAgICAgICA8U3RhcnRSdWxlTmFtZUlucHV0IG9uS2V5VXA9e2tleVVwSGFuZGxlcn0gLz5cbiAgICAgICAgICA8L1Jvd3NEaXY+XG4gICAgICAgIDwvU2l6ZWFibGVEaXY+XG4gICAgICAgIDxWZXJ0aWNhbFNwbGl0dGVyRGl2IC8+XG4gICAgICAgIDxDb2x1bW5EaXY+XG4gICAgICAgICAgPFJvd3NEaXY+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgQ29udGVudFxuICAgICAgICAgICAgPC9TdWJIZWFkaW5nPlxuICAgICAgICAgICAgPENvbnRlbnRUZXh0YXJlYSBvbktleVVwPXtrZXlVcEhhbmRsZXJ9IC8+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgUGFyc2UgdHJlZVxuICAgICAgICAgICAgPC9TdWJIZWFkaW5nPlxuICAgICAgICAgICAgPFBhcnNlVHJlZVRleHRhcmVhIC8+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgTm9taW5hbCBCTkZcbiAgICAgICAgICAgIDwvU3ViSGVhZGluZz5cbiAgICAgICAgICAgIDxOb21pbmFsQk5GVGV4dGFyZWEgLz5cbiAgICAgICAgICA8L1Jvd3NEaXY+XG4gICAgICAgIDwvQ29sdW1uRGl2PlxuICAgICAgPC9Db2x1bW5zRGl2PlxuXG4gICAgXSk7XG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIHRoaXMuYXNzaWduQ29udGV4dCgpO1xuXG4gICAgY29uc3QgeyBpbml0aWFsQ29udGVudCwgaW5pdGlhbFN0YXJ0UnVsZU5hbWUgfSA9IHRoaXMuY29uc3RydWN0b3I7XG5cbiAgICBjb25zdCBjb250ZW50ID0gaW5pdGlhbENvbnRlbnQsIC8vL1xuICAgICAgICAgIHN0YXJ0UnVsZU5hbWUgPSBpbml0aWFsU3RhcnRSdWxlTmFtZTsgLy8vXG5cbiAgICB0aGlzLnNldENvbnRlbnQoY29udGVudCk7XG5cbiAgICB0aGlzLnNldFN0YXJ0UnVsZU5hbWUoc3RhcnRSdWxlTmFtZSk7XG5cbiAgICB0aGlzLmNoYW5nZUhhbmRsZXIoKTtcblxuICAgIHRoaXMua2V5VXBIYW5kbGVyKCk7XG4gIH1cblxuICBzdGF0aWMgaW5pdGlhbFN0YXJ0UnVsZU5hbWUgPSBcInN0ZXBcIjtcblxuICBzdGF0aWMgaW5pdGlhbENvbnRlbnQgPSBgeF55ID0geF95XG5gO1xuXG4gIHN0YXRpYyB0YWdOYW1lID0gXCJkaXZcIjtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcInZpZXdcIlxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGUoVmlldylgXG5cbiAgcGFkZGluZzogMXJlbTtcbiAgXG5gO1xuIl0sIm5hbWVzIjpbInJ1bGVzQXNTdHJpbmciLCJydWxlc1V0aWxpdGllcyIsImxleGVyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsImxleGVyc1V0aWxpdGllcyIsInBhcnNlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIiLCJwYXJzZXJzVXRpbGl0aWVzIiwiVmlldyIsIkVsZW1lbnQiLCJrZXlVcEhhbmRsZXIiLCJldmVudCIsImVsZW1lbnQiLCJibmYiLCJnZXRCTkYiLCJuYW1lIiwiZ2V0TmFtZSIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJ2b2NhYnVsYXJ5IiwiZ2V0Vm9jYWJ1bGFyeSIsInZvY2FidWxhcnlOYW1lIiwiZ2V0Vm9jYWJ1bGFyeU5hbWUiLCJERUZBVUxUX0NVU1RPTV9HUkFNTUFSX05BTUUiLCJkZWZhdWx0Q3VzdG9tR3JhbW1hciIsInNldEJORiIsInNldFZvY2FidWxhcnkiLCJVU0VSX0RFRklORURfQ1VTVE9NX0dSQU1NQVJfTkFNRSIsInVzZXJEZWZpbmVkQ3VzdG9tR3JhbW1hciIsImN1c3RvbUdyYW1tYXJzIiwiaW5jbHVkZURlZmF1bHQiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJDb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJmcm9tQ3VzdG9tR3JhbW1hcnMiLCJub21pbmFsTGV4ZXIiLCJOb21pbmFsTGV4ZXIiLCJub21pbmFsUGFyc2VyIiwiTm9taW5hbFBhcnNlciIsInJ1bGVNYXAiLCJnZXRSdWxlTWFwIiwic3RhcnRSdWxlTmFtZSIsImdldFN0YXJ0UnVsZU5hbWUiLCJzdGFydFJ1bGUiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsInRva2VucyIsInRva2VuaXNlIiwibm9kZSIsInBhcnNlIiwicGFyc2VUcmVlIiwiYXNQYXJzZVRyZWUiLCJzZXRQYXJzZVRyZWUiLCJub21pbmFsUnVsZXMiLCJydWxlc0Zyb21QYXJzZXIiLCJtdWx0aUxpbmUiLCJydWxlc1N0cmluZyIsIm5vbWluYWxCTkYiLCJzZXROb21pbmFsQk5GIiwiY2hhbmdlSGFuZGxlciIsImN1c3RvbUdyYW1tYXIiLCJjaGlsZEVsZW1lbnRzIiwiYmluZCIsIkNvbHVtbnNEaXYiLCJTaXplYWJsZURpdiIsIlJvd3NEaXYiLCJTdWJIZWFkaW5nIiwiTmFtZVNlbGVjdCIsIm9uQ2hhbmdlIiwiVm9jYWJ1bGFyeU5hbWVTZWxlY3QiLCJWb2NhYnVsYXJ5VGV4dGFyZWEiLCJvbktleVVwIiwiUnVsZU5hbWVTZWxlY3QiLCJCTkZUZXh0YXJlYSIsIlN0YXJ0UnVsZU5hbWVJbnB1dCIsIlZlcnRpY2FsU3BsaXR0ZXJEaXYiLCJDb2x1bW5EaXYiLCJDb250ZW50VGV4dGFyZWEiLCJQYXJzZVRyZWVUZXh0YXJlYSIsIk5vbWluYWxCTkZUZXh0YXJlYSIsImluaXRpYWxpc2UiLCJhc3NpZ25Db250ZXh0IiwiaW5pdGlhbENvbnRlbnQiLCJpbml0aWFsU3RhcnRSdWxlTmFtZSIsInNldENvbnRlbnQiLCJzZXRTdGFydFJ1bGVOYW1lIiwidGFnTmFtZSIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwid2l0aFN0eWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFzTUE7OztlQUFBOzs7c0VBcE1zQjtzQkFFRTs4QkFDTzsrQkFDYTs0QkFDd0I7dUJBQ0s7bUVBRWxEOzZEQUNBO2lFQUNDOzREQUNBO2lFQUNHO2dFQUNDO2tFQUNFO3NFQUNDO21FQUNBO21FQUNBO3VFQUNFO2dFQUNBO29FQUNJO3VCQUVMOzhCQUM4Qzs7Ozs7O0FBRTlFLE1BQU0sRUFBRUEsYUFBYSxFQUFFLEdBQUdDLDRCQUFjLEVBQ2xDLEVBQUVDLDhCQUE4QixFQUFFLEdBQUdDLHNCQUFlLEVBQ3BELEVBQUVDLCtCQUErQixFQUFFLEdBQUdDLHVCQUFnQjtBQUU1RCxNQUFNQyxhQUFhQyxhQUFPO0lBQ3hCQyxlQUFlLENBQUNDLE9BQU9DO1FBQ3JCLFFBQVE7UUFDTixNQUFNQyxNQUFNLElBQUksQ0FBQ0MsTUFBTSxJQUNqQkMsT0FBTyxJQUFJLENBQUNDLE9BQU8sSUFDbkJDLFdBQVcsSUFBSSxDQUFDQyxXQUFXLElBQzNCQyxhQUFhLElBQUksQ0FBQ0MsYUFBYSxJQUMvQkMsaUJBQWlCLElBQUksQ0FBQ0MsaUJBQWlCO1FBRS9DLElBQUlQLFNBQVNRLHlD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
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ZpZXcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwiZWFzeVwiO1xuaW1wb3J0IHsgcnVsZXNVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tcGFyc2Vyc1wiO1xuaW1wb3J0IHsgTm9taW5hbExleGVyLCBOb21pbmFsUGFyc2VyIH0gZnJvbSBcIm9jY2FtLWdyYW1tYXJzXCI7XG5pbXBvcnQgeyBSb3dzRGl2LCBDb2x1bW5EaXYsIENvbHVtbnNEaXYsIFZlcnRpY2FsU3BsaXR0ZXJEaXYgfSBmcm9tIFwiZWFzeS1sYXlvdXRcIjtcbmltcG9ydCB7IGxleGVyc1V0aWxpdGllcywgcGFyc2Vyc1V0aWxpdGllcywgQ29tYmluZWRDdXN0b21HcmFtbWFyIH0gZnJvbSBcIi4uL2luZGV4XCI7ICAvLy9cblxuaW1wb3J0IFN1YkhlYWRpbmcgZnJvbSBcIi4vc3ViSGVhZGluZ1wiO1xuaW1wb3J0IE5hbWVTZWxlY3QgZnJvbSBcIi4vc2VsZWN0L25hbWVcIjtcbmltcG9ydCBTaXplYWJsZURpdiBmcm9tIFwiLi9kaXYvc2l6ZWFibGVcIjtcbmltcG9ydCBCTkZUZXh0YXJlYSBmcm9tIFwiLi90ZXh0YXJlYS9ibmZcIjtcbmltcG9ydCBSdWxlTmFtZVNlbGVjdCBmcm9tIFwiLi9zZWxlY3QvcnVsZU5hbWVcIjtcbmltcG9ydCBDb250ZW50VGV4dGFyZWEgZnJvbSBcIi4vdGV4dGFyZWEvY29udGVudFwiO1xuaW1wb3J0IFBhcnNlVHJlZVRleHRhcmVhIGZyb20gXCIuL3RleHRhcmVhL3BhcnNlVHJlZVwiO1xuaW1wb3J0IFN0YXJ0UnVsZU5hbWVJbnB1dCBmcm9tIFwiLi9pbnB1dC9zdGFydFJ1bGVOYW1lXCI7XG5pbXBvcnQgTm9taW5hbEJORlRleHRhcmVhIGZyb20gXCIuL3RleHRhcmVhL25vbWluYWxCTkZcIjtcbmltcG9ydCBWb2NhYnVsYXJ5VGV4dGFyZWEgZnJvbSBcIi4vdGV4dGFyZWEvdm9jYWJ1bGFyeVwiO1xuaW1wb3J0IFZvY2FidWxhcnlOYW1lU2VsZWN0IGZyb20gXCIuL3NlbGVjdC92b2NhYnVsYXJ5TmFtZVwiO1xuaW1wb3J0IGRlZmF1bHRDdXN0b21HcmFtbWFyIGZyb20gXCIuL2N1c3RvbUdyYW1tYXIvZGVmYXVsdFwiO1xuaW1wb3J0IHVzZXJEZWZpbmVkQ3VzdG9tR3JhbW1hciBmcm9tIFwiLi9jdXN0b21HcmFtbWFyL3VzZXJEZWZpbmVkXCI7XG5cbmltcG9ydCB7IHJ1bGVzRnJvbVBhcnNlciB9IGZyb20gXCIuL3V0aWxpdGllcy9ydWxlc1wiO1xuaW1wb3J0IHsgREVGQVVMVF9DVVNUT01fR1JBTU1BUl9OQU1FLCBVU0VSX0RFRklORURfQ1VTVE9NX0dSQU1NQVJfTkFNRSB9IGZyb20gXCIuL2dyYW1tYXJOYW1lc1wiO1xuXG5jb25zdCB7IHJ1bGVzQXNTdHJpbmcgfSA9IHJ1bGVzVXRpbGl0aWVzLFxuICAgICAgeyBsZXhlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIgfSA9IGxleGVyc1V0aWxpdGllcyxcbiAgICAgIHsgcGFyc2VyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciB9ID0gcGFyc2Vyc1V0aWxpdGllcztcblxuY2xhc3MgVmlldyBleHRlbmRzIEVsZW1lbnQge1xuICBrZXlVcEhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcbiAgICAvLyB0cnkge1xuICAgICAgY29uc3QgYm5mID0gdGhpcy5nZXRCTkYoKSxcbiAgICAgICAgICAgIG5hbWUgPSB0aGlzLmdldE5hbWUoKSxcbiAgICAgICAgICAgIHJ1bGVOYW1lID0gdGhpcy5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgICAgdm9jYWJ1bGFyeSA9IHRoaXMuZ2V0Vm9jYWJ1bGFyeSgpLFxuICAgICAgICAgICAgdm9jYWJ1bGFyeU5hbWUgPSB0aGlzLmdldFZvY2FidWxhcnlOYW1lKCk7XG5cbiAgICAgIGlmIChuYW1lID09PSBERUZBVUxUX0NVU1RPTV9HUkFNTUFSX05BTUUpIHtcbiAgICAgICAgZGVmYXVsdEN1c3RvbUdyYW1tYXIuc2V0Qk5GKHJ1bGVOYW1lLCBibmYpO1xuXG4gICAgICAgIGRlZmF1bHRDdXN0b21HcmFtbWFyLnNldFZvY2FidWxhcnkodm9jYWJ1bGFyeU5hbWUsIHZvY2FidWxhcnkpO1xuICAgICAgfVxuXG4gICAgICBpZiAobmFtZSA9PT0gVVNFUl9ERUZJTkVEX0NVU1RPTV9HUkFNTUFSX05BTUUpIHtcbiAgICAgICAgdXNlckRlZmluZWRDdXN0b21HcmFtbWFyLnNldEJORihydWxlTmFtZSwgYm5mKTtcblxuICAgICAgICB1c2VyRGVmaW5lZEN1c3RvbUdyYW1tYXIuc2V0Vm9jYWJ1bGFyeSh2b2NhYnVsYXJ5TmFtZSwgdm9jYWJ1bGFyeSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGN1c3RvbUdyYW1tYXJzID0gW1xuICAgICAgICAgICAgICB1c2VyRGVmaW5lZEN1c3RvbUdyYW1tYXIsXG4gICAgICAgICAgICAgIGRlZmF1bHRDdXN0b21HcmFtbWFyLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGluY2x1ZGVEZWZhdWx0ID0gZmFsc2UsXG4gICAgICAgICAgICBjb21iaW5lZEN1c3RvbUdyYW1tYXIgPSBDb21iaW5lZEN1c3RvbUdyYW1tYXIuZnJvbUN1c3RvbUdyYW1tYXJzKGN1c3RvbUdyYW1tYXJzLCBpbmNsdWRlRGVmYXVsdCksXG4gICAgICAgICAgICBub21pbmFsTGV4ZXIgPSBsZXhlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIoTm9taW5hbExleGVyLCBjb21iaW5lZEN1c3RvbUdyYW1tYXIpLFxuICAgICAgICAgICAgbm9taW5hbFBhcnNlciA9IHBhcnNlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIoTm9taW5hbFBhcnNlciwgY29tYmluZWRDdXN0b21HcmFtbWFyKTtcblxuICAgICAgY29uc3QgcnVsZU1hcCA9IG5vbWluYWxQYXJzZXIuZ2V0UnVsZU1hcCgpLFxuICAgICAgICAgICAgc3RhcnRSdWxlTmFtZSA9IHRoaXMuZ2V0U3RhcnRSdWxlTmFtZSgpLFxuICAgICAgICAgICAgc3RhcnRSdWxlID0gcnVsZU1hcFtzdGFydFJ1bGVOYW1lXSwgLy8vXG4gICAgICAgICAgICBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXG4gICAgICAgICAgICB0b2tlbnMgPSBub21pbmFsTGV4ZXIudG9rZW5pc2UoY29udGVudCksXG4gICAgICAgICAgICBub2RlID0gbm9taW5hbFBhcnNlci5wYXJzZSh0b2tlbnMsIHN0YXJ0UnVsZSk7XG5cbiAgICAgIGxldCBwYXJzZVRyZWUgPSBudWxsO1xuXG4gICAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBwYXJzZVRyZWUgPSBub2RlLmFzUGFyc2VUcmVlKHRva2Vucyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2V0UGFyc2VUcmVlKHBhcnNlVHJlZSk7XG5cbiAgICAgIGNvbnN0IG5vbWluYWxSdWxlcyA9IHJ1bGVzRnJvbVBhcnNlcihub21pbmFsUGFyc2VyKSxcbiAgICAgICAgICAgIG11bHRpTGluZSA9IHRydWUsXG4gICAgICAgICAgICBydWxlc1N0cmluZyA9IHJ1bGVzQXNTdHJpbmcobm9taW5hbFJ1bGVzLCBtdWx0aUxpbmUpLFxuICAgICAgICAgICAgbm9taW5hbEJORiA9IHJ1bGVzU3RyaW5nOyAgLy8vXG5cbiAgICAgIHRoaXMuc2V0Tm9taW5hbEJORihub21pbmFsQk5GKTtcbiAgICAvLyB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgIC8vXG4gICAgLy8gICB0aGlzLmNsZWFyUGFyc2VUcmVlKCk7XG4gICAgLy9cbiAgICAvLyAgIHRoaXMuY2xlYXJOb21pbmFsQk5GKCk7XG4gICAgLy8gfVxuICB9XG5cbiAgY2hhbmdlSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xuICAgIGxldCBjdXN0b21HcmFtbWFyO1xuXG4gICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0TmFtZSgpLFxuICAgICAgICAgIHJ1bGVOYW1lID0gdGhpcy5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgIHZvY2FidWxhcnlOYW1lID0gdGhpcy5nZXRWb2NhYnVsYXJ5TmFtZSgpO1xuXG4gICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICBjYXNlIERFRkFVTFRfQ1VTVE9NX0dSQU1NQVJfTkFNRTpcbiAgICAgICAgY3VzdG9tR3JhbW1hciA9IGRlZmF1bHRDdXN0b21HcmFtbWFyO1xuXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFVTRVJfREVGSU5FRF9DVVNUT01fR1JBTU1BUl9OQU1FOlxuICAgICAgICBjdXN0b21HcmFtbWFyID0gdXNlckRlZmluZWRDdXN0b21HcmFtbWFyO1xuXG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNvbnN0IGJuZiA9IGN1c3RvbUdyYW1tYXIuZ2V0Qk5GKHJ1bGVOYW1lKSxcbiAgICAgICAgICB2b2NhYnVsYXJ5ID0gY3VzdG9tR3JhbW1hci5nZXRWb2NhYnVsYXJ5KHZvY2FidWxhcnlOYW1lKTtcblxuICAgIHRoaXMuc2V0Qk5GKGJuZik7XG5cbiAgICB0aGlzLnNldFZvY2FidWxhcnkodm9jYWJ1bGFyeSk7XG4gIH1cblxuICBjaGlsZEVsZW1lbnRzKCkge1xuICAgIGNvbnN0IGtleVVwSGFuZGxlciA9IHRoaXMua2V5VXBIYW5kbGVyLmJpbmQodGhpcyksXG4gICAgICAgICAgY2hhbmdlSGFuZGxlciA9IHRoaXMuY2hhbmdlSGFuZGxlci5iaW5kKHRoaXMpO1xuXG4gICAgcmV0dXJuIChbXG5cbiAgICAgIDxDb2x1bW5zRGl2PlxuICAgICAgICA8U2l6ZWFibGVEaXY+XG4gICAgICAgICAgPFJvd3NEaXY+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgQ3VzdG9tIGdyYW1tYXJcbiAgICAgICAgICAgIDwvU3ViSGVhZGluZz5cbiAgICAgICAgICAgIDxOYW1lU2VsZWN0IG9uQ2hhbmdlPXtjaGFuZ2VIYW5kbGVyfSAvPlxuICAgICAgICAgICAgPFN1YkhlYWRpbmc+XG4gICAgICAgICAgICAgIFZvY2FidWxhcnlcbiAgICAgICAgICAgIDwvU3ViSGVhZGluZz5cbiAgICAgICAgICAgIDxWb2NhYnVsYXJ5TmFtZVNlbGVjdCBvbkNoYW5nZT17Y2hhbmdlSGFuZGxlcn0gLz5cbiAgICAgICAgICAgIDxWb2NhYnVsYXJ5VGV4dGFyZWEgb25LZXlVcD17a2V5VXBIYW5kbGVyfSAvPlxuICAgICAgICAgICAgPFN1YkhlYWRpbmc+XG4gICAgICAgICAgICAgIEJORlxuICAgICAgICAgICAgPC9TdWJIZWFkaW5nPlxuICAgICAgICAgICAgPFJ1bGVOYW1lU2VsZWN0IG9uQ2hhbmdlPXtjaGFuZ2VIYW5kbGVyfSAvPlxuICAgICAgICAgICAgPEJORlRleHRhcmVhIG9uS2V5VXA9e2tleVVwSGFuZGxlcn0gLz5cbiAgICAgICAgICAgIDxTdWJIZWFkaW5nPlxuICAgICAgICAgICAgICBTdGFydCBydWxlXG4gICAgICAgICAgICA8L1N1YkhlYWRpbmc+XG4gICAgICAgICAgICA8U3RhcnRSdWxlTmFtZUlucHV0IG9uS2V5VXA9e2tleVVwSGFuZGxlcn0gLz5cbiAgICAgICAgICA8L1Jvd3NEaXY+XG4gICAgICAgIDwvU2l6ZWFibGVEaXY+XG4gICAgICAgIDxWZXJ0aWNhbFNwbGl0dGVyRGl2IC8+XG4gICAgICAgIDxDb2x1bW5EaXY+XG4gICAgICAgICAgPFJvd3NEaXY+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgQ29udGVudFxuICAgICAgICAgICAgPC9TdWJIZWFkaW5nPlxuICAgICAgICAgICAgPENvbnRlbnRUZXh0YXJlYSBvbktleVVwPXtrZXlVcEhhbmRsZXJ9IC8+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgUGFyc2UgdHJlZVxuICAgICAgICAgICAgPC9TdWJIZWFkaW5nPlxuICAgICAgICAgICAgPFBhcnNlVHJlZVRleHRhcmVhIC8+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgTm9taW5hbCBCTkZcbiAgICAgICAgICAgIDwvU3ViSGVhZGluZz5cbiAgICAgICAgICAgIDxOb21pbmFsQk5GVGV4dGFyZWEgLz5cbiAgICAgICAgICA8L1Jvd3NEaXY+XG4gICAgICAgIDwvQ29sdW1uRGl2PlxuICAgICAgPC9Db2x1bW5zRGl2PlxuXG4gICAgXSk7XG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIHRoaXMuYXNzaWduQ29udGV4dCgpO1xuXG4gICAgY29uc3QgeyBpbml0aWFsQ29udGVudCwgaW5pdGlhbFN0YXJ0UnVsZU5hbWUgfSA9IHRoaXMuY29uc3RydWN0b3I7XG5cbiAgICBjb25zdCBjb250ZW50ID0gaW5pdGlhbENvbnRlbnQsIC8vL1xuICAgICAgICAgIHN0YXJ0UnVsZU5hbWUgPSBpbml0aWFsU3RhcnRSdWxlTmFtZTsgLy8vXG5cbiAgICB0aGlzLnNldENvbnRlbnQoY29udGVudCk7XG5cbiAgICB0aGlzLnNldFN0YXJ0UnVsZU5hbWUoc3RhcnRSdWxlTmFtZSk7XG5cbiAgICB0aGlzLmNoYW5nZUhhbmRsZXIoKTtcblxuICAgIHRoaXMua2V5VXBIYW5kbGVyKCk7XG4gIH1cblxuICBzdGF0aWMgaW5pdGlhbFN0YXJ0UnVsZU5hbWUgPSBcInN0ZXBcIjtcblxuICBzdGF0aWMgaW5pdGlhbENvbnRlbnQgPSBgeF55ID0geF95XG5gO1xuXG4gIHN0YXRpYyB0YWdOYW1lID0gXCJkaXZcIjtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcInZpZXdcIlxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGUoVmlldylgXG5cbiAgcGFkZGluZzogMXJlbTtcbiAgXG5gO1xuIl0sIm5hbWVzIjpbInJ1bGVzQXNTdHJpbmciLCJydWxlc1V0aWxpdGllcyIsImxleGVyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsImxleGVyc1V0aWxpdGllcyIsInBhcnNlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIiLCJwYXJzZXJzVXRpbGl0aWVzIiwiVmlldyIsIkVsZW1lbnQiLCJrZXlVcEhhbmRsZXIiLCJldmVudCIsImVsZW1lbnQiLCJibmYiLCJnZXRCTkYiLCJuYW1lIiwiZ2V0TmFtZSIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJ2b2NhYnVsYXJ5IiwiZ2V0Vm9jYWJ1bGFyeSIsInZvY2FidWxhcnlOYW1lIiwiZ2V0Vm9jYWJ1bGFyeU5hbWUiLCJERUZBVUxUX0NVU1RPTV9HUkFNTUFSX05BTUUiLCJkZWZhdWx0Q3VzdG9tR3JhbW1hciIsInNldEJORiIsInNldFZvY2FidWxhcnkiLCJVU0VSX0RFRklORURfQ1VTVE9NX0dSQU1NQVJfTkFNRSIsInVzZXJEZWZpbmVkQ3VzdG9tR3JhbW1hciIsImN1c3RvbUdyYW1tYXJzIiwiaW5jbHVkZURlZmF1bHQiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJDb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJmcm9tQ3VzdG9tR3JhbW1hcnMiLCJub21pbmFsTGV4ZXIiLCJOb21pbmFsTGV4ZXIiLCJub21pbmFsUGFyc2VyIiwiTm9taW5hbFBhcnNlciIsInJ1bGVNYXAiLCJnZXRSdWxlTWFwIiwic3RhcnRSdWxlTmFtZSIsImdldFN0YXJ0UnVsZU5hbWUiLCJzdGFydFJ1bGUiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsInRva2VucyIsInRva2VuaXNlIiwibm9kZSIsInBhcnNlIiwicGFyc2VUcmVlIiwiYXNQYXJzZVRyZWUiLCJzZXRQYXJzZVRyZWUiLCJub21pbmFsUnVsZXMiLCJydWxlc0Zyb21QYXJzZXIiLCJtdWx0aUxpbmUiLCJydWxlc1N0cmluZyIsIm5vbWluYWxCTkYiLCJzZXROb21pbmFsQk5GIiwiY2hhbmdlSGFuZGxlciIsImN1c3RvbUdyYW1tYXIiLCJjaGlsZEVsZW1lbnRzIiwiYmluZCIsIkNvbHVtbnNEaXYiLCJTaXplYWJsZURpdiIsIlJvd3NEaXYiLCJTdWJIZWFkaW5nIiwiTmFtZVNlbGVjdCIsIm9uQ2hhbmdlIiwiVm9jYWJ1bGFyeU5hbWVTZWxlY3QiLCJWb2NhYnVsYXJ5VGV4dGFyZWEiLCJvbktleVVwIiwiUnVsZU5hbWVTZWxlY3QiLCJCTkZUZXh0YXJlYSIsIlN0YXJ0UnVsZU5hbWVJbnB1dCIsIlZlcnRpY2FsU3BsaXR0ZXJEaXYiLCJDb2x1bW5EaXYiLCJDb250ZW50VGV4dGFyZWEiLCJQYXJzZVRyZWVUZXh0YXJlYSIsIk5vbWluYWxCTkZUZXh0YXJlYSIsImluaXRpYWxpc2UiLCJhc3NpZ25Db250ZXh0IiwiaW5pdGlhbENvbnRlbnQiLCJpbml0aWFsU3RhcnRSdWxlTmFtZSIsInNldENvbnRlbnQiLCJzZXRTdGFydFJ1bGVOYW1lIiwidGFnTmFtZSIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwid2l0aFN0eWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFzTUE7OztlQUFBOzs7c0VBcE1zQjtzQkFFRTs4QkFDTzsrQkFDYTs0QkFDd0I7dUJBQ0s7bUVBRWxEOzZEQUNBO2lFQUNDOzREQUNBO2lFQUNHO2dFQUNDO2tFQUNFO3NFQUNDO21FQUNBO21FQUNBO3VFQUNFO2dFQUNBO29FQUNJO3VCQUVMOzhCQUM4Qzs7Ozs7O0FBRTlFLE1BQU0sRUFBRUEsYUFBYSxFQUFFLEdBQUdDLDRCQUFjLEVBQ2xDLEVBQUVDLDhCQUE4QixFQUFFLEdBQUdDLHNCQUFlLEVBQ3BELEVBQUVDLCtCQUErQixFQUFFLEdBQUdDLHVCQUFnQjtBQUU1RCxNQUFNQyxhQUFhQyxhQUFPO0lBQ3hCQyxlQUFlLENBQUNDLE9BQU9DO1FBQ3JCLFFBQVE7UUFDTixNQUFNQyxNQUFNLElBQUksQ0FBQ0MsTUFBTSxJQUNqQkMsT0FBTyxJQUFJLENBQUNDLE9BQU8sSUFDbkJDLFdBQVcsSUFBSSxDQUFDQyxXQUFXLElBQzNCQyxhQUFhLElBQUksQ0FBQ0MsYUFBYSxJQUMvQkMsaUJBQWlCLElBQUksQ0FBQ0MsaUJBQWlCO1FB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
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "ruleFromBNF", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return ruleFromBNF;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _occamlexers = require("occam-lexers");
|
|
12
|
+
const _necessary = require("necessary");
|
|
13
|
+
const _occamparsers = require("occam-parsers");
|
|
14
|
+
const bnfLexer = _occamlexers.BNFLexer.fromNothing(), bnfParser = _occamparsers.BNFParser.fromNothing();
|
|
15
|
+
const { first } = _necessary.arrayUtilities;
|
|
16
|
+
function ruleFromBNF(bnf, rules) {
|
|
17
|
+
const content = bnf, tokens = bnfLexer.tokenise(content), node = bnfParser.parse(tokens);
|
|
18
|
+
let rule = null;
|
|
19
|
+
if (node !== null) {
|
|
20
|
+
const rules = node.generateRules(_occamparsers.Rule), rulesLength = rules.length;
|
|
21
|
+
if (rulesLength === 1) {
|
|
22
|
+
const firstRule = first(rules);
|
|
23
|
+
rule = firstRule; ///
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (rule !== null) {
|
|
27
|
+
rules.push(rule);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYm5mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBCTkZMZXhlciB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuaW1wb3J0IHsgQk5GUGFyc2VyLCBSdWxlIH0gZnJvbSBcIm9jY2FtLXBhcnNlcnNcIjtcblxuY29uc3QgYm5mTGV4ZXIgPSBCTkZMZXhlci5mcm9tTm90aGluZygpLFxuICAgICAgYm5mUGFyc2VyID0gQk5GUGFyc2VyLmZyb21Ob3RoaW5nKCk7XG5cbmNvbnN0IHsgZmlyc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gcnVsZUZyb21CTkYoYm5mLCBydWxlcykge1xuICBjb25zdCBjb250ZW50ID0gYm5mLCAgLy8vXG4gICAgICAgIHRva2VucyA9IGJuZkxleGVyLnRva2VuaXNlKGNvbnRlbnQpLFxuICAgICAgICBub2RlID0gYm5mUGFyc2VyLnBhcnNlKHRva2Vucyk7XG5cbiAgbGV0IHJ1bGUgPSBudWxsO1xuXG4gIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgcnVsZXMgPSBub2RlLmdlbmVyYXRlUnVsZXMoUnVsZSksXG4gICAgICAgICAgcnVsZXNMZW5ndGggPSBydWxlcy5sZW5ndGg7XG5cbiAgICBpZiAocnVsZXNMZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IGZpcnN0UnVsZSA9IGZpcnN0KHJ1bGVzKTtcblxuICAgICAgcnVsZSA9IGZpcnN0UnVsZTsgLy8vXG4gICAgfVxuICB9XG5cbiAgaWYgKHJ1bGUgIT09IG51bGwpIHtcbiAgICBydWxlcy5wdXNoKHJ1bGUpO1xuICB9XG59Il0sIm5hbWVzIjpbInJ1bGVGcm9tQk5GIiwiYm5mTGV4ZXIiLCJCTkZMZXhlciIsImZyb21Ob3RoaW5nIiwiYm5mUGFyc2VyIiwiQk5GUGFyc2VyIiwiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsImJuZiIsInJ1bGVzIiwiY29udGVudCIsInRva2VucyIsInRva2VuaXNlIiwibm9kZSIsInBhcnNlIiwicnVsZSIsImdlbmVyYXRlUnVsZXMiLCJSdWxlIiwicnVsZXNMZW5ndGgiLCJsZW5ndGgiLCJmaXJzdFJ1bGUiLCJwdXNoIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXZ0JBOzs7ZUFBQUE7Ozs2QkFUUzsyQkFDTTs4QkFDQztBQUVoQyxNQUFNQyxXQUFXQyxxQkFBUSxDQUFDQyxXQUFXLElBQy9CQyxZQUFZQyx1QkFBUyxDQUFDRixXQUFXO0FBRXZDLE1BQU0sRUFBRUcsS0FBSyxFQUFFLEdBQUdDLHlCQUFjO0FBRXpCLFNBQVNQLFlBQVlRLEdBQUcsRUFBRUMsS0FBSztJQUNwQyxNQUFNQyxVQUFVRixLQUNWRyxTQUFTVixTQUFTVyxRQUFRLENBQUNGLFVBQzNCRyxPQUFPVCxVQUFVVSxLQUFLLENBQUNIO0lBRTdCLElBQUlJLE9BQU87SUFFWCxJQUFJRixTQUFTLE1BQU07UUFDakIsTUFBTUosUUFBUUksS0FBS0csYUFBYSxDQUFDQyxrQkFBSSxHQUMvQkMsY0FBY1QsTUFBTVUsTUFBTTtRQUVoQyxJQUFJRCxnQkFBZ0IsR0FBRztZQUNyQixNQUFNRSxZQUFZZCxNQUFNRztZQUV4Qk0sT0FBT0ssV0FBVyxHQUFHO1FBQ3ZCO0lBQ0Y7SUFFQSxJQUFJTCxTQUFTLE1BQU07UUFDakJOLE1BQU1ZLElBQUksQ0FBQ047SUFDYjtBQUNGIn0=
|
|
@@ -164,4 +164,4 @@ function typeFromSignificantTokenTypeTerminalNode(significantTokenTypeTerminalNo
|
|
|
164
164
|
return type;
|
|
165
165
|
}
|
|
166
166
|
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmFsaWRhdGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuaW1wb3J0IHsgcXVlcnlVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tcXVlcnlcIjtcblxuaW1wb3J0IHR5cGVzTWFwIGZyb20gXCIuLi90eXBlc01hcFwiO1xuXG5pbXBvcnQgeyBub21pbmFsTGV4ZXIgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25vbWluYWxcIjtcbmltcG9ydCB7IGVzY2FwZSwgdHJpbSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcmVndWxhckV4cHJlc3Npb25cIjtcbmltcG9ydCB7IEVNUFRZX1NUUklORywgVU5BU1NJR05FRF9UWVBFLCBCQVNFX1RZUEVfU1lNQk9MLCBSRUdVTEFSX0VYUFJFU1NJT05fVFlQRSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGN1c3RvbUdyYW1tYXJCTkZMZXhlciwgY3VzdG9tR3JhbW1hckJORlBhcnNlciwgY3VzdG9tR3JhbW1hclZvY2FidWxhcnlMZXhlciwgY3VzdG9tR3JhbW1hclZvY2FidWxhcnlQYXJzZXIgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2dyYW1tYXJcIjtcblxuY29uc3QgeyBmaXJzdCwgc2Vjb25kIH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gPSBxdWVyeVV0aWxpdGllcztcblxuY29uc3QgZXhwcmVzc2lvbk5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiLy9leHByZXNzaW9uXCIpLFxuICAgICAgcnVsZU5hbWVUZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9kb2N1bWVudC9ydWxlL25hbWUvQCohXCIpLFxuICAgICAgdW5hc3NpZ25lZFRlcm1pbmFsTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2V4cHJlc3Npb24vQHVuYXNzaWduZWQhXCIpLFxuICAgICAgc3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvL3N0cmluZ0xpdGVyYWwvQCohXCIpLFxuICAgICAgcmVndWxhckV4cHJlc3Npb25UZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9leHByZXNzaW9uL0ByZWd1bGFyLWV4cHJlc3Npb24hXCIpLFxuICAgICAgc2lnbmlmaWNhbnRUb2tlblR5cGVUZXJtaW5hbE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiLy9zaWduaWZpY2FudFRva2VuVHlwZS9AKiFcIik7XG5cbmNvbnN0IGFuY2hvcnNSZWd1bGFyRXhwcmVzc2lvbiA9IC8oPzwhXFxcXClcXCQvO1xuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVCTkYoYm5mLCBydWxlTmFtZSkge1xuICBjb25zdCBjb250ZW50ID0gYm5mLFxuICAgICAgICB0b2tlbnMgPSBjdXN0b21HcmFtbWFyQk5GTGV4ZXIudG9rZW5pc2UoY29udGVudCksXG4gICAgICAgIG5vZGUgPSBjdXN0b21HcmFtbWFyQk5GUGFyc2VyLnBhcnNlKHRva2Vucyk7XG5cbiAgaWYgKG5vZGUgPT09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBydWxlTmFtZVRlcm1pbmFsTm9kZSA9IHJ1bGVOYW1lVGVybWluYWxOb2RlUXVlcnkobm9kZSk7XG5cbiAgaWYgKHJ1bGVOYW1lVGVybWluYWxOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgbmFtZSA9IG5hbWVGcm9tUnVsZU5hbWVUZXJtaW5hbE5vZGUocnVsZU5hbWVUZXJtaW5hbE5vZGUpO1xuXG4gICAgaWYgKG5hbWUgIT09IHJ1bGVOYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSAnJHtuYW1lfScgcnVsZSBzaG91bGQgYmUgbmFtZWQgJyR7cnVsZU5hbWV9Jy5gKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCB0eXBlcyA9IHR5cGVzTWFwW3J1bGVOYW1lXSxcbiAgICAgICAgc2lnbmlmaWNhbnRUb2tlblR5cGVUZXJtaW5hbE5vZGVzID0gc2lnbmlmaWNhbnRUb2tlblR5cGVUZXJtaW5hbE5vZGVzUXVlcnkobm9kZSk7XG5cbiAgc2lnbmlmaWNhbnRUb2tlblR5cGVUZXJtaW5hbE5vZGVzLmZvckVhY2goKHNpZ25pZmljYW50VG9rZW5UeXBlVGVybWluYWxOb2RlKSA9PiB7XG4gICAgY29uc3QgdHlwZSA9IHR5cGVGcm9tU2lnbmlmaWNhbnRUb2tlblR5cGVUZXJtaW5hbE5vZGUoc2lnbmlmaWNhbnRUb2tlblR5cGVUZXJtaW5hbE5vZGUpLFxuICAgICAgICAgIHR5cGVzSW5jbHVkZVR5cGUgPSB0eXBlcy5pbmNsdWRlcyh0eXBlKTtcblxuICAgIGlmICghdHlwZXNJbmNsdWRlVHlwZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgJyR7dHlwZX0nIHR5cGUgaXMgbm90IGluY2x1ZGVkIGluIHRoZSAnJHtydWxlTmFtZX0nIHJ1bGUncyB0eXBlcy5gKVxuICAgIH1cbiAgfSk7XG5cbiAgY29uc3Qgc3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZXMgPSBzdHJpbmdMaXRlcmFsVGVybWluYWxOb2Rlc1F1ZXJ5KG5vZGUpO1xuXG4gIHN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGVzLmZvckVhY2goKHN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGUpID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gY29udGVudEZyb21TdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlKHN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGUpO1xuXG4gICAgaWYgKGNvbnRlbnQgPT09IEJBU0VfVFlQRV9TWU1CT0wpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIFwiJHtjb250ZW50fVwiIHN0cmluZyBsaXRlcmFsIGNhbm5vdCBiZSB0aGUgc2FtZSBhcyB0aGUgYmFzZSB0eXBlIHN5bWJvbC5gKTtcbiAgICB9XG5cbiAgICBjb25zdCB0b2tlbnMgPSBub21pbmFsTGV4ZXIudG9rZW5pc2UoY29udGVudCksXG4gICAgICAgICAgdG9rZW5zTGVuZ3RoID0gdG9rZW5zLmxlbmd0aDtcblxuICAgIGlmICh0b2tlbnNMZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVG9rZW5pc2luZyB0aGUgXCIke2NvbnRlbnR9XCIgc3RyaW5nIGxpdGVyYWwgZG9lcyBub3QgcmVzdWx0IGluIGEgc2luZ2xlIHRva2VuLmApO1xuICAgIH1cblxuICAgIGNvbnN0IGZpcnN0VG9rZW4gPSBmaXJzdCh0b2tlbnMpLFxuICAgICAgICAgIHRva2VuID0gZmlyc3RUb2tlbiwgLy8vXG4gICAgICAgICAgdHlwZSA9IHRva2VuLmdldFR5cGUoKSxcbiAgICAgICAgICB0eXBlc0luY2x1ZGVUeXBlID0gdHlwZXMuaW5jbHVkZXModHlwZSk7XG5cbiAgICBpZiAoIXR5cGVzSW5jbHVkZVR5cGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIFwiJHtjb250ZW50fVwiIHN0cmluZyBsaXRlcmFsJ3MgdG9rZW4ncyAnJHt0eXBlfScgdHlwZSBpcyBub3QgaW5jbHVkZWQgaW4gdGhlICcke3J1bGVOYW1lfScgcnVsZSdzIHR5cGVzLmApXG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVm9jYWJ1bGFyeSh2b2NhYnVsYXJ5KSB7XG4gIGNvbnN0IGNvbnRlbnQgPSB2b2NhYnVsYXJ5LCAvLy9cbiAgICAgICAgdG9rZW5zID0gY3VzdG9tR3JhbW1hclZvY2FidWxhcnlMZXhlci50b2tlbmlzZShjb250ZW50KSxcbiAgICAgICAgbm9kZSA9IGN1c3RvbUdyYW1tYXJWb2NhYnVsYXJ5UGFyc2VyLnBhcnNlKHRva2Vucyk7XG5cbiAgaWYgKG5vZGUgPT09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBleHByZXNzaW9uTm9kZXMgPSBleHByZXNzaW9uTm9kZXNRdWVyeShub2RlKTtcblxuICBleHByZXNzaW9uTm9kZXMuZm9yRWFjaCgoZXhwcmVzc2lvbk5vZGUpID0+IHtcbiAgICBjb25zdCByYXcgPSB0cnVlLFxuICAgICAgICAgIHR5cGUgPSB0eXBlRnJvbUV4cHJlc3Npb25Ob2RlKGV4cHJlc3Npb25Ob2RlKSxcbiAgICAgICAgICBjb250ZW50ID0gY29udGVudEZyb21FeHByZXNzaW9uTm9kZShleHByZXNzaW9uTm9kZSwgcmF3KTtcblxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBVTkFTU0lHTkVEX1RZUEU6IHtcblxuICAgICAgICBjb25zdCB0b2tlbnMgPSBub21pbmFsTGV4ZXIudG9rZW5pc2UoY29udGVudCksXG4gICAgICAgICAgICAgIHRva2Vuc0xlbmd0aCA9IHRva2Vucy5sZW5ndGg7XG5cbiAgICAgICAgaWYgKHRva2Vuc0xlbmd0aCA+IDEpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRva2VuaXNpbmcgdGhlICcke2NvbnRlbnR9JyBjb250ZW50IHJlc3VsdHMgaW4gbW9yZSB0aGFuIG9uZSB0b2tlbi5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpcnN0VG9rZW4gPSBmaXJzdCh0b2tlbnMpLFxuICAgICAgICAgICAgICB0b2tlbiA9IGZpcnN0VG9rZW4sXG4gICAgICAgICAgICAgIHR5cGUgPSB0b2tlbi5nZXRUeXBlKCk7XG5cbiAgICAgICAgaWYgKHR5cGUgIT09IFVOQVNTSUdORURfVFlQRSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlICcke3R5cGV9JyB0eXBlIG9mIHRoZSAnJHtjb250ZW50fScgdG9rZW4gaXMgbm90ICd1bmFzc2lnbmVkJy5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb250ZW50ID09PSBCQVNFX1RZUEVfU1lNQk9MKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgJyR7Y29udGVudH0nIHRva2VuIGNhbm5vdCBiZSB0aGUgc2FtZSBhcyB0aGUgYmFzZSB0eXBlIHN5bWJvbC5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFJFR1VMQVJfRVhQUkVTU0lPTl9UWVBFOiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbmV3IFJlZ0V4cChjb250ZW50KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zdCB7IG1lc3NhZ2UgfSA9IGVycm9yO1xuXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgLyR7Y29udGVudH0vIHJlZ3VsYXIgZXhwcmVzc2lvbiBpcyBtYWxmb3JtZWQgYW5kIGdpdmVzIHRoZSBtZXNzYWdlICcke21lc3NhZ2V9Jy5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBzdWNjZXNzO1xuXG4gICAgICAgIGNvbnN0IHJlZ0V4cCA9IG5ldyBSZWdFeHAoYF4oPzoke2NvbnRlbnR9KWApO1xuXG4gICAgICAgIHN1Y2Nlc3MgPSByZWdFeHAudGVzdChFTVBUWV9TVFJJTkcpO1xuXG4gICAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgLyR7Y29udGVudH0vIHJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRjaGVzIGFuIGVtcHR5IHN0cmluZy5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1Y2Nlc3MgPSBhbmNob3JzUmVndWxhckV4cHJlc3Npb24udGVzdChjb250ZW50KTtcblxuICAgICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIC8ke2NvbnRlbnR9LyByZWd1bGFyIGV4cHJlc3Npb24gY29udGFpbnMgYW4gZW5kIG9mIHN0cmluZyBhbmNob3IuYCk7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGVudEZyb21FeHByZXNzaW9uTm9kZShleHByZXNzaW9uTm9kZSwgcmF3ID0gZmFsc2UpIHtcbiAgbGV0IGNvbnRlbnQ7XG5cbiAgY29uc3QgdW5hc3NpZ25lZFRlcm1pbmFsTm9kZSA9IHVuYXNzaWduZWRUZXJtaW5hbE5vZGVRdWVyeShleHByZXNzaW9uTm9kZSksXG4gICAgICAgIHJlZ3VsYXJFeHByZXNzaW9uVGVybWluYWxOb2RlID0gcmVndWxhckV4cHJlc3Npb25UZXJtaW5hbE5vZGVRdWVyeShleHByZXNzaW9uTm9kZSk7XG5cbiAgaWYgKGZhbHNlKSB7XG4gICAgLy8vXG4gIH0gZWxzZSBpZiAodW5hc3NpZ25lZFRlcm1pbmFsTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnRlbnQgPSB1bmFzc2lnbmVkVGVybWluYWxOb2RlLmdldENvbnRlbnQoKTtcblxuICAgIGlmICghcmF3KSB7XG4gICAgICBjb250ZW50ID0gZXNjYXBlKGNvbnRlbnQpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChyZWd1bGFyRXhwcmVzc2lvblRlcm1pbmFsTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnRlbnQgPSByZWd1bGFyRXhwcmVzc2lvblRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCk7XG5cbiAgICBjb250ZW50ID0gdHJpbShjb250ZW50KTsgLy8vXG4gIH1cblxuICByZXR1cm4gY29udGVudDtcbn1cblxuZnVuY3Rpb24gdHlwZUZyb21FeHByZXNzaW9uTm9kZShleHByZXNzaW9uTm9kZSkge1xuICBsZXQgdHlwZTtcblxuICBjb25zdCB1bmFzc2lnbmVkVGVybWluYWxOb2RlID0gdW5hc3NpZ25lZFRlcm1pbmFsTm9kZVF1ZXJ5KGV4cHJlc3Npb25Ob2RlKSxcbiAgICAgICAgcmVndWxhckV4cHJlc3Npb25UZXJtaW5hbE5vZGUgPSByZWd1bGFyRXhwcmVzc2lvblRlcm1pbmFsTm9kZVF1ZXJ5KGV4cHJlc3Npb25Ob2RlKTtcblxuICBpZiAoZmFsc2UpIHtcbiAgICAvLy9cbiAgfSBlbHNlIGlmICh1bmFzc2lnbmVkVGVybWluYWxOb2RlICE9PSBudWxsKSB7XG4gICAgdHlwZSA9IFVOQVNTSUdORURfVFlQRTtcbiAgfSBlbHNlIGlmIChyZWd1bGFyRXhwcmVzc2lvblRlcm1pbmFsTm9kZSAhPT0gbnVsbCkge1xuICAgIHR5cGUgPSBSRUdVTEFSX0VYUFJFU1NJT05fVFlQRTtcbiAgfVxuXG4gIHJldHVybiB0eXBlO1xufVxuXG5mdW5jdGlvbiBuYW1lRnJvbVJ1bGVOYW1lVGVybWluYWxOb2RlKHJ1bGVOYW1lVGVybWluYWxOb2RlKSB7XG4gIGxldCBuYW1lO1xuXG4gIGNvbnN0IGNvbnRlbnQgPSBydWxlTmFtZVRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCk7XG5cbiAgbmFtZSA9IGNvbnRlbnQ7IC8vL1xuXG4gIHJldHVybiBuYW1lO1xufVxuXG5mdW5jdGlvbiBjb250ZW50RnJvbVN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGUoc3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZSkge1xuICBsZXQgY29udGVudDtcblxuICBjb250ZW50ID0gc3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCk7XG5cbiAgY29uc3QgbWF0Y2hlcyA9IGNvbnRlbnQubWF0Y2goL1wiKFteXCJdKilcIi8pLFxuICAgICAgICBzZWNvbmRNYXRjaCA9IHNlY29uZChtYXRjaGVzKTtcblxuICBjb250ZW50ID0gc2Vjb25kTWF0Y2g7IC8vL1xuXG4gIHJldHVybiBjb250ZW50O1xufVxuXG5mdW5jdGlvbiB0eXBlRnJvbVNpZ25pZmljYW50VG9rZW5UeXBlVGVybWluYWxOb2RlKHNpZ25pZmljYW50VG9rZW5UeXBlVGVybWluYWxOb2RlKSB7XG4gIGxldCB0eXBlO1xuXG4gIGNvbnN0IGNvbnRlbnQgPSBzaWduaWZpY2FudFRva2VuVHlwZVRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgIG1hdGNoZXMgPSBjb250ZW50Lm1hdGNoKC9cXFsoW15cXF1dKilcXF0vKSxcbiAgICAgICAgc2Vjb25kTWF0Y2ggPSBzZWNvbmQobWF0Y2hlcyk7XG5cbiAgdHlwZSA9IHNlY29uZE1hdGNoOyAvLy9cblxuICByZXR1cm4gdHlwZTtcbn1cbiJdLCJuYW1lcyI6WyJjb250ZW50RnJvbUV4cHJlc3Npb25Ob2RlIiwidmFsaWRhdGVCTkYiLCJ2YWxpZGF0ZVZvY2FidWxhcnkiLCJmaXJzdCIsInNlY29uZCIsImFycmF5VXRpbGl0aWVzIiwibm9kZVF1ZXJ5Iiwibm9kZXNRdWVyeSIsInF1ZXJ5VXRpbGl0aWVzIiwiZXhwcmVzc2lvbk5vZGVzUXVlcnkiLCJydWxlTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5IiwidW5hc3NpZ25lZFRlcm1pbmFsTm9kZVF1ZXJ5Iiwic3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZXNRdWVyeSIsInJlZ3VsYXJFeHByZXNzaW9uVGVybWluYWxOb2RlUXVlcnkiLCJzaWduaWZpY2FudFRva2VuVHlwZVRlcm1pbmFsTm9kZXNRdWVyeSIsImFuY2hvcnNSZWd1bGFyRXhwcmVzc2lvbiIsImJuZiIsInJ1bGVOYW1lIiwiY29udGVudCIsInRva2VucyIsImN1c3RvbUdyYW1tYXJCTkZMZXhlciIsInRva2VuaXNlIiwibm9kZSIsImN1c3RvbUdyYW1tYXJCTkZQYXJzZXIiLCJwYXJzZSIsInJ1bGVOYW1lVGVybWluYWxOb2RlIiwibmFtZSIsIm5hbWVGcm9tUnVsZU5hbWVUZXJtaW5hbE5vZGUiLCJFcnJvciIsInR5cGVzIiwidHlwZXNNYXAiLCJzaWduaWZpY2FudFRva2VuVHlwZVRlcm1pbmFsTm9kZXMiLCJmb3JFYWNoIiwic2lnbmlmaWNhbnRUb2tlblR5cGVUZXJtaW5hbE5vZGUiLCJ0eXBlIiwidHlwZUZyb21TaWduaWZpY2FudFRva2VuVHlwZVRlcm1pbmFsTm9kZSIsInR5cGVzSW5jbHVkZVR5cGUiLCJpbmNsdWRlcyIsInN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGVzIiwic3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZSIsImNvbnRlbnRGcm9tU3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZSIsIkJBU0VfVFlQRV9TWU1CT0wiLCJub21pbmFsTGV4ZXIiLCJ0b2tlbnNMZW5ndGgiLCJsZW5ndGgiLCJmaXJzdFRva2VuIiwidG9rZW4iLCJnZXRUeXBlIiwidm9jYWJ1bGFyeSIsImN1c3RvbUdyYW1tYXJWb2NhYnVsYXJ5TGV4ZXIiLCJjdXN0b21HcmFtbWFyVm9jYWJ1bGFyeVBhcnNlciIsImV4cHJlc3Npb25Ob2RlcyIsImV4cHJlc3Npb25Ob2RlIiwicmF3IiwidHlwZUZyb21FeHByZXNzaW9uTm9kZSIsIlVOQVNTSUdORURfVFlQRSIsIlJFR1VMQVJfRVhQUkVTU0lPTl9UWVBFIiwiUmVnRXhwIiwiZXJyb3IiLCJtZXNzYWdlIiwic3VjY2VzcyIsInJlZ0V4cCIsInRlc3QiLCJFTVBUWV9TVFJJTkciLCJ1bmFzc2lnbmVkVGVybWluYWxOb2RlIiwicmVndWxhckV4cHJlc3Npb25UZXJtaW5hbE5vZGUiLCJnZXRDb250ZW50IiwiZXNjYXBlIiwidHJpbSIsIm1hdGNoZXMiLCJtYXRjaCIsInNlY29uZE1hdGNoIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUEwSmdCQTtlQUFBQTs7UUFsSUFDO2VBQUFBOztRQTBEQUM7ZUFBQUE7OzsyQkFoRmU7NEJBQ0E7aUVBRVY7eUJBRVE7bUNBQ0E7MkJBQzREO3lCQUNrQzs7Ozs7O0FBRTNILE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxNQUFNLEVBQUUsR0FBR0MseUJBQWMsRUFDbEMsRUFBRUMsU0FBUyxFQUFFQyxVQUFVLEVBQUUsR0FBR0MsMEJBQWM7QUFFaEQsTUFBTUMsdUJBQXVCRixXQUFXLGlCQUNsQ0csNEJBQTRCSixVQUFVLDRCQUN0Q0ssOEJBQThCTCxVQUFVLDZCQUN4Q00sa0NBQWtDTCxXQUFXLHdCQUM3Q00scUNBQXFDUCxVQUFVLHFDQUMvQ1EseUNBQXlDUCxXQUFXO0FBRTFELE1BQU1RLDJCQUEyQjtBQUUxQixTQUFTZCxZQUFZZSxHQUFHLEVBQUVDLFFBQVE7SUFDdkMsTUFBTUMsVUFBVUYsS0FDVkcsU0FBU0MsOEJBQXFCLENBQUNDLFFBQVEsQ0FBQ0gsVUFDeENJLE9BQU9DLCtCQUFzQixDQUFDQyxLQUFLLENBQUNMO0lBRTFDLElBQUlHLFNBQVMsTUFB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
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmFsaWRhdGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuaW1wb3J0IHsgcXVlcnlVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tcXVlcnlcIjtcblxuaW1wb3J0IHR5cGVzTWFwIGZyb20gXCIuLi90eXBlc01hcFwiO1xuXG5pbXBvcnQgeyBub21pbmFsTGV4ZXIgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25vbWluYWxcIjtcbmltcG9ydCB7IGVzY2FwZSwgdHJpbSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcmVndWxhckV4cHJlc3Npb25cIjtcbmltcG9ydCB7IEVNUFRZX1NUUklORywgVU5BU1NJR05FRF9UWVBFLCBCQVNFX1RZUEVfU1lNQk9MLCBSRUdVTEFSX0VYUFJFU1NJT05fVFlQRSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGN1c3RvbUdyYW1tYXJCTkZMZXhlciwgY3VzdG9tR3JhbW1hckJORlBhcnNlciwgY3VzdG9tR3JhbW1hclZvY2FidWxhcnlMZXhlciwgY3VzdG9tR3JhbW1hclZvY2FidWxhcnlQYXJzZXIgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2dyYW1tYXJcIjtcblxuY29uc3QgeyBmaXJzdCwgc2Vjb25kIH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gPSBxdWVyeVV0aWxpdGllcztcblxuY29uc3QgZXhwcmVzc2lvbk5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiLy9leHByZXNzaW9uXCIpLFxuICAgICAgcnVsZU5hbWVUZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9kb2N1bWVudC9ydWxlL25hbWUvQCohXCIpLFxuICAgICAgdW5hc3NpZ25lZFRlcm1pbmFsTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2V4cHJlc3Npb24vQHVuYXNzaWduZWQhXCIpLFxuICAgICAgc3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvL3N0cmluZ0xpdGVyYWwvQCohXCIpLFxuICAgICAgcmVndWxhckV4cHJlc3Npb25UZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9leHByZXNzaW9uL0ByZWd1bGFyLWV4cHJlc3Npb24hXCIpLFxuICAgICAgc2lnbmlmaWNhbnRUb2tlblR5cGVUZXJtaW5hbE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiLy9zaWduaWZpY2FudFRva2VuVHlwZS9AKiFcIik7XG5cbmNvbnN0IGFuY2hvcnNSZWd1bGFyRXhwcmVzc2lvbiA9IC8oPzwhXFxcXClcXCQvO1xuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVCTkYoYm5mLCBydWxlTmFtZSkge1xuICBjb25zdCBjb250ZW50ID0gYm5mLCAgLy8vXG4gICAgICAgIHRva2VucyA9IGN1c3RvbUdyYW1tYXJCTkZMZXhlci50b2tlbmlzZShjb250ZW50KSxcbiAgICAgICAgbm9kZSA9IGN1c3RvbUdyYW1tYXJCTkZQYXJzZXIucGFyc2UodG9rZW5zKTtcblxuICBpZiAobm9kZSA9PT0gbnVsbCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHJ1bGVOYW1lVGVybWluYWxOb2RlID0gcnVsZU5hbWVUZXJtaW5hbE5vZGVRdWVyeShub2RlKTtcblxuICBpZiAocnVsZU5hbWVUZXJtaW5hbE5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBuYW1lID0gbmFtZUZyb21SdWxlTmFtZVRlcm1pbmFsTm9kZShydWxlTmFtZVRlcm1pbmFsTm9kZSk7XG5cbiAgICBpZiAobmFtZSAhPT0gcnVsZU5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlICcke25hbWV9JyBydWxlIHNob3VsZCBiZSBuYW1lZCAnJHtydWxlTmFtZX0nLmApO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHR5cGVzID0gdHlwZXNNYXBbcnVsZU5hbWVdLFxuICAgICAgICBzaWduaWZpY2FudFRva2VuVHlwZVRlcm1pbmFsTm9kZXMgPSBzaWduaWZpY2FudFRva2VuVHlwZVRlcm1pbmFsTm9kZXNRdWVyeShub2RlKTtcblxuICBzaWduaWZpY2FudFRva2VuVHlwZVRlcm1pbmFsTm9kZXMuZm9yRWFjaCgoc2lnbmlmaWNhbnRUb2tlblR5cGVUZXJtaW5hbE5vZGUpID0+IHtcbiAgICBjb25zdCB0eXBlID0gdHlwZUZyb21TaWduaWZpY2FudFRva2VuVHlwZVRlcm1pbmFsTm9kZShzaWduaWZpY2FudFRva2VuVHlwZVRlcm1pbmFsTm9kZSksXG4gICAgICAgICAgdHlwZXNJbmNsdWRlVHlwZSA9IHR5cGVzLmluY2x1ZGVzKHR5cGUpO1xuXG4gICAgaWYgKCF0eXBlc0luY2x1ZGVUeXBlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSAnJHt0eXBlfScgdHlwZSBpcyBub3QgaW5jbHVkZWQgaW4gdGhlICcke3J1bGVOYW1lfScgcnVsZSdzIHR5cGVzLmApXG4gICAgfVxuICB9KTtcblxuICBjb25zdCBzdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlcyA9IHN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGVzUXVlcnkobm9kZSk7XG5cbiAgc3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZXMuZm9yRWFjaCgoc3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZSkgPT4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBjb250ZW50RnJvbVN0cmluZ0xpdGVyYWxUZXJtaW5hbE5vZGUoc3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZSk7XG5cbiAgICBpZiAoY29udGVudCA9PT0gQkFTRV9UWVBFX1NZTUJPTCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgXCIke2NvbnRlbnR9XCIgc3RyaW5nIGxpdGVyYWwgY2Fubm90IGJlIHRoZSBzYW1lIGFzIHRoZSBiYXNlIHR5cGUgc3ltYm9sLmApO1xuICAgIH1cblxuICAgIGNvbnN0IHRva2VucyA9IG5vbWluYWxMZXhlci50b2tlbmlzZShjb250ZW50KSxcbiAgICAgICAgICB0b2tlbnNMZW5ndGggPSB0b2tlbnMubGVuZ3RoO1xuXG4gICAgaWYgKHRva2Vuc0xlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUb2tlbmlzaW5nIHRoZSBcIiR7Y29udGVudH1cIiBzdHJpbmcgbGl0ZXJhbCBkb2VzIG5vdCByZXN1bHQgaW4gYSBzaW5nbGUgdG9rZW4uYCk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlyc3RUb2tlbiA9IGZpcnN0KHRva2VucyksXG4gICAgICAgICAgdG9rZW4gPSBmaXJzdFRva2VuLCAvLy9cbiAgICAgICAgICB0eXBlID0gdG9rZW4uZ2V0VHlwZSgpLFxuICAgICAgICAgIHR5cGVzSW5jbHVkZVR5cGUgPSB0eXBlcy5pbmNsdWRlcyh0eXBlKTtcblxuICAgIGlmICghdHlwZXNJbmNsdWRlVHlwZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgXCIke2NvbnRlbnR9XCIgc3RyaW5nIGxpdGVyYWwncyB0b2tlbidzICcke3R5cGV9JyB0eXBlIGlzIG5vdCBpbmNsdWRlZCBpbiB0aGUgJyR7cnVsZU5hbWV9JyBydWxlJ3MgdHlwZXMuYClcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVWb2NhYnVsYXJ5KHZvY2FidWxhcnkpIHtcbiAgY29uc3QgY29udGVudCA9IHZvY2FidWxhcnksIC8vL1xuICAgICAgICB0b2tlbnMgPSBjdXN0b21HcmFtbWFyVm9jYWJ1bGFyeUxleGVyLnRva2VuaXNlKGNvbnRlbnQpLFxuICAgICAgICBub2RlID0gY3VzdG9tR3JhbW1hclZvY2FidWxhcnlQYXJzZXIucGFyc2UodG9rZW5zKTtcblxuICBpZiAobm9kZSA9PT0gbnVsbCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGV4cHJlc3Npb25Ob2RlcyA9IGV4cHJlc3Npb25Ob2Rlc1F1ZXJ5KG5vZGUpO1xuXG4gIGV4cHJlc3Npb25Ob2Rlcy5mb3JFYWNoKChleHByZXNzaW9uTm9kZSkgPT4ge1xuICAgIGNvbnN0IHJhdyA9IHRydWUsXG4gICAgICAgICAgdHlwZSA9IHR5cGVGcm9tRXhwcmVzc2lvbk5vZGUoZXhwcmVzc2lvbk5vZGUpLFxuICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50RnJvbUV4cHJlc3Npb25Ob2RlKGV4cHJlc3Npb25Ob2RlLCByYXcpO1xuXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFVOQVNTSUdORURfVFlQRToge1xuXG4gICAgICAgIGNvbnN0IHRva2VucyA9IG5vbWluYWxMZXhlci50b2tlbmlzZShjb250ZW50KSxcbiAgICAgICAgICAgICAgdG9rZW5zTGVuZ3RoID0gdG9rZW5zLmxlbmd0aDtcblxuICAgICAgICBpZiAodG9rZW5zTGVuZ3RoID4gMSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVG9rZW5pc2luZyB0aGUgJyR7Y29udGVudH0nIGNvbnRlbnQgcmVzdWx0cyBpbiBtb3JlIHRoYW4gb25lIHRva2VuLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlyc3RUb2tlbiA9IGZpcnN0KHRva2VucyksXG4gICAgICAgICAgICAgIHRva2VuID0gZmlyc3RUb2tlbixcbiAgICAgICAgICAgICAgdHlwZSA9IHRva2VuLmdldFR5cGUoKTtcblxuICAgICAgICBpZiAodHlwZSAhPT0gVU5BU1NJR05FRF9UWVBFKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgJyR7dHlwZX0nIHR5cGUgb2YgdGhlICcke2NvbnRlbnR9JyB0b2tlbiBpcyBub3QgJ3VuYXNzaWduZWQnLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbnRlbnQgPT09IEJBU0VfVFlQRV9TWU1CT0wpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSAnJHtjb250ZW50fScgdG9rZW4gY2Fubm90IGJlIHRoZSBzYW1lIGFzIHRoZSBiYXNlIHR5cGUgc3ltYm9sLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgUkVHVUxBUl9FWFBSRVNTSU9OX1RZUEU6IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBuZXcgUmVnRXhwKGNvbnRlbnQpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnN0IHsgbWVzc2FnZSB9ID0gZXJyb3I7XG5cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSAvJHtjb250ZW50fS8gcmVndWxhciBleHByZXNzaW9uIGlzIG1hbGZvcm1lZCBhbmQgZ2l2ZXMgdGhlIG1lc3NhZ2UgJyR7bWVzc2FnZX0nLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHN1Y2Nlc3M7XG5cbiAgICAgICAgY29uc3QgcmVnRXhwID0gbmV3IFJlZ0V4cChgXig/OiR7Y29udGVudH0pYCk7XG5cbiAgICAgICAgc3VjY2VzcyA9IHJlZ0V4cC50ZXN0KEVNUFRZX1NUUklORyk7XG5cbiAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSAvJHtjb250ZW50fS8gcmVndWxhciBleHByZXNzaW9uIG1hdGNoZXMgYW4gZW1wdHkgc3RyaW5nLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VjY2VzcyA9IGFuY2hvcnNSZWd1bGFyRXhwcmVzc2lvbi50ZXN0KGNvbnRlbnQpO1xuXG4gICAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgLyR7Y29udGVudH0vIHJlZ3VsYXIgZXhwcmVzc2lvbiBjb250YWlucyBhbiBlbmQgb2Ygc3RyaW5nIGFuY2hvci5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb250ZW50RnJvbUV4cHJlc3Npb25Ob2RlKGV4cHJlc3Npb25Ob2RlLCByYXcgPSBmYWxzZSkge1xuICBsZXQgY29udGVudDtcblxuICBjb25zdCB1bmFzc2lnbmVkVGVybWluYWxOb2RlID0gdW5hc3NpZ25lZFRlcm1pbmFsTm9kZVF1ZXJ5KGV4cHJlc3Npb25Ob2RlKSxcbiAgICAgICAgcmVndWxhckV4cHJlc3Npb25UZXJtaW5hbE5vZGUgPSByZWd1bGFyRXhwcmVzc2lvblRlcm1pbmFsTm9kZVF1ZXJ5KGV4cHJlc3Npb25Ob2RlKTtcblxuICBpZiAoZmFsc2UpIHtcbiAgICAvLy9cbiAgfSBlbHNlIGlmICh1bmFzc2lnbmVkVGVybWluYWxOb2RlICE9PSBudWxsKSB7XG4gICAgY29udGVudCA9IHVuYXNzaWduZWRUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpO1xuXG4gICAgaWYgKCFyYXcpIHtcbiAgICAgIGNvbnRlbnQgPSBlc2NhcGUoY29udGVudCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHJlZ3VsYXJFeHByZXNzaW9uVGVybWluYWxOb2RlICE9PSBudWxsKSB7XG4gICAgY29udGVudCA9IHJlZ3VsYXJFeHByZXNzaW9uVGVybWluYWxOb2RlLmdldENvbnRlbnQoKTtcblxuICAgIGNvbnRlbnQgPSB0cmltKGNvbnRlbnQpOyAvLy9cbiAgfVxuXG4gIHJldHVybiBjb250ZW50O1xufVxuXG5mdW5jdGlvbiB0eXBlRnJvbUV4cHJlc3Npb25Ob2RlKGV4cHJlc3Npb25Ob2RlKSB7XG4gIGxldCB0eXBlO1xuXG4gIGNvbnN0IHVuYXNzaWduZWRUZXJtaW5hbE5vZGUgPSB1bmFzc2lnbmVkVGVybWluYWxOb2RlUXVlcnkoZXhwcmVzc2lvbk5vZGUpLFxuICAgICAgICByZWd1bGFyRXhwcmVzc2lvblRlcm1pbmFsTm9kZSA9IHJlZ3VsYXJFeHByZXNzaW9uVGVybWluYWxOb2RlUXVlcnkoZXhwcmVzc2lvbk5vZGUpO1xuXG4gIGlmIChmYWxzZSkge1xuICAgIC8vL1xuICB9IGVsc2UgaWYgKHVuYXNzaWduZWRUZXJtaW5hbE5vZGUgIT09IG51bGwpIHtcbiAgICB0eXBlID0gVU5BU1NJR05FRF9UWVBFO1xuICB9IGVsc2UgaWYgKHJlZ3VsYXJFeHByZXNzaW9uVGVybWluYWxOb2RlICE9PSBudWxsKSB7XG4gICAgdHlwZSA9IFJFR1VMQVJfRVhQUkVTU0lPTl9UWVBFO1xuICB9XG5cbiAgcmV0dXJuIHR5cGU7XG59XG5cbmZ1bmN0aW9uIG5hbWVGcm9tUnVsZU5hbWVUZXJtaW5hbE5vZGUocnVsZU5hbWVUZXJtaW5hbE5vZGUpIHtcbiAgbGV0IG5hbWU7XG5cbiAgY29uc3QgY29udGVudCA9IHJ1bGVOYW1lVGVybWluYWxOb2RlLmdldENvbnRlbnQoKTtcblxuICBuYW1lID0gY29udGVudDsgLy8vXG5cbiAgcmV0dXJuIG5hbWU7XG59XG5cbmZ1bmN0aW9uIGNvbnRlbnRGcm9tU3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZShzdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlKSB7XG4gIGxldCBjb250ZW50O1xuXG4gIGNvbnRlbnQgPSBzdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlLmdldENvbnRlbnQoKTtcblxuICBjb25zdCBtYXRjaGVzID0gY29udGVudC5tYXRjaCgvXCIoW15cIl0qKVwiLyksXG4gICAgICAgIHNlY29uZE1hdGNoID0gc2Vjb25kKG1hdGNoZXMpO1xuXG4gIGNvbnRlbnQgPSBzZWNvbmRNYXRjaDsgLy8vXG5cbiAgcmV0dXJuIGNvbnRlbnQ7XG59XG5cbmZ1bmN0aW9uIHR5cGVGcm9tU2lnbmlmaWNhbnRUb2tlblR5cGVUZXJtaW5hbE5vZGUoc2lnbmlmaWNhbnRUb2tlblR5cGVUZXJtaW5hbE5vZGUpIHtcbiAgbGV0IHR5cGU7XG5cbiAgY29uc3QgY29udGVudCA9IHNpZ25pZmljYW50VG9rZW5UeXBlVGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgbWF0Y2hlcyA9IGNvbnRlbnQubWF0Y2goL1xcWyhbXlxcXV0qKVxcXS8pLFxuICAgICAgICBzZWNvbmRNYXRjaCA9IHNlY29uZChtYXRjaGVzKTtcblxuICB0eXBlID0gc2Vjb25kTWF0Y2g7IC8vL1xuXG4gIHJldHVybiB0eXBlO1xufVxuIl0sIm5hbWVzIjpbImNvbnRlbnRGcm9tRXhwcmVzc2lvbk5vZGUiLCJ2YWxpZGF0ZUJORiIsInZhbGlkYXRlVm9jYWJ1bGFyeSIsImZpcnN0Iiwic2Vjb25kIiwiYXJyYXlVdGlsaXRpZXMiLCJub2RlUXVlcnkiLCJub2Rlc1F1ZXJ5IiwicXVlcnlVdGlsaXRpZXMiLCJleHByZXNzaW9uTm9kZXNRdWVyeSIsInJ1bGVOYW1lVGVybWluYWxOb2RlUXVlcnkiLCJ1bmFzc2lnbmVkVGVybWluYWxOb2RlUXVlcnkiLCJzdHJpbmdMaXRlcmFsVGVybWluYWxOb2Rlc1F1ZXJ5IiwicmVndWxhckV4cHJlc3Npb25UZXJtaW5hbE5vZGVRdWVyeSIsInNpZ25pZmljYW50VG9rZW5UeXBlVGVybWluYWxOb2Rlc1F1ZXJ5IiwiYW5jaG9yc1JlZ3VsYXJFeHByZXNzaW9uIiwiYm5mIiwicnVsZU5hbWUiLCJjb250ZW50IiwidG9rZW5zIiwiY3VzdG9tR3JhbW1hckJORkxleGVyIiwidG9rZW5pc2UiLCJub2RlIiwiY3VzdG9tR3JhbW1hckJORlBhcnNlciIsInBhcnNlIiwicnVsZU5hbWVUZXJtaW5hbE5vZGUiLCJuYW1lIiwibmFtZUZyb21SdWxlTmFtZVRlcm1pbmFsTm9kZSIsIkVycm9yIiwidHlwZXMiLCJ0eXBlc01hcCIsInNpZ25pZmljYW50VG9rZW5UeXBlVGVybWluYWxOb2RlcyIsImZvckVhY2giLCJzaWduaWZpY2FudFRva2VuVHlwZVRlcm1pbmFsTm9kZSIsInR5cGUiLCJ0eXBlRnJvbVNpZ25pZmljYW50VG9rZW5UeXBlVGVybWluYWxOb2RlIiwidHlwZXNJbmNsdWRlVHlwZSIsImluY2x1ZGVzIiwic3RyaW5nTGl0ZXJhbFRlcm1pbmFsTm9kZXMiLCJzdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlIiwiY29udGVudEZyb21TdHJpbmdMaXRlcmFsVGVybWluYWxOb2RlIiwiQkFTRV9UWVBFX1NZTUJPTCIsIm5vbWluYWxMZXhlciIsInRva2Vuc0xlbmd0aCIsImxlbmd0aCIsImZpcnN0VG9rZW4iLCJ0b2tlbiIsImdldFR5cGUiLCJ2b2NhYnVsYXJ5IiwiY3VzdG9tR3JhbW1hclZvY2FidWxhcnlMZXhlciIsImN1c3RvbUdyYW1tYXJWb2NhYnVsYXJ5UGFyc2VyIiwiZXhwcmVzc2lvbk5vZGVzIiwiZXhwcmVzc2lvbk5vZGUiLCJyYXciLCJ0eXBlRnJvbUV4cHJlc3Npb25Ob2RlIiwiVU5BU1NJR05FRF9UWVBFIiwiUkVHVUxBUl9FWFBSRVNTSU9OX1RZUEUiLCJSZWdFeHAiLCJlcnJvciIsIm1lc3NhZ2UiLCJzdWNjZXNzIiwicmVnRXhwIiwidGVzdCIsIkVNUFRZX1NUUklORyIsInVuYXNzaWduZWRUZXJtaW5hbE5vZGUiLCJyZWd1bGFyRXhwcmVzc2lvblRlcm1pbmFsTm9kZSIsImdldENvbnRlbnQiLCJlc2NhcGUiLCJ0cmltIiwibWF0Y2hlcyIsIm1hdGNoIiwic2Vjb25kTWF0Y2giXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQTBKZ0JBO2VBQUFBOztRQWxJQUM7ZUFBQUE7O1FBMERBQztlQUFBQTs7OzJCQWhGZTs0QkFDQTtpRUFFVjt5QkFFUTttQ0FDQTsyQkFDNEQ7eUJBQ2tDOzs7Ozs7QUFFM0gsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLE1BQU0sRUFBRSxHQUFHQyx5QkFBYyxFQUNsQyxFQUFFQyxTQUFTLEVBQUVDLFVBQVUsRUFBRSxHQUFHQywwQkFBYztBQUVoRCxNQUFNQyx1QkFBdUJGLFdBQVcsaUJBQ2xDRyw0QkFBNEJKLFVBQVUsNEJBQ3RDSyw4QkFBOEJMLFVBQVUsNkJBQ3hDTSxrQ0FBa0NMLFdBQVcsd0JBQzdDTSxxQ0FBcUNQLFVBQVUscUNBQy9DUSx5Q0FBeUNQLFdBQVc7QUFFMUQsTUFBTVEsMkJBQTJCO0FBRTFCLFNBQVNkLFlBQVllLEdBQUcsRUFBRUMsUUFBUTtJQUN2QyxNQUFNQyxVQUFVRixLQUNWRyxTQUFTQyw4QkFBcUIsQ0FBQ0MsUUFBUSxDQUFDSCxVQUN4Q0ksT0FBT0MsK0JBQXNCLENBQUNDLEtBQUssQ0FBQ0w7SUFFMUMsSUFBSUcsU0FB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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-custom-grammars",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "6.1.
|
|
4
|
+
"version": "6.1.22",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-custom-grammars",
|
|
7
7
|
"description": "Occam's custom grammars.",
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"necessary": "^17.7.2",
|
|
14
14
|
"occam-grammar-utilities": "^8.1.27",
|
|
15
15
|
"occam-grammars": "^1.3.694",
|
|
16
|
-
"occam-lexers": "^23.2.
|
|
17
|
-
"occam-parsers": "^23.2.
|
|
16
|
+
"occam-lexers": "^23.2.13",
|
|
17
|
+
"occam-parsers": "^23.2.18",
|
|
18
18
|
"occam-query": "^4.1.210"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
|
-
import { specialSymbols } from "occam-lexers";
|
|
5
|
-
import { parserUtilities } from "occam-parsers";
|
|
6
4
|
import { eliminateLeftRecursion } from "occam-grammar-utilities";
|
|
7
5
|
|
|
8
6
|
import defaultCustomGrammar from "../customGrammar/default";
|
|
9
7
|
|
|
8
|
+
import { ruleFromBNF } from "../utilities/bnf";
|
|
9
|
+
import { VERTICAL_BAR } from "../constants";
|
|
10
10
|
import { expressionsFromVocabulary } from "../utilities/vocabulary";
|
|
11
|
-
import { VERTICAL_BAR, VERTICAL_SPACE } from "../constants";
|
|
12
11
|
import { validateBNF, validateVocabulary } from "../utilities/validate";
|
|
13
12
|
import { TERM_RULE_NAME, STATEMENT_RULE_NAME } from "../ruleNames";
|
|
14
13
|
import { TYPE_VOCABULARY_NAME, SYMBOL_VOCABULARY_NAME } from "../vocabularyNames";
|
|
15
14
|
|
|
16
|
-
const {
|
|
17
|
-
{ rulesFromBNF } = parserUtilities,
|
|
18
|
-
{ unshift, forwardsForEach, backwardsForEach } = arrayUtilities;
|
|
15
|
+
const { push, tail, first } = arrayUtilities;
|
|
19
16
|
|
|
20
17
|
export default class CombinedCustomGrammar {
|
|
21
18
|
constructor(rules, entries) {
|
|
@@ -46,7 +43,10 @@ export default class CombinedCustomGrammar {
|
|
|
46
43
|
let customGrammars = [];
|
|
47
44
|
|
|
48
45
|
if (includeDefault) {
|
|
49
|
-
customGrammars = [
|
|
46
|
+
customGrammars = [ ///
|
|
47
|
+
...customGrammars,
|
|
48
|
+
defaultCustomGrammar
|
|
49
|
+
];
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
const rules = rulesFromCustomGrammars(customGrammars),
|
|
@@ -72,38 +72,6 @@ export default class CombinedCustomGrammar {
|
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
function rulesFromCustomGrammars(customGrammars) {
|
|
76
|
-
const ruleNames = [
|
|
77
|
-
TERM_RULE_NAME,
|
|
78
|
-
STATEMENT_RULE_NAME,
|
|
79
|
-
],
|
|
80
|
-
bnfs = ruleNames.map((ruleName) => {
|
|
81
|
-
const bnf = bnfFromCustomGrammars(customGrammars, ruleName);
|
|
82
|
-
|
|
83
|
-
return bnf;
|
|
84
|
-
}),
|
|
85
|
-
bnf = bnfs.join(VERTICAL_SPACE),
|
|
86
|
-
rules = rulesFromBNF(bnf);
|
|
87
|
-
|
|
88
|
-
combineRules(rules);
|
|
89
|
-
|
|
90
|
-
const opacity = opaque; ///
|
|
91
|
-
|
|
92
|
-
ruleNames.forEach((ruleName) => {
|
|
93
|
-
const rule = rules.find((rule) => {
|
|
94
|
-
const name = rule.getName();
|
|
95
|
-
|
|
96
|
-
if (name === ruleName) {
|
|
97
|
-
return true;
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
rule.setOpacity(opacity);
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
return rules;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
75
|
function entriesFromCustomGrammars(customGrammars) {
|
|
108
76
|
const vocabularyNames = [
|
|
109
77
|
TYPE_VOCABULARY_NAME,
|
|
@@ -118,82 +86,76 @@ function entriesFromCustomGrammars(customGrammars) {
|
|
|
118
86
|
return entries;
|
|
119
87
|
}
|
|
120
88
|
|
|
89
|
+
function rulesFromCustomGrammars(customGrammars) {
|
|
90
|
+
const ruleNames = [
|
|
91
|
+
TERM_RULE_NAME,
|
|
92
|
+
STATEMENT_RULE_NAME,
|
|
93
|
+
],
|
|
94
|
+
rules = ruleNames.map((ruleName) => {
|
|
95
|
+
const rule = ruleFromCustomGrammars(customGrammars, ruleName);
|
|
96
|
+
|
|
97
|
+
return rule;
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
return rules;
|
|
101
|
+
}
|
|
102
|
+
|
|
121
103
|
function entryFromCustomGrammars(customGrammars, vocabularyName) {
|
|
122
104
|
const expressions = [];
|
|
123
105
|
|
|
124
|
-
|
|
125
|
-
const vocabulary = customGrammar.getVocabulary(vocabularyName)
|
|
126
|
-
customGrammarDefaultCustomGrammar = customGrammar.isDefaultCustomGrammar();
|
|
106
|
+
customGrammars.forEach((customGrammar) => {
|
|
107
|
+
const vocabulary = customGrammar.getVocabulary(vocabularyName);
|
|
127
108
|
|
|
128
|
-
|
|
129
|
-
validateVocabulary(vocabulary);
|
|
130
|
-
}
|
|
109
|
+
validateVocabulary(vocabulary);
|
|
131
110
|
|
|
132
111
|
expressionsFromVocabulary(vocabulary, expressions);
|
|
133
112
|
});
|
|
134
113
|
|
|
135
|
-
const
|
|
136
|
-
entryName = vocabularyName, ///
|
|
137
|
-
entryValue = `^(?:${pattern})`,
|
|
138
|
-
entry = {
|
|
139
|
-
[entryName]: entryValue
|
|
140
|
-
};
|
|
114
|
+
const entry = combineExpressions(expressions, vocabularyName);
|
|
141
115
|
|
|
142
116
|
return entry;
|
|
143
117
|
}
|
|
144
118
|
|
|
145
|
-
function
|
|
146
|
-
const
|
|
119
|
+
function ruleFromCustomGrammars(customGrammars, ruleName) {
|
|
120
|
+
const rules = [];
|
|
147
121
|
|
|
148
|
-
|
|
149
|
-
const bnf = customGrammar.getBNF(ruleName)
|
|
150
|
-
customGrammarDefaultCustomGrammar = customGrammar.isDefaultCustomGrammar();
|
|
122
|
+
customGrammars.forEach((customGrammar) => {
|
|
123
|
+
const bnf = customGrammar.getBNF(ruleName);
|
|
151
124
|
|
|
152
|
-
|
|
153
|
-
validateBNF(bnf, ruleName);
|
|
154
|
-
}
|
|
125
|
+
validateBNF(bnf, ruleName);
|
|
155
126
|
|
|
156
|
-
|
|
127
|
+
ruleFromBNF(bnf, rules);
|
|
157
128
|
});
|
|
158
129
|
|
|
159
|
-
const
|
|
130
|
+
const rule = combineRules(rules);
|
|
160
131
|
|
|
161
|
-
return
|
|
132
|
+
return rule;
|
|
162
133
|
}
|
|
163
134
|
|
|
164
|
-
function
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
let innerIndex = outerIndex + 1;
|
|
173
|
-
|
|
174
|
-
while (innerIndex < length) {
|
|
175
|
-
const innerRule = rules[innerIndex],
|
|
176
|
-
innerRuleName = innerRule.getName();
|
|
177
|
-
|
|
178
|
-
if (innerRuleName === outerRuleName) {
|
|
179
|
-
const innerRuleDefinitions = innerRule.getDefinitions(),
|
|
180
|
-
outerRuleDefinitions = outerRule.getDefinitions();
|
|
135
|
+
function combineExpressions(expressions, vocabularyName) {
|
|
136
|
+
const pattern = expressions.join(VERTICAL_BAR),
|
|
137
|
+
entryName = vocabularyName, ///
|
|
138
|
+
entryValue = `^(?:${pattern})`,
|
|
139
|
+
entry = {
|
|
140
|
+
[entryName]: entryValue
|
|
141
|
+
};
|
|
181
142
|
|
|
182
|
-
|
|
143
|
+
return entry;
|
|
144
|
+
}
|
|
183
145
|
|
|
184
|
-
|
|
185
|
-
|
|
146
|
+
function combineRules(rules) {
|
|
147
|
+
const firstRule = first(rules),
|
|
148
|
+
rulesTail = tail(rules),
|
|
149
|
+
definitions = firstRule.getDefinitions(),
|
|
150
|
+
remainingRules = rulesTail; ///
|
|
186
151
|
|
|
187
|
-
|
|
152
|
+
remainingRules.forEach((remainingRule) => {
|
|
153
|
+
const remainingRuleDefinitions = remainingRule.getDefinitions();
|
|
188
154
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
innerIndex++;
|
|
192
|
-
}
|
|
193
|
-
}
|
|
155
|
+
push(definitions, remainingRuleDefinitions);
|
|
156
|
+
});
|
|
194
157
|
|
|
195
|
-
|
|
158
|
+
const rule = firstRule; ///
|
|
196
159
|
|
|
197
|
-
|
|
198
|
-
}
|
|
160
|
+
return rule;
|
|
199
161
|
}
|
package/src/example/view.js
CHANGED
|
@@ -38,19 +38,19 @@ class View extends Element {
|
|
|
38
38
|
vocabulary = this.getVocabulary(),
|
|
39
39
|
vocabularyName = this.getVocabularyName();
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
if (name === DEFAULT_CUSTOM_GRAMMAR_NAME) {
|
|
42
|
+
defaultCustomGrammar.setBNF(ruleName, bnf);
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
defaultCustomGrammar.setVocabulary(vocabularyName, vocabulary);
|
|
45
|
+
}
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
if (name === USER_DEFINED_CUSTOM_GRAMMAR_NAME) {
|
|
48
|
+
userDefinedCustomGrammar.setBNF(ruleName, bnf);
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
userDefinedCustomGrammar.setVocabulary(vocabularyName, vocabulary);
|
|
51
|
+
}
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
const customGrammars = [
|
|
54
54
|
userDefinedCustomGrammar,
|
|
55
55
|
defaultCustomGrammar,
|
|
56
56
|
],
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { BNFLexer } from "occam-lexers";
|
|
4
|
+
import { arrayUtilities } from "necessary";
|
|
5
|
+
import { BNFParser, Rule } from "occam-parsers";
|
|
6
|
+
|
|
7
|
+
const bnfLexer = BNFLexer.fromNothing(),
|
|
8
|
+
bnfParser = BNFParser.fromNothing();
|
|
9
|
+
|
|
10
|
+
const { first } = arrayUtilities;
|
|
11
|
+
|
|
12
|
+
export function ruleFromBNF(bnf, rules) {
|
|
13
|
+
const content = bnf, ///
|
|
14
|
+
tokens = bnfLexer.tokenise(content),
|
|
15
|
+
node = bnfParser.parse(tokens);
|
|
16
|
+
|
|
17
|
+
let rule = null;
|
|
18
|
+
|
|
19
|
+
if (node !== null) {
|
|
20
|
+
const rules = node.generateRules(Rule),
|
|
21
|
+
rulesLength = rules.length;
|
|
22
|
+
|
|
23
|
+
if (rulesLength === 1) {
|
|
24
|
+
const firstRule = first(rules);
|
|
25
|
+
|
|
26
|
+
rule = firstRule; ///
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if (rule !== null) {
|
|
31
|
+
rules.push(rule);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -23,7 +23,7 @@ const expressionNodesQuery = nodesQuery("//expression"),
|
|
|
23
23
|
const anchorsRegularExpression = /(?<!\\)\$/;
|
|
24
24
|
|
|
25
25
|
export function validateBNF(bnf, ruleName) {
|
|
26
|
-
const content = bnf,
|
|
26
|
+
const content = bnf, ///
|
|
27
27
|
tokens = customGrammarBNFLexer.tokenise(content),
|
|
28
28
|
node = customGrammarBNFParser.parse(tokens);
|
|
29
29
|
|