occam-verify-cli 1.0.382 → 1.0.385

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.
Files changed (227) hide show
  1. package/lib/action/verify.js +2 -1
  2. package/lib/context/file.js +2 -2
  3. package/lib/context/release.js +2 -2
  4. package/lib/mixins/statement/verify.js +3 -3
  5. package/lib/mixins/step/unify.js +4 -4
  6. package/lib/mixins/term/verify.js +4 -4
  7. package/lib/ontology/assertion/contained.js +316 -0
  8. package/lib/ontology/assertion/defined.js +290 -0
  9. package/lib/ontology/assertion/property.js +271 -0
  10. package/lib/ontology/assertion/satisfies.js +254 -0
  11. package/lib/ontology/assertion/subproof.js +186 -0
  12. package/lib/ontology/assertion/type.js +252 -0
  13. package/lib/{dom → ontology}/axiom.js +3 -3
  14. package/lib/{dom → ontology}/combinator/bracketed.js +4 -4
  15. package/lib/ontology/combinator.js +141 -0
  16. package/lib/ontology/conclusion.js +172 -0
  17. package/lib/{dom → ontology}/conjecture.js +3 -3
  18. package/lib/{dom → ontology}/constructor/bracketed.js +5 -5
  19. package/lib/ontology/constructor.js +171 -0
  20. package/lib/ontology/declaration/combinator.js +168 -0
  21. package/lib/ontology/declaration/complexType.js +346 -0
  22. package/lib/ontology/declaration/constructor.js +199 -0
  23. package/lib/ontology/declaration/metavariable.js +209 -0
  24. package/lib/ontology/declaration/simpleType.js +243 -0
  25. package/lib/ontology/declaration/typePrefix.js +181 -0
  26. package/lib/ontology/declaration/variable.js +197 -0
  27. package/lib/ontology/declaration.js +360 -0
  28. package/lib/ontology/deduction.js +186 -0
  29. package/lib/ontology/derivation.js +155 -0
  30. package/lib/ontology/equality.js +288 -0
  31. package/lib/{dom → ontology}/error.js +3 -3
  32. package/lib/ontology/frame.js +362 -0
  33. package/lib/ontology/hypothesis.js +190 -0
  34. package/lib/ontology/judgement.js +241 -0
  35. package/lib/ontology/label.js +199 -0
  36. package/lib/{dom → ontology}/lemma.js +3 -3
  37. package/lib/{dom → ontology}/metaLemma.js +3 -3
  38. package/lib/{dom → ontology}/metaType.js +3 -3
  39. package/lib/{dom → ontology}/metatheorem.js +3 -3
  40. package/lib/ontology/metavariable.js +504 -0
  41. package/lib/{dom → ontology}/parameter.js +3 -3
  42. package/lib/ontology/premise.js +271 -0
  43. package/lib/ontology/procedureCall.js +243 -0
  44. package/lib/{dom → ontology}/procedureReference.js +3 -3
  45. package/lib/{dom → ontology}/proof.js +4 -4
  46. package/lib/ontology/property.js +166 -0
  47. package/lib/ontology/propertyRelation.js +202 -0
  48. package/lib/ontology/reference.js +293 -0
  49. package/lib/ontology/rule.js +375 -0
  50. package/lib/ontology/section.js +255 -0
  51. package/lib/ontology/signature.js +220 -0
  52. package/lib/{dom → ontology}/statement.js +3 -3
  53. package/lib/ontology/step.js +283 -0
  54. package/lib/ontology/subDerivation.js +147 -0
  55. package/lib/ontology/subproof.js +266 -0
  56. package/lib/ontology/substitution/frame.js +216 -0
  57. package/lib/{dom → ontology}/substitution/reference.js +3 -3
  58. package/lib/{dom → ontology}/substitution/statement.js +3 -3
  59. package/lib/ontology/substitution/term.js +230 -0
  60. package/lib/ontology/substitution.js +207 -0
  61. package/lib/ontology/supposition.js +283 -0
  62. package/lib/ontology/term.js +339 -0
  63. package/lib/{dom → ontology}/theorem.js +3 -3
  64. package/lib/ontology/topLevelAssertion.js +432 -0
  65. package/lib/ontology/topLevelMetaAssertion.js +235 -0
  66. package/lib/ontology/type.js +556 -0
  67. package/lib/ontology/typePrefix.js +99 -0
  68. package/lib/ontology/variable.js +331 -0
  69. package/lib/ontology.js +27 -0
  70. package/lib/preamble.js +60 -60
  71. package/lib/prepare.js +25 -0
  72. package/lib/unifier/intrinsicLevel.js +3 -3
  73. package/lib/unifier/metaLevel.js +7 -7
  74. package/lib/unifier/metavariable.js +3 -3
  75. package/lib/unifier/statementWithCombinator.js +5 -5
  76. package/lib/unifier/termWithConstructor.js +3 -3
  77. package/lib/utilities/brackets.js +5 -5
  78. package/lib/utilities/context.js +12 -12
  79. package/lib/utilities/fileSystem.js +2 -2
  80. package/lib/utilities/json.js +30 -30
  81. package/lib/utilities/node.js +7 -7
  82. package/lib/utilities/release.js +12 -4
  83. package/lib/utilities/releaseContext.js +1 -1
  84. package/lib/utilities/substitutions.js +6 -6
  85. package/lib/utilities/type.js +2 -2
  86. package/lib/verifier/combinator.js +4 -4
  87. package/lib/verifier/constructor.js +3 -3
  88. package/lib/verifier/topLevel.js +18 -18
  89. package/package.json +1 -1
  90. package/src/action/verify.js +2 -0
  91. package/src/context/file.js +1 -1
  92. package/src/context/release.js +1 -1
  93. package/src/mixins/statement/verify.js +2 -2
  94. package/src/mixins/step/unify.js +3 -3
  95. package/src/mixins/term/verify.js +3 -3
  96. package/src/{dom → ontology}/assertion/contained.js +4 -4
  97. package/src/{dom → ontology}/assertion/defined.js +6 -6
  98. package/src/{dom → ontology}/assertion/property.js +5 -5
  99. package/src/{dom → ontology}/assertion/satisfies.js +5 -5
  100. package/src/{dom → ontology}/assertion/subproof.js +4 -4
  101. package/src/{dom → ontology}/assertion/type.js +5 -5
  102. package/src/{dom → ontology}/axiom.js +2 -2
  103. package/src/{dom → ontology}/combinator/bracketed.js +4 -4
  104. package/src/{dom → ontology}/combinator.js +4 -4
  105. package/src/{dom → ontology}/conclusion.js +4 -4
  106. package/src/{dom → ontology}/conjecture.js +2 -2
  107. package/src/{dom → ontology}/constructor/bracketed.js +5 -5
  108. package/src/{dom → ontology}/constructor.js +5 -5
  109. package/src/{dom → ontology}/declaration/combinator.js +4 -4
  110. package/src/{dom → ontology}/declaration/complexType.js +4 -4
  111. package/src/{dom → ontology}/declaration/constructor.js +4 -4
  112. package/src/{dom → ontology}/declaration/metavariable.js +5 -5
  113. package/src/{dom → ontology}/declaration/simpleType.js +4 -4
  114. package/src/{dom → ontology}/declaration/typePrefix.js +4 -4
  115. package/src/{dom → ontology}/declaration/variable.js +4 -4
  116. package/src/{dom → ontology}/declaration.js +5 -5
  117. package/src/{dom → ontology}/deduction.js +4 -4
  118. package/src/{dom → ontology}/derivation.js +4 -4
  119. package/src/{dom → ontology}/equality.js +6 -6
  120. package/src/{dom → ontology}/error.js +2 -2
  121. package/src/{dom → ontology}/frame.js +6 -6
  122. package/src/{dom → ontology}/hypothesis.js +5 -6
  123. package/src/{dom → ontology}/judgement.js +5 -5
  124. package/src/{dom → ontology}/label.js +4 -4
  125. package/src/{dom → ontology}/lemma.js +2 -2
  126. package/src/{dom → ontology}/metaLemma.js +2 -2
  127. package/src/{dom → ontology}/metaType.js +2 -2
  128. package/src/{dom → ontology}/metatheorem.js +2 -2
  129. package/src/{dom → ontology}/metavariable.js +8 -8
  130. package/src/{dom → ontology}/parameter.js +2 -2
  131. package/src/{dom → ontology}/premise.js +5 -5
  132. package/src/{dom → ontology}/procedureCall.js +5 -5
  133. package/src/{dom → ontology}/procedureReference.js +2 -2
  134. package/src/{dom → ontology}/proof.js +4 -4
  135. package/src/{dom → ontology}/property.js +4 -4
  136. package/src/{dom → ontology}/propertyRelation.js +4 -4
  137. package/src/{dom → ontology}/reference.js +6 -6
  138. package/src/{dom → ontology}/rule.js +7 -7
  139. package/src/{dom → ontology}/section.js +8 -8
  140. package/src/{dom → ontology}/signature.js +4 -4
  141. package/src/{dom → ontology}/statement.js +2 -2
  142. package/src/{dom → ontology}/step.js +4 -4
  143. package/src/{dom → ontology}/subDerivation.js +4 -4
  144. package/src/{dom → ontology}/subproof.js +5 -5
  145. package/src/{dom → ontology}/substitution/frame.js +4 -4
  146. package/src/{dom → ontology}/substitution/reference.js +2 -2
  147. package/src/{dom → ontology}/substitution/statement.js +2 -2
  148. package/src/{dom → ontology}/substitution/term.js +5 -5
  149. package/src/{dom → ontology}/supposition.js +5 -5
  150. package/src/{dom → ontology}/term.js +6 -6
  151. package/src/{dom → ontology}/theorem.js +2 -2
  152. package/src/{dom → ontology}/topLevelAssertion.js +6 -6
  153. package/src/{dom → ontology}/topLevelMetaAssertion.js +2 -2
  154. package/src/{dom → ontology}/type.js +4 -4
  155. package/src/{dom → ontology}/typePrefix.js +3 -5
  156. package/src/{dom → ontology}/variable.js +6 -6
  157. package/src/ontology.js +13 -0
  158. package/src/preamble.js +59 -59
  159. package/src/{configure.js → prepare.js} +1 -1
  160. package/src/unifier/intrinsicLevel.js +2 -2
  161. package/src/unifier/metaLevel.js +6 -6
  162. package/src/unifier/metavariable.js +2 -2
  163. package/src/unifier/statementWithCombinator.js +4 -4
  164. package/src/unifier/termWithConstructor.js +2 -2
  165. package/src/utilities/brackets.js +4 -4
  166. package/src/utilities/context.js +11 -11
  167. package/src/utilities/fileSystem.js +1 -1
  168. package/src/utilities/json.js +29 -29
  169. package/src/utilities/node.js +6 -6
  170. package/src/utilities/release.js +1 -1
  171. package/src/utilities/releaseContext.js +3 -3
  172. package/src/utilities/substitutions.js +5 -5
  173. package/src/utilities/type.js +1 -1
  174. package/src/verifier/combinator.js +3 -3
  175. package/src/verifier/constructor.js +2 -2
  176. package/src/verifier/topLevel.js +17 -17
  177. package/verify.js +2 -2
  178. package/lib/configure.js +0 -25
  179. package/lib/dom/assertion/contained.js +0 -316
  180. package/lib/dom/assertion/defined.js +0 -290
  181. package/lib/dom/assertion/property.js +0 -271
  182. package/lib/dom/assertion/satisfies.js +0 -254
  183. package/lib/dom/assertion/subproof.js +0 -186
  184. package/lib/dom/assertion/type.js +0 -252
  185. package/lib/dom/combinator.js +0 -141
  186. package/lib/dom/conclusion.js +0 -172
  187. package/lib/dom/constructor.js +0 -171
  188. package/lib/dom/declaration/combinator.js +0 -168
  189. package/lib/dom/declaration/complexType.js +0 -346
  190. package/lib/dom/declaration/constructor.js +0 -199
  191. package/lib/dom/declaration/metavariable.js +0 -209
  192. package/lib/dom/declaration/simpleType.js +0 -243
  193. package/lib/dom/declaration/typePrefix.js +0 -181
  194. package/lib/dom/declaration/variable.js +0 -197
  195. package/lib/dom/declaration.js +0 -360
  196. package/lib/dom/deduction.js +0 -186
  197. package/lib/dom/derivation.js +0 -155
  198. package/lib/dom/equality.js +0 -288
  199. package/lib/dom/frame.js +0 -362
  200. package/lib/dom/hypothesis.js +0 -191
  201. package/lib/dom/judgement.js +0 -241
  202. package/lib/dom/label.js +0 -199
  203. package/lib/dom/metavariable.js +0 -504
  204. package/lib/dom/premise.js +0 -271
  205. package/lib/dom/procedureCall.js +0 -243
  206. package/lib/dom/property.js +0 -166
  207. package/lib/dom/propertyRelation.js +0 -202
  208. package/lib/dom/reference.js +0 -293
  209. package/lib/dom/rule.js +0 -375
  210. package/lib/dom/section.js +0 -255
  211. package/lib/dom/signature.js +0 -220
  212. package/lib/dom/step.js +0 -283
  213. package/lib/dom/subDerivation.js +0 -147
  214. package/lib/dom/subproof.js +0 -266
  215. package/lib/dom/substitution/frame.js +0 -216
  216. package/lib/dom/substitution/term.js +0 -230
  217. package/lib/dom/substitution.js +0 -207
  218. package/lib/dom/supposition.js +0 -283
  219. package/lib/dom/term.js +0 -339
  220. package/lib/dom/topLevelAssertion.js +0 -432
  221. package/lib/dom/topLevelMetaAssertion.js +0 -235
  222. package/lib/dom/type.js +0 -556
  223. package/lib/dom/typePrefix.js +0 -100
  224. package/lib/dom/variable.js +0 -331
  225. package/lib/dom.js +0 -27
  226. package/src/dom.js +0 -13
  227. /package/src/{dom → ontology}/substitution.js +0 -0
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import dom from "../dom";
3
+ import ontology from "../ontology";
4
4
  import Verifier from "../verifier";
