occam-dom 5.0.0 → 5.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/example.js +1495 -1305
- package/lib/example/constants.js +22 -0
- package/lib/example/utilities/query.js +23 -0
- package/lib/example/view/div/sizeable.js +2 -2
- package/lib/example/view/textarea/expressions.js +143 -0
- package/lib/example/view/textarea/outerNodes.js +147 -0
- package/lib/example/view/{input/expressionString.js → textarea/parseTree/inner.js} +43 -28
- package/lib/{expression/parser.js → example/view/textarea/parseTree/outer.js} +20 -28
- package/lib/example/view/textarea/parseTree.js +1 -19
- package/lib/example/view.js +26 -20
- package/lib/index.js +7 -19
- package/lib/node.js +302 -0
- package/lib/parseTree/childNodes.js +164 -0
- package/lib/parseTree/horizontalBranch.js +120 -0
- package/lib/parseTree/node.js +145 -0
- package/lib/parseTree/string.js +109 -0
- package/lib/parseTree/verticalBranch.js +184 -0
- package/lib/parseTree.js +191 -0
- package/lib/utilities/node.js +56 -309
- package/package.json +3 -2
- package/src/example/constants.js +4 -0
- package/src/example/utilities/query.js +21 -0
- package/src/example/view/div/sizeable.js +1 -1
- package/src/example/view/textarea/expressions.js +39 -0
- package/src/example/view/textarea/outerNodes.js +48 -0
- package/src/example/view/textarea/parseTree/inner.js +24 -0
- package/src/example/view/textarea/parseTree/outer.js +17 -0
- package/src/example/view/textarea/parseTree.js +0 -18
- package/src/example/view.js +44 -32
- package/src/index.js +2 -5
- package/src/node.js +221 -0
- package/src/parseTree/childNodes.js +108 -0
- package/src/parseTree/horizontalBranch.js +32 -0
- package/src/parseTree/node.js +77 -0
- package/src/parseTree/string.js +18 -0
- package/src/parseTree/verticalBranch.js +77 -0
- package/src/parseTree.js +141 -0
- package/src/utilities/node.js +66 -416
- package/lib/example/view/textarea/nodes.js +0 -155
- package/lib/expression/bnf.js +0 -14
- package/lib/expression/entries.js +0 -27
- package/lib/expression/lexer.js +0 -145
- package/lib/expression.js +0 -113
- package/lib/path.js +0 -69
- package/lib/query.js +0 -216
- package/lib/ruleNames.js +0 -54
- package/lib/spread.js +0 -113
- package/lib/subExpression.js +0 -101
- package/lib/utilities/array.js +0 -67
- package/lib/utilities/query.js +0 -39
- package/src/example/view/input/expressionString.js +0 -33
- package/src/example/view/textarea/nodes.js +0 -55
- package/src/expression/bnf.js +0 -63
- package/src/expression/entries.js +0 -18
- package/src/expression/lexer.js +0 -35
- package/src/expression/parser.js +0 -15
- package/src/expression.js +0 -82
- package/src/path.js +0 -32
- package/src/query.js +0 -207
- package/src/ruleNames.js +0 -12
- package/src/spread.js +0 -104
- package/src/subExpression.js +0 -52
- package/src/utilities/array.js +0 -30
- package/src/utilities/query.js +0 -22
package/lib/expression/bnf.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var bnf = '\n\n expression ::= path spread? subExpression? \n \n | error+ \n \n ;\n \n path ::= "/" infiniteDescent? selectors ;\n \n subExpression ::= path spread? subExpression?;\n\n infiniteDescent ::= "/" ;\n \n selectors ::= selector ( "|" selector )* ;\n\n spread ::= unique\n \n | "[" \n\n ( \n \n ( startIndex "..." endIndex ) \n \n | \n \n ( startIndex "..." ) \n \n | \n \n ( "..." endIndex )\n \n | \n \n index \n \n ) \n \n "]" ;\n\n selector ::= ruleName | tokenType ;\n \n ruleName ::= [name] | "*" ;\n \n tokenType ::= "@"<NO_WHITESPACE>( [name] | "*" ) ;\n \n startIndex ::= [number] ;\n \n endIndex ::= [number] ;\n \n index ::= [number] ;\n \n unique ::= "!" ;\n \n\n\n error. ::= . ;\n \n';
|
|
12
|
-
var _default = bnf;
|
|
13
|
-
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHByZXNzaW9uL2JuZi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuY29uc3QgYm5mID0gYFxuXG4gICAgZXhwcmVzc2lvbiAgICAgICA6Oj0gIHBhdGggc3ByZWFkPyBzdWJFeHByZXNzaW9uPyAgIFxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICB8ICBlcnJvcisgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgO1xuICBcbiAgICBwYXRoICAgICAgICAgICAgIDo6PSAgXCIvXCIgaW5maW5pdGVEZXNjZW50PyBzZWxlY3RvcnMgO1xuICAgIFxuICAgIHN1YkV4cHJlc3Npb24gICAgOjo9ICBwYXRoIHNwcmVhZD8gc3ViRXhwcmVzc2lvbj87XG5cbiAgICBpbmZpbml0ZURlc2NlbnQgIDo6PSAgXCIvXCIgO1xuICAgIFxuICAgIHNlbGVjdG9ycyAgICAgICAgOjo9ICBzZWxlY3RvciAoIFwifFwiIHNlbGVjdG9yICkqIDtcblxuICAgIHNwcmVhZCAgICAgICAgICAgOjo9ICB1bmlxdWVcbiAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJbXCIgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIHN0YXJ0SW5kZXggXCIuLi5cIiBlbmRJbmRleCApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBzdGFydEluZGV4IFwiLi4uXCIgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICggXCIuLi5cIiBlbmRJbmRleCApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICkgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJdXCIgO1xuXG4gICAgc2VsZWN0b3IgICAgICAgICA6Oj0gIHJ1bGVOYW1lIHwgdG9rZW5UeXBlIDtcbiAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgcnVsZU5hbWUgICAgICAgICA6Oj0gIFtuYW1lXSB8IFwiKlwiIDtcbiAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgdG9rZW5UeXBlICAgICAgICA6Oj0gIFwiQFwiPE5PX1dISVRFU1BBQ0U+KCBbbmFtZV0gfCBcIipcIiApIDtcbiAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgc3RhcnRJbmRleCAgICAgICA6Oj0gIFtudW1iZXJdIDtcbiAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgZW5kSW5kZXggICAgICAgICA6Oj0gIFtudW1iZXJdIDtcbiAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgaW5kZXggICAgICAgICAgICA6Oj0gIFtudW1iZXJdIDtcbiAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgdW5pcXVlICAgICAgICAgICA6Oj0gIFwiIVwiIDtcbiAgICAgICAgICAgICAgICAgICAgICAgXG5cblxuICAgIGVycm9yLiAgICAgICAgICAgOjo9ICAuIDtcbiAgICBcbmA7XG5cbmV4cG9ydCBkZWZhdWx0IGJuZjtcbiJdLCJuYW1lcyI6WyJibmYiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQThEQTs7O2VBQUE7OztBQTVEQSxJQUFNQSxNQUFPO0lBNERiLFdBQWVBIn0=
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var entries = [
|
|
12
|
-
{
|
|
13
|
-
"special": "^(?:@|!|\\*|\\||\\/|\\[|\\]|\\.\\.\\.)"
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
"name": "^[a-zA-Z\-]+"
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
"number": "^[0-9]+"
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"unassigned": "^."
|
|
23
|
-
}
|
|
24
|
-
];
|
|
25
|
-
var _default = entries;
|
|
26
|
-
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHByZXNzaW9uL2VudHJpZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5jb25zdCBlbnRyaWVzID0gW1xyXG4gIHtcclxuICAgIFwic3BlY2lhbFwiOiBcIl4oPzpAfCF8XFxcXCp8XFxcXHx8XFxcXC98XFxcXFt8XFxcXF18XFxcXC5cXFxcLlxcXFwuKVwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcIm5hbWVcIjogXCJeW2EtekEtWlxcLV0rXCJcclxuICB9LFxyXG4gIHtcclxuICAgIFwibnVtYmVyXCI6IFwiXlswLTldK1wiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInVuYXNzaWduZWRcIjogXCJeLlwiXHJcbiAgfVxyXG5dO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZW50cmllcztcclxuIl0sIm5hbWVzIjpbImVudHJpZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWlCQTs7O2VBQUE7OztBQWZBLElBQU1BLFVBQVU7SUFDZDtRQUNFLFdBQVc7SUFDYjtJQUNBO1FBQ0UsUUFBUTtJQUNWO0lBQ0E7UUFDRSxVQUFVO0lBQ1o7SUFDQTtRQUNFLGNBQWM7SUFDaEI7Q0FDRDtJQUVELFdBQWVBIn0=
|
package/lib/expression/lexer.js
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return ExpressionLexer;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _occamlexers = require("occam-lexers");
|
|
12
|
-
var _entries = /*#__PURE__*/ _interop_require_default(require("./entries"));
|
|
13
|
-
function _assert_this_initialized(self) {
|
|
14
|
-
if (self === void 0) {
|
|
15
|
-
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
16
|
-
}
|
|
17
|
-
return self;
|
|
18
|
-
}
|
|
19
|
-
function _call_super(_this, derived, args) {
|
|
20
|
-
derived = _get_prototype_of(derived);
|
|
21
|
-
return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
|
|
22
|
-
}
|
|
23
|
-
function _class_call_check(instance, Constructor) {
|
|
24
|
-
if (!(instance instanceof Constructor)) {
|
|
25
|
-
throw new TypeError("Cannot call a class as a function");
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
function _defineProperties(target, props) {
|
|
29
|
-
for(var i = 0; i < props.length; i++){
|
|
30
|
-
var descriptor = props[i];
|
|
31
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
32
|
-
descriptor.configurable = true;
|
|
33
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
34
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
38
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
39
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
40
|
-
return Constructor;
|
|
41
|
-
}
|
|
42
|
-
function _define_property(obj, key, value) {
|
|
43
|
-
if (key in obj) {
|
|
44
|
-
Object.defineProperty(obj, key, {
|
|
45
|
-
value: value,
|
|
46
|
-
enumerable: true,
|
|
47
|
-
configurable: true,
|
|
48
|
-
writable: true
|
|
49
|
-
});
|
|
50
|
-
} else {
|
|
51
|
-
obj[key] = value;
|
|
52
|
-
}
|
|
53
|
-
return obj;
|
|
54
|
-
}
|
|
55
|
-
function _get_prototype_of(o) {
|
|
56
|
-
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
|
|
57
|
-
return o.__proto__ || Object.getPrototypeOf(o);
|
|
58
|
-
};
|
|
59
|
-
return _get_prototype_of(o);
|
|
60
|
-
}
|
|
61
|
-
function _inherits(subClass, superClass) {
|
|
62
|
-
if (typeof superClass !== "function" && superClass !== null) {
|
|
63
|
-
throw new TypeError("Super expression must either be null or a function");
|
|
64
|
-
}
|
|
65
|
-
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
66
|
-
constructor: {
|
|
67
|
-
value: subClass,
|
|
68
|
-
writable: true,
|
|
69
|
-
configurable: true
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
if (superClass) _set_prototype_of(subClass, superClass);
|
|
73
|
-
}
|
|
74
|
-
function _interop_require_default(obj) {
|
|
75
|
-
return obj && obj.__esModule ? obj : {
|
|
76
|
-
default: obj
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
function _possible_constructor_return(self, call) {
|
|
80
|
-
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
81
|
-
return call;
|
|
82
|
-
}
|
|
83
|
-
return _assert_this_initialized(self);
|
|
84
|
-
}
|
|
85
|
-
function _set_prototype_of(o, p) {
|
|
86
|
-
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
|
|
87
|
-
o.__proto__ = p;
|
|
88
|
-
return o;
|
|
89
|
-
};
|
|
90
|
-
return _set_prototype_of(o, p);
|
|
91
|
-
}
|
|
92
|
-
function _type_of(obj) {
|
|
93
|
-
"@swc/helpers - typeof";
|
|
94
|
-
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
95
|
-
}
|
|
96
|
-
function _is_native_reflect_construct() {
|
|
97
|
-
try {
|
|
98
|
-
var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
99
|
-
} catch (_) {}
|
|
100
|
-
return (_is_native_reflect_construct = function() {
|
|
101
|
-
return !!result;
|
|
102
|
-
})();
|
|
103
|
-
}
|
|
104
|
-
var ExpressionLexer = /*#__PURE__*/ function(CommonLexer) {
|
|
105
|
-
_inherits(ExpressionLexer, CommonLexer);
|
|
106
|
-
function ExpressionLexer() {
|
|
107
|
-
_class_call_check(this, ExpressionLexer);
|
|
108
|
-
return _call_super(this, ExpressionLexer, arguments);
|
|
109
|
-
}
|
|
110
|
-
_create_class(ExpressionLexer, null, [
|
|
111
|
-
{
|
|
112
|
-
key: "fromNothing",
|
|
113
|
-
value: function fromNothing() {
|
|
114
|
-
return _occamlexers.CommonLexer.fromNothing(ExpressionLexer);
|
|
115
|
-
}
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
key: "fromRules",
|
|
119
|
-
value: function fromRules(rules) {
|
|
120
|
-
return _occamlexers.CommonLexer.fromRules(ExpressionLexer, rules);
|
|
121
|
-
}
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
key: "fromEntries",
|
|
125
|
-
value: function fromEntries(entries) {
|
|
126
|
-
return _occamlexers.CommonLexer.fromEntries(ExpressionLexer, entries);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
]);
|
|
130
|
-
return ExpressionLexer;
|
|
131
|
-
}(_occamlexers.CommonLexer);
|
|
132
|
-
_define_property(ExpressionLexer, "entries", _entries.default);
|
|
133
|
-
_define_property(ExpressionLexer, "EndOfLineToken", _occamlexers.EndOfLineSignificantToken) ///
|
|
134
|
-
;
|
|
135
|
-
_define_property(ExpressionLexer, "WhitespaceToken", _occamlexers.WhitespaceToken);
|
|
136
|
-
_define_property(ExpressionLexer, "EndOfLineCommentToken", null);
|
|
137
|
-
_define_property(ExpressionLexer, "SingleLineCommentToken", null);
|
|
138
|
-
_define_property(ExpressionLexer, "RegularExpressionToken", null);
|
|
139
|
-
_define_property(ExpressionLexer, "EndOfMultiLineCommentToken", null);
|
|
140
|
-
_define_property(ExpressionLexer, "StartOfMultiLineCommentToken", null);
|
|
141
|
-
_define_property(ExpressionLexer, "MiddleOfMultiLineCommentToken", null);
|
|
142
|
-
_define_property(ExpressionLexer, "SinglyQuotedStringLiteralToken", null);
|
|
143
|
-
_define_property(ExpressionLexer, "DoublyQuotedStringLiteralToken", null);
|
|
144
|
-
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHByZXNzaW9uL2xleGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5cclxuaW1wb3J0IHsgQ29tbW9uTGV4ZXIsIFdoaXRlc3BhY2VUb2tlbiwgRW5kT2ZMaW5lU2lnbmlmaWNhbnRUb2tlbiB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcclxuXHJcbmltcG9ydCBlbnRyaWVzIGZyb20gXCIuL2VudHJpZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEV4cHJlc3Npb25MZXhlciBleHRlbmRzIENvbW1vbkxleGVyIHtcclxuICBzdGF0aWMgZW50cmllcyA9IGVudHJpZXM7XHJcblxyXG4gIHN0YXRpYyBFbmRPZkxpbmVUb2tlbiA9IEVuZE9mTGluZVNpZ25pZmljYW50VG9rZW47IC8vL1xyXG5cclxuICBzdGF0aWMgV2hpdGVzcGFjZVRva2VuID0gV2hpdGVzcGFjZVRva2VuO1xyXG5cclxuICBzdGF0aWMgRW5kT2ZMaW5lQ29tbWVudFRva2VuID0gbnVsbDtcclxuXHJcbiAgc3RhdGljIFNpbmdsZUxpbmVDb21tZW50VG9rZW4gPSBudWxsO1xyXG5cclxuICBzdGF0aWMgUmVndWxhckV4cHJlc3Npb25Ub2tlbiA9IG51bGw7XHJcblxyXG4gIHN0YXRpYyBFbmRPZk11bHRpTGluZUNvbW1lbnRUb2tlbiA9IG51bGw7XHJcblxyXG4gIHN0YXRpYyBTdGFydE9mTXVsdGlMaW5lQ29tbWVudFRva2VuID0gbnVsbDtcclxuXHJcbiAgc3RhdGljIE1pZGRsZU9mTXVsdGlMaW5lQ29tbWVudFRva2VuID0gbnVsbDtcclxuXHJcbiAgc3RhdGljIFNpbmdseVF1b3RlZFN0cmluZ0xpdGVyYWxUb2tlbiA9IG51bGw7XHJcblxyXG4gIHN0YXRpYyBEb3VibHlRdW90ZWRTdHJpbmdMaXRlcmFsVG9rZW4gPSBudWxsO1xyXG5cclxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7IHJldHVybiBDb21tb25MZXhlci5mcm9tTm90aGluZyhFeHByZXNzaW9uTGV4ZXIpOyB9XHJcblxyXG4gIHN0YXRpYyBmcm9tUnVsZXMocnVsZXMpIHsgcmV0dXJuIENvbW1vbkxleGVyLmZyb21SdWxlcyhFeHByZXNzaW9uTGV4ZXIsIHJ1bGVzKTsgfVxyXG5cclxuICBzdGF0aWMgZnJvbUVudHJpZXMoZW50cmllcykgeyByZXR1cm4gQ29tbW9uTGV4ZXIuZnJvbUVudHJpZXMoRXhwcmVzc2lvbkxleGVyLCBlbnRyaWVzKTsgfVxyXG59XHJcbiJdLCJuYW1lcyI6WyJFeHByZXNzaW9uTGV4ZXIiLCJmcm9tTm90aGluZyIsIkNvbW1vbkxleGVyIiwiZnJvbVJ1bGVzIiwicnVsZXMiLCJmcm9tRW50cmllcyIsImVudHJpZXMiLCJFbmRPZkxpbmVUb2tlbiIsIkVuZE9mTGluZVNpZ25pZmljYW50VG9rZW4iLCJXaGl0ZXNwYWNlVG9rZW4iLCJFbmRPZkxpbmVDb21tZW50VG9rZW4iLCJTaW5nbGVMaW5lQ29tbWVudFRva2VuIiwiUmVndWxhckV4cHJlc3Npb25Ub2tlbiIsIkVuZE9mTXVsdGlMaW5lQ29tbWVudFRva2VuIiwiU3RhcnRPZk11bHRpTGluZUNvbW1lbnRUb2tlbiIsIk1pZGRsZU9mTXVsdGlMaW5lQ29tbWVudFRva2VuIiwiU2luZ2x5UXVvdGVkU3RyaW5nTGl0ZXJhbFRva2VuIiwiRG91Ymx5UXVvdGVkU3RyaW5nTGl0ZXJhbFRva2VuIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQU1xQkE7OzsyQkFKbUQ7OERBRXBEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVMLElBQUEsQUFBTUEsZ0NBQU47Y0FBTUE7YUFBQUE7Z0NBQUFBO2VBQU4sa0JBQU1BOztrQkFBQUE7O1lBdUJaQyxLQUFBQTttQkFBUCxTQUFPQTtnQkFBZ0IsT0FBT0Msd0JBQVcsQ0FBQ0QsV0FBVyxDQXZCbENEO1lBdUJxRDs7O1lBRWpFRyxLQUFBQTttQkFBUCxTQUFPQSxVQUFVQyxLQUFLO2dCQUFJLE9BQU9GLHdCQUFXLENBQUNDLFNBQVMsQ0F6Qm5DSCxpQkF5QnFESTtZQUFROzs7WUFFekVDLEtBQUFBO21CQUFQLFNBQU9BLFlBQVlDLE9BQU87Z0JBQUksT0FBT0osd0JBQVcsQ0FBQ0csV0FBVyxDQTNCekNMLGlCQTJCMkRNO1lBQVU7OztXQTNCckVOO0VBQXdCRSx3QkFBVztBQUN0RCxpQkFEbUJGLGlCQUNaTSxXQUFVQSxnQkFBTztBQUV4QixpQkFIbUJOLGlCQUdaTyxrQkFBaUJDLHNDQUF5QixFQUFFLEdBQUc7O0FBRXRELGlCQUxtQlIsaUJBS1pTLG1CQUFrQkEsNEJBQWU7QUFFeEMsaUJBUG1CVCxpQkFPWlUseUJBQXdCO0FBRS9CLGlCQVRtQlYsaUJBU1pXLDBCQUF5QjtBQUVoQyxpQkFYbUJYLGlCQVdaWSwwQkFBeUI7QUFFaEMsaUJBYm1CWixpQkFhWmEsOEJBQTZCO0FBRXBDLGlCQWZtQmIsaUJBZVpjLGdDQUErQjtBQUV0QyxpQkFqQm1CZCxpQkFpQlplLGlDQUFnQztBQUV2QyxpQkFuQm1CZixpQkFtQlpnQixrQ0FBaUM7QUFFeEMsaUJBckJtQmhCLGlCQXFCWmlCLGtDQUFpQyJ9
|
package/lib/expression.js
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return Expression;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _path = /*#__PURE__*/ _interop_require_default(require("./path"));
|
|
12
|
-
var _spread = /*#__PURE__*/ _interop_require_default(require("./spread"));
|
|
13
|
-
var _subExpression = /*#__PURE__*/ _interop_require_default(require("./subExpression"));
|
|
14
|
-
var _lexer = /*#__PURE__*/ _interop_require_default(require("./expression/lexer"));
|
|
15
|
-
var _parser = /*#__PURE__*/ _interop_require_default(require("./expression/parser"));
|
|
16
|
-
var _node = require("./utilities/node");
|
|
17
|
-
function _class_call_check(instance, Constructor) {
|
|
18
|
-
if (!(instance instanceof Constructor)) {
|
|
19
|
-
throw new TypeError("Cannot call a class as a function");
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
function _defineProperties(target, props) {
|
|
23
|
-
for(var i = 0; i < props.length; i++){
|
|
24
|
-
var descriptor = props[i];
|
|
25
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
26
|
-
descriptor.configurable = true;
|
|
27
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
28
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
32
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
33
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
34
|
-
return Constructor;
|
|
35
|
-
}
|
|
36
|
-
function _interop_require_default(obj) {
|
|
37
|
-
return obj && obj.__esModule ? obj : {
|
|
38
|
-
default: obj
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
var expressionLexer = _lexer.default.fromNothing(), expressionParser = _parser.default.fromNothing();
|
|
42
|
-
var Expression = /*#__PURE__*/ function() {
|
|
43
|
-
function Expression(path, spread, subExpression) {
|
|
44
|
-
_class_call_check(this, Expression);
|
|
45
|
-
this.path = path;
|
|
46
|
-
this.spread = spread;
|
|
47
|
-
this.subExpression = subExpression;
|
|
48
|
-
}
|
|
49
|
-
_create_class(Expression, [
|
|
50
|
-
{
|
|
51
|
-
key: "getPath",
|
|
52
|
-
value: function getPath() {
|
|
53
|
-
return this.path;
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
key: "getSpread",
|
|
58
|
-
value: function getSpread() {
|
|
59
|
-
return this.spread;
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
key: "getSubExpression",
|
|
64
|
-
value: function getSubExpression() {
|
|
65
|
-
return this.subExpression;
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
key: "getRuleNames",
|
|
70
|
-
value: function getRuleNames() {
|
|
71
|
-
return this.path.getRuleNames();
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
key: "getTokenTypes",
|
|
76
|
-
value: function getTokenTypes() {
|
|
77
|
-
return this.path.getTokenTypes();
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
key: "isInfiniteDescent",
|
|
82
|
-
value: function isInfiniteDescent() {
|
|
83
|
-
return this.path.isInfiniteDescent();
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
], [
|
|
87
|
-
{
|
|
88
|
-
key: "fromExpressionNode",
|
|
89
|
-
value: function fromExpressionNode(expressionNode) {
|
|
90
|
-
var pathNode = (0, _node.pathNodeFromExpressionNode)(expressionNode), spreadNode = (0, _node.spreadNodeFromExpressionNode)(expressionNode), subExpressionNode = (0, _node.subExpressionNodeFromExpressionNode)(expressionNode), path = _path.default.fromPathNode(pathNode), spread = _spread.default.fromSpreadNode(spreadNode), subExpression = _subExpression.default.fromSubExpressionNode(subExpressionNode), expression = new Expression(path, spread, subExpression);
|
|
91
|
-
return expression;
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
key: "fromExpressionString",
|
|
96
|
-
value: function fromExpressionString(expressionString) {
|
|
97
|
-
var expression = null;
|
|
98
|
-
var lexer = expressionLexer, parser = expressionParser, content = expressionString, tokens = lexer.tokenise(content), node = parser.parse(tokens);
|
|
99
|
-
if (node !== null) {
|
|
100
|
-
var expressionNode = node, errorNodes = (0, _node.errorNodesFromExpressionNode)(expressionNode), errorNodesLength = errorNodes.length;
|
|
101
|
-
if (errorNodesLength === 0) {
|
|
102
|
-
var pathNode = (0, _node.pathNodeFromExpressionNode)(expressionNode), spreadNode = (0, _node.spreadNodeFromExpressionNode)(expressionNode), subExpressionNode = (0, _node.subExpressionNodeFromExpressionNode)(expressionNode), path = _path.default.fromPathNode(pathNode), spread = _spread.default.fromSpreadNode(spreadNode), subExpression = _subExpression.default.fromSubExpressionNode(subExpressionNode);
|
|
103
|
-
expression = new Expression(path, spread, subExpression);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
return expression;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
]);
|
|
110
|
-
return Expression;
|
|
111
|
-
}();
|
|
112
|
-
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9leHByZXNzaW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgUGF0aCBmcm9tIFwiLi9wYXRoXCI7XG5pbXBvcnQgU3ByZWFkIGZyb20gXCIuL3NwcmVhZFwiO1xuaW1wb3J0IFN1YkV4cHJlc3Npb24gZnJvbSBcIi4vc3ViRXhwcmVzc2lvblwiO1xuaW1wb3J0IEV4cHJlc3Npb25MZXhlciBmcm9tIFwiLi9leHByZXNzaW9uL2xleGVyXCI7XG5pbXBvcnQgRXhwcmVzc2lvblBhcnNlciBmcm9tIFwiLi9leHByZXNzaW9uL3BhcnNlclwiO1xuXG5pbXBvcnQgeyBwYXRoTm9kZUZyb21FeHByZXNzaW9uTm9kZSxcbiAgICAgICAgIHNwcmVhZE5vZGVGcm9tRXhwcmVzc2lvbk5vZGUsXG4gICAgICAgICBlcnJvck5vZGVzRnJvbUV4cHJlc3Npb25Ob2RlLFxuICAgICAgICAgc3ViRXhwcmVzc2lvbk5vZGVGcm9tRXhwcmVzc2lvbk5vZGUgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9kZVwiO1xuXG5jb25zdCBleHByZXNzaW9uTGV4ZXIgPSBFeHByZXNzaW9uTGV4ZXIuZnJvbU5vdGhpbmcoKSxcbiAgICAgIGV4cHJlc3Npb25QYXJzZXIgPSBFeHByZXNzaW9uUGFyc2VyLmZyb21Ob3RoaW5nKCk7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEV4cHJlc3Npb24ge1xuICBjb25zdHJ1Y3RvcihwYXRoLCBzcHJlYWQsIHN1YkV4cHJlc3Npb24pIHtcbiAgICB0aGlzLnBhdGggPSBwYXRoO1xuICAgIHRoaXMuc3ByZWFkID0gc3ByZWFkO1xuICAgIHRoaXMuc3ViRXhwcmVzc2lvbiA9IHN1YkV4cHJlc3Npb247XG4gIH1cblxuICBnZXRQYXRoKCkge1xuICAgIHJldHVybiB0aGlzLnBhdGg7XG4gIH1cblxuICBnZXRTcHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3ByZWFkO1xuICB9XG5cbiAgZ2V0U3ViRXhwcmVzc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJFeHByZXNzaW9uO1xuICB9XG5cbiAgZ2V0UnVsZU5hbWVzKCkgeyByZXR1cm4gdGhpcy5wYXRoLmdldFJ1bGVOYW1lcygpOyB9XG5cbiAgZ2V0VG9rZW5UeXBlcygpIHsgcmV0dXJuIHRoaXMucGF0aC5nZXRUb2tlblR5cGVzKCk7IH1cblxuICBpc0luZmluaXRlRGVzY2VudCgpIHsgcmV0dXJuIHRoaXMucGF0aC5pc0luZmluaXRlRGVzY2VudCgpOyB9XG5cbiAgc3RhdGljIGZyb21FeHByZXNzaW9uTm9kZShleHByZXNzaW9uTm9kZSkge1xuICAgIGNvbnN0IHBhdGhOb2RlID0gcGF0aE5vZGVGcm9tRXhwcmVzc2lvbk5vZGUoZXhwcmVzc2lvbk5vZGUpLFxuICAgICAgICAgIHNwcmVhZE5vZGUgPSBzcHJlYWROb2RlRnJvbUV4cHJlc3Npb25Ob2RlKGV4cHJlc3Npb25Ob2RlKSxcbiAgICAgICAgICBzdWJFeHByZXNzaW9uTm9kZSA9IHN1YkV4cHJlc3Npb25Ob2RlRnJvbUV4cHJlc3Npb25Ob2RlKGV4cHJlc3Npb25Ob2RlKSxcbiAgICAgICAgICBwYXRoID0gUGF0aC5mcm9tUGF0aE5vZGUocGF0aE5vZGUpLFxuICAgICAgICAgIHNwcmVhZCA9IFNwcmVhZC5mcm9tU3ByZWFkTm9kZShzcHJlYWROb2RlKSxcbiAgICAgICAgICBzdWJFeHByZXNzaW9uID0gU3ViRXhwcmVzc2lvbi5mcm9tU3ViRXhwcmVzc2lvbk5vZGUoc3ViRXhwcmVzc2lvbk5vZGUpLFxuICAgICAgICAgIGV4cHJlc3Npb24gPSBuZXcgRXhwcmVzc2lvbihwYXRoLCBzcHJlYWQsIHN1YkV4cHJlc3Npb24pO1xuXG4gICAgcmV0dXJuIGV4cHJlc3Npb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUV4cHJlc3Npb25TdHJpbmcoZXhwcmVzc2lvblN0cmluZykge1xuICAgIGxldCBleHByZXNzaW9uID0gbnVsbDtcblxuICAgIGNvbnN0IGxleGVyID0gZXhwcmVzc2lvbkxleGVyLCAgLy8vXG4gICAgICAgICAgcGFyc2VyID0gZXhwcmVzc2lvblBhcnNlciwgIC8vL1xuICAgICAgICAgIGNvbnRlbnQgPSBleHByZXNzaW9uU3RyaW5nLCAvLy9cbiAgICAgICAgICB0b2tlbnMgPSBsZXhlci50b2tlbmlzZShjb250ZW50KSxcbiAgICAgICAgICBub2RlID0gcGFyc2VyLnBhcnNlKHRva2Vucyk7XG5cbiAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZXhwcmVzc2lvbk5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICAgIGVycm9yTm9kZXMgPSBlcnJvck5vZGVzRnJvbUV4cHJlc3Npb25Ob2RlKGV4cHJlc3Npb25Ob2RlKSxcbiAgICAgICAgICAgIGVycm9yTm9kZXNMZW5ndGggPSBlcnJvck5vZGVzLmxlbmd0aDtcblxuICAgICAgaWYgKGVycm9yTm9kZXNMZW5ndGggPT09IDApIHtcbiAgICAgICAgY29uc3QgcGF0aE5vZGUgPSBwYXRoTm9kZUZyb21FeHByZXNzaW9uTm9kZShleHByZXNzaW9uTm9kZSksXG4gICAgICAgICAgICAgIHNwcmVhZE5vZGUgPSBzcHJlYWROb2RlRnJvbUV4cHJlc3Npb25Ob2RlKGV4cHJlc3Npb25Ob2RlKSxcbiAgICAgICAgICAgICAgc3ViRXhwcmVzc2lvbk5vZGUgPSBzdWJFeHByZXNzaW9uTm9kZUZyb21FeHByZXNzaW9uTm9kZShleHByZXNzaW9uTm9kZSksXG4gICAgICAgICAgICAgIHBhdGggPSBQYXRoLmZyb21QYXRoTm9kZShwYXRoTm9kZSksXG4gICAgICAgICAgICAgIHNwcmVhZCA9IFNwcmVhZC5mcm9tU3ByZWFkTm9kZShzcHJlYWROb2RlKSxcbiAgICAgICAgICAgICAgc3ViRXhwcmVzc2lvbiA9IFN1YkV4cHJlc3Npb24uZnJvbVN1YkV4cHJlc3Npb25Ob2RlKHN1YkV4cHJlc3Npb25Ob2RlKTtcblxuICAgICAgICBleHByZXNzaW9uID0gbmV3IEV4cHJlc3Npb24ocGF0aCwgc3ByZWFkLCBzdWJFeHByZXNzaW9uKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZXhwcmVzc2lvbjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkV4cHJlc3Npb24iLCJleHByZXNzaW9uTGV4ZXIiLCJFeHByZXNzaW9uTGV4ZXIiLCJmcm9tTm90aGluZyIsImV4cHJlc3Npb25QYXJzZXIiLCJFeHByZXNzaW9uUGFyc2VyIiwicGF0aCIsInNwcmVhZCIsInN1YkV4cHJlc3Npb24iLCJnZXRQYXRoIiwiZ2V0U3ByZWFkIiwiZ2V0U3ViRXhwcmVzc2lvbiIsImdldFJ1bGVOYW1lcyIsImdldFRva2VuVHlwZXMiLCJpc0luZmluaXRlRGVzY2VudCIsImZyb21FeHByZXNzaW9uTm9kZSIsImV4cHJlc3Npb25Ob2RlIiwicGF0aE5vZGUiLCJwYXRoTm9kZUZyb21FeHByZXNzaW9uTm9kZSIsInNwcmVhZE5vZGUiLCJzcHJlYWROb2RlRnJvbUV4cHJlc3Npb25Ob2RlIiwic3ViRXhwcmVzc2lvbk5vZGUiLCJzdWJFeHByZXNzaW9uTm9kZUZyb21FeHByZXNzaW9uTm9kZSIsIlBhdGgiLCJmcm9tUGF0aE5vZGUiLCJTcHJlYWQiLCJmcm9tU3ByZWFkTm9kZSIsIlN1YkV4cHJlc3Npb24iLCJmcm9tU3ViRXhwcmVzc2lvbk5vZGUiLCJleHByZXNzaW9uIiwiZnJvbUV4cHJlc3Npb25TdHJpbmciLCJleHByZXNzaW9uU3RyaW5nIiwibGV4ZXIiLCJwYXJzZXIiLCJjb250ZW50IiwidG9rZW5zIiwidG9rZW5pc2UiLCJub2RlIiwicGFyc2UiLCJlcnJvck5vZGVzIiwiZXJyb3JOb2Rlc0Zyb21FeHByZXNzaW9uTm9kZSIsImVycm9yTm9kZXNMZW5ndGgiLCJsZW5ndGgiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBZ0JxQkE7OzsyREFkSjs2REFDRTtvRUFDTzs0REFDRTs2REFDQztvQkFLdUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFcEQsSUFBTUMsa0JBQWtCQyxjQUFlLENBQUNDLFdBQVcsSUFDN0NDLG1CQUFt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
|
package/lib/path.js
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return Path;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _node = require("./utilities/node");
|
|
12
|
-
function _class_call_check(instance, Constructor) {
|
|
13
|
-
if (!(instance instanceof Constructor)) {
|
|
14
|
-
throw new TypeError("Cannot call a class as a function");
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
function _defineProperties(target, props) {
|
|
18
|
-
for(var i = 0; i < props.length; i++){
|
|
19
|
-
var descriptor = props[i];
|
|
20
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
21
|
-
descriptor.configurable = true;
|
|
22
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
23
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
27
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
28
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
29
|
-
return Constructor;
|
|
30
|
-
}
|
|
31
|
-
var Path = /*#__PURE__*/ function() {
|
|
32
|
-
function Path(ruleNames, tokenTypes, infiniteDescent) {
|
|
33
|
-
_class_call_check(this, Path);
|
|
34
|
-
this.ruleNames = ruleNames;
|
|
35
|
-
this.tokenTypes = tokenTypes;
|
|
36
|
-
this.infiniteDescent = infiniteDescent;
|
|
37
|
-
}
|
|
38
|
-
_create_class(Path, [
|
|
39
|
-
{
|
|
40
|
-
key: "getRuleNames",
|
|
41
|
-
value: function getRuleNames() {
|
|
42
|
-
return this.ruleNames;
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
key: "getTokenTypes",
|
|
47
|
-
value: function getTokenTypes() {
|
|
48
|
-
return this.tokenTypes;
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
key: "isInfiniteDescent",
|
|
53
|
-
value: function isInfiniteDescent() {
|
|
54
|
-
return this.infiniteDescent;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
], [
|
|
58
|
-
{
|
|
59
|
-
key: "fromPathNode",
|
|
60
|
-
value: function fromPathNode(pathNode) {
|
|
61
|
-
var ruleNames = (0, _node.ruleNamesFromPathNode)(pathNode), tokenTypes = (0, _node.tokenTypesFromPathNode)(pathNode), infiniteDescent = (0, _node.infiniteDescentFromPathNode)(pathNode), path = new Path(ruleNames, tokenTypes, infiniteDescent);
|
|
62
|
-
return path;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
]);
|
|
66
|
-
return Path;
|
|
67
|
-
}();
|
|
68
|
-
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXRoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBydWxlTmFtZXNGcm9tUGF0aE5vZGUsIHRva2VuVHlwZXNGcm9tUGF0aE5vZGUsIGluZmluaXRlRGVzY2VudEZyb21QYXRoTm9kZSB9IGZyb20gXCIuL3V0aWxpdGllcy9ub2RlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhdGgge1xuICBjb25zdHJ1Y3RvcihydWxlTmFtZXMsIHRva2VuVHlwZXMsIGluZmluaXRlRGVzY2VudCkge1xuICAgIHRoaXMucnVsZU5hbWVzID0gcnVsZU5hbWVzO1xuICAgIHRoaXMudG9rZW5UeXBlcyA9IHRva2VuVHlwZXM7XG4gICAgdGhpcy5pbmZpbml0ZURlc2NlbnQgPSBpbmZpbml0ZURlc2NlbnQ7XG4gIH1cblxuICBnZXRSdWxlTmFtZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucnVsZU5hbWVzO1xuICB9XG5cbiAgZ2V0VG9rZW5UeXBlcygpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlblR5cGVzO1xuICB9XG5cbiAgaXNJbmZpbml0ZURlc2NlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5maW5pdGVEZXNjZW50O1xuICB9XG5cbiAgc3RhdGljIGZyb21QYXRoTm9kZShwYXRoTm9kZSkge1xuICAgIGNvbnN0IHJ1bGVOYW1lcyA9IHJ1bGVOYW1lc0Zyb21QYXRoTm9kZShwYXRoTm9kZSksXG4gICAgICAgICAgdG9rZW5UeXBlcyA9IHRva2VuVHlwZXNGcm9tUGF0aE5vZGUocGF0aE5vZGUpLFxuICAgICAgICAgIGluZmluaXRlRGVzY2VudCA9IGluZmluaXRlRGVzY2VudEZyb21QYXRoTm9kZShwYXRoTm9kZSksXG4gICAgICAgICAgcGF0aCA9IG5ldyBQYXRoKHJ1bGVOYW1lcywgdG9rZW5UeXBlcywgaW5maW5pdGVEZXNjZW50KTtcblxuICAgIHJldHVybiBwYXRoO1xuICB9XG59XG4iXSwibmFtZXMiOlsiUGF0aCIsInJ1bGVOYW1lcyIsInRva2VuVHlwZXMiLCJpbmZpbml0ZURlc2NlbnQiLCJnZXRSdWxlTmFtZXMiLCJnZXRUb2tlblR5cGVzIiwiaXNJbmZpbml0ZURlc2NlbnQiLCJmcm9tUGF0aE5vZGUiLCJwYXRoTm9kZSIsInJ1bGVOYW1lc0Zyb21QYXRoTm9kZSIsInRva2VuVHlwZXNGcm9tUGF0aE5vZGUiLCJpbmZpbml0ZURlc2NlbnRGcm9tUGF0aE5vZGUiLCJwYXRoIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQUlxQkE7OztvQkFGc0U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTVFLElBQUEsQUFBTUEscUJBQU47YUFBTUEsS0FDUEMsU0FBUyxFQUFFQyxVQUFVLEVBQUVDLGVBQWU7Z0NBRC9CSDtRQUVqQixJQUFJLENBQUNDLFNBQVMsR0FBR0E7UUFDakIsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO1FBQ2xCLElBQUksQ0FBQ0MsZUFBZSxHQUFHQTs7a0JBSk5IOztZQU9uQkksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxTQUFTO1lBQ3ZCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxVQUFVO1lBQ3hCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxlQUFlO1lBQzdCOzs7O1lBRU9JLEtBQUFBO21CQUFQLFNBQU9BLGFBQWFDLFFBQVE7Z0JBQzFCLElBQU1QLFlBQVlRLElBQUFBLDJCQUFxQixFQUFDRCxXQUNsQ04sYUFBYVEsSUFBQUEsNEJBQXNCLEVBQUNGLFdBQ3BDTCxrQkFBa0JRLElBQUFBLGlDQUEyQixFQUFDSCxXQUM5Q0ksT0FBTyxJQXZCSVosS0F1QktDLFdBQVdDLFlBQVlDO2dCQUU3QyxPQUFPUztZQUNUOzs7V0ExQm1CWiJ9
|
package/lib/query.js
DELETED
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return Query;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _necessary = require("necessary");
|
|
12
|
-
var _expression = /*#__PURE__*/ _interop_require_default(require("./expression"));
|
|
13
|
-
var _array = require("./utilities/array");
|
|
14
|
-
function _class_call_check(instance, Constructor) {
|
|
15
|
-
if (!(instance instanceof Constructor)) {
|
|
16
|
-
throw new TypeError("Cannot call a class as a function");
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
function _defineProperties(target, props) {
|
|
20
|
-
for(var i = 0; i < props.length; i++){
|
|
21
|
-
var descriptor = props[i];
|
|
22
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
23
|
-
descriptor.configurable = true;
|
|
24
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
25
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
29
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
30
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
31
|
-
return Constructor;
|
|
32
|
-
}
|
|
33
|
-
function _interop_require_default(obj) {
|
|
34
|
-
return obj && obj.__esModule ? obj : {
|
|
35
|
-
default: obj
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
var WILDCARD_CHARACTER = _necessary.characters.WILDCARD_CHARACTER;
|
|
39
|
-
var Query = /*#__PURE__*/ function() {
|
|
40
|
-
function Query(spread, subQuery, ruleNames, tokenTypes, maximumDepth, infiniteDescent, intermediateNodes) {
|
|
41
|
-
_class_call_check(this, Query);
|
|
42
|
-
this.spread = spread;
|
|
43
|
-
this.subQuery = subQuery;
|
|
44
|
-
this.ruleNames = ruleNames;
|
|
45
|
-
this.tokenTypes = tokenTypes;
|
|
46
|
-
this.maximumDepth = maximumDepth;
|
|
47
|
-
this.infiniteDescent = infiniteDescent;
|
|
48
|
-
this.intermediateNodes = intermediateNodes;
|
|
49
|
-
}
|
|
50
|
-
_create_class(Query, [
|
|
51
|
-
{
|
|
52
|
-
key: "getSpread",
|
|
53
|
-
value: function getSpread() {
|
|
54
|
-
return this.sprea;
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
key: "getSubQuery",
|
|
59
|
-
value: function getSubQuery() {
|
|
60
|
-
return this.subQuery;
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
key: "getRuleNames",
|
|
65
|
-
value: function getRuleNames() {
|
|
66
|
-
return this.ruleNames;
|
|
67
|
-
}
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
key: "getTokenTypes",
|
|
71
|
-
value: function getTokenTypes() {
|
|
72
|
-
return this.tokenTypes;
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
key: "getMaximumDepth",
|
|
77
|
-
value: function getMaximumDepth() {
|
|
78
|
-
return this.maximumDepth;
|
|
79
|
-
}
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
key: "isInfiniteDescent",
|
|
83
|
-
value: function isInfiniteDescent() {
|
|
84
|
-
return this.infiniteDescent;
|
|
85
|
-
}
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
key: "getIntermediateNodes",
|
|
89
|
-
value: function getIntermediateNodes() {
|
|
90
|
-
return this.intermediateNodes;
|
|
91
|
-
}
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
key: "execute",
|
|
95
|
-
value: function execute(node) {
|
|
96
|
-
var depth = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, maximumDepth = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : this.maximumDepth;
|
|
97
|
-
var nodes = [];
|
|
98
|
-
this.clear();
|
|
99
|
-
this.find(node, depth, maximumDepth);
|
|
100
|
-
this.apply(nodes, depth, maximumDepth);
|
|
101
|
-
return nodes;
|
|
102
|
-
}
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
key: "clear",
|
|
106
|
-
value: function clear() {
|
|
107
|
-
(0, _array.clear)(this.intermediateNodes);
|
|
108
|
-
}
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
key: "find",
|
|
112
|
-
value: function find(node, depth, maximumDepth) {
|
|
113
|
-
var _this = this;
|
|
114
|
-
if (depth > maximumDepth) {
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
var nodeTerminalNode = node.isTerminalNode(), nodeNonTerminalNode = !nodeTerminalNode;
|
|
118
|
-
var found;
|
|
119
|
-
if (nodeTerminalNode) {
|
|
120
|
-
var terminalNode = node, types = this.tokenTypes, type = terminalNode.getType();
|
|
121
|
-
found = (0, _array.includes)(types, type, WILDCARD_CHARACTER);
|
|
122
|
-
}
|
|
123
|
-
if (nodeNonTerminalNode) {
|
|
124
|
-
var nonTerminalNode = node, ruleName = nonTerminalNode.getRuleName();
|
|
125
|
-
found = (0, _array.includes)(this.ruleNames, ruleName, WILDCARD_CHARACTER);
|
|
126
|
-
}
|
|
127
|
-
if (found) {
|
|
128
|
-
var intermediateNode = node; ///
|
|
129
|
-
this.intermediateNodes.push(intermediateNode);
|
|
130
|
-
}
|
|
131
|
-
if (this.infiniteDescent) {
|
|
132
|
-
if (nodeNonTerminalNode) {
|
|
133
|
-
depth++;
|
|
134
|
-
var nonTerminalNode1 = node; ///
|
|
135
|
-
nonTerminalNode1.forEachChildNode(function(childNode) {
|
|
136
|
-
_this.find(childNode, depth, maximumDepth);
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
key: "apply",
|
|
144
|
-
value: function apply(nodes, depth, maximumDepth) {
|
|
145
|
-
var _this = this;
|
|
146
|
-
this.spread.adjustNodes(this.intermediateNodes);
|
|
147
|
-
if (this.subQuery === null) {
|
|
148
|
-
(0, _array.push)(nodes, this.intermediateNodes);
|
|
149
|
-
} else {
|
|
150
|
-
this.intermediateNodes.forEach(function(intermediateNode) {
|
|
151
|
-
var intermediateNodeNonTerminalNode = intermediateNode.isNonTerminalNode();
|
|
152
|
-
if (intermediateNodeNonTerminalNode) {
|
|
153
|
-
depth++;
|
|
154
|
-
var nonTerminalNode = intermediateNode; ///
|
|
155
|
-
_this.subQuery.clear();
|
|
156
|
-
nonTerminalNode.forEachChildNode(function(childNode) {
|
|
157
|
-
_this.subQuery.find(childNode, depth, maximumDepth);
|
|
158
|
-
});
|
|
159
|
-
_this.subQuery.apply(nodes, depth, maximumDepth);
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
], [
|
|
166
|
-
{
|
|
167
|
-
key: "fromExpression",
|
|
168
|
-
value: function fromExpression(expression) {
|
|
169
|
-
var maximumDepth = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Infinity;
|
|
170
|
-
var spread = expression.getSpread(), subQuery = subQueryFromExpression(expression), ruleNames = expression.getRuleNames(), tokenTypes = expression.getTokenTypes(), infiniteDescent = expression.isInfiniteDescent(), intermediateNodes = [], query = new Query(spread, subQuery, ruleNames, tokenTypes, maximumDepth, infiniteDescent, intermediateNodes);
|
|
171
|
-
return query;
|
|
172
|
-
}
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
key: "fromSubExpression",
|
|
176
|
-
value: function fromSubExpression(subExpression) {
|
|
177
|
-
var spread = subExpression.getSpread(), subQuery = subQueryFromSubExpression(subExpression), ruleNames = subExpression.getRuleNames(), tokenTypes = subExpression.getTokenTypes(), maximumDepth = Infinity, infiniteDescent = subExpression.isInfiniteDescent(), intermediateNodes = [], query = new Query(spread, subQuery, ruleNames, tokenTypes, maximumDepth, infiniteDescent, intermediateNodes);
|
|
178
|
-
return query;
|
|
179
|
-
}
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
key: "fromExpressionString",
|
|
183
|
-
value: function fromExpressionString(expressionString) {
|
|
184
|
-
var maximumDepth = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Infinity;
|
|
185
|
-
var query = null;
|
|
186
|
-
var expression = _expression.default.fromExpressionString(expressionString);
|
|
187
|
-
if (expression !== null) {
|
|
188
|
-
var spread = expression.getSpread(), subQuery = subQueryFromExpression(expression), ruleNames = expression.getRuleNames(), tokenTypes = expression.getTokenTypes(), infiniteDescent = expression.isInfiniteDescent(), intermediateNodes = [];
|
|
189
|
-
query = new Query(spread, subQuery, ruleNames, tokenTypes, maximumDepth, infiniteDescent, intermediateNodes);
|
|
190
|
-
}
|
|
191
|
-
return query;
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
]);
|
|
195
|
-
return Query;
|
|
196
|
-
}();
|
|
197
|
-
function subQueryFromExpression(expression) {
|
|
198
|
-
var subQuery = null;
|
|
199
|
-
var subExpression = expression.getSubExpression();
|
|
200
|
-
if (subExpression !== null) {
|
|
201
|
-
var query = Query.fromSubExpression(subExpression);
|
|
202
|
-
subQuery = query; ///
|
|
203
|
-
}
|
|
204
|
-
return subQuery;
|
|
205
|
-
}
|
|
206
|
-
function subQueryFromSubExpression(subExpression) {
|
|
207
|
-
var subQuery = null;
|
|
208
|
-
subExpression = subExpression.getSubExpression(); ///
|
|
209
|
-
if (subExpression !== null) {
|
|
210
|
-
var query = Query.fromSubExpression(subExpression);
|
|
211
|
-
subQuery = query; ///
|
|
212
|
-
}
|
|
213
|
-
return subQuery;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9xdWVyeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgY2hhcmFjdGVycyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IEV4cHJlc3Npb24gZnJvbSBcIi4vZXhwcmVzc2lvblwiO1xuXG5pbXBvcnQgeyBwdXNoLCBjbGVhciwgaW5jbHVkZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXJyYXlcIjtcblxuY29uc3QgeyBXSUxEQ0FSRF9DSEFSQUNURVIgfSA9IGNoYXJhY3RlcnM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFF1ZXJ5IHtcbiAgY29uc3RydWN0b3Ioc3ByZWFkLCBzdWJRdWVyeSwgcnVsZU5hbWVzLCB0b2tlblR5cGVzLCBtYXhpbXVtRGVwdGgsIGluZmluaXRlRGVzY2VudCwgaW50ZXJtZWRpYXRlTm9kZXMpIHtcbiAgICB0aGlzLnNwcmVhZCA9IHNwcmVhZDtcbiAgICB0aGlzLnN1YlF1ZXJ5ID0gc3ViUXVlcnk7XG4gICAgdGhpcy5ydWxlTmFtZXMgPSBydWxlTmFtZXM7XG4gICAgdGhpcy50b2tlblR5cGVzID0gdG9rZW5UeXBlcztcbiAgICB0aGlzLm1heGltdW1EZXB0aCA9IG1heGltdW1EZXB0aDtcbiAgICB0aGlzLmluZmluaXRlRGVzY2VudCA9IGluZmluaXRlRGVzY2VudDtcbiAgICB0aGlzLmludGVybWVkaWF0ZU5vZGVzID0gaW50ZXJtZWRpYXRlTm9kZXM7XG4gIH1cblxuICBnZXRTcHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3ByZWE7XG4gIH1cblxuICBnZXRTdWJRdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJRdWVyeTtcbiAgfVxuXG4gIGdldFJ1bGVOYW1lcygpIHtcbiAgICByZXR1cm4gdGhpcy5ydWxlTmFtZXM7XG4gIH1cblxuICBnZXRUb2tlblR5cGVzKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VuVHlwZXM7XG4gIH1cblxuICBnZXRNYXhpbXVtRGVwdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMubWF4aW11bURlcHRoO1xuICB9XG5cbiAgaXNJbmZpbml0ZURlc2NlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5maW5pdGVEZXNjZW50O1xuICB9XG5cbiAgZ2V0SW50ZXJtZWRpYXRlTm9kZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW50ZXJtZWRpYXRlTm9kZXM7XG4gIH1cblxuICBleGVjdXRlKG5vZGUsIGRlcHRoID0gMCwgbWF4aW11bURlcHRoID0gdGhpcy5tYXhpbXVtRGVwdGgpIHtcbiAgICBjb25zdCBub2RlcyA9IFtdO1xuXG4gICAgdGhpcy5jbGVhcigpO1xuXG4gICAgdGhpcy5maW5kKG5vZGUsIGRlcHRoLCBtYXhpbXVtRGVwdGgpO1xuXG4gICAgdGhpcy5hcHBseShub2RlcywgZGVwdGgsIG1heGltdW1EZXB0aCk7XG5cbiAgICByZXR1cm4gbm9kZXM7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICBjbGVhcih0aGlzLmludGVybWVkaWF0ZU5vZGVzKTtcbiAgfVxuXG4gIGZpbmQobm9kZSwgZGVwdGgsIG1heGltdW1EZXB0aCkge1xuICAgIGlmIChkZXB0aCA+IG1heGltdW1EZXB0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgbm9kZU5vblRlcm1pbmFsTm9kZSA9ICFub2RlVGVybWluYWxOb2RlO1xuXG4gICAgbGV0IGZvdW5kO1xuXG4gICAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGUsICAvLy9cbiAgICAgICAgICAgIHR5cGVzID0gdGhpcy50b2tlblR5cGVzLCAgLy8vXG4gICAgICAgICAgICB0eXBlID0gdGVybWluYWxOb2RlLmdldFR5cGUoKTtcblxuICAgICAgZm91bmQgPSBpbmNsdWRlcyh0eXBlcywgdHlwZSwgV0lMRENBUkRfQ0hBUkFDVEVSKTtcbiAgICB9XG5cbiAgICBpZiAobm9kZU5vblRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZSwgLy8vXG4gICAgICAgICAgICBydWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpO1xuXG4gICAgICBmb3VuZCA9IGluY2x1ZGVzKHRoaXMucnVsZU5hbWVzLCBydWxlTmFtZSwgV0lMRENBUkRfQ0hBUkFDVEVSKTtcbiAgICB9XG5cbiAgICBpZiAoZm91bmQpIHtcbiAgICAgIGNvbnN0IGludGVybWVkaWF0ZU5vZGUgPSBub2RlOyAvLy9cblxuICAgICAgdGhpcy5pbnRlcm1lZGlhdGVOb2Rlcy5wdXNoKGludGVybWVkaWF0ZU5vZGUpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmluZmluaXRlRGVzY2VudCkge1xuICAgICAgaWYgKG5vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgICAgZGVwdGgrKztcblxuICAgICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlOyAvLy9cblxuICAgICAgICBub25UZXJtaW5hbE5vZGUuZm9yRWFjaENoaWxkTm9kZSgoY2hpbGROb2RlKSA9PiB7XG4gICAgICAgICAgdGhpcy5maW5kKGNoaWxkTm9kZSwgZGVwdGgsIG1heGltdW1EZXB0aCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFwcGx5KG5vZGVzLCBkZXB0aCwgbWF4aW11bURlcHRoKSB7XG4gICAgdGhpcy5zcHJlYWQuYWRqdXN0Tm9kZXModGhpcy5pbnRlcm1lZGlhdGVOb2Rlcyk7XG5cbiAgICBpZiAodGhpcy5zdWJRdWVyeSA9PT0gbnVsbCkge1xuICAgICAgcHVzaChub2RlcywgdGhpcy5pbnRlcm1lZGlhdGVOb2Rlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW50ZXJtZWRpYXRlTm9kZXMuZm9yRWFjaCgoaW50ZXJtZWRpYXRlTm9kZSkgPT4ge1xuICAgICAgICBjb25zdCBpbnRlcm1lZGlhdGVOb2RlTm9uVGVybWluYWxOb2RlID0gaW50ZXJtZWRpYXRlTm9kZS5pc05vblRlcm1pbmFsTm9kZSgpO1xuXG4gICAgICAgIGlmIChpbnRlcm1lZGlhdGVOb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICAgICAgZGVwdGgrKztcblxuICAgICAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IGludGVybWVkaWF0ZU5vZGU7IC8vL1xuXG4gICAgICAgICAgdGhpcy5zdWJRdWVyeS5jbGVhcigpO1xuXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlLmZvckVhY2hDaGlsZE5vZGUoKGNoaWxkTm9kZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWJRdWVyeS5maW5kKGNoaWxkTm9kZSwgZGVwdGgsIG1heGltdW1EZXB0aCk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLnN1YlF1ZXJ5LmFwcGx5KG5vZGVzLCBkZXB0aCwgbWF4aW11bURlcHRoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZyb21FeHByZXNzaW9uKGV4cHJlc3Npb24sIG1heGltdW1EZXB0aCA9IEluZmluaXR5KSB7XG4gICAgY29uc3Qgc3ByZWFkID0gZXhwcmVzc2lvbi5nZXRTcHJlYWQoKSxcbiAgICAgICAgICBzdWJRdWVyeSA9IHN1YlF1ZXJ5RnJvbUV4cHJlc3Npb24oZXhwcmVzc2lvbiksXG4gICAgICAgICAgcnVsZU5hbWVzID0gZXhwcmVzc2lvbi5nZXRSdWxlTmFtZXMoKSxcbiAgICAgICAgICB0b2tlblR5cGVzID0gZXhwcmVzc2lvbi5nZXRUb2tlblR5cGVzKCksXG4gICAgICAgICAgaW5maW5pdGVEZXNjZW50ID0gZXhwcmVzc2lvbi5pc0luZmluaXRlRGVzY2VudCgpLFxuICAgICAgICAgIGludGVybWVkaWF0ZU5vZGVzID0gW10sXG4gICAgICAgICAgcXVlcnkgPSBuZXcgUXVlcnkoc3ByZWFkLCBzdWJRdWVyeSwgcnVsZU5hbWVzLCB0b2tlblR5cGVzLCBtYXhpbXVtRGVwdGgsIGluZmluaXRlRGVzY2VudCwgaW50ZXJtZWRpYXRlTm9kZXMpO1xuXG4gICAgcmV0dXJuIHF1ZXJ5O1xuICB9XG5cbiAgc3RhdGljIGZyb21TdWJFeHByZXNzaW9uKHN1YkV4cHJlc3Npb24pIHtcbiAgICBjb25zdCBzcHJlYWQgPSBzdWJFeHByZXNzaW9uLmdldFNwcmVhZCgpLFxuICAgICAgICAgIHN1YlF1ZXJ5ID0gc3ViUXVlcnlGcm9tU3ViRXhwcmVzc2lvbihzdWJFeHByZXNzaW9uKSxcbiAgICAgICAgICBydWxlTmFtZXMgPSBzdWJFeHByZXNzaW9uLmdldFJ1bGVOYW1lcygpLFxuICAgICAgICAgIHRva2VuVHlwZXMgPSBzdWJFeHByZXNzaW9uLmdldFRva2VuVHlwZXMoKSxcbiAgICAgICAgICBtYXhpbXVtRGVwdGggPSBJbmZpbml0eSxcbiAgICAgICAgICBpbmZpbml0ZURlc2NlbnQgPSBzdWJFeHByZXNzaW9uLmlzSW5maW5pdGVEZXNjZW50KCksXG4gICAgICAgICAgaW50ZXJtZWRpYXRlTm9kZXMgPSBbXSxcbiAgICAgICAgICBxdWVyeSA9IG5ldyBRdWVyeShzcHJlYWQsIHN1YlF1ZXJ5LCBydWxlTmFtZXMsIHRva2VuVHlwZXMsIG1heGltdW1EZXB0aCwgaW5maW5pdGVEZXNjZW50LCBpbnRlcm1lZGlhdGVOb2Rlcyk7XG5cbiAgICByZXR1cm4gcXVlcnk7XG4gIH1cblxuICBzdGF0aWMgZnJvbUV4cHJlc3Npb25TdHJpbmcoZXhwcmVzc2lvblN0cmluZywgbWF4aW11bURlcHRoID0gSW5maW5pdHkpIHtcbiAgICBsZXQgcXVlcnkgPSBudWxsO1xuXG4gICAgY29uc3QgZXhwcmVzc2lvbiA9IEV4cHJlc3Npb24uZnJvbUV4cHJlc3Npb25TdHJpbmcoZXhwcmVzc2lvblN0cmluZyk7XG5cbiAgICBpZiAoZXhwcmVzc2lvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3ByZWFkID0gZXhwcmVzc2lvbi5nZXRTcHJlYWQoKSxcbiAgICAgICAgICAgIHN1YlF1ZXJ5ID0gc3ViUXVlcnlGcm9tRXhwcmVzc2lvbihleHByZXNzaW9uKSxcbiAgICAgICAgICAgIHJ1bGVOYW1lcyA9IGV4cHJlc3Npb24uZ2V0UnVsZU5hbWVzKCksXG4gICAgICAgICAgICB0b2tlblR5cGVzID0gZXhwcmVzc2lvbi5nZXRUb2tlblR5cGVzKCksXG4gICAgICAgICAgICBpbmZpbml0ZURlc2NlbnQgPSBleHByZXNzaW9uLmlzSW5maW5pdGVEZXNjZW50KCksXG4gICAgICAgICAgICBpbnRlcm1lZGlhdGVOb2RlcyA9IFtdO1xuXG4gICAgICBxdWVyeSA9IG5ldyBRdWVyeShzcHJlYWQsIHN1YlF1ZXJ5LCBydWxlTmFtZXMsIHRva2VuVHlwZXMsIG1heGltdW1EZXB0aCwgaW5maW5pdGVEZXNjZW50LCBpbnRlcm1lZGlhdGVOb2Rlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1ZXJ5O1xuICB9XG59XG5cbmZ1bmN0aW9uIHN1YlF1ZXJ5RnJvbUV4cHJlc3Npb24oZXhwcmVzc2lvbikge1xuICBsZXQgc3ViUXVlcnkgPSBudWxsO1xuXG4gIGNvbnN0IHN1YkV4cHJlc3Npb24gPSBleHByZXNzaW9uLmdldFN1YkV4cHJlc3Npb24oKTtcblxuICBpZiAoc3ViRXhwcmVzc2lvbiAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHF1ZXJ5ID0gUXVlcnkuZnJvbVN1YkV4cHJlc3Npb24oc3ViRXhwcmVzc2lvbik7XG5cbiAgICBzdWJRdWVyeSA9IHF1ZXJ5OyAvLy9cbiAgfVxuXG4gIHJldHVybiBzdWJRdWVyeTtcbn1cblxuZnVuY3Rpb24gc3ViUXVlcnlGcm9tU3ViRXhwcmVzc2lvbihzdWJFeHByZXNzaW9uKSB7XG4gIGxldCBzdWJRdWVyeSA9IG51bGw7XG5cbiAgc3ViRXhwcmVzc2lvbiA9IHN1YkV4cHJlc3Npb24uZ2V0U3ViRXhwcmVzc2lvbigpOyAvLy9cblxuICBpZiAoc3ViRXhwcmVzc2lvbiAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHF1ZXJ5ID0gUXVlcnkuZnJvbVN1YkV4cHJlc3Npb24oc3ViRXhwcmVzc2lvbik7XG5cbiAgICBzdWJRdWVyeSA9IHF1ZXJ5OyAvLy9cbiAgfVxuXG4gIHJldHVybiBzdWJRdWVyeTtcbn1cbiJdLCJuYW1lcyI6WyJRdWVyeSIsIldJTERDQVJEX0NIQVJBQ1RFUiIsImNoYXJhY3RlcnMiLCJzcHJlYWQiLCJzdWJRdWVyeSIsInJ1bGVOYW1lcyIsInRva2VuVHlwZXMiLCJtYXhpbXVtRGVwdGgiLCJpbmZpbml0ZURlc2NlbnQiLCJpbnRlcm1lZGlhdGVOb2RlcyIsImdldFNwcmVhZCIsInNwcmVhIiwiZ2V0U3ViUXVlcnkiLCJnZXRSdWxlTmFtZXMiLCJnZXRUb2tlblR5cGVzIiwiZ2V0TWF4aW11bURlcHRoIiwiaXNJbmZpbml0ZURlc2NlbnQiLCJnZXRJbnRlcm1lZGlhdGVOb2RlcyIsImV4ZWN1dGUiLCJub2RlIiwiZGVwdGgiLCJub2RlcyIsImNsZWFyIiwiZmluZCIsImFwcGx5Iiwibm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwibm9kZU5vblRlcm1pbmFsTm9kZSIsImZvdW5kIiwidGVybWluYWxOb2RlIiwidHlwZXMiLCJ0eXBlIiwiZ2V0VHlwZSIsImluY2x1ZGVzIiwibm9uVGVybWluYWxOb2RlIiwicnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsImludGVybWVkaWF0ZU5vZGUiLCJwdXNoIiwiZm9yRWFjaENoaWxkTm9kZSIsImNoaWxkTm9kZSIsImFkanVzdE5vZGVzIiwiZm9yRWFjaCIsImludGVybWVkaWF0ZU5vZGVOb25UZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsImZyb21FeHByZXNzaW9uIiwiZXhwcmVzc2lvbiIsIkluZmluaXR5Iiwic3ViUXVlcnlGcm9tRXhwcmVzc2lvbiIsInF1ZXJ5IiwiZnJvbVN1YkV4cHJlc3Npb24iLCJzdWJFeHByZXNzaW9uIiwic3ViUXVlcnlGcm9tU3ViRXhwcmVzc2lvbiIsImZyb21FeHByZXNzaW9uU3RyaW5nIiwiZXhwcmVzc2lvblN0cmlu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
|