occam-verify-cli 0.0.902 → 0.0.903

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.
@@ -1,114 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- var _necessary = require("necessary");
6
- var _array = require("../utilities/array");
7
- var _constants = require("../constants");
8
- function _array_like_to_array(arr, len) {
9
- if (len == null || len > arr.length) len = arr.length;
10
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
11
- return arr2;
12
- }
13
- function _array_without_holes(arr) {
14
- if (Array.isArray(arr)) return _array_like_to_array(arr);
15
- }
16
- function _iterable_to_array(iter) {
17
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
18
- }
19
- function _non_iterable_spread() {
20
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
21
- }
22
- function _to_consumable_array(arr) {
23
- return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
24
- }
25
- function _unsupported_iterable_to_array(o, minLen) {
26
- if (!o) return;
27
- if (typeof o === "string") return _array_like_to_array(o, minLen);
28
- var n = Object.prototype.toString.call(o).slice(8, -1);
29
- if (n === "Object" && o.constructor) n = o.constructor.name;
30
- if (n === "Map" || n === "Set") return Array.from(n);
31
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
32
- }
33
- var writeFile = _necessary.fileSystemUtilities.writeFile;
34
- writePermutationsMatrixFile();
35
- function permutationsMatrixFromNothing() {
36
- var permutationsMatrix = [];
37
- for(var indexesLength = 0; indexesLength <= _constants.MAXIMUM_INDEXES_LENGTH; indexesLength++){
38
- var permutationsArray = [];
39
- for(var permutationLength = 0; permutationLength <= _constants.MAXIMUM_PERMUTATION_LENGTH; permutationLength++){
40
- var permutations = permutationLength === 0 || permutationLength > indexesLength ? null : permutationsFromIndexesLengthAndPermutationLength(indexesLength, permutationLength);
41
- permutationsArray.push(permutations);
42
- }
43
- permutationsMatrix.push(permutationsArray);
44
- }
45
- return permutationsMatrix;
46
- }
47
- function writePermutationsMatrixFile() {
48
- var permutationsMatrix = permutationsMatrixFromNothing(), permutationsMatrixJSON = JSON.stringify(permutationsMatrix), permutationsMatrixFileName = "./bin/permutationsMatrix.js", permutationsMatrixFileContent = '"use strict";\n \nconst permutationsMatrix = '.concat(permutationsMatrixJSON, ";\n \nexport default permutationsMatrix; \n ");
49
- writeFile(permutationsMatrixFileName, permutationsMatrixFileContent);
50
- }
51
- function permutationsFromChoice(choice) {
52
- var permutations = [], choiceLength = choice.length;
53
- if (choiceLength === 1) {
54
- var permutation = choice.slice();
55
- permutations.push(permutation);
56
- } else {
57
- var innerChoice = choice.slice(0), start = 0, deleteCount = 1, indexes = innerChoice.splice(start, deleteCount), firstIndex = (0, _array.first)(indexes), innerPermutations = permutationsFromChoice(innerChoice);
58
- innerPermutations.forEach(function(innerPermutation) {
59
- for(var position = 0; position < choiceLength; position++){
60
- var permutation = innerPermutation.slice(0), start = position, deleteCount = 0;
61
- permutation.splice(start, deleteCount, firstIndex);
62
- permutations.push(permutation);
63
- }
64
- });
65
- }
66
- return permutations;
67
- }
68
- function permutationsFromChoices(choices) {
69
- var permutations = [];
70
- choices.forEach(function(choice) {
71
- var choicePermutations = permutationsFromChoice(choice);
72
- (0, _array.push)(permutations, choicePermutations);
73
- });
74
- return permutations;
75
- }
76
- function indexesFromIndexesLength(indexesLength) {
77
- var indexes = [];
78
- for(var index = 0; index < indexesLength; index++){
79
- indexes.push(index);
80
- }
81
- return indexes;
82
- }
83
- function choicesFromIndexesAndChoiceLength(indexes, choiceLength) {
84
- var choices = [], indexesLength = indexes.length;
85
- if (choiceLength === 0) {
86
- ///
87
- } else if (choiceLength === 1) {
88
- for(var position = 0; position < indexesLength; position++){
89
- var index = indexes[position], choice = [
90
- index
91
- ];
92
- choices.push(choice);
93
- }
94
- } else {
95
- var _loop = function(position1) {
96
- var innerIndexes = indexes.slice(0), start = 0, deleteCount = position1 + 1, deletedIndexes = innerIndexes.splice(start, deleteCount), lastDeletedIndex = (0, _array.last)(deletedIndexes), index = lastDeletedIndex, innerChoices = choicesFromIndexesAndChoiceLength(innerIndexes, innerChoiceLength);
97
- innerChoices.forEach(function(innerChoice) {
98
- var choice = [
99
- index
100
- ].concat(_to_consumable_array(innerChoice));
101
- choices.push(choice);
102
- });
103
- };
104
- var innerChoiceLength = choiceLength - 1;
105
- for(var position1 = 0; position1 < indexesLength; position1++)_loop(position1);
106
- }
107
- return choices;
108
- }
109
- function permutationsFromIndexesLengthAndPermutationLength(indexesLength, permutationLength) {
110
- var choiceLength = permutationLength, indexes = indexesFromIndexesLength(indexesLength), choices = choicesFromIndexesAndChoiceLength(indexes, choiceLength), permutations = permutationsFromChoices(choices);
111
- return permutations;
112
- }
113
-
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcGVybXV0YXRpb25zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBmaWxlU3lzdGVtVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyBwdXNoLCBsYXN0LCBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IE1BWElNVU1fSU5ERVhFU19MRU5HVEgsIE1BWElNVU1fUEVSTVVUQVRJT05fTEVOR1RIIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5jb25zdCB7IHdyaXRlRmlsZSB9ID0gZmlsZVN5c3RlbVV0aWxpdGllcztcblxud3JpdGVQZXJtdXRhdGlvbnNNYXRyaXhGaWxlKCk7XG5cbmZ1bmN0aW9uIHBlcm11dGF0aW9uc01hdHJpeEZyb21Ob3RoaW5nKCkge1xuICBjb25zdCBwZXJtdXRhdGlvbnNNYXRyaXggPSBbXTtcblxuICBmb3IgKGxldCBpbmRleGVzTGVuZ3RoID0gMDsgaW5kZXhlc0xlbmd0aCA8PSBNQVhJTVVNX0lOREVYRVNfTEVOR1RIOyBpbmRleGVzTGVuZ3RoKyspIHtcbiAgICBjb25zdCBwZXJtdXRhdGlvbnNBcnJheSA9IFtdO1xuXG4gICAgZm9yIChsZXQgcGVybXV0YXRpb25MZW5ndGggPSAwOyBwZXJtdXRhdGlvbkxlbmd0aCA8PSBNQVhJTVVNX1BFUk1VVEFUSU9OX0xFTkdUSDsgcGVybXV0YXRpb25MZW5ndGgrKykge1xuICAgICAgY29uc3QgcGVybXV0YXRpb25zID0gKChwZXJtdXRhdGlvbkxlbmd0aCA9PT0gMCkgfHwgKHBlcm11dGF0aW9uTGVuZ3RoID4gaW5kZXhlc0xlbmd0aCkpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVybXV0YXRpb25zRnJvbUluZGV4ZXNMZW5ndGhBbmRQZXJtdXRhdGlvbkxlbmd0aChpbmRleGVzTGVuZ3RoLCBwZXJtdXRhdGlvbkxlbmd0aCk7XG5cbiAgICAgIHBlcm11dGF0aW9uc0FycmF5LnB1c2gocGVybXV0YXRpb25zKTtcbiAgICB9XG5cbiAgICBwZXJtdXRhdGlvbnNNYXRyaXgucHVzaChwZXJtdXRhdGlvbnNBcnJheSk7XG4gIH1cblxuICByZXR1cm4gcGVybXV0YXRpb25zTWF0cml4O1xufVxuXG5mdW5jdGlvbiB3cml0ZVBlcm11dGF0aW9uc01hdHJpeEZpbGUoKSB7XG4gIGNvbnN0IHBlcm11dGF0aW9uc01hdHJpeCA9IHBlcm11dGF0aW9uc01hdHJpeEZyb21Ob3RoaW5nKCksXG4gICAgICAgIHBlcm11dGF0aW9uc01hdHJpeEpTT04gPSBKU09OLnN0cmluZ2lmeShwZXJtdXRhdGlvbnNNYXRyaXgpLFxuICAgICAgICBwZXJtdXRhdGlvbnNNYXRyaXhGaWxlTmFtZSA9IFwiLi9iaW4vcGVybXV0YXRpb25zTWF0cml4LmpzXCIsXG4gICAgICAgIHBlcm11dGF0aW9uc01hdHJpeEZpbGVDb250ZW50ID0gYFwidXNlIHN0cmljdFwiO1xuICAgICAgICBcbmNvbnN0IHBlcm11dGF0aW9uc01hdHJpeCA9ICR7cGVybXV0YXRpb25zTWF0cml4SlNPTn07XG4gIFxuZXhwb3J0IGRlZmF1bHQgcGVybXV0YXRpb25zTWF0cml4OyAgICAgIFxuICBgO1xuXG4gIHdyaXRlRmlsZShwZXJtdXRhdGlvbnNNYXRyaXhGaWxlTmFtZSwgcGVybXV0YXRpb25zTWF0cml4RmlsZUNvbnRlbnQpXG59XG5cbmZ1bmN0aW9uIHBlcm11dGF0aW9uc0Zyb21DaG9pY2UoY2hvaWNlKSB7XG4gIGNvbnN0IHBlcm11dGF0aW9ucyA9IFtdLFxuICAgICAgICBjaG9pY2VMZW5ndGggPSBjaG9pY2UubGVuZ3RoO1xuXG4gIGlmIChjaG9pY2VMZW5ndGggPT09IDEpIHtcbiAgICBjb25zdCBwZXJtdXRhdGlvbiA9IGNob2ljZS5zbGljZSgpO1xuXG4gICAgcGVybXV0YXRpb25zLnB1c2gocGVybXV0YXRpb24pO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGlubmVyQ2hvaWNlID0gY2hvaWNlLnNsaWNlKDApLFxuICAgICAgICAgIHN0YXJ0ID0gMCxcbiAgICAgICAgICBkZWxldGVDb3VudCA9IDEsXG4gICAgICAgICAgaW5kZXhlcyA9IGlubmVyQ2hvaWNlLnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpLFxuICAgICAgICAgIGZpcnN0SW5kZXggPSBmaXJzdChpbmRleGVzKSxcbiAgICAgICAgICBpbm5lclBlcm11dGF0aW9ucyA9IHBlcm11dGF0aW9uc0Zyb21DaG9pY2UoaW5uZXJDaG9pY2UpO1xuXG4gICAgaW5uZXJQZXJtdXRhdGlvbnMuZm9yRWFjaCgoaW5uZXJQZXJtdXRhdGlvbikgPT4ge1xuICAgICAgZm9yIChsZXQgcG9zaXRpb24gPSAwOyBwb3NpdGlvbiA8IGNob2ljZUxlbmd0aDsgcG9zaXRpb24rKykge1xuICAgICAgICBjb25zdCBwZXJtdXRhdGlvbiA9IGlubmVyUGVybXV0YXRpb24uc2xpY2UoMCksXG4gICAgICAgICAgICAgIHN0YXJ0ID0gcG9zaXRpb24sIC8vL1xuICAgICAgICAgICAgICBkZWxldGVDb3VudCA9IDA7XG5cbiAgICAgICAgcGVybXV0YXRpb24uc3BsaWNlKHN0YXJ0LCBkZWxldGVDb3VudCwgZmlyc3RJbmRleCk7XG5cbiAgICAgICAgcGVybXV0YXRpb25zLnB1c2gocGVybXV0YXRpb24pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHBlcm11dGF0aW9ucztcbn1cblxuZnVuY3Rpb24gcGVybXV0YXRpb25zRnJvbUNob2ljZXMoY2hvaWNlcykge1xuICBjb25zdCBwZXJtdXRhdGlvbnMgPSBbXTtcblxuICBjaG9pY2VzLmZvckVhY2goKGNob2ljZSkgPT4ge1xuICAgIGNvbnN0IGNob2ljZVBlcm11dGF0aW9ucyA9IHBlcm11dGF0aW9uc0Zyb21DaG9pY2UoY2hvaWNlKTtcblxuICAgIHB1c2gocGVybXV0YXRpb25zLCBjaG9pY2VQZXJtdXRhdGlvbnMpO1xuICB9KTtcblxuICByZXR1cm4gcGVybXV0YXRpb25zO1xufVxuXG5mdW5jdGlvbiBpbmRleGVzRnJvbUluZGV4ZXNMZW5ndGgoaW5kZXhlc0xlbmd0aCkge1xuICBjb25zdCBpbmRleGVzID0gW107XG5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGluZGV4ZXNMZW5ndGg7IGluZGV4KyspIHtcbiAgICBpbmRleGVzLnB1c2goaW5kZXgpO1xuICB9XG5cbiAgcmV0dXJuIGluZGV4ZXM7XG59XG5cbmZ1bmN0aW9uIGNob2ljZXNGcm9tSW5kZXhlc0FuZENob2ljZUxlbmd0aChpbmRleGVzLCBjaG9pY2VMZW5ndGgpIHtcbiAgY29uc3QgY2hvaWNlcyA9IFtdLFxuICAgICAgICBpbmRleGVzTGVuZ3RoID0gaW5kZXhlcy5sZW5ndGg7XG5cbiAgaWYgKGNob2ljZUxlbmd0aCA9PT0gMCkge1xuICAgIC8vL1xuICB9IGVsc2UgaWYgKGNob2ljZUxlbmd0aCA9PT0gMSkge1xuICAgIGZvciAobGV0IHBvc2l0aW9uID0gMDsgcG9zaXRpb24gPCBpbmRleGVzTGVuZ3RoOyBwb3NpdGlvbisrKSB7XG4gICAgICBjb25zdCBpbmRleCA9IGluZGV4ZXNbcG9zaXRpb25dLFxuICAgICAgICAgICAgY2hvaWNlID0gW1xuICAgICAgICAgICAgICBpbmRleFxuICAgICAgICAgICAgXTtcblxuICAgICAgY2hvaWNlcy5wdXNoKGNob2ljZSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IGlubmVyQ2hvaWNlTGVuZ3RoID0gY2hvaWNlTGVuZ3RoIC0gMTtcblxuICAgIGZvciAobGV0IHBvc2l0aW9uID0gMDsgcG9zaXRpb24gPCBpbmRleGVzTGVuZ3RoOyBwb3NpdGlvbisrKSB7XG4gICAgICBjb25zdCBpbm5lckluZGV4ZXMgPSBpbmRleGVzLnNsaWNlKDApLFxuICAgICAgICAgICAgc3RhcnQgPSAwLCAvLy9cbiAgICAgICAgICAgIGRlbGV0ZUNvdW50ID0gcG9zaXRpb24gKyAxLFxuICAgICAgICAgICAgZGVsZXRlZEluZGV4ZXMgPSBpbm5lckluZGV4ZXMuc3BsaWNlKHN0YXJ0LCBkZWxldGVDb3VudCksXG4gICAgICAgICAgICBsYXN0RGVsZXRlZEluZGV4ID0gbGFzdChkZWxldGVkSW5kZXhlcyksXG4gICAgICAgICAgICBpbmRleCA9IGxhc3REZWxldGVkSW5kZXgsIC8vL1xuICAgICAgICAgICAgaW5uZXJDaG9pY2VzID0gY2hvaWNlc0Zyb21JbmRleGVzQW5kQ2hvaWNlTGVuZ3RoKGlubmVySW5kZXhlcywgaW5uZXJDaG9pY2VMZW5ndGgpO1xuXG4gICAgICBpbm5lckNob2ljZXMuZm9yRWFjaCgoaW5uZXJDaG9pY2UpID0+IHtcbiAgICAgICAgY29uc3QgY2hvaWNlID0gW1xuICAgICAgICAgIGluZGV4LFxuICAgICAgICAgIC4uLmlubmVyQ2hvaWNlXG4gICAgICAgIF07XG5cbiAgICAgICAgY2hvaWNlcy5wdXNoKGNob2ljZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY2hvaWNlcztcbn1cblxuZnVuY3Rpb24gcGVybXV0YXRpb25zRnJvbUluZGV4ZXNMZW5ndGhBbmRQZXJtdXRhdGlvbkxlbmd0aChpbmRleGVzTGVuZ3RoLCBwZXJtdXRhdGlvbkxlbmd0aCkge1xuICBjb25zdCBjaG9pY2VMZW5ndGggPSBwZXJtdXRhdGlvbkxlbmd0aCwgLy8vXG4gICAgICAgIGluZGV4ZXMgPSBpbmRleGVzRnJvbUluZGV4ZXNMZW5ndGgoaW5kZXhlc0xlbmd0aCksXG4gICAgICAgIGNob2ljZXMgPSBjaG9pY2VzRnJvbUluZGV4ZXNBbmRDaG9pY2VMZW5ndGgoaW5kZXhlcywgY2hvaWNlTGVuZ3RoKSxcbiAgICAgICAgcGVybXV0YXRpb25zID0gcGVybXV0YXRpb25zRnJvbUNob2ljZXMoY2hvaWNlcyk7XG5cbiAgcmV0dXJuIHBlcm11dGF0aW9ucztcbn1cbiJdLCJuYW1lcyI6WyJ3cml0ZUZpbGUiLCJmaWxlU3lzdGVtVXRpbGl0aWVzIiwid3JpdGVQZXJtdXRhdGlvbnNNYXRyaXhGaWxlIiwicGVybXV0YXRpb25zTWF0cml4RnJvbU5vdGhpbmciLCJwZXJtdXRhdGlvbnNNYXRyaXgiLCJpbmRleGVzTGVuZ3RoIiwiTUFYSU1VTV9JTkRFWEVTX0xFTkdUSCIsInBlcm11dGF0aW9uc0FycmF5IiwicGVybXV0YXRpb25MZW5ndGgiLCJNQVhJTVVNX1BFUk1VVEFUSU9OX0xFTkdUSCIsInBlcm11dGF0aW9ucyIsInBlcm11dGF0aW9uc0Zyb21JbmRleGVzTGVuZ3RoQW5kUGVybXV0YXRpb25MZW5ndGgiLCJwdXNoIiwicGVybXV0YXRpb25zTWF0cml4SlNPTiIsIkpTT04iLCJzdHJpbmdpZnkiLCJwZXJtdXRhdGlvbnNNYXRyaXhGaWxlTmFtZSIsInBlcm11dGF0aW9uc01hdHJpeEZpbGVDb250ZW50IiwicGVybXV0YXRpb25zRnJvbUNob2ljZSIsImNob2ljZSIsImNob2ljZUxlbmd0aCIsImxlbmd0aCIsInBlcm11dGF0aW9uIiwic2xpY2UiLCJpbm5lckNob2ljZSIsInN0YXJ0IiwiZGVsZXRlQ291bnQiLCJpbmRleGVzIiwic3BsaWNlIiwiZmlyc3RJbmRleCIsImZpcnN0IiwiaW5uZXJQZXJtdXRhdGlvbnMiLCJmb3JFYWNoIiwiaW5uZXJQZXJtdXRhdGlvbiIsInBvc2l0aW9uIiwicGVybXV0YXRpb25zRnJvbUNob2ljZXMiLCJjaG9pY2VzIiwiY2hvaWNlUGVybXV0YXRpb25zIiwiaW5kZXhlc0Zyb21JbmRleGVzTGVuZ3RoIiwiaW5kZXgiLCJjaG9pY2VzRnJvbUluZGV4ZXNBbmRDaG9pY2VMZW5ndGgiLCJpbm5lckluZGV4ZXMiLCJkZWxldGVkSW5kZXhlcyIsImxhc3REZWxldGVkSW5kZXgiLCJsYXN0IiwiaW5uZXJDaG9pY2VzIiwiaW5uZXJDaG9pY2VMZW5ndGgiXSwibWFwcGluZ3MiOiJBQUFBOzs7O3lCQUVvQztxQkFFRjt5QkFDaUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRW5FLElBQU0sQUFBRUEsWUFBY0Ms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