occam-query 4.1.204 → 4.1.206
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/query.js +46 -56
- package/lib/utilities/array.js +11 -3
- package/package.json +1 -1
- package/src/query.js +58 -70
- package/src/utilities/array.js +13 -3
package/lib/query.js
CHANGED
|
@@ -18,17 +18,16 @@ function _interop_require_default(obj) {
|
|
|
18
18
|
}
|
|
19
19
|
const { WILDCARD_CHARACTER } = _necessary.characters;
|
|
20
20
|
class Query {
|
|
21
|
-
constructor(spread, subQuery, ruleNames, tokenTypes, maximumDepth, infiniteDescent
|
|
21
|
+
constructor(spread, subQuery, ruleNames, tokenTypes, maximumDepth, infiniteDescent){
|
|
22
22
|
this.spread = spread;
|
|
23
23
|
this.subQuery = subQuery;
|
|
24
24
|
this.ruleNames = ruleNames;
|
|
25
25
|
this.tokenTypes = tokenTypes;
|
|
26
26
|
this.maximumDepth = maximumDepth;
|
|
27
27
|
this.infiniteDescent = infiniteDescent;
|
|
28
|
-
this.intermediateNodes = intermediateNodes;
|
|
29
28
|
}
|
|
30
29
|
getSpread() {
|
|
31
|
-
return this.
|
|
30
|
+
return this.spread;
|
|
32
31
|
}
|
|
33
32
|
getSubQuery() {
|
|
34
33
|
return this.subQuery;
|
|
@@ -45,80 +44,71 @@ class Query {
|
|
|
45
44
|
isInfiniteDescent() {
|
|
46
45
|
return this.infiniteDescent;
|
|
47
46
|
}
|
|
48
|
-
getIntermediateNodes() {
|
|
49
|
-
return this.intermediateNodes;
|
|
50
|
-
}
|
|
51
47
|
execute(node, depth = 0, maximumDepth = this.maximumDepth) {
|
|
52
48
|
const nodes = [];
|
|
53
|
-
this.
|
|
54
|
-
this.
|
|
55
|
-
this.apply(nodes, depth, maximumDepth);
|
|
49
|
+
const intermediateNodes = this.find(node, depth, maximumDepth);
|
|
50
|
+
this.apply(nodes, depth, maximumDepth, intermediateNodes);
|
|
56
51
|
return nodes;
|
|
57
52
|
}
|
|
58
|
-
|
|
59
|
-
(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
if (nodeTerminalNode) {
|
|
68
|
-
const terminalNode = node, types = this.tokenTypes, type = terminalNode.getType();
|
|
69
|
-
found = (0, _array.includes)(types, type, WILDCARD_CHARACTER);
|
|
70
|
-
}
|
|
71
|
-
if (nodeNonTerminalNode) {
|
|
72
|
-
const nonTerminalNode = node, ruleName = nonTerminalNode.getRuleName();
|
|
73
|
-
found = (0, _array.includes)(this.ruleNames, ruleName, WILDCARD_CHARACTER);
|
|
74
|
-
}
|
|
75
|
-
if (found) {
|
|
76
|
-
const intermediateNode = node; ///
|
|
77
|
-
this.intermediateNodes.push(intermediateNode);
|
|
78
|
-
}
|
|
79
|
-
if (this.infiniteDescent) {
|
|
80
|
-
if (nodeNonTerminalNode) {
|
|
81
|
-
depth++;
|
|
82
|
-
const nonTerminalNode = node; ///
|
|
83
|
-
nonTerminalNode.forEachChildNode((childNode)=>{
|
|
84
|
-
this.find(childNode, depth, maximumDepth);
|
|
85
|
-
});
|
|
53
|
+
find(node, depth, maximumDepth, intermediateNodes = []) {
|
|
54
|
+
if (depth <= maximumDepth) {
|
|
55
|
+
const nodeTerminalNode = node.isTerminalNode(), nodeNonTerminalNode = !nodeTerminalNode;
|
|
56
|
+
if (nodeTerminalNode) {
|
|
57
|
+
const terminalNode = node, type = terminalNode.getType(), tokenType = type, found = (0, _array.includes)(this.tokenTypes, tokenType, WILDCARD_CHARACTER);
|
|
58
|
+
if (found) {
|
|
59
|
+
const intermediateNode = terminalNode; ///
|
|
60
|
+
intermediateNodes.push(intermediateNode);
|
|
61
|
+
}
|
|
86
62
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
this.intermediateNodes.forEach((intermediateNode)=>{
|
|
95
|
-
const intermediateNodeNonTerminalNode = intermediateNode.isNonTerminalNode();
|
|
96
|
-
if (intermediateNodeNonTerminalNode) {
|
|
63
|
+
if (nodeNonTerminalNode) {
|
|
64
|
+
const nonTerminalNode = node, ruleName = nonTerminalNode.getRuleName(), found = (0, _array.includes)(this.ruleNames, ruleName, WILDCARD_CHARACTER);
|
|
65
|
+
if (found) {
|
|
66
|
+
const intermediateNode = nonTerminalNode; ///
|
|
67
|
+
intermediateNodes.push(intermediateNode);
|
|
68
|
+
}
|
|
69
|
+
if (this.infiniteDescent) {
|
|
97
70
|
depth++;
|
|
98
|
-
const nonTerminalNode = intermediateNode; ///
|
|
99
|
-
this.subQuery.clear();
|
|
100
71
|
nonTerminalNode.forEachChildNode((childNode)=>{
|
|
101
|
-
this.
|
|
72
|
+
this.find(childNode, depth, maximumDepth, intermediateNodes);
|
|
102
73
|
});
|
|
103
|
-
this.subQuery.apply(nodes, depth, maximumDepth);
|
|
104
74
|
}
|
|
105
|
-
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return intermediateNodes;
|
|
78
|
+
}
|
|
79
|
+
apply(nodes, depth, maximumDepth, intermediateNodes) {
|
|
80
|
+
this.spread.adjustNodes(intermediateNodes);
|
|
81
|
+
if (this.subQuery === null) {
|
|
82
|
+
(0, _array.push)(nodes, intermediateNodes);
|
|
83
|
+
return;
|
|
106
84
|
}
|
|
85
|
+
depth++;
|
|
86
|
+
intermediateNodes.forEach((intermediateNode)=>{
|
|
87
|
+
const intermedidateNodeNonTerminalNode = intermediateNode.isNonTerminalNode();
|
|
88
|
+
if (intermedidateNodeNonTerminalNode) {
|
|
89
|
+
const nonTerminalNode = intermediateNode, intermediateNodes = [];
|
|
90
|
+
nonTerminalNode.forEachChildNode((childNode)=>{
|
|
91
|
+
const node = childNode; ///
|
|
92
|
+
this.subQuery.find(node, depth, maximumDepth, intermediateNodes);
|
|
93
|
+
});
|
|
94
|
+
this.subQuery.apply(nodes, depth, maximumDepth, intermediateNodes);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
107
97
|
}
|
|
108
98
|
static fromExpression(expression, maximumDepth = Infinity) {
|
|
109
99
|
const 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);
|
|
110
100
|
return query;
|
|
111
101
|
}
|
|
112
102
|
static fromSubExpression(subExpression) {
|
|
113
|
-
const spread = subExpression.getSpread(), subQuery = subQueryFromSubExpression(subExpression), ruleNames = subExpression.getRuleNames(), tokenTypes = subExpression.getTokenTypes(), maximumDepth = Infinity, infiniteDescent = subExpression.isInfiniteDescent(),
|
|
103
|
+
const spread = subExpression.getSpread(), subQuery = subQueryFromSubExpression(subExpression), ruleNames = subExpression.getRuleNames(), tokenTypes = subExpression.getTokenTypes(), maximumDepth = Infinity, infiniteDescent = subExpression.isInfiniteDescent(), query = new Query(spread, subQuery, ruleNames, tokenTypes, maximumDepth, infiniteDescent);
|
|
114
104
|
return query;
|
|
115
105
|
}
|
|
116
106
|
static fromExpressionString(expressionString, maximumDepth = Infinity) {
|
|
117
107
|
let query = null;
|
|
118
108
|
const expression = _expression.default.fromExpressionString(expressionString);
|
|
119
109
|
if (expression !== null) {
|
|
120
|
-
const spread = expression.getSpread(), subQuery = subQueryFromExpression(expression), ruleNames = expression.getRuleNames(), tokenTypes = expression.getTokenTypes(), infiniteDescent = expression.isInfiniteDescent()
|
|
121
|
-
query = new Query(spread, subQuery, ruleNames, tokenTypes, maximumDepth, infiniteDescent
|
|
110
|
+
const spread = expression.getSpread(), subQuery = subQueryFromExpression(expression), ruleNames = expression.getRuleNames(), tokenTypes = expression.getTokenTypes(), infiniteDescent = expression.isInfiniteDescent();
|
|
111
|
+
query = new Query(spread, subQuery, ruleNames, tokenTypes, maximumDepth, infiniteDescent);
|
|
122
112
|
}
|
|
123
113
|
return query;
|
|
124
114
|
}
|
|
@@ -142,4 +132,4 @@ function subQueryFromSubExpression(subExpression) {
|
|
|
142
132
|
return subQuery;
|
|
143
133
|
}
|
|
144
134
|
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9xdWVyeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgY2hhcmFjdGVycyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IEV4cHJlc3Npb24gZnJvbSBcIi4vZXhwcmVzc2lvblwiO1xuXG5pbXBvcnQgeyBwdXNoLCBjbGVhciwgaW5jbHVkZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXJyYXlcIjtcblxuY29uc3QgeyBXSUxEQ0FSRF9DSEFSQUNURVIgfSA9IGNoYXJhY3RlcnM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFF1ZXJ5IHtcbiAgY29uc3RydWN0b3Ioc3ByZWFkLCBzdWJRdWVyeSwgcnVsZU5hbWVzLCB0b2tlblR5cGVzLCBtYXhpbXVtRGVwdGgsIGluZmluaXRlRGVzY2VudCwgaW50ZXJtZWRpYXRlTm9kZXMpIHtcbiAgICB0aGlzLnNwcmVhZCA9IHNwcmVhZDtcbiAgICB0aGlzLnN1YlF1ZXJ5ID0gc3ViUXVlcnk7XG4gICAgdGhpcy5ydWxlTmFtZXMgPSBydWxlTmFtZXM7XG4gICAgdGhpcy50b2tlblR5cGVzID0gdG9rZW5UeXBlcztcbiAgICB0aGlzLm1heGltdW1EZXB0aCA9IG1heGltdW1EZXB0aDtcbiAgICB0aGlzLmluZmluaXRlRGVzY2VudCA9IGluZmluaXRlRGVzY2VudDtcbiAgICB0aGlzLmludGVybWVkaWF0ZU5vZGVzID0gaW50ZXJtZWRpYXRlTm9kZXM7XG4gIH1cblxuICBnZXRTcHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3ByZWE7XG4gIH1cblxuICBnZXRTdWJRdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJRdWVyeTtcbiAgfVxuXG4gIGdldFJ1bGVOYW1lcygpIHtcbiAgICByZXR1cm4gdGhpcy5ydWxlTmFtZXM7XG4gIH1cblxuICBnZXRUb2tlblR5cGVzKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VuVHlwZXM7XG4gIH1cblxuICBnZXRNYXhpbXVtRGVwdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMubWF4aW11bURlcHRoO1xuICB9XG5cbiAgaXNJbmZpbml0ZURlc2NlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5maW5pdGVEZXNjZW50O1xuICB9XG5cbiAgZ2V0SW50ZXJtZWRpYXRlTm9kZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW50ZXJtZWRpYXRlTm9kZXM7XG4gIH1cblxuICBleGVjdXRlKG5vZGUsIGRlcHRoID0gMCwgbWF4aW11bURlcHRoID0gdGhpcy5tYXhpbXVtRGVwdGgpIHtcbiAgICBjb25zdCBub2RlcyA9IFtdO1xuXG4gICAgdGhpcy5jbGVhcigpO1xuXG4gICAgdGhpcy5maW5kKG5vZGUsIGRlcHRoLCBtYXhpbXVtRGVwdGgpO1xuXG4gICAgdGhpcy5hcHBseShub2RlcywgZGVwdGgsIG1heGltdW1EZXB0aCk7XG5cbiAgICByZXR1cm4gbm9kZXM7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICBjbGVhcih0aGlzLmludGVybWVkaWF0ZU5vZGVzKTtcbiAgfVxuXG4gIGZpbmQobm9kZSwgZGVwdGgsIG1heGltdW1EZXB0aCkge1xuICAgIGlmIChkZXB0aCA+IG1heGltdW1EZXB0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgbm9kZU5vblRlcm1pbmFsTm9kZSA9ICFub2RlVGVybWluYWxOb2RlO1xuXG4gICAgbGV0IGZvdW5kO1xuXG4gICAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGUsICAvLy9cbiAgICAgICAgICAgIHR5cGVzID0gdGhpcy50b2tlblR5cGVzLCAgLy8vXG4gICAgICAgICAgICB0eXBlID0gdGVybWluYWxOb2RlLmdldFR5cGUoKTtcblxuICAgICAgZm91bmQgPSBpbmNsdWRlcyh0eXBlcywgdHlwZSwgV0lMRENBUkRfQ0hBUkFDVEVSKTtcbiAgICB9XG5cbiAgICBpZiAobm9kZU5vblRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZSwgLy8vXG4gICAgICAgICAgICBydWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpO1xuXG4gICAgICBmb3VuZCA9IGluY2x1ZGVzKHRoaXMucnVsZU5hbWVzLCBydWxlTmFtZSwgV0lMRENBUkRfQ0hBUkFDVEVSKTtcbiAgICB9XG5cbiAgICBpZiAoZm91bmQpIHtcbiAgICAgIGNvbnN0IGludGVybWVkaWF0ZU5vZGUgPSBub2RlOyAvLy9cblxuICAgICAgdGhpcy5pbnRlcm1lZGlhdGVOb2Rlcy5wdXNoKGludGVybWVkaWF0ZU5vZGUpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmluZmluaXRlRGVzY2VudCkge1xuICAgICAgaWYgKG5vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgICAgZGVwdGgrKztcblxuICAgICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlOyAvLy9cblxuICAgICAgICBub25UZXJtaW5hbE5vZGUuZm9yRWFjaENoaWxkTm9kZSgoY2hpbGROb2RlKSA9PiB7XG4gICAgICAgICAgdGhpcy5maW5kKGNoaWxkTm9kZSwgZGVwdGgsIG1heGltdW1EZXB0aCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFwcGx5KG5vZGVzLCBkZXB0aCwgbWF4aW11bURlcHRoKSB7XG4gICAgdGhpcy5zcHJlYWQuYWRqdXN0Tm9kZXModGhpcy5pbnRlcm1lZGlhdGVOb2Rlcyk7XG5cbiAgICBpZiAodGhpcy5zdWJRdWVyeSA9PT0gbnVsbCkge1xuICAgICAgcHVzaChub2RlcywgdGhpcy5pbnRlcm1lZGlhdGVOb2Rlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW50ZXJtZWRpYXRlTm9kZXMuZm9yRWFjaCgoaW50ZXJtZWRpYXRlTm9kZSkgPT4ge1xuICAgICAgICBjb25zdCBpbnRlcm1lZGlhdGVOb2RlTm9uVGVybWluYWxOb2RlID0gaW50ZXJtZWRpYXRlTm9kZS5pc05vblRlcm1pbmFsTm9kZSgpO1xuXG4gICAgICAgIGlmIChpbnRlcm1lZGlhdGVOb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICAgICAgZGVwdGgrKztcblxuICAgICAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IGludGVybWVkaWF0ZU5vZGU7IC8vL1xuXG4gICAgICAgICAgdGhpcy5zdWJRdWVyeS5jbGVhcigpO1xuXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlLmZvckVhY2hDaGlsZE5vZGUoKGNoaWxkTm9kZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWJRdWVyeS5maW5kKGNoaWxkTm9kZSwgZGVwdGgsIG1heGltdW1EZXB0aCk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLnN1YlF1ZXJ5LmFwcGx5KG5vZGVzLCBkZXB0aCwgbWF4aW11bURlcHRoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZyb21FeHByZXNzaW9uKGV4cHJlc3Npb24sIG1heGltdW1EZXB0aCA9IEluZmluaXR5KSB7XG4gICAgY29uc3Qgc3ByZWFkID0gZXhwcmVzc2lvbi5nZXRTcHJlYWQoKSxcbiAgICAgICAgICBzdWJRdWVyeSA9IHN1YlF1ZXJ5RnJvbUV4cHJlc3Npb24oZXhwcmVzc2lvbiksXG4gICAgICAgICAgcnVsZU5hbWVzID0gZXhwcmVzc2lvbi5nZXRSdWxlTmFtZXMoKSxcbiAgICAgICAgICB0b2tlblR5cGVzID0gZXhwcmVzc2lvbi5nZXRUb2tlblR5cGVzKCksXG4gICAgICAgICAgaW5maW5pdGVEZXNjZW50ID0gZXhwcmVzc2lvbi5pc0luZmluaXRlRGVzY2VudCgpLFxuICAgICAgICAgIGludGVybWVkaWF0ZU5vZGVzID0gW10sXG4gICAgICAgICAgcXVlcnkgPSBuZXcgUXVlcnkoc3ByZWFkLCBzdWJRdWVyeSwgcnVsZU5hbWVzLCB0b2tlblR5cGVzLCBtYXhpbXVtRGVwdGgsIGluZmluaXRlRGVzY2VudCwgaW50ZXJtZWRpYXRlTm9kZXMpO1xuXG4gICAgcmV0dXJuIHF1ZXJ5O1xuICB9XG5cbiAgc3RhdGljIGZyb21TdWJFeHByZXNzaW9uKHN1YkV4cHJlc3Npb24pIHtcbiAgICBjb25zdCBzcHJlYWQgPSBzdWJFeHByZXNzaW9uLmdldFNwcmVhZCgpLFxuICAgICAgICAgIHN1YlF1ZXJ5ID0gc3ViUXVlcnlGcm9tU3ViRXhwcmVzc2lvbihzdWJFeHByZXNzaW9uKSxcbiAgICAgICAgICBydWxlTmFtZXMgPSBzdWJFeHByZXNzaW9uLmdldFJ1bGVOYW1lcygpLFxuICAgICAgICAgIHRva2VuVHlwZXMgPSBzdWJFeHByZXNzaW9uLmdldFRva2VuVHlwZXMoKSxcbiAgICAgICAgICBtYXhpbXVtRGVwdGggPSBJbmZpbml0eSxcbiAgICAgICAgICBpbmZpbml0ZURlc2NlbnQgPSBzdWJFeHByZXNzaW9uLmlzSW5maW5pdGVEZXNjZW50KCksXG4gICAgICAgICAgaW50ZXJtZWRpYXRlTm9kZXMgPSBbXSxcbiAgICAgICAgICBxdWVyeSA9IG5ldyBRdWVyeShzcHJlYWQsIHN1YlF1ZXJ5LCBydWxlTmFtZXMsIHRva2VuVHlwZXMsIG1heGltdW1EZXB0aCwgaW5maW5pdGVEZXNjZW50LCBpbnRlcm1lZGlhdGVOb2Rlcyk7XG5cbiAgICByZXR1cm4gcXVlcnk7XG4gIH1cblxuICBzdGF0aWMgZnJvbUV4cHJlc3Npb25TdHJpbmcoZXhwcmVzc2lvblN0cmluZywgbWF4aW11bURlcHRoID0gSW5maW5pdHkpIHtcbiAgICBsZXQgcXVlcnkgPSBudWxsO1xuXG4gICAgY29uc3QgZXhwcmVzc2lvbiA9IEV4cHJlc3Npb24uZnJvbUV4cHJlc3Npb25TdHJpbmcoZXhwcmVzc2lvblN0cmluZyk7XG5cbiAgICBpZiAoZXhwcmVzc2lvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3ByZWFkID0gZXhwcmVzc2lvbi5nZXRTcHJlYWQoKSxcbiAgICAgICAgICAgIHN1YlF1ZXJ5ID0gc3ViUXVlcnlGcm9tRXhwcmVzc2lvbihleHByZXNzaW9uKSxcbiAgICAgICAgICAgIHJ1bGVOYW1lcyA9IGV4cHJlc3Npb24uZ2V0UnVsZU5hbWVzKCksXG4gICAgICAgICAgICB0b2tlblR5cGVzID0gZXhwcmVzc2lvbi5nZXRUb2tlblR5cGVzKCksXG4gICAgICAgICAgICBpbmZpbml0ZURlc2NlbnQgPSBleHByZXNzaW9uLmlzSW5maW5pdGVEZXNjZW50KCksXG4gICAgICAgICAgICBpbnRlcm1lZGlhdGVOb2RlcyA9IFtdO1xuXG4gICAgICBxdWVyeSA9IG5ldyBRdWVyeShzcHJlYWQsIHN1YlF1ZXJ5LCBydWxlTmFtZXMsIHRva2VuVHlwZXMsIG1heGltdW1EZXB0aCwgaW5maW5pdGVEZXNjZW50LCBpbnRlcm1lZGlhdGVOb2Rlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1ZXJ5O1xuICB9XG59XG5cbmZ1bmN0aW9uIHN1YlF1ZXJ5RnJvbUV4cHJlc3Npb24oZXhwcmVzc2lvbikge1xuICBsZXQgc3ViUXVlcnkgPSBudWxsO1xuXG4gIGNvbnN0IHN1YkV4cHJlc3Npb24gPSBleHByZXNzaW9uLmdldFN1YkV4cHJlc3Npb24oKTtcblxuICBpZiAoc3ViRXhwcmVzc2lvbiAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHF1ZXJ5ID0gUXVlcnkuZnJvbVN1YkV4cHJlc3Npb24oc3ViRXhwcmVzc2lvbik7XG5cbiAgICBzdWJRdWVyeSA9IHF1ZXJ5OyAvLy9cbiAgfVxuXG4gIHJldHVybiBzdWJRdWVyeTtcbn1cblxuZnVuY3Rpb24gc3ViUXVlcnlGcm9tU3ViRXhwcmVzc2lvbihzdWJFeHByZXNzaW9uKSB7XG4gIGxldCBzdWJRdWVyeSA9IG51bGw7XG5cbiAgc3ViRXhwcmVzc2lvbiA9IHN1YkV4cHJlc3Npb24uZ2V0U3ViRXhwcmVzc2lvbigpOyAvLy9cblxuICBpZiAoc3ViRXhwcmVzc2lvbiAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHF1ZXJ5ID0gUXVlcnkuZnJvbVN1YkV4cHJlc3Npb24oc3ViRXhwcmVzc2lvbik7XG5cbiAgICBzdWJRdWVyeSA9IHF1ZXJ5OyAvLy9cbiAgfVxuXG4gIHJldHVybiBzdWJRdWVyeTtcbn1cbiJdLCJuYW1lcyI6WyJRdWVyeSIsIldJTERDQVJEX0NIQVJBQ1RFUiIsImNoYXJhY3RlcnMiLCJzcHJlYWQiLCJzdWJRdWVyeSIsInJ1bGVOYW1lcyIsInRva2VuVHlwZXMiLCJtYXhpbXVtRGVwdGgiLCJpbmZpbml0ZURlc2NlbnQiLCJpbnRlcm1lZGlhdGVOb2RlcyIsImdldFNwcmVhZCIsInNwcmVhIiwiZ2V0U3ViUXVlcnkiLCJnZXRSdWxlTmFtZXMiLCJnZXRUb2tlblR5cGVzIiwiZ2V0TWF4aW11bURlcHRoIiwiaXNJbmZpbml0ZURlc2NlbnQiLCJnZXRJbnRlcm1lZGlhdGVOb2RlcyIsImV4ZWN1dGUiLCJub2RlIiwiZGVwdGgiLCJub2RlcyIsImNsZWFyIiwiZmluZCIsImFwcGx5Iiwibm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwibm9kZU5vblRlcm1pbmFsTm9kZSIsImZvdW5kIiwidGVybWluYWxOb2RlIiwidHlwZXMiLCJ0eXBlIiwiZ2V0VHlwZSIsImluY2x1ZGVzIiwibm9uVGVybWluYWxOb2RlIiwicnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsImludGVybWVkaWF0ZU5vZGUiLCJwdXNoIiwiZm9yRWFjaENoaWxkTm9kZSIsImNoaWxkTm9kZSIsImFkanVzdE5vZGVzIiwiZm9yRWFjaCIsImludGVybWVkaWF0ZU5vZGVOb25UZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsImZyb21FeHByZXNzaW9uIiwiZXhwcmVzc2lvbiIsIkluZmluaXR5Iiwic3ViUXVlcnlGcm9tRXhwcmVzc2lvbiIsInF1ZXJ5IiwiZnJvbVN1YkV4cHJlc3Npb24iLCJzdWJFeHByZXNzaW9uIiwic3ViUXVlcnlGcm9tU3ViRXhwcmVzc2lvbiIsImZyb21FeHByZXNzaW9uU3RyaW5nIiwiZXhwcmVzc2lvblN0cmlu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
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9xdWVyeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgY2hhcmFjdGVycyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IEV4cHJlc3Npb24gZnJvbSBcIi4vZXhwcmVzc2lvblwiO1xuXG5pbXBvcnQgeyBwdXNoLCBpbmNsdWRlcyB9IGZyb20gXCIuL3V0aWxpdGllcy9hcnJheVwiO1xuXG5jb25zdCB7IFdJTERDQVJEX0NIQVJBQ1RFUiB9ID0gY2hhcmFjdGVycztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUXVlcnkge1xuICBjb25zdHJ1Y3RvcihzcHJlYWQsIHN1YlF1ZXJ5LCBydWxlTmFtZXMsIHRva2VuVHlwZXMsIG1heGltdW1EZXB0aCwgaW5maW5pdGVEZXNjZW50KSB7XG4gICAgdGhpcy5zcHJlYWQgPSBzcHJlYWQ7XG4gICAgdGhpcy5zdWJRdWVyeSA9IHN1YlF1ZXJ5O1xuICAgIHRoaXMucnVsZU5hbWVzID0gcnVsZU5hbWVzO1xuICAgIHRoaXMudG9rZW5UeXBlcyA9IHRva2VuVHlwZXM7XG4gICAgdGhpcy5tYXhpbXVtRGVwdGggPSBtYXhpbXVtRGVwdGg7XG4gICAgdGhpcy5pbmZpbml0ZURlc2NlbnQgPSBpbmZpbml0ZURlc2NlbnQ7XG4gIH1cblxuICBnZXRTcHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3ByZWFkO1xuICB9XG5cbiAgZ2V0U3ViUXVlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3ViUXVlcnk7XG4gIH1cblxuICBnZXRSdWxlTmFtZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucnVsZU5hbWVzO1xuICB9XG5cbiAgZ2V0VG9rZW5UeXBlcygpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlblR5cGVzO1xuICB9XG5cbiAgZ2V0TWF4aW11bURlcHRoKCkge1xuICAgIHJldHVybiB0aGlzLm1heGltdW1EZXB0aDtcbiAgfVxuXG4gIGlzSW5maW5pdGVEZXNjZW50KCkge1xuICAgIHJldHVybiB0aGlzLmluZmluaXRlRGVzY2VudDtcbiAgfVxuXG4gIGV4ZWN1dGUobm9kZSwgZGVwdGggPSAwLCBtYXhpbXVtRGVwdGggPSB0aGlzLm1heGltdW1EZXB0aCkge1xuICAgIGNvbnN0IG5vZGVzID0gW107XG5cbiAgICBjb25zdCBpbnRlcm1lZGlhdGVOb2RlcyA9IHRoaXMuZmluZChub2RlLCBkZXB0aCwgbWF4aW11bURlcHRoKTtcblxuICAgIHRoaXMuYXBwbHkobm9kZXMsIGRlcHRoLCBtYXhpbXVtRGVwdGgsIGludGVybWVkaWF0ZU5vZGVzKTtcblxuICAgIHJldHVybiBub2RlcztcbiAgfVxuXG4gIGZpbmQobm9kZSwgZGVwdGgsIG1heGltdW1EZXB0aCwgaW50ZXJtZWRpYXRlTm9kZXMgPSBbXSkge1xuICAgIGlmIChkZXB0aCA8PSBtYXhpbXVtRGVwdGgpIHtcbiAgICAgIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgICBub2RlTm9uVGVybWluYWxOb2RlID0gIW5vZGVUZXJtaW5hbE5vZGU7XG5cbiAgICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGUsICAvLy9cbiAgICAgICAgICAgICAgdHlwZSA9IHRlcm1pbmFsTm9kZS5nZXRUeXBlKCksXG4gICAgICAgICAgICAgIHRva2VuVHlwZSA9IHR5cGUsXG4gICAgICAgICAgICAgIGZvdW5kID0gaW5jbHVkZXModGhpcy50b2tlblR5cGVzLCB0b2tlblR5cGUsIFdJTERDQVJEX0NIQVJBQ1RFUik7XG5cbiAgICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgICAgY29uc3QgaW50ZXJtZWRpYXRlTm9kZSA9IHRlcm1pbmFsTm9kZTsgLy8vXG5cbiAgICAgICAgICBpbnRlcm1lZGlhdGVOb2Rlcy5wdXNoKGludGVybWVkaWF0ZU5vZGUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vZGUsIC8vL1xuICAgICAgICAgICAgICBydWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgICAgICBmb3VuZCA9IGluY2x1ZGVzKHRoaXMucnVsZU5hbWVzLCBydWxlTmFtZSwgV0lMRENBUkRfQ0hBUkFDVEVSKTtcblxuICAgICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgICBjb25zdCBpbnRlcm1lZGlhdGVOb2RlID0gbm9uVGVybWluYWxOb2RlOyAvLy9cblxuICAgICAgICAgIGludGVybWVkaWF0ZU5vZGVzLnB1c2goaW50ZXJtZWRpYXRlTm9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pbmZpbml0ZURlc2NlbnQpIHtcbiAgICAgICAgICBkZXB0aCsrO1xuXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlLmZvckVhY2hDaGlsZE5vZGUoKGNoaWxkTm9kZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5maW5kKGNoaWxkTm9kZSwgZGVwdGgsIG1heGltdW1EZXB0aCwgaW50ZXJtZWRpYXRlTm9kZXMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGludGVybWVkaWF0ZU5vZGVzO1xuICB9XG5cbiAgYXBwbHkobm9kZXMsIGRlcHRoLCBtYXhpbXVtRGVwdGgsIGludGVybWVkaWF0ZU5vZGVzKSB7XG4gICAgdGhpcy5zcHJlYWQuYWRqdXN0Tm9kZXMoaW50ZXJtZWRpYXRlTm9kZXMpO1xuXG4gICAgaWYgKHRoaXMuc3ViUXVlcnkgPT09IG51bGwpIHtcbiAgICAgIHB1c2gobm9kZXMsIGludGVybWVkaWF0ZU5vZGVzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGRlcHRoKys7XG5cbiAgICBpbnRlcm1lZGlhdGVOb2Rlcy5mb3JFYWNoKChpbnRlcm1lZGlhdGVOb2RlKSA9PiB7XG4gICAgICBjb25zdCBpbnRlcm1lZGlkYXRlTm9kZU5vblRlcm1pbmFsTm9kZSA9IGludGVybWVkaWF0ZU5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgICAgaWYgKGludGVybWVkaWRhdGVOb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IGludGVybWVkaWF0ZU5vZGUsIC8vL1xuICAgICAgICAgICAgICBpbnRlcm1lZGlhdGVOb2RlcyA9IFtdO1xuXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZS5mb3JFYWNoQ2hpbGROb2RlKChjaGlsZE5vZGUpID0+IHtcbiAgICAgICAgICBjb25zdCBub2RlID0gY2hpbGROb2RlOyAvLy9cblxuICAgICAgICAgIHRoaXMuc3ViUXVlcnkuZmluZChub2RlLCBkZXB0aCwgbWF4aW11bURlcHRoLCBpbnRlcm1lZGlhdGVOb2Rlcyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc3ViUXVlcnkuYXBwbHkobm9kZXMsIGRlcHRoLCBtYXhpbXVtRGVwdGgsIGludGVybWVkaWF0ZU5vZGVzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRXhwcmVzc2lvbihleHByZXNzaW9uLCBtYXhpbXVtRGVwdGggPSBJbmZpbml0eSkge1xuICAgIGNvbnN0IHNwcmVhZCA9IGV4cHJlc3Npb24uZ2V0U3ByZWFkKCksXG4gICAgICAgICAgc3ViUXVlcnkgPSBzdWJRdWVyeUZyb21FeHByZXNzaW9uKGV4cHJlc3Npb24pLFxuICAgICAgICAgIHJ1bGVOYW1lcyA9IGV4cHJlc3Npb24uZ2V0UnVsZU5hbWVzKCksXG4gICAgICAgICAgdG9rZW5UeXBlcyA9IGV4cHJlc3Npb24uZ2V0VG9rZW5UeXBlcygpLFxuICAgICAgICAgIGluZmluaXRlRGVzY2VudCA9IGV4cHJlc3Npb24uaXNJbmZpbml0ZURlc2NlbnQoKSxcbiAgICAgICAgICBpbnRlcm1lZGlhdGVOb2RlcyA9IFtdLFxuICAgICAgICAgIHF1ZXJ5ID0gbmV3IFF1ZXJ5KHNwcmVhZCwgc3ViUXVlcnksIHJ1bGVOYW1lcywgdG9rZW5UeXBlcywgbWF4aW11bURlcHRoLCBpbmZpbml0ZURlc2NlbnQsIGludGVybWVkaWF0ZU5vZGVzKTtcblxuICAgIHJldHVybiBxdWVyeTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3ViRXhwcmVzc2lvbihzdWJFeHByZXNzaW9uKSB7XG4gICAgY29uc3Qgc3ByZWFkID0gc3ViRXhwcmVzc2lvbi5nZXRTcHJlYWQoKSxcbiAgICAgICAgICBzdWJRdWVyeSA9IHN1YlF1ZXJ5RnJvbVN1YkV4cHJlc3Npb24oc3ViRXhwcmVzc2lvbiksXG4gICAgICAgICAgcnVsZU5hbWVzID0gc3ViRXhwcmVzc2lvbi5nZXRSdWxlTmFtZXMoKSxcbiAgICAgICAgICB0b2tlblR5cGVzID0gc3ViRXhwcmVzc2lvbi5nZXRUb2tlblR5cGVzKCksXG4gICAgICAgICAgbWF4aW11bURlcHRoID0gSW5maW5pdHksXG4gICAgICAgICAgaW5maW5pdGVEZXNjZW50ID0gc3ViRXhwcmVzc2lvbi5pc0luZmluaXRlRGVzY2VudCgpLFxuICAgICAgICAgIHF1ZXJ5ID0gbmV3IFF1ZXJ5KHNwcmVhZCwgc3ViUXVlcnksIHJ1bGVOYW1lcywgdG9rZW5UeXBlcywgbWF4aW11bURlcHRoLCBpbmZpbml0ZURlc2NlbnQpO1xuXG4gICAgcmV0dXJuIHF1ZXJ5O1xuICB9XG5cbiAgc3RhdGljIGZyb21FeHByZXNzaW9uU3RyaW5nKGV4cHJlc3Npb25TdHJpbmcsIG1heGltdW1EZXB0aCA9IEluZmluaXR5KSB7XG4gICAgbGV0IHF1ZXJ5ID0gbnVsbDtcblxuICAgIGNvbnN0IGV4cHJlc3Npb24gPSBFeHByZXNzaW9uLmZyb21FeHByZXNzaW9uU3RyaW5nKGV4cHJlc3Npb25TdHJpbmcpO1xuXG4gICAgaWYgKGV4cHJlc3Npb24gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHNwcmVhZCA9IGV4cHJlc3Npb24uZ2V0U3ByZWFkKCksXG4gICAgICAgICAgICBzdWJRdWVyeSA9IHN1YlF1ZXJ5RnJvbUV4cHJlc3Npb24oZXhwcmVzc2lvbiksXG4gICAgICAgICAgICBydWxlTmFtZXMgPSBleHByZXNzaW9uLmdldFJ1bGVOYW1lcygpLFxuICAgICAgICAgICAgdG9rZW5UeXBlcyA9IGV4cHJlc3Npb24uZ2V0VG9rZW5UeXBlcygpLFxuICAgICAgICAgICAgaW5maW5pdGVEZXNjZW50ID0gZXhwcmVzc2lvbi5pc0luZmluaXRlRGVzY2VudCgpO1xuXG4gICAgICBxdWVyeSA9IG5ldyBRdWVyeShzcHJlYWQsIHN1YlF1ZXJ5LCBydWxlTmFtZXMsIHRva2VuVHlwZXMsIG1heGltdW1EZXB0aCwgaW5maW5pdGVEZXNjZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcXVlcnk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc3ViUXVlcnlGcm9tRXhwcmVzc2lvbihleHByZXNzaW9uKSB7XG4gIGxldCBzdWJRdWVyeSA9IG51bGw7XG5cbiAgY29uc3Qgc3ViRXhwcmVzc2lvbiA9IGV4cHJlc3Npb24uZ2V0U3ViRXhwcmVzc2lvbigpO1xuXG4gIGlmIChzdWJFeHByZXNzaW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgcXVlcnkgPSBRdWVyeS5mcm9tU3ViRXhwcmVzc2lvbihzdWJFeHByZXNzaW9uKTtcblxuICAgIHN1YlF1ZXJ5ID0gcXVlcnk7IC8vL1xuICB9XG5cbiAgcmV0dXJuIHN1YlF1ZXJ5O1xufVxuXG5mdW5jdGlvbiBzdWJRdWVyeUZyb21TdWJFeHByZXNzaW9uKHN1YkV4cHJlc3Npb24pIHtcbiAgbGV0IHN1YlF1ZXJ5ID0gbnVsbDtcblxuICBzdWJFeHByZXNzaW9uID0gc3ViRXhwcmVzc2lvbi5nZXRTdWJFeHByZXNzaW9uKCk7IC8vL1xuXG4gIGlmIChzdWJFeHByZXNzaW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgcXVlcnkgPSBRdWVyeS5mcm9tU3ViRXhwcmVzc2lvbihzdWJFeHByZXNzaW9uKTtcblxuICAgIHN1YlF1ZXJ5ID0gcXVlcnk7IC8vL1xuICB9XG5cbiAgcmV0dXJuIHN1YlF1ZXJ5O1xufVxuIl0sIm5hbWVzIjpbIlF1ZXJ5IiwiV0lMRENBUkRfQ0hBUkFDVEVSIiwiY2hhcmFjdGVycyIsInNwcmVhZCIsInN1YlF1ZXJ5IiwicnVsZU5hbWVzIiwidG9rZW5UeXBlcyIsIm1heGltdW1EZXB0aCIsImluZmluaXRlRGVzY2VudCIsImdldFNwcmVhZCIsImdldFN1YlF1ZXJ5IiwiZ2V0UnVsZU5hbWVzIiwiZ2V0VG9rZW5UeXBlcyIsImdldE1heGltdW1EZXB0aCIsImlzSW5maW5pdGVEZXNjZW50IiwiZXhlY3V0ZSIsIm5vZGUiLCJkZXB0aCIsIm5vZGVzIiwiaW50ZXJtZWRpYXRlTm9kZXMiLCJmaW5kIiwiYXBwbHkiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJub2RlTm9uVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlIiwidHlwZSIsImdldFR5cGUiLCJ0b2tlblR5cGUiLCJmb3VuZCIsImluY2x1ZGVzIiwiaW50ZXJtZWRpYXRlTm9kZSIsInB1c2giLCJub25UZXJtaW5hbE5vZGUiLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiZm9yRWFjaENoaWxkTm9kZSIsImNoaWxkTm9kZSIsImFkanVzdE5vZGVzIiwiZm9yRWFjaCIsImludGVybWVkaWRhdGVOb2RlTm9uVGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJmcm9tRXhwcmVzc2lvbiIsImV4cHJlc3Npb24iLCJJbmZpbml0eSIsInN1YlF1ZXJ5RnJvbUV4cHJlc3Npb24iLCJxdWVyeSIsImZyb21TdWJFeHByZXNzaW9uIiwic3ViRXhwcmVzc2lvbiIsInN1YlF1ZXJ5RnJvbVN1YkV4cHJlc3Npb24iLCJmcm9tRXhwcmVzc2lvblN0cmluZyIsImV4cHJlc3Npb25TdHJpbmciLCJFeHByZXNzaW9uIiwiZ2V0U3ViRXhwcmVzc2lvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFxQkE7OzsyQkFSTTttRUFFSjt1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
|
package/lib/utilities/array.js
CHANGED
|
@@ -43,9 +43,11 @@ _export(exports, {
|
|
|
43
43
|
const _necessary = require("necessary");
|
|
44
44
|
const { clear, push, first, second, third, fourth, fifth, last } = _necessary.arrayUtilities;
|
|
45
45
|
function trim(array, startIndex, endIndex) {
|
|
46
|
+
const length = array.length; ///
|
|
46
47
|
if (startIndex < 0) {
|
|
47
|
-
const length = array.length; ///
|
|
48
48
|
startIndex = length + startIndex; ///
|
|
49
|
+
}
|
|
50
|
+
if (endIndex < 0) {
|
|
49
51
|
endIndex = length + endIndex; ///
|
|
50
52
|
}
|
|
51
53
|
if (endIndex !== Infinity) {
|
|
@@ -56,7 +58,13 @@ function trim(array, startIndex, endIndex) {
|
|
|
56
58
|
array.splice(start, deleteCount);
|
|
57
59
|
}
|
|
58
60
|
function includes(array, ...elements) {
|
|
59
|
-
|
|
61
|
+
const found = elements.some((element)=>{
|
|
62
|
+
const found = array.includes(element);
|
|
63
|
+
if (found) {
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
return found;
|
|
60
68
|
}
|
|
61
69
|
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYXJyYXkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5leHBvcnQgY29uc3QgeyBjbGVhciwgcHVzaCwgZmlyc3QsIHNlY29uZCwgdGhpcmQsIGZvdXJ0aCwgZmlmdGgsIGxhc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gdHJpbShhcnJheSwgc3RhcnRJbmRleCwgZW5kSW5kZXgpIHtcbiAgY29uc3QgbGVuZ3RoID0gYXJyYXkubGVuZ3RoOyAvLy9cblxuICBpZiAoc3RhcnRJbmRleCA8IDApIHtcbiAgICBzdGFydEluZGV4ID0gbGVuZ3RoICsgc3RhcnRJbmRleDsgLy8vXG4gIH1cblxuICBpZiAoZW5kSW5kZXggPCAwKSB7XG4gICAgZW5kSW5kZXggPSBsZW5ndGggKyBlbmRJbmRleDsgLy8vXG4gIH1cblxuICBpZiAoZW5kSW5kZXggIT09IEluZmluaXR5KSB7XG4gICAgY29uc3Qgc3RhcnQgPSBlbmRJbmRleCArIDE7XG5cbiAgICBhcnJheS5zcGxpY2Uoc3RhcnQpO1xuICB9XG5cbiAgY29uc3Qgc3RhcnQgPSAwLFxuICAgICAgICBkZWxldGVDb3VudCA9IHN0YXJ0SW5kZXg7IC8vL1xuXG4gIGFycmF5LnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5jbHVkZXMoYXJyYXksIC4uLmVsZW1lbnRzKSB7XG4gIGNvbnN0IGZvdW5kID0gZWxlbWVudHMuc29tZSgoZWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGZvdW5kID0gYXJyYXkuaW5jbHVkZXMoZWxlbWVudCk7XG5cbiAgICBpZiAoZm91bmQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGZvdW5kO1xufVxuIl0sIm5hbWVzIjpbImNsZWFyIiwiZmlmdGgiLCJmaXJzdCIsImZvdXJ0aCIsImluY2x1ZGVzIiwibGFzdCIsInB1c2giLCJzZWNvbmQiLCJ0aGlyZCIsInRyaW0iLCJhcnJheVV0aWxpdGllcyIsImFycmF5Iiwic3RhcnRJbmRleCIsImVuZEluZGV4IiwibGVuZ3RoIiwiSW5maW5pdHkiLCJzdGFydCIsInNwbGljZSIsImRlbGV0ZUNvdW50IiwiZWxlbWVudHMiLCJmb3VuZCIsInNvbWUiLCJlbGVtZW50Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFJZUE7ZUFBQUE7O1FBQTJDQztlQUFBQTs7UUFBOUJDO2VBQUFBOztRQUFzQkM7ZUFBQUE7O1FBeUJsQ0M7ZUFBQUE7O1FBekJpREM7ZUFBQUE7O1FBQTNDQztlQUFBQTs7UUFBYUM7ZUFBQUE7O1FBQVFDO2VBQUFBOztRQUUzQkM7ZUFBQUE7OzsyQkFKZTtBQUV4QixNQUFNLEVBQUVULEtBQUssRUFBRU0sSUFBSSxFQUFFSixLQUFLLEVBQUVLLE1BQU0sRUFBRUMsS0FBSyxFQUFFTCxNQUFNLEVBQUVGLEtBQUssRUFBRUksSUFBSSxFQUFFLEdBQUdLLHlCQUFjO0FBRWpGLFNBQVNELEtBQUtFLEtBQUssRUFBRUMsVUFBVSxFQUFFQyxRQUFRO0lBQzlDLE1BQU1DLFNBQVNILE1BQU1HLE1BQU0sRUFBRSxHQUFHO0lBRWhDLElBQUlGLGFBQWEsR0FBRztRQUNsQkEsYUFBYUUsU0FBU0YsWUFBWSxHQUFHO0lBQ3ZDO0lBRUEsSUFBSUMsV0FBVyxHQUFHO1FBQ2hCQSxXQUFXQyxTQUFTRCxVQUFVLEdBQUc7SUFDbkM7SUFFQSxJQUFJQSxhQUFhRSxVQUFVO1FBQ3pCLE1BQU1DLFFBQVFILFdBQVc7UUFFekJGLE1BQU1NLE1BQU0sQ0FBQ0Q7SUFDZjtJQUVBLE1BQU1BLFFBQVEsR0FDUkUsY0FBY04sWUFBWSxHQUFHO0lBRW5DRCxNQUFNTSxNQUFNLENBQUNELE9BQU9FO0FBQ3RCO0FBRU8sU0FBU2QsU0FBU08sS0FBSyxFQUFFLEdBQUdRLFFBQVE7SUFDekMsTUFBTUMsUUFBUUQsU0FBU0UsSUFBSSxDQUFDLENBQUNDO1FBQzNCLE1BQU1GLFFBQVFULE1BQU1QLFFBQVEsQ0FBQ2tCO1FBRTdCLElBQUlGLE9BQU87WUFDVCxPQUFPO1FBQ1Q7SUFDRjtJQUVBLE9BQU9BO0FBQ1QifQ==
|
package/package.json
CHANGED
package/src/query.js
CHANGED
|
@@ -4,23 +4,22 @@ import { characters } from "necessary";
|
|
|
4
4
|
|
|
5
5
|
import Expression from "./expression";
|
|
6
6
|
|
|
7
|
-
import { push,
|
|
7
|
+
import { push, includes } from "./utilities/array";
|
|
8
8
|
|
|
9
9
|
const { WILDCARD_CHARACTER } = characters;
|
|
10
10
|
|
|
11
11
|
export default class Query {
|
|
12
|
-
constructor(spread, subQuery, ruleNames, tokenTypes, maximumDepth, infiniteDescent
|
|
12
|
+
constructor(spread, subQuery, ruleNames, tokenTypes, maximumDepth, infiniteDescent) {
|
|
13
13
|
this.spread = spread;
|
|
14
14
|
this.subQuery = subQuery;
|
|
15
15
|
this.ruleNames = ruleNames;
|
|
16
16
|
this.tokenTypes = tokenTypes;
|
|
17
17
|
this.maximumDepth = maximumDepth;
|
|
18
18
|
this.infiniteDescent = infiniteDescent;
|
|
19
|
-
this.intermediateNodes = intermediateNodes;
|
|
20
19
|
}
|
|
21
20
|
|
|
22
21
|
getSpread() {
|
|
23
|
-
return this.
|
|
22
|
+
return this.spread;
|
|
24
23
|
}
|
|
25
24
|
|
|
26
25
|
getSubQuery() {
|
|
@@ -43,94 +42,85 @@ export default class Query {
|
|
|
43
42
|
return this.infiniteDescent;
|
|
44
43
|
}
|
|
45
44
|
|
|
46
|
-
getIntermediateNodes() {
|
|
47
|
-
return this.intermediateNodes;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
45
|
execute(node, depth = 0, maximumDepth = this.maximumDepth) {
|
|
51
46
|
const nodes = [];
|
|
52
47
|
|
|
53
|
-
this.
|
|
54
|
-
|
|
55
|
-
this.find(node, depth, maximumDepth);
|
|
48
|
+
const intermediateNodes = this.find(node, depth, maximumDepth);
|
|
56
49
|
|
|
57
|
-
this.apply(nodes, depth, maximumDepth);
|
|
50
|
+
this.apply(nodes, depth, maximumDepth, intermediateNodes);
|
|
58
51
|
|
|
59
52
|
return nodes;
|
|
60
53
|
}
|
|
61
54
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
find(node, depth, maximumDepth) {
|
|
67
|
-
if (depth > maximumDepth) {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
const nodeTerminalNode = node.isTerminalNode(),
|
|
72
|
-
nodeNonTerminalNode = !nodeTerminalNode;
|
|
73
|
-
|
|
74
|
-
let found;
|
|
75
|
-
|
|
76
|
-
if (nodeTerminalNode) {
|
|
77
|
-
const terminalNode = node, ///
|
|
78
|
-
types = this.tokenTypes, ///
|
|
79
|
-
type = terminalNode.getType();
|
|
55
|
+
find(node, depth, maximumDepth, intermediateNodes = []) {
|
|
56
|
+
if (depth <= maximumDepth) {
|
|
57
|
+
const nodeTerminalNode = node.isTerminalNode(),
|
|
58
|
+
nodeNonTerminalNode = !nodeTerminalNode;
|
|
80
59
|
|
|
81
|
-
|
|
82
|
-
|
|
60
|
+
if (nodeTerminalNode) {
|
|
61
|
+
const terminalNode = node, ///
|
|
62
|
+
type = terminalNode.getType(),
|
|
63
|
+
tokenType = type,
|
|
64
|
+
found = includes(this.tokenTypes, tokenType, WILDCARD_CHARACTER);
|
|
83
65
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
ruleName = nonTerminalNode.getRuleName();
|
|
66
|
+
if (found) {
|
|
67
|
+
const intermediateNode = terminalNode; ///
|
|
87
68
|
|
|
88
|
-
|
|
89
|
-
|
|
69
|
+
intermediateNodes.push(intermediateNode);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
90
72
|
|
|
91
|
-
|
|
92
|
-
|
|
73
|
+
if (nodeNonTerminalNode) {
|
|
74
|
+
const nonTerminalNode = node, ///
|
|
75
|
+
ruleName = nonTerminalNode.getRuleName(),
|
|
76
|
+
found = includes(this.ruleNames, ruleName, WILDCARD_CHARACTER);
|
|
93
77
|
|
|
94
|
-
|
|
95
|
-
|
|
78
|
+
if (found) {
|
|
79
|
+
const intermediateNode = nonTerminalNode; ///
|
|
96
80
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
depth++;
|
|
81
|
+
intermediateNodes.push(intermediateNode);
|
|
82
|
+
}
|
|
100
83
|
|
|
101
|
-
|
|
84
|
+
if (this.infiniteDescent) {
|
|
85
|
+
depth++;
|
|
102
86
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
87
|
+
nonTerminalNode.forEachChildNode((childNode) => {
|
|
88
|
+
this.find(childNode, depth, maximumDepth, intermediateNodes);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
106
91
|
}
|
|
107
92
|
}
|
|
93
|
+
|
|
94
|
+
return intermediateNodes;
|
|
108
95
|
}
|
|
109
96
|
|
|
110
|
-
apply(nodes, depth, maximumDepth) {
|
|
111
|
-
this.spread.adjustNodes(
|
|
97
|
+
apply(nodes, depth, maximumDepth, intermediateNodes) {
|
|
98
|
+
this.spread.adjustNodes(intermediateNodes);
|
|
112
99
|
|
|
113
100
|
if (this.subQuery === null) {
|
|
114
|
-
push(nodes,
|
|
115
|
-
} else {
|
|
116
|
-
this.intermediateNodes.forEach((intermediateNode) => {
|
|
117
|
-
const intermediateNodeNonTerminalNode = intermediateNode.isNonTerminalNode();
|
|
101
|
+
push(nodes, intermediateNodes);
|
|
118
102
|
|
|
119
|
-
|
|
120
|
-
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
121
105
|
|
|
122
|
-
|
|
106
|
+
depth++;
|
|
123
107
|
|
|
124
|
-
|
|
108
|
+
intermediateNodes.forEach((intermediateNode) => {
|
|
109
|
+
const intermedidateNodeNonTerminalNode = intermediateNode.isNonTerminalNode();
|
|
125
110
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
111
|
+
if (intermedidateNodeNonTerminalNode) {
|
|
112
|
+
const nonTerminalNode = intermediateNode, ///
|
|
113
|
+
intermediateNodes = [];
|
|
129
114
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
115
|
+
nonTerminalNode.forEachChildNode((childNode) => {
|
|
116
|
+
const node = childNode; ///
|
|
117
|
+
|
|
118
|
+
this.subQuery.find(node, depth, maximumDepth, intermediateNodes);
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
this.subQuery.apply(nodes, depth, maximumDepth, intermediateNodes);
|
|
122
|
+
}
|
|
123
|
+
});
|
|
134
124
|
}
|
|
135
125
|
|
|
136
126
|
static fromExpression(expression, maximumDepth = Infinity) {
|
|
@@ -152,8 +142,7 @@ export default class Query {
|
|
|
152
142
|
tokenTypes = subExpression.getTokenTypes(),
|
|
153
143
|
maximumDepth = Infinity,
|
|
154
144
|
infiniteDescent = subExpression.isInfiniteDescent(),
|
|
155
|
-
|
|
156
|
-
query = new Query(spread, subQuery, ruleNames, tokenTypes, maximumDepth, infiniteDescent, intermediateNodes);
|
|
145
|
+
query = new Query(spread, subQuery, ruleNames, tokenTypes, maximumDepth, infiniteDescent);
|
|
157
146
|
|
|
158
147
|
return query;
|
|
159
148
|
}
|
|
@@ -168,10 +157,9 @@ export default class Query {
|
|
|
168
157
|
subQuery = subQueryFromExpression(expression),
|
|
169
158
|
ruleNames = expression.getRuleNames(),
|
|
170
159
|
tokenTypes = expression.getTokenTypes(),
|
|
171
|
-
infiniteDescent = expression.isInfiniteDescent()
|
|
172
|
-
intermediateNodes = [];
|
|
160
|
+
infiniteDescent = expression.isInfiniteDescent();
|
|
173
161
|
|
|
174
|
-
query = new Query(spread, subQuery, ruleNames, tokenTypes, maximumDepth, infiniteDescent
|
|
162
|
+
query = new Query(spread, subQuery, ruleNames, tokenTypes, maximumDepth, infiniteDescent);
|
|
175
163
|
}
|
|
176
164
|
|
|
177
165
|
return query;
|
package/src/utilities/array.js
CHANGED
|
@@ -5,11 +5,13 @@ import { arrayUtilities } from "necessary";
|
|
|
5
5
|
export const { clear, push, first, second, third, fourth, fifth, last } = arrayUtilities;
|
|
6
6
|
|
|
7
7
|
export function trim(array, startIndex, endIndex) {
|
|
8
|
-
|
|
9
|
-
const length = array.length; ///
|
|
8
|
+
const length = array.length; ///
|
|
10
9
|
|
|
10
|
+
if (startIndex < 0) {
|
|
11
11
|
startIndex = length + startIndex; ///
|
|
12
|
+
}
|
|
12
13
|
|
|
14
|
+
if (endIndex < 0) {
|
|
13
15
|
endIndex = length + endIndex; ///
|
|
14
16
|
}
|
|
15
17
|
|
|
@@ -26,5 +28,13 @@ export function trim(array, startIndex, endIndex) {
|
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
export function includes(array, ...elements) {
|
|
29
|
-
|
|
31
|
+
const found = elements.some((element) => {
|
|
32
|
+
const found = array.includes(element);
|
|
33
|
+
|
|
34
|
+
if (found) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
return found;
|
|
30
40
|
}
|