occam-verify-cli 0.0.368 → 0.0.370

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.
@@ -0,0 +1,223 @@
1
+ "use strict";
2
+
3
+ import ReleaseContext from "../../context/release";
4
+
5
+ import { push } from "../../utilities/array";
6
+ import { customGrammarFromRelease } from "../../utilities/customGrammar";
7
+
8
+ export default class DirectoryReleaseContext extends ReleaseContext {
9
+ constructor(log, verified, callbacks, customGrammar, florenceLexer, florenceParser, releaseContexts, fileContexts, release) {
10
+ super(log, verified, callbacks, customGrammar, florenceLexer, florenceParser, releaseContexts);
11
+
12
+ this.fileContexts = fileContexts;
13
+ this.release = release;
14
+ }
15
+
16
+ getFileContexts() {
17
+ return this.fileContexts;
18
+ }
19
+
20
+ getRelease() {
21
+ return this.release;
22
+ }
23
+
24
+ getReleaseName() {
25
+ const releaseName = this.release.getName();
26
+
27
+ return releaseName;
28
+ }
29
+
30
+ getFile(filePath) { return this.release.getFile(filePath); }
31
+
32
+ getVersion() { return this.release.getVersion(); }
33
+
34
+ getFilePaths() { return this.release.getFilePaths(); }
35
+
36
+ getDependencies() { return this.release.getDependencies(); }
37
+
38
+ matchShortenedVersion(shortenedVersion) { return this.release.matchShortenedVersion(shortenedVersion); }
39
+
40
+ getRules(releaseNames = []) {
41
+ const rules = [],
42
+ releaseName = this.getReleaseName(),
43
+ releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
44
+
45
+ if (!releaseNamesIncludesReleaseName) {
46
+ releaseNames.push(releaseName);
47
+
48
+ const bubble = false;
49
+
50
+ this.fileContexts.forEach((fileContext) => {
51
+ const fileContextRules = fileContext.getRules(bubble);
52
+
53
+ push(rules, fileContextRules);
54
+ });
55
+
56
+ this.releaseContexts.forEach((releaseContext) => {
57
+ const releaseContextRules = releaseContext.getRules(releaseNames);
58
+
59
+ push(rules, releaseContextRules);
60
+ });
61
+ }
62
+
63
+ return rules;
64
+ }
65
+
66
+ getTypes(releaseNames = []) {
67
+ const types = [],
68
+ releaseName = this.getReleaseName(),
69
+ releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
70
+
71
+ if (!releaseNamesIncludesReleaseName) {
72
+ releaseNames.push(releaseName);
73
+
74
+ const bubble = false;
75
+
76
+ this.fileContexts.forEach((fileContext) => {
77
+ const fileContextTypes = fileContext.getTypes(bubble);
78
+
79
+ push(types, fileContextTypes);
80
+ });
81
+
82
+ this.releaseContexts.forEach((releaseContext) => {
83
+ const releaseContextTypes = releaseContext.getTypes(releaseNames);
84
+
85
+ push(types, releaseContextTypes);
86
+ });
87
+ }
88
+
89
+ return types;
90
+ }
91
+
92
+ getAxioms(releaseNames = []) {
93
+ const axioms = [],
94
+ releaseName = this.getReleaseName(),
95
+ releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
96
+
97
+ if (!releaseNamesIncludesReleaseName) {
98
+ releaseNames.push(releaseName);
99
+
100
+ const bubble = false;
101
+
102
+ this.fileContexts.forEach((fileContext) => {
103
+ const fileContextAxioms = fileContext.getAxioms(bubble);
104
+
105
+ push(axioms, fileContextAxioms);
106
+ });
107
+
108
+ this.releaseContexts.forEach((releaseContext) => {
109
+ const releaseContextAxioms = releaseContext.getAxioms(releaseNames);
110
+
111
+ push(axioms, releaseContextAxioms);
112
+ });
113
+ }
114
+
115
+ return axioms;
116
+ }
117
+
118
+ getLabels(releaseNames = []) {
119
+ const labels = [],
120
+ releaseName = this.getReleaseName(),
121
+ releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
122
+
123
+ if (!releaseNamesIncludesReleaseName) {
124
+ releaseNames.push(releaseName);
125
+
126
+ const bubble = false;
127
+
128
+ this.fileContexts.forEach((fileContext) => {
129
+ const fileContextLabels = fileContext.getLabels(bubble);
130
+
131
+ push(labels, fileContextLabels);
132
+ });
133
+
134
+ this.releaseContexts.forEach((releaseContext) => {
135
+ const releaseContextLabels = releaseContext.getLabels(releaseNames);
136
+
137
+ push(labels, releaseContextLabels);
138
+ });
139
+ }
140
+
141
+ return labels;
142
+ }
143
+
144
+ getCombinators(releaseNames = []) {
145
+ const combinators = [],
146
+ releaseName = this.getReleaseName(),
147
+ releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
148
+
149
+ if (!releaseNamesIncludesReleaseName) {
150
+ releaseNames.push(releaseName);
151
+
152
+ const bubble = false;
153
+
154
+ this.fileContexts.forEach((fileContext) => {
155
+ const fileContextCombinators = fileContext.getCombinators(bubble);
156
+
157
+ push(combinators, fileContextCombinators);
158
+ });
159
+
160
+ this.releaseContexts.forEach((releaseContext) => {
161
+ const releaseContextCombinators = releaseContext.getCombinators(releaseNames);
162
+
163
+ push(combinators, releaseContextCombinators);
164
+ });
165
+ }
166
+
167
+ return combinators;
168
+ }
169
+
170
+ getConstructors(releaseNames = []) {
171
+ const constructors = [],
172
+ releaseName = this.getReleaseName(),
173
+ releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
174
+
175
+ if (!releaseNamesIncludesReleaseName) {
176
+ releaseNames.push(releaseName);
177
+
178
+ const bubble = false;
179
+
180
+ this.fileContexts.forEach((fileContext) => {
181
+ const fileContextConstructors = fileContext.getConstructors(bubble);
182
+
183
+ push(constructors, fileContextConstructors);
184
+ });
185
+
186
+ this.releaseContexts.forEach((releaseContext) => {
187
+ const releaseContextConstructors = releaseContext.getConstructors(releaseNames);
188
+
189
+ push(constructors, releaseContextConstructors);
190
+ });
191
+ }
192
+
193
+ return constructors;
194
+ }
195
+
196
+ addFileContext(fileContext) {
197
+ this.fileContexts.push(fileContext);
198
+ }
199
+
200
+ toJSON() {
201
+ const json = [];
202
+
203
+ this.fileContexts.forEach((fileContext) => {
204
+ const fileContextJSON = fileContext.toJSON();
205
+
206
+ push(json, fileContextJSON);
207
+ });
208
+
209
+ return json;
210
+ }
211
+
212
+ static fromLogReleaseAndCallbacks(log, release, callbacks) {
213
+ const verified = false,
214
+ customGrammar = customGrammarFromRelease(release),
215
+ florenceLexer = null,
216
+ florenceParser = null,
217
+ releaseContexts = null,
218
+ fileContexts = [],
219
+ releaseContext = new DirectoryReleaseContext(log, verified, callbacks, customGrammar, florenceLexer, florenceParser, releaseContexts, fileContexts, release);
220
+
221
+ return releaseContext;
222
+ }
223
+ }
@@ -2,20 +2,17 @@
2
2
 
