@3f-consulting/spec-controller-core 0.1.0-alpha.3 → 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/README.md +1 -1
- package/dist/assemble/evidenceReconciliationFromSources.d.ts +8 -15
- package/dist/assemble/evidenceReconciliationFromSources.d.ts.map +1 -1
- package/dist/assemble/evidenceReconciliationFromSources.js +21 -24
- package/dist/assemble/evidenceReconciliationFromSources.js.map +1 -1
- package/dist/domain/checkCharacteristics.d.ts +24 -15
- package/dist/domain/checkCharacteristics.d.ts.map +1 -1
- package/dist/domain/checkCharacteristics.js +24 -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 +23 -2
- 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 +17 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -19
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +8 -15
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +37 -84
- package/dist/internal.js.map +1 -1
- package/dist/model.d.ts +3 -2
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +3 -2
- package/dist/model.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 +26 -37
- package/dist/parse/corpusFaults.d.ts.map +1 -1
- package/dist/parse/corpusFaults.js +18 -33
- 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 +28 -13
- package/dist/parse/scenarios.d.ts.map +1 -1
- package/dist/parse/scenarios.js +48 -86
- 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 +12 -86
- package/dist/parse/targetManifest.d.ts.map +1 -1
- package/dist/parse/targetManifest.js +49 -138
- 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 +11 -4
- 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 -6
- 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
|
@@ -26,8 +26,7 @@
|
|
|
26
26
|
* Parent: @SCN-LDG-001.
|
|
27
27
|
*/
|
|
28
28
|
import type { Scenario, QualityCheck } from "../model.js";
|
|
29
|
-
import {
|
|
30
|
-
import { type FitnessCheckIndex } from "../domain/fitnessChecks.js";
|
|
29
|
+
import type { FitnessCheckIndex, UnspecifiedFitnessRow } from "../domain/fitnessChecks.js";
|
|
31
30
|
/**
|
|
32
31
|
* Recognise a `<quality-check>pending` tag (evidence-manifesto §11B) — return its deferred
|
|
33
32
|
* quality-check, or `null` when the bare tag is not one of the five recognised `<qc>pending`
|
|
@@ -123,6 +122,28 @@ export declare const FITNESS_AXIS_TAG = "fitness";
|
|
|
123
122
|
* half-converted checks where there is one.
|
|
124
123
|
*/
|
|
125
124
|
export declare function unconfiguredFitnessScenarios(scenarios: readonly TaggedScenario[], fitnessChecks: FitnessCheckIndex): string[];
|
|
125
|
+
/**
|
|
126
|
+
* THE CONFIGURED ROWS THE CORPUS CARRIES NO SCENARIO FOR (3F-3472, @SCN-LNT-027) — the mirror of
|
|
127
|
+
* `unconfiguredFitnessScenarios` directly above, in MANIFEST order.
|
|
128
|
+
*
|
|
129
|
+
* THE RUN DOES NOT ALREADY RED ON IT, WHICH IS THE WHOLE DIFFERENCE BETWEEN THE TWO. Its mirror
|
|
130
|
+
* adds only a sentence, because a scenario no row names already reconciles to zero rows on both
|
|
131
|
+
* sides and is out of balance through the degenerate item. A row no scenario names raised NOTHING:
|
|
132
|
+
* the obligations travel with the scenarios, so a row with no scenario contributed a characteristic
|
|
133
|
+
* nobody asked for and the run read balanced over a check that was declared and never specified.
|
|
134
|
+
* `double-entry-manifesto.md` names that shape exactly — a ledger catches a credit that never
|
|
135
|
+
* arrived and is blind to a debit that was never raised.
|
|
136
|
+
*
|
|
137
|
+
* IT READS THE WALK IT IS HANDED, for its mirror's reason: a second walk would be free to disagree
|
|
138
|
+
* about which scenarios the corpus holds, and a row raised against a corpus the obligations were
|
|
139
|
+
* not taken from is the phantom-row fault (@SCN-LNT-009) reached from the manifest side.
|
|
140
|
+
*
|
|
141
|
+
* EVERY `@SCN`-CARRYING SCENARIO COUNTS, NOT THE `@fitness` ONES ALONE. The claim is that the
|
|
142
|
+
* corpus carries no scenario for the row — so a scenario carrying the row's code and saying nothing
|
|
143
|
+
* about the fitness axis is still a scenario somebody wrote under that code, and minting a debit
|
|
144
|
+
* beside it would report a check nobody has specified where one has been started.
|
|
145
|
+
*/
|
|
146
|
+
export declare function unspecifiedFitnessRows(scenarios: readonly TaggedScenario[], fitnessChecks: FitnessCheckIndex): UnspecifiedFitnessRow[];
|
|
126
147
|
/**
|
|
127
148
|
* One `@SCN`-carrying scenario as the corpus READS it, before any obligation rule is applied:
|
|
128
149
|
* its id and its EFFECTIVE tag set (its own tags, then everything it inherits from its `Rule:`
|
|
@@ -205,20 +226,14 @@ export declare function parseTaggedScenarios(source: string): TaggedScenario[];
|
|
|
205
226
|
* unparseable source still THROWS from the walk rather than yielding an empty corpus.
|
|
206
227
|
*
|
|
207
228
|
* `checkTags` — the registry's bare check tags (@SCN-LNT-006) — is ADDITIVE and defaults to none, so
|
|
208
|
-
* `parseScenarios` keeps its place on the
|
|
229
|
+
* `parseScenarios` keeps its place on the v1 barrel and every existing caller
|
|
209
230
|
* reads exactly the corpus it read before. A target that has registered nothing raises no fitness
|
|
210
231
|
* obligations, which is what lets the bare-tag reading land ahead of the corpus sweep that uses it.
|
|
211
232
|
*
|
|
212
|
-
* `thresholds` — the target's authored ceilings (@SCN-CIP-001) — is trailing and optional for the
|
|
213
|
-
* same reason, and carries the scenario's own `scnId` into the obligation rule: a measured check's
|
|
214
|
-
* ceiling is keyed by the row it is owed on, so the rule cannot be applied to a tag set alone.
|
|
215
|
-
* Empty by default, so a target that has authored no ceiling raises no measured obligation and the
|
|
216
|
-
* axis is dormant.
|
|
217
|
-
*
|
|
218
233
|
* `fitnessChecks` — the target's CONFIGURED ROWS (@SCN-LNT-018) — is trailing and optional for the
|
|
219
|
-
*
|
|
220
|
-
*
|
|
221
|
-
* target that has converted nothing raises nothing on this route.
|
|
234
|
+
* same reason, and carries the scenario's own `scnId` into the obligation rule: a converted check's
|
|
235
|
+
* characteristic is keyed by the row it is owed on, so the rule cannot be applied to a tag set
|
|
236
|
+
* alone. Empty by default, so a target that has converted nothing raises nothing on this route.
|
|
222
237
|
*/
|
|
223
|
-
export declare function parseScenarios(source: string, deferralTags?: readonly string[], checkTags?: readonly string[],
|
|
238
|
+
export declare function parseScenarios(source: string, deferralTags?: readonly string[], checkTags?: readonly string[], fitnessChecks?: FitnessCheckIndex): Scenario[];
|
|
224
239
|
//# sourceMappingURL=scenarios.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenarios.d.ts","sourceRoot":"","sources":["../../src/parse/scenarios.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAsB,YAAY,EAAuB,MAAM,aAAa,CAAC;AACnG,OAAO,
|
|
1
|
+
{"version":3,"file":"scenarios.d.ts","sourceRoot":"","sources":["../../src/parse/scenarios.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAsB,YAAY,EAAuB,MAAM,aAAa,CAAC;AACnG,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAoB3F;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAEpE;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAEvD,CAAC;AASF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAAsC,CAAC;AAiB/F;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAe1D;AAYD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAkB/D;AA6DD;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAwC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,SAAS,cAAc,EAAE,EACpC,aAAa,EAAE,iBAAiB,GAC/B,MAAM,EAAE,CAQV;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,SAAS,cAAc,EAAE,EACpC,aAAa,EAAE,iBAAiB,GAC/B,qBAAqB,EAAE,CAQzB;AAsED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;CACjB;AAkFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CA0CrE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,YAAY,GAAE,SAAS,MAAM,EAAO,EACpC,SAAS,GAAE,SAAS,MAAM,EAAO,EACjC,aAAa,GAAE,iBAA6B,GAC3C,QAAQ,EAAE,CAWZ"}
|
package/dist/parse/scenarios.js
CHANGED
|
@@ -28,8 +28,6 @@
|
|
|
28
28
|
import { AstBuilder, GherkinClassicTokenMatcher, Parser } from "@cucumber/gherkin";
|
|
29
29
|
import { IdGenerator } from "@cucumber/messages";
|
|
30
30
|
import { bareTerm } from "../lib/bareTerm.js";
|
|
31
|
-
import { measuredCheckTags, thresholdFor } from "../domain/thresholds.js";
|
|
32
|
-
import { carriesBar } from "../domain/fitnessChecks.js";
|
|
33
31
|
const SCN_CODE = /^SCN-[A-Z0-9]+-\d+$/;
|
|
34
32
|
/**
|
|
35
33
|
* The recognised `<quality-check>pending` lexicon (evidence-manifesto §11B) — a bare tag
|
|
@@ -198,9 +196,10 @@ export function parseUntaggedScenarios(source) {
|
|
|
198
196
|
* `stepless` boolean on after the rule stopped reading it, kept by a reason that was wrong twice
|
|
199
197
|
* (3F-3134): it named `parse/scnTags.ts` as the surviving reader, which is not a path in this
|
|
200
198
|
* repository, and the corpus check it meant computed its own steplessness off its own line parser
|
|
201
|
-
* and never read this one. Both rules that reason named read the
|
|
202
|
-
*
|
|
203
|
-
*
|
|
199
|
+
* and never read this one. Both rules that reason named read the tag instead (@SCN-STG-005, and
|
|
200
|
+
* the one-check rule until it left with the measured axis; 3F-3126, 3F-3516). So nothing asked
|
|
201
|
+
* the walk for a scenario's SHAPE, and the walk stopped answering: steplessness is derived
|
|
202
|
+
* nowhere in this tree, and a scenario's axis is its tag.
|
|
204
203
|
*
|
|
205
204
|
* SUPPLIED, NOT INFERRED. `checkTags` is the caller's set of recognised check tags, taken as
|
|
206
205
|
* data. Without it every unrecognised tag would be a candidate check and `@smoke` would owe one;
|
|
@@ -212,50 +211,15 @@ export function parseUntaggedScenarios(source) {
|
|
|
212
211
|
* its own plus its `Rule:`'s and its `Feature:`'s (@SCN-LDG-020), so one check can reach one
|
|
213
212
|
* scenario twice and is owed once. Two obligations for one check would leave the second `missing`
|
|
214
213
|
* for ever — one run is one credit and can cite one `@SCN`.
|
|
215
|
-
*
|
|
216
|
-
* MEASURED CHECKS JOIN THROUGH THE SAME ARM (@SCN-CIP-001), because they are the same rule: a bare
|
|
217
|
-
* tag on a scenario, owed once. What differs is what the obligation HOLDS. A measured check
|
|
218
|
-
* is assessed by running the suite and measuring it, so its evidence is a number and its obligation
|
|
219
|
-
* carries the CEILING that number is held against — read for THIS scenario, since canon's own shape
|
|
220
|
-
* for the axis is several stepless scenarios sharing one characteristic with ceilings of their own.
|
|
221
|
-
*
|
|
222
|
-
* A MEASURED TAG IS RECOGNISED BY THE THRESHOLD INDEX. A measured check has no runnable script
|
|
223
|
-
* handle — nothing invokes `ci-run-time` — so a set built from discovered handles alone cannot
|
|
224
|
-
* name it, and a rule reading that alone would raise nothing for it: silent, which is worse than
|
|
225
|
-
* wrong.
|
|
226
|
-
*
|
|
227
|
-
* `measured: true` IS SET WHETHER OR NOT A CEILING WAS FOUND, and that is the point. The flag routes
|
|
228
|
-
* the obligation to the comparison arm; the missing ceiling is what that arm then reports
|
|
229
|
-
* (@SCN-CIP-002). Marking it measured only when a ceiling exists would send an un-authored one down
|
|
230
|
-
* the static route, to be reported as a check nobody wrote — the wrong cure for the actual fault.
|
|
231
214
|
*/
|
|
232
|
-
function fitnessObligationsOf(tags, checkTags, seen
|
|
215
|
+
function fitnessObligationsOf(tags, checkTags, seen) {
|
|
233
216
|
const registered = new Set(checkTags);
|
|
234
|
-
const measured = new Set(measuredCheckTags(thresholds));
|
|
235
217
|
const raised = [];
|
|
236
218
|
for (const tag of tags) {
|
|
237
|
-
if (
|
|
219
|
+
if (!registered.has(tag) || seen.has(tag))
|
|
238
220
|
continue;
|
|
239
221
|
seen.add(tag);
|
|
240
|
-
|
|
241
|
-
raised.push({ qualityCheck: "lint", staticCheck: tag });
|
|
242
|
-
continue;
|
|
243
|
-
}
|
|
244
|
-
const bar = thresholdFor(thresholds, scnId, tag);
|
|
245
|
-
raised.push({
|
|
246
|
-
qualityCheck: "lint",
|
|
247
|
-
staticCheck: tag,
|
|
248
|
-
measured: true,
|
|
249
|
-
// Spread rather than `threshold: bar?.threshold ?? undefined`, so an obligation with no
|
|
250
|
-
// authored bar carries no key at all — the absence is a fact about the manifest, and a row
|
|
251
|
-
// serialising `"threshold": null` would read as a bar somebody wrote.
|
|
252
|
-
//
|
|
253
|
-
// THE WHOLE BAR IS SPREAD, not its number picked out (@SCN-MUT-001). The bar and the
|
|
254
|
-
// obligation hold the comparison in the same sparse terms, so a bare-number entry lands
|
|
255
|
-
// exactly the keys it landed before the comparison existed, and the direction cannot be
|
|
256
|
-
// dropped in transit by a reader that only knew to copy the number.
|
|
257
|
-
...(bar !== null ? bar : {}),
|
|
258
|
-
});
|
|
222
|
+
raised.push({ qualityCheck: "lint", staticCheck: tag });
|
|
259
223
|
}
|
|
260
224
|
return raised;
|
|
261
225
|
}
|
|
@@ -270,7 +234,7 @@ function fitnessObligationsOf(tags, checkTags, seen, scnId, thresholds) {
|
|
|
270
234
|
export const FITNESS_AXIS_TAG = "fitness";
|
|
271
235
|
/**
|
|
272
236
|
* The obligation a CONVERTED check's scenario raises (@SCN-LNT-018) — the characteristic its
|
|
273
|
-
* CONFIGURED ROW names, once
|
|
237
|
+
* CONFIGURED ROW names, once.
|
|
274
238
|
*
|
|
275
239
|
* THE TAG NAMES THE AXIS AND THE ROW NAMES THE SUBJECT. A bare characteristic tag answered both at
|
|
276
240
|
* once; the tier tags answer only the first, and nobody mints `@unit-parser`. So a converted
|
|
@@ -282,19 +246,6 @@ export const FITNESS_AXIS_TAG = "fitness";
|
|
|
282
246
|
* pair key, the reconciler's static arm and the roll-up are untouched: only where the word came
|
|
283
247
|
* from changed.
|
|
284
248
|
*
|
|
285
|
-
* THE ROW'S SHAPE SAYS WHICH OF THE TWO OBLIGATION SHAPES IT IS (@SCN-LNT-019) — no type field, no
|
|
286
|
-
* second tag, no roster of measured characteristics. A row carrying a bar is measured and one
|
|
287
|
-
* carrying none is static, which is the discrimination `thresholdsOf` has always made: a check with
|
|
288
|
-
* no entry there is already the static case. `carriesBar` is the ONE spelling of that question, and
|
|
289
|
-
* the credit side asks it too — a measured row's credit is its NUMBER, so its step's outcome raises
|
|
290
|
-
* none beside it, and two readers of one fact would eventually differ about the row whose bar
|
|
291
|
-
* nothing can read.
|
|
292
|
-
*
|
|
293
|
-
* `measured: true` IS SET WHETHER OR NOT A BAR COULD BE READ, exactly as the registered-tag arm
|
|
294
|
-
* sets it. The flag routes the obligation to the comparison arm and the bar nobody wrote is what
|
|
295
|
-
* that arm then reports (@SCN-CIP-002); marking a row measured only where a readable bar was found
|
|
296
|
-
* would send an un-authored one down the static route, to be reported as a check nobody wrote.
|
|
297
|
-
*
|
|
298
249
|
* NO REGISTRY HOP, and that is what conversion retires. An unconverted static check is discovered
|
|
299
250
|
* as a script handle, and a handle does not know what it is for — hence the (now-retired)
|
|
300
251
|
* registry, and hence the corpus lookup behind it. This route reads the citation off the row
|
|
@@ -313,21 +264,7 @@ function convertedFitnessObligationsOf(tags, fitnessChecks, seen, scnId) {
|
|
|
313
264
|
if (row === undefined || seen.has(row.characteristic))
|
|
314
265
|
return [];
|
|
315
266
|
seen.add(row.characteristic);
|
|
316
|
-
|
|
317
|
-
return [{ qualityCheck: "lint", staticCheck: row.characteristic }];
|
|
318
|
-
const bar = row.bar ?? null;
|
|
319
|
-
return [
|
|
320
|
-
{
|
|
321
|
-
qualityCheck: "lint",
|
|
322
|
-
staticCheck: row.characteristic,
|
|
323
|
-
measured: true,
|
|
324
|
-
// THE WHOLE BAR IS SPREAD, not its number picked out (@SCN-MUT-001) — the direction is half
|
|
325
|
-
// of the bar, and a reader that only knew to copy the number would drop it in transit. Spread
|
|
326
|
-
// rather than assigned, so a measured row whose bar nothing could read carries no key at all:
|
|
327
|
-
// `"threshold": null` would serialise as a bar somebody wrote.
|
|
328
|
-
...(bar !== null ? bar : {}),
|
|
329
|
-
},
|
|
330
|
-
];
|
|
267
|
+
return [{ qualityCheck: "lint", staticCheck: row.characteristic }];
|
|
331
268
|
}
|
|
332
269
|
/**
|
|
333
270
|
* The scenarios ON the fitness axis that no configured row NAMES (@SCN-LNT-020) — a corpus that has
|
|
@@ -372,12 +309,43 @@ export function unconfiguredFitnessScenarios(scenarios, fitnessChecks) {
|
|
|
372
309
|
}
|
|
373
310
|
return unconfigured;
|
|
374
311
|
}
|
|
312
|
+
/**
|
|
313
|
+
* THE CONFIGURED ROWS THE CORPUS CARRIES NO SCENARIO FOR (3F-3472, @SCN-LNT-027) — the mirror of
|
|
314
|
+
* `unconfiguredFitnessScenarios` directly above, in MANIFEST order.
|
|
315
|
+
*
|
|
316
|
+
* THE RUN DOES NOT ALREADY RED ON IT, WHICH IS THE WHOLE DIFFERENCE BETWEEN THE TWO. Its mirror
|
|
317
|
+
* adds only a sentence, because a scenario no row names already reconciles to zero rows on both
|
|
318
|
+
* sides and is out of balance through the degenerate item. A row no scenario names raised NOTHING:
|
|
319
|
+
* the obligations travel with the scenarios, so a row with no scenario contributed a characteristic
|
|
320
|
+
* nobody asked for and the run read balanced over a check that was declared and never specified.
|
|
321
|
+
* `double-entry-manifesto.md` names that shape exactly — a ledger catches a credit that never
|
|
322
|
+
* arrived and is blind to a debit that was never raised.
|
|
323
|
+
*
|
|
324
|
+
* IT READS THE WALK IT IS HANDED, for its mirror's reason: a second walk would be free to disagree
|
|
325
|
+
* about which scenarios the corpus holds, and a row raised against a corpus the obligations were
|
|
326
|
+
* not taken from is the phantom-row fault (@SCN-LNT-009) reached from the manifest side.
|
|
327
|
+
*
|
|
328
|
+
* EVERY `@SCN`-CARRYING SCENARIO COUNTS, NOT THE `@fitness` ONES ALONE. The claim is that the
|
|
329
|
+
* corpus carries no scenario for the row — so a scenario carrying the row's code and saying nothing
|
|
330
|
+
* about the fitness axis is still a scenario somebody wrote under that code, and minting a debit
|
|
331
|
+
* beside it would report a check nobody has specified where one has been started.
|
|
332
|
+
*/
|
|
333
|
+
export function unspecifiedFitnessRows(scenarios, fitnessChecks) {
|
|
334
|
+
const carried = new Set(scenarios.map((scenario) => scenario.scnId));
|
|
335
|
+
const unspecified = [];
|
|
336
|
+
for (const [scnId, row] of fitnessChecks) {
|
|
337
|
+
if (carried.has(scnId))
|
|
338
|
+
continue;
|
|
339
|
+
unspecified.push({ scnId, characteristic: row.characteristic });
|
|
340
|
+
}
|
|
341
|
+
return unspecified;
|
|
342
|
+
}
|
|
375
343
|
/**
|
|
376
344
|
* Derive a scenario's evidence obligations from its EFFECTIVE tags — its own PLUS everything it
|
|
377
345
|
* inherits from its `Feature:` and any enclosing `Rule:` (@SCN-LDG-020). Unchanged in substance
|
|
378
346
|
* from the tag-block reading it replaces; what changed is WHICH tags reach it.
|
|
379
347
|
*/
|
|
380
|
-
function obligationsFromTags(tags, deferralTags, checkTags, scnId,
|
|
348
|
+
function obligationsFromTags(tags, deferralTags, checkTags, scnId, fitnessChecks) {
|
|
381
349
|
const evidenceObligations = [];
|
|
382
350
|
const seenQualityChecks = new Set();
|
|
383
351
|
const seenPending = new Set();
|
|
@@ -404,7 +372,7 @@ function obligationsFromTags(tags, deferralTags, checkTags, scnId, thresholds, f
|
|
|
404
372
|
// below, so a deferred fitness scenario defers like any other rather than escaping through a later
|
|
405
373
|
// arm. `seenChecks` keeps a check from being owed twice however many of a scenario's effective
|
|
406
374
|
// tags name it.
|
|
407
|
-
evidenceObligations.push(...fitnessObligationsOf(tags, checkTags, seenChecks
|
|
375
|
+
evidenceObligations.push(...fitnessObligationsOf(tags, checkTags, seenChecks),
|
|
408
376
|
// The CONVERTED route (@SCN-LNT-018), on the same `seen` set and after the registered-tag arm:
|
|
409
377
|
// a characteristic is owed once whichever of the two named it.
|
|
410
378
|
...convertedFitnessObligationsOf(tags, fitnessChecks, seenChecks, scnId));
|
|
@@ -580,25 +548,19 @@ export function parseTaggedScenarios(source) {
|
|
|
580
548
|
* unparseable source still THROWS from the walk rather than yielding an empty corpus.
|
|
581
549
|
*
|
|
582
550
|
* `checkTags` — the registry's bare check tags (@SCN-LNT-006) — is ADDITIVE and defaults to none, so
|
|
583
|
-
* `parseScenarios` keeps its place on the
|
|
551
|
+
* `parseScenarios` keeps its place on the v1 barrel and every existing caller
|
|
584
552
|
* reads exactly the corpus it read before. A target that has registered nothing raises no fitness
|
|
585
553
|
* obligations, which is what lets the bare-tag reading land ahead of the corpus sweep that uses it.
|
|
586
554
|
*
|
|
587
|
-
* `thresholds` — the target's authored ceilings (@SCN-CIP-001) — is trailing and optional for the
|
|
588
|
-
* same reason, and carries the scenario's own `scnId` into the obligation rule: a measured check's
|
|
589
|
-
* ceiling is keyed by the row it is owed on, so the rule cannot be applied to a tag set alone.
|
|
590
|
-
* Empty by default, so a target that has authored no ceiling raises no measured obligation and the
|
|
591
|
-
* axis is dormant.
|
|
592
|
-
*
|
|
593
555
|
* `fitnessChecks` — the target's CONFIGURED ROWS (@SCN-LNT-018) — is trailing and optional for the
|
|
594
|
-
*
|
|
595
|
-
*
|
|
596
|
-
* target that has converted nothing raises nothing on this route.
|
|
556
|
+
* same reason, and carries the scenario's own `scnId` into the obligation rule: a converted check's
|
|
557
|
+
* characteristic is keyed by the row it is owed on, so the rule cannot be applied to a tag set
|
|
558
|
+
* alone. Empty by default, so a target that has converted nothing raises nothing on this route.
|
|
597
559
|
*/
|
|
598
|
-
export function parseScenarios(source, deferralTags = [], checkTags = [],
|
|
560
|
+
export function parseScenarios(source, deferralTags = [], checkTags = [], fitnessChecks = new Map()) {
|
|
599
561
|
return parseTaggedScenarios(source).map((scenario) => ({
|
|
600
562
|
scnId: scenario.scnId,
|
|
601
|
-
evidenceObligations: obligationsFromTags(scenario.tags, deferralTags, checkTags, scenario.scnId,
|
|
563
|
+
evidenceObligations: obligationsFromTags(scenario.tags, deferralTags, checkTags, scenario.scnId, fitnessChecks),
|
|
602
564
|
}));
|
|
603
565
|
}
|
|
604
566
|
//# sourceMappingURL=scenarios.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenarios.js","sourceRoot":"","sources":["../../src/parse/scenarios.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scenarios.js","sourceRoot":"","sources":["../../src/parse/scenarios.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The TARGET's feature corpus read into the
|
|
3
|
-
*
|
|
2
|
+
* The TARGET's feature corpus read into the readings one reconciliation needs — moved here from
|
|
3
|
+
* the app's ingest edge (3F-3088).
|
|
4
4
|
*
|
|
5
5
|
* WHY IT LIVES IN THE ENGINE. Every line of it is a pure function of sources somebody else already
|
|
6
|
-
* read off disk: the obligation rule
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* repairs. One line made it impure and it was the only one: the feature discovery, which now
|
|
6
|
+
* read off disk: the obligation rule is `parseScenarios`, core's own. Sitting at the app edge it
|
|
7
|
+
* was the reason a PUBLISHED module imported core's unpublished `/internal` subpath for five
|
|
8
|
+
* symbols — the fault 3F-3086 repairs. One line made it impure and it was the only one: the feature discovery, which now
|
|
10
9
|
* happens at the edge and arrives as `sources`.
|
|
11
10
|
*
|
|
12
11
|
* THE REGISTRY-KEYED READING THIS FILE ONCE ALSO PRODUCED — `checkHandles` and `citedScn`, the
|
|
@@ -15,14 +14,13 @@
|
|
|
15
14
|
* (`citedRow`, below) or is a converted `@fitness` row read through `domain/fitnessChecks`
|
|
16
15
|
* directly; there is no second discovery left to key a handle set off.
|
|
17
16
|
*/
|
|
18
|
-
import type { FitnessCheckIndex } from "../domain/fitnessChecks.js";
|
|
19
|
-
import { type ThresholdIndex } from "../domain/thresholds.js";
|
|
17
|
+
import type { FitnessCheckIndex, UnspecifiedFitnessRow } from "../domain/fitnessChecks.js";
|
|
20
18
|
import { type ScriptCitation } from "./fitnessCitations.js";
|
|
21
19
|
import type { Scenario } from "../model.js";
|
|
22
20
|
/**
|
|
23
21
|
* The target's feature corpus as ONE run reads it — the obligations it raises, the `@SCN` a run
|
|
24
|
-
* whose CI step states a code cites,
|
|
25
|
-
*
|
|
22
|
+
* whose CI step states a code cites, the scenarios on the fitness axis no configured row names,
|
|
23
|
+
* and the configured rows the corpus carries no scenario for.
|
|
26
24
|
*
|
|
27
25
|
* THE READINGS ARE ONE, which is why they are produced together. All are derived from the same
|
|
28
26
|
* bytes and the same configured rows, and the fault they exist to foreclose is precisely their
|
|
@@ -55,6 +53,18 @@ export interface TargetCorpus {
|
|
|
55
53
|
* different reads — the same guarantee `citedRow` is composed here for.
|
|
56
54
|
*/
|
|
57
55
|
unconfiguredFitnessScenarios: readonly string[];
|
|
56
|
+
/**
|
|
57
|
+
* The CONFIGURED ROWS the corpus carries no scenario for (@SCN-LNT-027, 3F-3472) — the other
|
|
58
|
+
* direction of the same disagreement, in manifest order, each with the characteristic its debit
|
|
59
|
+
* is owed at.
|
|
60
|
+
*
|
|
61
|
+
* IT IS HERE FOR THE MIRROR'S REASON AND NOT A WEAKER ONE. The corpus walk and the configured
|
|
62
|
+
* rows are both in hand exactly once, so the rows this names and the obligations `scenarios`
|
|
63
|
+
* raises are taken from ONE read of each side. Computed at the composition from `corpus.scenarios`
|
|
64
|
+
* it would be a second walk, free to disagree with the walk the obligations came from — which is
|
|
65
|
+
* the fault this whole reading exists to foreclose.
|
|
66
|
+
*/
|
|
67
|
+
unspecifiedFitnessRows: readonly UnspecifiedFitnessRow[];
|
|
58
68
|
}
|
|
59
69
|
/**
|
|
60
70
|
* THE SOURCES ARRIVE READ, AND THAT IS THE WHOLE OF WHAT MOVED. The edge discovers the target's
|
|
@@ -64,7 +74,7 @@ export interface TargetCorpus {
|
|
|
64
74
|
* preserves that guarantee where a features directory would have re-opened the question inside the
|
|
65
75
|
* engine.
|
|
66
76
|
*/
|
|
67
|
-
export declare function readTargetCorpus(sources: readonly string[], deferralTags: readonly string[],
|
|
77
|
+
export declare function readTargetCorpus(sources: readonly string[], deferralTags: readonly string[],
|
|
68
78
|
/**
|
|
69
79
|
* The target's CONFIGURED ROWS (@SCN-LNT-018) — the CONVERTED route's half of the debit side. It
|
|
70
80
|
* reaches `parseScenarios`, which raises the Evidence Obligations, and `citedRow`, which reads a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"targetCorpus.d.ts","sourceRoot":"","sources":["../../src/parse/targetCorpus.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"targetCorpus.d.ts","sourceRoot":"","sources":["../../src/parse/targetCorpus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAOhF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,YAAY;IAC3B,6EAA6E;IAC7E,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB;;;;;;OAMG;IACH,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,KAAK,cAAc,GAAG,IAAI,CAAC;IAClE;;;;;;;;OAQG;IACH,4BAA4B,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD;;;;;;;;;;OAUG;IACH,sBAAsB,EAAE,SAAS,qBAAqB,EAAE,CAAC;CAC1D;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,YAAY,EAAE,SAAS,MAAM,EAAE;AAC/B;;;;;GAKG;AACH,aAAa,EAAE,iBAAiB,GAC/B,YAAY,CAkBd"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The TARGET's feature corpus read into the
|
|
3
|
-
*
|
|
2
|
+
* The TARGET's feature corpus read into the readings one reconciliation needs — moved here from
|
|
3
|
+
* the app's ingest edge (3F-3088).
|
|
4
4
|
*
|
|
5
5
|
* WHY IT LIVES IN THE ENGINE. Every line of it is a pure function of sources somebody else already
|
|
6
|
-
* read off disk: the obligation rule
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* repairs. One line made it impure and it was the only one: the feature discovery, which now
|
|
6
|
+
* read off disk: the obligation rule is `parseScenarios`, core's own. Sitting at the app edge it
|
|
7
|
+
* was the reason a PUBLISHED module imported core's unpublished `/internal` subpath for five
|
|
8
|
+
* symbols — the fault 3F-3086 repairs. One line made it impure and it was the only one: the feature discovery, which now
|
|
10
9
|
* happens at the edge and arrives as `sources`.
|
|
11
10
|
*
|
|
12
11
|
* THE REGISTRY-KEYED READING THIS FILE ONCE ALSO PRODUCED — `checkHandles` and `citedScn`, the
|
|
@@ -15,9 +14,8 @@
|
|
|
15
14
|
* (`citedRow`, below) or is a converted `@fitness` row read through `domain/fitnessChecks`
|
|
16
15
|
* directly; there is no second discovery left to key a handle set off.
|
|
17
16
|
*/
|
|
18
|
-
import { measuredCheckTags } from "../domain/thresholds.js";
|
|
19
17
|
import { citationOfCitedRow } from "./fitnessCitations.js";
|
|
20
|
-
import { parseScenarios, parseTaggedScenarios, unconfiguredFitnessScenarios } from "./scenarios.js";
|
|
18
|
+
import { parseScenarios, parseTaggedScenarios, unconfiguredFitnessScenarios, unspecifiedFitnessRows, } from "./scenarios.js";
|
|
21
19
|
/**
|
|
22
20
|
* THE SOURCES ARRIVE READ, AND THAT IS THE WHOLE OF WHAT MOVED. The edge discovers the target's
|
|
23
21
|
* feature files and reads them ONCE, so the reading a citing run needs is still taken from the same
|
|
@@ -26,7 +24,7 @@ import { parseScenarios, parseTaggedScenarios, unconfiguredFitnessScenarios } fr
|
|
|
26
24
|
* preserves that guarantee where a features directory would have re-opened the question inside the
|
|
27
25
|
* engine.
|
|
28
26
|
*/
|
|
29
|
-
export function readTargetCorpus(sources, deferralTags,
|
|
27
|
+
export function readTargetCorpus(sources, deferralTags,
|
|
30
28
|
/**
|
|
31
29
|
* The target's CONFIGURED ROWS (@SCN-LNT-018) — the CONVERTED route's half of the debit side. It
|
|
32
30
|
* reaches `parseScenarios`, which raises the Evidence Obligations, and `citedRow`, which reads a
|
|
@@ -34,21 +32,20 @@ export function readTargetCorpus(sources, deferralTags, thresholds,
|
|
|
34
32
|
* which is the whole reason this reading is composed here.
|
|
35
33
|
*/
|
|
36
34
|
fitnessChecks) {
|
|
37
|
-
//
|
|
38
|
-
//
|
|
39
|
-
//
|
|
40
|
-
//
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
//
|
|
45
|
-
// citation hop that once shared it retired with the registry, so there is only the one reader
|
|
46
|
-
// left to hand it to.
|
|
35
|
+
// NO BARE CHECK TAG RAISES AN OBLIGATION ON A TARGET'S CORPUS. The registered half of the
|
|
36
|
+
// union retired with the registry (3F-3161) and the measured half with the measured axis
|
|
37
|
+
// (3F-3516), so the bare-tag set handed to `parseScenarios` is empty: a fitness obligation is
|
|
38
|
+
// raised by the axis word and a configured row, and by nothing else.
|
|
39
|
+
const scenarios = sources.flatMap((source) => parseScenarios(source, deferralTags, [], fitnessChecks));
|
|
40
|
+
// THE TAGGED WALK THE TWO CORPUS-VS-MANIFEST READINGS SHARE. Kept as its own pass over the
|
|
41
|
+
// sources, and handed to BOTH of them — the disagreement each names is the other's direction, so
|
|
42
|
+
// taking them from one walk is what stops one reading seeing a scenario the other does not.
|
|
47
43
|
const tagged = sources.flatMap((source) => parseTaggedScenarios(source));
|
|
48
44
|
return {
|
|
49
45
|
scenarios,
|
|
50
46
|
citedRow: (citedScn) => citationOfCitedRow(citedScn, fitnessChecks),
|
|
51
47
|
unconfiguredFitnessScenarios: unconfiguredFitnessScenarios(tagged, fitnessChecks),
|
|
48
|
+
unspecifiedFitnessRows: unspecifiedFitnessRows(tagged, fitnessChecks),
|
|
52
49
|
};
|
|
53
50
|
}
|
|
54
51
|
//# sourceMappingURL=targetCorpus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"targetCorpus.js","sourceRoot":"","sources":["../../src/parse/targetCorpus.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"targetCorpus.js","sourceRoot":"","sources":["../../src/parse/targetCorpus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,kBAAkB,EAAuB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAqDxB;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAA0B,EAC1B,YAA+B;AAC/B;;;;;GAKG;AACH,aAAgC;IAEhC,0FAA0F;IAC1F,yFAAyF;IACzF,8FAA8F;IAC9F,qEAAqE;IACrE,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3C,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,CAAC,CACxD,CAAC;IACF,2FAA2F;IAC3F,iGAAiG;IACjG,4FAA4F;IAC5F,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,OAAO;QACL,SAAS;QACT,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,QAAQ,EAAE,aAAa,CAAC;QACnE,4BAA4B,EAAE,4BAA4B,CAAC,MAAM,EAAE,aAAa,CAAC;QACjF,sBAAsB,EAAE,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;KACtE,CAAC;AACJ,CAAC"}
|