5
5
 
6
6
  import { nodeQuery } from "../utilities/query";
@@ -26,7 +26,7 @@ class CombinatorVerifier extends Verifier {
26
26
  {
27
27
  nodeQuery: statementNodeQuery,
28
28
  verify: (statementNode, context) => {
29
- const { Statement } = dom,
29
+ const { Statement } = ontology,
30
30
  statement = Statement.fromStatementNode(statementNode, context),
31
31
  assignments = null,
32
32
  stated = false,
@@ -38,7 +38,7 @@ class CombinatorVerifier extends Verifier {
38
38
  {
39
39
  nodeQuery: termNodeQuery,
40
40
  verify: (termNode, context) => {
41
- const { Term } = dom,
41
+ const { Term } = ontology,
42
42
  term = Term.fromTermNode(termNode, context),
43
43
  termVerifies = term.verify(context, () => {
44
44
  const verifiesAhead = true;
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { arrayUtilities } from "necessary";
4
4
 
5
- import dom from "../dom";
5
+ import ontology from "../ontology";
6
6
  import Verifier from "../verifier";
7
7
 
8
8
  import { nodeQuery } from "../utilities/query";
@@ -58,7 +58,7 @@ class ConstructorVerifier extends Verifier {
58
58
  {
59
59
  nodeQuery: termNodeQuery,
60
60
  verify: (termNode, context, verifyAhead) => {
61
- const { Term } = dom,
61
+ const { Term } = ontology,
62
62
  term = Term.fromTermNode(termNode, context),
63
63
  termVerifies = term.verify(context, verifyAhead);
64
64
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import dom from "../dom";
3
+ import ontology from "../ontology";
4
4
  import Verifier from "../verifier";
5
5
 
6
6
  import { nodeQuery } from "../utilities/query";
@@ -39,7 +39,7 @@ class TopLevelVerifier extends Verifier {
39
39
  {
40
40
  nodeQuery: errorNodeQuery,
41
41
  verify: (errorNode, context) => {
42
- const { Error } = dom,
42
+ const { Error } = ontology,
43
43
  error = Error.fromErrorNode(errorNode, context),
44
44
  errorVerifies = error.verify();
45
45
 
@@ -49,7 +49,7 @@ class TopLevelVerifier extends Verifier {
49
49
  {
50
50
  nodeQuery: ruleNodeQuery,
51
51
  verify: (ruleNode, context) => {
52
- const { Rule } = dom,
52
+ const { Rule } = ontology,
53
53
  rule = Rule.fromRuleNode(ruleNode, context),
54
54
  ruleVerifies = rule.verify();
55
55
 
@@ -59,7 +59,7 @@ class TopLevelVerifier extends Verifier {
59
59
  {
60
60
  nodeQuery: axiomNodeQuery,
61
61
  verify: (axiomNode, context) => {
62
- const { Axiom } = dom,
62
+ const { Axiom } = ontology,
63
63
  axiom = Axiom.fromAxiomNode(axiomNode, context),
64
64
  axiomVerifies = axiom.verify();
65
65
 
@@ -69,7 +69,7 @@ class TopLevelVerifier extends Verifier {
69
69
  {
70
70
  nodeQuery: lemmaNodeQuery,
71
71
  verify: (lemmaNode, context) => {
72
- const { Lemma } = dom,
72
+ const { Lemma } = ontology,
73
73
  lemma = Lemma.fromLemmaNode(lemmaNode, context),
74
74
  lemmaVerifies = lemma.verify();
75
75
 
@@ -79,7 +79,7 @@ class TopLevelVerifier extends Verifier {
79
79
  {
80
80
  nodeQuery: sectionNodeQuery,
81
81
  verify: (sectionNode, context) => {
82
- const { Section } = dom,
82
+ const { Section } = ontology,
83
83
  section = Section.fromSectionNode(sectionNode, context),
84
84
  sectionVerifies = section.verify();
85
85
 
@@ -89,7 +89,7 @@ class TopLevelVerifier extends Verifier {
89
89
  {
90
90
  nodeQuery: theoremNodeQuery,
91
91
  verify: (theoremNode, context) => {
92
- const { Theorem } = dom,
92
+ const { Theorem } = ontology,
93
93
  theorem = Theorem.fromTheoremNode(theoremNode, context),
94
94
  theoremVerifies = theorem.verify();
95
95
 
@@ -99,7 +99,7 @@ class TopLevelVerifier extends Verifier {
99
99
  {
100
100
  nodeQuery: metaLemmaNodeQuery,
101
101
  verify: (metaLemmaNode, context) => {
102
- const { MetaLemma } = dom,
102
+ const { MetaLemma } = ontology,
103
103
  metaLemma = MetaLemma.fromMetaLemmaNode(metaLemmaNode, context),
104
104
  metaLemmaVerifies = metaLemma.verify();
105
105
 
@@ -109,7 +109,7 @@ class TopLevelVerifier extends Verifier {
109
109
  {
110
110
  nodeQuery: conjectureNodeQuery,
111
111
  verify: (conjectureNode, context) => {
112
- const { Conjecture } = dom,
112
+ const { Conjecture } = ontology,
113
113
  conjecture = Conjecture.fromConjectureNode(conjectureNode, context),
114
114
  conjectureVerifies = conjecture.verify();
115
115
 
@@ -119,7 +119,7 @@ class TopLevelVerifier extends Verifier {
119
119
  {
120
120
  nodeQuery: metatheoremNodeQuery,
121
121
  verify: (metatheoremNode, context) => {
122
- const { Metatheorem } = dom,
122
+ const { Metatheorem } = ontology,
123
123
  metatheorem = Metatheorem.fromMetatheoremNode(metatheoremNode, context),
124
124
  metatheoremVerifies = metatheorem.verify();
125
125
 
@@ -129,7 +129,7 @@ class TopLevelVerifier extends Verifier {
129
129
  {
130
130
  nodeQuery: variableDeclarationNodeQuery,
131
131
  verify: (variableDeclarationNode, context) => {
132
- const { VariableDeclaration } = dom,
132
+ const { VariableDeclaration } = ontology,
133
133
  variableDeclaration = VariableDeclaration.fromVariableDeclarationNode(variableDeclarationNode, context),
134
134
  variableDeclarationVerifies = variableDeclaration.verify();
135
135
 
@@ -139,7 +139,7 @@ class TopLevelVerifier extends Verifier {
139
139
  {
140
140
  nodeQuery: simpleTypeDeclarationNodeQuery,
141
141
  verify: (simpleTypeDeclarationNode, context) => {
142
- const { SimpleTypeDeclaration } = dom,
142
+ const { SimpleTypeDeclaration } = ontology,
143
143
  simpleTypeDeclaration = SimpleTypeDeclaration.fromSimpleTypeDeclarationNode(simpleTypeDeclarationNode, context),
144
144
  simpleTypeDeclarationVerifies = simpleTypeDeclaration.verify();
145
145
 
@@ -149,7 +149,7 @@ class TopLevelVerifier extends Verifier {
149
149
  {
150
150
  nodeQuery: typePrefixDeclarationNodeQuery,
151
151
  verify: (typePrefixDeclarationNode, context) => {
152
- const { TypePrefixDeclaration } = dom,
152
+ const { TypePrefixDeclaration } = ontology,
153
153
  typePrefixDeclaration = TypePrefixDeclaration.fromTypePrefixDeclarationNode(typePrefixDeclarationNode, context),
154
154
  typePrefixDeclarationVerifies = typePrefixDeclaration.verify();
155
155
 
@@ -159,7 +159,7 @@ class TopLevelVerifier extends Verifier {
159
159
  {
160
160
  nodeQuery: combinatorDeclarationNodeQuery,
161
161
  verify: (combinatorDeclarationNode, context) => {
162
- const { CombinatorDeclaration } = dom,
162
+ const { CombinatorDeclaration } = ontology,
163
163
  combinatorDeclaration = CombinatorDeclaration.fromCombinatorDeclarationNode(combinatorDeclarationNode, context),
164
164
  combinatorDeclarationVerifies = combinatorDeclaration.verify();
165
165
 
@@ -169,7 +169,7 @@ class TopLevelVerifier extends Verifier {
169
169
  {
170
170
  nodeQuery: constructorDeclarationNodeQuery,
171
171
  verify: (constructorDeclarationNode, context) => {
172
- const { ConstructorDeclaration } = dom,
172
+ const { ConstructorDeclaration } = ontology,
173
173
  constructorDeclaration = ConstructorDeclaration.fromConstructorDeclarationNode(constructorDeclarationNode, context),
174
174
  constructorDeclarationVerifies = constructorDeclaration.verify();
175
175
 
@@ -179,7 +179,7 @@ class TopLevelVerifier extends Verifier {
179
179
  {
180
180
  nodeQuery: complexTypeDeclarationNodeQuery,
181
181
  verify: (complexTypeDeclarationNode, context) => {
182
- const { ComplexTypeDeclaration } = dom,
182
+ const { ComplexTypeDeclaration } = ontology,
183
183
  complexTypeDeclaration = ComplexTypeDeclaration.fromComplexTypeDeclarationNode(complexTypeDeclarationNode, context),
184
184
  complexTypeDeclarationVerifies = complexTypeDeclaration.verify();
185
185
 
@@ -189,7 +189,7 @@ class TopLevelVerifier extends Verifier {
189
189
  {
190
190
  nodeQuery: metavariableDeclarationNodeQuery,
191
191
  verify: (metavariableDeclarationNode, context) => {
192
- const { MetavariableDeclaration } = dom,
192
+ const { MetavariableDeclaration } = ontology,
193
193
  metavariableDeclaration = MetavariableDeclaration.fromMetavariableDeclarationNode(metavariableDeclarationNode, context),
194
194
  metavariableDeclarationVerifies = metavariableDeclaration.verify();
195
195
 
package/verify.js CHANGED
@@ -4,7 +4,7 @@ const { parseArgv } = require("argumentative"),
4
4
  { arrayUtilities } = require("necessary");
5
5
 
6
6
  const { default: main } = require("./lib/main"),
7
- { default: configure } = require("./lib/configure"),
7
+ { default: prepare } = require("./lib/prepare"),
8
8
  { default: abbreviations } = require("./lib/abbreviations");
9
9
 
10
10
  const { argv } = process,
@@ -16,4 +16,4 @@ const { commands, options } = parseArgv(argv, abbreviations),
16
16
  command = firstCommand || null, ///
17
17
  argument = secondCommand || null; ///
18
18
 
19
- configure(command, argument, options, main);
19
+ prepare(command, argument, options, main);
package/lib/configure.js DELETED
@@ -1,25 +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 configure;
9
- }
10
- });
11
- var _defaults = require("./defaults");
12
- var _commands = require("./commands");
13
- function configure(command, argument, options, main) {
14
- var _options_help = options.help, help = _options_help === void 0 ? _defaults.DEFAULT_HELP : _options_help, _options_version = options.version, version = _options_version === void 0 ? _defaults.DEFAULT_VERSION : _options_version;
15
- if (false) {
16
- ///
17
- } else if (help) {
18
- command = _commands.HELP_COMMAND;
19
- } else if (version) {
20
- command = _commands.VERSION_COMMAND;
21
- }
22
- main(command, argument, options);
23
- }
24
-
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWd1cmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IERFRkFVTFRfSEVMUCwgREVGQVVMVF9WRVJTSU9OIH0gZnJvbSBcIi4vZGVmYXVsdHNcIjtcbmltcG9ydCB7IEhFTFBfQ09NTUFORCwgVkVSU0lPTl9DT01NQU5EIH0gZnJvbSBcIi4vY29tbWFuZHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29uZmlndXJlKGNvbW1hbmQsIGFyZ3VtZW50LCBvcHRpb25zLCBtYWluKSB7XG4gIGNvbnN0IHsgaGVscCA9IERFRkFVTFRfSEVMUCwgdmVyc2lvbiA9IERFRkFVTFRfVkVSU0lPTiB9ID0gb3B0aW9ucztcblxuICBpZiAoZmFsc2UpIHtcbiAgICAvLy9cbiAgfSBlbHNlIGlmIChoZWxwKSB7XG4gICAgY29tbWFuZCA9IEhFTFBfQ09NTUFORDtcbiAgfSBlbHNlIGlmICh2ZXJzaW9uKSB7XG4gICAgY29tbWFuZCA9IFZFUlNJT05fQ09NTUFORDtcbiAgfVxuXG4gIG1haW4oY29tbWFuZCwgYXJndW1lbnQsIG9wdGlvbnMpO1xufVxuIl0sIm5hbWVzIjpbImNvbmZpZ3VyZSIsImNvbW1hbmQiLCJhcmd1bWVudCIsIm9wdGlvbnMiLCJtYWluIiwiaGVscCIsIkRFRkFVTFRfSEVMUCIsInZlcnNpb24iLCJERUZBVUxUX1ZFUlNJT04iLCJIRUxQX0NPTU1BTkQiLCJWRVJTSU9OX0NPTU1BTkQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUtBOzs7ZUFBd0JBOzs7d0JBSHNCO3dCQUNBO0FBRS9CLFNBQVNBLFVBQVVDLE9BQU8sRUFBRUMsUUFBUSxFQUFFQyxPQUFPLEVBQUVDLElBQUk7SUFDaEUsb0JBQTJERCxRQUFuREUsTUFBQUEsa0NBQU9DLHNCQUFZLHFDQUFnQ0gsUUFBOUJJLFNBQUFBLHdDQUFVQyx5QkFBZTtJQUV0RCxJQUFJLE9BQU87SUFDVCxHQUFHO0lBQ0wsT0FBTyxJQUFJSCxNQUFNO1FBQ2ZKLFVBQVVRLHNCQUFZO0lBQ3hCLE9BQU8sSUFBSUYsU0FBUztRQUNsQk4sVUFBVVMseUJBQWU7SUFDM0I7SUFFQU4sS0FBS0gsU0FBU0MsVUFBVUM7QUFDMUIifQ==
@@ -1,316 +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 _dom = /*#__PURE__*/ _interop_require_wildcard(require("../../dom"));
12
- var _local = /*#__PURE__*/ _interop_require_default(require("../../context/local"));
13
- var _substitutions = require("../../utilities/substitutions");
14
- function _class_call_check(instance, Constructor) {
15
- if (!(instance instanceof Constructor)) {
16
- throw new TypeError("Cannot call a class as a function");
17
- }
18
- }
19
- function _defineProperties(target, props) {
20
- for(var i = 0; i < props.length; i++){
21
- var descriptor = props[i];
22
- descriptor.enumerable = descriptor.enumerable || false;
23
- descriptor.configurable = true;
24
- if ("value" in descriptor) descriptor.writable = true;
25
- Object.defineProperty(target, descriptor.key, descriptor);
26
- }
27
- }
28
- function _create_class(Constructor, protoProps, staticProps) {
29
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
30
- if (staticProps) _defineProperties(Constructor, staticProps);
31
- return Constructor;
32
- }
33
- function _define_property(obj, key, value) {
34
- if (key in obj) {
35
- Object.defineProperty(obj, key, {
36
- value: value,
37
- enumerable: true,
38
- configurable: true,
39
- writable: true
40
- });
41
- } else {
42
- obj[key] = value;
43
- }
44
- return obj;
45
- }
46
- function _interop_require_default(obj) {
47
- return obj && obj.__esModule ? obj : {
48
- default: obj
49
- };
50
- }
51
- function _getRequireWildcardCache(nodeInterop) {
52
- if (typeof WeakMap !== "function") return null;
53
- var cacheBabelInterop = new WeakMap();
54
- var cacheNodeInterop = new WeakMap();
55
- return (_getRequireWildcardCache = function(nodeInterop) {
56
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
57
- })(nodeInterop);
58
- }
59
- function _interop_require_wildcard(obj, nodeInterop) {
60
- if (!nodeInterop && obj && obj.__esModule) {
61
- return obj;
62
- }
63
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
64
- return {
65
- default: obj
66
- };
67
- }
68
- var cache = _getRequireWildcardCache(nodeInterop);
69
- if (cache && cache.has(obj)) {
70
- return cache.get(obj);
71
- }
72
- var newObj = {
73
- __proto__: null
74
- };
75
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
76
- for(var key in obj){
77
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
78
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
79
- if (desc && (desc.get || desc.set)) {
80
- Object.defineProperty(newObj, key, desc);
81
- } else {
82
- newObj[key] = obj[key];
83
- }
84
- }
85
- }
86
- newObj.default = obj;
87
- if (cache) {
88
- cache.set(obj, newObj);
89
- }
90
- return newObj;
91
- }
92
- var _ContainedAssertion;
93
- var _default = (0, _dom.domAssigned)((_ContainedAssertion = /*#__PURE__*/ function() {
94
- function ContainedAssertion(string, node, tokens, term, frame, negated, statement) {
95
- _class_call_check(this, ContainedAssertion);
96
- this.string = string;
97
- this.node = node;
98
- this.tokens = tokens;
99
- this.term = term;
100
- this.frame = frame;
101
- this.negated = negated;
102
- this.statement = statement;
103
- }
104
- _create_class(ContainedAssertion, [
105
- {
106
- key: "getString",
107
- value: function getString() {
108
- return this.string;
109
- }
110
- },
111
- {
112
- key: "getNode",
113
- value: function getNode() {
114
- return this.node;
115
- }
116
- },
117
- {
118
- key: "getTokens",
119
- value: function getTokens() {
120
- return this.tokens;
121
- }
122
- },
123
- {
124
- key: "getTerm",
125
- value: function getTerm() {
126
- return this.term;
127
- }
128
- },
129
- {
130
- key: "getFrame",
131
- value: function getFrame() {
132
- return this.frame;
133
- }
134
- },
135
- {
136
- key: "isNegated",
137
- value: function isNegated() {
138
- return this.negated;
139
- }
140
- },
141
- {
142
- key: "getStatement",
143
- value: function getStatement() {
144
- return this.statement;
145
- }
146
- },
147
- {
148
- key: "verify",
149
- value: function verify(assignments, stated, context) {
150
- var verifies = false;
151
- var containedAssertionString = this.string; ///
152
- context.trace("Verifying the '".concat(containedAssertionString, "' contained assertion..."));
153
- var termVerifies = this.verifyTerm(assignments, stated, context), frameVerifies = this.verifyFrame(assignments, stated, context), statementVerifies = this.verifyStatement(assignments, stated, context);
154
- if (termVerifies || frameVerifies || statementVerifies) {
155
- var verifiesWhenStated = false, verifiesWhenDerived = false;
156
- if (stated) {
157
- verifiesWhenStated = this.verifyWhenStated(assignments, context);
158
- } else {
159
- verifiesWhenDerived = this.verifyWhenDerived(context);
160
- }
161
- if (verifiesWhenStated || verifiesWhenDerived) {
162
- verifies = true;
163
- }
164
- }
165
- if (verifies) {
166
- context.debug("...verified the '".concat(containedAssertionString, "' contained assertion."));
167
- }
168
- return verifies;
169
- }
170
- },
171
- {
172
- key: "verifyTerm",
173
- value: function verifyTerm(assignments, stated, context) {
174
- var termVerifies = false;
175
- if (this.term !== null) {
176
- var termString = this.term.getString();
177
- context.trace("Verifying the '".concat(termString, "' term..."));
178
- var termSimple = this.term.isSimple();
179
- if (!termSimple) {
180
- context.debug("The '".concat(termString, "' term is not simple."));
181
- } else {
182
- termVerifies = this.term.verify(context, function() {
183
- var verifiesAhead = true;
184
- return verifiesAhead;
185
- });
186
- if (termVerifies) {
187
- context.debug("...verified the '".concat(termString, "' term."));
188
- }
189
- }
190
- }
191
- return termVerifies;
192
- }
193
- },
194
- {
195
- key: "verifyFrame",
196
- value: function verifyFrame(assignments, stated, context) {
197
- var frameVerifies = false;
198
- if (this.frame !== null) {
199
- var frameString = this.frame.getString();
200
- context.trace("Verifying the '".concat(frameString, "' frame..."));
201
- var frameSimple = this.frame.isSimple();
202
- if (!frameSimple) {
203
- context.debug("The '".concat(frameString, "' frame is not simple."));
204
- } else {
205
- stated = true; ///
206
- assignments = null; ///
207
- frameVerifies = this.frame.verify(assignments, stated, context);
208
- if (frameVerifies) {
209
- context.debug("...verified the '".concat(frameString, "' frame."));
210
- }
211
- }
212
- }
213
- return frameVerifies;
214
- }
215
- },
216
- {
217
- key: "verifyStatement",
218
- value: function verifyStatement(assignments, stated, context) {
219
- var statementVerifies = false;
220
- if (this.statement !== null) {
221
- var statementString = this.statement.getString();
222
- context.trace("Verifying the '".concat(statementString, "' statement..."));
223
- stated = true; ///
224
- assignments = null; ///
225
- statementVerifies = this.statement.verify(assignments, stated, context);
226
- if (statementVerifies) {
227
- context.debug("...verified the '".concat(statementString, "' statement."));
228
- }
229
- }
230
- return statementVerifies;
231
- }
232
- },
233
- {
234
- key: "verifyWhenStated",
235
- value: function verifyWhenStated(assignments, context) {
236
- var verifiesWhenStated;
237
- var containedAssertionString = this.string; ///
238
- context.trace("Verifying the '".concat(containedAssertionString, "' stated contained assertion..."));
239
- verifiesWhenStated = true;
240
- if (verifiesWhenStated) {
241
- context.debug("...verified the '".concat(containedAssertionString, "' stated contained assertion."));
242
- }
243
- return verifiesWhenStated;
244
- }
245
- },
246
- {
247
- key: "verifyWhenDerived",
248
- value: function verifyWhenDerived1(context) {
249
- var verifiesWhenDerived;
250
- var containedAssertionString = this.string; ///
251
- context.trace("Verifying the '".concat(containedAssertionString, "' derived contained assertion..."));
252
- verifiesWhenDerived = verifyWhenDerived(this.term, this.frame, this.statement, this.negated, context);
253
- if (verifiesWhenDerived) {
254
- context.debug("...verified the '".concat(containedAssertionString, "' derived contained assertion."));
255
- }
256
- return verifiesWhenDerived;
257
- }
258
- },
259
- {
260
- key: "unifyIndependently",
261
- value: function unifyIndependently(substitutions, context) {
262
- var unifiesIndependently;
263
- var containedAssertionString = this.string; ///
264
- context.trace("Unifying the '".concat(containedAssertionString, "' contained assertion independently..."));
265
- var localContext = _local.default.fromContextAndTokens(context, this.tokens);
266
- context = localContext; ///
267
- var term = (0, _substitutions.termFromTermAndSubstitutions)(this.term, substitutions, context), frame = (0, _substitutions.frameFromFrameAndSubstitutions)(this.frame, substitutions, context), statement = (0, _substitutions.statementFromStatementAndSubstitutions)(this.statement, substitutions, context), verifiesWhenDerived = verifyWhenDerived(term, frame, statement, this.negated, context);
268
- unifiesIndependently = verifiesWhenDerived; ///
269
- if (unifiesIndependently) {
270
- context.debug("...unified the '".concat(containedAssertionString, "' contained assertion independently."));
271
- }
272
- return unifiesIndependently;
273
- }
274
- }
275
- ], [
276
- {
277
- key: "fromStatementNode",
278
- value: function fromStatementNode(statementNode, context) {
279
- var containedAssertion = null;
280
- var containedAssertionNode = statementNode.getContainedAssertionNode();
281
- if (containedAssertionNode !== null) {
282
- var Term = _dom.default.Term, Frame = _dom.default.Frame, Statement = _dom.default.Statement, node = containedAssertionNode, string = context.nodeAsString(node), tokens = context.nodeAsTokens(node), negated = containedAssertionNode.isNegated(), term = Term.fromContainedAssertionNode(containedAssertionNode, context), frame = Frame.fromContainedAssertionNode(containedAssertionNode, context), statement = Statement.fromContainedAssertionNode(containedAssertionNode, context);
283
- containedAssertion = new ContainedAssertion(string, node, tokens, term, frame, negated, statement);
284
- }
285
- return containedAssertion;
286
- }
287
- }
288
- ]);
289
- return ContainedAssertion;
290
- }(), _define_property(_ContainedAssertion, "name", "ContainedAssertion"), _ContainedAssertion));
291
- function verifyWhenDerived(term, frame, statement, negated, context) {
292
- var verifiesWhenDerived = false;
293
- if (statement !== null) {
294
- if (term !== null) {
295
- var termContained = statement.isTermContained(term, context);
296
- if (!negated && termContained) {
297
- verifiesWhenDerived = true;
298
- }
299
- if (negated && !termContained) {
300
- verifiesWhenDerived = true;
301
- }
302
- }
303
- if (frame !== null) {
304
- var frameContained = statement.isFrameContained(frame, context);
305
- if (!negated && frameContained) {
306
- verifiesWhenDerived = true;
307
- }
308
- if (negated && !frameContained) {
309
- verifiesWhenDerived = true;
310
- }
311
- }
312
- }
313
- return verifiesWhenDerived;
314
- }
315
-
316
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb20vYXNzZXJ0aW9uL2NvbnRhaW5lZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRvbSBmcm9tIFwiLi4vLi4vZG9tXCI7XG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuLi8uLi9jb250ZXh0L2xvY2FsXCI7XG5cbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uLy4uL2RvbVwiO1xuaW1wb3J0IHsgdGVybUZyb21UZXJtQW5kU3Vic3RpdHV0aW9ucywgZnJhbWVGcm9tRnJhbWVBbmRTdWJzdGl0dXRpb25zLCBzdGF0ZW1lbnRGcm9tU3RhdGVtZW50QW5kU3Vic3RpdHV0aW9ucyB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvc3Vic3RpdHV0aW9uc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkb21Bc3NpZ25lZChjbGFzcyBDb250YWluZWRBc3NlcnRpb24ge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIG5vZGUsIHRva2VucywgdGVybSwgZnJhbWUsIG5lZ2F0ZWQsIHN0YXRlbWVudCkge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gICAgdGhpcy50b2tlbnMgPSB0b2tlbnM7XG4gICAgdGhpcy50ZXJtID0gdGVybTtcbiAgICB0aGlzLmZyYW1lID0gZnJhbWU7XG4gICAgdGhpcy5uZWdhdGVkID0gbmVnYXRlZDtcbiAgICB0aGlzLnN0YXRlbWVudCA9IHN0YXRlbWVudDtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGU7XG4gIH1cblxuICBnZXRUb2tlbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5zO1xuICB9XG5cbiAgZ2V0VGVybSgpIHtcbiAgICByZXR1cm4gdGhpcy50ZXJtO1xuICB9XG5cbiAgZ2V0RnJhbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZnJhbWU7XG4gIH1cblxuICBpc05lZ2F0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMubmVnYXRlZDtcbiAgfVxuXG4gIGdldFN0YXRlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQ7XG4gIH1cblxuICB2ZXJpZnkoYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29udGFpbmVkQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBjb250YWluZWQgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgICBjb25zdCB0ZXJtVmVyaWZpZXMgPSB0aGlzLnZlcmlmeVRlcm0oYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCksXG4gICAgICAgICAgZnJhbWVWZXJpZmllcyA9IHRoaXMudmVyaWZ5RnJhbWUoYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCksXG4gICAgICAgICAgc3RhdGVtZW50VmVyaWZpZXMgPSB0aGlzLnZlcmlmeVN0YXRlbWVudChhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KVxuXG4gICAgaWYgKHRlcm1WZXJpZmllcyB8fCBmcmFtZVZlcmlmaWVzIHx8IHN0YXRlbWVudFZlcmlmaWVzKSB7XG4gICAgICBsZXQgdmVyaWZpZXNXaGVuU3RhdGVkID0gZmFsc2UsXG4gICAgICAgICAgdmVyaWZpZXNXaGVuRGVyaXZlZCA9IGZhbHNlO1xuXG4gICAgICBpZiAoc3RhdGVkKSB7XG4gICAgICAgIHZlcmlmaWVzV2hlblN0YXRlZCA9IHRoaXMudmVyaWZ5V2hlblN0YXRlZChhc3NpZ25tZW50cywgY29udGV4dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2ZXJpZmllc1doZW5EZXJpdmVkID0gdGhpcy52ZXJpZnlXaGVuRGVyaXZlZChjb250ZXh0KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHZlcmlmaWVzV2hlblN0YXRlZCB8fCB2ZXJpZmllc1doZW5EZXJpdmVkKSB7XG4gICAgICAgIHZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBjb250YWluZWQgYXNzZXJ0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllcztcbiAgfVxuXG4gIHZlcmlmeVRlcm0oYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCkge1xuICAgIGxldCB0ZXJtVmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLnRlcm0gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0aGlzLnRlcm0uZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0uLi5gKTtcblxuICAgICAgY29uc3QgdGVybVNpbXBsZSA9IHRoaXMudGVybS5pc1NpbXBsZSgpO1xuXG4gICAgICBpZiAoIXRlcm1TaW1wbGUpIHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGlzIG5vdCBzaW1wbGUuYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0ZXJtVmVyaWZpZXMgPSB0aGlzLnRlcm0udmVyaWZ5KGNvbnRleHQsICgpID0+IHtcbiAgICAgICAgICBjb25zdCB2ZXJpZmllc0FoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgIHJldHVybiB2ZXJpZmllc0FoZWFkO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGVybVZlcmlmaWVzKSB7XG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLmApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlcm1WZXJpZmllcztcbiAgfVxuXG4gIHZlcmlmeUZyYW1lKGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpIHtcbiAgICBsZXQgZnJhbWVWZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMuZnJhbWUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGZyYW1lU3RyaW5nID0gdGhpcy5mcmFtZS5nZXRTdHJpbmcoKTtcblxuICAgICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtmcmFtZVN0cmluZ30nIGZyYW1lLi4uYCk7XG5cbiAgICAgIGNvbnN0IGZyYW1lU2ltcGxlID0gdGhpcy5mcmFtZS5pc1NpbXBsZSgpO1xuXG4gICAgICBpZiAoIWZyYW1lU2ltcGxlKSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHtmcmFtZVN0cmluZ30nIGZyYW1lIGlzIG5vdCBzaW1wbGUuYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0ZWQgPSB0cnVlOyAgLy8vXG5cbiAgICAgICAgYXNzaWdubWVudHMgPSBudWxsOyAvLy9cblxuICAgICAgICBmcmFtZVZlcmlmaWVzID0gdGhpcy5mcmFtZS52ZXJpZnkoYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCk7XG5cbiAgICAgICAgaWYgKGZyYW1lVmVyaWZpZXMpIHtcbiAgICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZnJhbWVTdHJpbmd9JyBmcmFtZS5gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmcmFtZVZlcmlmaWVzO1xuICB9XG5cbiAgdmVyaWZ5U3RhdGVtZW50KGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpIHtcbiAgICBsZXQgc3RhdGVtZW50VmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLnN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gdGhpcy5zdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50Li4uYCk7XG5cbiAgICAgIHN0YXRlZCA9IHRydWU7ICAvLy9cblxuICAgICAgYXNzaWdubWVudHMgPSBudWxsOyAvLy9cblxuICAgICAgc3RhdGVtZW50VmVyaWZpZXMgPSB0aGlzLnN0YXRlbWVudC52ZXJpZnkoYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCk7XG5cbiAgICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50LmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllcztcbiAgfVxuXG4gIHZlcmlmeVdoZW5TdGF0ZWQoYXNzaWdubWVudHMsIGNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZXNXaGVuU3RhdGVkO1xuXG4gICAgY29uc3QgY29udGFpbmVkQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBzdGF0ZWQgY29udGFpbmVkIGFzc2VydGlvbi4uLmApO1xuXG4gICAgdmVyaWZpZXNXaGVuU3RhdGVkID0gdHJ1ZTtcblxuICAgIGlmICh2ZXJpZmllc1doZW5TdGF0ZWQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBzdGF0ZWQgY29udGFpbmVkIGFzc2VydGlvbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZXNXaGVuU3RhdGVkO1xuICB9XG5cbiAgdmVyaWZ5V2hlbkRlcml2ZWQoY29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllc1doZW5EZXJpdmVkO1xuXG4gICAgY29uc3QgY29udGFpbmVkQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBkZXJpdmVkIGNvbnRhaW5lZCBhc3NlcnRpb24uLi5gKTtcblxuICAgIHZlcmlmaWVzV2hlbkRlcml2ZWQgPSB2ZXJpZnlXaGVuRGVyaXZlZCh0aGlzLnRlcm0sIHRoaXMuZnJhbWUsIHRoaXMuc3RhdGVtZW50LCB0aGlzLm5lZ2F0ZWQsIGNvbnRleHQpO1xuXG4gICAgaWYgKHZlcmlmaWVzV2hlbkRlcml2ZWQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBkZXJpdmVkIGNvbnRhaW5lZCBhc3NlcnRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzV2hlbkRlcml2ZWQ7XG4gIH1cblxuICB1bmlmeUluZGVwZW5kZW50bHkoc3Vic3RpdHV0aW9ucywgY29udGV4dCkge1xuICAgIGxldCB1bmlmaWVzSW5kZXBlbmRlbnRseTtcblxuICAgIGNvbnN0IGNvbnRhaW5lZEFzc2VydGlvblN0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBjb250YWluZWQgYXNzZXJ0aW9uIGluZGVwZW5kZW50bHkuLi5gKTtcblxuICAgIGNvbnN0IGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tQ29udGV4dEFuZFRva2Vucyhjb250ZXh0LCB0aGlzLnRva2Vucyk7XG5cbiAgICBjb250ZXh0ID0gbG9jYWxDb250ZXh0OyAvLy9cblxuICAgIGNvbnN0IHRlcm0gPSB0ZXJtRnJvbVRlcm1BbmRTdWJzdGl0dXRpb25zKHRoaXMudGVybSwgc3Vic3RpdHV0aW9ucywgY29udGV4dCksXG4gICAgICAgICAgZnJhbWUgPSBmcmFtZUZyb21GcmFtZUFuZFN1YnN0aXR1dGlvbnModGhpcy5mcmFtZSwgc3Vic3RpdHV0aW9ucywgY29udGV4dCksXG4gICAgICAgICAgc3RhdGVtZW50ID0gc3RhdGVtZW50RnJvbVN0YXRlbWVudEFuZFN1YnN0aXR1dGlvbnModGhpcy5zdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGNvbnRleHQpLFxuICAgICAgICAgIHZlcmlmaWVzV2hlbkRlcml2ZWQgPSB2ZXJpZnlXaGVuRGVyaXZlZCh0ZXJtLCBmcmFtZSwgc3RhdGVtZW50LCB0aGlzLm5lZ2F0ZWQsIGNvbnRleHQpO1xuXG4gICAgdW5pZmllc0luZGVwZW5kZW50bHkgPSB2ZXJpZmllc1doZW5EZXJpdmVkOyAvLy9cblxuICAgIGlmICh1bmlmaWVzSW5kZXBlbmRlbnRseSkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7Y29udGFpbmVkQXNzZXJ0aW9uU3RyaW5nfScgY29udGFpbmVkIGFzc2VydGlvbiBpbmRlcGVuZGVudGx5LmApO1xuICAgIH1cblxuICAgIHJldHVybiB1bmlmaWVzSW5kZXBlbmRlbnRseTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJDb250YWluZWRBc3NlcnRpb25cIjtcblxuICBzdGF0aWMgZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGxldCBjb250YWluZWRBc3NlcnRpb24gPSBudWxsO1xuXG4gICAgY29uc3QgY29udGFpbmVkQXNzZXJ0aW9uTm9kZSA9IHN0YXRlbWVudE5vZGUuZ2V0Q29udGFpbmVkQXNzZXJ0aW9uTm9kZSgpO1xuXG4gICAgaWYgKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHsgVGVybSwgRnJhbWUsIFN0YXRlbWVudCB9ID0gZG9tLFxuICAgICAgICAgICAgbm9kZSA9IGNvbnRhaW5lZEFzc2VydGlvbk5vZGUsICAvLy9cbiAgICAgICAgICAgIHN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgICAgdG9rZW5zID0gY29udGV4dC5ub2RlQXNUb2tlbnMobm9kZSksXG4gICAgICAgICAgICBuZWdhdGVkID0gY29udGFpbmVkQXNzZXJ0aW9uTm9kZS5pc05lZ2F0ZWQoKSxcbiAgICAgICAgICAgIHRlcm0gPSBUZXJtLmZyb21Db250YWluZWRBc3NlcnRpb25Ob2RlKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgZnJhbWUgPSBGcmFtZS5mcm9tQ29udGFpbmVkQXNzZXJ0aW9uTm9kZShjb250YWluZWRBc3NlcnRpb25Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgIHN0YXRlbWVudCA9IFN0YXRlbWVudC5mcm9tQ29udGFpbmVkQXNzZXJ0aW9uTm9kZShjb250YWluZWRBc3NlcnRpb25Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgY29udGFpbmVkQXNzZXJ0aW9uID0gbmV3IENvbnRhaW5lZEFzc2VydGlvbihzdHJpbmcsIG5vZGUsIHRva2VucywgdGVybSwgZnJhbWUsIG5lZ2F0ZWQsIHN0YXRlbWVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRhaW5lZEFzc2VydGlvbjtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIHZlcmlmeVdoZW5EZXJpdmVkKHRlcm0sIGZyYW1lLCBzdGF0ZW1lbnQsIG5lZ2F0ZWQsIGNvbnRleHQpIHtcbiAgbGV0IHZlcmlmaWVzV2hlbkRlcml2ZWQgPSBmYWxzZTtcblxuICBpZiAoc3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgaWYgKHRlcm0gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHRlcm1Db250YWluZWQgPSBzdGF0ZW1lbnQuaXNUZXJtQ29udGFpbmVkKHRlcm0sIGNvbnRleHQpO1xuXG4gICAgICBpZiAoIW5lZ2F0ZWQgJiYgdGVybUNvbnRhaW5lZCkge1xuICAgICAgICB2ZXJpZmllc1doZW5EZXJpdmVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5lZ2F0ZWQgJiYgIXRlcm1Db250YWluZWQpIHtcbiAgICAgICAgdmVyaWZpZXNXaGVuRGVyaXZlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZyYW1lICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBmcmFtZUNvbnRhaW5lZCA9IHN0YXRlbWVudC5pc0ZyYW1lQ29udGFpbmVkKGZyYW1lLCBjb250ZXh0KTtcblxuICAgICAgaWYgKCFuZWdhdGVkICYmIGZyYW1lQ29udGFpbmVkKSB7XG4gICAgICAgIHZlcmlmaWVzV2hlbkRlcml2ZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAobmVnYXRlZCAmJiAhZnJhbWVDb250YWluZWQpIHtcbiAgICAgICAgdmVyaWZpZXNXaGVuRGVyaXZlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZlcmlmaWVzV2hlbkRlcml2ZWQ7XG59Il0sIm5hbWVzIjpbImRvbUFzc2lnbmVkIiwiQ29udGFpbmVkQXNzZXJ0aW9uIiwic3RyaW5nIiwibm9kZSIsInRva2VucyIsInRlcm0iLCJmcmFtZSIsIm5lZ2F0ZWQiLCJzdGF0ZW1lbnQiLCJnZXRTdHJpbmciLCJnZXROb2RlIiwiZ2V0VG9rZW5zIiwiZ2V0VGVybSIsImdldEZyYW1lIiwiaXNOZWdhdGVkIiwiZ2V0U3RhdGVtZW50IiwidmVyaWZ5IiwiYXNzaWdubWVudHMiLCJzdGF0ZWQiLCJjb250ZXh0IiwidmVyaWZpZXMiLCJjb250YWluZWRBc3NlcnRpb25TdHJpbmciLCJ0cmFjZSIsInRlcm1WZXJpZmllcyIsInZlcmlmeVRlcm0iLCJmcmFtZVZlcmlmaWVzIiwidmVyaWZ5RnJhbWUiLCJzdGF0ZW1lbnRWZXJpZmllcyIsInZlcmlmeVN0YXRlbWVudCIsInZlcmlmaWVzV2hlblN0YXRlZCIsInZlcmlmaWVzV2hlbkRlcml2ZWQiLCJ2ZXJpZnlXaGVuU3RhdGVkIiwidmVyaWZ5V2hlbkRlcml2ZWQiLCJkZWJ1ZyIsInRlcm1TdHJpbmciLCJ0ZXJtU2ltcGxlIiwiaXNTaW1wbGUiLCJ2ZXJpZmllc0FoZWFkIiwiZnJhbWVTdHJpbmciLCJmcmFtZVNpbXBsZSIsInN0YXRlbWVudFN0cmluZyIsInVuaWZ5SW5kZXBlbmRlbnRseSIsInN1YnN0aXR1dGlvbnMiLCJ1bmlmaWVzSW5kZXBlbmRlbnRseSIsImxvY2FsQ29udGV4dCIsIkxvY2FsQ29udGV4dCIsImZyb21Db250ZXh0QW5kVG9rZW5zIiwidGVybUZyb21UZXJtQW5kU3Vic3RpdHV0aW9ucyIsImZyYW1lRnJvbUZyYW1lQW5kU3Vic3RpdHV0aW9ucyIsInN0YXRlbWVudEZyb21TdGF0ZW1lbnRBbmRTdWJzdGl0dXRpb25zIiwiZnJvbVN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnROb2RlIiwiY29udGFpbmVkQXNzZXJ0aW9uIiwiY29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsImdldENvbnRhaW5lZEFzc2VydGlvbk5vZGUiLCJUZXJtIiwiZG9tIiwiRnJhbWUiLCJTdGF0ZW1lbnQiLCJub2RlQXNTdHJpbmciLCJub2RlQXNUb2tlbnMiLCJmcm9tQ29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsIm5hbWUiLCJ0ZXJtQ29udGFpbmVkIiwiaXNUZXJtQ29udGFpbmVkIiwiZnJhbWVDb250YWluZWQiLCJpc0ZyYW1lQ29udGFpbmVkIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQUE7OzsyREFOZ0I7NERBQ1M7NkJBRzRGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUVySCxXQUFlQSxJQUFBQSxnQkFBVyx1Q0FBQzthQUFNQyxtQkFDbkJDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLFNBQVM7Z0NBRGxDUDtRQUU3QixJQUFJ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