occam-verify-cli 1.0.457 → 1.0.473

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 (161) hide show
  1. package/lib/constants.js +13 -1
  2. package/lib/context/ephemeral.js +270 -0
  3. package/lib/context/file.js +102 -66
  4. package/lib/context/liminal.js +120 -0
  5. package/lib/context/literal.js +92 -0
  6. package/lib/context/nominal.js +15 -1
  7. package/lib/context/release.js +66 -7
  8. package/lib/context/scoped.js +48 -40
  9. package/lib/context/synthetic.js +133 -0
  10. package/lib/element/assertion/contained.js +66 -66
  11. package/lib/element/assertion/defined.js +32 -32
  12. package/lib/element/assertion/property.js +39 -39
  13. package/lib/element/assertion/satisfies.js +22 -22
  14. package/lib/element/assumption.js +5 -8
  15. package/lib/element/conclusion.js +14 -13
  16. package/lib/element/constructor.js +2 -2
  17. package/lib/element/deduction.js +14 -13
  18. package/lib/element/derivation.js +3 -3
  19. package/lib/element/equality.js +5 -5
  20. package/lib/element/equivalence.js +112 -107
  21. package/lib/element/equivalences.js +24 -10
  22. package/lib/element/error.js +3 -3
  23. package/lib/element/frame.js +38 -21
  24. package/lib/element/hypothesis.js +2 -2
  25. package/lib/element/judgement.js +6 -5
  26. package/lib/element/metaType.js +1 -2
  27. package/lib/element/metavariable.js +46 -35
  28. package/lib/element/parameter.js +13 -5
  29. package/lib/element/procedureCall.js +16 -16
  30. package/lib/element/proof.js +14 -13
  31. package/lib/element/proofAssertion/premise.js +41 -30
  32. package/lib/element/proofAssertion/step.js +39 -35
  33. package/lib/element/proofAssertion/supposition.js +43 -32
  34. package/lib/element/proofAssertion.js +19 -5
  35. package/lib/element/propertyRelation.js +2 -2
  36. package/lib/element/reference.js +50 -9
  37. package/lib/element/rule.js +26 -28
  38. package/lib/element/section.js +2 -2
  39. package/lib/element/signature.js +9 -6
  40. package/lib/element/statement.js +44 -31
  41. package/lib/element/subproof.js +18 -17
  42. package/lib/element/substitution/frame.js +83 -46
  43. package/lib/element/substitution/reference.js +101 -19
  44. package/lib/element/substitution/statement.js +122 -75
  45. package/lib/element/substitution/term.js +93 -57
  46. package/lib/element/substitution.js +20 -69
  47. package/lib/element/substitutions.js +49 -34
  48. package/lib/element/term.js +30 -21
  49. package/lib/element/topLevelAssertion/axiom.js +8 -6
  50. package/lib/element/topLevelAssertion/conjecture.js +4 -4
  51. package/lib/element/topLevelAssertion/lemma.js +4 -4
  52. package/lib/element/topLevelAssertion/theorem.js +2 -2
  53. package/lib/element/topLevelAssertion.js +30 -23
  54. package/lib/element/topLevelMetaAssertion/metaLemma.js +2 -2
  55. package/lib/element/topLevelMetaAssertion/metatheorem.js +2 -2
  56. package/lib/element/topLevelMetaAssertion.js +16 -12
  57. package/lib/element/variable.js +30 -22
  58. package/lib/index.js +3 -3
  59. package/lib/main.js +3 -3
  60. package/lib/node/frame.js +2 -2
  61. package/lib/node/metavariable.js +4 -4
  62. package/lib/node/parameter.js +28 -7
  63. package/lib/node/substitution/frame.js +9 -31
  64. package/lib/node/substitution/reference.js +137 -0
  65. package/lib/node/substitution/statement.js +9 -31
  66. package/lib/node/substitution/term.js +9 -23
  67. package/lib/nonTerminalNodeMap.js +3 -2
  68. package/lib/process/instantiate.js +2 -14
  69. package/lib/process/unify.js +5 -5
  70. package/lib/tokenTypes.js +22 -0
  71. package/lib/utilities/context.js +54 -19
  72. package/lib/utilities/element.js +161 -336
  73. package/lib/utilities/instance.js +4 -4
  74. package/lib/utilities/string.js +18 -4
  75. package/lib/utilities/unification.js +24 -18
  76. package/lib/utilities/validation.js +31 -31
  77. package/package.json +2 -2
  78. package/src/constants.js +12 -0
  79. package/src/context/{transient.js → ephemeral.js} +15 -112
  80. package/src/context/file.js +66 -67
  81. package/src/context/liminal.js +67 -0
  82. package/src/context/{fragment.js → literal.js} +17 -4
  83. package/src/context/nominal.js +12 -0
  84. package/src/context/release.js +44 -6
  85. package/src/context/scoped.js +41 -31
  86. package/src/context/synthetic.js +60 -0
  87. package/src/element/assertion/contained.js +49 -47
  88. package/src/element/assertion/defined.js +29 -27
  89. package/src/element/assertion/property.js +35 -35
  90. package/src/element/assertion/satisfies.js +19 -18
  91. package/src/element/assumption.js +4 -10
  92. package/src/element/conclusion.js +16 -19
  93. package/src/element/constructor.js +1 -1
  94. package/src/element/deduction.js +16 -21
  95. package/src/element/derivation.js +2 -2
  96. package/src/element/equality.js +4 -4
  97. package/src/element/equivalence.js +115 -135
  98. package/src/element/equivalences.js +9 -7
  99. package/src/element/error.js +4 -2
  100. package/src/element/frame.js +50 -23
  101. package/src/element/hypothesis.js +1 -1
  102. package/src/element/judgement.js +9 -4
  103. package/src/element/metaType.js +0 -1
  104. package/src/element/metavariable.js +54 -53
  105. package/src/element/parameter.js +10 -5
  106. package/src/element/procedureCall.js +20 -18
  107. package/src/element/proof.js +14 -16
  108. package/src/element/proofAssertion/premise.js +46 -42
  109. package/src/element/proofAssertion/step.js +45 -40
  110. package/src/element/proofAssertion/supposition.js +56 -45
  111. package/src/element/proofAssertion.js +23 -5
  112. package/src/element/propertyRelation.js +1 -1
  113. package/src/element/reference.js +64 -16
  114. package/src/element/rule.js +31 -37
  115. package/src/element/section.js +1 -1
  116. package/src/element/signature.js +8 -8
  117. package/src/element/statement.js +51 -40
  118. package/src/element/subproof.js +16 -18
  119. package/src/element/substitution/frame.js +99 -42
  120. package/src/element/substitution/reference.js +120 -20
  121. package/src/element/substitution/statement.js +160 -89
  122. package/src/element/substitution/term.js +104 -63
  123. package/src/element/substitution.js +16 -58
  124. package/src/element/substitutions.js +43 -41
  125. package/src/element/term.js +37 -32
  126. package/src/element/topLevelAssertion/axiom.js +8 -6
  127. package/src/element/topLevelAssertion/conjecture.js +1 -2
  128. package/src/element/topLevelAssertion/lemma.js +2 -3
  129. package/src/element/topLevelAssertion/theorem.js +1 -1
  130. package/src/element/topLevelAssertion.js +31 -27
  131. package/src/element/topLevelMetaAssertion/metaLemma.js +1 -2
  132. package/src/element/topLevelMetaAssertion/metatheorem.js +1 -2
  133. package/src/element/topLevelMetaAssertion.js +15 -13
  134. package/src/element/variable.js +30 -31
  135. package/src/index.js +2 -1
  136. package/src/main.js +2 -1
  137. package/src/node/frame.js +1 -1
  138. package/src/node/metavariable.js +3 -3
  139. package/src/node/parameter.js +32 -5
  140. package/src/node/substitution/frame.js +6 -32
  141. package/src/node/substitution/reference.js +38 -0
  142. package/src/node/substitution/statement.js +6 -32
  143. package/src/node/substitution/term.js +6 -22
  144. package/src/nonTerminalNodeMap.js +3 -0
  145. package/src/process/instantiate.js +0 -8
  146. package/src/process/unify.js +4 -4
  147. package/src/tokenTypes.js +4 -0
  148. package/src/utilities/context.js +43 -17
  149. package/src/utilities/element.js +187 -401
  150. package/src/utilities/instance.js +3 -3
  151. package/src/utilities/string.js +21 -5
  152. package/src/utilities/unification.js +26 -23
  153. package/src/utilities/validation.js +47 -47
  154. package/lib/context/fragment.js +0 -77
  155. package/lib/context/transient.js +0 -371
  156. package/lib/log.js +0 -150
  157. package/lib/utilities/fragment.js +0 -23
  158. package/lib/utilities/node.js +0 -71
  159. package/src/log.js +0 -118
  160. package/src/utilities/fragment.js +0 -11
  161. package/src/utilities/node.js +0 -85