3
3
  import { lexersUtilities, parsersUtilities } from "occam-custom-grammars";
4
4
 
5
- import { push } from "../utilities/array";
6
5
  import { customGrammarFromRelease, combinedCustomGrammarFromReleaseContexts } from "../utilities/customGrammar";
7
6
 
8
7
  const { florenceLexerFromCombinedCustomGrammar } = lexersUtilities,
9
8
  { florenceParserFromCombinedCustomGrammar } = parsersUtilities;
10
9
 
11
10
  export default class ReleaseContext {
12
- constructor(log, release, callbacks, verified, customGrammar, fileContexts, florenceLexer, florenceParser, releaseContexts) {
11
+ constructor(log, verified, callbacks, customGrammar, florenceLexer, florenceParser, releaseContexts) {
13
12
  this.log = log;
14
- this.release = release;
15
- this.callbacks = callbacks;
16
13
  this.verified = verified;
14
+ this.callbacks = callbacks;
17
15
  this.customGrammar = customGrammar;
18
- this.fileContexts = fileContexts;
19
16
  this.florenceLexer = florenceLexer;
20
17
  this.florenceParser = florenceParser;
21
18
  this.releaseContexts = releaseContexts;
@@ -25,26 +22,18 @@ export default class ReleaseContext {
25
22
  return this.log;
26
23
  }
27
24
 
28
- getRelease() {
29
- return this.release;
25
+ isVerified() {
26
+ return this.verified;
30
27
  }
31
28
 
32
29
  getCallbacks() {
33
30
  return this.callbacks;
34
31
  }
35
32
 
36
- isVerified() {
37
- return this.verified;
38
- }
39
-
40
33
  getCustomGrammar() {
41
34
  return this.customGrammar;
42
35
  }
43
36
 
44
- getFileContexts() {
45
- return this.fileContexts;
46
- }
47
-
48
37
  getFlorenceLexer() {
49
38
  return this.florenceLexer;
50
39
  }
@@ -57,182 +46,6 @@ export default class ReleaseContext {
57
46
  return this.releaseContexts;
58
47
  }
59
48
 
60
- getFile(filePath) { return this.release.getFile(filePath); }
61
-
62
- getVersion() { return this.release.getVersion(); }
63
-
64
- getFilePaths() { return this.release.getFilePaths(); }
65
-
66
- getDependencies() { return this.release.getDependencies(); }
67
-
68
- matchShortenedVersion(shortenedVersion) { return this.release.matchShortenedVersion(shortenedVersion); }
69
-
70
- getReleaseName() {
71
- const releaseName = this.release.getName();
72
-
73
- return releaseName;
74
- }
75
-
76
- getRules(releaseNames = []) {
77
- const rules = [],
78
- releaseName = this.getReleaseName(),
79
- releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
80
-
81
- if (!releaseNamesIncludesReleaseName) {
82
- releaseNames.push(releaseName);
83
-
84
- const bubble = false;
85
-
86
- this.fileContexts.forEach((fileContext) => {
87
- const fileContextRules = fileContext.getRules(bubble);
88
-
89
- push(rules, fileContextRules);
90
- });
91
-
92
- this.releaseContexts.forEach((releaseContext) => {
93
- const releaseContextRules = releaseContext.getRules(releaseNames);
94
-
95
- push(rules, releaseContextRules);
96
- });
97
- }
98
-
99
- return rules;
100
- }
101
-
102
- getTypes(releaseNames = []) {
103
- const types = [],
104
- releaseName = this.getReleaseName(),
105
- releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
106
-
107
- if (!releaseNamesIncludesReleaseName) {
108
- releaseNames.push(releaseName);
109
-
110
- const bubble = false;
111
-
112
- this.fileContexts.forEach((fileContext) => {
113
- const fileContextTypes = fileContext.getTypes(bubble);
114
-
115
- push(types, fileContextTypes);
116
- });
117
-
118
- this.releaseContexts.forEach((releaseContext) => {
119
- const releaseContextTypes = releaseContext.getTypes(releaseNames);
120
-
121
- push(types, releaseContextTypes);
122
- });
123
- }
124
-
125
- return types;
126
- }
127
-
128
- getAxioms(releaseNames = []) {
129
- const axioms = [],
130
- releaseName = this.getReleaseName(),
131
- releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
132
-
133
- if (!releaseNamesIncludesReleaseName) {
134
- releaseNames.push(releaseName);
135
-
136
- const bubble = false;
137
-
138
- this.fileContexts.forEach((fileContext) => {
139
- const fileContextAxioms = fileContext.getAxioms(bubble);
140
-
141
- push(axioms, fileContextAxioms);
142
- });
143
-
144
- this.releaseContexts.forEach((releaseContext) => {
145
- const releaseContextAxioms = releaseContext.getAxioms(releaseNames);
146
-
147
- push(axioms, releaseContextAxioms);
148
- });
149
- }
150
-
151
- return axioms;
152
- }
153
-
154
- getLabels(releaseNames = []) {
155
- const labels = [],
156
- releaseName = this.getReleaseName(),
157
- releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
158
-
159
- if (!releaseNamesIncludesReleaseName) {
160
- releaseNames.push(releaseName);
161
-
162
- const bubble = false;
163
-
164
- this.fileContexts.forEach((fileContext) => {
165
- const fileContextLabels = fileContext.getLabels(bubble);
166
-
167
- push(labels, fileContextLabels);
168
- });
169
-
170
- this.releaseContexts.forEach((releaseContext) => {
171
- const releaseContextLabels = releaseContext.getLabels(releaseNames);
172
-
173
- push(labels, releaseContextLabels);
174
- });
175
- }
176
-
177
- return labels;
178
- }
179
-
180
- getCombinators(releaseNames = []) {
181
- const combinators = [],
182
- releaseName = this.getReleaseName(),
183
- releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
184
-
185
- if (!releaseNamesIncludesReleaseName) {
186
- releaseNames.push(releaseName);
187
-
188
- const bubble = false;
189
-
190
- this.fileContexts.forEach((fileContext) => {
191
- const fileContextCombinators = fileContext.getCombinators(bubble);
192
-
193
- push(combinators, fileContextCombinators);
194
- });
195
-
196
- this.releaseContexts.forEach((releaseContext) => {
197
- const releaseContextCombinators = releaseContext.getCombinators(releaseNames);
198
-
199
- push(combinators, releaseContextCombinators);
200
- });
201
- }
202
-
203
- return combinators;
204
- }
205
-
206
- getConstructors(releaseNames = []) {
207
- const constructors = [],
208
- releaseName = this.getReleaseName(),
209
- releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
210
-
211
- if (!releaseNamesIncludesReleaseName) {
212
- releaseNames.push(releaseName);
213
-
214
- const bubble = false;
215
-
216
- this.fileContexts.forEach((fileContext) => {
217
- const fileContextConstructors = fileContext.getConstructors(bubble);
218
-
219
- push(constructors, fileContextConstructors);
220
- });
221
-
222
- this.releaseContexts.forEach((releaseContext) => {
223
- const releaseContextConstructors = releaseContext.getConstructors(releaseNames);
224
-
225
- push(constructors, releaseContextConstructors);
226
- });
227
- }
228
-
229
- return constructors;
230
- }
231
-
232
- addFileContext(fileContext) {
233
- this.fileContexts.push(fileContext);
234
- }
235
-
236
49
  setVerified(verified) {
237
50
  this.verified = verified;
238
51
  }
@@ -273,25 +86,13 @@ export default class ReleaseContext {
273
86
  this.releaseContexts = releaseContexts;
274
87
  }
275
88
 
276
- toJSON() {
277
- const json = [];
278
-
279
- this.fileContexts.forEach((fileContext) => {
280
- const fileContextJSON = fileContext.toJSON();
281
-
282
- push(json, fileContextJSON);
283
- });
284
-
285
- return json;
286
- }
287
-
288
89
  static fromLogReleaseAndCallbacks(log, release, callbacks, ...remainingArguments) {
289
90
  const verified = false,
290
91
  customGrammar = customGrammarFromRelease(release),
291
92
  fileContexts = [],
292
93
  florenceLexer = null,
293
94
  florenceParser = null,
294
- releaseContexts = [],
95
+ releaseContexts = null,
295
96
  releaseContext = new ReleaseContext(log, release, callbacks, verified, customGrammar, fileContexts, florenceLexer, florenceParser, releaseContexts, ...remainingArguments);
296
97
 
297
98
  return releaseContext;
package/src/index.js CHANGED
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  export { default as Callbacks } from "./callbacks";
4
- export { default as jsonUtilities } from "./utilities/json";
5
4
  export { default as verifyRelease } from "./verify/release";
6
5
  export { default as ReleaseContext } from "./context/release";
7
6
  export { default as versionChanges } from "./versionChanges";
7
+ export { default as DirectoryReleaseContext } from "./context/release/directory";
8
+
9
+ export { default as jsonUtilities } from "./utilities/json";
8
10
  export { default as versionUtilities } from "./utilities/version";
11
+ export { default as customGrammarUtilities } from "./utilities/customGrammar";
9
12
  export { default as releaseContextUtilities } from "./utilities/releaseContext";
@@ -24,4 +24,9 @@ export function combinedCustomGrammarFromReleaseContexts(releaseContexts) {
24
24
  combinedCustomGrammar = CombinedCustomGrammar.fromCustomGrammars(customGrammars);
25
25
 
26
26
  return combinedCustomGrammar;
27
- }
27
+ }
28
+
29
+ export default {
30
+ customGrammarFromRelease,
31
+ combinedCustomGrammarFromReleaseContexts
32
+ };
@@ -14,7 +14,7 @@ export function createReleaseContext(releaseName, dependentNames, shortenedVersi
14
14
 
15
15
  const { releaseContextFromReleaseName } = context;
16
16
 
17
- releaseContextFromReleaseName(releaseName, (releaseContext) => {
17
+ releaseContextFromReleaseName(releaseName, context, (releaseContext) => {
18
18
  if (releaseContext === null) {
19
19
  const error = true;
20
20