occam-verify-cli 0.0.526 → 0.0.529
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/README.md +4 -0
- package/bin/abbreviations.js +5 -1
- package/bin/action/help.js +4 -0
- package/bin/action/verify.js +35 -13
- package/bin/actions.js +11 -6
- package/bin/defaults.js +4 -0
- package/bin/options.js +4 -0
- package/bin/utilities/releaseContext.js +5 -7
- package/lib/assertion/type.js +10 -40
- package/lib/axiom.js +8 -8
- package/lib/axiomLemmaTheoremConjecture.js +190 -0
- package/lib/combinator.js +4 -3
- package/lib/conclusion.js +8 -7
- package/lib/conjecture.js +141 -0
- package/lib/consequence.js +6 -5
- package/lib/constants.js +11 -27
- package/lib/constructor.js +5 -4
- package/lib/context/file.js +88 -73
- package/lib/context/metaproof.js +51 -20
- package/lib/context/proof.js +48 -114
- package/lib/context/release/directory.js +25 -6
- package/lib/context/release/file.js +38 -25
- package/lib/context/release.js +32 -51
- package/lib/equality.js +79 -51
- package/lib/index.js +4 -16
- package/lib/kinds.js +5 -1
- package/lib/label.js +4 -3
- package/lib/lemma.js +8 -8
- package/lib/log.js +146 -0
- package/lib/matcher.js +25 -75
- package/lib/metaTypeNames.js +13 -0
- package/lib/mixins/file.js +62 -2
- package/lib/mixins/logging.js +13 -13
- package/lib/node/metastatement/bracketed.js +16 -0
- package/lib/node/statement/bracketed.js +16 -0
- package/lib/node/statement/combinator/bracketed.js +17 -0
- package/lib/node/statement/combinator/equality.js +17 -0
- package/lib/node/statement/equality.js +16 -0
- package/lib/ocmbinator/bracketed.js +3 -4
- package/lib/ocmbinator/equality.js +3 -4
- package/lib/premise.js +13 -12
- package/lib/rule.js +5 -5
- package/lib/ruleNames.js +1 -9
- package/lib/step/metaproof.js +28 -25
- package/lib/step/proof.js +23 -1
- package/lib/substitution/metastatementForMetavariable.js +16 -13
- package/lib/substitution/statementForMetavariable.js +16 -13
- package/lib/substitution/termForVariable.js +76 -0
- package/lib/supposition.js +7 -6
- package/lib/theorem.js +8 -8
- package/lib/type.js +12 -5
- package/lib/utilities/metaproof.js +60 -0
- package/lib/utilities/node.js +56 -0
- package/lib/utilities/proof.js +60 -0
- package/lib/utilities/releaseContext.js +24 -12
- package/lib/utilities/string.js +3 -38
- package/lib/variable.js +4 -38
- package/lib/{matcher → verifier}/metastatementForMetavariable/conclusion.js +12 -12
- package/lib/{matcher → verifier}/metastatementForMetavariable/premise.js +12 -12
- package/lib/verifier/metastatementForMetavariable.js +198 -0
- package/lib/{matcher → verifier}/statementForMetavariable/conclusion.js +12 -12
- package/lib/{matcher → verifier}/statementForMetavariable/premise.js +12 -12
- package/lib/verifier/statementForMetavariable.js +203 -0
- package/lib/{matcher/statementForVariable → verifier/termForVariable}/consequence.js +13 -13
- package/lib/{matcher/statementForVariable → verifier/termForVariable}/supposition.js +13 -13
- package/lib/verifier/termForVariable.js +198 -0
- package/lib/verifier.js +92 -0
- package/lib/verify/assertion/type.js +62 -41
- package/lib/verify/axiom.js +3 -6
- package/lib/verify/conclusion.js +2 -4
- package/lib/verify/conjecture.js +54 -0
- package/lib/verify/consequence.js +2 -4
- package/lib/verify/declaration/combinator.js +1 -3
- package/lib/verify/declaration/constructor.js +1 -3
- package/lib/verify/declaration/topLevel.js +7 -5
- package/lib/verify/declaration/type.js +1 -3
- package/lib/verify/declaration/variable.js +1 -3
- package/lib/verify/derivation.js +1 -5
- package/lib/verify/label.js +1 -3
- package/lib/verify/lemma.js +3 -6
- package/lib/verify/metastatement/qualified.js +2 -5
- package/lib/verify/metastatement/unqualified.js +2 -5
- package/lib/verify/metastatement.js +1 -3
- package/lib/verify/premise.js +2 -4
- package/lib/verify/proof.js +3 -5
- package/lib/verify/rule.js +3 -6
- package/lib/verify/ruleDerivation.js +1 -5
- package/lib/verify/ruleProof.js +3 -5
- package/lib/verify/statement/qualified.js +40 -13
- package/lib/verify/statement/unqualified.js +2 -5
- package/lib/verify/statement.js +56 -62
- package/lib/verify/statementAsCombinator.js +4 -6
- package/lib/verify/supposition.js +2 -4
- package/lib/verify/term.js +4 -10
- package/lib/verify/termAsConstructor.js +6 -9
- package/lib/verify/theorem.js +3 -6
- package/lib/verify/type.js +5 -9
- package/lib/verify/variable.js +5 -9
- package/package.json +1 -1
- package/src/assertion/type.js +7 -32
- package/src/axiom.js +4 -4
- package/src/{axiomLemmaTheorem.js → axiomLemmaTheoremConjecture.js} +9 -9
- package/src/combinator.js +3 -3
- package/src/conclusion.js +7 -7
- package/src/conjecture.js +13 -0
- package/src/consequence.js +5 -5
- package/src/constants.js +3 -7
- package/src/constructor.js +4 -4
- package/src/context/file.js +85 -65
- package/src/context/metaproof.js +55 -15
- package/src/context/proof.js +53 -50
- package/src/context/release/directory.js +31 -7
- package/src/context/release/file.js +47 -31
- package/src/context/release.js +23 -32
- package/src/equality.js +108 -61
- package/src/index.js +2 -4
- package/src/kinds.js +1 -0
- package/src/label.js +3 -3
- package/src/lemma.js +4 -4
- package/src/log.js +116 -0
- package/src/matcher.js +32 -24
- package/src/metaTypeNames.js +3 -0
- package/src/mixins/file.js +46 -1
- package/src/mixins/logging.js +6 -6
- package/src/node/metastatement/bracketed.js +9 -0
- package/src/node/statement/bracketed.js +9 -0
- package/src/node/statement/combinator/bracketed.js +10 -0
- package/src/node/statement/combinator/equality.js +11 -0
- package/src/node/statement/equality.js +10 -0
- package/src/ocmbinator/bracketed.js +2 -5
- package/src/ocmbinator/equality.js +2 -5
- package/src/premise.js +13 -13
- package/src/rule.js +4 -4
- package/src/ruleNames.js +0 -2
- package/src/step/metaproof.js +32 -29
- package/src/step/proof.js +28 -0
- package/src/substitution/metastatementForMetavariable.js +10 -15
- package/src/substitution/statementForMetavariable.js +11 -16
- package/src/substitution/termForVariable.js +36 -0
- package/src/supposition.js +6 -6
- package/src/theorem.js +4 -4
- package/src/type.js +17 -7
- package/src/utilities/metaproof.js +62 -0
- package/src/utilities/node.js +73 -0
- package/src/utilities/proof.js +62 -0
- package/src/utilities/releaseContext.js +30 -12
- package/src/utilities/string.js +4 -53
- package/src/variable.js +4 -37
- package/src/verifier/metastatementForMetavariable/conclusion.js +9 -0
- package/src/verifier/metastatementForMetavariable/premise.js +9 -0
- package/src/verifier/metastatementForMetavariable.js +89 -0
- package/src/verifier/statementForMetavariable/conclusion.js +9 -0
- package/src/verifier/statementForMetavariable/premise.js +9 -0
- package/src/verifier/statementForMetavariable.js +105 -0
- package/src/verifier/termForVariable/consequence.js +9 -0
- package/src/verifier/termForVariable/supposition.js +9 -0
- package/src/verifier/termForVariable.js +89 -0
- package/src/verifier.js +74 -0
- package/src/verify/assertion/type.js +74 -74
- package/src/verify/axiom.js +2 -9
- package/src/verify/conclusion.js +1 -7
- package/src/verify/conjecture.js +67 -0
- package/src/verify/consequence.js +1 -7
- package/src/verify/declaration/combinator.js +0 -6
- package/src/verify/declaration/constructor.js +0 -6
- package/src/verify/declaration/topLevel.js +7 -6
- package/src/verify/declaration/type.js +0 -6
- package/src/verify/declaration/variable.js +0 -6
- package/src/verify/derivation.js +0 -12
- package/src/verify/label.js +0 -6
- package/src/verify/lemma.js +4 -11
- package/src/verify/metastatement/qualified.js +1 -8
- package/src/verify/metastatement/unqualified.js +1 -8
- package/src/verify/metastatement.js +0 -6
- package/src/verify/premise.js +1 -7
- package/src/verify/proof.js +1 -7
- package/src/verify/rule.js +2 -9
- package/src/verify/ruleDerivation.js +0 -12
- package/src/verify/ruleProof.js +1 -7
- package/src/verify/statement/qualified.js +54 -20
- package/src/verify/statement/unqualified.js +1 -8
- package/src/verify/statement.js +65 -95
- package/src/verify/statementAsCombinator.js +3 -9
- package/src/verify/supposition.js +1 -7
- package/src/verify/term.js +3 -21
- package/src/verify/termAsConstructor.js +5 -13
- package/src/verify/theorem.js +2 -9
- package/src/verify/type.js +4 -13
- package/src/verify/variable.js +4 -13
- package/bin/callbacks.js +0 -48
- package/lib/axiomLemmaTheorem.js +0 -190
- package/lib/callbacks.js +0 -75
- package/lib/context/release/combinator.js +0 -64
- package/lib/jsonTypes.js +0 -30
- package/lib/matcher/metastatementForMetavariable.js +0 -201
- package/lib/matcher/statementForMetavariable.js +0 -201
- package/lib/matcher/statementForVariable.js +0 -201
- package/lib/mixins/callbacks.js +0 -27
- package/lib/substitution/statementForVariable.js +0 -86
- package/lib/utilities/json.js +0 -187
- package/lib/utilities/substitution.js +0 -61
- package/lib/utilities/version.js +0 -32
- package/lib/versionChanges.js +0 -34
- package/src/callbacks.js +0 -39
- package/src/context/release/combinator.js +0 -39
- package/src/jsonTypes.js +0 -6
- package/src/matcher/metastatementForMetavariable/conclusion.js +0 -9
- package/src/matcher/metastatementForMetavariable/premise.js +0 -9
- package/src/matcher/metastatementForMetavariable.js +0 -99
- package/src/matcher/statementForMetavariable/conclusion.js +0 -9
- package/src/matcher/statementForMetavariable/premise.js +0 -9
- package/src/matcher/statementForMetavariable.js +0 -99
- package/src/matcher/statementForVariable/consequence.js +0 -9
- package/src/matcher/statementForVariable/supposition.js +0 -9
- package/src/matcher/statementForVariable.js +0 -99
- package/src/mixins/callbacks.js +0 -15
- package/src/substitution/statementForVariable.js +0 -64
- package/src/utilities/json.js +0 -264
- package/src/utilities/substitution.js +0 -79
- package/src/utilities/version.js +0 -30
- package/src/versionChanges.js +0 -11
package/lib/utilities/json.js
DELETED
|
@@ -1,187 +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 _necessary = require("necessary");
|
|
12
|
-
var _constants = require("../constants");
|
|
13
|
-
var _jsonTypes = require("../jsonTypes");
|
|
14
|
-
var _versionChanges = require("../versionChanges");
|
|
15
|
-
var _typeof = function(obj) {
|
|
16
|
-
"@swc/helpers - typeof";
|
|
17
|
-
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
18
|
-
};
|
|
19
|
-
var first = _necessary.arrayUtilities.first;
|
|
20
|
-
function compareJSON(jsonA, jsonB) {
|
|
21
|
-
var result = _versionChanges.BREAKING_VERSION_CHANGE;
|
|
22
|
-
var jsonAType = typeOf(jsonA), jsonBType = typeOf(jsonB);
|
|
23
|
-
if (jsonAType === jsonBType) {
|
|
24
|
-
var jsonType = jsonAType; ///
|
|
25
|
-
switch(jsonType){
|
|
26
|
-
case _jsonTypes.ARRAY_JSON_TYPE:
|
|
27
|
-
{
|
|
28
|
-
var arrayA = jsonA, arrayB = jsonB; ///
|
|
29
|
-
result = compareArrays(arrayA, arrayB);
|
|
30
|
-
break;
|
|
31
|
-
}
|
|
32
|
-
case _jsonTypes.OBJECT_JSON_TYPE:
|
|
33
|
-
{
|
|
34
|
-
var objectA = jsonA, objectB = jsonB; ///
|
|
35
|
-
result = compareObjects(objectA, objectB);
|
|
36
|
-
break;
|
|
37
|
-
}
|
|
38
|
-
case _jsonTypes.PRIMITIVE_JSON_TYPE:
|
|
39
|
-
{
|
|
40
|
-
var primitiveA = jsonA, primitiveB = jsonB; ///
|
|
41
|
-
result = comparePrimitives(primitiveA, primitiveB);
|
|
42
|
-
break;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return result;
|
|
47
|
-
}
|
|
48
|
-
var _default = {
|
|
49
|
-
compareJSON: compareJSON
|
|
50
|
-
};
|
|
51
|
-
function compareArrays(arrayA, arrayB) {
|
|
52
|
-
var result;
|
|
53
|
-
var arrayALength = arrayA.length, arrayBLength = arrayB.length;
|
|
54
|
-
if (arrayALength === 0) {
|
|
55
|
-
if (arrayBLength === 0) {
|
|
56
|
-
result = _versionChanges.COSMETIC_VERSION_CHANGE;
|
|
57
|
-
} else {
|
|
58
|
-
result = _versionChanges.ADDITIVE_VERSION_CHANGE;
|
|
59
|
-
}
|
|
60
|
-
} else {
|
|
61
|
-
if (arrayBLength === 0) {
|
|
62
|
-
result = _versionChanges.BREAKING_VERSION_CHANGE;
|
|
63
|
-
} else {
|
|
64
|
-
var firstElementA = first(arrayA), elementA = firstElementA, elementB = arrayB.find(function(elementB) {
|
|
65
|
-
var jsonA = elementA, jsonB = elementB, result = compareJSON(jsonA, jsonB);
|
|
66
|
-
if (result === _versionChanges.COSMETIC_VERSION_CHANGE) {
|
|
67
|
-
return true;
|
|
68
|
-
}
|
|
69
|
-
}) || null;
|
|
70
|
-
if (elementB !== null) {
|
|
71
|
-
arrayA = deleteElement(arrayA, elementA);
|
|
72
|
-
arrayB = deleteElement(arrayB, elementB);
|
|
73
|
-
result = compareArrays(arrayA, arrayB);
|
|
74
|
-
} else {
|
|
75
|
-
result = _versionChanges.BREAKING_VERSION_CHANGE;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return result;
|
|
80
|
-
}
|
|
81
|
-
function compareObjects(objectA, objectB) {
|
|
82
|
-
var result;
|
|
83
|
-
var keysA = Object.keys(objectA), keysB = Object.keys(objectB), keysALength = keysA.length, keysBLength = keysB.length;
|
|
84
|
-
if (keysALength === 0) {
|
|
85
|
-
if (keysBLength === 0) {
|
|
86
|
-
result = _versionChanges.COSMETIC_VERSION_CHANGE;
|
|
87
|
-
} else {
|
|
88
|
-
result = _versionChanges.ADDITIVE_VERSION_CHANGE;
|
|
89
|
-
}
|
|
90
|
-
} else {
|
|
91
|
-
if (keysBLength === 0) {
|
|
92
|
-
result = _versionChanges.BREAKING_VERSION_CHANGE;
|
|
93
|
-
} else {
|
|
94
|
-
var firstKeyA = first(keysA), keyA = firstKeyA, keyB = keysB.find(function(keyB, index) {
|
|
95
|
-
if (keyA === keyB) {
|
|
96
|
-
var valueA = objectA[keyA], valueB = objectB[keyB], jsonA = valueA, jsonB = valueB, result = compareJSON(jsonA, jsonB);
|
|
97
|
-
if (result === _versionChanges.COSMETIC_VERSION_CHANGE) {
|
|
98
|
-
return true;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}) || null;
|
|
102
|
-
if (keyB !== null) {
|
|
103
|
-
objectA = deleteKey(objectA, keyA);
|
|
104
|
-
objectB = deleteKey(objectB, keyB);
|
|
105
|
-
result = compareObjects(objectA, objectB);
|
|
106
|
-
} else {
|
|
107
|
-
result = _versionChanges.BREAKING_VERSION_CHANGE;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
return result;
|
|
112
|
-
}
|
|
113
|
-
function comparePrimitives(primitiveA, primitiveB) {
|
|
114
|
-
var result = _versionChanges.BREAKING_VERSION_CHANGE;
|
|
115
|
-
if (primitiveA === primitiveB) {
|
|
116
|
-
result = _versionChanges.COSMETIC_VERSION_CHANGE;
|
|
117
|
-
}
|
|
118
|
-
return result;
|
|
119
|
-
}
|
|
120
|
-
function typeOf(json) {
|
|
121
|
-
var type;
|
|
122
|
-
var _null = isNull(json), array = isArray(json), object = isObject(json), primitive = isPrimitive(json);
|
|
123
|
-
if (_null) {
|
|
124
|
-
type = _jsonTypes.NULL_JSON_TYPE;
|
|
125
|
-
}
|
|
126
|
-
if (array) {
|
|
127
|
-
type = _jsonTypes.ARRAY_JSON_TYPE;
|
|
128
|
-
}
|
|
129
|
-
if (object) {
|
|
130
|
-
type = _jsonTypes.OBJECT_JSON_TYPE;
|
|
131
|
-
}
|
|
132
|
-
if (primitive) {
|
|
133
|
-
type = _jsonTypes.PRIMITIVE_JSON_TYPE;
|
|
134
|
-
}
|
|
135
|
-
return type;
|
|
136
|
-
}
|
|
137
|
-
function isNull(json) {
|
|
138
|
-
var _null = json === null;
|
|
139
|
-
return _null;
|
|
140
|
-
}
|
|
141
|
-
function isArray(json) {
|
|
142
|
-
var array = Array.isArray(json);
|
|
143
|
-
return array;
|
|
144
|
-
}
|
|
145
|
-
function isObject(json) {
|
|
146
|
-
var array = isArray(json), primitive = isPrimitive(json), object = !array && !primitive;
|
|
147
|
-
return object;
|
|
148
|
-
}
|
|
149
|
-
function isString(json) {
|
|
150
|
-
var string = (typeof json === "undefined" ? "undefined" : _typeof(json)) === _constants.STRING;
|
|
151
|
-
return string;
|
|
152
|
-
}
|
|
153
|
-
function isNumber(json) {
|
|
154
|
-
var number = (typeof json === "undefined" ? "undefined" : _typeof(json)) === _constants.NUMBER;
|
|
155
|
-
return number;
|
|
156
|
-
}
|
|
157
|
-
function isBoolean(json) {
|
|
158
|
-
var boolean = (typeof json === "undefined" ? "undefined" : _typeof(json)) === _constants.BOOLEAN;
|
|
159
|
-
return boolean;
|
|
160
|
-
}
|
|
161
|
-
function isPrimitive(json) {
|
|
162
|
-
var _null = isNull(json), string = isString(json), number = isNumber(json), boolean = isBoolean(json), primitive = _null || string || number || boolean;
|
|
163
|
-
return primitive;
|
|
164
|
-
}
|
|
165
|
-
function deleteElement(array, element) {
|
|
166
|
-
var deletedElement = element; ///
|
|
167
|
-
array = array.reduce(function(array, element) {
|
|
168
|
-
if (element !== deletedElement) {
|
|
169
|
-
array.push(element);
|
|
170
|
-
}
|
|
171
|
-
return array;
|
|
172
|
-
}, []);
|
|
173
|
-
return array;
|
|
174
|
-
}
|
|
175
|
-
function deleteKey(object, key) {
|
|
176
|
-
var deletedKey = key, keys = Object.keys(object), values = Object.values(object);
|
|
177
|
-
object = keys.reduce(function(object, key, index) {
|
|
178
|
-
if (key !== deletedKey) {
|
|
179
|
-
var value = values[index];
|
|
180
|
-
object[key] = value;
|
|
181
|
-
}
|
|
182
|
-
return object;
|
|
183
|
-
}, {});
|
|
184
|
-
return object;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvanNvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCB7IFNUUklORywgTlVNQkVSLCBCT09MRUFOIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgTlVMTF9KU09OX1RZUEUsIEFSUkFZX0pTT05fVFlQRSwgT0JKRUNUX0pTT05fVFlQRSwgUFJJTUlUSVZFX0pTT05fVFlQRSB9IGZyb20gXCIuLi9qc29uVHlwZXNcIjtcbmltcG9ydCB7IEJSRUFLSU5HX1ZFUlNJT05fQ0hBTkdFLCBBRERJVElWRV9WRVJTSU9OX0NIQU5HRSwgQ09TTUVUSUNfVkVSU0lPTl9DSEFOR0UgfSBmcm9tIFwiLi4vdmVyc2lvbkNoYW5nZXNcIjtcblxuY29uc3QgeyBmaXJzdCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmZ1bmN0aW9uIGNvbXBhcmVKU09OKGpzb25BLCBqc29uQikge1xuICBsZXQgcmVzdWx0ID0gQlJFQUtJTkdfVkVSU0lPTl9DSEFOR0U7XG5cbiAgY29uc3QganNvbkFUeXBlID0gdHlwZU9mKGpzb25BKSxcbiAgICAgICAganNvbkJUeXBlID0gdHlwZU9mKGpzb25CKTtcblxuICBpZiAoanNvbkFUeXBlID09PSBqc29uQlR5cGUpIHtcbiAgICBjb25zdCBqc29uVHlwZSA9IGpzb25BVHlwZTsgLy8vXG5cbiAgICBzd2l0Y2ggKGpzb25UeXBlKSB7XG4gICAgICBjYXNlIEFSUkFZX0pTT05fVFlQRToge1xuICAgICAgICBjb25zdCBhcnJheUEgPSBqc29uQSwgLy8vXG4gICAgICAgICAgICAgIGFycmF5QiA9IGpzb25COyAvLy9cblxuICAgICAgICByZXN1bHQgPSBjb21wYXJlQXJyYXlzKGFycmF5QSwgYXJyYXlCKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBPQkpFQ1RfSlNPTl9UWVBFOiB7XG4gICAgICAgIGNvbnN0IG9iamVjdEEgPSBqc29uQSwgLy8vXG4gICAgICAgICAgICAgIG9iamVjdEIgPSBqc29uQjsgLy8vXG5cbiAgICAgICAgcmVzdWx0ID0gY29tcGFyZU9iamVjdHMob2JqZWN0QSwgb2JqZWN0Qik7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgUFJJTUlUSVZFX0pTT05fVFlQRToge1xuICAgICAgICBjb25zdCBwcmltaXRpdmVBID0ganNvbkEsIC8vL1xuICAgICAgICAgICAgICBwcmltaXRpdmVCID0ganNvbkI7IC8vL1xuXG4gICAgICAgIHJlc3VsdCA9IGNvbXBhcmVQcmltaXRpdmVzKHByaW1pdGl2ZUEsIHByaW1pdGl2ZUIpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY29tcGFyZUpTT05cbn07XG5cbmZ1bmN0aW9uIGNvbXBhcmVBcnJheXMoYXJyYXlBLCBhcnJheUIpIHtcbiAgbGV0IHJlc3VsdDtcblxuICBjb25zdCBhcnJheUFMZW5ndGggPSBhcnJheUEubGVuZ3RoLFxuICAgICAgICBhcnJheUJMZW5ndGggPSBhcnJheUIubGVuZ3RoO1xuXG4gIGlmIChhcnJheUFMZW5ndGggPT09IDApIHtcbiAgICBpZiAoYXJyYXlCTGVuZ3RoID09PSAwKSB7XG4gICAgICByZXN1bHQgPSBDT1NNRVRJQ19WRVJTSU9OX0NIQU5HRTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gQURESVRJVkVfVkVSU0lPTl9DSEFOR0U7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChhcnJheUJMZW5ndGggPT09IDApIHtcbiAgICAgIHJlc3VsdCA9IEJSRUFLSU5HX1ZFUlNJT05fQ0hBTkdFO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBmaXJzdEVsZW1lbnRBID0gZmlyc3QoYXJyYXlBKSwgIC8vL1xuICAgICAgICAgICAgZWxlbWVudEEgPSBmaXJzdEVsZW1lbnRBLCAvLy9cbiAgICAgICAgICAgIGVsZW1lbnRCID0gYXJyYXlCLmZpbmQoKGVsZW1lbnRCKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGpzb25BID0gZWxlbWVudEEsIC8vL1xuICAgICAgICAgICAgICAgICAgICBqc29uQiA9IGVsZW1lbnRCLCAvLy9cbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gY29tcGFyZUpTT04oanNvbkEsIGpzb25CKTtcblxuICAgICAgICAgICAgICBpZiAocmVzdWx0ID09PSBDT1NNRVRJQ19WRVJTSU9OX0NIQU5HRSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgICBpZiAoZWxlbWVudEIgIT09IG51bGwpIHtcbiAgICAgICAgYXJyYXlBID0gZGVsZXRlRWxlbWVudChhcnJheUEsIGVsZW1lbnRBKTtcblxuICAgICAgICBhcnJheUIgPSBkZWxldGVFbGVtZW50KGFycmF5QiwgZWxlbWVudEIpO1xuXG4gICAgICAgIHJlc3VsdCA9IGNvbXBhcmVBcnJheXMoYXJyYXlBLCBhcnJheUIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gQlJFQUtJTkdfVkVSU0lPTl9DSEFOR0U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gY29tcGFyZU9iamVjdHMob2JqZWN0QSwgb2JqZWN0Qikge1xuICBsZXQgcmVzdWx0O1xuXG4gIGNvbnN0IGtleXNBID0gT2JqZWN0LmtleXMob2JqZWN0QSksXG4gICAgICAgIGtleXNCID0gT2JqZWN0LmtleXMob2JqZWN0QiksXG4gICAgICAgIGtleXNBTGVuZ3RoID0ga2V5c0EubGVuZ3RoLFxuICAgICAgICBrZXlzQkxlbmd0aCA9IGtleXNCLmxlbmd0aDtcblxuICBpZiAoa2V5c0FMZW5ndGggPT09IDApIHtcbiAgICBpZiAoa2V5c0JMZW5ndGggPT09IDApIHtcbiAgICAgIHJlc3VsdCA9IENPU01FVElDX1ZFUlNJT05fQ0hBTkdFO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBBRERJVElWRV9WRVJTSU9OX0NIQU5HRTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKGtleXNCTGVuZ3RoID09PSAwKSB7XG4gICAgICByZXN1bHQgPSBCUkVBS0lOR19WRVJTSU9OX0NIQU5HRTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZmlyc3RLZXlBID0gZmlyc3Qoa2V5c0EpLCAgLy8vXG4gICAgICAgICAgICBrZXlBID0gZmlyc3RLZXlBLCAvLy9cbiAgICAgICAgICAgIGtleUIgPSBrZXlzQi5maW5kKChrZXlCLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoa2V5QSA9PT0ga2V5Qikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlQSA9IG9iamVjdEFba2V5QV0sXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWVCID0gb2JqZWN0QltrZXlCXSxcbiAgICAgICAgICAgICAgICAgICAgICBqc29uQSA9IHZhbHVlQSwgLy8vXG4gICAgICAgICAgICAgICAgICAgICAganNvbkIgPSB2YWx1ZUIsIC8vL1xuICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNvbXBhcmVKU09OKGpzb25BLCBqc29uQik7XG5cbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09PSBDT1NNRVRJQ19WRVJTSU9OX0NIQU5HRSkgeyAgLy8vXG4gICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pIHx8IG51bGw7XG5cbiAgICAgIGlmIChrZXlCICE9PSBudWxsKSB7XG4gICAgICAgIG9iamVjdEEgPSBkZWxldGVLZXkob2JqZWN0QSwga2V5QSk7XG5cbiAgICAgICAgb2JqZWN0QiA9IGRlbGV0ZUtleShvYmplY3RCLCBrZXlCKTtcblxuICAgICAgICByZXN1bHQgPSBjb21wYXJlT2JqZWN0cyhvYmplY3RBLCBvYmplY3RCKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IEJSRUFLSU5HX1ZFUlNJT05fQ0hBTkdFO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGNvbXBhcmVQcmltaXRpdmVzKHByaW1pdGl2ZUEsIHByaW1pdGl2ZUIpIHtcbiAgbGV0IHJlc3VsdCA9IEJSRUFLSU5HX1ZFUlNJT05fQ0hBTkdFO1xuXG4gIGlmIChwcmltaXRpdmVBID09PSBwcmltaXRpdmVCKSB7XG4gICAgcmVzdWx0ID0gQ09TTUVUSUNfVkVSU0lPTl9DSEFOR0U7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiB0eXBlT2YoanNvbikge1xuICBsZXQgdHlwZTtcblxuICBjb25zdCBfbnVsbCA9IGlzTnVsbChqc29uKSxcbiAgICAgICAgYXJyYXkgPSBpc0FycmF5KGpzb24pLFxuICAgICAgICBvYmplY3QgPSBpc09iamVjdChqc29uKSxcbiAgICAgICAgcHJpbWl0aXZlID0gaXNQcmltaXRpdmUoanNvbik7XG5cbiAgaWYgKF9udWxsKSB7XG4gICAgdHlwZSA9IE5VTExfSlNPTl9UWVBFO1xuICB9XG5cbiAgaWYgKGFycmF5KSB7XG4gICAgdHlwZSA9IEFSUkFZX0pTT05fVFlQRTtcbiAgfVxuXG4gIGlmIChvYmplY3QpIHtcbiAgICB0eXBlID0gT0JKRUNUX0pTT05fVFlQRTtcbiAgfVxuXG4gIGlmIChwcmltaXRpdmUpIHtcbiAgICB0eXBlID0gUFJJTUlUSVZFX0pTT05fVFlQRTtcbiAgfVxuXG4gIHJldHVybiB0eXBlO1xufVxuXG5mdW5jdGlvbiBpc051bGwoanNvbikge1xuICBjb25zdCBfbnVsbCA9IChqc29uID09PSBudWxsKTtcblxuICByZXR1cm4gX251bGw7XG59XG5cbmZ1bmN0aW9uIGlzQXJyYXkoanNvbikge1xuICBjb25zdCBhcnJheSA9IEFycmF5LmlzQXJyYXkoanNvbik7XG5cbiAgcmV0dXJuIGFycmF5O1xufVxuXG5mdW5jdGlvbiBpc09iamVjdChqc29uKSB7XG4gIGNvbnN0IGFycmF5ID0gaXNBcnJheShqc29uKSxcbiAgICAgICAgcHJpbWl0aXZlID0gaXNQcmltaXRpdmUoanNvbiksXG4gICAgICAgIG9iamVjdCA9ICghYXJyYXkgJiYgIXByaW1pdGl2ZSk7XG5cbiAgcmV0dXJuIG9iamVjdDtcbn1cblxuZnVuY3Rpb24gaXNTdHJpbmcoanNvbikge1xuICBjb25zdCBzdHJpbmcgPSAoKHR5cGVvZiBqc29uKSA9PT0gU1RSSU5HKTtcblxuICByZXR1cm4gc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBpc051bWJlcihqc29uKSB7XG4gIGNvbnN0IG51bWJlciA9ICgodHlwZW9mIGpzb24pID09PSBOVU1CRVIpO1xuXG4gIHJldHVybiBudW1iZXI7XG59XG5cbmZ1bmN0aW9uIGlzQm9vbGVhbihqc29uKSB7XG4gIGNvbnN0IGJvb2xlYW4gPSAoKHR5cGVvZiBqc29uKSA9PT0gQk9PTEVBTik7XG5cbiAgcmV0dXJuIGJvb2xlYW47XG59XG5cbmZ1bmN0aW9uIGlzUHJpbWl0aXZlKGpzb24pIHtcbiAgY29uc3QgX251bGwgPSBpc051bGwoanNvbiksXG4gICAgICAgIHN0cmluZyA9IGlzU3RyaW5nKGpzb24pLFxuICAgICAgICBudW1iZXIgPSBpc051bWJlcihqc29uKSxcbiAgICAgICAgYm9vbGVhbiA9IGlzQm9vbGVhbihqc29uKSxcbiAgICAgICAgcHJpbWl0aXZlID0gKF9udWxsIHx8IHN0cmluZyB8fCBudW1iZXIgfHwgYm9vbGVhbik7XG5cbiAgcmV0dXJuIHByaW1pdGl2ZTtcbn1cblxuZnVuY3Rpb24gZGVsZXRlRWxlbWVudChhcnJheSwgZWxlbWVudCkge1xuICBjb25zdCBkZWxldGVkRWxlbWVudCA9IGVsZW1lbnQ7IC8vL1xuXG4gIGFycmF5ID0gYXJyYXkucmVkdWNlKChhcnJheSwgZWxlbWVudCkgPT4geyAgLy8vXG4gICAgaWYgKGVsZW1lbnQgIT09IGRlbGV0ZWRFbGVtZW50KSB7XG4gICAgICBhcnJheS5wdXNoKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIHJldHVybiBhcnJheTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiBhcnJheTtcbn1cblxuZnVuY3Rpb24gZGVsZXRlS2V5KG9iamVjdCwga2V5KSB7XG4gIGNvbnN0IGRlbGV0ZWRLZXkgPSBrZXksIC8vL1xuICAgICAgICBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KSxcbiAgICAgICAgdmFsdWVzID0gT2JqZWN0LnZhbHVlcyhvYmplY3QpO1xuXG4gIG9iamVjdCA9IGtleXMucmVkdWNlKChvYmplY3QsIGtleSwgaW5kZXgpID0+IHsgIC8vL1xuICAgIGlmIChrZXkgIT09IGRlbGV0ZWRLZXkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzW2luZGV4XTtcblxuICAgICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2JqZWN0O1xuICB9LCB7fSk7XG5cbiAgcmV0dXJuIG9iamVjdDtcbn1cbiJdLCJuYW1lcyI6WyJmaXJzdCIsImFycmF5VXRpbGl0aWVzIiwiY29tcGFyZUpTT04iLCJqc29uQSIsImpzb25CIiwicmVzdWx0IiwiQlJFQUtJTkdfVkVSU0lPTl9DSEFOR0UiLCJqc29uQVR5cGUiLCJ0eXBlT2YiLCJqc29uQlR5cGUiLCJqc29uVHlwZSIsIkFSUkFZX0pTT05fVFlQRSIsImFycmF5QSIsImFycmF5QiIsImNvbXBhcmVBcnJheXMiLCJPQkpFQ1RfSlNPTl9UWVBFIiwib2JqZWN0QSIsIm9iamVjdEIiLCJjb21wYXJlT2JqZWN0cyIsIlBSSU1JVElWRV9KU09OX1RZUEUiLCJwcmltaXRpdmVBIiwicHJpbWl0aXZlQiIsImNvbXBhcmVQcmltaXRpdmVzIiwiYXJyYXlBTGVuZ3RoIiwibGVuZ3RoIiwiYXJyYXlCTGVuZ3RoIiwiQ09TTUVUSUNfVkVSU0lPTl9DSEFOR0UiLCJBRERJVElWRV9WRVJTSU9OX0NIQU5HRSIsImZpcnN0RWxlbWVudEEiLCJlbGVtZW50QSIsImVsZW1lbnRCIiwiZmluZCIsImRlbGV0ZUVsZW1lbnQiLCJrZXlzQSIsIk9iamVjdCIsImtleXMiLCJrZXlzQiIsImtleXNBTGVuZ3RoIiwia2V5c0JMZW5ndGgiLCJmaXJzdEtleUEiLCJrZXlBIiwia2V5QiIsImluZGV4IiwidmFsdWVBIiwidmFsdWVCIiwiZGVsZXRlS2V5IiwianNvbiIsInR5cGUiLCJfbnVsbCIsImlzTnVsbCIsImFycmF5IiwiaXNBcnJheSIsIm9iamVjdCIsImlzT2JqZWN0IiwicHJpbWl0aXZlIiwiaXNQcmltaXRpdmUiLCJOVUxMX0pTT05fVFlQRSIsIkFycmF5IiwiaXNTdHJpbmciLCJzdHJpbmciLCJTVFJJTkciLCJpc051bWJlciIsIm51bWJlciIsIk5VTUJFUiIsImlzQm9vbGVhbiIsImJvb2xlYW4iLCJCT09MRUFOIiwiZWxlbWVudCIsImRlbGV0ZWRFbGVtZW50IiwicmVkdWNlIiwicHVzaCIsImtleSIsImRlbGV0ZWRLZXkiLCJ2YWx1ZXMiLCJ2YWx1ZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBb0RBOzs7ZUFBQTs7O3lCQWxEK0I7eUJBRVM7eUJBQytDOzhCQUNHOzs7OztBQUUxRixJQUFNLEFBQUVBLFFBQVVDLHlCQUFjLENBQXhCRDtBQUVSLFNBQVNFLFlBQVlDLEtBQUssRUFBRUMsS0FBSyxFQUFFO0lBQ2pDLElBQUlDLFNBQVNDLHVDQUF1QjtJQUVwQyxJQUFNQyxZQUFZQyxPQUFPTCxRQUNuQk0sWUFBWUQsT0FBT0o7SUFFekIsSUFBSUcsY0FBY0UsV0FBVztRQUMzQixJQUFNQyxXQUFXSCxXQUFXLEdBQUc7UUFFL0IsT0FBUUc7WUFDTixLQUFLQywwQkFBZTtnQkFBRTtvQkFDcEIsSUFBTUMsU0FBU1QsT0FDVFUsU0FBU1QsT0FBTyxHQUFHO29CQUV6QkMsU0FBU1MsY0FBY0YsUUFBUUM7b0JBRS9CLEtBQU07Z0JBQ1I7WUFFQSxLQUFL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
|
|
@@ -1,61 +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
|
-
matchBracketedNonTerminalNode: function() {
|
|
13
|
-
return matchBracketedNonTerminalNode;
|
|
14
|
-
},
|
|
15
|
-
bracketedNonTerminalChildNodeFromChildNodes: function() {
|
|
16
|
-
return bracketedNonTerminalChildNodeFromChildNodes;
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
var _matcher = require("../matcher");
|
|
20
|
-
var _array = require("../utilities/array");
|
|
21
|
-
var _ruleNames = require("../ruleNames");
|
|
22
|
-
var _constants = require("../constants");
|
|
23
|
-
function matchBracketedNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB) {
|
|
24
|
-
var bracketedNodeMatches = false;
|
|
25
|
-
if (!bracketedNodeMatches) {
|
|
26
|
-
var nonTerminalNodeMatches = _matcher.matcher.matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB);
|
|
27
|
-
bracketedNodeMatches = nonTerminalNodeMatches; ///
|
|
28
|
-
}
|
|
29
|
-
if (!bracketedNodeMatches) {
|
|
30
|
-
var nonTerminalNodeAChildNodes = nonTerminalNodeA.getChildNodes(), childNodesA = nonTerminalNodeAChildNodes, bracketedNonTerminalChildNodeA = bracketedNonTerminalChildNodeFromChildNodes(childNodesA);
|
|
31
|
-
if (bracketedNonTerminalChildNodeA !== null) {
|
|
32
|
-
var nodeA = bracketedNonTerminalChildNodeA, nodeB = nonTerminalNodeB, nodeMatches = _matcher.matcher.matchNode(nodeA, nodeB);
|
|
33
|
-
bracketedNodeMatches = nodeMatches; ///
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
if (!bracketedNodeMatches) {
|
|
37
|
-
var nonTerminalNodeBChildNodes = nonTerminalNodeB.getChildNodes(), childNodesB = nonTerminalNodeBChildNodes, bracketedNonTerminalChildNodeB = bracketedNonTerminalChildNodeFromChildNodes(childNodesB);
|
|
38
|
-
if (bracketedNonTerminalChildNodeB !== null) {
|
|
39
|
-
var nodeB1 = bracketedNonTerminalChildNodeB, nodeA1 = nonTerminalNodeA, nodeMatches1 = matchNode(nodeA1, nodeB1);
|
|
40
|
-
bracketedNodeMatches = nodeMatches1; ///
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
return bracketedNodeMatches;
|
|
44
|
-
}
|
|
45
|
-
function bracketedNonTerminalChildNodeFromChildNodes(childNodes) {
|
|
46
|
-
var ruleName = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : _ruleNames.METASTATEMENT_RULE_NAME;
|
|
47
|
-
var bracketedNonTerminalChildNode = null;
|
|
48
|
-
var childNodesLength = childNodes.length;
|
|
49
|
-
if (childNodesLength === _constants.BRACKETED_CHILD_NODES_LENGTH) {
|
|
50
|
-
var firstChildNode = (0, _array.first)(childNodes), thirdChildNode = (0, _array.third)(childNodes), secondChildNode = (0, _array.second)(childNodes), firstChildNodeTerminalNode = firstChildNode.isTerminalNode(), thirdChildNodeTerminalNode = thirdChildNode.isTerminalNode(), secondChildNodeNonTerminalNode = secondChildNode.isNonTerminalNode();
|
|
51
|
-
if (firstChildNodeTerminalNode && secondChildNodeNonTerminalNode && thirdChildNodeTerminalNode) {
|
|
52
|
-
var nonTerminalNode = secondChildNode, firstTerminalNode = firstChildNode, secondTerminalNode = thirdChildNode, nonTerminalNodeRuleName = nonTerminalNode.getRuleName(), firstTerminalNodeContent = firstTerminalNode.getContent(), secondTerminalNodeContent = secondTerminalNode.getContent(), nonTerminalNodeRuleNameRuleName = nonTerminalNodeRuleName === ruleName, firstTerminalNodeContentLeftBracket = firstTerminalNodeContent === _constants.LEFT_BRACKET, secondTerminalNodeContentRightBracket = secondTerminalNodeContent === _constants.RIGHT_BRACKET;
|
|
53
|
-
if (nonTerminalNodeRuleNameRuleName && firstTerminalNodeContentLeftBracket && secondTerminalNodeContentRightBracket) {
|
|
54
|
-
bracketedNonTerminalChildNode = nonTerminalNode; ///
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return bracketedNonTerminalChildNode;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3Vic3RpdHV0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBtYXRjaGVyIH0gZnJvbSBcIi4uL21hdGNoZXJcIjtcbmltcG9ydCB7IGZpcnN0LCBzZWNvbmQsIHRoaXJkIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5pbXBvcnQgeyBCUkFDS0VURURfQ0hJTERfTk9ERVNfTEVOR1RILCBMRUZUX0JSQUNLRVQsIFJJR0hUX0JSQUNLRVQgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaEJyYWNrZXRlZE5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGVBLCBub25UZXJtaW5hbE5vZGVCKSB7XG4gIGxldCBicmFja2V0ZWROb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGlmICghYnJhY2tldGVkTm9kZU1hdGNoZXMpIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hlci5tYXRjaE5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGVBLCBub25UZXJtaW5hbE5vZGVCKTtcblxuICAgIGJyYWNrZXRlZE5vZGVNYXRjaGVzID0gbm9uVGVybWluYWxOb2RlTWF0Y2hlczsgIC8vL1xuICB9XG5cbiAgaWYgKCFicmFja2V0ZWROb2RlTWF0Y2hlcykge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUFDaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlQS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgY2hpbGROb2Rlc0EgPSBub25UZXJtaW5hbE5vZGVBQ2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgYnJhY2tldGVkTm9uVGVybWluYWxDaGlsZE5vZGVBID0gYnJhY2tldGVkTm9uVGVybWluYWxDaGlsZE5vZGVGcm9tQ2hpbGROb2RlcyhjaGlsZE5vZGVzQSk7XG5cbiAgICBpZiAoYnJhY2tldGVkTm9uVGVybWluYWxDaGlsZE5vZGVBICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBub2RlQSA9IGJyYWNrZXRlZE5vblRlcm1pbmFsQ2hpbGROb2RlQSwgIC8vL1xuICAgICAgICAgICAgbm9kZUIgPSBub25UZXJtaW5hbE5vZGVCLCAvLy9cbiAgICAgICAgICAgIG5vZGVNYXRjaGVzID0gbWF0Y2hlci5tYXRjaE5vZGUobm9kZUEsIG5vZGVCKTtcblxuICAgICAgYnJhY2tldGVkTm9kZU1hdGNoZXMgPSBub2RlTWF0Y2hlczsgLy8vXG4gICAgfVxuICB9XG5cbiAgaWYgKCFicmFja2V0ZWROb2RlTWF0Y2hlcykge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUJDaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlQi5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgY2hpbGROb2Rlc0IgPSBub25UZXJtaW5hbE5vZGVCQ2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgYnJhY2tldGVkTm9uVGVybWluYWxDaGlsZE5vZGVCID0gYnJhY2tldGVkTm9uVGVybWluYWxDaGlsZE5vZGVGcm9tQ2hpbGROb2RlcyhjaGlsZE5vZGVzQik7XG5cbiAgICBpZiAoYnJhY2tldGVkTm9uVGVybWluYWxDaGlsZE5vZGVCICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBub2RlQiA9IGJyYWNrZXRlZE5vblRlcm1pbmFsQ2hpbGROb2RlQiwgIC8vL1xuICAgICAgICAgICAgbm9kZUEgPSBub25UZXJtaW5hbE5vZGVBLCAvLy9cbiAgICAgICAgICAgIG5vZGVNYXRjaGVzID0gbWF0Y2hOb2RlKG5vZGVBLCBub2RlQik7XG5cbiAgICAgIGJyYWNrZXRlZE5vZGVNYXRjaGVzID0gbm9kZU1hdGNoZXM7IC8vL1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBicmFja2V0ZWROb2RlTWF0Y2hlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJyYWNrZXRlZE5vblRlcm1pbmFsQ2hpbGROb2RlRnJvbUNoaWxkTm9kZXMoY2hpbGROb2RlcywgcnVsZU5hbWUgPSBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSkge1xuICBsZXQgYnJhY2tldGVkTm9uVGVybWluYWxDaGlsZE5vZGUgPSBudWxsO1xuXG4gIGNvbnN0IGNoaWxkTm9kZXNMZW5ndGggPSBjaGlsZE5vZGVzLmxlbmd0aDtcblxuICBpZiAoY2hpbGROb2Rlc0xlbmd0aCA9PT0gQlJBQ0tFVEVEX0NISUxEX05PREVTX0xFTkdUSCkge1xuICAgIGNvbnN0IGZpcnN0Q2hpbGROb2RlID0gZmlyc3QoY2hpbGROb2RlcyksXG4gICAgICAgICAgdGhpcmRDaGlsZE5vZGUgPSB0aGlyZChjaGlsZE5vZGVzKSxcbiAgICAgICAgICBzZWNvbmRDaGlsZE5vZGUgPSBzZWNvbmQoY2hpbGROb2RlcyksXG4gICAgICAgICAgZmlyc3RDaGlsZE5vZGVUZXJtaW5hbE5vZGUgPSBmaXJzdENoaWxkTm9kZS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgICAgICAgIHRoaXJkQ2hpbGROb2RlVGVybWluYWxOb2RlID0gdGhpcmRDaGlsZE5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBzZWNvbmRDaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUgPSBzZWNvbmRDaGlsZE5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChmaXJzdENoaWxkTm9kZVRlcm1pbmFsTm9kZSAmJiBzZWNvbmRDaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUgJiYgdGhpcmRDaGlsZE5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IHNlY29uZENoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgZmlyc3RUZXJtaW5hbE5vZGUgPSBmaXJzdENoaWxkTm9kZSwgLy8vXG4gICAgICAgICAgICBzZWNvbmRUZXJtaW5hbE5vZGUgPSB0aGlyZENoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlUnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKSxcbiAgICAgICAgICAgIGZpcnN0VGVybWluYWxOb2RlQ29udGVudCA9IGZpcnN0VGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICAgIHNlY29uZFRlcm1pbmFsTm9kZUNvbnRlbnQgPSBzZWNvbmRUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlUnVsZU5hbWVSdWxlTmFtZSA9IChub25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9PT0gcnVsZU5hbWUpLFxuICAgICAgICAgICAgZmlyc3RUZXJtaW5hbE5vZGVDb250ZW50TGVmdEJyYWNrZXQgPSAoZmlyc3RUZXJtaW5hbE5vZGVDb250ZW50ID09PSBMRUZUX0JSQUNLRVQpLFxuICAgICAgICAgICAgc2Vjb25kVGVybWluYWxOb2RlQ29udGVudFJpZ2h0QnJhY2tldCA9IChzZWNvbmRUZXJtaW5hbE5vZGVDb250ZW50ID09PSBSSUdIVF9CUkFDS0VUKTtcblxuICAgICAgaWYgKG5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lUnVsZU5hbWUgJiYgZmlyc3RUZXJtaW5hbE5vZGVDb250ZW50TGVmdEJyYWNrZXQgJiYgc2Vjb25kVGVybWluYWxOb2RlQ29udGVudFJpZ2h0QnJhY2tldCkge1xuICAgICAgICBicmFja2V0ZWROb25UZXJtaW5hbENoaWxkTm9kZSA9IG5vblRlcm1pbmFsTm9kZTsgIC8vL1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBicmFja2V0ZWROb25UZXJtaW5hbENoaWxkTm9kZTtcbn1cbiJdLCJuYW1lcyI6WyJtYXRjaEJyYWNrZXRlZE5vblRlcm1pbmFsTm9kZSIsImJyYWNrZXRlZE5vblRlcm1pbmFsQ2hpbGROb2RlRnJvbUNoaWxkTm9kZXMiLCJub25UZXJtaW5hbE5vZGVBIiwibm9uVGVybWluYWxOb2RlQiIsImJyYWNrZXRlZE5vZGVNYXRjaGVzIiwibm9uVGVybWluYWxOb2RlTWF0Y2hlcyIsIm1hdGNoZXIiLCJtYXRjaE5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZUFDaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsImNoaWxkTm9kZXNBIiwiYnJhY2tldGVkTm9uVGVybWluYWxDaGlsZE5vZGVBIiwibm9kZUEiLCJub2RlQiIsIm5vZGVNYXRjaGVzIiwibWF0Y2hOb2RlIiwibm9uVGVybWluYWxOb2RlQkNoaWxkTm9kZXMiLCJjaGlsZE5vZGVzQiIsImJyYWNrZXRlZE5vblRlcm1pbmFsQ2hpbGROb2RlQiIsImNoaWxkTm9kZXMiLCJydWxlTmFtZSIsIk1FVEFTVEFURU1FTlRfUlVMRV9OQU1FIiwiYnJhY2tldGVkTm9uVGVybWluYWxDaGlsZE5vZGUiLCJjaGlsZE5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwiQlJBQ0tFVEVEX0NISUxEX05PREVTX0xFTkdUSCIsImZpcnN0Q2hpbGROb2RlIiwiZmlyc3QiLCJ0aGlyZENoaWxkTm9kZSIsInRoaXJkIiwic2Vjb25kQ2hpbGROb2RlIiwic2Vjb25kIiwiZmlyc3RDaGlsZE5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRoaXJkQ2hpbGROb2RlVGVybWluYWxOb2RlIiwic2Vjb25kQ2hpbGROb2RlTm9uVGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJmaXJzdFRlcm1pbmFsTm9kZSIsInNlY29uZFRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJmaXJzdFRlcm1pbmFsTm9kZUNvbnRlbnQiLCJnZXRDb250ZW50Iiwic2Vjb25kVGVybWluYWxOb2RlQ29udGVudCIsIm5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lUnVsZU5hbWUiLCJmaXJzdFRlcm1pbmFsTm9kZUNvbnRlbnRMZWZ0QnJhY2tldCIsIkxFRlRfQlJBQ0tFVCIsInNlY29uZFRlcm1pbmFsTm9kZUNvbnRlbnRSaWdodEJyYWNrZXQiLCJSSUdIVF9CUkFDS0VUIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFPZ0JBLDZCQUE2QjtlQUE3QkE7O0lBd0NBQywyQ0FBMkM7ZUFBM0NBOzs7dUJBN0NRO3FCQUNhO3lCQUNHO3lCQUNrQztBQUVuRSxTQUFTRCw4QkFBOEJFLGdCQUFnQixFQUFFQyxnQkFBZ0IsRUFBRTtJQUNoRixJQUFJQyx1QkFBdUIsS0FBSztJQUVoQyxJQUFJLENBQUNBLHNCQUFzQjtRQUN6QixJQUFNQyx5QkFBeUJDLGdCQUFPLENBQUNDLG9CQUFvQixDQUFDTCxrQkFBa0JDO1FBRTlFQyx1QkFBdUJDLHdCQUF5QixHQUFHO0lBQ3JELENBQUM7SUFFRCxJQUFJLENBQUNELHNCQUFzQjtRQUN6QixJQUFNSSw2QkFBNkJOLGlCQUFpQk8sYUFBYSxJQUMzREMsY0FBY0YsNEJBQ2RHLGlDQUFpQ1YsNENBQTRDUztRQUVuRixJQUFJQyxtQ0FBbUMsSUFBSSxFQUFFO1lBQzNDLElBQU1DLFFBQVFELGdDQUNSRSxRQUFRVixrQkFDUlcsY0FBY1IsZ0JBQU8sQ0FBQ1MsU0FBUyxDQUFDSCxPQUFPQztZQUU3Q1QsdUJBQXVCVSxhQUFhLEdBQUc7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLENBQUNWLHNCQUFzQjtRQUN6QixJQUFNWSw2QkFBNkJiLGlCQUFpQk0sYUFBYSxJQUMzRFEsY0FBY0QsNEJBQ2RFLGlDQUFpQ2pCLDRDQUE0Q2dCO1FBRW5GLElBQUlDLG1DQUFtQyxJQUFJLEVBQUU7WUFDM0MsSUFBTUwsU0FBUUssZ0NBQ1JOLFNBQVFWLGtCQUNSWSxlQUFjQyxVQUFVSCxRQUFPQztZQUVyQ1QsdUJBQXVCVSxjQUFhLEdBQUc7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPVjtBQUNUO0FBRU8sU0FBU0gsNENBQTRDa0IsVUFBVSxFQUFzQztRQUFwQ0MsV0FBQUEsaUVBQVdDLGtDQUF1QjtJQUN4RyxJQUFJQyxnQ0FBZ0MsSUFBSTtJQUV4QyxJQUFNQyxtQkFBbUJKLFdBQVdLLE1BQU07SUFFMUMsSUFBSUQscUJBQXFCRSx1Q0FBNEIsRUFBRTtRQUNyRCxJQUFNQyxpQkFBaUJDLElBQUFBLFlBQUssRUFBQ1IsYUFDdkJTLGlCQUFpQkMsSUFBQUEsWUFBSyxFQUFDVixhQUN2Qlcsa0JBQWtCQyxJQUFBQSxhQUFNLEVBQUNaLGFBQ3pCYSw2QkFBNkJOLGVBQWVPLGNBQWMsSUFDMURDLDZCQUE2Qk4sZUFBZUssY0FBYyxJQUMxREUsaUNBQWlDTCxnQkFBZ0JNLGlCQUFpQjtRQUV4RSxJQUFJSiw4QkFBOEJHLGtDQUFrQ0QsNEJBQTRCO1lBQzlGLElBQU1HLGtCQUFrQlAsaUJBQ2xCUSxvQkFBb0JaLGdCQUNwQmEscUJBQXFCWCxnQkFDckJZLDBCQUEwQkgsZ0JBQWdCSSxXQUFXLElBQ3JEQywyQkFBMkJKLGtCQUFrQkssVUFBVSxJQUN2REMsNEJBQTRCTCxtQkFBbUJJLFVBQVUsSUFDekRFLGtDQUFtQ0wsNEJBQTRCcEIsVUFDL0QwQixzQ0FBdUNKLDZCQUE2QkssdUJBQVksRUFDaEZDLHdDQUF5Q0osOEJBQThCSyx3QkFBYTtZQUUxRixJQUFJSixtQ0FBbUNDLHVDQUF1Q0UsdUNBQXVDO2dCQUNuSDFCLGdDQUFnQ2UsaUJBQWtCLEdBQUc7WUFDdkQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBT2Y7QUFDVCJ9
|
package/lib/utilities/version.js
DELETED
|
@@ -1,32 +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 _versionChanges = require("../versionChanges");
|
|
12
|
-
function updateVersion(version, versionChange) {
|
|
13
|
-
switch(versionChange){
|
|
14
|
-
case _versionChanges.BREAKING_VERSION_CHANGE:
|
|
15
|
-
version.bumpMajorNumber();
|
|
16
|
-
version.resetMinorNumber();
|
|
17
|
-
version.resetPatchNumber();
|
|
18
|
-
break;
|
|
19
|
-
case _versionChanges.ADDITIVE_VERSION_CHANGE:
|
|
20
|
-
version.bumpMinorNumber();
|
|
21
|
-
version.resetPatchNumber();
|
|
22
|
-
break;
|
|
23
|
-
case _versionChanges.COSMETIC_VERSION_CHANGE:
|
|
24
|
-
version.bumpPatchNumber();
|
|
25
|
-
break;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
var _default = {
|
|
29
|
-
updateVersion: updateVersion
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmVyc2lvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgQlJFQUtJTkdfVkVSU0lPTl9DSEFOR0UsIEFERElUSVZFX1ZFUlNJT05fQ0hBTkdFLCBDT1NNRVRJQ19WRVJTSU9OX0NIQU5HRSB9IGZyb20gXCIuLi92ZXJzaW9uQ2hhbmdlc1wiO1xuXG5mdW5jdGlvbiB1cGRhdGVWZXJzaW9uKHZlcnNpb24sIHZlcnNpb25DaGFuZ2UpIHtcbiAgc3dpdGNoICh2ZXJzaW9uQ2hhbmdlKSB7XG4gICAgY2FzZSBCUkVBS0lOR19WRVJTSU9OX0NIQU5HRTpcbiAgICAgIHZlcnNpb24uYnVtcE1ham9yTnVtYmVyKCk7XG4gICAgICB2ZXJzaW9uLnJlc2V0TWlub3JOdW1iZXIoKTtcbiAgICAgIHZlcnNpb24ucmVzZXRQYXRjaE51bWJlcigpO1xuXG4gICAgICBicmVhaztcblxuICAgIGNhc2UgQURESVRJVkVfVkVSU0lPTl9DSEFOR0U6XG4gICAgICB2ZXJzaW9uLmJ1bXBNaW5vck51bWJlcigpO1xuICAgICAgdmVyc2lvbi5yZXNldFBhdGNoTnVtYmVyKCk7XG5cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBDT1NNRVRJQ19WRVJTSU9OX0NIQU5HRTpcbiAgICAgIHZlcnNpb24uYnVtcFBhdGNoTnVtYmVyKCk7XG5cbiAgICAgIGJyZWFrO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgdXBkYXRlVmVyc2lvblxufTtcblxuIl0sIm5hbWVzIjpbInVwZGF0ZVZlcnNpb24iLCJ2ZXJzaW9uIiwidmVyc2lvbkNoYW5nZSIsIkJSRUFLSU5HX1ZFUlNJT05fQ0hBTkdFIiwiYnVtcE1ham9yTnVtYmVyIiwicmVzZXRNaW5vck51bWJlciIsInJlc2V0UGF0Y2hOdW1iZXIiLCJBRERJVElWRV9WRVJTSU9OX0NIQU5HRSIsImJ1bXBNaW5vck51bWJlciIsIkNPU01FVElDX1ZFUlNJT05fQ0hBTkdFIiwiYnVtcFBhdGNoTnVtYmVyIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkEwQkE7OztlQUFBOzs7OEJBeEIwRjtBQUUxRixTQUFTQSxjQUFjQyxPQUFPLEVBQUVDLGFBQWEsRUFBRTtJQUM3QyxPQUFRQTtRQUNOLEtBQUtDLHVDQUF1QjtZQUMxQkYsUUFBUUcsZUFBZTtZQUN2QkgsUUFBUUksZ0JBQWdCO1lBQ3hCSixRQUFRSyxnQkFBZ0I7WUFFeEIsS0FBTTtRQUVSLEtBQUtDLHVDQUF1QjtZQUMxQk4sUUFBUU8sZUFBZTtZQUN2QlAsUUFBUUssZ0JBQWdCO1lBRXhCLEtBQU07UUFFUixLQUFLRyx1Q0FBdUI7WUFDMUJSLFFBQVFTLGVBQWU7WUFFdkIsS0FBTTtJQUNWO0FBQ0Y7SUFFQSxXQUFlO0lBQ2JWLGVBQUFBO0FBQ0YifQ==
|
package/lib/versionChanges.js
DELETED
|
@@ -1,34 +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
|
-
BREAKING_VERSION_CHANGE: function() {
|
|
13
|
-
return BREAKING_VERSION_CHANGE;
|
|
14
|
-
},
|
|
15
|
-
ADDITIVE_VERSION_CHANGE: function() {
|
|
16
|
-
return ADDITIVE_VERSION_CHANGE;
|
|
17
|
-
},
|
|
18
|
-
COSMETIC_VERSION_CHANGE: function() {
|
|
19
|
-
return COSMETIC_VERSION_CHANGE;
|
|
20
|
-
},
|
|
21
|
-
default: function() {
|
|
22
|
-
return _default;
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
var BREAKING_VERSION_CHANGE = "breaking";
|
|
26
|
-
var ADDITIVE_VERSION_CHANGE = "additive";
|
|
27
|
-
var COSMETIC_VERSION_CHANGE = "cosmetic";
|
|
28
|
-
var _default = {
|
|
29
|
-
BREAKING_VERSION_CHANGE: BREAKING_VERSION_CHANGE,
|
|
30
|
-
ADDITIVE_VERSION_CHANGE: ADDITIVE_VERSION_CHANGE,
|
|
31
|
-
COSMETIC_VERSION_CHANGE: COSMETIC_VERSION_CHANGE
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy92ZXJzaW9uQ2hhbmdlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGNvbnN0IEJSRUFLSU5HX1ZFUlNJT05fQ0hBTkdFID0gXCJicmVha2luZ1wiO1xuZXhwb3J0IGNvbnN0IEFERElUSVZFX1ZFUlNJT05fQ0hBTkdFID0gXCJhZGRpdGl2ZVwiO1xuZXhwb3J0IGNvbnN0IENPU01FVElDX1ZFUlNJT05fQ0hBTkdFID0gXCJjb3NtZXRpY1wiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIEJSRUFLSU5HX1ZFUlNJT05fQ0hBTkdFLFxuICBBRERJVElWRV9WRVJTSU9OX0NIQU5HRSxcbiAgQ09TTUVUSUNfVkVSU0lPTl9DSEFOR0Vcbn07XG4iXSwibmFtZXMiOlsiQlJFQUtJTkdfVkVSU0lPTl9DSEFOR0UiLCJBRERJVElWRV9WRVJTSU9OX0NIQU5HRSIsIkNPU01FVElDX1ZFUlNJT05fQ0hBTkdFIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFFYUEsdUJBQXVCO2VBQXZCQTs7SUFDQUMsdUJBQXVCO2VBQXZCQTs7SUFDQUMsdUJBQXVCO2VBQXZCQTs7SUFFYixPQUlFO2VBSkY7OztBQUpPLElBQU1GLDBCQUEwQjtBQUNoQyxJQUFNQywwQkFBMEI7QUFDaEMsSUFBTUMsMEJBQTBCO0lBRXZDLFdBQWU7SUFDYkYseUJBQUFBO0lBQ0FDLHlCQUFBQTtJQUNBQyx5QkFBQUE7QUFDRiJ9
|
package/src/callbacks.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const HALT_MESSAGE = "Halted verification.",
|
|
4
|
-
BEGIN_MESSAGE = "Begun verification...",
|
|
5
|
-
COMPLETED_MESSAGE = "...completed verification.";
|
|
6
|
-
|
|
7
|
-
class Callbacks {
|
|
8
|
-
constructor(halt, begin, complete) {
|
|
9
|
-
this.halt = halt;
|
|
10
|
-
this.begin = begin;
|
|
11
|
-
this.complete = complete;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
getHalt() {
|
|
15
|
-
return this.halt;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
getBegin() {
|
|
19
|
-
return this.begin;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
getComplete() {
|
|
23
|
-
return this.complete;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
static fromHaltBeginAndComplete(halt, begin, complete) {
|
|
27
|
-
const callbacks = new Callbacks(halt, begin, complete);
|
|
28
|
-
|
|
29
|
-
return callbacks;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
Object.assign(Callbacks, {
|
|
34
|
-
HALT_MESSAGE,
|
|
35
|
-
BEGIN_MESSAGE,
|
|
36
|
-
COMPLETED_MESSAGE
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
export default Callbacks;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { rewriteNodes } from "occam-grammar-utilities";
|
|
4
|
-
import { lexersUtilities, parsersUtilities } from "occam-custom-grammars";
|
|
5
|
-
|
|
6
|
-
import { combinedCustomGrammarFromNothing } from "../../utilities/customGrammar";
|
|
7
|
-
|
|
8
|
-
const { florenceLexerFromCombinedCustomGrammar } = lexersUtilities,
|
|
9
|
-
{ florenceParserFromCombinedCustomGrammar } = parsersUtilities;
|
|
10
|
-
|
|
11
|
-
const combinedCustomGrammar = combinedCustomGrammarFromNothing(),
|
|
12
|
-
florenceLexer = florenceLexerFromCombinedCustomGrammar(combinedCustomGrammar),
|
|
13
|
-
florenceParser = florenceParserFromCombinedCustomGrammar(combinedCustomGrammar);
|
|
14
|
-
|
|
15
|
-
class CombinatorReleaseContext {
|
|
16
|
-
nodeFromContentAndRuleName(content, ruleName) {
|
|
17
|
-
const ruleMap = florenceParser.getRuleMap(),
|
|
18
|
-
rule = ruleMap[ruleName],
|
|
19
|
-
tokens = florenceLexer.tokenise(content),
|
|
20
|
-
node = florenceParser.parse(tokens, rule);
|
|
21
|
-
|
|
22
|
-
if (node !== null) {
|
|
23
|
-
rewriteNodes(node);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return node;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
static fromNothing() {
|
|
30
|
-
const combinatorReleaseContext = new CombinatorReleaseContext();
|
|
31
|
-
|
|
32
|
-
return combinatorReleaseContext;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const combinatorReleaseContext = CombinatorReleaseContext.fromNothing();
|
|
37
|
-
|
|
38
|
-
export default combinatorReleaseContext;
|
|
39
|
-
|
package/src/jsonTypes.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import MetastatementForMetavariableMatcher from "../../matcher/metastatementForMetavariable";
|
|
4
|
-
|
|
5
|
-
class ConclusionMetastatementForMetavariableMatcher extends MetastatementForMetavariableMatcher {
|
|
6
|
-
static createSubstitutions = false;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export const conclusionMetastatementForMetavariableMatcher = new ConclusionMetastatementForMetavariableMatcher();
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import MetastatementForMetavariableMatcher from "../../matcher/metastatementForMetavariable";
|
|
4
|
-
|
|
5
|
-
class PremiseMetastatementForMetavariableMatcher extends MetastatementForMetavariableMatcher {
|
|
6
|
-
static createSubstitutions = true;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export const premiseMetastatementForMetavariableMatcher = new PremiseMetastatementForMetavariableMatcher();
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import Matcher from "../matcher";
|
|
4
|
-
import MetastatementForMetavariableSubstitution from "../substitution/metastatementForMetavariable";
|
|
5
|
-
|
|
6
|
-
import { first } from "../utilities/array";
|
|
7
|
-
import { metavariableNameFromMetavariableNode } from "../utilities/query";
|
|
8
|
-
import { METAVARIABLE_RULE_NAME, METASTATEMENT_RULE_NAME } from "../ruleNames";
|
|
9
|
-
|
|
10
|
-
export default class MetastatementForMetavariableMatcher extends Matcher {
|
|
11
|
-
matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions) {
|
|
12
|
-
let nonTerminalNodeMatches = false;
|
|
13
|
-
|
|
14
|
-
const nonTerminalNodeARuleName = nonTerminalNodeA.getRuleName(),
|
|
15
|
-
nonTerminalNodeBRuleName = nonTerminalNodeB.getRuleName(),
|
|
16
|
-
nonTerminalNodeARuleNameMetastatementRuleName = (nonTerminalNodeARuleName === METASTATEMENT_RULE_NAME),
|
|
17
|
-
nonTerminalNodeBRuleNameMetastatementRuleName = (nonTerminalNodeBRuleName === METASTATEMENT_RULE_NAME);
|
|
18
|
-
|
|
19
|
-
if (nonTerminalNodeARuleNameMetastatementRuleName && nonTerminalNodeBRuleNameMetastatementRuleName) {
|
|
20
|
-
const metastatementNodeA = nonTerminalNodeA, ///
|
|
21
|
-
metastatementNodeB = nonTerminalNodeB, ///
|
|
22
|
-
metastatementNodeMatches = this.matchMetastatementNode(metastatementNodeA, metastatementNodeB, substitutions);
|
|
23
|
-
|
|
24
|
-
if (metastatementNodeMatches) {
|
|
25
|
-
nonTerminalNodeMatches = true; ///
|
|
26
|
-
} else {
|
|
27
|
-
nonTerminalNodeMatches = super.matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions);
|
|
28
|
-
}
|
|
29
|
-
} else if (nonTerminalNodeBRuleName === nonTerminalNodeARuleName) {
|
|
30
|
-
nonTerminalNodeMatches = super.matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return nonTerminalNodeMatches;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
matchMetastatementNode(metastatementNodeA, metastatementNodeB, substitutions) {
|
|
37
|
-
let metastatementNodeMatches = false;
|
|
38
|
-
|
|
39
|
-
const nonTerminalNodeA = metastatementNodeA, ///
|
|
40
|
-
nonTerminalNodeAChildNodes = nonTerminalNodeA.getChildNodes(),
|
|
41
|
-
nonTerminalNodeAChildNodesLength = nonTerminalNodeAChildNodes.length;
|
|
42
|
-
|
|
43
|
-
if (nonTerminalNodeAChildNodesLength === 1) {
|
|
44
|
-
const firstNonTerminalNodeAChildNode = first(nonTerminalNodeAChildNodes),
|
|
45
|
-
cChildNodeA = firstNonTerminalNodeAChildNode, ///
|
|
46
|
-
cChildNodeANonTerminalNode = cChildNodeA.isNonTerminalNode();
|
|
47
|
-
|
|
48
|
-
if (cChildNodeANonTerminalNode) {
|
|
49
|
-
const nonTerminalNodeA = cChildNodeA, ///
|
|
50
|
-
nonTerminalNodeARuleName = nonTerminalNodeA.getRuleName(),
|
|
51
|
-
nonTerminalNodeARuleNameMetavariableRuleName = (nonTerminalNodeARuleName === METAVARIABLE_RULE_NAME);
|
|
52
|
-
|
|
53
|
-
if (nonTerminalNodeARuleNameMetavariableRuleName) {
|
|
54
|
-
const metavariableNodeA = nonTerminalNodeA, ///
|
|
55
|
-
metaVariableNodeMatches = this.matchMetavariableNode(metavariableNodeA, metastatementNodeB, substitutions);
|
|
56
|
-
|
|
57
|
-
metastatementNodeMatches = metaVariableNodeMatches; ///
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
return metastatementNodeMatches;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
matchMetavariableNode(metavariableNodeA, metastatementNodeB, substitutions) {
|
|
66
|
-
let metavariableNodeMatches;
|
|
67
|
-
|
|
68
|
-
const metavariableNameA = metavariableNameFromMetavariableNode(metavariableNodeA),
|
|
69
|
-
substitution = substitutions.find((substitution) => {
|
|
70
|
-
const metavariableName = substitution.getMetavariableName();
|
|
71
|
-
|
|
72
|
-
if (metavariableName === metavariableNameA) {
|
|
73
|
-
return true;
|
|
74
|
-
}
|
|
75
|
-
}) || null;
|
|
76
|
-
|
|
77
|
-
if (substitution !== null) {
|
|
78
|
-
const metastatementNode = metastatementNodeB, ///
|
|
79
|
-
substitutionNodesMatch = substitution.matchMetastatementNode(metastatementNode);
|
|
80
|
-
|
|
81
|
-
metavariableNodeMatches = substitutionNodesMatch; ///
|
|
82
|
-
} else {
|
|
83
|
-
const { createSubstitutions } = this.constructor;
|
|
84
|
-
|
|
85
|
-
if (createSubstitutions) {
|
|
86
|
-
const metavariableName = metavariableNameA, ///
|
|
87
|
-
metastatementNode = metastatementNodeB, ///
|
|
88
|
-
metastatementForMetavariableSubstitution = MetastatementForMetavariableSubstitution.fromMetavariableNameAndMetastatementNode(metavariableName, metastatementNode),
|
|
89
|
-
substitution = metastatementForMetavariableSubstitution; ///
|
|
90
|
-
|
|
91
|
-
substitutions.push(substitution);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
metavariableNodeMatches = true;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
return metavariableNodeMatches;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import StatementForMetavariableMatcher from "../../matcher/statementForMetavariable";
|
|
4
|
-
|
|
5
|
-
class ConclusionStatementForMetavariableMatcher extends StatementForMetavariableMatcher {
|
|
6
|
-
static createSubstitutions = false;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export const conclusionStatementForMetavariableMatcher = new ConclusionStatementForMetavariableMatcher();
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import StatementForMetavariableMatcher from "../../matcher/statementForMetavariable";
|
|
4
|
-
|
|
5
|
-
class PremiseStatementForMetavariableMatcher extends StatementForMetavariableMatcher {
|
|
6
|
-
static createSubstitutions = true;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export const premiseStatementForMetavariableMatcher = new PremiseStatementForMetavariableMatcher();
|