occam-verify-cli 0.0.836 → 0.0.839
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/constants.js +5 -1
- package/lib/context/file.js +24 -9
- package/lib/context/local.js +77 -39
- package/lib/context/localMeta.js +3 -3
- package/lib/context/release.js +4 -5
- package/lib/equality.js +2 -2
- package/lib/equivalence.js +244 -0
- package/lib/log.js +3 -3
- package/lib/term.js +40 -1
- package/lib/utilities/array.js +5 -5
- package/lib/utilities/equivalences.js +169 -0
- package/lib/verifier/node/metastatement.js +12 -31
- package/lib/verifier/node/statementAsCombinator.js +4 -4
- package/lib/verifier/node/termAsConstructor.js +7 -27
- package/lib/verifier/nodes/equality.js +8 -8
- package/lib/verifier/nodes/metaLevelToIntrinsicLevel.js +22 -6
- package/lib/verify/containment.js +22 -12
- package/lib/verify/defining.js +38 -0
- package/lib/verify/metavariable.js +26 -4
- package/lib/verify/statement.js +62 -45
- package/lib/verify/term.js +6 -6
- package/lib/verify/type.js +7 -7
- package/lib/verify/variable.js +26 -4
- package/package.json +2 -2
- package/src/constants.js +1 -0
- package/src/context/file.js +35 -8
- package/src/context/local.js +113 -44
- package/src/context/localMeta.js +3 -3
- package/src/context/release.js +6 -9
- package/src/equality.js +2 -2
- package/src/{collection.js → equivalence.js} +84 -28
- package/src/log.js +2 -2
- package/src/term.js +48 -0
- package/src/utilities/array.js +1 -1
- package/src/utilities/equivalences.js +152 -0
- package/src/verifier/node/metastatement.js +23 -51
- package/src/verifier/node/statementAsCombinator.js +9 -6
- package/src/verifier/node/termAsConstructor.js +13 -44
- package/src/verifier/nodes/equality.js +7 -7
- package/src/verifier/nodes/metaLevelToIntrinsicLevel.js +38 -12
- package/src/verify/containment.js +31 -20
- package/src/verify/defining.js +43 -0
- package/src/verify/metavariable.js +22 -0
- package/src/verify/statement.js +88 -54
- package/src/verify/term.js +4 -5
- package/src/verify/type.js +6 -7
- package/src/verify/variable.js +22 -0
- package/lib/collection.js +0 -192
- package/lib/utilities/collection.js +0 -121
- package/src/utilities/collection.js +0 -103
package/src/verify/statement.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import verifyEquality from "../verify/equality";
|
|
4
|
+
import verifyDefining from "../verify/defining";
|
|
4
5
|
import verifyContainment from "../verify/containment";
|
|
5
6
|
import bracketedCombinator from "../ocmbinator/bracketed";
|
|
6
7
|
import verifyTypeAssertion from "../verify/typeAssertion";
|
|
@@ -9,8 +10,11 @@ import statementNodesVerifier from "../verifier/nodes/statement";
|
|
|
9
10
|
import { nodeQuery } from "../utilities/query";
|
|
10
11
|
|
|
11
12
|
const equalityNodeQuery = nodeQuery("/statement/equality!"),
|
|
12
|
-
|
|
13
|
+
argumentNodeQuery = nodeQuery("/statement/argument!"),
|
|
14
|
+
definingNodeQuery = nodeQuery("/statement/defining!"),
|
|
15
|
+
statementNodeQuery = nodeQuery("/metaArgument/statement!"),
|
|
13
16
|
containmentNodeQuery = nodeQuery("/statement/containment!"),
|
|
17
|
+
metaArgumentNodeQuery = nodeQuery("/statement/metaArgument!"),
|
|
14
18
|
typeAssertionNodeQuery = nodeQuery("/statement/typeAssertion!");
|
|
15
19
|
|
|
16
20
|
function verifyStatement(statementNode, assignments, derived, context, verifyAhead) {
|
|
@@ -22,8 +26,9 @@ function verifyStatement(statementNode, assignments, derived, context, verifyAhe
|
|
|
22
26
|
|
|
23
27
|
const verifyStatementFunctions = [
|
|
24
28
|
verifyStatementAsEquality,
|
|
29
|
+
verifyStatementAboutDefining,
|
|
25
30
|
verifyStatementAsTypeAssertion,
|
|
26
|
-
|
|
31
|
+
verifyStatementAboutContainment,
|
|
27
32
|
verifyStatementAgainstCombinators
|
|
28
33
|
];
|
|
29
34
|
|
|
@@ -42,22 +47,21 @@ function verifyStatement(statementNode, assignments, derived, context, verifyAhe
|
|
|
42
47
|
return statementVerified;
|
|
43
48
|
}
|
|
44
49
|
|
|
45
|
-
export function verifyStandaloneStatement(statementNode,
|
|
50
|
+
export function verifyStandaloneStatement(statementNode, context, verifyAhead) {
|
|
46
51
|
let standaloneStatementVerified;
|
|
47
52
|
|
|
48
|
-
const statementString =
|
|
53
|
+
const statementString = context.nodeAsString(statementNode);
|
|
49
54
|
|
|
50
|
-
|
|
55
|
+
context.trace(`Verifying the '${statementString}' standalone statement...`, statementNode);
|
|
51
56
|
|
|
52
|
-
const
|
|
53
|
-
derived = false,
|
|
57
|
+
const derived = false,
|
|
54
58
|
assignments = [],
|
|
55
59
|
statementVerified = verifyStatement(statementNode, assignments, derived, context, verifyAhead);
|
|
56
60
|
|
|
57
61
|
standaloneStatementVerified = statementVerified; ///
|
|
58
62
|
|
|
59
63
|
if (standaloneStatementVerified) {
|
|
60
|
-
|
|
64
|
+
context.debug(`...verified the '${statementString}' standalone statement.`, statementNode);
|
|
61
65
|
}
|
|
62
66
|
|
|
63
67
|
return standaloneStatementVerified;
|
|
@@ -91,6 +95,29 @@ function verifyStatementAsEquality(statementNode, assignments, derived, context,
|
|
|
91
95
|
return statementVerifiedAsEquality;
|
|
92
96
|
}
|
|
93
97
|
|
|
98
|
+
function verifyStatementAboutDefining(statementNode, assignments, derived, context, verifyAhead) {
|
|
99
|
+
let statementVerifiedAboutDefining = false;
|
|
100
|
+
|
|
101
|
+
const definingNode = definingNodeQuery(statementNode);
|
|
102
|
+
|
|
103
|
+
if (definingNode !== null) {
|
|
104
|
+
const statementString = context.nodeAsString(statementNode);
|
|
105
|
+
|
|
106
|
+
context.trace(`Verifying the '${statementString}' statement about defining...`, statementNode);
|
|
107
|
+
|
|
108
|
+
const argumentNode = argumentNodeQuery(statementNode),
|
|
109
|
+
definingVerified = verifyDefining(argumentNode, definingNode, context);
|
|
110
|
+
|
|
111
|
+
statementVerifiedAboutDefining = definingVerified; ///
|
|
112
|
+
|
|
113
|
+
if (statementVerifiedAboutDefining) {
|
|
114
|
+
context.debug(`...verified the '${statementString}' statement about defining.`, statementNode);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
return statementVerifiedAboutDefining;
|
|
119
|
+
}
|
|
120
|
+
|
|
94
121
|
function verifyStatementAsTypeAssertion(statementNode, assignments, derived, context, verifyAhead) {
|
|
95
122
|
let statementVerifiedAsTypeAssertion = false;
|
|
96
123
|
|
|
@@ -113,68 +140,47 @@ function verifyStatementAsTypeAssertion(statementNode, assignments, derived, con
|
|
|
113
140
|
return statementVerifiedAsTypeAssertion;
|
|
114
141
|
}
|
|
115
142
|
|
|
116
|
-
function
|
|
117
|
-
let
|
|
143
|
+
function verifyStatementAboutContainment(statementNode, assignments, derived, context, verifyAhead) {
|
|
144
|
+
let statementVerifiedAboutContainment = false;
|
|
118
145
|
|
|
119
146
|
const containmentNode = containmentNodeQuery(statementNode);
|
|
120
147
|
|
|
121
148
|
if (containmentNode !== null) {
|
|
122
149
|
const statementString = context.nodeAsString(statementNode);
|
|
123
150
|
|
|
124
|
-
|
|
151
|
+
context.trace(`Verifying the '${statementString}' statement about containment...`, statementNode);
|
|
125
152
|
|
|
126
|
-
|
|
127
|
-
|
|
153
|
+
const argumentNode = argumentNodeQuery(statementNode),
|
|
154
|
+
metaArgumentNode = metaArgumentNodeQuery(statementNode),
|
|
155
|
+
containmentVerified = verifyContainment(argumentNode, containmentNode, metaArgumentNode, context);
|
|
128
156
|
|
|
129
|
-
|
|
157
|
+
if (containmentVerified) {
|
|
158
|
+
statementNode = statementNodeQuery(metaArgumentNode); ///
|
|
130
159
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
];
|
|
160
|
+
const verifyStatementFunctions = [
|
|
161
|
+
verifyStatementAsEquality,
|
|
162
|
+
verifyStatementAgainstCombinators
|
|
163
|
+
];
|
|
136
164
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
165
|
+
const statementVerified = verifyStatementFunctions.some((verifyStatementFunction) => {
|
|
166
|
+
const derived = false,
|
|
167
|
+
assignments = [],
|
|
168
|
+
statementVerified = verifyStatementFunction(statementNode, assignments, derived, context, verifyAhead);
|
|
141
169
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
170
|
+
if (statementVerified) {
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
});
|
|
146
174
|
|
|
147
|
-
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
if (statementVerifiedWithContainment) {
|
|
151
|
-
context.debug(`...verified the '${statementString}' statement with containment.`, statementNode);
|
|
152
|
-
}
|
|
175
|
+
statementVerifiedAboutContainment = statementVerified; ///
|
|
153
176
|
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
return statementVerifiedWithContainment;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
function verifyStatementAgainstCombinators(statementNode, assignments, derived, context, verifyAhead) {
|
|
160
|
-
let statementVerifiedAgainstCombinators;
|
|
161
177
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
combinators = [ ///
|
|
165
|
-
bracketedCombinator,
|
|
166
|
-
...combinators
|
|
167
|
-
];
|
|
168
|
-
|
|
169
|
-
statementVerifiedAgainstCombinators = combinators.some((combinator) => {
|
|
170
|
-
const statementVerifiedAgainstCombinator = verifyStatementAgainstCombinator(statementNode, combinator, context, verifyAhead);
|
|
171
|
-
|
|
172
|
-
if (statementVerifiedAgainstCombinator) {
|
|
173
|
-
return true;
|
|
178
|
+
if (statementVerifiedAboutContainment) {
|
|
179
|
+
context.debug(`...verified the '${statementString}' statement about containment.`, statementNode);
|
|
174
180
|
}
|
|
175
|
-
}
|
|
181
|
+
}
|
|
176
182
|
|
|
177
|
-
return
|
|
183
|
+
return statementVerifiedAboutContainment;
|
|
178
184
|
}
|
|
179
185
|
|
|
180
186
|
function verifyStatementAgainstCombinator(statementNode, combinator, context, verifyAhead) {
|
|
@@ -198,3 +204,31 @@ function verifyStatementAgainstCombinator(statementNode, combinator, context, ve
|
|
|
198
204
|
|
|
199
205
|
return statementVerifiedAgainstCombinator;
|
|
200
206
|
}
|
|
207
|
+
|
|
208
|
+
function verifyStatementAgainstCombinators(statementNode, assignments, derived, context, verifyAhead) {
|
|
209
|
+
let statementVerifiedAgainstCombinators = false;
|
|
210
|
+
|
|
211
|
+
const equalityNode = equalityNodeQuery(statementNode),
|
|
212
|
+
definingNode = definingNodeQuery(statementNode),
|
|
213
|
+
containmentNode = containmentNodeQuery(statementNode),
|
|
214
|
+
typeAssertionNode = typeAssertionNodeQuery(statementNode);
|
|
215
|
+
|
|
216
|
+
if ((equalityNode === null) && (definingNode === null) && (containmentNode === null) && (typeAssertionNode === null)) {
|
|
217
|
+
let combinators = context.getCombinators();
|
|
218
|
+
|
|
219
|
+
combinators = [ ///
|
|
220
|
+
bracketedCombinator,
|
|
221
|
+
...combinators
|
|
222
|
+
];
|
|
223
|
+
|
|
224
|
+
statementVerifiedAgainstCombinators = combinators.some((combinator) => {
|
|
225
|
+
const statementVerifiedAgainstCombinator = verifyStatementAgainstCombinator(statementNode, combinator, context, verifyAhead);
|
|
226
|
+
|
|
227
|
+
if (statementVerifiedAgainstCombinator) {
|
|
228
|
+
return true;
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
return statementVerifiedAgainstCombinators;
|
|
234
|
+
}
|
package/src/verify/term.js
CHANGED
|
@@ -39,21 +39,20 @@ function verifyTerm(termNode, terms, context, verifyAhead) {
|
|
|
39
39
|
return termVerified;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
export function verifyStandaloneTerm(termNode,
|
|
42
|
+
export function verifyStandaloneTerm(termNode, context, verifyAhead) {
|
|
43
43
|
let standaloneTermVerified;
|
|
44
44
|
|
|
45
|
-
const termString =
|
|
45
|
+
const termString = context.nodeAsString(termNode);
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
context.trace(`Verifying the '${termString}' standalone term...`, termNode);
|
|
48
48
|
|
|
49
49
|
const terms = [],
|
|
50
|
-
context = fileContext, ///
|
|
51
50
|
termVerified = verifyTerm(termNode, terms, context, verifyAhead);
|
|
52
51
|
|
|
53
52
|
standaloneTermVerified = termVerified; ///
|
|
54
53
|
|
|
55
54
|
if (standaloneTermVerified) {
|
|
56
|
-
|
|
55
|
+
context.debug(`...verified the '${termString}' standalone term.`, termNode);
|
|
57
56
|
}
|
|
58
57
|
|
|
59
58
|
return standaloneTermVerified;
|
package/src/verify/type.js
CHANGED
|
@@ -47,27 +47,26 @@ export default function verifyType(typeNode, superTypeNode, fileContext) {
|
|
|
47
47
|
return typeVerified;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
export function verifyStandaloneType(typeNode,
|
|
50
|
+
export function verifyStandaloneType(typeNode, context, verifyAhead) {
|
|
51
51
|
let standaloneTypeVerified = false;
|
|
52
52
|
|
|
53
|
-
const typeString =
|
|
53
|
+
const typeString = context.nodeAsString(typeNode);
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
context.trace(`Verifying the '${typeString}' standalone type...`, typeNode);
|
|
56
56
|
|
|
57
57
|
const typeName = typeNameFromTypeNode(typeNode),
|
|
58
|
-
typePresent =
|
|
58
|
+
typePresent = context.isTypePresentByTypeName(typeName);
|
|
59
59
|
|
|
60
60
|
if (!typePresent) {
|
|
61
|
-
|
|
61
|
+
context.debug(`The type '${typeName}' is not present.`, typeNode);
|
|
62
62
|
} else {
|
|
63
63
|
const verifiedAhead = verifyAhead();
|
|
64
64
|
|
|
65
65
|
standaloneTypeVerified = verifiedAhead; ///
|
|
66
|
-
|
|
67
66
|
}
|
|
68
67
|
|
|
69
68
|
if (standaloneTypeVerified) {
|
|
70
|
-
|
|
69
|
+
context.debug(`...verified the '${typeString}' standalone type.`, typeNode);
|
|
71
70
|
}
|
|
72
71
|
|
|
73
72
|
return standaloneTypeVerified;
|
package/src/verify/variable.js
CHANGED
|
@@ -52,3 +52,25 @@ export default function verifyVariable(variableNode, typeNode, fileContext) {
|
|
|
52
52
|
|
|
53
53
|
return variableVerified;
|
|
54
54
|
}
|
|
55
|
+
|
|
56
|
+
export function verifyStandaloneVariable(variableNode, context, verifyAhead) {
|
|
57
|
+
let standaloneVariableVerified = false;
|
|
58
|
+
|
|
59
|
+
const variableString = context.nodeAsString(variableNode);
|
|
60
|
+
|
|
61
|
+
context.trace(`Verifying the '${variableString}' standalone variable...`, variableNode);
|
|
62
|
+
|
|
63
|
+
const variablePresent = context.isVariablePresentByVariableNode(variableNode);
|
|
64
|
+
|
|
65
|
+
if (variablePresent) {
|
|
66
|
+
const verifiedAhead = verifyAhead();
|
|
67
|
+
|
|
68
|
+
standaloneVariableVerified = verifiedAhead; ///
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (standaloneVariableVerified) {
|
|
72
|
+
context.debug(`...verified the '${variableString}' standalone variable.`, variableNode);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return standaloneVariableVerified;
|
|
76
|
+
}
|
package/lib/collection.js
DELETED
|
@@ -1,192 +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 Collection;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _query = require("./utilities/query");
|
|
12
|
-
function _array_like_to_array(arr, len) {
|
|
13
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
14
|
-
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
15
|
-
return arr2;
|
|
16
|
-
}
|
|
17
|
-
function _array_without_holes(arr) {
|
|
18
|
-
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
19
|
-
}
|
|
20
|
-
function _class_call_check(instance, Constructor) {
|
|
21
|
-
if (!(instance instanceof Constructor)) {
|
|
22
|
-
throw new TypeError("Cannot call a class as a function");
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
function _defineProperties(target, props) {
|
|
26
|
-
for(var i = 0; i < props.length; i++){
|
|
27
|
-
var descriptor = props[i];
|
|
28
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
29
|
-
descriptor.configurable = true;
|
|
30
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
31
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
35
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
36
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
37
|
-
return Constructor;
|
|
38
|
-
}
|
|
39
|
-
function _iterable_to_array(iter) {
|
|
40
|
-
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
41
|
-
}
|
|
42
|
-
function _non_iterable_spread() {
|
|
43
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
44
|
-
}
|
|
45
|
-
function _to_consumable_array(arr) {
|
|
46
|
-
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
47
|
-
}
|
|
48
|
-
function _unsupported_iterable_to_array(o, minLen) {
|
|
49
|
-
if (!o) return;
|
|
50
|
-
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
51
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
52
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
53
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
54
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
55
|
-
}
|
|
56
|
-
var variableNodeQuery = (0, _query.nodeQuery)("/term/variable!");
|
|
57
|
-
var Collection = /*#__PURE__*/ function() {
|
|
58
|
-
function Collection(terms) {
|
|
59
|
-
_class_call_check(this, Collection);
|
|
60
|
-
this.terms = terms;
|
|
61
|
-
}
|
|
62
|
-
_create_class(Collection, [
|
|
63
|
-
{
|
|
64
|
-
key: "getTerms",
|
|
65
|
-
value: function getTerms() {
|
|
66
|
-
return this.terms;
|
|
67
|
-
}
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
key: "setTerms",
|
|
71
|
-
value: function setTerms(terms) {
|
|
72
|
-
this.terms = terms;
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
key: "addTerm",
|
|
77
|
-
value: function addTerm(term) {
|
|
78
|
-
this.terms.push(term);
|
|
79
|
-
}
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
key: "getType",
|
|
83
|
-
value: function getType(context) {
|
|
84
|
-
var type = this.terms.reduce(function(type, term) {
|
|
85
|
-
var termType = termTypeFromTerm(term, context);
|
|
86
|
-
if (type === null) {
|
|
87
|
-
type = termType; ///
|
|
88
|
-
} else {
|
|
89
|
-
var termTypeSubTypeOfType = termType.isSubTypeOf(type);
|
|
90
|
-
if (termTypeSubTypeOfType) {
|
|
91
|
-
type = termType; ///
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return type;
|
|
95
|
-
}, null);
|
|
96
|
-
return type;
|
|
97
|
-
}
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
key: "matchType",
|
|
101
|
-
value: function matchType(type, context) {
|
|
102
|
-
var typeA = type; ///
|
|
103
|
-
type = this.getType(context);
|
|
104
|
-
var typeB = type; ///
|
|
105
|
-
var typeAEqualToTypeB = typeA.isEqualTo(typeB), typeMatches = typeAEqualToTypeB; ///
|
|
106
|
-
return typeMatches;
|
|
107
|
-
}
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
key: "matchTerm",
|
|
111
|
-
value: function matchTerm(term) {
|
|
112
|
-
var termA = term, termMatches = this.terms.some(function(term) {
|
|
113
|
-
var termB = term, termAMatchesTermB = termA.match(termB);
|
|
114
|
-
if (termAMatchesTermB) {
|
|
115
|
-
return true;
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
return termMatches;
|
|
119
|
-
}
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
key: "matchTermNode",
|
|
123
|
-
value: function matchTermNode(termNode) {
|
|
124
|
-
var termNodeA = termNode, termNodeMatches = this.terms.some(function(term) {
|
|
125
|
-
var _$termNode = term.getNode(), termNodeB = _$termNode, termNodeAMatchesTermB = termNodeA.match(termNodeB);
|
|
126
|
-
if (termNodeAMatchesTermB) {
|
|
127
|
-
return true;
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
return termNodeMatches;
|
|
131
|
-
}
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
key: "matchTerms",
|
|
135
|
-
value: function matchTerms(terms) {
|
|
136
|
-
var _this = this;
|
|
137
|
-
var termsMatch = terms.every(function(term) {
|
|
138
|
-
var termMatches = _this.matchTerm(term);
|
|
139
|
-
if (termMatches) {
|
|
140
|
-
return true;
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
return termsMatch;
|
|
144
|
-
}
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
key: "matchTermNodes",
|
|
148
|
-
value: function matchTermNodes(termNodes) {
|
|
149
|
-
var _this = this;
|
|
150
|
-
var termNodesMatch = termNodes.every(function(termNode) {
|
|
151
|
-
var termNodeMatches = _this.matchTermNode(termNode);
|
|
152
|
-
if (termNodeMatches) {
|
|
153
|
-
return true;
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
return termNodesMatch;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
], [
|
|
160
|
-
{
|
|
161
|
-
key: "fromEquality",
|
|
162
|
-
value: function fromEquality(equality) {
|
|
163
|
-
var leftTerm = equality.getLeftTerm(), rightTerm = equality.getRightTerm(), terms = [
|
|
164
|
-
leftTerm,
|
|
165
|
-
rightTerm
|
|
166
|
-
], collection = new Collection(terms);
|
|
167
|
-
return collection;
|
|
168
|
-
}
|
|
169
|
-
},
|
|
170
|
-
{
|
|
171
|
-
key: "fromCollections",
|
|
172
|
-
value: function fromCollections(collectionA, collectionB) {
|
|
173
|
-
var collectionATerms = collectionA.getTerms(), collectionBTerms = collectionB.getTerms(), terms = _to_consumable_array(collectionATerms).concat(_to_consumable_array(collectionBTerms)), collection = new Collection(terms);
|
|
174
|
-
return collection;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
]);
|
|
178
|
-
return Collection;
|
|
179
|
-
}();
|
|
180
|
-
function termTypeFromTerm(term, context) {
|
|
181
|
-
var termType;
|
|
182
|
-
var termNode = term.getNode(), variableNode = variableNodeQuery(termNode);
|
|
183
|
-
if (variableNode !== null) {
|
|
184
|
-
var variable = context.findVariableByVariableNode(variableNode), variableType = variable.getType();
|
|
185
|
-
termType = variableType; ///
|
|
186
|
-
} else {
|
|
187
|
-
termType = term.getType();
|
|
188
|
-
}
|
|
189
|
-
return termType;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xsZWN0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybS92YXJpYWJsZSFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbGxlY3Rpb24ge1xuICBjb25zdHJ1Y3Rvcih0ZXJtcykge1xuICAgIHRoaXMudGVybXMgPSB0ZXJtcztcbiAgfVxuXG4gIGdldFRlcm1zKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm1zO1xuICB9XG5cbiAgc2V0VGVybXModGVybXMpIHtcbiAgICB0aGlzLnRlcm1zID0gdGVybXM7XG4gIH1cblxuICBhZGRUZXJtKHRlcm0pIHtcbiAgICB0aGlzLnRlcm1zLnB1c2godGVybSk7XG4gIH1cblxuICBnZXRUeXBlKGNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gdGhpcy50ZXJtcy5yZWR1Y2UoKHR5cGUsIHRlcm0pID0+IHtcbiAgICAgIGNvbnN0IHRlcm1UeXBlID0gdGVybVR5cGVGcm9tVGVybSh0ZXJtLCBjb250ZXh0KTtcblxuICAgICAgaWYgKHR5cGUgPT09IG51bGwpIHtcbiAgICAgICAgdHlwZSA9IHRlcm1UeXBlOyAgLy8vXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB0ZXJtVHlwZVN1YlR5cGVPZlR5cGUgPSB0ZXJtVHlwZS5pc1N1YlR5cGVPZih0eXBlKTtcblxuICAgICAgICBpZiAodGVybVR5cGVTdWJUeXBlT2ZUeXBlKSB7XG4gICAgICAgICAgdHlwZSA9IHRlcm1UeXBlOyAgLy8vXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHR5cGU7XG4gICAgfSwgbnVsbCk7XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIG1hdGNoVHlwZSh0eXBlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdHlwZUEgPSB0eXBlOyAvLy9cblxuICAgIHR5cGUgPSB0aGlzLmdldFR5cGUoY29udGV4dCk7XG5cbiAgICBjb25zdCB0eXBlQiA9IHR5cGU7IC8vL1xuXG4gICAgY29uc3QgdHlwZUFFcXVhbFRvVHlwZUIgPSB0eXBlQS5pc0VxdWFsVG8odHlwZUIpLFxuICAgICAgICAgIHR5cGVNYXRjaGVzID0gdHlwZUFFcXVhbFRvVHlwZUI7ICAvLy9cblxuICAgIHJldHVybiB0eXBlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoVGVybSh0ZXJtKSB7XG4gICAgY29uc3QgdGVybUEgPSB0ZXJtLCAvLy9cbiAgICAgICAgICB0ZXJtTWF0Y2hlcyA9IHRoaXMudGVybXMuc29tZSgodGVybSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGVybUIgPSB0ZXJtLCAvLy9cbiAgICAgICAgICAgICAgICAgIHRlcm1BTWF0Y2hlc1Rlcm1CID0gdGVybUEubWF0Y2godGVybUIpO1xuXG4gICAgICAgICAgICBpZiAodGVybUFNYXRjaGVzVGVybUIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICByZXR1cm4gdGVybU1hdGNoZXM7XG4gIH1cblxuICBtYXRjaFRlcm1Ob2RlKHRlcm1Ob2RlKSB7XG4gICAgY29uc3QgdGVybU5vZGVBID0gdGVybU5vZGUsIC8vL1xuICAgICAgICAgIHRlcm1Ob2RlTWF0Y2hlcyA9IHRoaXMudGVybXMuc29tZSgodGVybSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGVybU5vZGUgPSB0ZXJtLmdldE5vZGUoKSxcbiAgICAgICAgICAgICAgICAgIHRlcm1Ob2RlQiA9IHRlcm1Ob2RlLCAvLy9cbiAgICAgICAgICAgICAgICAgIHRlcm1Ob2RlQU1hdGNoZXNUZXJtQiA9IHRlcm1Ob2RlQS5tYXRjaCh0ZXJtTm9kZUIpO1xuXG4gICAgICAgICAgICBpZiAodGVybU5vZGVBTWF0Y2hlc1Rlcm1CKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHRlcm1Ob2RlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoVGVybXModGVybXMpIHtcbiAgICBjb25zdCB0ZXJtc01hdGNoID0gdGVybXMuZXZlcnkoKHRlcm0pID0+IHtcbiAgICAgIGNvbnN0IHRlcm1NYXRjaGVzID0gdGhpcy5tYXRjaFRlcm0odGVybSk7XG5cbiAgICAgIGlmICh0ZXJtTWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIHRlcm1zTWF0Y2g7XG4gIH1cblxuICBtYXRjaFRlcm1Ob2Rlcyh0ZXJtTm9kZXMpIHtcbiAgICBjb25zdCB0ZXJtTm9kZXNNYXRjaCA9IHRlcm1Ob2Rlcy5ldmVyeSgodGVybU5vZGUpID0+IHtcbiAgICAgIGNvbnN0IHRlcm1Ob2RlTWF0Y2hlcyA9IHRoaXMubWF0Y2hUZXJtTm9kZSh0ZXJtTm9kZSk7XG5cbiAgICAgIGlmICh0ZXJtTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSlcblxuICAgIHJldHVybiB0ZXJtTm9kZXNNYXRjaDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRXF1YWxpdHkoZXF1YWxpdHkpIHtcbiAgICBjb25zdCBsZWZ0VGVybSA9IGVxdWFsaXR5LmdldExlZnRUZXJtKCksXG4gICAgICAgICAgcmlnaHRUZXJtID0gZXF1YWxpdHkuZ2V0UmlnaHRUZXJtKCksXG4gICAgICAgICAgdGVybXMgPSBbXG4gICAgICAgICAgICBsZWZ0VGVybSxcbiAgICAgICAgICAgIHJpZ2h0VGVybVxuICAgICAgICAgIF0sXG4gICAgICAgICAgY29sbGVjdGlvbiA9IG5ldyBDb2xsZWN0aW9uKHRlcm1zKTtcblxuICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21Db2xsZWN0aW9ucyhjb2xsZWN0aW9uQSwgY29sbGVjdGlvbkIpIHtcbiAgICBjb25zdCBjb2xsZWN0aW9uQVRlcm1zID0gY29sbGVjdGlvbkEuZ2V0VGVybXMoKSxcbiAgICAgICAgICBjb2xsZWN0aW9uQlRlcm1zID0gY29sbGVjdGlvbkIuZ2V0VGVybXMoKSxcbiAgICAgICAgICB0ZXJtcyA9IFtcbiAgICAgICAgICAgIC4uLmNvbGxlY3Rpb25BVGVybXMsXG4gICAgICAgICAgICAuLi5jb2xsZWN0aW9uQlRlcm1zXG4gICAgICAgICAgXSxcbiAgICAgICAgICBjb2xsZWN0aW9uID0gbmV3IENvbGxlY3Rpb24odGVybXMpO1xuXG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gIH1cbn1cblxuZnVuY3Rpb24gdGVybVR5cGVGcm9tVGVybSh0ZXJtLCBjb250ZXh0KSB7XG4gIGxldCB0ZXJtVHlwZTtcblxuICBjb25zdCB0ZXJtTm9kZSA9IHRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZU5vZGVRdWVyeSh0ZXJtTm9kZSk7XG5cbiAgaWYgKHZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHZhcmlhYmxlID0gY29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlVHlwZSA9IHZhcmlhYmxlLmdldFR5cGUoKTtcblxuICAgIHRlcm1UeXBlID0gdmFyaWFibGVUeXBlOyAgLy8vXG4gIH0gZWxzZSB7XG4gICAgdGVybVR5cGUgPSB0ZXJtLmdldFR5cGUoKTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtVHlwZTtcbn0iXSwibmFtZXMiOlsiQ29sbGVjdGlvbiIsInZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidGVybXMiLCJnZXRUZXJtcyIsInNldFRlcm1zIiwiYWRkVGVybSIsInRlcm0iLCJwdXNoIiwiZ2V0VHlwZSIsImNvbnRleHQiLCJ0eXBlIiwicmVkdWNlIiwidGVybVR5cGUiLCJ0ZXJtVHlwZUZyb21UZXJtIiwidGVybVR5cGVTdWJUeXBlT2ZUeXBlIiwiaXNTdWJUeXBlT2YiLCJtYXRjaFR5cGUiLCJ0eXBlQSIsInR5cGVCIiwidHlwZUFFcXVhbFRvVHlwZUIiLCJpc0VxdWFsVG8iLCJ0eXBlTWF0Y2hlcyIsIm1hdGNoVGVybSIsInRlcm1BIiwidGVybU1hdGNoZXMiLCJzb21lIiwidGVybUIiLCJ0ZXJtQU1hdGNoZXNUZXJtQiIsIm1hdGNoIiwibWF0Y2hUZXJtTm9kZSIsInRlcm1Ob2RlIiwidGVybU5vZGVBIiwidGVybU5vZGVNYXRjaGVzIiwiZ2V0Tm9kZSIsInRlcm1Ob2RlQiIsInRlcm1Ob2RlQU1hdGNoZXNUZXJtQiIsIm1hdGNoVGVybXMiLCJ0ZXJtc01hdGNoIiwiZXZlcnkiLCJtYXRjaFRlcm1Ob2RlcyIsInRlcm1Ob2RlcyIsInRlcm1Ob2Rlc01hdGNoIiwiZnJvbUVxdWFsaXR5IiwiZXF1YWxpdHkiLCJsZWZ0VGVybSIsImdldExlZnRUZXJtIiwicmlnaHRUZXJtIiwiZ2V0UmlnaHRUZXJtIiwiY29sbGVjdGlvbiIsImZyb21Db2xsZWN0aW9ucyIsImNvbGxlY3Rpb25BIiwiY29sbGVjdGlvbkIiLCJjb2xsZWN0aW9uQVRlcm1zIiwiY29sbGVjdGlvbkJUZXJtcyIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5vZGUiLCJ2YXJpYWJsZVR5cGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBTXFCQTs7O3FCQUpLOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUIsSUFBTUMsb0JBQW9CQyxJQUFBQSxnQkFBUyxFQUFDO0FBRXJCLElBQUEsQUFBTUYsMkJBQUQsQUFBTDthQUFNQSxXQUNQRyxLQUFLO2dDQURFSDtRQUVqQixJQUFJLENBQUNHLEtBQUssR0FBR0E7O2tCQUZJSDs7WUFLbkJJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0QsS0FBSztZQUNuQjs7O1lBRUFF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
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
function _export(target, all) {
|
|
6
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: all[name]
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
areTermNodesEqual: function() {
|
|
13
|
-
return areTermNodesEqual;
|
|
14
|
-
},
|
|
15
|
-
findCollectionByTerm: function() {
|
|
16
|
-
return findCollectionByTerm;
|
|
17
|
-
},
|
|
18
|
-
findCollectionByType: function() {
|
|
19
|
-
return findCollectionByType;
|
|
20
|
-
},
|
|
21
|
-
mergeCollections: function() {
|
|
22
|
-
return mergeCollections;
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
var _array = require("../utilities/array");
|
|
26
|
-
function _array_like_to_array(arr, len) {
|
|
27
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
28
|
-
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
29
|
-
return arr2;
|
|
30
|
-
}
|
|
31
|
-
function _array_without_holes(arr) {
|
|
32
|
-
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
33
|
-
}
|
|
34
|
-
function _iterable_to_array(iter) {
|
|
35
|
-
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
36
|
-
}
|
|
37
|
-
function _non_iterable_spread() {
|
|
38
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
39
|
-
}
|
|
40
|
-
function _to_consumable_array(arr) {
|
|
41
|
-
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
42
|
-
}
|
|
43
|
-
function _unsupported_iterable_to_array(o, minLen) {
|
|
44
|
-
if (!o) return;
|
|
45
|
-
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
46
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
47
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
48
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
49
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
50
|
-
}
|
|
51
|
-
function areTermNodesEqual(leftTermNode, rightTermNode, collections) {
|
|
52
|
-
var termNodesEqual;
|
|
53
|
-
var leftTermNodeMatchesRightTermNode = leftTermNode.match(rightTermNode);
|
|
54
|
-
if (leftTermNodeMatchesRightTermNode) {
|
|
55
|
-
termNodesEqual = true;
|
|
56
|
-
} else {
|
|
57
|
-
var termNodes = [
|
|
58
|
-
leftTermNode,
|
|
59
|
-
rightTermNode
|
|
60
|
-
], collection = findCollectionByTermNodes(collections, termNodes);
|
|
61
|
-
termNodesEqual = collection !== null;
|
|
62
|
-
}
|
|
63
|
-
return termNodesEqual;
|
|
64
|
-
}
|
|
65
|
-
function mergeCollections(collectionsA, collectionsB, localContext) {
|
|
66
|
-
var typesA = typesFromCollections(collectionsA, localContext), typesB = typesFromCollections(collectionsB, localContext), types = _to_consumable_array(typesA).concat(_to_consumable_array(typesB));
|
|
67
|
-
(0, _array.compress)(types, function(typeA, typeB) {
|
|
68
|
-
if (typeA === typeB) {
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
var collections = types.map(function(type) {
|
|
73
|
-
var collection;
|
|
74
|
-
var collectionA = findCollectionByType(collectionsA, type, localContext), collectionB = findCollectionByType(collectionsB, type, localContext);
|
|
75
|
-
if (collectionA !== null && collectionB !== null) {
|
|
76
|
-
collection = Collection.fromCollections(collectionA, collectionB);
|
|
77
|
-
} else if (collectionA !== null) {
|
|
78
|
-
collection = collectionA; ///
|
|
79
|
-
} else if (collectionB !== null) {
|
|
80
|
-
collection = collectionB; ///
|
|
81
|
-
}
|
|
82
|
-
return collection;
|
|
83
|
-
});
|
|
84
|
-
return collections;
|
|
85
|
-
}
|
|
86
|
-
function findCollectionByType(collections, type, localContext) {
|
|
87
|
-
var collection = collections.find(function(collection) {
|
|
88
|
-
var collectionMatchesType = collection.matchType(type, localContext);
|
|
89
|
-
if (collectionMatchesType) {
|
|
90
|
-
return true;
|
|
91
|
-
}
|
|
92
|
-
}) || null;
|
|
93
|
-
return collection;
|
|
94
|
-
}
|
|
95
|
-
function findCollectionByTerm(collections, term) {
|
|
96
|
-
var collection = collections.find(function(collection) {
|
|
97
|
-
var collectionMatchesTerm = collection.matchTerm(term);
|
|
98
|
-
if (collectionMatchesTerm) {
|
|
99
|
-
return true;
|
|
100
|
-
}
|
|
101
|
-
}) || null;
|
|
102
|
-
return collection;
|
|
103
|
-
}
|
|
104
|
-
function findCollectionByTermNodes(collections, termNodes) {
|
|
105
|
-
var collection = collections.find(function(collection) {
|
|
106
|
-
var collectionMatchesTerms = collection.matchTermNodes(termNodes);
|
|
107
|
-
if (collectionMatchesTerms) {
|
|
108
|
-
return true;
|
|
109
|
-
}
|
|
110
|
-
}) || null;
|
|
111
|
-
return collection;
|
|
112
|
-
}
|
|
113
|
-
function typesFromCollections(collections, localContext) {
|
|
114
|
-
var types = collections.map(function(collection) {
|
|
115
|
-
var type = collection.getType(localContext);
|
|
116
|
-
return type;
|
|
117
|
-
});
|
|
118
|
-
return types;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29sbGVjdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgY29tcHJlc3MgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBhcmVUZXJtTm9kZXNFcXVhbChsZWZ0VGVybU5vZGUsIHJpZ2h0VGVybU5vZGUsIGNvbGxlY3Rpb25zKSB7XG4gIGxldCB0ZXJtTm9kZXNFcXVhbDtcblxuICBjb25zdCBsZWZ0VGVybU5vZGVNYXRjaGVzUmlnaHRUZXJtTm9kZSA9IGxlZnRUZXJtTm9kZS5tYXRjaChyaWdodFRlcm1Ob2RlKTtcblxuICBpZiAobGVmdFRlcm1Ob2RlTWF0Y2hlc1JpZ2h0VGVybU5vZGUpIHtcbiAgICB0ZXJtTm9kZXNFcXVhbCA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdGVybU5vZGVzID0gW1xuICAgICAgICAgICAgbGVmdFRlcm1Ob2RlLFxuICAgICAgICAgICAgcmlnaHRUZXJtTm9kZVxuICAgICAgICAgIF0sXG4gICAgICAgICAgY29sbGVjdGlvbiA9IGZpbmRDb2xsZWN0aW9uQnlUZXJtTm9kZXMoY29sbGVjdGlvbnMsIHRlcm1Ob2Rlcyk7XG5cbiAgICB0ZXJtTm9kZXNFcXVhbCA9IChjb2xsZWN0aW9uICE9PSBudWxsKTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtTm9kZXNFcXVhbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlQ29sbGVjdGlvbnMoY29sbGVjdGlvbnNBLCBjb2xsZWN0aW9uc0IsIGxvY2FsQ29udGV4dCkge1xuICBjb25zdCB0eXBlc0EgPSB0eXBlc0Zyb21Db2xsZWN0aW9ucyhjb2xsZWN0aW9uc0EsIGxvY2FsQ29udGV4dCksXG4gICAgICAgIHR5cGVzQiA9IHR5cGVzRnJvbUNvbGxlY3Rpb25zKGNvbGxlY3Rpb25zQiwgbG9jYWxDb250ZXh0KSxcbiAgICAgICAgdHlwZXMgPSBbXG4gICAgICAgICAgLi4udHlwZXNBLFxuICAgICAgICAgIC4uLnR5cGVzQlxuICAgICAgICBdO1xuXG4gIGNvbXByZXNzKHR5cGVzLCAodHlwZUEsIHR5cGVCKSA9PiB7XG4gICAgaWYgKHR5cGVBID09PSB0eXBlQikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICBjb25zdCBjb2xsZWN0aW9ucyA9IHR5cGVzLm1hcCgodHlwZSkgPT4ge1xuICAgIGxldCBjb2xsZWN0aW9uO1xuXG4gICAgY29uc3QgY29sbGVjdGlvbkEgPSBmaW5kQ29sbGVjdGlvbkJ5VHlwZShjb2xsZWN0aW9uc0EsIHR5cGUsIGxvY2FsQ29udGV4dCksXG4gICAgICAgICAgY29sbGVjdGlvbkIgPSBmaW5kQ29sbGVjdGlvbkJ5VHlwZShjb2xsZWN0aW9uc0IsIHR5cGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAoKGNvbGxlY3Rpb25BICE9PSBudWxsKSAmJiAoY29sbGVjdGlvbkIgIT09IG51bGwpKSB7XG4gICAgICBjb2xsZWN0aW9uID0gQ29sbGVjdGlvbi5mcm9tQ29sbGVjdGlvbnMoY29sbGVjdGlvbkEsIGNvbGxlY3Rpb25CKTtcbiAgICB9IGVsc2UgaWYgKGNvbGxlY3Rpb25BICE9PSBudWxsKSB7XG4gICAgICBjb2xsZWN0aW9uID0gY29sbGVjdGlvbkE7IC8vL1xuICAgIH0gZWxzZSBpZiAoY29sbGVjdGlvbkIgIT09IG51bGwpIHtcbiAgICAgIGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9uQjsgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gIH0pO1xuXG4gIHJldHVybiBjb2xsZWN0aW9ucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRDb2xsZWN0aW9uQnlUeXBlKGNvbGxlY3Rpb25zLCB0eXBlLCBsb2NhbENvbnRleHQpIHtcbiAgY29uc3QgY29sbGVjdGlvbiA9IGNvbGxlY3Rpb25zLmZpbmQoKGNvbGxlY3Rpb24pID0+IHtcbiAgICBjb25zdCBjb2xsZWN0aW9uTWF0Y2hlc1R5cGUgPSBjb2xsZWN0aW9uLm1hdGNoVHlwZSh0eXBlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKGNvbGxlY3Rpb25NYXRjaGVzVHlwZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KSB8fCBudWxsO1xuXG4gIHJldHVybiBjb2xsZWN0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZENvbGxlY3Rpb25CeVRlcm0oY29sbGVjdGlvbnMsIHRlcm0pIHtcbiAgY29uc3QgY29sbGVjdGlvbiA9IGNvbGxlY3Rpb25zLmZpbmQoKGNvbGxlY3Rpb24pID0+IHtcbiAgICBjb25zdCBjb2xsZWN0aW9uTWF0Y2hlc1Rlcm0gPSBjb2xsZWN0aW9uLm1hdGNoVGVybSh0ZXJtKTtcblxuICAgIGlmIChjb2xsZWN0aW9uTWF0Y2hlc1Rlcm0pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSkgfHwgbnVsbDtcblxuICByZXR1cm4gY29sbGVjdGlvbjtcbn1cblxuZnVuY3Rpb24gZmluZENvbGxlY3Rpb25CeVRlcm1Ob2Rlcyhjb2xsZWN0aW9ucywgdGVybU5vZGVzKSB7XG4gIGNvbnN0IGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9ucy5maW5kKChjb2xsZWN0aW9uKSA9PiB7XG4gICAgY29uc3QgY29sbGVjdGlvbk1hdGNoZXNUZXJtcyA9IGNvbGxlY3Rpb24ubWF0Y2hUZXJtTm9kZXModGVybU5vZGVzKTtcblxuICAgIGlmIChjb2xsZWN0aW9uTWF0Y2hlc1Rlcm1zKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pIHx8IG51bGw7XG5cbiAgcmV0dXJuIGNvbGxlY3Rpb247XG59XG5cbmZ1bmN0aW9uIHR5cGVzRnJvbUNvbGxlY3Rpb25zKGNvbGxlY3Rpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgY29uc3QgdHlwZXMgPSBjb2xsZWN0aW9ucy5tYXAoKGNvbGxlY3Rpb24pID0+IHtcbiAgICBjb25zdCB0eXBlID0gY29sbGVjdGlvbi5nZXRUeXBlKGxvY2FsQ29udGV4dCk7XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfSk7XG5cbiAgcmV0dXJuIHR5cGVzO1xufVxuIl0sIm5hbWVzIjpbImFyZVRlcm1Ob2Rlc0VxdWFsIiwiZmluZENvbGxlY3Rpb25CeVRlcm0iLCJmaW5kQ29sbGVjdGlvbkJ5VHlwZSIsIm1lcmdlQ29sbGVjdGlvbnMiLCJsZWZ0VGVybU5vZGUiLCJyaWdodFRlcm1Ob2RlIiwiY29sbGVjdGlvbnMiLCJ0ZXJtTm9kZXNFcXVhbCIsImxlZnRUZXJtTm9kZU1hdGNoZXNSaWdodFRlcm1Ob2RlIiwibWF0Y2giLCJ0ZXJtTm9kZXMiLCJjb2xsZWN0aW9uIiwiZmluZENvbGxlY3Rpb25CeVRlcm1Ob2RlcyIsImNvbGxlY3Rpb25zQSIsImNvbGxlY3Rpb25zQiIsImxvY2FsQ29udGV4dCIsInR5cGVzQSIsInR5cGVzRnJvbUNvbGxlY3Rpb25zIiwidHlwZXNCIiwidHlwZXMiLCJjb21wcmVzcyIsInR5cGVBIiwidHlwZUIiLCJtYXAiLCJ0eXBlIiwiY29sbGVjdGlvbkEiLCJjb2xsZWN0aW9uQiIsIkNvbGxlY3Rpb24iLCJmcm9tQ29sbGVjdGlvbnMiLCJmaW5kIiwiY29sbGVjdGlvbk1hdGNoZXNUeXBlIiwibWF0Y2hUeXBlIiwidGVybSIsImNvbGxlY3Rpb25NYXRjaGVzVGVybSIsIm1hdGNoVGVybSIsImNvbGxlY3Rpb25NYXRjaGVzVGVybXMiLCJtYXRjaFRlcm1Ob2RlcyIsImdldFR5cGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUlnQkEsaUJBQWlCO2VBQWpCQTs7SUFrRUFDLG9CQUFvQjtlQUFwQkE7O0lBWkFDLG9CQUFvQjtlQUFwQkE7O0lBbENBQyxnQkFBZ0I7ZUFBaEJBOzs7cUJBdEJTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsQixTQUFTSCxrQkFBa0JJLFlBQVksRUFBRUMsYUFBYSxFQUFFQyxXQUFXO0lBQ3hFLElBQUlDO0lBRUosSUFBTUMsbUNBQW1DSixhQUFhSyxLQUFLLENBQUNKO0lBRTVELElBQUlHLGtDQUFrQztRQUNwQ0QsaUJBQWlCO0lBQ25CLE9BQU87UUFDTCxJQUFNRyxZQUFZO1lBQ1ZOO1lBQ0FDO1NBQ0QsRUFDRE0sYUFBYUMsMEJBQTBCTixhQUFhSTtRQUUxREgsaUJBQWtCSSxlQUFlO0lBQ25DO0lBRUEsT0FBT0o7QUFDVDtBQUVPLFNBQVNKLGlCQUFpQlUsWUFBWSxFQUFFQyxZQUFZLEVBQUVDLFlBQVk7SUFDdkUsSUFBTUMsU0FBU0MscUJBQXFCSixjQUFjRSxlQUM1Q0csU0FBU0QscUJBQXFCSCxjQUFjQyxlQUM1Q0ksUUFBUSxBQUNOLHFCQUFHSCxlQUNILHFCQUFHRTtJQUdYRSxJQUFBQSxlQUFRLEVBQUNELE9BQU8sU0FBQ0UsT0FBT0M7UUFDdEIsSUFBSUQsVUFBVUMsT0FBTztZQUNuQixPQUFPO1FBQ1Q7SUFDRjtJQUVBLElBQU1oQixjQUFjYSxNQUFNSSxHQUFHLENBQUMsU0FBQ0M7UUFDN0IsSUFBSWI7UUFFSixJQUFNYyxjQUFjdkIscUJBQXFCVyxjQUFjVyxNQUFNVCxlQUN2RFcsY0FBY3hCLHFCQUFxQlksY0FBY1UsTUFBTVQ7UUFFN0QsSUFBSSxBQUFDVSxnQkFBZ0IsUUFBVUMsZ0JBQWdCLE1BQU87WUFDcERmLGFBQWFnQixXQUFXQyxlQUFlLENBQUNILGFBQWFDO1FBQ3ZELE9BQU8sSUFBSUQsZ0JBQWdCLE1BQU07WUFDL0JkLGFBQWFjLGFBQWEsR0FBRztRQUMvQixPQUFPLElBQUlDLGdCQUFnQixNQUFNO1lBQy9CZixhQUFhZSxhQUFhLEdBQUc7UUFDL0I7UUFFQSxPQUFPZjtJQUNUO0lBRUEsT0FBT0w7QUFDVDtBQUVPLFNBQVNKLHFCQUFxQkksV0FBVyxFQUFFa0IsSUFBSSxFQUFFVCxZQUFZO0lBQ2xFLElBQU1KLGFBQWFMLFlBQVl1QixJQUFJLENBQUMsU0FBQ2xCO1FBQ25DLElBQU1tQix3QkFBd0JuQixXQUFXb0IsU0FBUyxDQUFDUCxNQUFNVDtRQUV6RCxJQUFJZSx1QkFBdUI7WUFDekIsT0FBTztRQUNUO0lBQ0YsTUFBTTtJQUVOLE9BQU9uQjtBQUNUO0FBRU8sU0FBU1YscUJBQXFCSyxXQUFXLEVBQUUwQixJQUFJO0lBQ3BELElBQU1yQixhQUFhTCxZQUFZdUIsSUFBSSxDQUFDLFNBQUNsQjtRQUNuQyxJQUFNc0Isd0JBQXdCdEIsV0FBV3VCLFNBQVMsQ0FBQ0Y7UUFFbkQsSUFBSUMsdUJBQXVCO1lBQ3pCLE9BQU87UUFDVDtJQUNGLE1BQU07SUFFTixPQUFPdEI7QUFDVDtBQUVBLFNBQVNDLDBCQUEwQk4sV0FBVyxFQUFFSSxTQUFTO0lBQ3ZELElBQU1DLGFBQWFMLFlBQVl1QixJQUFJLENBQUMsU0FBQ2xCO1FBQ25DLElBQU13Qix5QkFBeUJ4QixXQUFXeUIsY0FBYyxDQUFDMUI7UUFFekQsSUFBSXlCLHdCQUF3QjtZQUMxQixPQUFPO1FBQ1Q7SUFDRixNQUFNO0lBRU4sT0FBT3hCO0FBQ1Q7QUFFQSxTQUFTTSxxQkFBcUJYLFdBQVcsRUFBRVMsWUFBWTtJQUNyRCxJQUFNSSxRQUFRYixZQUFZaUIsR0FBRyxDQUFDLFNBQUNaO1FBQzdCLElBQU1hLE9BQU9iLFdBQVcwQixPQUFPLENBQUN0QjtRQUVoQyxPQUFPUztJQUNUO0lBRUEsT0FBT0w7QUFDVCJ9
|