@3f-consulting/spec-controller-core 0.1.0-alpha.4 → 0.1.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assemble/evidenceReconciliationFromSources.d.ts +4 -13
- package/dist/assemble/evidenceReconciliationFromSources.d.ts.map +1 -1
- package/dist/assemble/evidenceReconciliationFromSources.js +17 -22
- package/dist/assemble/evidenceReconciliationFromSources.js.map +1 -1
- package/dist/domain/checkCharacteristics.d.ts +22 -15
- package/dist/domain/checkCharacteristics.d.ts.map +1 -1
- package/dist/domain/checkCharacteristics.js +22 -15
- package/dist/domain/checkCharacteristics.js.map +1 -1
- package/dist/domain/evidenceReconciliation.d.ts +26 -2
- package/dist/domain/evidenceReconciliation.d.ts.map +1 -1
- package/dist/domain/evidenceReconciliation.js +164 -61
- package/dist/domain/evidenceReconciliation.js.map +1 -1
- package/dist/domain/fitnessChecks.d.ts +24 -35
- package/dist/domain/fitnessChecks.d.ts.map +1 -1
- package/dist/domain/fitnessChecks.js +3 -30
- package/dist/domain/fitnessChecks.js.map +1 -1
- package/dist/domain/journal.d.ts +13 -103
- package/dist/domain/journal.d.ts.map +1 -1
- package/dist/domain/journal.js +6 -19
- package/dist/domain/journal.js.map +1 -1
- package/dist/domain/ledger.d.ts.map +1 -1
- package/dist/domain/ledger.js +45 -34
- package/dist/domain/ledger.js.map +1 -1
- package/dist/domain/posting.d.ts.map +1 -1
- package/dist/domain/posting.js +4 -7
- package/dist/domain/posting.js.map +1 -1
- package/dist/domain/qualityCheckFaultMessages.d.ts +7 -2
- package/dist/domain/qualityCheckFaultMessages.d.ts.map +1 -1
- package/dist/domain/qualityCheckFaultMessages.js +7 -2
- package/dist/domain/qualityCheckFaultMessages.js.map +1 -1
- package/dist/domain/qualityCheckReconciliation.d.ts +21 -0
- package/dist/domain/qualityCheckReconciliation.d.ts.map +1 -1
- package/dist/domain/qualityCheckReconciliation.js +40 -105
- package/dist/domain/qualityCheckReconciliation.js.map +1 -1
- package/dist/domain/qualityCheckReconciliationFault.d.ts +3 -1
- package/dist/domain/qualityCheckReconciliationFault.d.ts.map +1 -1
- package/dist/domain/qualityCheckReconciliationFault.js +3 -1
- package/dist/domain/qualityCheckReconciliationFault.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +2 -10
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +24 -71
- package/dist/internal.js.map +1 -1
- package/dist/parse/checkScriptsRunInCI.d.ts +8 -7
- package/dist/parse/checkScriptsRunInCI.d.ts.map +1 -1
- package/dist/parse/checkScriptsRunInCI.js +7 -6
- package/dist/parse/checkScriptsRunInCI.js.map +1 -1
- package/dist/parse/ciStepRecord.d.ts +5 -17
- package/dist/parse/ciStepRecord.d.ts.map +1 -1
- package/dist/parse/ciStepRecord.js +7 -27
- package/dist/parse/ciStepRecord.js.map +1 -1
- package/dist/parse/corpusCodeFaults.d.ts +4 -4
- package/dist/parse/corpusCodeFaults.js +4 -4
- package/dist/parse/corpusFaults.d.ts +24 -36
- package/dist/parse/corpusFaults.d.ts.map +1 -1
- package/dist/parse/corpusFaults.js +16 -32
- package/dist/parse/corpusFaults.js.map +1 -1
- package/dist/parse/corpusGrammarFaults.d.ts +11 -73
- package/dist/parse/corpusGrammarFaults.d.ts.map +1 -1
- package/dist/parse/corpusGrammarFaults.js +27 -58
- package/dist/parse/corpusGrammarFaults.js.map +1 -1
- package/dist/parse/runningStaticChecks.d.ts +3 -2
- package/dist/parse/runningStaticChecks.d.ts.map +1 -1
- package/dist/parse/runningStaticChecks.js +3 -2
- package/dist/parse/runningStaticChecks.js.map +1 -1
- package/dist/parse/scenarios.d.ts +27 -12
- package/dist/parse/scenarios.d.ts.map +1 -1
- package/dist/parse/scenarios.js +47 -85
- package/dist/parse/scenarios.js.map +1 -1
- package/dist/parse/targetCorpus.d.ts +21 -11
- package/dist/parse/targetCorpus.d.ts.map +1 -1
- package/dist/parse/targetCorpus.js +16 -19
- package/dist/parse/targetCorpus.js.map +1 -1
- package/dist/parse/targetManifest.d.ts +10 -85
- package/dist/parse/targetManifest.d.ts.map +1 -1
- package/dist/parse/targetManifest.js +47 -137
- package/dist/parse/targetManifest.js.map +1 -1
- package/dist/provenance/provenance.d.ts +8 -11
- package/dist/provenance/provenance.d.ts.map +1 -1
- package/dist/provenance/provenance.js +2 -3
- package/dist/provenance/provenance.js.map +1 -1
- package/dist/render/evidenceGrid.d.ts +45 -0
- package/dist/render/evidenceGrid.d.ts.map +1 -0
- package/dist/render/evidenceGrid.js +145 -0
- package/dist/render/evidenceGrid.js.map +1 -0
- package/dist/render/markdown.d.ts.map +1 -1
- package/dist/render/markdown.js +85 -190
- package/dist/render/markdown.js.map +1 -1
- package/dist/render/runVerdict.d.ts +3 -2
- package/dist/render/runVerdict.d.ts.map +1 -1
- package/dist/render/runVerdict.js +3 -2
- package/dist/render/runVerdict.js.map +1 -1
- package/dist/render/staticChecks.d.ts.map +1 -1
- package/dist/render/staticChecks.js +10 -1
- package/dist/render/staticChecks.js.map +1 -1
- package/package.json +1 -1
- package/dist/domain/thresholds.d.ts +0 -123
- package/dist/domain/thresholds.d.ts.map +0 -1
- package/dist/domain/thresholds.js +0 -185
- package/dist/domain/thresholds.js.map +0 -1
- package/dist/parse/checkStaticEvidenceObligations.d.ts +0 -32
- package/dist/parse/checkStaticEvidenceObligations.d.ts.map +0 -1
- package/dist/parse/checkStaticEvidenceObligations.js +0 -78
- package/dist/parse/checkStaticEvidenceObligations.js.map +0 -1
- package/dist/parse/corpusClaimFaults.d.ts +0 -104
- package/dist/parse/corpusClaimFaults.d.ts.map +0 -1
- package/dist/parse/corpusClaimFaults.js +0 -128
- package/dist/parse/corpusClaimFaults.js.map +0 -1
- package/dist/parse/measurements.d.ts +0 -47
- package/dist/parse/measurements.d.ts.map +0 -1
- package/dist/parse/measurements.js +0 -65
- package/dist/parse/measurements.js.map +0 -1
- package/dist/render/measuredItem.d.ts +0 -30
- package/dist/render/measuredItem.d.ts.map +0 -1
- package/dist/render/measuredItem.js +0 -43
- package/dist/render/measuredItem.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkScriptsRunInCI.js","sourceRoot":"","sources":["../../src/parse/checkScriptsRunInCI.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"checkScriptsRunInCI.js","sourceRoot":"","sources":["../../src/parse/checkScriptsRunInCI.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
* PURE AND INJECTED, like every reader on this axis: the record arrives as data, parsed at the app
|
|
39
39
|
* edge from the target's own evidence, and the rows arrive from the target's own manifest.
|
|
40
40
|
*/
|
|
41
|
-
import {
|
|
41
|
+
import type { FitnessCheckIndex } from "../domain/fitnessChecks.js";
|
|
42
42
|
import type { GuardEvidenceObservation } from "../model.js";
|
|
43
43
|
/**
|
|
44
44
|
* ONE STEP'S ENTRY in the record, as the dump wrote it.
|
|
@@ -77,7 +77,7 @@ export interface CiStepRecordEntry {
|
|
|
77
77
|
*/
|
|
78
78
|
export type CiStepRecord = Readonly<Record<string, CiStepRecordEntry>>;
|
|
79
79
|
/**
|
|
80
|
-
* The credits a CI RUN'S OWN RECORD raises — one per entry naming a configured
|
|
80
|
+
* The credits a CI RUN'S OWN RECORD raises — one per entry naming a configured row, carrying
|
|
81
81
|
* WHAT ITS STEP DID: `satisfied` off a step that succeeded (@SCN-LNT-021) and `failing` off one
|
|
82
82
|
* that failed (@SCN-LNT-028). There is no third answer: a step the record says was skipped is
|
|
83
83
|
* broken evidence, whatever its row says (3F-3252).
|
|
@@ -112,24 +112,12 @@ export type CiStepRecord = Readonly<Record<string, CiStepRecordEntry>>;
|
|
|
112
112
|
* own checkout, over the target's own tree. Neither is the manifest-mentions-a-name reading the
|
|
113
113
|
* discovered route takes.
|
|
114
114
|
*
|
|
115
|
-
* A MEASURED ROW RAISES NOTHING HERE, AND THAT IS THIS READER'S OWN CLAIM (@SCN-LNT-022): its
|
|
116
|
-
* credit is its NUMBER, which arrives on the measurement stream already citing, and a credit
|
|
117
|
-
* raised beside it would be a second credit answering one Evidence Obligation — quietly, because
|
|
118
|
-
* the row does name that characteristic. A step's outcome is an exit code and an exit code is not
|
|
119
|
-
* a measurement, so there was never a reading of this document that could have answered such a
|
|
120
|
-
* row anyway.
|
|
121
|
-
*
|
|
122
115
|
* AN ENTRY NO CONFIGURED ROW ANSWERS IS NOT THIS READER'S BUSINESS. `checkout`, `setup-node` and
|
|
123
116
|
* the dump step itself are steps and not checks, and silence about them is the correct report.
|
|
124
117
|
*
|
|
125
|
-
* AND A CONFIGURED ROW NO ENTRY ANSWERS RAISES A BROKEN CREDIT
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
* second reading exactly as a static one is: its number is its credit and its own step is still
|
|
129
|
-
* what says it ran — the step whose command wrote that number down (@SCN-LNT-024) — and a number
|
|
130
|
-
* arriving for a row the run recorded no step for is a number from a route that enumerates nothing.
|
|
131
|
-
* The rows are the denominator, and a check quietly lifted out of a pipeline goes dark on the side
|
|
132
|
-
* the pipeline cannot reach.
|
|
118
|
+
* AND A CONFIGURED ROW NO ENTRY ANSWERS RAISES A BROKEN CREDIT (@SCN-LNT-027), which is why this
|
|
119
|
+
* walks the ROWS as well as the record. The rows are the denominator, and a check quietly lifted
|
|
120
|
+
* out of a pipeline goes dark on the side the pipeline cannot reach.
|
|
133
121
|
*/
|
|
134
122
|
export declare function ciStepRecordCredits(record: CiStepRecord | undefined, fitnessChecks: FitnessCheckIndex): GuardEvidenceObservation[];
|
|
135
123
|
//# sourceMappingURL=ciStepRecord.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ciStepRecord.d.ts","sourceRoot":"","sources":["../../src/parse/ciStepRecord.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"ciStepRecord.d.ts","sourceRoot":"","sources":["../../src/parse/ciStepRecord.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,KAAK,EAAgB,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAElF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAyLvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,aAAa,EAAE,iBAAiB,GAC/B,wBAAwB,EAAE,CAqB5B"}
|
|
@@ -38,7 +38,6 @@
|
|
|
38
38
|
* PURE AND INJECTED, like every reader on this axis: the record arrives as data, parsed at the app
|
|
39
39
|
* edge from the target's own evidence, and the rows arrive from the target's own manifest.
|
|
40
40
|
*/
|
|
41
|
-
import { carriesBar, } from "../domain/fitnessChecks.js";
|
|
42
41
|
/** The provider's own two words for a step that RAN, spelled once each. */
|
|
43
42
|
const SUCCESS = "success";
|
|
44
43
|
const FAILURE = "failure";
|
|
@@ -196,7 +195,7 @@ function rowHasNoEntryMessage(scnId) {
|
|
|
196
195
|
"`specController.fitnessChecks` — so the check did not run.");
|
|
197
196
|
}
|
|
198
197
|
/**
|
|
199
|
-
* The credits a CI RUN'S OWN RECORD raises — one per entry naming a configured
|
|
198
|
+
* The credits a CI RUN'S OWN RECORD raises — one per entry naming a configured row, carrying
|
|
200
199
|
* WHAT ITS STEP DID: `satisfied` off a step that succeeded (@SCN-LNT-021) and `failing` off one
|
|
201
200
|
* that failed (@SCN-LNT-028). There is no third answer: a step the record says was skipped is
|
|
202
201
|
* broken evidence, whatever its row says (3F-3252).
|
|
@@ -231,24 +230,12 @@ function rowHasNoEntryMessage(scnId) {
|
|
|
231
230
|
* own checkout, over the target's own tree. Neither is the manifest-mentions-a-name reading the
|
|
232
231
|
* discovered route takes.
|
|
233
232
|
*
|
|
234
|
-
* A MEASURED ROW RAISES NOTHING HERE, AND THAT IS THIS READER'S OWN CLAIM (@SCN-LNT-022): its
|
|
235
|
-
* credit is its NUMBER, which arrives on the measurement stream already citing, and a credit
|
|
236
|
-
* raised beside it would be a second credit answering one Evidence Obligation — quietly, because
|
|
237
|
-
* the row does name that characteristic. A step's outcome is an exit code and an exit code is not
|
|
238
|
-
* a measurement, so there was never a reading of this document that could have answered such a
|
|
239
|
-
* row anyway.
|
|
240
|
-
*
|
|
241
233
|
* AN ENTRY NO CONFIGURED ROW ANSWERS IS NOT THIS READER'S BUSINESS. `checkout`, `setup-node` and
|
|
242
234
|
* the dump step itself are steps and not checks, and silence about them is the correct report.
|
|
243
235
|
*
|
|
244
|
-
* AND A CONFIGURED ROW NO ENTRY ANSWERS RAISES A BROKEN CREDIT
|
|
245
|
-
*
|
|
246
|
-
*
|
|
247
|
-
* second reading exactly as a static one is: its number is its credit and its own step is still
|
|
248
|
-
* what says it ran — the step whose command wrote that number down (@SCN-LNT-024) — and a number
|
|
249
|
-
* arriving for a row the run recorded no step for is a number from a route that enumerates nothing.
|
|
250
|
-
* The rows are the denominator, and a check quietly lifted out of a pipeline goes dark on the side
|
|
251
|
-
* the pipeline cannot reach.
|
|
236
|
+
* AND A CONFIGURED ROW NO ENTRY ANSWERS RAISES A BROKEN CREDIT (@SCN-LNT-027), which is why this
|
|
237
|
+
* walks the ROWS as well as the record. The rows are the denominator, and a check quietly lifted
|
|
238
|
+
* out of a pipeline goes dark on the side the pipeline cannot reach.
|
|
252
239
|
*/
|
|
253
240
|
export function ciStepRecordCredits(record, fitnessChecks) {
|
|
254
241
|
if (record === undefined)
|
|
@@ -259,22 +246,15 @@ export function ciStepRecordCredits(record, fitnessChecks) {
|
|
|
259
246
|
const row = fitnessChecks.get(citedScn);
|
|
260
247
|
if (row === undefined)
|
|
261
248
|
continue;
|
|
262
|
-
// RECORDED BEFORE THE BAR IS ASKED ABOUT, and the order is the rule rather than a convenience.
|
|
263
|
-
// A measured row's CREDIT is skipped here (@SCN-LNT-022) and its ENUMERATION never was: its
|
|
264
|
-
// step appearing in the record is the step whose command wrote its number down (@SCN-LNT-024),
|
|
265
|
-
// and that is what says its check ran, exactly as for a static row. Asking `carriesBar` first
|
|
266
|
-
// would leave every measured row looking unrecorded on a record that carried it.
|
|
267
249
|
recorded.add(citedScn);
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
// NO `continue` ON A READING THIS READER HAS NONE FOR (@SCN-LNT-026). Every configured static
|
|
271
|
-
// row the record holds an entry for raises something; which of the two shapes it raises is the
|
|
250
|
+
// NO `continue` ON A READING THIS READER HAS NONE FOR (@SCN-LNT-026). Every configured row the
|
|
251
|
+
// record holds an entry for raises something; which of the two shapes it raises is the
|
|
272
252
|
// credit builder's answer, and the fall-through reaches the loud one rather than the exit.
|
|
273
253
|
credits.push(creditOf(citedScn, row, readingOf(step.outcome), step.outcome));
|
|
274
254
|
}
|
|
275
255
|
// AND THE ROWS ARE WALKED TOO, NOT ONLY THE RECORD (@SCN-LNT-027). The rows come from the
|
|
276
256
|
// target's manifest and the enumeration from the run's own record, so a row the record held no
|
|
277
|
-
// entry for is a check that did not run — broken evidence naming that row
|
|
257
|
+
// entry for is a check that did not run — broken evidence naming that row.
|
|
278
258
|
for (const [scnId, row] of fitnessChecks) {
|
|
279
259
|
if (recorded.has(scnId))
|
|
280
260
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ciStepRecord.js","sourceRoot":"","sources":["../../src/parse/ciStepRecord.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;
|
|
1
|
+
{"version":3,"file":"ciStepRecord.js","sourceRoot":"","sources":["../../src/parse/ciStepRecord.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* THE CODE RULES of `spec-controller tags` — everything about a feature CODE binding to a feature
|
|
3
|
-
* FILE. Its
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* FILE. Its sibling holds the other question: `corpusGrammarFaults.ts` whether a tag on a scenario
|
|
4
|
+
* means anything. `corpusFaults.ts` composes the two and is the only entry point either of them
|
|
5
|
+
* has.
|
|
6
6
|
*
|
|
7
7
|
* WHY THE MODULE IS SPLIT AT ALL, AND WHY ON THIS SEAM. The rules were authored in one module and
|
|
8
8
|
* that module reached the 400-line `max-lines` ceiling with four more grammar clauses still to
|
|
9
9
|
* land. The ceiling is not negotiable and an exception entry would have bought silence rather than
|
|
10
|
-
* a smaller module (@SCN-
|
|
10
|
+
* a smaller module (@SCN-FIT-001), so the split is the answer canon already named. The seam is the
|
|
11
11
|
* one the rules themselves have: a code rule asks *does this code name exactly one file, and is
|
|
12
12
|
* this scenario written in the file its own code names* — questions answered from the corpus's
|
|
13
13
|
* SHAPE, needing nothing about the target. A grammar rule asks *does this word mean anything
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* THE CODE RULES of `spec-controller tags` — everything about a feature CODE binding to a feature
|
|
3
|
-
* FILE. Its
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* FILE. Its sibling holds the other question: `corpusGrammarFaults.ts` whether a tag on a scenario
|
|
4
|
+
* means anything. `corpusFaults.ts` composes the two and is the only entry point either of them
|
|
5
|
+
* has.
|
|
6
6
|
*
|
|
7
7
|
* WHY THE MODULE IS SPLIT AT ALL, AND WHY ON THIS SEAM. The rules were authored in one module and
|
|
8
8
|
* that module reached the 400-line `max-lines` ceiling with four more grammar clauses still to
|
|
9
9
|
* land. The ceiling is not negotiable and an exception entry would have bought silence rather than
|
|
10
|
-
* a smaller module (@SCN-
|
|
10
|
+
* a smaller module (@SCN-FIT-001), so the split is the answer canon already named. The seam is the
|
|
11
11
|
* one the rules themselves have: a code rule asks *does this code name exactly one file, and is
|
|
12
12
|
* this scenario written in the file its own code names* — questions answered from the corpus's
|
|
13
13
|
* SHAPE, needing nothing about the target. A grammar rule asks *does this word mean anything
|
|
@@ -28,17 +28,16 @@
|
|
|
28
28
|
* I/O wearing a callback, and `lint:boundaries`' `core-imports-io` rule reds over exactly that
|
|
29
29
|
* (@SCN-EPG-001's `io-import` arm until 3F-3437).
|
|
30
30
|
*
|
|
31
|
-
* WHAT IS LEFT IN THIS MODULE, AND WHAT MOVED OUT. The rules themselves live in
|
|
32
|
-
* `corpusCodeFaults.ts` (a code binding to a file)
|
|
33
|
-
* something)
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* another.
|
|
31
|
+
* WHAT IS LEFT IN THIS MODULE, AND WHAT MOVED OUT. The rules themselves live in two siblings —
|
|
32
|
+
* `corpusCodeFaults.ts` (a code binding to a file) and `corpusGrammarFaults.ts` (a tag meaning
|
|
33
|
+
* something) — because the joined module reached the 400-line `max-lines` ceiling, and canon rules
|
|
34
|
+
* that split rather than an exception entry (@SCN-FIT-001). A third sibling held the claim rule
|
|
35
|
+
* (how many checks one scenario claims) until it left with the measured axis (3F-3516). What
|
|
36
|
+
* stays here is the composition and the VOCABULARY: the fault kinds, the shape of a discovered
|
|
37
|
+
* file, and the one entry point any sibling has. Splitting on any other seam would have put a
|
|
38
|
+
* rule's inputs in one module and its finding's wording in another.
|
|
39
39
|
*/
|
|
40
40
|
import type { PackageJsonScripts } from "./checkScriptsRunInCI.js";
|
|
41
|
-
import type { KillFloorReader } from "./targetManifest.js";
|
|
42
41
|
/**
|
|
43
42
|
* A target's manifest as these rules read it — its scripts, and its `specController` block.
|
|
44
43
|
*
|
|
@@ -49,20 +48,19 @@ import type { KillFloorReader } from "./targetManifest.js";
|
|
|
49
48
|
export type TargetManifest = PackageJsonScripts & {
|
|
50
49
|
specController?: {
|
|
51
50
|
deferralTags?: unknown;
|
|
52
|
-
thresholds?: unknown;
|
|
53
51
|
fitnessChecks?: unknown;
|
|
54
52
|
};
|
|
55
53
|
};
|
|
56
54
|
/**
|
|
57
55
|
* One way a corpus breaks the `@SCN` scheme's own rules.
|
|
58
56
|
*
|
|
59
|
-
*
|
|
57
|
+
* THREE KINDS, NOT ONE, because they are three faults with three different fixes — the same
|
|
60
58
|
* argument that split the tier-tag check's findings three ways. `duplicate-feature-code` says
|
|
61
59
|
* *give one of these files a code of its own*; `foreign-scenario-code` says *this id names a
|
|
62
|
-
* file it is not written in*; `unrecognised-tag` says *this word means nothing here
|
|
63
|
-
* `multiple-check-tags
|
|
64
|
-
* fault's remedy at the other's author, which is precisely how a mistyped tier tag
|
|
65
|
-
* invisible for as long as it did.
|
|
60
|
+
* file it is not written in*; and `unrecognised-tag` says *this word means nothing here*. A
|
|
61
|
+
* fourth, `multiple-check-tags`, left with the measured axis (3F-3516). Collapsing any two would
|
|
62
|
+
* print one fault's remedy at the other's author, which is precisely how a mistyped tier tag
|
|
63
|
+
* stayed invisible for as long as it did.
|
|
66
64
|
*
|
|
67
65
|
* THE UNION IS THE COMMAND'S WHOLE VOCABULARY, and it is stated once here rather than grown a
|
|
68
66
|
* member at a time by whichever rule landed last. That is also why it stayed in this module when
|
|
@@ -70,13 +68,12 @@ export type TargetManifest = PackageJsonScripts & {
|
|
|
70
68
|
* assembled from both sides would be a statement about the command that no single file made. The
|
|
71
69
|
* two CODE rules have producers — `duplicate-feature-code` (@SCN-STG-010) and
|
|
72
70
|
* `foreign-scenario-code` (@SCN-STG-011); so does `unrecognised-tag` (@SCN-STG-002, and the
|
|
73
|
-
* clauses that narrow what it reaches at @SCN-STG-003, @SCN-STG-004
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
* written down ahead of.
|
|
71
|
+
* clauses that narrow what it reaches at @SCN-STG-003, @SCN-STG-004 and @SCN-STG-005). Every
|
|
72
|
+
* member of the union is raised by a rule with a scenario of its own, which is the state the kinds
|
|
73
|
+
* were written down ahead of.
|
|
77
74
|
*/
|
|
78
75
|
export interface CorpusFault {
|
|
79
|
-
readonly kind: "unrecognised-tag" | "
|
|
76
|
+
readonly kind: "unrecognised-tag" | "duplicate-feature-code" | "foreign-scenario-code";
|
|
80
77
|
readonly message: string;
|
|
81
78
|
}
|
|
82
79
|
/** One discovered feature file, as the edge read it. */
|
|
@@ -106,31 +103,22 @@ export interface CorpusFile {
|
|
|
106
103
|
*
|
|
107
104
|
* @param input.features the target's discovered feature files — slug, header code and source,
|
|
108
105
|
* read ONCE at the edge so two discoveries can never disagree about which corpus was judged.
|
|
109
|
-
* @param input.packageJson the TARGET's manifest, from which the
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
106
|
+
* @param input.packageJson the TARGET's manifest, from which the recognised deferral set is
|
|
107
|
+
* resolved INSIDE this engine — through the same resolver the reconciliation reads it with, so the
|
|
108
|
+
* rules here admit exactly what the reconciliation honours as a skip. READ SINCE 3F-3303, by the
|
|
109
|
+
* grammar rules and only by them: the deferral set (@SCN-PND-021) is resolved from it. The
|
|
110
|
+
* check-tag halves once read from it — the REGISTERED half (@SCN-STG-005) and the MEASURED half
|
|
111
|
+
* — are retired (3F-3161, 3F-3516). The code rules never see it, which is the seam the module
|
|
112
|
+
* split was drawn on.
|
|
116
113
|
* @param input.deferralTags the application layer's STARTER deferral set, which a target's
|
|
117
114
|
* config may only extend. Product policy, single-sourced there and never here — the same
|
|
118
115
|
* argument, and the same parameter, as the reconcile composition's. Read since 3F-3303, and
|
|
119
116
|
* handed onward unresolved: what turns it into the target's recognised set is
|
|
120
117
|
* `resolveDeferralTags`, called once beside the rule that asks the question.
|
|
121
|
-
* @param input.killFloor the reader over the target's mutation records, injected as a closure
|
|
122
|
-
* because the thresholds resolver has to reach one to read a bar that names a gate
|
|
123
|
-
* (@SCN-MUT-012). READ SINCE 3F-3306, by the grammar rules and only by them: the check-tag
|
|
124
|
-
* union's MEASURED half is the target's thresholds, and resolving those is what reaches a record.
|
|
125
|
-
* It is handed onward UNUSED-LOOKING and that is deliberate — a threshold KEY survives whatever
|
|
126
|
-
* its bar resolves to (@SCN-MUT-003), so this reader cannot move a tag-grammar verdict today.
|
|
127
|
-
* What it buys is that the set is resolved by the resolver that owns it, on the tree the manifest
|
|
128
|
-
* came from, rather than by a cheaper reading beside it that would agree until it did not.
|
|
129
118
|
*/
|
|
130
119
|
export declare function corpusFaults(input: {
|
|
131
120
|
features: readonly CorpusFile[];
|
|
132
121
|
packageJson: TargetManifest;
|
|
133
122
|
deferralTags: readonly string[];
|
|
134
|
-
killFloor: KillFloorReader;
|
|
135
123
|
}): CorpusFault[];
|
|
136
124
|
//# sourceMappingURL=corpusFaults.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"corpusFaults.d.ts","sourceRoot":"","sources":["../../src/parse/corpusFaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAInE
|
|
1
|
+
{"version":3,"file":"corpusFaults.d.ts","sourceRoot":"","sources":["../../src/parse/corpusFaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAInE;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG;IAChD,cAAc,CAAC,EAAE;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EACT,kBAAkB,GAClB,wBAAwB,GACxB,uBAAuB,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;OAQG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;IAChC,WAAW,EAAE,cAAc,CAAC;IAC5B,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC,GAAG,WAAW,EAAE,CAMhB"}
|
|
@@ -28,16 +28,15 @@
|
|
|
28
28
|
* I/O wearing a callback, and `lint:boundaries`' `core-imports-io` rule reds over exactly that
|
|
29
29
|
* (@SCN-EPG-001's `io-import` arm until 3F-3437).
|
|
30
30
|
*
|
|
31
|
-
* WHAT IS LEFT IN THIS MODULE, AND WHAT MOVED OUT. The rules themselves live in
|
|
32
|
-
* `corpusCodeFaults.ts` (a code binding to a file)
|
|
33
|
-
* something)
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* another.
|
|
31
|
+
* WHAT IS LEFT IN THIS MODULE, AND WHAT MOVED OUT. The rules themselves live in two siblings —
|
|
32
|
+
* `corpusCodeFaults.ts` (a code binding to a file) and `corpusGrammarFaults.ts` (a tag meaning
|
|
33
|
+
* something) — because the joined module reached the 400-line `max-lines` ceiling, and canon rules
|
|
34
|
+
* that split rather than an exception entry (@SCN-FIT-001). A third sibling held the claim rule
|
|
35
|
+
* (how many checks one scenario claims) until it left with the measured axis (3F-3516). What
|
|
36
|
+
* stays here is the composition and the VOCABULARY: the fault kinds, the shape of a discovered
|
|
37
|
+
* file, and the one entry point any sibling has. Splitting on any other seam would have put a
|
|
38
|
+
* rule's inputs in one module and its finding's wording in another.
|
|
39
39
|
*/
|
|
40
|
-
import { multipleCheckTags } from "./corpusClaimFaults.js";
|
|
41
40
|
import { duplicateFeatureCodes, foreignScenarioCodes } from "./corpusCodeFaults.js";
|
|
42
41
|
import { unrecognisedTags } from "./corpusGrammarFaults.js";
|
|
43
42
|
/**
|
|
@@ -50,39 +49,24 @@ import { unrecognisedTags } from "./corpusGrammarFaults.js";
|
|
|
50
49
|
*
|
|
51
50
|
* @param input.features the target's discovered feature files — slug, header code and source,
|
|
52
51
|
* read ONCE at the edge so two discoveries can never disagree about which corpus was judged.
|
|
53
|
-
* @param input.packageJson the TARGET's manifest, from which the
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
52
|
+
* @param input.packageJson the TARGET's manifest, from which the recognised deferral set is
|
|
53
|
+
* resolved INSIDE this engine — through the same resolver the reconciliation reads it with, so the
|
|
54
|
+
* rules here admit exactly what the reconciliation honours as a skip. READ SINCE 3F-3303, by the
|
|
55
|
+
* grammar rules and only by them: the deferral set (@SCN-PND-021) is resolved from it. The
|
|
56
|
+
* check-tag halves once read from it — the REGISTERED half (@SCN-STG-005) and the MEASURED half
|
|
57
|
+
* — are retired (3F-3161, 3F-3516). The code rules never see it, which is the seam the module
|
|
58
|
+
* split was drawn on.
|
|
60
59
|
* @param input.deferralTags the application layer's STARTER deferral set, which a target's
|
|
61
60
|
* config may only extend. Product policy, single-sourced there and never here — the same
|
|
62
61
|
* argument, and the same parameter, as the reconcile composition's. Read since 3F-3303, and
|
|
63
62
|
* handed onward unresolved: what turns it into the target's recognised set is
|
|
64
63
|
* `resolveDeferralTags`, called once beside the rule that asks the question.
|
|
65
|
-
* @param input.killFloor the reader over the target's mutation records, injected as a closure
|
|
66
|
-
* because the thresholds resolver has to reach one to read a bar that names a gate
|
|
67
|
-
* (@SCN-MUT-012). READ SINCE 3F-3306, by the grammar rules and only by them: the check-tag
|
|
68
|
-
* union's MEASURED half is the target's thresholds, and resolving those is what reaches a record.
|
|
69
|
-
* It is handed onward UNUSED-LOOKING and that is deliberate — a threshold KEY survives whatever
|
|
70
|
-
* its bar resolves to (@SCN-MUT-003), so this reader cannot move a tag-grammar verdict today.
|
|
71
|
-
* What it buys is that the set is resolved by the resolver that owns it, on the tree the manifest
|
|
72
|
-
* came from, rather than by a cheaper reading beside it that would agree until it did not.
|
|
73
64
|
*/
|
|
74
65
|
export function corpusFaults(input) {
|
|
75
66
|
return [
|
|
76
67
|
...duplicateFeatureCodes(input.features),
|
|
77
68
|
...foreignScenarioCodes(input.features),
|
|
78
|
-
...unrecognisedTags(input.features, input.packageJson, input.deferralTags
|
|
79
|
-
// THE CLAIM RULE LAST, which is where the private check's own walk put it: below the grammar
|
|
80
|
-
// question, above nothing. Inside that walk the position WAS the parking scope — this rule
|
|
81
|
-
// ran only for scenarios the parked-continue had not already skipped — and here it can only
|
|
82
|
-
// order the findings, so the scope is a clause the rule writes out for itself. What the
|
|
83
|
-
// position still carries is the reading order: a corpus with both faults tells its author
|
|
84
|
-
// which of its words mean nothing before it tells them they have claimed two that do.
|
|
85
|
-
...multipleCheckTags(input.features, input.packageJson, input.deferralTags, input.killFloor),
|
|
69
|
+
...unrecognisedTags(input.features, input.packageJson, input.deferralTags),
|
|
86
70
|
];
|
|
87
71
|
}
|
|
88
72
|
//# sourceMappingURL=corpusFaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"corpusFaults.js","sourceRoot":"","sources":["../../src/parse/corpusFaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"corpusFaults.js","sourceRoot":"","sources":["../../src/parse/corpusFaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AA+D5D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,YAAY,CAAC,KAI5B;IACC,OAAO;QACL,GAAG,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC;QACxC,GAAG,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC;QACvC,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,CAAC;KAC3E,CAAC;AACJ,CAAC"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* THE GRAMMAR RULES of `spec-controller tags` — everything about whether a TAG on a scenario
|
|
3
|
-
* means anything. Its
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* means anything. Its sibling holds the other question: `corpusCodeFaults.ts` whether a feature
|
|
4
|
+
* code binds to one feature file. `corpusFaults.ts` composes the two and is the only entry point
|
|
5
|
+
* either of them has.
|
|
6
6
|
*
|
|
7
7
|
* THE SEAM, STATED FROM THIS SIDE. A grammar rule asks *is this word part of the `@SCN` scheme*,
|
|
8
8
|
* and the answer is assembled from places that are not this module's: the engine's own
|
|
9
9
|
* quality-check maps, the `SCN-<FFF>-<NNN>` spelling `featureCodeOf` owns, and the target's own
|
|
10
|
-
* manifest. A code rule needs none of those; it reads the corpus's shape.
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
10
|
+
* manifest. A code rule needs none of those; it reads the corpus's shape. Two questions, two
|
|
11
|
+
* modules; the split happened when the joined module reached the 400-line `max-lines` ceiling
|
|
12
|
+
* with four more grammar clauses still to land (@SCN-FIT-001, and never an exception entry). The
|
|
13
|
+
* claim rule that once made a third sibling left with the measured axis (3F-3516): once the axis
|
|
14
|
+
* word is the only word that names a check, no scenario can claim two.
|
|
15
15
|
*
|
|
16
16
|
* AND THE TARGET'S HALF IS RESOLVED HERE, NOT HANDED IN RESOLVED. The composition hands this
|
|
17
17
|
* module a manifest rather than an answer, so the read lives beside the rule that uses it — the
|
|
@@ -26,63 +26,6 @@
|
|
|
26
26
|
* telling authors which words are legitimate.
|
|
27
27
|
*/
|
|
28
28
|
import type { CorpusFault, CorpusFile, TargetManifest } from "./corpusFaults.js";
|
|
29
|
-
import { type KillFloorReader } from "./targetManifest.js";
|
|
30
|
-
/**
|
|
31
|
-
* Every word that NAMES A CHECK on this target (@SCN-STG-005) — the set the grammar admits
|
|
32
|
-
* beside the scheme's own tier tags.
|
|
33
|
-
*
|
|
34
|
-
* ONE ASSEMBLY, AND THAT IS THE WHOLE POINT OF ITS BEING HERE. The tier floor this rule
|
|
35
|
-
* replaced assembled its own copy at a private CLI while the obligation rule assembled another
|
|
36
|
-
* in the engine, and the two coming to disagree about this set cost a slice (3F-3126). Resolving
|
|
37
|
-
* it beside the rule that asks the question means the words this command calls legitimate are
|
|
38
|
-
* the words the engine beside it raises obligations from — there is no second answer to fall
|
|
39
|
-
* behind the first, and no package boundary for one to be resolved on either side of.
|
|
40
|
-
*
|
|
41
|
-
* NO BARE TAG NAMES A CHECK ANY LONGER (3F-3161). The target's own check registry used to be
|
|
42
|
-
* read here as the TARGET's answer for which bare words meant a check; that reading is retired,
|
|
43
|
-
* and a bare check tag is grammar nowhere now, registered or not — the only words this function
|
|
44
|
-
* still admits beside the scheme's own tiers are the converted axis word and a measured tag read
|
|
45
|
-
* off the target's own thresholds. A target still writing one is read nowhere by this
|
|
46
|
-
* assembly, which is the whole of what @SCN-STG-005 changed.
|
|
47
|
-
*
|
|
48
|
-
* AND THE AXIS WORD IS NOT THE TARGET'S TO GRANT (3F-3138, 3F-3149). A CONVERTED check carries
|
|
49
|
-
* one word for the whole axis and puts its CHARACTERISTIC on a configured row, so the retired
|
|
50
|
-
* registry names it nowhere and never will. Which words name a CHECK is the target's
|
|
51
|
-
* answer; which axis a scenario is ON is the model's, exactly as `unit` is — so the word is
|
|
52
|
-
* admitted whatever the manifest holds, and a target that has converted nothing does not get to
|
|
53
|
-
* spell it differently. It arrives as `FITNESS_AXIS_TAG`, the one spelling of it, because a
|
|
54
|
-
* literal written out here would be a second answer travelling under the first's name.
|
|
55
|
-
*
|
|
56
|
-
* A CONVERTED SCENARIO NO CONFIGURED ROW NAMES IS ADMITTED, deliberately: that IS a corpus
|
|
57
|
-
* fault, and it is @SCN-LNT-020's, which names the scenario by id and leaves the one remedy
|
|
58
|
-
* there is. Redding it here too would print half of one fault in a second place with the wrong
|
|
59
|
-
* remedy attached — *this word means nothing here*, said to an author whose scenario names the
|
|
60
|
-
* one axis the model has.
|
|
61
|
-
*
|
|
62
|
-
* AND THE MEASURED SOURCE IS THE OTHER (@SCN-STG-009). A measured check produces a number held
|
|
63
|
-
* against an authored ceiling; nothing invokes it, so it has no runnable script handle and was
|
|
64
|
-
* never named by a registry either — the only place it is named is the target's thresholds. Skip
|
|
65
|
-
* them and a target's `@ci-run-time` row reds on the very tag its own obligation was raised from,
|
|
66
|
-
* which is why this assembly still has two sources rather than collapsing to the axis word alone.
|
|
67
|
-
*
|
|
68
|
-
* AND IT HAS A SECOND READER SINCE 3F-3307, which is what makes "one assembly" a fact rather than
|
|
69
|
-
* a habit. `corpusClaimFaults.ts` asks a different question over this same set — how many of these
|
|
70
|
-
* words one scenario may claim — and IMPORTS this function rather than rebuilding it. A rule
|
|
71
|
-
* counting a narrower set than the grammar admits would green a corpus claiming two checks by one
|
|
72
|
-
* of the words the grammar had just called legitimate; a wider one would red a word no obligation
|
|
73
|
-
* is ever raised from. It is exported for that reason and no other: it is not on the barrel, and a
|
|
74
|
-
* consumer's route to this capability stays the CLI.
|
|
75
|
-
*
|
|
76
|
-
* THE THRESHOLD READ TAKES THE KILL-FLOOR READER, and taking it is the discipline rather than a
|
|
77
|
-
* need this rule can feel. A bar may name a mutation gate instead of a figure (@SCN-MUT-012), so
|
|
78
|
-
* resolving one means opening that gate's record on the target's own tree — the closure the
|
|
79
|
-
* command's edge builds over the target root, the same one the reconciliation beside it hands to
|
|
80
|
-
* the same resolver. What it returns cannot move THIS answer: a threshold KEY survives whatever
|
|
81
|
-
* its bar resolves to (@SCN-MUT-003), and the key set is the whole of what is read here. So a
|
|
82
|
-
* cheaper reading would agree with the resolver today — and be a second answer the first time a
|
|
83
|
-
* bar decided a key. The set is resolved once, by the resolver that owns it.
|
|
84
|
-
*/
|
|
85
|
-
export declare function checkTagsOf(packageJson: TargetManifest, killFloor: KillFloorReader): readonly string[];
|
|
86
29
|
/**
|
|
87
30
|
* A tag on an `@SCN` scenario that means nothing here (@SCN-STG-002, @SCN-STG-003, @SCN-STG-004).
|
|
88
31
|
*
|
|
@@ -113,9 +56,8 @@ export declare function checkTagsOf(packageJson: TargetManifest, killFloor: Kill
|
|
|
113
56
|
*
|
|
114
57
|
* @param features the target's discovered feature files, read once at the edge.
|
|
115
58
|
* @param packageJson the TARGET's manifest, read HERE through the same resolvers the ingest edge
|
|
116
|
-
* reads it with — one reading of `specController.deferralTags` (@SCN-PND-021)
|
|
117
|
-
*
|
|
118
|
-
* the words the engine beside it honours as a skip and raises obligations from.
|
|
59
|
+
* reads it with — one reading of `specController.deferralTags` (@SCN-PND-021), so the words this
|
|
60
|
+
* rule calls legitimate are exactly the words the engine beside it honours as a skip.
|
|
119
61
|
* The target's own check registry is retired and read nowhere in this assembly (@SCN-STG-005,
|
|
120
62
|
* 3F-3161). A set handed in already resolved would have been a second answer travelling under the
|
|
121
63
|
* first's name.
|
|
@@ -124,10 +66,6 @@ export declare function checkTagsOf(packageJson: TargetManifest, killFloor: Kill
|
|
|
124
66
|
* strings — and a copy held in core would be a second statement of it. Pass none and this clause
|
|
125
67
|
* recognises nothing it was not given, which is the difference between owning a policy and
|
|
126
68
|
* hard-coding someone else's.
|
|
127
|
-
* @param killFloor the reader over the TARGET's mutation records, threaded through to the
|
|
128
|
-
* threshold resolution because a bar may name a gate rather than a figure (@SCN-MUT-012). It is
|
|
129
|
-
* the edge's closure over the target root, so the ceilings this rule reads and the records they
|
|
130
|
-
* reach answer for one tree.
|
|
131
69
|
*/
|
|
132
|
-
export declare function unrecognisedTags(features: readonly CorpusFile[], packageJson: TargetManifest, starterDeferralTags: readonly string[]
|
|
70
|
+
export declare function unrecognisedTags(features: readonly CorpusFile[], packageJson: TargetManifest, starterDeferralTags: readonly string[]): CorpusFault[];
|
|
133
71
|
//# sourceMappingURL=corpusGrammarFaults.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"corpusGrammarFaults.d.ts","sourceRoot":"","sources":["../../src/parse/corpusGrammarFaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;
|
|
1
|
+
{"version":3,"file":"corpusGrammarFaults.d.ts","sourceRoot":"","sources":["../../src/parse/corpusGrammarFaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA2NjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,WAAW,EAAE,cAAc,EAC3B,mBAAmB,EAAE,SAAS,MAAM,EAAE,GACrC,WAAW,EAAE,CAqBf"}
|