@@ -1,371 +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 TransientContext;
9
- }
10
- });
11
- var _necessary = require("necessary");
12
- var _context = require("../utilities/context");
13
- function _array_like_to_array(arr, len) {
14
- if (len == null || len > arr.length) len = arr.length;
15
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
16
- return arr2;
17
- }
18
- function _array_without_holes(arr) {
19
- if (Array.isArray(arr)) return _array_like_to_array(arr);
20
- }
21
- function _class_call_check(instance, Constructor) {
22
- if (!(instance instanceof Constructor)) {
23
- throw new TypeError("Cannot call a class as a function");
24
- }
25
- }
26
- function _defineProperties(target, props) {
27
- for(var i = 0; i < props.length; i++){
28
- var descriptor = props[i];
29
- descriptor.enumerable = descriptor.enumerable || false;
30
- descriptor.configurable = true;
31
- if ("value" in descriptor) descriptor.writable = true;
32
- Object.defineProperty(target, descriptor.key, descriptor);
33
- }
34
- }
35
- function _create_class(Constructor, protoProps, staticProps) {
36
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
37
- if (staticProps) _defineProperties(Constructor, staticProps);
38
- return Constructor;
39
- }
40
- function _iterable_to_array(iter) {
41
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
42
- }
43
- function _non_iterable_spread() {
44
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
45
- }
46
- function _to_consumable_array(arr) {
47
- return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
48
- }
49
- function _unsupported_iterable_to_array(o, minLen) {
50
- if (!o) return;
51
- if (typeof o === "string") return _array_like_to_array(o, minLen);
52
- var n = Object.prototype.toString.call(o).slice(8, -1);
53
- if (n === "Object" && o.constructor) n = o.constructor.name;
54
- if (n === "Map" || n === "Set") return Array.from(n);
55
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
56
- }
57
- var extract = _necessary.arrayUtilities.extract, compress = _necessary.arrayUtilities.compress;
58
- var TransientContext = /*#__PURE__*/ function() {
59
- function TransientContext(context, terms, frames, statements, assertions, references, substitutions) {
60
- _class_call_check(this, TransientContext);
61
- this.context = context;
62
- this.terms = terms;
63
- this.frames = frames;
64
- this.statements = statements;
65
- this.assertions = assertions;
66
- this.references = references;
67
- this.substitutions = substitutions;
68
- return (0, _context.chainContext)(this);
69
- }
70
- _create_class(TransientContext, [
71
- {
72
- key: "getContext",
73
- value: function getContext() {
74
- return this.context;
75
- }
76
- },
77
- {
78
- key: "getTerms",
79
- value: function getTerms() {
80
- return this.terms;
81
- }
82
- },
83
- {
84
- key: "getFrames",
85
- value: function getFrames() {
86
- return this.frames;
87
- }
88
- },
89
- {
90
- key: "getStatements",
91
- value: function getStatements() {
92
- return this.statements;
93
- }
94
- },
95
- {
96
- key: "getAssertions",
97
- value: function getAssertions() {
98
- return this.assertions;
99
- }
100
- },
101
- {
102
- key: "getReferences",
103
- value: function getReferences() {
104
- return this.references;
105
- }
106
- },
107
- {
108
- key: "getSubstitutions",
109
- value: function getSubstitutions() {
110
- return this.substitutions;
111
- }
112
- },
113
- {
114
- key: "addTerm",
115
- value: function addTerm(term) {
116
- var termA = term, context = this, termString = term.getString();
117
- extract(this.terms, function(term) {
118
- var termB = term, termAEqualToTermB = termA.isEqualTo(termB);
119
- if (termAEqualToTermB) {
120
- return true;
121
- }
122
- });
123
- context.trace("ADded the '".concat(termString, "' term to the context."));
124
- this.terms.push(term);
125
- }
126
- },
127
- {
128
- key: "addFrame",
129
- value: function addFrame(frame) {
130
- var frameA = frame, context = this, frameString = frame.getString();
131
- extract(this.frames, function(frame) {
132
- var frameB = frame, frameAEqualToFrameB = frameA.isEqualTo(frameB);
133
- if (frameAEqualToFrameB) {
134
- return true;
135
- }
136
- });
137
- context.trace("Added the '".concat(frameString, "' frame to the context."));
138
- this.frames.push(frame);
139
- }
140
- },
141
- {
142
- key: "addStatement",
143
- value: function addStatement(statement) {
144
- var context = this, statementA = statement, statementString = statement.getString();
145
- extract(this.statements, function(statement) {
146
- var statementB = statement, statementAEqualToFrameB = statementA.isEqualTo(statementB);
147
- if (statementAEqualToFrameB) {
148
- return true;
149
- }
150
- });
151
- context.trace("Added the '".concat(statementString, "' statement to the context."));
152
- this.statements.push(statement);
153
- }
154
- },
155
- {
156
- key: "addAssertion",
157
- value: function addAssertion(assertion) {
158
- var context = this, assertionA = assertion, assertionString = assertion.getString();
159
- extract(this.assertions, function(assertion) {
160
- var assertionB = assertion, assertionAEqualToAssertionB = assertionA.isEqualTo(assertionB);
161
- if (assertionAEqualToAssertionB) {
162
- return true;
163
- }
164
- });
165
- context.trace("Added the '".concat(assertionString, "' assertion to the context."));
166
- this.assertions.push(assertion);
167
- }
168
- },
169
- {
170
- key: "addReference",
171
- value: function addReference(reference) {
172
- var context = this, referenceA = reference, referenceString = reference.getString();
173
- extract(this.references, function(reference) {
174
- var referenceB = reference, referenceAEqualToReferenceB = referenceA.isEqualTo(referenceB);
175
- if (referenceAEqualToReferenceB) {
176
- return true;
177
- }
178
- });
179
- context.trace("Added the '".concat(referenceString, "' reference to the context."));
180
- this.references.push(reference);
181
- }
182
- },
183
- {
184
- key: "addSubstitution",
185
- value: function addSubstitution(substitution) {
186
- var context = this, substitutionA = substitution, substitutionString = substitution.getString();
187
- extract(this.substitutions, function(substitution) {
188
- var substitutionB = substitution, substituionAEqualToSubstitutionB = substitutionA.isEqualTo(substitutionB);
189
- if (substituionAEqualToSubstitutionB) {
190
- return true;
191
- }
192
- });
193
- context.trace("Added the '".concat(substitutionString, "' substitution to the context."));
194
- this.substitutions.push(substitution);
195
- }
196
- },
197
- {
198
- key: "findTermByTermNode",
199
- value: function findTermByTermNode(termNode) {
200
- var term = this.terms.find(function(term) {
201
- var termNodeMatches = term.matchNode(termNode);
202
- if (termNodeMatches) {
203
- return true;
204
- }
205
- }) || null;
206
- return term;
207
- }
208
- },
209
- {
210
- key: "findFrameByFrameNode",
211
- value: function findFrameByFrameNode(frameNode) {
212
- var frame = this.frames.find(function(frame) {
213
- var frameNodeMatches = frame.matchNode(frameNode);
214
- if (frameNodeMatches) {
215
- return true;
216
- }
217
- }) || null;
218
- return frame;
219
- }
220
- },
221
- {
222
- key: "findStatementByStatementNode",
223
- value: function findStatementByStatementNode(statementNode) {
224
- var statement = this.statements.find(function(statement) {
225
- var statementNodeMatches = statement.matchNode(statementNode);
226
- if (statementNodeMatches) {
227
- return true;
228
- }
229
- }) || null;
230
- return statement;
231
- }
232
- },
233
- {
234
- key: "findAssertionByAssertionNode",
235
- value: function findAssertionByAssertionNode(assertionNode) {
236
- var assertion = this.assertions.find(function(assertion) {
237
- var assertionNodeMatches = assertion.matchNode(assertionNode);
238
- if (assertionNodeMatches) {
239
- return true;
240
- }
241
- }) || null;
242
- return assertion;
243
- }
244
- },
245
- {
246
- key: "findReferenceByMetavariableNode",
247
- value: function findReferenceByMetavariableNode(metavariableNode) {
248
- var reference = this.references.find(function(reference) {
249
- var referenceMatcheMetavariableNode = reference.matchMetavariableNode(metavariableNode);
250
- if (referenceMatcheMetavariableNode) {
251
- return true;
252
- }
253
- }) || null;
254
- return reference;
255
- }
256
- },
257
- {
258
- key: "findSubstitutionBySubstitutionNode",
259
- value: function findSubstitutionBySubstitutionNode(substitutionNode) {
260
- var substitution = this.substitutions.find(function(substitution) {
261
- var substitutionNodeMatches = substitution.matchNode(substitutionNode);
262
- if (substitutionNodeMatches) {
263
- return true;
264
- }
265
- }) || null;
266
- return substitution;
267
- }
268
- },
269
- {
270
- key: "getVariables",
271
- value: function getVariables() {
272
- var nested = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
273
- return this.context.getVariables(nested);
274
- }
275
- },
276
- {
277
- key: "addVariable",
278
- value: function addVariable(variable) {
279
- var nested = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
280
- return this.context.addVariable(variable, nested);
281
- }
282
- },
283
- {
284
- key: "findVariableByVariableIdentifier",
285
- value: function findVariableByVariableIdentifier(variableIdentifier) {
286
- var nested = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
287
- return this.context.findVariableByVariableIdentifier(variableIdentifier, nested);
288
- }
289
- },
290
- {
291
- key: "isTypePresentByTypeName",
292
- value: function isTypePresentByTypeName(typeName) {
293
- var includeRelease = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true, includeDependencies = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
294
- return this.context.isTypePresentByTypeName(typeName, includeRelease, includeDependencies);
295
- }
296
- },
297
- {
298
- key: "isVariablePresentByVariableIdentifier",
299
- value: function isVariablePresentByVariableIdentifier(variableIdentifier) {
300
- var nested = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
301
- return this.context.findVariableByVariableIdentifier(variableIdentifier, nested);
302
- }
303
- },
304
- {
305
- key: "merge",
306
- value: function merge(context) {
307
- var terms = context.getTerms(), frames = context.getFrames(), statements = context.getStatements(), assertions = context.getAssertions(), references = context.getReferences(), substitutions = context.getSubstitutions();
308
- this.terms = _to_consumable_array(this.terms).concat(_to_consumable_array(terms));
309
- this.frames = _to_consumable_array(this.frames).concat(_to_consumable_array(frames));
310
- this.statements = _to_consumable_array(this.statements).concat(_to_consumable_array(statements));
311
- this.assertions = _to_consumable_array(this.assertions).concat(_to_consumable_array(assertions));
312
- this.references = _to_consumable_array(this.references).concat(_to_consumable_array(references));
313
- this.substitutions = _to_consumable_array(this.substitutions).concat(_to_consumable_array(substitutions));
314
- compress(this.terms, function(termA, termB) {
315
- var termAEqualToTermB = termA.isEqualTo(termB);
316
- if (!termAEqualToTermB) {
317
- return true;
318
- }
319
- });
320
- compress(this.frames, function(frameA, frameB) {
321
- var frameAEqualToFrameB = frameA.isEqualTo(frameB);
322
- if (!frameAEqualToFrameB) {
323
- return true;
324
- }
325
- });
326
- compress(this.statements, function(statementA, statementB) {
327
- var statementAEqualToStatementB = statementA.isEqualTo(statementB);
328
- if (!statementAEqualToStatementB) {
329
- return true;
330
- }
331
- });
332
- compress(this.assertions, function(assertionA, assertionB) {
333
- var assertionAEqualToAssertionB = assertionA.isEqualTo(assertionB);
334
- if (!assertionAEqualToAssertionB) {
335
- return true;
336
- }
337
- });
338
- compress(this.references, function(referenceA, referenceB) {
339
- var referenceAEqualToReferenceB = referenceA.isEqualTo(referenceB);
340
- if (!referenceAEqualToReferenceB) {
341
- return true;
342
- }
343
- });
344
- compress(this.substitutions, function(substitutionA, substitutionB) {
345
- var substitutionAEqualToSubstitutionB = substitutionA.isEqualTo(substitutionB);
346
- if (!substitutionAEqualToSubstitutionB) {
347
- return true;
348
- }
349
- });
350
- }
351
- }
352
- ], [
353
- {
354
- key: "fromNothing",
355
- value: function fromNothing(context) {
356
- var terms = [], frames = [], statements = [], assertions = [], references = [], substitutions = [], transientContext = new TransientContext(context, terms, frames, statements, assertions, references, substitutions);
357
- return transientContext;
358
- }
359
- },
360
- {
361
- key: "fromTermsAndFrames",
362
- value: function fromTermsAndFrames(terms, frames, context) {
363
- var statements = [], assertions = [], references = [], substitutions = [], transientContext = new TransientContext(context, terms, frames, statements, assertions, references, substitutions);
364
- return transientContext;
365
- }
366
- }
367
- ]);
368
- return TransientContext;
369
- }();
370
-
371
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L3RyYW5zaWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCB7IGNoYWluQ29udGV4dCB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuXG5jb25zdCB7IGV4dHJhY3QsIGNvbXByZXNzIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVHJhbnNpZW50Q29udGV4dCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHRlcm1zLCBmcmFtZXMsIHN0YXRlbWVudHMsIGFzc2VydGlvbnMsIHJlZmVyZW5jZXMsIHN1YnN0aXR1dGlvbnMpIHtcbiAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICAgIHRoaXMudGVybXMgPSB0ZXJtcztcbiAgICB0aGlzLmZyYW1lcyA9IGZyYW1lcztcbiAgICB0aGlzLnN0YXRlbWVudHMgPSBzdGF0ZW1lbnRzO1xuICAgIHRoaXMuYXNzZXJ0aW9ucyA9IGFzc2VydGlvbnM7XG4gICAgdGhpcy5yZWZlcmVuY2VzID0gcmVmZXJlbmNlcztcbiAgICB0aGlzLnN1YnN0aXR1dGlvbnMgPSBzdWJzdGl0dXRpb25zO1xuXG4gICAgcmV0dXJuIGNoYWluQ29udGV4dCh0aGlzKTtcbiAgfVxuXG4gIGdldENvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dDtcbiAgfVxuXG4gIGdldFRlcm1zKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm1zO1xuICB9XG5cbiAgZ2V0RnJhbWVzKCkge1xuICAgIHJldHVybiB0aGlzLmZyYW1lcztcbiAgfVxuXG4gIGdldFN0YXRlbWVudHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50cztcbiAgfVxuXG4gIGdldEFzc2VydGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXNzZXJ0aW9ucztcbiAgfVxuXG4gIGdldFJlZmVyZW5jZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlcztcbiAgfVxuXG4gIGdldFN1YnN0aXR1dGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3Vic3RpdHV0aW9ucztcbiAgfVxuXG4gIGFkZFRlcm0odGVybSkge1xuICAgIGNvbnN0IHRlcm1BID0gdGVybSwgLy8vXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMsIC8vL1xuICAgICAgICAgIHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpO1xuXG4gICAgZXh0cmFjdCh0aGlzLnRlcm1zLCAodGVybSkgPT4ge1xuICAgICAgY29uc3QgdGVybUIgPSB0ZXJtLCAvLy9cbiAgICAgICAgICAgIHRlcm1BRXF1YWxUb1Rlcm1CID0gdGVybUEuaXNFcXVhbFRvKHRlcm1CKTtcblxuICAgICAgaWYgKHRlcm1BRXF1YWxUb1Rlcm1CKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29udGV4dC50cmFjZShgQURkZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHRvIHRoZSBjb250ZXh0LmApO1xuXG4gICAgdGhpcy50ZXJtcy5wdXNoKHRlcm0pO1xuICB9XG5cbiAgYWRkRnJhbWUoZnJhbWUpIHtcbiAgICBjb25zdCBmcmFtZUEgPSBmcmFtZSwgLy8vXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMsIC8vL1xuICAgICAgICAgIGZyYW1lU3RyaW5nID0gZnJhbWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBleHRyYWN0KHRoaXMuZnJhbWVzLCAoZnJhbWUpID0+IHtcbiAgICAgIGNvbnN0IGZyYW1lQiA9IGZyYW1lLCAvLy9cbiAgICAgICAgICAgIGZyYW1lQUVxdWFsVG9GcmFtZUIgPSBmcmFtZUEuaXNFcXVhbFRvKGZyYW1lQik7XG5cbiAgICAgIGlmIChmcmFtZUFFcXVhbFRvRnJhbWVCKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29udGV4dC50cmFjZShgQWRkZWQgdGhlICcke2ZyYW1lU3RyaW5nfScgZnJhbWUgdG8gdGhlIGNvbnRleHQuYCk7XG5cbiAgICB0aGlzLmZyYW1lcy5wdXNoKGZyYW1lKTtcbiAgfVxuXG4gIGFkZFN0YXRlbWVudChzdGF0ZW1lbnQpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcywgLy8vXG4gICAgICAgICAgc3RhdGVtZW50QSA9IHN0YXRlbWVudCwgLy8vXG4gICAgICAgICAgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgZXh0cmFjdCh0aGlzLnN0YXRlbWVudHMsIChzdGF0ZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudEIgPSBzdGF0ZW1lbnQsIC8vL1xuICAgICAgICAgICAgc3RhdGVtZW50QUVxdWFsVG9GcmFtZUIgPSBzdGF0ZW1lbnRBLmlzRXF1YWxUbyhzdGF0ZW1lbnRCKTtcblxuICAgICAgaWYgKHN0YXRlbWVudEFFcXVhbFRvRnJhbWVCKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29udGV4dC50cmFjZShgQWRkZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB0byB0aGUgY29udGV4dC5gKTtcblxuICAgIHRoaXMuc3RhdGVtZW50cy5wdXNoKHN0YXRlbWVudCk7XG4gIH1cblxuICBhZGRBc3NlcnRpb24oYXNzZXJ0aW9uKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMsIC8vL1xuICAgICAgICAgIGFzc2VydGlvbkEgPSBhc3NlcnRpb24sIC8vL1xuICAgICAgICAgIGFzc2VydGlvblN0cmluZyA9IGFzc2VydGlvbi5nZXRTdHJpbmcoKTtcblxuICAgIGV4dHJhY3QodGhpcy5hc3NlcnRpb25zLCAoYXNzZXJ0aW9uKSA9PiB7XG4gICAgICBjb25zdCBhc3NlcnRpb25CID0gYXNzZXJ0aW9uLCAvLy9cbiAgICAgICAgICAgIGFzc2VydGlvbkFFcXVhbFRvQXNzZXJ0aW9uQiA9IGFzc2VydGlvbkEuaXNFcXVhbFRvKGFzc2VydGlvbkIpO1xuXG4gICAgICBpZiAoYXNzZXJ0aW9uQUVxdWFsVG9Bc3NlcnRpb25CKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29udGV4dC50cmFjZShgQWRkZWQgdGhlICcke2Fzc2VydGlvblN0cmluZ30nIGFzc2VydGlvbiB0byB0aGUgY29udGV4dC5gKTtcblxuICAgIHRoaXMuYXNzZXJ0aW9ucy5wdXNoKGFzc2VydGlvbik7XG4gIH1cblxuICBhZGRSZWZlcmVuY2UocmVmZXJlbmNlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMsIC8vL1xuICAgICAgICAgIHJlZmVyZW5jZUEgPSByZWZlcmVuY2UsIC8vL1xuICAgICAgICAgIHJlZmVyZW5jZVN0cmluZyA9IHJlZmVyZW5jZS5nZXRTdHJpbmcoKTtcblxuICAgIGV4dHJhY3QodGhpcy5yZWZlcmVuY2VzLCAocmVmZXJlbmNlKSA9PiB7XG4gICAgICBjb25zdCByZWZlcmVuY2VCID0gcmVmZXJlbmNlLCAvLy9cbiAgICAgICAgICAgIHJlZmVyZW5jZUFFcXVhbFRvUmVmZXJlbmNlQiA9IHJlZmVyZW5jZUEuaXNFcXVhbFRvKHJlZmVyZW5jZUIpO1xuXG4gICAgICBpZiAocmVmZXJlbmNlQUVxdWFsVG9SZWZlcmVuY2VCKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29udGV4dC50cmFjZShgQWRkZWQgdGhlICcke3JlZmVyZW5jZVN0cmluZ30nIHJlZmVyZW5jZSB0byB0aGUgY29udGV4dC5gKTtcblxuICAgIHRoaXMucmVmZXJlbmNlcy5wdXNoKHJlZmVyZW5jZSk7XG4gIH1cblxuICBhZGRTdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMsIC8vL1xuICAgICAgICAgIHN1YnN0aXR1dGlvbkEgPSBzdWJzdGl0dXRpb24sIC8vL1xuICAgICAgICAgIHN1YnN0aXR1dGlvblN0cmluZyA9IHN1YnN0aXR1dGlvbi5nZXRTdHJpbmcoKTtcblxuICAgIGV4dHJhY3QodGhpcy5zdWJzdGl0dXRpb25zLCAoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25CID0gc3Vic3RpdHV0aW9uLCAvLy9cbiAgICAgICAgICAgIHN1YnN0aXR1aW9uQUVxdWFsVG9TdWJzdGl0dXRpb25CID0gc3Vic3RpdHV0aW9uQS5pc0VxdWFsVG8oc3Vic3RpdHV0aW9uQik7XG5cbiAgICAgIGlmIChzdWJzdGl0dWlvbkFFcXVhbFRvU3Vic3RpdHV0aW9uQikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnRleHQudHJhY2UoYEFkZGVkIHRoZSAnJHtzdWJzdGl0dXRpb25TdHJpbmd9JyBzdWJzdGl0dXRpb24gdG8gdGhlIGNvbnRleHQuYCk7XG5cbiAgICB0aGlzLnN1YnN0aXR1dGlvbnMucHVzaChzdWJzdGl0dXRpb24pO1xuICB9XG5cbiAgZmluZFRlcm1CeVRlcm1Ob2RlKHRlcm1Ob2RlKSB7XG4gICAgY29uc3QgdGVybSA9IHRoaXMudGVybXMuZmluZCgodGVybSkgPT4ge1xuICAgICAgY29uc3QgdGVybU5vZGVNYXRjaGVzID0gdGVybS5tYXRjaE5vZGUodGVybU5vZGUpO1xuXG4gICAgICBpZiAodGVybU5vZGVNYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pIHx8IG51bGw7XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIGZpbmRGcmFtZUJ5RnJhbWVOb2RlKGZyYW1lTm9kZSkge1xuICAgIGNvbnN0IGZyYW1lID0gdGhpcy5mcmFtZXMuZmluZCgoZnJhbWUpID0+IHtcbiAgICAgIGNvbnN0IGZyYW1lTm9kZU1hdGNoZXMgPSBmcmFtZS5tYXRjaE5vZGUoZnJhbWVOb2RlKTtcblxuICAgICAgaWYgKGZyYW1lTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiBmcmFtZTtcbiAgfVxuXG4gIGZpbmRTdGF0ZW1lbnRCeVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSkge1xuICAgIGNvbnN0IHN0YXRlbWVudCA9IHRoaXMuc3RhdGVtZW50cy5maW5kKChzdGF0ZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudE5vZGVNYXRjaGVzID0gc3RhdGVtZW50Lm1hdGNoTm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgaWYgKHN0YXRlbWVudE5vZGVNYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pIHx8IG51bGw7XG5cbiAgICByZXR1cm4gc3RhdGVtZW50O1xuICB9XG5cbiAgZmluZEFzc2VydGlvbkJ5QXNzZXJ0aW9uTm9kZShhc3NlcnRpb25Ob2RlKSB7XG4gICAgY29uc3QgYXNzZXJ0aW9uID0gdGhpcy5hc3NlcnRpb25zLmZpbmQoKGFzc2VydGlvbikgPT4ge1xuICAgICAgY29uc3QgYXNzZXJ0aW9uTm9kZU1hdGNoZXMgPSBhc3NlcnRpb24ubWF0Y2hOb2RlKGFzc2VydGlvbk5vZGUpO1xuXG4gICAgICBpZiAoYXNzZXJ0aW9uTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiBhc3NlcnRpb247XG4gIH1cblxuICBmaW5kUmVmZXJlbmNlQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpIHtcbiAgICBjb25zdCByZWZlcmVuY2UgPSB0aGlzLnJlZmVyZW5jZXMuZmluZCgocmVmZXJlbmNlKSA9PiB7XG4gICAgICBjb25zdCByZWZlcmVuY2VNYXRjaGVNZXRhdmFyaWFibGVOb2RlID0gcmVmZXJlbmNlLm1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgICAgaWYgKHJlZmVyZW5jZU1hdGNoZU1ldGF2YXJpYWJsZU5vZGUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiByZWZlcmVuY2U7XG4gIH1cblxuICBmaW5kU3Vic3RpdHV0aW9uQnlTdWJzdGl0dXRpb25Ob2RlKHN1YnN0aXR1dGlvbk5vZGUpIHtcbiAgICBjb25zdCBzdWJzdGl0dXRpb24gPSB0aGlzLnN1YnN0aXR1dGlvbnMuZmluZCgoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25Ob2RlTWF0Y2hlcyA9IHN1YnN0aXR1dGlvbi5tYXRjaE5vZGUoc3Vic3RpdHV0aW9uTm9kZSk7XG5cbiAgICAgIGlmIChzdWJzdGl0dXRpb25Ob2RlTWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbjtcbiAgfVxuXG4gIGdldFZhcmlhYmxlcyhuZXN0ZWQgPSB0cnVlKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZ2V0VmFyaWFibGVzKG5lc3RlZCk7IH1cblxuICBhZGRWYXJpYWJsZSh2YXJpYWJsZSwgbmVzdGVkID0gdHJ1ZSkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmFkZFZhcmlhYmxlKHZhcmlhYmxlLCBuZXN0ZWQpOyB9XG5cbiAgZmluZFZhcmlhYmxlQnlWYXJpYWJsZUlkZW50aWZpZXIodmFyaWFibGVJZGVudGlmaWVyLCBuZXN0ZWQgPSB0cnVlKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZUlkZW50aWZpZXIodmFyaWFibGVJZGVudGlmaWVyLCBuZXN0ZWQpOyB9XG5cbiAgaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUodHlwZU5hbWUsIGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSwgaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5pc1R5cGVQcmVzZW50QnlUeXBlTmFtZSh0eXBlTmFtZSwgaW5jbHVkZVJlbGVhc2UsIGluY2x1ZGVEZXBlbmRlbmNpZXMpOyB9XG5cbiAgaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlSWRlbnRpZmllcih2YXJpYWJsZUlkZW50aWZpZXIsIG5lc3RlZCA9IHRydWUpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlSWRlbnRpZmllcih2YXJpYWJsZUlkZW50aWZpZXIsIG5lc3RlZCk7IH1cblxuICBtZXJnZShjb250ZXh0KSB7XG4gICAgY29uc3QgdGVybXMgPSBjb250ZXh0LmdldFRlcm1zKCksXG4gICAgICAgICAgZnJhbWVzID0gY29udGV4dC5nZXRGcmFtZXMoKSxcbiAgICAgICAgICBzdGF0ZW1lbnRzID0gY29udGV4dC5nZXRTdGF0ZW1lbnRzKCksXG4gICAgICAgICAgYXNzZXJ0aW9ucyA9IGNvbnRleHQuZ2V0QXNzZXJ0aW9ucygpLFxuICAgICAgICAgIHJlZmVyZW5jZXMgPSBjb250ZXh0LmdldFJlZmVyZW5jZXMoKSxcbiAgICAgICAgICBzdWJzdGl0dXRpb25zID0gY29udGV4dC5nZXRTdWJzdGl0dXRpb25zKCk7XG5cbiAgICB0aGlzLnRlcm1zID0gW1xuICAgICAgLi4udGhpcy50ZXJtcyxcbiAgICAgIC4uLnRlcm1zXG4gICAgXTtcblxuICAgIHRoaXMuZnJhbWVzID0gW1xuICAgICAgLi4udGhpcy5mcmFtZXMsXG4gICAgICAuLi5mcmFtZXNcbiAgICBdO1xuXG4gICAgdGhpcy5zdGF0ZW1lbnRzID0gW1xuICAgICAgLi4udGhpcy5zdGF0ZW1lbnRzLFxuICAgICAgLi4uc3RhdGVtZW50c1xuICAgIF07XG5cbiAgICB0aGlzLmFzc2VydGlvbnMgPSBbXG4gICAgICAuLi50aGlzLmFzc2VydGlvbnMsXG4gICAgICAuLi5hc3NlcnRpb25zXG4gICAgXTtcblxuICAgIHRoaXMucmVmZXJlbmNlcyA9IFtcbiAgICAgIC4uLnRoaXMucmVmZXJlbmNlcyxcbiAgICAgIC4uLnJlZmVyZW5jZXNcbiAgICBdO1xuXG4gICAgdGhpcy5zdWJzdGl0dXRpb25zID0gW1xuICAgICAgLi4udGhpcy5zdWJzdGl0dXRpb25zLFxuICAgICAgLi4uc3Vic3RpdHV0aW9uc1xuICAgIF07XG5cbiAgICBjb21wcmVzcyh0aGlzLnRlcm1zLCAodGVybUEsIHRlcm1CKSA9PiB7XG4gICAgICBjb25zdCB0ZXJtQUVxdWFsVG9UZXJtQiA9IHRlcm1BLmlzRXF1YWxUbyh0ZXJtQik7XG5cbiAgICAgIGlmICghdGVybUFFcXVhbFRvVGVybUIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb21wcmVzcyh0aGlzLmZyYW1lcywgKGZyYW1lQSwgZnJhbWVCKSA9PiB7XG4gICAgICBjb25zdCBmcmFtZUFFcXVhbFRvRnJhbWVCID0gZnJhbWVBLmlzRXF1YWxUbyhmcmFtZUIpO1xuXG4gICAgICBpZiAoIWZyYW1lQUVxdWFsVG9GcmFtZUIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb21wcmVzcyh0aGlzLnN0YXRlbWVudHMsIChzdGF0ZW1lbnRBLCBzdGF0ZW1lbnRCKSA9PiB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnRBRXF1YWxUb1N0YXRlbWVudEIgPSBzdGF0ZW1lbnRBLmlzRXF1YWxUbyhzdGF0ZW1lbnRCKTtcblxuICAgICAgaWYgKCFzdGF0ZW1lbnRBRXF1YWxUb1N0YXRlbWVudEIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb21wcmVzcyh0aGlzLmFzc2VydGlvbnMsIChhc3NlcnRpb25BLCBhc3NlcnRpb25CKSA9PiB7XG4gICAgICBjb25zdCBhc3NlcnRpb25BRXF1YWxUb0Fzc2VydGlvbkIgPSBhc3NlcnRpb25BLmlzRXF1YWxUbyhhc3NlcnRpb25CKTtcblxuICAgICAgaWYgKCFhc3NlcnRpb25BRXF1YWxUb0Fzc2VydGlvbkIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb21wcmVzcyh0aGlzLnJlZmVyZW5jZXMsIChyZWZlcmVuY2VBLCByZWZlcmVuY2VCKSA9PiB7XG4gICAgICBjb25zdCByZWZlcmVuY2VBRXF1YWxUb1JlZmVyZW5jZUIgPSByZWZlcmVuY2VBLmlzRXF1YWxUbyhyZWZlcmVuY2VCKTtcblxuICAgICAgaWYgKCFyZWZlcmVuY2VBRXF1YWxUb1JlZmVyZW5jZUIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb21wcmVzcyh0aGlzLnN1YnN0aXR1dGlvbnMsIChzdWJzdGl0dXRpb25BLCBzdWJzdGl0dXRpb25CKSA9PiB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25BRXF1YWxUb1N1YnN0aXR1dGlvbkIgPSBzdWJzdGl0dXRpb25BLmlzRXF1YWxUbyhzdWJzdGl0dXRpb25CKTtcblxuICAgICAgaWYgKCFzdWJzdGl0dXRpb25BRXF1YWxUb1N1YnN0aXR1dGlvbkIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoY29udGV4dCkge1xuICAgIGNvbnN0IHRlcm1zID0gW10sXG4gICAgICAgICAgZnJhbWVzID0gW10sXG4gICAgICAgICAgc3RhdGVtZW50cyA9IFtdLFxuICAgICAgICAgIGFzc2VydGlvbnMgPSBbXSxcbiAgICAgICAgICByZWZlcmVuY2VzID0gW10sXG4gICAgICAgICAgc3Vic3RpdHV0aW9ucyA9IFtdLFxuICAgICAgICAgIHRyYW5zaWVudENvbnRleHQgPSBuZXcgVHJhbnNpZW50Q29udGV4dChjb250ZXh0LCB0ZXJtcywgZnJhbWVzLCBzdGF0ZW1lbnRzLCBhc3NlcnRpb25zLCByZWZlcmVuY2VzLCBzdWJzdGl0dXRpb25zKTtcblxuICAgIHJldHVybiB0cmFuc2llbnRDb250ZXh0O1xuICB9XG5cbiAgc3RhdGljIGZyb21UZXJtc0FuZEZyYW1lcyh0ZXJtcywgZnJhbWVzLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RhdGVtZW50cyA9IFtdLFxuICAgICAgICAgIGFzc2VydGlvbnMgPSBbXSxcbiAgICAgICAgICByZWZlcmVuY2VzID0gW10sXG4gICAgICAgICAgc3Vic3RpdHV0aW9ucyA9IFtdLFxuICAgICAgICAgIHRyYW5zaWVudENvbnRleHQgPSBuZXcgVHJhbnNpZW50Q29udGV4dChjb250ZXh0LCB0ZXJtcywgZnJhbWVzLCBzdGF0ZW1lbnRzLCBhc3NlcnRpb25zLCByZWZlcmVuY2VzLCBzdWJzdGl0dXRpb25zKTtcblxuICAgIHJldHVybiB0cmFuc2llbnRDb250ZXh0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiVHJhbnNpZW50Q29udGV4dCIsImV4dHJhY3QiLCJhcnJheVV0aWxpdGllcyIsImNvbXByZXNzIiwiY29udGV4dCIsInRlcm1zIiwiZnJhbWVzIiwic3RhdGVtZW50cyIsImFzc2VydGlvbnMiLCJyZWZlcmVuY2VzIiwic3Vic3RpdHV0aW9ucyIsImNoYWluQ29udGV4dCIsImdldENvbnRleHQiLCJnZXRUZXJtcyIsImdldEZyYW1lcyIsImdldFN0YXRlbWVudHMiLCJnZXRBc3NlcnRpb25zIiwiZ2V0UmVmZXJlbmNlcyIsImdldFN1YnN0aXR1dGlvbnMiLCJhZGRUZXJtIiwidGVybSIsInRlcm1BIiwidGVybVN0cmluZyIsImdldFN0cmluZyIsInRlcm1CIiwidGVybUFFcXVhbFRvVGVybUIiLCJpc0VxdWFsVG8iLCJ0cmFjZSIsInB1c2giLCJhZGRGcmFtZSIsImZyYW1lIiwiZnJhbWVBIiwiZnJhbWVTdHJpbmciLCJmcmFtZUIiLCJmcmFtZUFFcXVhbFRvRnJhbWVCIiwiYWRkU3RhdGVtZW50Iiwic3RhdGVtZW50Iiwic3RhdGVtZW50QSIsInN0YXRlbWVudFN0cmluZyIsInN0YXRlbWVudEIiLCJzdGF0ZW1lbnRBRXF1YWxUb0ZyYW1lQiIsImFkZEFzc2VydGlvbiIsImFzc2VydGlvbiIsImFzc2VydGlvbkEiLCJhc3NlcnRpb25TdHJpbmciLCJhc3NlcnRpb25CIiwiYXNzZXJ0aW9uQUVxdWFsVG9Bc3NlcnRpb25CIiwiYWRkUmVmZXJlbmNlIiwicmVmZXJlbmNlIiwicmVmZXJlbmNlQSIsInJlZmVyZW5jZVN0cmluZyIsInJlZmVyZW5jZUIiLCJyZWZlcmVuY2VBRXF1YWxUb1JlZmVyZW5jZUIiLCJhZGRTdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb25BIiwic3Vic3RpdHV0aW9uU3RyaW5nIiwic3Vic3RpdHV0aW9uQiIsInN1YnN0aXR1aW9uQUVxdWFsVG9TdWJzdGl0dXRpb25CIiwiZmluZFRlcm1CeVRlcm1Ob2RlIiwidGVybU5vZGUiLCJmaW5kIiwidGVybU5vZGVNYXRjaGVzIiwibWF0Y2hOb2RlIiwiZmluZEZyYW1lQnlGcmFtZU5vZGUiLCJmcmFtZU5vZGUiLCJmcmFtZU5vZGVNYXRjaGVzIiwiZmluZFN0YXRlbWVudEJ5U3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsImZpbmRBc3NlcnRpb25CeUFzc2VydGlvbk5vZGUiLCJhc3NlcnRpb25Ob2RlIiwiYXNzZXJ0aW9uTm9kZU1hdGNoZXMiLCJmaW5kUmVmZXJlbmNlQnlNZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlTm9kZSIsInJlZmVyZW5jZU1hdGNoZU1ldGF2YXJpYWJsZU5vZGUiLCJtYXRjaE1ldGF2YXJpYWJsZU5vZGUiLCJmaW5kU3Vic3RpdHV0aW9uQnlTdWJzdGl0dXRpb25Ob2RlIiwic3Vic3RpdHV0aW9uTm9kZSIsInN1YnN0aXR1dGlvbk5vZGVNYXRjaGVzIiwiZ2V0VmFyaWFibGVzIiwibmVzdGVkIiwiYWRkVmFyaWFibGUiLCJ2YXJpYWJsZSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVJZGVudGlmaWVyIiwidmFyaWFibGVJZGVudGlmaWVyIiwiaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUiLCJ0eXBlTmFtZSIsImluY2x1ZGVSZWxlYXNlIiwiaW5jbHVkZURlcGVuZGVuY2llcyIsImlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZUlkZW50aWZpZXIiLCJtZXJnZSIsInN0YXRlbWVudEFFcXVhbFRvU3RhdGVtZW50QiIsInN1YnN0aXR1dGlvbkFFcXVhbFRvU3Vic3RpdHV0aW9uQiIsImZyb21Ob3RoaW5nIiwidHJhbnNpZW50Q29udGV4dCIsImZyb21UZXJtc0FuZEZyYW1lcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFRcUJBOzs7eUJBTlU7dUJBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU3QixJQUFRQyxVQUFzQkMseUJBQWMsQ0FBcENELFNBQVNFLFdBQWFELHlCQUFjLENBQTNCQztBQUVGLElBQUEsQUFBTUgsaUNBQU47YUFBTUEsaUJBQ1BJLE9BQU8sRUFBRUMsS0FBSyxFQUFFQyxNQUFNLEVBQUVDLFVBQVUsRUFBRUMsVUFBVSxFQUFFQyxVQUFVLEVBQUVDLGFBQWE7Z0NBRGxFVjtRQUVqQixJQUFJLENBQUNJLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLFVBQVUsR0FBR0E7UUFDbEIsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO1FBQ2xCLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNDLGFBQWEsR0FBR0E7UUFFckIsT0FBT0MsSUFBQUEscUJBQVksRUFBQyxJQUFJOztrQkFWUFg7O1lBYW5CWSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNSLE9BQU87WUFDckI7OztZQUVBUyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNSLEtBQUs7WUFDbkI7OztZQUVBUyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNSLE1BQU07WUFDcEI7OztZQUVBUyxLQUFBQTttQkFBQUEsU0FB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
package/lib/log.js DELETED
@@ -1,150 +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 Log;
9
- }
10
- });
11
- var _necessary = require("necessary");
12
- var _constants = require("./constants");
13
- function _class_call_check(instance, Constructor) {
14
- if (!(instance instanceof Constructor)) {
15
- throw new TypeError("Cannot call a class as a function");
16
- }
17
- }
18
- function _defineProperties(target, props) {
19
- for(var i = 0; i < props.length; i++){
20
- var descriptor = props[i];
21
- descriptor.enumerable = descriptor.enumerable || false;
22
- descriptor.configurable = true;
23
- if ("value" in descriptor) descriptor.writable = true;
24
- Object.defineProperty(target, descriptor.key, descriptor);
25
- }
26
- }
27
- function _create_class(Constructor, protoProps, staticProps) {
28
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
29
- if (staticProps) _defineProperties(Constructor, staticProps);
30
- return Constructor;
31
- }
32
- var TRACE_LEVEL = _necessary.levels.TRACE_LEVEL, DEBUG_LEVEL = _necessary.levels.DEBUG_LEVEL, INFO_LEVEL = _necessary.levels.INFO_LEVEL, WARNING_LEVEL = _necessary.levels.WARNING_LEVEL, ERROR_LEVEL = _necessary.levels.ERROR_LEVEL;
33
- var Log = /*#__PURE__*/ function() {
34
- function Log(messages, logLevel, follow) {
35
- _class_call_check(this, Log);
36
- this.messages = messages;
37
- this.logLevel = logLevel;
38
- this.follow = follow;
39
- }
40
- _create_class(Log, [
41
- {
42
- key: "getMessages",
43
- value: function getMessages() {
44
- return this.messages;
45
- }
46
- },
47
- {
48
- key: "getLogLevel",
49
- value: function getLogLevel() {
50
- return this.logLevel;
51
- }
52
- },
53
- {
54
- key: "getFollow",
55
- value: function getFollow() {
56
- return this.follow;
57
- }
58
- },
59
- {
60
- key: "trace",
61
- value: function trace(message, filePath) {
62
- var lineIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
63
- var level = TRACE_LEVEL;
64
- this.write(level, message, filePath, lineIndex);
65
- }
66
- },
67
- {
68
- key: "debug",
69
- value: function debug(message, filePath) {
70
- var lineIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
71
- var level = DEBUG_LEVEL;
72
- this.write(level, message, filePath, lineIndex);
73
- }
74
- },
75
- {
76
- key: "info",
77
- value: function info(message, filePath) {
78
- var lineIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
79
- var level = INFO_LEVEL;
80
- this.write(level, message, filePath, lineIndex);
81
- }
82
- },
83
- {
84
- key: "warning",
85
- value: function warning(message, filePath) {
86
- var lineIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
87
- var level = WARNING_LEVEL;
88
- this.write(level, message, filePath, lineIndex);
89
- }
90
- },
91
- {
92
- key: "error",
93
- value: function error(message, filePath) {
94
- var lineIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
95
- var level = ERROR_LEVEL;
96
- this.write(level, message, filePath, lineIndex);
97
- }
98
- },
99
- {
100
- key: "write",
101
- value: function write(level, message, filePath, lineIndex) {
102
- var _$levels = [
103
- TRACE_LEVEL,
104
- DEBUG_LEVEL,
105
- INFO_LEVEL,
106
- WARNING_LEVEL,
107
- ERROR_LEVEL
108
- ], levelIndex = _$levels.indexOf(level), logLevelIndex = _$levels.indexOf(this.logLevel);
109
- if (levelIndex < logLevelIndex) {
110
- return;
111
- }
112
- message = formatMessage(level, message, filePath, lineIndex); ///
113
- this.follow ? console.log(message) : this.messages.push(message);
114
- }
115
- }
116
- ], [
117
- {
118
- key: "fromNothing",
119
- value: function fromNothing() {
120
- var messages = [], logLevel = TRACE_LEVEL, follow = false, log = new Log(messages, logLevel, follow);
121
- return log;
122
- }
123
- },
124
- {
125
- key: "fromFollowAndLogLevel",
126
- value: function fromFollowAndLogLevel(follow, logLevel) {
127
- var messages = follow ? null : [], log = new Log(messages, logLevel, follow);
128
- return log;
129
- }
130
- }
131
- ]);
132
- return Log;
133
- }();
134
- function formatMessage(level, message) {
135
- var filePath = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null, lineIndex = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : null;
136
- var formattedMessage = _constants.EMPTY_STRING;
137
- var upperCaseLevel = level.toUpperCase();
138
- formattedMessage += "".concat(upperCaseLevel, ":");
139
- if (filePath !== null) {
140
- formattedMessage += " ".concat(filePath);
141
- }
142
- if (lineIndex !== null) {
143
- formattedMessage += " [".concat(lineIndex, "]");
144
- }
145
- formattedMessage += " - ".concat(message);
146
- message = formattedMessage; ///
147
- return message;
148
- }
149
-
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sb2cuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGxldmVscyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcbmltcG9ydCB7RU1QVFlfU1RSSU5HfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuY29uc3QgeyBUUkFDRV9MRVZFTCwgREVCVUdfTEVWRUwsIElORk9fTEVWRUwsIFdBUk5JTkdfTEVWRUwsIEVSUk9SX0xFVkVMIH0gPSBsZXZlbHM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExvZyB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2VzLCBsb2dMZXZlbCwgZm9sbG93KSB7XG4gICAgdGhpcy5tZXNzYWdlcyA9IG1lc3NhZ2VzO1xuICAgIHRoaXMubG9nTGV2ZWwgPSBsb2dMZXZlbDtcbiAgICB0aGlzLmZvbGxvdyA9IGZvbGxvdztcbiAgfVxuXG4gIGdldE1lc3NhZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLm1lc3NhZ2VzO1xuICB9XG5cbiAgZ2V0TG9nTGV2ZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMubG9nTGV2ZWw7XG4gIH1cblxuICBnZXRGb2xsb3coKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9sbG93O1xuICB9XG5cbiAgdHJhY2UobWVzc2FnZSwgZmlsZVBhdGgsIGxpbmVJbmRleCA9IG51bGwpIHtcbiAgICBjb25zdCBsZXZlbCA9IFRSQUNFX0xFVkVMO1xuXG4gICAgdGhpcy53cml0ZShsZXZlbCwgbWVzc2FnZSwgZmlsZVBhdGgsIGxpbmVJbmRleCk7XG4gIH1cblxuICBkZWJ1ZyhtZXNzYWdlLCBmaWxlUGF0aCwgbGluZUluZGV4ID0gbnVsbCkge1xuICAgIGNvbnN0IGxldmVsID0gREVCVUdfTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlKGxldmVsLCBtZXNzYWdlLCBmaWxlUGF0aCwgbGluZUluZGV4KTtcbiAgfVxuXG4gIGluZm8obWVzc2FnZSwgZmlsZVBhdGgsIGxpbmVJbmRleCA9IG51bGwpIHtcbiAgICBjb25zdCBsZXZlbCA9IElORk9fTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlKGxldmVsLCBtZXNzYWdlLCBmaWxlUGF0aCwgbGluZUluZGV4KTtcbiAgfVxuXG4gIHdhcm5pbmcobWVzc2FnZSwgZmlsZVBhdGgsIGxpbmVJbmRleCA9IG51bGwpIHtcbiAgICBjb25zdCBsZXZlbCA9IFdBUk5JTkdfTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlKGxldmVsLCBtZXNzYWdlLCBmaWxlUGF0aCwgbGluZUluZGV4KTtcbiAgfVxuXG4gIGVycm9yKG1lc3NhZ2UsIGZpbGVQYXRoLCBsaW5lSW5kZXggPSBudWxsKSB7XG4gICAgY29uc3QgbGV2ZWwgPSBFUlJPUl9MRVZFTDtcblxuICAgIHRoaXMud3JpdGUobGV2ZWwsIG1lc3NhZ2UsIGZpbGVQYXRoLCBsaW5lSW5kZXgpO1xuICB9XG5cbiAgd3JpdGUobGV2ZWwsIG1lc3NhZ2UsIGZpbGVQYXRoLCBsaW5lSW5kZXgpIHtcbiAgICBjb25zdCBsZXZlbHMgPSBbXG4gICAgICAgICAgICBUUkFDRV9MRVZFTCxcbiAgICAgICAgICAgIERFQlVHX0xFVkVMLFxuICAgICAgICAgICAgSU5GT19MRVZFTCxcbiAgICAgICAgICAgIFdBUk5JTkdfTEVWRUwsXG4gICAgICAgICAgICBFUlJPUl9MRVZFTFxuICAgICAgICAgIF0sXG4gICAgICAgICAgbGV2ZWxJbmRleCA9IGxldmVscy5pbmRleE9mKGxldmVsKSxcbiAgICAgICAgICBsb2dMZXZlbEluZGV4ID0gbGV2ZWxzLmluZGV4T2YodGhpcy5sb2dMZXZlbCk7XG5cbiAgICBpZiAobGV2ZWxJbmRleCA8IGxvZ0xldmVsSW5kZXgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBtZXNzYWdlID0gZm9ybWF0TWVzc2FnZShsZXZlbCwgbWVzc2FnZSwgZmlsZVBhdGgsIGxpbmVJbmRleCk7ICAvLy9cblxuICAgIHRoaXMuZm9sbG93ID9cbiAgICAgIGNvbnNvbGUubG9nKG1lc3NhZ2UpIDpcbiAgICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKG1lc3NhZ2UpO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IG1lc3NhZ2VzID0gW10sXG4gICAgICAgICAgbG9nTGV2ZWwgPSBUUkFDRV9MRVZFTCxcbiAgICAgICAgICBmb2xsb3cgPSBmYWxzZSxcbiAgICAgICAgICBsb2cgPSBuZXcgTG9nKG1lc3NhZ2VzLCBsb2dMZXZlbCwgZm9sbG93KTtcblxuICAgIHJldHVybiBsb2c7XG4gIH1cblxuICBzdGF0aWMgZnJvbUZvbGxvd0FuZExvZ0xldmVsKGZvbGxvdywgbG9nTGV2ZWwpIHtcbiAgICBjb25zdCBtZXNzYWdlcyA9IGZvbGxvdyA/XG4gICAgICAgICAgICAgICAgICAgICAgIG51bGwgOlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtdLFxuICAgICAgICAgIGxvZyA9IG5ldyBMb2cobWVzc2FnZXMsIGxvZ0xldmVsLCBmb2xsb3cpO1xuXG4gICAgcmV0dXJuIGxvZztcbiAgfVxufVxuXG5mdW5jdGlvbiBmb3JtYXRNZXNzYWdlKGxldmVsLCBtZXNzYWdlLCBmaWxlUGF0aCA9IG51bGwsIGxpbmVJbmRleCA9IG51bGwpIHtcbiAgbGV0IGZvcm1hdHRlZE1lc3NhZ2UgPSBFTVBUWV9TVFJJTkc7XG5cbiAgY29uc3QgdXBwZXJDYXNlTGV2ZWwgPSBsZXZlbC50b1VwcGVyQ2FzZSgpO1xuXG4gIGZvcm1hdHRlZE1lc3NhZ2UgKz0gYCR7dXBwZXJDYXNlTGV2ZWx9OmA7XG5cbiAgaWYgKGZpbGVQYXRoICE9PSBudWxsKSB7XG4gICAgZm9ybWF0dGVkTWVzc2FnZSArPSBgICR7ZmlsZVBhdGh9YDtcbiAgfVxuXG4gIGlmIChsaW5lSW5kZXggIT09IG51bGwpIHtcbiAgICBmb3JtYXR0ZWRNZXNzYWdlICs9IGAgWyR7bGluZUluZGV4fV1gO1xuICB9XG5cbiAgZm9ybWF0dGVkTWVzc2FnZSArPSBgIC0gJHttZXNzYWdlfWA7XG5cbiAgbWVzc2FnZSA9IGZvcm1hdHRlZE1lc3NhZ2U7IC8vL1xuXG4gIHJldHVybiBtZXNzYWdlO1xufVxuIl0sIm5hbWVzIjpbIkxvZyIsIlRSQUNFX0xFVkVMIiwibGV2ZWxzIiwiREVCVUdfTEVWRUwiLCJJTkZPX0xFVkVMIiwiV0FSTklOR19MRVZFTCIsIkVSUk9SX0xFVkVMIiwibWVzc2FnZXMiLCJsb2dMZXZlbCIsImZvbGxvdyIsImdldE1lc3NhZ2VzIiwiZ2V0TG9nTGV2ZWwiLCJnZXRGb2xsb3ciLCJ0cmFjZSIsIm1lc3NhZ2UiLCJmaWxlUGF0aCIsImxpbmVJbmRleCIsImxldmVsIiwid3JpdGUiLCJkZWJ1ZyIsImluZm8iLCJ3YXJuaW5nIiwiZXJyb3IiLCJsZXZlbEluZGV4IiwiaW5kZXhPZiIsImxvZ0xldmVsSW5kZXgiLCJmb3JtYXRNZXNzYWdlIiwiY29uc29sZSIsImxvZyIsInB1c2giLCJmcm9tTm90aGluZyIsImZyb21Gb2xsb3dBbmRMb2dMZXZlbCIsImZvcm1hdHRlZE1lc3NhZ2UiLCJFTVBUWV9TVFJJTkciLCJ1cHBlckNhc2VMZXZlbCIsInRvVXBwZXJDYXNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQU9xQkE7Ozt5QkFMRTt5QkFDSTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFM0IsSUFBUUMsY0FBcUVDLGlCQUFNLENBQTNFRCxhQUFhRSxjQUF3REQsaUJBQU0sQ0FBOURDLGFBQWFDLGFBQTJDRixpQkFBTSxDQUFqREUsWUFBWUMsZ0JBQStCSCxpQkFBTSxDQUFyQ0csZUFBZUMsY0FBZ0JKLGlCQUFNLENBQXRCSTtBQUU5QyxJQUFBLEFBQU1OLG9CQUFOO2FBQU1BLElBQ1BPLFFBQVEsRUFBRUMsUUFBUSxFQUFFQyxNQUFNO2dDQURuQlQ7UUFFakIsSUFBSSxDQUFDTyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLE1BQU0sR0FBR0E7O2tCQUpHVDs7WUFPbkJVLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsUUFBUTtZQUN0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
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "withinFragment", {
6
- enumerable: true,
7
- get: function() {
8
- return withinFragment;
9
- }
10
- });
11
- var _fragment = /*#__PURE__*/ _interop_require_default(require("../context/fragment"));
12
- function _interop_require_default(obj) {
13
- return obj && obj.__esModule ? obj : {
14
- default: obj
15
- };
16
- }
17
- function withinFragment(innerFunction, context) {
18
- var fragmentContext = _fragment.default.fromNothing(context);
19
- context = fragmentContext; ///
20
- return innerFunction(context);
21
- }
22
-
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZnJhZ21lbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBGcmFnbWVudENvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvZnJhZ21lbnRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhpbkZyYWdtZW50KGlubmVyRnVuY3Rpb24sIGNvbnRleHQpIHtcbiAgY29uc3QgZnJhZ21lbnRDb250ZXh0ID0gRnJhZ21lbnRDb250ZXh0LmZyb21Ob3RoaW5nKGNvbnRleHQpO1xuXG4gIGNvbnRleHQgPSBmcmFnbWVudENvbnRleHQ7ICAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cbiJdLCJuYW1lcyI6WyJ3aXRoaW5GcmFnbWVudCIsImlubmVyRnVuY3Rpb24iLCJjb250ZXh0IiwiZnJhZ21lbnRDb250ZXh0IiwiRnJhZ21lbnRDb250ZXh0IiwiZnJvbU5vdGhpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUlnQkE7OztlQUFBQTs7OytEQUZZOzs7Ozs7QUFFckIsU0FBU0EsZUFBZUMsYUFBYSxFQUFFQyxPQUFPO0lBQ25ELElBQU1DLGtCQUFrQkMsaUJBQWUsQ0FBQ0MsV0FBVyxDQUFDSDtJQUVwREEsVUFBVUMsaUJBQWtCLEdBQUc7SUFFL0IsT0FBT0YsY0FBY0M7QUFDdkIifQ==